diff --git a/src/main/ui/dist/angular-nodejs-example/favicon.ico b/src/main/ui/dist/angular-nodejs-example/favicon.ico deleted file mode 100644 index 997406ad2..000000000 Binary files a/src/main/ui/dist/angular-nodejs-example/favicon.ico and /dev/null differ diff --git a/src/main/ui/dist/angular-nodejs-example/index.html b/src/main/ui/dist/angular-nodejs-example/index.html deleted file mode 100644 index 4b141cfb8..000000000 --- a/src/main/ui/dist/angular-nodejs-example/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - AngularNodejsExample - - - - - - - - diff --git a/src/main/ui/dist/angular-nodejs-example/main-es2015.js b/src/main/ui/dist/angular-nodejs-example/main-es2015.js deleted file mode 100644 index 7009dde10..000000000 --- a/src/main/ui/dist/angular-nodejs-example/main-es2015.js +++ /dev/null @@ -1,575 +0,0 @@ -(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["main"],{ - -/***/ "./$$_lazy_route_resource lazy recursive": -/*!******************************************************!*\ - !*** ./$$_lazy_route_resource lazy namespace object ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -function webpackEmptyAsyncContext(req) { - // Here Promise.resolve().then() is used instead of new Promise() to prevent - // uncaught exception popping up in devtools - return Promise.resolve().then(function() { - var e = new Error("Cannot find module '" + req + "'"); - e.code = 'MODULE_NOT_FOUND'; - throw e; - }); -} -webpackEmptyAsyncContext.keys = function() { return []; }; -webpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext; -module.exports = webpackEmptyAsyncContext; -webpackEmptyAsyncContext.id = "./$$_lazy_route_resource lazy recursive"; - -/***/ }), - -/***/ "./src/app/app-routing.module.ts": -/*!***************************************!*\ - !*** ./src/app/app-routing.module.ts ***! - \***************************************/ -/*! exports provided: AppRoutingModule */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppRoutingModule", function() { return AppRoutingModule; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js"); - - - - -const routes = []; -class AppRoutingModule { -} -AppRoutingModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({ type: AppRoutingModule }); -AppRoutingModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({ factory: function AppRoutingModule_Factory(t) { return new (t || AppRoutingModule)(); }, imports: [[_angular_router__WEBPACK_IMPORTED_MODULE_1__["RouterModule"].forRoot(routes)], - _angular_router__WEBPACK_IMPORTED_MODULE_1__["RouterModule"]] }); -(function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsetNgModuleScope"](AppRoutingModule, { imports: [_angular_router__WEBPACK_IMPORTED_MODULE_1__["RouterModule"]], exports: [_angular_router__WEBPACK_IMPORTED_MODULE_1__["RouterModule"]] }); })(); -/*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](AppRoutingModule, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], - args: [{ - imports: [_angular_router__WEBPACK_IMPORTED_MODULE_1__["RouterModule"].forRoot(routes)], - exports: [_angular_router__WEBPACK_IMPORTED_MODULE_1__["RouterModule"]] - }] - }], null, null); })(); - - -/***/ }), - -/***/ "./src/app/app.component.ts": -/*!**********************************!*\ - !*** ./src/app/app.component.ts ***! - \**********************************/ -/*! exports provided: AppComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppComponent", function() { return AppComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/__ivy_ngcc__/fesm2015/forms.js"); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm2015/operators/index.js"); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm2015/index.js"); -/* harmony import */ var _app_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./app.service */ "./src/app/app.service.ts"); -/* harmony import */ var _header_header_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./header/header.component */ "./src/app/header/header.component.ts"); -/* harmony import */ var _display_board_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./display-board.component */ "./src/app/display-board.component.ts"); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js"); -/* harmony import */ var _users_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./users.component */ "./src/app/users.component.ts"); - - - - - - - - - - - -function AppComponent_app_users_26_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](0, "app-users", 16); -} if (rf & 2) { - const ctx_r0 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("users", ctx_r0.users); -} } -class AppComponent { - constructor(appService) { - this.appService = appService; - this.title = 'angular-nodejs-example'; - this.userForm = new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormGroup"]({ - firstName: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('', _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].nullValidator && _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].required), - lastName: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('', _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].nullValidator && _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].required), - email: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('', _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].nullValidator && _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].required) - }); - this.users = []; - this.userCount = 0; - this.destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_3__["Subject"](); - } - onSubmit() { - this.appService.addUser(this.userForm.value).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__["takeUntil"])(this.destroy$)).subscribe(data => { - console.log('message::::', data); - this.userCount = this.userCount + 1; - console.log(this.userCount); - this.userForm.reset(); - }); - } - getAllUsers() { - this.appService.getUsers().pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__["takeUntil"])(this.destroy$)).subscribe((users) => { - this.users = users; - }); - } - ngOnDestroy() { - this.destroy$.next(true); - this.destroy$.unsubscribe(); - } -} -AppComponent.ɵfac = function AppComponent_Factory(t) { return new (t || AppComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_app_service__WEBPACK_IMPORTED_MODULE_4__["AppService"])); }; -AppComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: AppComponent, selectors: [["app-root"]], decls: 27, vars: 4, consts: [[1, "container"], [1, "row"], [1, "col-md-7", "mrgnbtm"], [3, "formGroup", "ngSubmit"], [1, "form-group", "col-md-6"], ["for", "exampleInputEmail1"], ["type", "text", "formControlName", "firstName", "id", "exampleInputEmail1", "aria-describedby", "emailHelp", "placeholder", "First Name", 1, "form-control"], ["for", "exampleInputPassword1"], ["type", "text", "formControlName", "lastName", "id", "exampleInputPassword1", "placeholder", "Last Name", 1, "form-control"], [1, "form-group", "col-md-12"], ["type", "text", "formControlName", "email", "id", "exampleInputEmail1", "aria-describedby", "emailHelp", "placeholder", "Email", 1, "form-control"], ["type", "submit", 1, "btn", "btn-danger", 3, "disabled"], [1, "col-md-4", "mrgnbtm"], [3, "userCount", "getUsersEvent"], [1, "mrgnbtm"], [3, "users", 4, "ngIf"], [3, "users"]], template: function AppComponent_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](0, "app-header"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "div", 0); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "div", 1); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](3, "div", 2); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](4, "h2"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](5, "Create User"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](6, "form", 3); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("ngSubmit", function AppComponent_Template_form_ngSubmit_6_listener() { return ctx.onSubmit(); }); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](7, "div", 1); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](8, "div", 4); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](9, "label", 5); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](10, "First Name"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](11, "input", 6); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](12, "div", 4); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](13, "label", 7); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](14, "Last Name"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](15, "input", 8); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](16, "div", 1); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](17, "div", 9); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](18, "label", 5); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](19, "Email"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](20, "input", 10); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](21, "button", 11); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](22, "Create"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](23, "div", 12); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](24, "app-display-board", 13); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("getUsersEvent", function AppComponent_Template_app_display_board_getUsersEvent_24_listener() { return ctx.getAllUsers(); }); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](25, "div", 14); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](26, AppComponent_app_users_26_Template, 1, 1, "app-users", 15); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - } if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](6); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("formGroup", ctx.userForm); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](15); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("disabled", !ctx.userForm.valid); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("userCount", ctx.userCount); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.users.length !== 0); - } }, directives: [_header_header_component__WEBPACK_IMPORTED_MODULE_5__["HeaderComponent"], _angular_forms__WEBPACK_IMPORTED_MODULE_1__["ɵangular_packages_forms_forms_y"], _angular_forms__WEBPACK_IMPORTED_MODULE_1__["NgControlStatusGroup"], _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormGroupDirective"], _angular_forms__WEBPACK_IMPORTED_MODULE_1__["DefaultValueAccessor"], _angular_forms__WEBPACK_IMPORTED_MODULE_1__["NgControlStatus"], _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControlName"], _display_board_component__WEBPACK_IMPORTED_MODULE_6__["DisplayBoardComponent"], _angular_common__WEBPACK_IMPORTED_MODULE_7__["NgIf"], _users_component__WEBPACK_IMPORTED_MODULE_8__["UsersComponent"]], styles: [".mrgnbtm[_ngcontent-%COMP%] {\n margin-top: 20px;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYXBwLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxnQkFBZ0I7QUFDbEIiLCJmaWxlIjoic3JjL2FwcC9hcHAuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tcmduYnRtIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbn1cbiJdfQ== */"] }); -/*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](AppComponent, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], - args: [{ - selector: 'app-root', - templateUrl: './app.component.html', - styleUrls: ['./app.component.css'] - }] - }], function () { return [{ type: _app_service__WEBPACK_IMPORTED_MODULE_4__["AppService"] }]; }, null); })(); - - -/***/ }), - -/***/ "./src/app/app.module.ts": -/*!*******************************!*\ - !*** ./src/app/app.module.ts ***! - \*******************************/ -/*! exports provided: AppModule */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppModule", function() { return AppModule; }); -/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/platform-browser */ "./node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/platform-browser.js"); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/__ivy_ngcc__/fesm2015/forms.js"); -/* harmony import */ var _app_routing_module__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./app-routing.module */ "./src/app/app-routing.module.ts"); -/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/common/http */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js"); -/* harmony import */ var _app_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./app.component */ "./src/app/app.component.ts"); -/* harmony import */ var _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/platform-browser/animations */ "./node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/animations.js"); -/* harmony import */ var _header_header_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./header/header.component */ "./src/app/header/header.component.ts"); -/* harmony import */ var _display_board_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./display-board.component */ "./src/app/display-board.component.ts"); -/* harmony import */ var _users_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./users.component */ "./src/app/users.component.ts"); - - - - - - - - - - - -// state related imports -// import { StoreModule } from '@ngrx/store'; -// import { StoreDevtoolsModule } from '@ngrx/store-devtools'; -// import { reducers, metaReducers } from './app-state/reducers'; -// import { CustomRouterStateSerializer } from './app-state/shared/utils'; -// import { StoreRouterConnectingModule, RouterStateSerializer } from '@ngrx/router-store'; -class AppModule { -} -AppModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineNgModule"]({ type: AppModule, bootstrap: [_app_component__WEBPACK_IMPORTED_MODULE_5__["AppComponent"]] }); -AppModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineInjector"]({ factory: function AppModule_Factory(t) { return new (t || AppModule)(); }, providers: [], imports: [[ - _angular_platform_browser__WEBPACK_IMPORTED_MODULE_0__["BrowserModule"], - _app_routing_module__WEBPACK_IMPORTED_MODULE_3__["AppRoutingModule"], - _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_6__["BrowserAnimationsModule"], - _angular_forms__WEBPACK_IMPORTED_MODULE_2__["ReactiveFormsModule"], - _angular_common_http__WEBPACK_IMPORTED_MODULE_4__["HttpClientModule"], - ]] }); -(function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵsetNgModuleScope"](AppModule, { declarations: [_app_component__WEBPACK_IMPORTED_MODULE_5__["AppComponent"], - _header_header_component__WEBPACK_IMPORTED_MODULE_7__["HeaderComponent"], - _display_board_component__WEBPACK_IMPORTED_MODULE_8__["DisplayBoardComponent"], - _users_component__WEBPACK_IMPORTED_MODULE_9__["UsersComponent"]], imports: [_angular_platform_browser__WEBPACK_IMPORTED_MODULE_0__["BrowserModule"], - _app_routing_module__WEBPACK_IMPORTED_MODULE_3__["AppRoutingModule"], - _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_6__["BrowserAnimationsModule"], - _angular_forms__WEBPACK_IMPORTED_MODULE_2__["ReactiveFormsModule"], - _angular_common_http__WEBPACK_IMPORTED_MODULE_4__["HttpClientModule"]] }); })(); -/*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](AppModule, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"], - args: [{ - declarations: [ - _app_component__WEBPACK_IMPORTED_MODULE_5__["AppComponent"], - _header_header_component__WEBPACK_IMPORTED_MODULE_7__["HeaderComponent"], - _display_board_component__WEBPACK_IMPORTED_MODULE_8__["DisplayBoardComponent"], - _users_component__WEBPACK_IMPORTED_MODULE_9__["UsersComponent"] - ], - imports: [ - _angular_platform_browser__WEBPACK_IMPORTED_MODULE_0__["BrowserModule"], - _app_routing_module__WEBPACK_IMPORTED_MODULE_3__["AppRoutingModule"], - _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_6__["BrowserAnimationsModule"], - _angular_forms__WEBPACK_IMPORTED_MODULE_2__["ReactiveFormsModule"], - _angular_common_http__WEBPACK_IMPORTED_MODULE_4__["HttpClientModule"], - ], - providers: [], - bootstrap: [_app_component__WEBPACK_IMPORTED_MODULE_5__["AppComponent"]] - }] - }], null, null); })(); - - -/***/ }), - -/***/ "./src/app/app.service.ts": -/*!********************************!*\ - !*** ./src/app/app.service.ts ***! - \********************************/ -/*! exports provided: AppService */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppService", function() { return AppService; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); -/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/common/http */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js"); - - - -class AppService { - constructor(http) { - this.http = http; - this.rootURL = '/api'; - } - getUsers() { - return this.http.get(this.rootURL + '/users'); - } - addUser(user) { - return this.http.post(this.rootURL + '/user', { user }); - } -} -AppService.ɵfac = function AppService_Factory(t) { return new (t || AppService)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](_angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpClient"])); }; -AppService.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: AppService, factory: AppService.ɵfac, providedIn: 'root' }); -/*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](AppService, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], - args: [{ - providedIn: 'root' - }] - }], function () { return [{ type: _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpClient"] }]; }, null); })(); - - -/***/ }), - -/***/ "./src/app/display-board.component.ts": -/*!********************************************!*\ - !*** ./src/app/display-board.component.ts ***! - \********************************************/ -/*! exports provided: DisplayBoardComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DisplayBoardComponent", function() { return DisplayBoardComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); - - -class DisplayBoardComponent { - constructor() { - this.userCount = 0; - this.getUsersEvent = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); - } - ngOnInit() { - } - getAllUsers() { - this.getUsersEvent.emit('get all users'); - } -} -DisplayBoardComponent.ɵfac = function DisplayBoardComponent_Factory(t) { return new (t || DisplayBoardComponent)(); }; -DisplayBoardComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: DisplayBoardComponent, selectors: [["app-display-board"]], inputs: { userCount: "userCount" }, outputs: { getUsersEvent: "getUsersEvent" }, decls: 8, vars: 1, consts: [[1, "display-board"], [1, "number"], [1, "btn"], [1, "btn", "btn-warning", 3, "click"]], template: function DisplayBoardComponent_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 0); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "h4"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](2, "Users Created"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](3, "div", 1); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](4); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](5, "div", 2); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](6, "button", 3); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function DisplayBoardComponent_Template_button_click_6_listener() { return ctx.getAllUsers(); }); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](7, "Get All Users"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - } if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](4); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate1"](" ", ctx.userCount, " "); - } }, styles: [".display-board[_ngcontent-%COMP%] {\n width: 100%;\n background-color: rgb(193, 236, 112);\n padding: 5%;\n}\n\n.number[_ngcontent-%COMP%] {\n color: red;\n font-size: 75px;\n text-align: center;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvZGlzcGxheS1ib2FyZC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVztFQUNYLG9DQUFvQztFQUNwQyxXQUFXO0FBQ2I7O0FBRUE7RUFDRSxVQUFVO0VBQ1YsZUFBZTtFQUNmLGtCQUFrQjtBQUNwQiIsImZpbGUiOiJzcmMvYXBwL2Rpc3BsYXktYm9hcmQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5kaXNwbGF5LWJvYXJkIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxOTMsIDIzNiwgMTEyKTtcbiAgcGFkZGluZzogNSU7XG59XG5cbi5udW1iZXIge1xuICBjb2xvcjogcmVkO1xuICBmb250LXNpemU6IDc1cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbiJdfQ== */"] }); -/*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](DisplayBoardComponent, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], - args: [{ - selector: 'app-display-board', - templateUrl: './display-board.component.html', - styleUrls: ['./display-board.component.css'] - }] - }], function () { return []; }, { userCount: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] - }], getUsersEvent: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] - }] }); })(); - - -/***/ }), - -/***/ "./src/app/header/header.component.ts": -/*!********************************************!*\ - !*** ./src/app/header/header.component.ts ***! - \********************************************/ -/*! exports provided: HeaderComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderComponent", function() { return HeaderComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); - - -class HeaderComponent { - constructor() { - } - ngOnInit() { - } -} -HeaderComponent.ɵfac = function HeaderComponent_Factory(t) { return new (t || HeaderComponent)(); }; -HeaderComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: HeaderComponent, selectors: [["app-header"]], decls: 3, vars: 0, consts: [[1, "header"]], template: function HeaderComponent_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 0); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "h1"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](2, "Angular With NodeJS"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - } }, styles: [".header[_ngcontent-%COMP%] {\n width: 100%;\n padding: 2%;\n background-color: blueviolet;\n color: white;\n text-align: center;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvaGVhZGVyL2hlYWRlci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVztFQUNYLFdBQVc7RUFDWCw0QkFBNEI7RUFDNUIsWUFBWTtFQUNaLGtCQUFrQjtBQUNwQiIsImZpbGUiOiJzcmMvYXBwL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5oZWFkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMiU7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsdWV2aW9sZXQ7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuIl19 */"] }); -/*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](HeaderComponent, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], - args: [{ - selector: 'app-header', - templateUrl: './header.component.html', - styleUrls: ['./header.component.css'] - }] - }], function () { return []; }, null); })(); - - -/***/ }), - -/***/ "./src/app/users.component.ts": -/*!************************************!*\ - !*** ./src/app/users.component.ts ***! - \************************************/ -/*! exports provided: UsersComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UsersComponent", function() { return UsersComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js"); - - - -function UsersComponent_tr_15_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "tr"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "td"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](3, "td"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](4); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](5, "td"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](6); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](7, "td"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](8); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); -} if (rf & 2) { - const user_r2 = ctx.$implicit; - const i_r3 = ctx.index; - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate"](i_r3 + 1); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate"](user_r2.firstName); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate"](user_r2.lastName); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate"](user_r2.email); -} } -class UsersComponent { - constructor() { - } - ngOnInit() { - } -} -UsersComponent.ɵfac = function UsersComponent_Factory(t) { return new (t || UsersComponent)(); }; -UsersComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: UsersComponent, selectors: [["app-users"]], inputs: { users: "users" }, decls: 16, vars: 1, consts: [[1, "container"], [1, "table", "table-bordered"], [4, "ngFor", "ngForOf"]], template: function UsersComponent_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 0); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "h2"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](2, "Users"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](3, "table", 1); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](4, "thead"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](5, "tr"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](6, "th"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](7, "User Id"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](8, "th"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](9, "Firstname"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](10, "th"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](11, "Lastname"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](12, "th"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](13, "Email"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](14, "tbody"); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](15, UsersComponent_tr_15_Template, 9, 4, "tr", 2); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - } if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](15); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngForOf", ctx.users); - } }, directives: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["NgForOf"]], styles: ["\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3VzZXJzLmNvbXBvbmVudC5jc3MifQ== */"] }); -/*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](UsersComponent, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], - args: [{ - selector: 'app-users', - templateUrl: './users.component.html', - styleUrls: ['./users.component.css'] - }] - }], function () { return []; }, { users: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] - }] }); })(); - - -/***/ }), - -/***/ "./src/environments/environment.ts": -/*!*****************************************!*\ - !*** ./src/environments/environment.ts ***! - \*****************************************/ -/*! exports provided: environment */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "environment", function() { return environment; }); -// This file can be replaced during build by using the `fileReplacements` array. -// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. -// The list of file replacements can be found in `angular.json`. -const environment = { - production: false -}; -/* - * For easier debugging in development mode, you can import the following file - * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. - * - * This import should be commented out in production mode because it will have a negative impact - * on performance if an error is thrown. - */ -// import 'zone.js/dist/zone-error'; // Included with Angular CLI. - - -/***/ }), - -/***/ "./src/main.ts": -/*!*********************!*\ - !*** ./src/main.ts ***! - \*********************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); -/* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./environments/environment */ "./src/environments/environment.ts"); -/* harmony import */ var _app_app_module__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./app/app.module */ "./src/app/app.module.ts"); -/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/platform-browser */ "./node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/platform-browser.js"); - - - - -if (_environments_environment__WEBPACK_IMPORTED_MODULE_1__["environment"].production) { - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["enableProdMode"])(); -} -_angular_platform_browser__WEBPACK_IMPORTED_MODULE_3__["platformBrowser"]().bootstrapModule(_app_app_module__WEBPACK_IMPORTED_MODULE_2__["AppModule"]) - .catch(err => console.error(err)); - - -/***/ }), - -/***/ 0: -/*!***************************!*\ - !*** multi ./src/main.ts ***! - \***************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! /Users/bhargavbachina/Projects/angular-nodejs-example/my-app/src/main.ts */"./src/main.ts"); - - -/***/ }) - -},[[0,"runtime","vendor"]]]); -//# sourceMappingURL=main-es2015.js.map \ No newline at end of file diff --git a/src/main/ui/dist/angular-nodejs-example/main-es2015.js.map b/src/main/ui/dist/angular-nodejs-example/main-es2015.js.map deleted file mode 100644 index 67159bc32..000000000 --- a/src/main/ui/dist/angular-nodejs-example/main-es2015.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/app.service.ts","./src/app/display-board.component.ts","./src/app/display-board.component.html","./src/app/header/header.component.ts","./src/app/header/header.component.html","./src/app/users.component.ts","./src/app/users.component.html","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,wE;;;;;;;;;;;;ACZA;AAAA;AAAA;AAAA;AAAyC;AACc;;;AAGvD,MAAM,MAAM,GAAW,EAAE,CAAC;AAMnB,MAAM,gBAAgB;;+FAAhB,gBAAgB;0JAAhB,gBAAgB,kBAHlB,CAAC,4DAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7B,4DAAY;mIAEX,gBAAgB,uFAFjB,4DAAY;6FAEX,gBAAgB;cAJ5B,sDAAQ;eAAC;gBACR,OAAO,EAAE,CAAC,4DAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACvC,OAAO,EAAE,CAAC,4DAAY,CAAC;aACxB;;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqD;AACe;AAEzB;AACZ;;;;;;;;;IC+B7B,2EAAkE;;;IAA5B,+EAAe;;ADxBhD,MAAM,YAAY;IAEvB,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAE1C,UAAK,GAAG,wBAAwB,CAAC;QAEjC,aAAQ,GAAG,IAAI,wDAAS,CAAC;YACvB,SAAS,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,yDAAU,CAAC,aAAa,IAAI,yDAAU,CAAC,QAAQ,CAAC;YAC/E,QAAQ,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,yDAAU,CAAC,aAAa,IAAI,yDAAU,CAAC,QAAQ,CAAC;YAC9E,KAAK,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAE,yDAAU,CAAC,aAAa,IAAI,yDAAU,CAAC,QAAQ,CAAC;SAC5E,CAAC,CAAC;QAEH,UAAK,GAAU,EAAE,CAAC;QAClB,cAAS,GAAG,CAAC,CAAC;QAEd,aAAQ,GAAqB,IAAI,4CAAO,EAAW,CAAC;IAbP,CAAC;IAe9C,QAAQ;QAEN,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,gEAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC3F,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,gEAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAY,EAAE,EAAE;YACjF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QACT,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC9B,CAAC;;wEApCU,YAAY;4FAAZ,YAAY;QCXzB,wEAAyB;QACzB,yEACE;QAAA,yEACE;QAAA,yEACE;QAAA,qEAAI;QAAA,sEAAW;QAAA,4DAAK;QACpB,0EACE;QAD2B,wIAAY,cAAU,IAAC;QAClD,yEACE;QAAA,yEACE;QAAA,2EAAgC;QAAA,sEAAU;QAAA,4DAAQ;QAClD,uEACF;QAAA,4DAAM;QACN,0EACE;QAAA,4EAAmC;QAAA,qEAAS;QAAA,4DAAQ;QACpD,uEACF;QAAA,4DAAM;QACR,4DAAM;QACN,0EACE;QAAA,0EACE;QAAA,4EAAgC;QAAA,iEAAK;QAAA,4DAAQ;QAC7C,wEACF;QAAA,4DAAM;QACR,4DAAM;QACN,8EAA0E;QAAA,kEAAM;QAAA,4DAAS;QAC3F,4DAAO;QACT,4DAAM;QACN,2EACE;QAAA,yFAIoB;QAFnB,gKAAiB,iBAAa,IAAC;QAEhC,4DAAoB;QACtB,4DAAM;QACR,4DAAM;QACR,4DAAM;QACN,2EACE;QAAA,uHAAsD;QACxD,4DAAM;;QA/BM,0DAAsB;QAAtB,mFAAsB;QAiBJ,2DAA4B;QAA5B,yFAA4B;QAKnD,0DAAuB;QAAvB,oFAAuB;QAQjB,0DAA0B;QAA1B,wFAA0B;;6FDxB1B,YAAY;cALxB,uDAAS;eAAC;gBACT,QAAQ,EAAE,UAAU;gBACpB,WAAW,EAAE,sBAAsB;gBACnC,SAAS,EAAE,CAAC,qBAAqB,CAAC;aACnC;;;;;;;;;;;;;;AEVD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AACjB;AACY;AAEG;AACA;AACT;AACgC;AACnB;AACM;AACf;;AAGnD,wBAAwB;AACxB,6CAA6C;AAC7C,8DAA8D;AAC9D,iEAAiE;AACjE,0EAA0E;AAC1E,2FAA2F;AAoDpF,MAAM,SAAS;;wFAAT,SAAS,cAFR,2DAAY;4IAEb,SAAS,mBAHT,EAAE,YAxCJ;YACP,uEAAa;YACb,oEAAgB;YAChB,4FAAuB;YACvB,kEAAmB;YACnB,qEAAgB;SAkCjB;mIAIU,SAAS,mBAhDlB,2DAAY;QACZ,wEAAe;QACf,8EAAqB;QACrB,+DAAc,aAGd,uEAAa;QACb,oEAAgB;QAChB,4FAAuB;QACvB,kEAAmB;QACnB,qEAAgB;6FAsCP,SAAS;cAlDrB,sDAAQ;eAAC;gBACR,YAAY,EAAE;oBACZ,2DAAY;oBACZ,wEAAe;oBACf,8EAAqB;oBACrB,+DAAc;iBACf;gBACD,OAAO,EAAE;oBACP,uEAAa;oBACb,oEAAgB;oBAChB,4FAAuB;oBACvB,kEAAmB;oBACnB,qEAAgB;iBAkCjB;gBACD,SAAS,EAAE,EAAE;gBACb,SAAS,EAAE,CAAC,2DAAY,CAAC;aAC1B;;;;;;;;;;;;;;ACrED;AAAA;AAAA;AAAA;AAA2C;;;AAMpC,MAAM,UAAU;IAErB,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAEpC,YAAO,GAAG,MAAM,CAAC;IAFuB,CAAC;IAIzC,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,CAAC,IAAS;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,EAAC,IAAI,EAAC,CAAC,CAAC;IACxD,CAAC;;oEAZU,UAAU;6FAAV,UAAU,WAAV,UAAU,mBAFT,MAAM;6FAEP,UAAU;cAHtB,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;ACLD;AAAA;AAAA;AAA+E;;AAOxE,MAAM,qBAAqB;IAEhC;QAES,cAAS,GAAG,CAAC,CAAC;QACb,kBAAa,GAAG,IAAI,0DAAY,EAAE,CAAC;IAH7B,CAAC;IAKjB,QAAQ;IACR,CAAC;IAED,WAAW;QACT,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC3C,CAAC;;0FAZU,qBAAqB;qGAArB,qBAAqB;QCPlC,yEACE;QAAA,qEAAI;QAAA,wEAAa;QAAA,4DAAK;QACtB,yEACE;QAAA,uDACF;QAAA,4DAAM;QACN,yEACE;QAAA,4EAAwD;QAAxB,6IAAS,iBAAa,IAAC;QAAC,wEAAa;QAAA,4DAAS;QAChF,4DAAM;QACR,4DAAM;;QALF,0DACF;QADE,yFACF;;6FDGW,qBAAqB;cALjC,uDAAS;eAAC;gBACT,QAAQ,EAAE,mBAAmB;gBAC7B,WAAW,EAAE,gCAAgC;gBAC7C,SAAS,EAAE,CAAC,+BAA+B,CAAC;aAC7C;;kBAKE,mDAAK;;kBACL,oDAAM;;;;;;;;;;;;;;AEZT;AAAA;AAAA;AAAkD;;AAO3C,MAAM,eAAe;IAE1B;IAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;8EALU,eAAe;+FAAf,eAAe;QCP5B,yEACE;QAAA,qEAAI;QAAA,8EAAmB;QAAA,4DAAK;QAC9B,4DAAM;;6FDKO,eAAe;cAL3B,uDAAS;eAAC;gBACT,QAAQ,EAAE,YAAY;gBACtB,WAAW,EAAE,yBAAyB;gBACtC,SAAS,EAAE,CAAC,wBAAwB,CAAC;aACtC;;;;;;;;;;;;;;AEND;AAAA;AAAA;AAAA;AAAyD;;;;ICYnD,qEACE;IAAA,qEAAI;IAAA,uDAAS;IAAA,4DAAK;IAClB,qEAAI;IAAA,uDAAkB;IAAA,4DAAK;IAC3B,qEAAI;IAAA,uDAAiB;IAAA,4DAAK;IAC1B,qEAAI;IAAA,uDAAc;IAAA,4DAAK;IACzB,4DAAK;;;;IAJC,0DAAS;IAAT,yEAAS;IACT,0DAAkB;IAAlB,kFAAkB;IAClB,0DAAiB;IAAjB,iFAAiB;IACjB,0DAAc;IAAd,8EAAc;;ADTnB,MAAM,cAAc;IAEzB;IAAgB,CAAC;IAIjB,QAAQ;IACR,CAAC;;4EAPU,cAAc;8FAAd,cAAc;QCP3B,yEACE;QAAA,qEAAI;QAAA,gEAAK;QAAA,4DAAK;QACd,2EACE;QAAA,wEACE;QAAA,qEACE;QAAA,qEAAI;QAAA,kEAAO;QAAA,4DAAK;QAChB,qEAAI;QAAA,oEAAS;QAAA,4DAAK;QAClB,sEAAI;QAAA,oEAAQ;QAAA,4DAAK;QACjB,sEAAI;QAAA,iEAAK;QAAA,4DAAK;QAChB,4DAAK;QACP,4DAAQ;QACR,yEACE;QAAA,0GACE;QAKJ,4DAAQ;QACV,4DAAQ;QACV,4DAAM;;QARI,2DAAyC;QAAzC,8EAAyC;;6FDLtC,cAAc;cAL1B,uDAAS;eAAC;gBACT,QAAQ,EAAE,WAAW;gBACrB,WAAW,EAAE,wBAAwB;gBACrC,SAAS,EAAE,CAAC,uBAAuB,CAAC;aACrC;;kBAKE,mDAAK;;;;;;;;;;;;;;AEXR;AAAA;AAAA,gFAAgF;AAChF,0EAA0E;AAC1E,gEAAgE;AAEzD,MAAM,WAAW,GAAG;IACzB,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF;;;;;;GAMG;AACH,mEAAmE;;;;;;;;;;;;;ACfnE;AAAA;AAAA;AAAA;AAAA;AAA+C;AAIU;;;AAEzD,IAAI,qEAAW,CAAC,UAAU,EAAE;IAC1B,oEAAc,EAAE,CAAC;CAClB;AAED,2EAAwB,gBAAgB,CAAC,0DAAU;KAChD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC","file":"main-es2015.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\n\nconst routes: Routes = [];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Component, OnDestroy } from '@angular/core';\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\nimport { AppService } from './app.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent implements OnDestroy {\n\n constructor(private appService: AppService) {}\n\n title = 'angular-nodejs-example';\n\n userForm = new FormGroup({\n firstName: new FormControl('', Validators.nullValidator && Validators.required),\n lastName: new FormControl('', Validators.nullValidator && Validators.required),\n email: new FormControl('', Validators.nullValidator && Validators.required)\n });\n\n users: any[] = [];\n userCount = 0;\n\n destroy$: Subject = new Subject();\n\n onSubmit() {\n\n this.appService.addUser(this.userForm.value).pipe(takeUntil(this.destroy$)).subscribe(data => {\n console.log('message::::', data);\n this.userCount = this.userCount + 1;\n console.log(this.userCount);\n this.userForm.reset();\n });\n }\n\n getAllUsers() {\n this.appService.getUsers().pipe(takeUntil(this.destroy$)).subscribe((users: any[]) => {\n this.users = users;\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n","\n
\n
\n
\n

Create User

\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n
\n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { AppRoutingModule } from './app-routing.module';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AppComponent } from './app.component';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { HeaderComponent } from './header/header.component';\nimport { DisplayBoardComponent } from './display-board.component';\nimport { UsersComponent } from './users.component';\nimport { environment } from '../environments/environment';\n\n// state related imports\n// import { StoreModule } from '@ngrx/store';\n// import { StoreDevtoolsModule } from '@ngrx/store-devtools';\n// import { reducers, metaReducers } from './app-state/reducers';\n// import { CustomRouterStateSerializer } from './app-state/shared/utils';\n// import { StoreRouterConnectingModule, RouterStateSerializer } from '@ngrx/router-store';\n\n@NgModule({\n declarations: [\n AppComponent,\n HeaderComponent,\n DisplayBoardComponent,\n UsersComponent\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n BrowserAnimationsModule,\n ReactiveFormsModule,\n HttpClientModule,\n /**\n * StoreModule.forRoot is imported once in the root module, accepting a reducer\n * function or object map of reducer functions. If passed an object of\n * reducers, combineReducers will be run creating your application\n * meta-reducer. This returns all providers for an @ngrx/store\n * based application.\n\n StoreModule.forRoot(reducers, { metaReducers }),\n\n /**\n * @ngrx/router-store keeps router state up-to-date in the store.\n\n StoreRouterConnectingModule,\n\n /**\n * Store devtools instrument the store retaining past versions of state\n * and recalculating new states. This enables powerful time-travel\n * debugging.\n *\n * To use the debugger, install the Redux Devtools extension for either\n * Chrome or Firefox\n *\n * See: https://github.com/zalmoxisus/redux-devtools-extension\n\n !environment.production ? StoreDevtoolsModule.instrument() : [],\n\n /**\n * EffectsModule.forRoot() is imported once in the root module and\n * sets up the effects class to be initialized immediately when the\n * application starts.\n *\n * See: https://github.com/ngrx/platform/blob/master/docs/effects/api.md#forroot\n */\n ],\n providers: [],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppService {\n\n constructor(private http: HttpClient) { }\n\n rootURL = '/api';\n\n getUsers() {\n return this.http.get(this.rootURL + '/users');\n }\n\n addUser(user: any) {\n return this.http.post(this.rootURL + '/user', {user});\n }\n\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'app-display-board',\n templateUrl: './display-board.component.html',\n styleUrls: ['./display-board.component.css']\n})\nexport class DisplayBoardComponent implements OnInit {\n\n constructor() { }\n\n @Input() userCount = 0;\n @Output() getUsersEvent = new EventEmitter();\n\n ngOnInit(): void {\n }\n\n getAllUsers() {\n this.getUsersEvent.emit('get all users');\n }\n\n}\n","
\n

Users Created

\n
\n {{userCount}}\n
\n
\n \n
\n
\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.css']\n})\nexport class HeaderComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","
\n

Angular With NodeJS

\n
\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-users',\n templateUrl: './users.component.html',\n styleUrls: ['./users.component.css']\n})\nexport class UsersComponent implements OnInit {\n\n constructor() { }\n\n @Input() users: any[];\n\n ngOnInit(): void {\n }\n\n}\n","
\n

Users

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
User IdFirstnameLastnameEmail
{{i + 1}}{{user.firstName}}{{user.lastName}}{{user.email}}
\n
\n","// 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","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"],"sourceRoot":"webpack:///"} \ No newline at end of file diff --git a/src/main/ui/dist/angular-nodejs-example/main-es5.js b/src/main/ui/dist/angular-nodejs-example/main-es5.js deleted file mode 100644 index 3840bb0df..000000000 --- a/src/main/ui/dist/angular-nodejs-example/main-es5.js +++ /dev/null @@ -1,1124 +0,0 @@ -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["main"], { - /***/ - "./$$_lazy_route_resource lazy recursive": - /*!******************************************************!*\ - !*** ./$$_lazy_route_resource lazy namespace object ***! - \******************************************************/ - - /*! no static exports found */ - - /***/ - function $$_lazy_route_resourceLazyRecursive(module, exports) { - function webpackEmptyAsyncContext(req) { - // Here Promise.resolve().then() is used instead of new Promise() to prevent - // uncaught exception popping up in devtools - return Promise.resolve().then(function () { - var e = new Error("Cannot find module '" + req + "'"); - e.code = 'MODULE_NOT_FOUND'; - throw e; - }); - } - - webpackEmptyAsyncContext.keys = function () { - return []; - }; - - webpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext; - module.exports = webpackEmptyAsyncContext; - webpackEmptyAsyncContext.id = "./$$_lazy_route_resource lazy recursive"; - /***/ - }, - - /***/ - "./src/app/app-routing.module.ts": - /*!***************************************!*\ - !*** ./src/app/app-routing.module.ts ***! - \***************************************/ - - /*! exports provided: AppRoutingModule */ - - /***/ - function srcAppAppRoutingModuleTs(module, __webpack_exports__, __webpack_require__) { - "use strict"; - - __webpack_require__.r(__webpack_exports__); - /* harmony export (binding) */ - - - __webpack_require__.d(__webpack_exports__, "AppRoutingModule", function () { - return AppRoutingModule; - }); - /* harmony import */ - - - var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( - /*! @angular/core */ - "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); - /* harmony import */ - - - var _angular_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( - /*! @angular/router */ - "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js"); - - var routes = []; - - var AppRoutingModule = function AppRoutingModule() { - _classCallCheck(this, AppRoutingModule); - }; - - AppRoutingModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({ - type: AppRoutingModule - }); - AppRoutingModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({ - factory: function AppRoutingModule_Factory(t) { - return new (t || AppRoutingModule)(); - }, - imports: [[_angular_router__WEBPACK_IMPORTED_MODULE_1__["RouterModule"].forRoot(routes)], _angular_router__WEBPACK_IMPORTED_MODULE_1__["RouterModule"]] - }); - - (function () { - (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsetNgModuleScope"](AppRoutingModule, { - imports: [_angular_router__WEBPACK_IMPORTED_MODULE_1__["RouterModule"]], - exports: [_angular_router__WEBPACK_IMPORTED_MODULE_1__["RouterModule"]] - }); - })(); - /*@__PURE__*/ - - - (function () { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](AppRoutingModule, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], - args: [{ - imports: [_angular_router__WEBPACK_IMPORTED_MODULE_1__["RouterModule"].forRoot(routes)], - exports: [_angular_router__WEBPACK_IMPORTED_MODULE_1__["RouterModule"]] - }] - }], null, null); - })(); - /***/ - - }, - - /***/ - "./src/app/app.component.ts": - /*!**********************************!*\ - !*** ./src/app/app.component.ts ***! - \**********************************/ - - /*! exports provided: AppComponent */ - - /***/ - function srcAppAppComponentTs(module, __webpack_exports__, __webpack_require__) { - "use strict"; - - __webpack_require__.r(__webpack_exports__); - /* harmony export (binding) */ - - - __webpack_require__.d(__webpack_exports__, "AppComponent", function () { - return AppComponent; - }); - /* harmony import */ - - - var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( - /*! @angular/core */ - "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); - /* harmony import */ - - - var _angular_forms__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( - /*! @angular/forms */ - "./node_modules/@angular/forms/__ivy_ngcc__/fesm2015/forms.js"); - /* harmony import */ - - - var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( - /*! rxjs/operators */ - "./node_modules/rxjs/_esm2015/operators/index.js"); - /* harmony import */ - - - var rxjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( - /*! rxjs */ - "./node_modules/rxjs/_esm2015/index.js"); - /* harmony import */ - - - var _app_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( - /*! ./app.service */ - "./src/app/app.service.ts"); - /* harmony import */ - - - var _header_header_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( - /*! ./header/header.component */ - "./src/app/header/header.component.ts"); - /* harmony import */ - - - var _display_board_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( - /*! ./display-board.component */ - "./src/app/display-board.component.ts"); - /* harmony import */ - - - var _angular_common__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( - /*! @angular/common */ - "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js"); - /* harmony import */ - - - var _users_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( - /*! ./users.component */ - "./src/app/users.component.ts"); - - function AppComponent_app_users_26_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](0, "app-users", 16); - } - - if (rf & 2) { - var ctx_r0 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("users", ctx_r0.users); - } - } - - var AppComponent = - /*#__PURE__*/ - function () { - function AppComponent(appService) { - _classCallCheck(this, AppComponent); - - this.appService = appService; - this.title = 'angular-nodejs-example'; - this.userForm = new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormGroup"]({ - firstName: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('', _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].nullValidator && _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].required), - lastName: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('', _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].nullValidator && _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].required), - email: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('', _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].nullValidator && _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].required) - }); - this.users = []; - this.userCount = 0; - this.destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_3__["Subject"](); - } - - _createClass(AppComponent, [{ - key: "onSubmit", - value: function onSubmit() { - var _this = this; - - this.appService.addUser(this.userForm.value).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__["takeUntil"])(this.destroy$)).subscribe(function (data) { - console.log('message::::', data); - _this.userCount = _this.userCount + 1; - console.log(_this.userCount); - - _this.userForm.reset(); - }); - } - }, { - key: "getAllUsers", - value: function getAllUsers() { - var _this2 = this; - - this.appService.getUsers().pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__["takeUntil"])(this.destroy$)).subscribe(function (users) { - _this2.users = users; - }); - } - }, { - key: "ngOnDestroy", - value: function ngOnDestroy() { - this.destroy$.next(true); - this.destroy$.unsubscribe(); - } - }]); - - return AppComponent; - }(); - - AppComponent.ɵfac = function AppComponent_Factory(t) { - return new (t || AppComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_app_service__WEBPACK_IMPORTED_MODULE_4__["AppService"])); - }; - - AppComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ - type: AppComponent, - selectors: [["app-root"]], - decls: 27, - vars: 4, - consts: [[1, "container"], [1, "row"], [1, "col-md-7", "mrgnbtm"], [3, "formGroup", "ngSubmit"], [1, "form-group", "col-md-6"], ["for", "exampleInputEmail1"], ["type", "text", "formControlName", "firstName", "id", "exampleInputEmail1", "aria-describedby", "emailHelp", "placeholder", "First Name", 1, "form-control"], ["for", "exampleInputPassword1"], ["type", "text", "formControlName", "lastName", "id", "exampleInputPassword1", "placeholder", "Last Name", 1, "form-control"], [1, "form-group", "col-md-12"], ["type", "text", "formControlName", "email", "id", "exampleInputEmail1", "aria-describedby", "emailHelp", "placeholder", "Email", 1, "form-control"], ["type", "submit", 1, "btn", "btn-danger", 3, "disabled"], [1, "col-md-4", "mrgnbtm"], [3, "userCount", "getUsersEvent"], [1, "mrgnbtm"], [3, "users", 4, "ngIf"], [3, "users"]], - template: function AppComponent_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](0, "app-header"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "div", 0); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "div", 1); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](3, "div", 2); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](4, "h2"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](5, "Create User"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](6, "form", 3); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("ngSubmit", function AppComponent_Template_form_ngSubmit_6_listener() { - return ctx.onSubmit(); - }); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](7, "div", 1); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](8, "div", 4); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](9, "label", 5); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](10, "First Name"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](11, "input", 6); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](12, "div", 4); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](13, "label", 7); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](14, "Last Name"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](15, "input", 8); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](16, "div", 1); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](17, "div", 9); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](18, "label", 5); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](19, "Email"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](20, "input", 10); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](21, "button", 11); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](22, "Create"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](23, "div", 12); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](24, "app-display-board", 13); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("getUsersEvent", function AppComponent_Template_app_display_board_getUsersEvent_24_listener() { - return ctx.getAllUsers(); - }); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](25, "div", 14); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](26, AppComponent_app_users_26_Template, 1, 1, "app-users", 15); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - } - - if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](6); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("formGroup", ctx.userForm); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](15); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("disabled", !ctx.userForm.valid); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](3); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("userCount", ctx.userCount); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.users.length !== 0); - } - }, - directives: [_header_header_component__WEBPACK_IMPORTED_MODULE_5__["HeaderComponent"], _angular_forms__WEBPACK_IMPORTED_MODULE_1__["ɵangular_packages_forms_forms_y"], _angular_forms__WEBPACK_IMPORTED_MODULE_1__["NgControlStatusGroup"], _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormGroupDirective"], _angular_forms__WEBPACK_IMPORTED_MODULE_1__["DefaultValueAccessor"], _angular_forms__WEBPACK_IMPORTED_MODULE_1__["NgControlStatus"], _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControlName"], _display_board_component__WEBPACK_IMPORTED_MODULE_6__["DisplayBoardComponent"], _angular_common__WEBPACK_IMPORTED_MODULE_7__["NgIf"], _users_component__WEBPACK_IMPORTED_MODULE_8__["UsersComponent"]], - styles: [".mrgnbtm[_ngcontent-%COMP%] {\n margin-top: 20px;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYXBwLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxnQkFBZ0I7QUFDbEIiLCJmaWxlIjoic3JjL2FwcC9hcHAuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tcmduYnRtIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbn1cbiJdfQ== */"] - }); - /*@__PURE__*/ - - (function () { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](AppComponent, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], - args: [{ - selector: 'app-root', - templateUrl: './app.component.html', - styleUrls: ['./app.component.css'] - }] - }], function () { - return [{ - type: _app_service__WEBPACK_IMPORTED_MODULE_4__["AppService"] - }]; - }, null); - })(); - /***/ - - }, - - /***/ - "./src/app/app.module.ts": - /*!*******************************!*\ - !*** ./src/app/app.module.ts ***! - \*******************************/ - - /*! exports provided: AppModule */ - - /***/ - function srcAppAppModuleTs(module, __webpack_exports__, __webpack_require__) { - "use strict"; - - __webpack_require__.r(__webpack_exports__); - /* harmony export (binding) */ - - - __webpack_require__.d(__webpack_exports__, "AppModule", function () { - return AppModule; - }); - /* harmony import */ - - - var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( - /*! @angular/platform-browser */ - "./node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/platform-browser.js"); - /* harmony import */ - - - var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( - /*! @angular/core */ - "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); - /* harmony import */ - - - var _angular_forms__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( - /*! @angular/forms */ - "./node_modules/@angular/forms/__ivy_ngcc__/fesm2015/forms.js"); - /* harmony import */ - - - var _app_routing_module__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( - /*! ./app-routing.module */ - "./src/app/app-routing.module.ts"); - /* harmony import */ - - - var _angular_common_http__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( - /*! @angular/common/http */ - "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js"); - /* harmony import */ - - - var _app_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( - /*! ./app.component */ - "./src/app/app.component.ts"); - /* harmony import */ - - - var _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( - /*! @angular/platform-browser/animations */ - "./node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/animations.js"); - /* harmony import */ - - - var _header_header_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( - /*! ./header/header.component */ - "./src/app/header/header.component.ts"); - /* harmony import */ - - - var _display_board_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( - /*! ./display-board.component */ - "./src/app/display-board.component.ts"); - /* harmony import */ - - - var _users_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( - /*! ./users.component */ - "./src/app/users.component.ts"); // state related imports - // import { StoreModule } from '@ngrx/store'; - // import { StoreDevtoolsModule } from '@ngrx/store-devtools'; - // import { reducers, metaReducers } from './app-state/reducers'; - // import { CustomRouterStateSerializer } from './app-state/shared/utils'; - // import { StoreRouterConnectingModule, RouterStateSerializer } from '@ngrx/router-store'; - - - var AppModule = function AppModule() { - _classCallCheck(this, AppModule); - }; - - AppModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineNgModule"]({ - type: AppModule, - bootstrap: [_app_component__WEBPACK_IMPORTED_MODULE_5__["AppComponent"]] - }); - AppModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineInjector"]({ - factory: function AppModule_Factory(t) { - return new (t || AppModule)(); - }, - providers: [], - imports: [[_angular_platform_browser__WEBPACK_IMPORTED_MODULE_0__["BrowserModule"], _app_routing_module__WEBPACK_IMPORTED_MODULE_3__["AppRoutingModule"], _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_6__["BrowserAnimationsModule"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__["ReactiveFormsModule"], _angular_common_http__WEBPACK_IMPORTED_MODULE_4__["HttpClientModule"]]] - }); - - (function () { - (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵsetNgModuleScope"](AppModule, { - declarations: [_app_component__WEBPACK_IMPORTED_MODULE_5__["AppComponent"], _header_header_component__WEBPACK_IMPORTED_MODULE_7__["HeaderComponent"], _display_board_component__WEBPACK_IMPORTED_MODULE_8__["DisplayBoardComponent"], _users_component__WEBPACK_IMPORTED_MODULE_9__["UsersComponent"]], - imports: [_angular_platform_browser__WEBPACK_IMPORTED_MODULE_0__["BrowserModule"], _app_routing_module__WEBPACK_IMPORTED_MODULE_3__["AppRoutingModule"], _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_6__["BrowserAnimationsModule"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__["ReactiveFormsModule"], _angular_common_http__WEBPACK_IMPORTED_MODULE_4__["HttpClientModule"]] - }); - })(); - /*@__PURE__*/ - - - (function () { - _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](AppModule, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"], - args: [{ - declarations: [_app_component__WEBPACK_IMPORTED_MODULE_5__["AppComponent"], _header_header_component__WEBPACK_IMPORTED_MODULE_7__["HeaderComponent"], _display_board_component__WEBPACK_IMPORTED_MODULE_8__["DisplayBoardComponent"], _users_component__WEBPACK_IMPORTED_MODULE_9__["UsersComponent"]], - imports: [_angular_platform_browser__WEBPACK_IMPORTED_MODULE_0__["BrowserModule"], _app_routing_module__WEBPACK_IMPORTED_MODULE_3__["AppRoutingModule"], _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_6__["BrowserAnimationsModule"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__["ReactiveFormsModule"], _angular_common_http__WEBPACK_IMPORTED_MODULE_4__["HttpClientModule"]], - providers: [], - bootstrap: [_app_component__WEBPACK_IMPORTED_MODULE_5__["AppComponent"]] - }] - }], null, null); - })(); - /***/ - - }, - - /***/ - "./src/app/app.service.ts": - /*!********************************!*\ - !*** ./src/app/app.service.ts ***! - \********************************/ - - /*! exports provided: AppService */ - - /***/ - function srcAppAppServiceTs(module, __webpack_exports__, __webpack_require__) { - "use strict"; - - __webpack_require__.r(__webpack_exports__); - /* harmony export (binding) */ - - - __webpack_require__.d(__webpack_exports__, "AppService", function () { - return AppService; - }); - /* harmony import */ - - - var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( - /*! @angular/core */ - "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); - /* harmony import */ - - - var _angular_common_http__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( - /*! @angular/common/http */ - "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js"); - - var AppService = - /*#__PURE__*/ - function () { - function AppService(http) { - _classCallCheck(this, AppService); - - this.http = http; - this.rootURL = '/api'; - } - - _createClass(AppService, [{ - key: "getUsers", - value: function getUsers() { - return this.http.get(this.rootURL + '/users'); - } - }, { - key: "addUser", - value: function addUser(user) { - return this.http.post(this.rootURL + '/user', { - user: user - }); - } - }]); - - return AppService; - }(); - - AppService.ɵfac = function AppService_Factory(t) { - return new (t || AppService)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](_angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpClient"])); - }; - - AppService.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ - token: AppService, - factory: AppService.ɵfac, - providedIn: 'root' - }); - /*@__PURE__*/ - - (function () { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](AppService, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], - args: [{ - providedIn: 'root' - }] - }], function () { - return [{ - type: _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpClient"] - }]; - }, null); - })(); - /***/ - - }, - - /***/ - "./src/app/display-board.component.ts": - /*!********************************************!*\ - !*** ./src/app/display-board.component.ts ***! - \********************************************/ - - /*! exports provided: DisplayBoardComponent */ - - /***/ - function srcAppDisplayBoardComponentTs(module, __webpack_exports__, __webpack_require__) { - "use strict"; - - __webpack_require__.r(__webpack_exports__); - /* harmony export (binding) */ - - - __webpack_require__.d(__webpack_exports__, "DisplayBoardComponent", function () { - return DisplayBoardComponent; - }); - /* harmony import */ - - - var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( - /*! @angular/core */ - "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); - - var DisplayBoardComponent = - /*#__PURE__*/ - function () { - function DisplayBoardComponent() { - _classCallCheck(this, DisplayBoardComponent); - - this.userCount = 0; - this.getUsersEvent = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); - } - - _createClass(DisplayBoardComponent, [{ - key: "ngOnInit", - value: function ngOnInit() {} - }, { - key: "getAllUsers", - value: function getAllUsers() { - this.getUsersEvent.emit('get all users'); - } - }]); - - return DisplayBoardComponent; - }(); - - DisplayBoardComponent.ɵfac = function DisplayBoardComponent_Factory(t) { - return new (t || DisplayBoardComponent)(); - }; - - DisplayBoardComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ - type: DisplayBoardComponent, - selectors: [["app-display-board"]], - inputs: { - userCount: "userCount" - }, - outputs: { - getUsersEvent: "getUsersEvent" - }, - decls: 8, - vars: 1, - consts: [[1, "display-board"], [1, "number"], [1, "btn"], [1, "btn", "btn-warning", 3, "click"]], - template: function DisplayBoardComponent_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 0); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "h4"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](2, "Users Created"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](3, "div", 1); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](4); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](5, "div", 2); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](6, "button", 3); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function DisplayBoardComponent_Template_button_click_6_listener() { - return ctx.getAllUsers(); - }); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](7, "Get All Users"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - } - - if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](4); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate1"](" ", ctx.userCount, " "); - } - }, - styles: [".display-board[_ngcontent-%COMP%] {\n width: 100%;\n background-color: rgb(193, 236, 112);\n padding: 5%;\n}\n\n.number[_ngcontent-%COMP%] {\n color: red;\n font-size: 75px;\n text-align: center;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvZGlzcGxheS1ib2FyZC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVztFQUNYLG9DQUFvQztFQUNwQyxXQUFXO0FBQ2I7O0FBRUE7RUFDRSxVQUFVO0VBQ1YsZUFBZTtFQUNmLGtCQUFrQjtBQUNwQiIsImZpbGUiOiJzcmMvYXBwL2Rpc3BsYXktYm9hcmQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5kaXNwbGF5LWJvYXJkIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxOTMsIDIzNiwgMTEyKTtcbiAgcGFkZGluZzogNSU7XG59XG5cbi5udW1iZXIge1xuICBjb2xvcjogcmVkO1xuICBmb250LXNpemU6IDc1cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbiJdfQ== */"] - }); - /*@__PURE__*/ - - (function () { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](DisplayBoardComponent, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], - args: [{ - selector: 'app-display-board', - templateUrl: './display-board.component.html', - styleUrls: ['./display-board.component.css'] - }] - }], function () { - return []; - }, { - userCount: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] - }], - getUsersEvent: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] - }] - }); - })(); - /***/ - - }, - - /***/ - "./src/app/header/header.component.ts": - /*!********************************************!*\ - !*** ./src/app/header/header.component.ts ***! - \********************************************/ - - /*! exports provided: HeaderComponent */ - - /***/ - function srcAppHeaderHeaderComponentTs(module, __webpack_exports__, __webpack_require__) { - "use strict"; - - __webpack_require__.r(__webpack_exports__); - /* harmony export (binding) */ - - - __webpack_require__.d(__webpack_exports__, "HeaderComponent", function () { - return HeaderComponent; - }); - /* harmony import */ - - - var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( - /*! @angular/core */ - "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); - - var HeaderComponent = - /*#__PURE__*/ - function () { - function HeaderComponent() { - _classCallCheck(this, HeaderComponent); - } - - _createClass(HeaderComponent, [{ - key: "ngOnInit", - value: function ngOnInit() {} - }]); - - return HeaderComponent; - }(); - - HeaderComponent.ɵfac = function HeaderComponent_Factory(t) { - return new (t || HeaderComponent)(); - }; - - HeaderComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ - type: HeaderComponent, - selectors: [["app-header"]], - decls: 3, - vars: 0, - consts: [[1, "header"]], - template: function HeaderComponent_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 0); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "h1"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](2, "Angular With NodeJS"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - } - }, - styles: [".header[_ngcontent-%COMP%] {\n width: 100%;\n padding: 2%;\n background-color: blueviolet;\n color: white;\n text-align: center;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvaGVhZGVyL2hlYWRlci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVztFQUNYLFdBQVc7RUFDWCw0QkFBNEI7RUFDNUIsWUFBWTtFQUNaLGtCQUFrQjtBQUNwQiIsImZpbGUiOiJzcmMvYXBwL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5oZWFkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMiU7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsdWV2aW9sZXQ7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuIl19 */"] - }); - /*@__PURE__*/ - - (function () { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](HeaderComponent, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], - args: [{ - selector: 'app-header', - templateUrl: './header.component.html', - styleUrls: ['./header.component.css'] - }] - }], function () { - return []; - }, null); - })(); - /***/ - - }, - - /***/ - "./src/app/users.component.ts": - /*!************************************!*\ - !*** ./src/app/users.component.ts ***! - \************************************/ - - /*! exports provided: UsersComponent */ - - /***/ - function srcAppUsersComponentTs(module, __webpack_exports__, __webpack_require__) { - "use strict"; - - __webpack_require__.r(__webpack_exports__); - /* harmony export (binding) */ - - - __webpack_require__.d(__webpack_exports__, "UsersComponent", function () { - return UsersComponent; - }); - /* harmony import */ - - - var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( - /*! @angular/core */ - "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); - /* harmony import */ - - - var _angular_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( - /*! @angular/common */ - "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js"); - - function UsersComponent_tr_15_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "tr"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "td"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](2); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](3, "td"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](4); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](5, "td"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](6); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](7, "td"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](8); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - } - - if (rf & 2) { - var user_r2 = ctx.$implicit; - var i_r3 = ctx.index; - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate"](i_r3 + 1); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate"](user_r2.firstName); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate"](user_r2.lastName); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate"](user_r2.email); - } - } - - var UsersComponent = - /*#__PURE__*/ - function () { - function UsersComponent() { - _classCallCheck(this, UsersComponent); - } - - _createClass(UsersComponent, [{ - key: "ngOnInit", - value: function ngOnInit() {} - }]); - - return UsersComponent; - }(); - - UsersComponent.ɵfac = function UsersComponent_Factory(t) { - return new (t || UsersComponent)(); - }; - - UsersComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ - type: UsersComponent, - selectors: [["app-users"]], - inputs: { - users: "users" - }, - decls: 16, - vars: 1, - consts: [[1, "container"], [1, "table", "table-bordered"], [4, "ngFor", "ngForOf"]], - template: function UsersComponent_Template(rf, ctx) { - if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 0); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "h2"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](2, "Users"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](3, "table", 1); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](4, "thead"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](5, "tr"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](6, "th"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](7, "User Id"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](8, "th"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](9, "Firstname"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](10, "th"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](11, "Lastname"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](12, "th"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](13, "Email"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](14, "tbody"); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](15, UsersComponent_tr_15_Template, 9, 4, "tr", 2); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - } - - if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](15); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngForOf", ctx.users); - } - }, - directives: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["NgForOf"]], - styles: ["\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3VzZXJzLmNvbXBvbmVudC5jc3MifQ== */"] - }); - /*@__PURE__*/ - - (function () { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](UsersComponent, [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], - args: [{ - selector: 'app-users', - templateUrl: './users.component.html', - styleUrls: ['./users.component.css'] - }] - }], function () { - return []; - }, { - users: [{ - type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] - }] - }); - })(); - /***/ - - }, - - /***/ - "./src/environments/environment.ts": - /*!*****************************************!*\ - !*** ./src/environments/environment.ts ***! - \*****************************************/ - - /*! exports provided: environment */ - - /***/ - function srcEnvironmentsEnvironmentTs(module, __webpack_exports__, __webpack_require__) { - "use strict"; - - __webpack_require__.r(__webpack_exports__); - /* harmony export (binding) */ - - - __webpack_require__.d(__webpack_exports__, "environment", function () { - return environment; - }); // This file can be replaced during build by using the `fileReplacements` array. - // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. - // The list of file replacements can be found in `angular.json`. - - - var environment = { - production: false - }; - /* - * For easier debugging in development mode, you can import the following file - * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. - * - * This import should be commented out in production mode because it will have a negative impact - * on performance if an error is thrown. - */ - // import 'zone.js/dist/zone-error'; // Included with Angular CLI. - - /***/ - }, - - /***/ - "./src/main.ts": - /*!*********************!*\ - !*** ./src/main.ts ***! - \*********************/ - - /*! no exports provided */ - - /***/ - function srcMainTs(module, __webpack_exports__, __webpack_require__) { - "use strict"; - - __webpack_require__.r(__webpack_exports__); - /* harmony import */ - - - var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( - /*! @angular/core */ - "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); - /* harmony import */ - - - var _environments_environment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( - /*! ./environments/environment */ - "./src/environments/environment.ts"); - /* harmony import */ - - - var _app_app_module__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( - /*! ./app/app.module */ - "./src/app/app.module.ts"); - /* harmony import */ - - - var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( - /*! @angular/platform-browser */ - "./node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/platform-browser.js"); - - if (_environments_environment__WEBPACK_IMPORTED_MODULE_1__["environment"].production) { - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["enableProdMode"])(); - } - - _angular_platform_browser__WEBPACK_IMPORTED_MODULE_3__["platformBrowser"]().bootstrapModule(_app_app_module__WEBPACK_IMPORTED_MODULE_2__["AppModule"]).catch(function (err) { - return console.error(err); - }); - /***/ - - }, - - /***/ - 0: - /*!***************************!*\ - !*** multi ./src/main.ts ***! - \***************************/ - - /*! no static exports found */ - - /***/ - function _(module, exports, __webpack_require__) { - module.exports = __webpack_require__( - /*! /Users/bhargavbachina/Projects/angular-nodejs-example/my-app/src/main.ts */ - "./src/main.ts"); - /***/ - } -}, [[0, "runtime", "vendor"]]]); -//# sourceMappingURL=main-es5.js.map \ No newline at end of file diff --git a/src/main/ui/dist/angular-nodejs-example/main-es5.js.map b/src/main/ui/dist/angular-nodejs-example/main-es5.js.map deleted file mode 100644 index 0b7899603..000000000 --- a/src/main/ui/dist/angular-nodejs-example/main-es5.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///$_lazy_route_resource lazy namespace object","webpack:///src/app/app-routing.module.ts","webpack:///src/app/app.component.ts","webpack:///src/app/app.component.html","webpack:///src/app/app.module.ts","webpack:///src/app/app.service.ts","webpack:///src/app/display-board.component.ts","webpack:///src/app/display-board.component.html","webpack:///src/app/header/header.component.ts","webpack:///src/app/header/header.component.html","webpack:///src/app/users.component.ts","webpack:///src/app/users.component.html","webpack:///src/environments/environment.ts","webpack:///src/main.ts"],"names":["webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","module","exports","id","routes","AppRoutingModule","forRoot","imports","AppComponent","appService","title","userForm","firstName","nullValidator","required","lastName","email","users","userCount","destroy$","addUser","value","pipe","subscribe","data","console","log","reset","getUsers","next","unsubscribe","onSubmit","getAllUsers","selector","templateUrl","styleUrls","AppModule","declarations","providers","bootstrap","AppService","http","rootURL","get","user","post","providedIn","DisplayBoardComponent","getUsersEvent","emit","HeaderComponent","UsersComponent","environment","production","bootstrapModule","catch","err","error"],"mappings":"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","file":"main-es5.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\n\nconst routes: Routes = [];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Component, OnDestroy } from '@angular/core';\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\nimport { AppService } from './app.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent implements OnDestroy {\n\n constructor(private appService: AppService) {}\n\n title = 'angular-nodejs-example';\n\n userForm = new FormGroup({\n firstName: new FormControl('', Validators.nullValidator && Validators.required),\n lastName: new FormControl('', Validators.nullValidator && Validators.required),\n email: new FormControl('', Validators.nullValidator && Validators.required)\n });\n\n users: any[] = [];\n userCount = 0;\n\n destroy$: Subject = new Subject();\n\n onSubmit() {\n\n this.appService.addUser(this.userForm.value).pipe(takeUntil(this.destroy$)).subscribe(data => {\n console.log('message::::', data);\n this.userCount = this.userCount + 1;\n console.log(this.userCount);\n this.userForm.reset();\n });\n }\n\n getAllUsers() {\n this.appService.getUsers().pipe(takeUntil(this.destroy$)).subscribe((users: any[]) => {\n this.users = users;\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n","\n
\n
\n
\n

Create User

\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n
\n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { AppRoutingModule } from './app-routing.module';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AppComponent } from './app.component';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { HeaderComponent } from './header/header.component';\nimport { DisplayBoardComponent } from './display-board.component';\nimport { UsersComponent } from './users.component';\nimport { environment } from '../environments/environment';\n\n// state related imports\n// import { StoreModule } from '@ngrx/store';\n// import { StoreDevtoolsModule } from '@ngrx/store-devtools';\n// import { reducers, metaReducers } from './app-state/reducers';\n// import { CustomRouterStateSerializer } from './app-state/shared/utils';\n// import { StoreRouterConnectingModule, RouterStateSerializer } from '@ngrx/router-store';\n\n@NgModule({\n declarations: [\n AppComponent,\n HeaderComponent,\n DisplayBoardComponent,\n UsersComponent\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n BrowserAnimationsModule,\n ReactiveFormsModule,\n HttpClientModule,\n /**\n * StoreModule.forRoot is imported once in the root module, accepting a reducer\n * function or object map of reducer functions. If passed an object of\n * reducers, combineReducers will be run creating your application\n * meta-reducer. This returns all providers for an @ngrx/store\n * based application.\n\n StoreModule.forRoot(reducers, { metaReducers }),\n\n /**\n * @ngrx/router-store keeps router state up-to-date in the store.\n\n StoreRouterConnectingModule,\n\n /**\n * Store devtools instrument the store retaining past versions of state\n * and recalculating new states. This enables powerful time-travel\n * debugging.\n *\n * To use the debugger, install the Redux Devtools extension for either\n * Chrome or Firefox\n *\n * See: https://github.com/zalmoxisus/redux-devtools-extension\n\n !environment.production ? StoreDevtoolsModule.instrument() : [],\n\n /**\n * EffectsModule.forRoot() is imported once in the root module and\n * sets up the effects class to be initialized immediately when the\n * application starts.\n *\n * See: https://github.com/ngrx/platform/blob/master/docs/effects/api.md#forroot\n */\n ],\n providers: [],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppService {\n\n constructor(private http: HttpClient) { }\n\n rootURL = '/api';\n\n getUsers() {\n return this.http.get(this.rootURL + '/users');\n }\n\n addUser(user: any) {\n return this.http.post(this.rootURL + '/user', {user});\n }\n\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'app-display-board',\n templateUrl: './display-board.component.html',\n styleUrls: ['./display-board.component.css']\n})\nexport class DisplayBoardComponent implements OnInit {\n\n constructor() { }\n\n @Input() userCount = 0;\n @Output() getUsersEvent = new EventEmitter();\n\n ngOnInit(): void {\n }\n\n getAllUsers() {\n this.getUsersEvent.emit('get all users');\n }\n\n}\n","
\n

Users Created

\n
\n {{userCount}}\n
\n
\n \n
\n
\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.css']\n})\nexport class HeaderComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","
\n

Angular With NodeJS

\n
\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-users',\n templateUrl: './users.component.html',\n styleUrls: ['./users.component.css']\n})\nexport class UsersComponent implements OnInit {\n\n constructor() { }\n\n @Input() users: any[];\n\n ngOnInit(): void {\n }\n\n}\n","
\n

Users

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
User IdFirstnameLastnameEmail
{{i + 1}}{{user.firstName}}{{user.lastName}}{{user.email}}
\n
\n","// 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","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"]} \ No newline at end of file diff --git a/src/main/ui/dist/angular-nodejs-example/polyfills-es2015.js b/src/main/ui/dist/angular-nodejs-example/polyfills-es2015.js deleted file mode 100644 index 06305531d..000000000 --- a/src/main/ui/dist/angular-nodejs-example/polyfills-es2015.js +++ /dev/null @@ -1,3033 +0,0 @@ -(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["polyfills"],{ - -/***/ "./node_modules/zone.js/dist/zone-evergreen.js": -/*!*****************************************************!*\ - !*** ./node_modules/zone.js/dist/zone-evergreen.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/** - * @license Angular v0.10.2 - * (c) 2010-2019 Google LLC. https://angular.io/ - * License: MIT - */ - -(function (factory) { - true ? !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory), - __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? - (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : - __WEBPACK_AMD_DEFINE_FACTORY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : - undefined; -}(function () { 'use strict'; - - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - const Zone$1 = (function (global) { - const performance = global['performance']; - function mark(name) { performance && performance['mark'] && performance['mark'](name); } - function performanceMeasure(name, label) { - performance && performance['measure'] && performance['measure'](name, label); - } - mark('Zone'); - // Initialize before it's accessed below. - // __Zone_symbol_prefix global can be used to override the default zone - // symbol prefix with a custom one if needed. - const symbolPrefix = global['__Zone_symbol_prefix'] || '__zone_symbol__'; - function __symbol__(name) { return symbolPrefix + name; } - const checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true; - if (global['Zone']) { - // if global['Zone'] already exists (maybe zone.js was already loaded or - // some other lib also registered a global object named Zone), we may need - // to throw an error, but sometimes user may not want this error. - // For example, - // we have two web pages, page1 includes zone.js, page2 doesn't. - // and the 1st time user load page1 and page2, everything work fine, - // but when user load page2 again, error occurs because global['Zone'] already exists. - // so we add a flag to let user choose whether to throw this error or not. - // By default, if existing Zone is from zone.js, we will not throw the error. - if (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function') { - throw new Error('Zone already loaded.'); - } - else { - return global['Zone']; - } - } - class Zone { - constructor(parent, zoneSpec) { - this._parent = parent; - this._name = zoneSpec ? zoneSpec.name || 'unnamed' : ''; - this._properties = zoneSpec && zoneSpec.properties || {}; - this._zoneDelegate = - new ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec); - } - static assertZonePatched() { - if (global['Promise'] !== patches['ZoneAwarePromise']) { - throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' + - 'has been overwritten.\n' + - 'Most 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 zone = Zone.current; - while (zone.parent) { - zone = zone.parent; - } - return zone; - } - static get current() { return _currentZoneFrame.zone; } - static get currentTask() { return _currentTask; } - // tslint:disable-next-line:require-internal-with-underscore - static __load_patch(name, fn) { - if (patches.hasOwnProperty(name)) { - if (checkDuplicate) { - throw Error('Already loaded patch: ' + name); - } - } - else if (!global['__Zone_disable_' + name]) { - const perfName = 'Zone:' + name; - mark(perfName); - patches[name] = fn(global, Zone, _api); - performanceMeasure(perfName, perfName); - } - } - get parent() { return this._parent; } - get name() { return this._name; } - get(key) { - const zone = this.getZoneWith(key); - if (zone) - return zone._properties[key]; - } - getZoneWith(key) { - let current = this; - while (current) { - if (current._properties.hasOwnProperty(key)) { - return current; - } - current = current._parent; - } - return null; - } - fork(zoneSpec) { - if (!zoneSpec) - throw new Error('ZoneSpec required!'); - return this._zoneDelegate.fork(this, zoneSpec); - } - wrap(callback, source) { - if (typeof callback !== 'function') { - throw new Error('Expecting function got: ' + callback); - } - const _callback = this._zoneDelegate.intercept(this, callback, source); - const zone = this; - return function () { - return zone.runGuarded(_callback, this, arguments, source); - }; - } - run(callback, applyThis, applyArgs, source) { - _currentZoneFrame = { parent: _currentZoneFrame, zone: this }; - try { - return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source); - } - finally { - _currentZoneFrame = _currentZoneFrame.parent; - } - } - runGuarded(callback, applyThis = null, applyArgs, source) { - _currentZoneFrame = { parent: _currentZoneFrame, zone: this }; - try { - try { - return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source); - } - catch (error) { - if (this._zoneDelegate.handleError(this, error)) { - throw error; - } - } - } - finally { - _currentZoneFrame = _currentZoneFrame.parent; - } - } - runTask(task, applyThis, applyArgs) { - if (task.zone != this) { - throw new Error('A task can only be run in the zone of creation! (Creation: ' + - (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')'); - } - // https://github.com/angular/zone.js/issues/778, sometimes eventTask - // will run in notScheduled(canceled) state, we should not try to - // run such kind of task but just return - if (task.state === notScheduled && (task.type === eventTask || task.type === macroTask)) { - return; - } - const reEntryGuard = task.state != running; - reEntryGuard && task._transitionTo(running, scheduled); - task.runCount++; - const previousTask = _currentTask; - _currentTask = task; - _currentZoneFrame = { parent: _currentZoneFrame, zone: this }; - try { - if (task.type == macroTask && task.data && !task.data.isPeriodic) { - task.cancelFn = undefined; - } - try { - return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs); - } - catch (error) { - if (this._zoneDelegate.handleError(this, error)) { - throw error; - } - } - } - finally { - // if the task's state is notScheduled or unknown, then it has already been cancelled - // we should not reset the state to scheduled - if (task.state !== notScheduled && task.state !== unknown) { - if (task.type == eventTask || (task.data && task.data.isPeriodic)) { - reEntryGuard && task._transitionTo(scheduled, running); - } - else { - task.runCount = 0; - this._updateTaskCount(task, -1); - reEntryGuard && - task._transitionTo(notScheduled, running, notScheduled); - } - } - _currentZoneFrame = _currentZoneFrame.parent; - _currentTask = previousTask; - } - } - scheduleTask(task) { - if (task.zone && task.zone !== this) { - // check if the task was rescheduled, the newZone - // should not be the children of the original zone - let newZone = this; - while (newZone) { - if (newZone === task.zone) { - throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${task.zone.name}`); - } - newZone = newZone.parent; - } - } - task._transitionTo(scheduling, notScheduled); - const zoneDelegates = []; - task._zoneDelegates = zoneDelegates; - task._zone = this; - try { - task = this._zoneDelegate.scheduleTask(this, task); - } - catch (err) { - // should set task's state to unknown when scheduleTask throw error - // because the err may from reschedule, so the fromState maybe notScheduled - task._transitionTo(unknown, scheduling, notScheduled); - // TODO: @JiaLiPassion, should we check the result from handleError? - this._zoneDelegate.handleError(this, err); - throw err; - } - if (task._zoneDelegates === zoneDelegates) { - // we have to check because internally the delegate can reschedule the task. - this._updateTaskCount(task, 1); - } - if (task.state == scheduling) { - task._transitionTo(scheduled, scheduling); - } - return task; - } - scheduleMicroTask(source, callback, data, customSchedule) { - return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined)); - } - scheduleMacroTask(source, callback, data, customSchedule, customCancel) { - return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel)); - } - scheduleEventTask(source, callback, data, customSchedule, customCancel) { - return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel)); - } - cancelTask(task) { - if (task.zone != this) - throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' + - (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')'); - task._transitionTo(canceling, scheduled, running); - try { - this._zoneDelegate.cancelTask(this, task); - } - catch (err) { - // if error occurs when cancelTask, transit the state to unknown - task._transitionTo(unknown, canceling); - this._zoneDelegate.handleError(this, err); - throw err; - } - this._updateTaskCount(task, -1); - task._transitionTo(notScheduled, canceling); - task.runCount = 0; - return task; - } - _updateTaskCount(task, count) { - const zoneDelegates = task._zoneDelegates; - if (count == -1) { - task._zoneDelegates = null; - } - for (let i = 0; i < zoneDelegates.length; i++) { - zoneDelegates[i]._updateTaskCount(task.type, count); - } - } - } - // tslint:disable-next-line:require-internal-with-underscore - Zone.__symbol__ = __symbol__; - const DELEGATE_ZS = { - name: '', - onHasTask: (delegate, _, target, hasTaskState) => delegate.hasTask(target, hasTaskState), - onScheduleTask: (delegate, _, target, task) => delegate.scheduleTask(target, task), - onInvokeTask: (delegate, _, target, task, applyThis, applyArgs) => delegate.invokeTask(target, task, applyThis, applyArgs), - onCancelTask: (delegate, _, target, task) => delegate.cancelTask(target, task) - }; - class ZoneDelegate { - constructor(zone, parentDelegate, zoneSpec) { - this._taskCounts = { 'microTask': 0, 'macroTask': 0, 'eventTask': 0 }; - this.zone = zone; - this._parentDelegate = parentDelegate; - this._forkZS = - zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS); - this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt); - this._forkCurrZone = - zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate._forkCurrZone); - this._interceptZS = - zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS); - this._interceptDlgt = - zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt); - this._interceptCurrZone = - zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate._interceptCurrZone); - this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS); - this._invokeDlgt = - zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt); - this._invokeCurrZone = - zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate._invokeCurrZone); - this._handleErrorZS = - zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS); - this._handleErrorDlgt = zoneSpec && - (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt); - this._handleErrorCurrZone = - zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate._handleErrorCurrZone); - this._scheduleTaskZS = - zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS); - this._scheduleTaskDlgt = zoneSpec && - (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt); - this._scheduleTaskCurrZone = zoneSpec && - (zoneSpec.onScheduleTask ? this.zone : parentDelegate._scheduleTaskCurrZone); - this._invokeTaskZS = - zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS); - this._invokeTaskDlgt = - zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt); - this._invokeTaskCurrZone = - zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate._invokeTaskCurrZone); - this._cancelTaskZS = - zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS); - this._cancelTaskDlgt = - zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt); - this._cancelTaskCurrZone = - zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate._cancelTaskCurrZone); - this._hasTaskZS = null; - this._hasTaskDlgt = null; - this._hasTaskDlgtOwner = null; - this._hasTaskCurrZone = null; - const zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask; - const parentHasTask = parentDelegate && parentDelegate._hasTaskZS; - if (zoneSpecHasTask || parentHasTask) { - // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such - // a case all task related interceptors must go through this ZD. We can't short circuit it. - this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS; - this._hasTaskDlgt = parentDelegate; - this._hasTaskDlgtOwner = this; - this._hasTaskCurrZone = zone; - if (!zoneSpec.onScheduleTask) { - this._scheduleTaskZS = DELEGATE_ZS; - this._scheduleTaskDlgt = parentDelegate; - this._scheduleTaskCurrZone = this.zone; - } - if (!zoneSpec.onInvokeTask) { - this._invokeTaskZS = DELEGATE_ZS; - this._invokeTaskDlgt = parentDelegate; - this._invokeTaskCurrZone = this.zone; - } - if (!zoneSpec.onCancelTask) { - this._cancelTaskZS = DELEGATE_ZS; - this._cancelTaskDlgt = parentDelegate; - this._cancelTaskCurrZone = this.zone; - } - } - } - fork(targetZone, zoneSpec) { - return this._forkZS ? - this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) : - new Zone(targetZone, zoneSpec); - } - intercept(targetZone, callback, source) { - return this._interceptZS ? - this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) : - callback; - } - invoke(targetZone, callback, applyThis, applyArgs, source) { - return this._invokeZS ? - this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) : - callback.apply(applyThis, applyArgs); - } - handleError(targetZone, error) { - return this._handleErrorZS ? - this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) : - true; - } - scheduleTask(targetZone, task) { - let returnTask = task; - if (this._scheduleTaskZS) { - if (this._hasTaskZS) { - returnTask._zoneDelegates.push(this._hasTaskDlgtOwner); - } - // clang-format off - returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task); - // clang-format on - if (!returnTask) - returnTask = task; - } - else { - if (task.scheduleFn) { - task.scheduleFn(task); - } - else if (task.type == microTask) { - scheduleMicroTask(task); - } - else { - throw new Error('Task is missing scheduleFn.'); - } - } - return returnTask; - } - invokeTask(targetZone, task, applyThis, applyArgs) { - return this._invokeTaskZS ? - this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) : - task.callback.apply(applyThis, applyArgs); - } - cancelTask(targetZone, task) { - let value; - if (this._cancelTaskZS) { - value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task); - } - else { - if (!task.cancelFn) { - throw Error('Task is not cancelable'); - } - value = task.cancelFn(task); - } - return value; - } - hasTask(targetZone, isEmpty) { - // hasTask should not throw error so other ZoneDelegate - // can still trigger hasTask callback - try { - this._hasTaskZS && - this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty); - } - catch (err) { - this.handleError(targetZone, err); - } - } - // tslint:disable-next-line:require-internal-with-underscore - _updateTaskCount(type, count) { - const counts = this._taskCounts; - const prev = counts[type]; - const next = counts[type] = prev + count; - if (next < 0) { - throw new Error('More tasks executed then were scheduled.'); - } - if (prev == 0 || next == 0) { - const isEmpty = { - microTask: counts['microTask'] > 0, - macroTask: counts['macroTask'] > 0, - eventTask: counts['eventTask'] > 0, - change: type - }; - this.hasTask(this.zone, isEmpty); - } - } - } - class ZoneTask { - constructor(type, source, callback, options, scheduleFn, cancelFn) { - // tslint:disable-next-line:require-internal-with-underscore - this._zone = null; - this.runCount = 0; - // tslint:disable-next-line:require-internal-with-underscore - this._zoneDelegates = null; - // tslint:disable-next-line:require-internal-with-underscore - this._state = 'notScheduled'; - this.type = type; - this.source = source; - this.data = options; - this.scheduleFn = scheduleFn; - this.cancelFn = cancelFn; - if (!callback) { - throw new Error('callback is not defined'); - } - this.callback = callback; - const self = this; - // TODO: @JiaLiPassion options should have interface - if (type === eventTask && options && options.useG) { - this.invoke = ZoneTask.invokeTask; - } - else { - this.invoke = function () { - return ZoneTask.invokeTask.call(global, self, this, arguments); - }; - } - } - static invokeTask(task, target, args) { - if (!task) { - task = this; - } - _numberOfNestedTaskFrames++; - try { - task.runCount++; - return task.zone.runTask(task, target, args); - } - finally { - if (_numberOfNestedTaskFrames == 1) { - drainMicroTaskQueue(); - } - _numberOfNestedTaskFrames--; - } - } - get zone() { return this._zone; } - get state() { return this._state; } - cancelScheduleRequest() { this._transitionTo(notScheduled, scheduling); } - // tslint:disable-next-line:require-internal-with-underscore - _transitionTo(toState, fromState1, fromState2) { - if (this._state === fromState1 || this._state === fromState2) { - this._state = toState; - if (toState == notScheduled) { - this._zoneDelegates = null; - } - } - else { - throw new Error(`${this.type} '${this.source}': can not transition to '${toState}', expecting state '${fromState1}'${fromState2 ? ' or \'' + fromState2 + '\'' : ''}, was '${this._state}'.`); - } - } - toString() { - if (this.data && typeof this.data.handleId !== 'undefined') { - return this.data.handleId.toString(); - } - else { - return Object.prototype.toString.call(this); - } - } - // add toJSON method to prevent cyclic error when - // call JSON.stringify(zoneTask) - toJSON() { - return { - type: this.type, - state: this.state, - source: this.source, - zone: this.zone.name, - runCount: this.runCount - }; - } - } - ////////////////////////////////////////////////////// - ////////////////////////////////////////////////////// - /// MICROTASK QUEUE - ////////////////////////////////////////////////////// - ////////////////////////////////////////////////////// - const symbolSetTimeout = __symbol__('setTimeout'); - const symbolPromise = __symbol__('Promise'); - const symbolThen = __symbol__('then'); - let _microTaskQueue = []; - let _isDrainingMicrotaskQueue = false; - let nativeMicroTaskQueuePromise; - function scheduleMicroTask(task) { - // if we are not running in any task, and there has not been anything scheduled - // we must bootstrap the initial task creation by manually scheduling the drain - if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) { - // We are not running in Task, so we need to kickstart the microtask queue. - if (!nativeMicroTaskQueuePromise) { - if (global[symbolPromise]) { - nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0); - } - } - if (nativeMicroTaskQueuePromise) { - let nativeThen = nativeMicroTaskQueuePromise[symbolThen]; - if (!nativeThen) { - // native Promise is not patchable, we need to use `then` directly - // issue 1078 - nativeThen = nativeMicroTaskQueuePromise['then']; - } - nativeThen.call(nativeMicroTaskQueuePromise, drainMicroTaskQueue); - } - else { - global[symbolSetTimeout](drainMicroTaskQueue, 0); - } - } - task && _microTaskQueue.push(task); - } - function drainMicroTaskQueue() { - if (!_isDrainingMicrotaskQueue) { - _isDrainingMicrotaskQueue = true; - while (_microTaskQueue.length) { - const queue = _microTaskQueue; - _microTaskQueue = []; - for (let i = 0; i < queue.length; i++) { - const task = queue[i]; - try { - task.zone.runTask(task, null, null); - } - catch (error) { - _api.onUnhandledError(error); - } - } - } - _api.microtaskDrainDone(); - _isDrainingMicrotaskQueue = false; - } - } - ////////////////////////////////////////////////////// - ////////////////////////////////////////////////////// - /// BOOTSTRAP - ////////////////////////////////////////////////////// - ////////////////////////////////////////////////////// - const NO_ZONE = { name: 'NO ZONE' }; - const notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown'; - const microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask'; - const patches = {}; - const _api = { - symbol: __symbol__, - currentZoneFrame: () => _currentZoneFrame, - onUnhandledError: noop, - microtaskDrainDone: noop, - scheduleMicroTask: scheduleMicroTask, - showUncaughtError: () => !Zone[__symbol__('ignoreConsoleErrorUncaughtError')], - patchEventTarget: () => [], - patchOnProperties: noop, - patchMethod: () => noop, - bindArguments: () => [], - patchThen: () => noop, - patchMacroTask: () => noop, - setNativePromise: (NativePromise) => { - // sometimes NativePromise.resolve static function - // is not ready yet, (such as core-js/es6.promise) - // so we need to check here. - if (NativePromise && typeof NativePromise.resolve === 'function') { - nativeMicroTaskQueuePromise = NativePromise.resolve(0); - } - }, - patchEventPrototype: () => noop, - isIEOrEdge: () => false, - getGlobalObjects: () => undefined, - ObjectDefineProperty: () => noop, - ObjectGetOwnPropertyDescriptor: () => undefined, - ObjectCreate: () => undefined, - ArraySlice: () => [], - patchClass: () => noop, - wrapWithCurrentZone: () => noop, - filterProperties: () => [], - attachOriginToPatched: () => noop, - _redefineProperty: () => noop, - patchCallbacks: () => noop - }; - let _currentZoneFrame = { parent: null, zone: new Zone(null, null) }; - let _currentTask = null; - let _numberOfNestedTaskFrames = 0; - function noop() { } - performanceMeasure('Zone', 'Zone'); - return global['Zone'] = Zone; - })(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global); - - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - Zone.__load_patch('ZoneAwarePromise', (global, Zone, api) => { - const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - const ObjectDefineProperty = Object.defineProperty; - function readableObjectToString(obj) { - if (obj && obj.toString === Object.prototype.toString) { - const className = obj.constructor && obj.constructor.name; - return (className ? className : '') + ': ' + JSON.stringify(obj); - } - return obj ? obj.toString() : Object.prototype.toString.call(obj); - } - const __symbol__ = api.symbol; - const _uncaughtPromiseErrors = []; - const symbolPromise = __symbol__('Promise'); - const symbolThen = __symbol__('then'); - const creationTrace = '__creationTrace__'; - api.onUnhandledError = (e) => { - if (api.showUncaughtError()) { - const rejection = e && e.rejection; - if (rejection) { - console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined); - } - else { - console.error(e); - } - } - }; - api.microtaskDrainDone = () => { - while (_uncaughtPromiseErrors.length) { - while (_uncaughtPromiseErrors.length) { - const uncaughtPromiseError = _uncaughtPromiseErrors.shift(); - try { - uncaughtPromiseError.zone.runGuarded(() => { throw uncaughtPromiseError; }); - } - catch (error) { - handleUnhandledRejection(error); - } - } - } - }; - const UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler'); - function handleUnhandledRejection(e) { - api.onUnhandledError(e); - try { - const handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL]; - if (handler && typeof handler === 'function') { - handler.call(this, e); - } - } - catch (err) { - } - } - function isThenable(value) { return value && value.then; } - function forwardResolution(value) { return value; } - function forwardRejection(rejection) { return ZoneAwarePromise.reject(rejection); } - const symbolState = __symbol__('state'); - const symbolValue = __symbol__('value'); - const symbolFinally = __symbol__('finally'); - const symbolParentPromiseValue = __symbol__('parentPromiseValue'); - const symbolParentPromiseState = __symbol__('parentPromiseState'); - const source = 'Promise.then'; - const UNRESOLVED = null; - const RESOLVED = true; - const REJECTED = false; - const REJECTED_NO_CATCH = 0; - function makeResolver(promise, state) { - return (v) => { - try { - resolvePromise(promise, state, v); - } - catch (err) { - resolvePromise(promise, false, err); - } - // Do not return value or you will break the Promise spec. - }; - } - const once = function () { - let wasCalled = false; - return function wrapper(wrappedFunction) { - return function () { - if (wasCalled) { - return; - } - wasCalled = true; - wrappedFunction.apply(null, arguments); - }; - }; - }; - const TYPE_ERROR = 'Promise resolved with itself'; - const CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace'); - // Promise Resolution - function resolvePromise(promise, state, value) { - const onceWrapper = once(); - if (promise === value) { - throw new TypeError(TYPE_ERROR); - } - if (promise[symbolState] === UNRESOLVED) { - // should only get value.then once based on promise spec. - let then = null; - try { - if (typeof value === 'object' || typeof value === 'function') { - then = value && value.then; - } - } - catch (err) { - onceWrapper(() => { resolvePromise(promise, false, err); })(); - return promise; - } - // if (value instanceof ZoneAwarePromise) { - if (state !== REJECTED && value instanceof ZoneAwarePromise && - value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) && - value[symbolState] !== UNRESOLVED) { - clearRejectedNoCatch(value); - resolvePromise(promise, value[symbolState], value[symbolValue]); - } - else if (state !== REJECTED && typeof then === 'function') { - try { - then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false))); - } - catch (err) { - onceWrapper(() => { resolvePromise(promise, false, err); })(); - } - } - else { - promise[symbolState] = state; - const queue = promise[symbolValue]; - promise[symbolValue] = value; - if (promise[symbolFinally] === symbolFinally) { - // the promise is generated by Promise.prototype.finally - if (state === RESOLVED) { - // the state is resolved, should ignore the value - // and use parent promise value - promise[symbolState] = promise[symbolParentPromiseState]; - promise[symbolValue] = promise[symbolParentPromiseValue]; - } - } - // record task information in value when error occurs, so we can - // do some additional work such as render longStackTrace - if (state === REJECTED && value instanceof Error) { - // check if longStackTraceZone is here - const trace = Zone.currentTask && Zone.currentTask.data && - Zone.currentTask.data[creationTrace]; - if (trace) { - // only keep the long stack trace into error when in longStackTraceZone - ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { configurable: true, enumerable: false, writable: true, value: trace }); - } - } - for (let i = 0; i < queue.length;) { - scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]); - } - if (queue.length == 0 && state == REJECTED) { - promise[symbolState] = REJECTED_NO_CATCH; - try { - // try to print more readable error log - throw new Error('Uncaught (in promise): ' + readableObjectToString(value) + - (value && value.stack ? '\n' + value.stack : '')); - } - catch (err) { - const error = err; - error.rejection = value; - error.promise = promise; - error.zone = Zone.current; - error.task = Zone.currentTask; - _uncaughtPromiseErrors.push(error); - api.scheduleMicroTask(); // to make sure that it is running - } - } - } - } - // Resolving an already resolved promise is a noop. - return promise; - } - const REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler'); - function clearRejectedNoCatch(promise) { - if (promise[symbolState] === REJECTED_NO_CATCH) { - // if the promise is rejected no catch status - // and queue.length > 0, means there is a error handler - // here to handle the rejected promise, we should trigger - // windows.rejectionhandled eventHandler or nodejs rejectionHandled - // eventHandler - try { - const handler = Zone[REJECTION_HANDLED_HANDLER]; - if (handler && typeof handler === 'function') { - handler.call(this, { rejection: promise[symbolValue], promise: promise }); - } - } - catch (err) { - } - promise[symbolState] = REJECTED; - for (let i = 0; i < _uncaughtPromiseErrors.length; i++) { - if (promise === _uncaughtPromiseErrors[i].promise) { - _uncaughtPromiseErrors.splice(i, 1); - } - } - } - } - function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) { - clearRejectedNoCatch(promise); - const promiseState = promise[symbolState]; - const delegate = promiseState ? - (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution : - (typeof onRejected === 'function') ? onRejected : forwardRejection; - zone.scheduleMicroTask(source, () => { - try { - const parentPromiseValue = promise[symbolValue]; - const isFinallyPromise = !!chainPromise && symbolFinally === chainPromise[symbolFinally]; - if (isFinallyPromise) { - // if the promise is generated from finally call, keep parent promise's state and value - chainPromise[symbolParentPromiseValue] = parentPromiseValue; - chainPromise[symbolParentPromiseState] = promiseState; - } - // should not pass value to finally callback - const value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ? - [] : - [parentPromiseValue]); - resolvePromise(chainPromise, true, value); - } - catch (error) { - // if error occurs, should always return this error - resolvePromise(chainPromise, false, error); - } - }, chainPromise); - } - const ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }'; - class ZoneAwarePromise { - constructor(executor) { - const promise = this; - if (!(promise instanceof ZoneAwarePromise)) { - throw new Error('Must be an instanceof Promise.'); - } - promise[symbolState] = UNRESOLVED; - promise[symbolValue] = []; // queue; - try { - executor && executor(makeResolver(promise, RESOLVED), makeResolver(promise, REJECTED)); - } - catch (error) { - resolvePromise(promise, false, error); - } - } - static toString() { return ZONE_AWARE_PROMISE_TO_STRING; } - static resolve(value) { - return resolvePromise(new this(null), RESOLVED, value); - } - static reject(error) { - return resolvePromise(new this(null), REJECTED, error); - } - static race(values) { - let resolve; - let reject; - let promise = new this((res, rej) => { - resolve = res; - reject = rej; - }); - function onResolve(value) { resolve(value); } - function onReject(error) { reject(error); } - for (let value of values) { - if (!isThenable(value)) { - value = this.resolve(value); - } - value.then(onResolve, onReject); - } - return promise; - } - static all(values) { return ZoneAwarePromise.allWithCallback(values); } - static allSettled(values) { - const P = this && this.prototype instanceof ZoneAwarePromise ? this : ZoneAwarePromise; - return P.allWithCallback(values, { - thenCallback: (value) => ({ status: 'fulfilled', value }), - errorCallback: (err) => ({ status: 'rejected', reason: err }) - }); - } - static allWithCallback(values, callback) { - let resolve; - let reject; - let promise = new this((res, rej) => { - resolve = res; - reject = rej; - }); - // Start at 2 to prevent prematurely resolving if .then is called immediately. - let unresolvedCount = 2; - let valueIndex = 0; - const resolvedValues = []; - for (let value of values) { - if (!isThenable(value)) { - value = this.resolve(value); - } - const curValueIndex = valueIndex; - try { - value.then((value) => { - resolvedValues[curValueIndex] = callback ? callback.thenCallback(value) : value; - unresolvedCount--; - if (unresolvedCount === 0) { - resolve(resolvedValues); - } - }, (err) => { - if (!callback) { - reject(err); - } - else { - resolvedValues[curValueIndex] = callback.errorCallback(err); - unresolvedCount--; - if (unresolvedCount === 0) { - resolve(resolvedValues); - } - } - }); - } - catch (thenErr) { - reject(thenErr); - } - unresolvedCount++; - valueIndex++; - } - // Make the unresolvedCount zero-based again. - unresolvedCount -= 2; - if (unresolvedCount === 0) { - resolve(resolvedValues); - } - return promise; - } - get [Symbol.toStringTag]() { return 'Promise'; } - then(onFulfilled, onRejected) { - const chainPromise = new this.constructor(null); - const zone = Zone.current; - if (this[symbolState] == UNRESOLVED) { - this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected); - } - else { - scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected); - } - return chainPromise; - } - catch(onRejected) { - return this.then(null, onRejected); - } - finally(onFinally) { - const chainPromise = new this.constructor(null); - chainPromise[symbolFinally] = symbolFinally; - const zone = Zone.current; - if (this[symbolState] == UNRESOLVED) { - this[symbolValue].push(zone, chainPromise, onFinally, onFinally); - } - else { - scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally); - } - return chainPromise; - } - } - // Protect against aggressive optimizers dropping seemingly unused properties. - // E.g. Closure Compiler in advanced mode. - ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve; - ZoneAwarePromise['reject'] = ZoneAwarePromise.reject; - ZoneAwarePromise['race'] = ZoneAwarePromise.race; - ZoneAwarePromise['all'] = ZoneAwarePromise.all; - const NativePromise = global[symbolPromise] = global['Promise']; - const ZONE_AWARE_PROMISE = Zone.__symbol__('ZoneAwarePromise'); - let desc = ObjectGetOwnPropertyDescriptor(global, 'Promise'); - if (!desc || desc.configurable) { - desc && delete desc.writable; - desc && delete desc.value; - if (!desc) { - desc = { configurable: true, enumerable: true }; - } - desc.get = function () { - // if we already set ZoneAwarePromise, use patched one - // otherwise return native one. - return global[ZONE_AWARE_PROMISE] ? global[ZONE_AWARE_PROMISE] : global[symbolPromise]; - }; - desc.set = function (NewNativePromise) { - if (NewNativePromise === ZoneAwarePromise) { - // if the NewNativePromise is ZoneAwarePromise - // save to global - global[ZONE_AWARE_PROMISE] = NewNativePromise; - } - else { - // if the NewNativePromise is not ZoneAwarePromise - // for example: after load zone.js, some library just - // set es6-promise to global, if we set it to global - // directly, assertZonePatched will fail and angular - // will not loaded, so we just set the NewNativePromise - // to global[symbolPromise], so the result is just like - // we load ES6 Promise before zone.js - global[symbolPromise] = NewNativePromise; - if (!NewNativePromise.prototype[symbolThen]) { - patchThen(NewNativePromise); - } - api.setNativePromise(NewNativePromise); - } - }; - ObjectDefineProperty(global, 'Promise', desc); - } - global['Promise'] = ZoneAwarePromise; - const symbolThenPatched = __symbol__('thenPatched'); - function patchThen(Ctor) { - const proto = Ctor.prototype; - const prop = ObjectGetOwnPropertyDescriptor(proto, 'then'); - if (prop && (prop.writable === false || !prop.configurable)) { - // check Ctor.prototype.then propertyDescriptor is writable or not - // in meteor env, writable is false, we should ignore such case - return; - } - const originalThen = proto.then; - // Keep a reference to the original method. - proto[symbolThen] = originalThen; - Ctor.prototype.then = function (onResolve, onReject) { - const wrapped = new ZoneAwarePromise((resolve, reject) => { originalThen.call(this, resolve, reject); }); - return wrapped.then(onResolve, onReject); - }; - Ctor[symbolThenPatched] = true; - } - api.patchThen = patchThen; - function zoneify(fn) { - return function () { - let resultPromise = fn.apply(this, arguments); - if (resultPromise instanceof ZoneAwarePromise) { - return resultPromise; - } - let ctor = resultPromise.constructor; - if (!ctor[symbolThenPatched]) { - patchThen(ctor); - } - return resultPromise; - }; - } - if (NativePromise) { - patchThen(NativePromise); - const fetch = global['fetch']; - if (typeof fetch == 'function') { - global[api.symbol('fetch')] = fetch; - global['fetch'] = zoneify(fetch); - } - } - // This is not part of public API, but it is useful for tests, so we expose it. - Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors; - return ZoneAwarePromise; - }); - - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - /** - * Suppress closure compiler errors about unknown 'Zone' variable - * @fileoverview - * @suppress {undefinedVars,globalThis,missingRequire} - */ - /// - // issue #989, to reduce bundle size, use short name - /** Object.getOwnPropertyDescriptor */ - const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - /** Object.defineProperty */ - const ObjectDefineProperty = Object.defineProperty; - /** Object.getPrototypeOf */ - const ObjectGetPrototypeOf = Object.getPrototypeOf; - /** Object.create */ - const ObjectCreate = Object.create; - /** Array.prototype.slice */ - const ArraySlice = Array.prototype.slice; - /** addEventListener string const */ - const ADD_EVENT_LISTENER_STR = 'addEventListener'; - /** removeEventListener string const */ - const REMOVE_EVENT_LISTENER_STR = 'removeEventListener'; - /** zoneSymbol addEventListener */ - const ZONE_SYMBOL_ADD_EVENT_LISTENER = Zone.__symbol__(ADD_EVENT_LISTENER_STR); - /** zoneSymbol removeEventListener */ - const ZONE_SYMBOL_REMOVE_EVENT_LISTENER = Zone.__symbol__(REMOVE_EVENT_LISTENER_STR); - /** true string const */ - const TRUE_STR = 'true'; - /** false string const */ - const FALSE_STR = 'false'; - /** Zone symbol prefix string const. */ - const ZONE_SYMBOL_PREFIX = Zone.__symbol__(''); - function wrapWithCurrentZone(callback, source) { - return Zone.current.wrap(callback, source); - } - function scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) { - return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel); - } - const zoneSymbol = Zone.__symbol__; - const isWindowExists = typeof window !== 'undefined'; - const internalWindow = isWindowExists ? window : undefined; - const _global = isWindowExists && internalWindow || typeof self === 'object' && self || global; - const REMOVE_ATTRIBUTE = 'removeAttribute'; - const NULL_ON_PROP_VALUE = [null]; - function bindArguments(args, source) { - for (let i = args.length - 1; i >= 0; i--) { - if (typeof args[i] === 'function') { - args[i] = wrapWithCurrentZone(args[i], source + '_' + i); - } - } - return args; - } - function patchPrototype(prototype, fnNames) { - const source = prototype.constructor['name']; - for (let i = 0; i < fnNames.length; i++) { - const name = fnNames[i]; - const delegate = prototype[name]; - if (delegate) { - const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name); - if (!isPropertyWritable(prototypeDesc)) { - continue; - } - prototype[name] = ((delegate) => { - const patched = function () { - return delegate.apply(this, bindArguments(arguments, source + '.' + name)); - }; - attachOriginToPatched(patched, delegate); - return patched; - })(delegate); - } - } - } - function isPropertyWritable(propertyDesc) { - if (!propertyDesc) { - return true; - } - if (propertyDesc.writable === false) { - return false; - } - return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined'); - } - const isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope); - // Make sure to access `process` through `_global` so that WebPack does not accidentally browserify - // this code. - const isNode = (!('nw' in _global) && typeof _global.process !== 'undefined' && - {}.toString.call(_global.process) === '[object process]'); - const isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']); - // we are in electron of nw, so we are both browser and nodejs - // Make sure to access `process` through `_global` so that WebPack does not accidentally browserify - // this code. - const isMix = typeof _global.process !== 'undefined' && - {}.toString.call(_global.process) === '[object process]' && !isWebWorker && - !!(isWindowExists && internalWindow['HTMLElement']); - const zoneSymbolEventNames = {}; - const wrapFn = function (event) { - // https://github.com/angular/zone.js/issues/911, in IE, sometimes - // event will be undefined, so we need to use window.event - event = event || _global.event; - if (!event) { - return; - } - let eventNameSymbol = zoneSymbolEventNames[event.type]; - if (!eventNameSymbol) { - eventNameSymbol = zoneSymbolEventNames[event.type] = zoneSymbol('ON_PROPERTY' + event.type); - } - const target = this || event.target || _global; - const listener = target[eventNameSymbol]; - let result; - if (isBrowser && target === internalWindow && event.type === 'error') { - // window.onerror have different signiture - // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror - // and onerror callback will prevent default when callback return true - const errorEvent = event; - result = listener && - listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error); - if (result === true) { - event.preventDefault(); - } - } - else { - result = listener && listener.apply(this, arguments); - if (result != undefined && !result) { - event.preventDefault(); - } - } - return result; - }; - function patchProperty(obj, prop, prototype) { - let desc = ObjectGetOwnPropertyDescriptor(obj, prop); - if (!desc && prototype) { - // when patch window object, use prototype to check prop exist or not - const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop); - if (prototypeDesc) { - desc = { enumerable: true, configurable: true }; - } - } - // if the descriptor not exists or is not configurable - // just return - if (!desc || !desc.configurable) { - return; - } - const onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched'); - if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) { - return; - } - // A property descriptor cannot have getter/setter and be writable - // deleting the writable and value properties avoids this error: - // - // TypeError: property descriptors must not specify a value or be writable when a - // getter or setter has been specified - delete desc.writable; - delete desc.value; - const originalDescGet = desc.get; - const originalDescSet = desc.set; - // substr(2) cuz 'onclick' -> 'click', etc - const eventName = prop.substr(2); - let eventNameSymbol = zoneSymbolEventNames[eventName]; - if (!eventNameSymbol) { - eventNameSymbol = zoneSymbolEventNames[eventName] = zoneSymbol('ON_PROPERTY' + eventName); - } - desc.set = function (newValue) { - // in some of windows's onproperty callback, this is undefined - // so we need to check it - let target = this; - if (!target && obj === _global) { - target = _global; - } - if (!target) { - return; - } - let previousValue = target[eventNameSymbol]; - if (previousValue) { - target.removeEventListener(eventName, wrapFn); - } - // issue #978, when onload handler was added before loading zone.js - // we should remove it with originalDescSet - if (originalDescSet) { - originalDescSet.apply(target, NULL_ON_PROP_VALUE); - } - if (typeof newValue === 'function') { - target[eventNameSymbol] = newValue; - target.addEventListener(eventName, wrapFn, false); - } - else { - target[eventNameSymbol] = null; - } - }; - // The getter would return undefined for unassigned properties but the default value of an - // unassigned property is null - desc.get = function () { - // in some of windows's onproperty callback, this is undefined - // so we need to check it - let target = this; - if (!target && obj === _global) { - target = _global; - } - if (!target) { - return null; - } - const listener = target[eventNameSymbol]; - if (listener) { - return listener; - } - else if (originalDescGet) { - // result will be null when use inline event attribute, - // such as - // because the onclick function is internal raw uncompiled handler - // the onclick will be evaluated when first time event was triggered or - // the property is accessed, https://github.com/angular/zone.js/issues/525 - // so we should use original native get to retrieve the handler - let value = originalDescGet && originalDescGet.call(this); - if (value) { - desc.set.call(this, value); - if (typeof target[REMOVE_ATTRIBUTE] === 'function') { - target.removeAttribute(prop); - } - return value; - } - } - return null; - }; - ObjectDefineProperty(obj, prop, desc); - obj[onPropPatchedSymbol] = true; - } - function patchOnProperties(obj, properties, prototype) { - if (properties) { - for (let i = 0; i < properties.length; i++) { - patchProperty(obj, 'on' + properties[i], prototype); - } - } - else { - const onProperties = []; - for (const prop in obj) { - if (prop.substr(0, 2) == 'on') { - onProperties.push(prop); - } - } - for (let j = 0; j < onProperties.length; j++) { - patchProperty(obj, onProperties[j], prototype); - } - } - } - const originalInstanceKey = zoneSymbol('originalInstance'); - // wrap some native API on `window` - function patchClass(className) { - const OriginalClass = _global[className]; - if (!OriginalClass) - return; - // keep original class in global - _global[zoneSymbol(className)] = OriginalClass; - _global[className] = function () { - const a = bindArguments(arguments, className); - switch (a.length) { - case 0: - this[originalInstanceKey] = new OriginalClass(); - break; - case 1: - this[originalInstanceKey] = new OriginalClass(a[0]); - break; - case 2: - this[originalInstanceKey] = new OriginalClass(a[0], a[1]); - break; - case 3: - this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]); - break; - case 4: - this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]); - break; - default: - throw new Error('Arg list too long.'); - } - }; - // attach original delegate to patched function - attachOriginToPatched(_global[className], OriginalClass); - const instance = new OriginalClass(function () { }); - let prop; - for (prop in instance) { - // https://bugs.webkit.org/show_bug.cgi?id=44721 - if (className === 'XMLHttpRequest' && prop === 'responseBlob') - continue; - (function (prop) { - if (typeof instance[prop] === 'function') { - _global[className].prototype[prop] = function () { - return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments); - }; - } - else { - ObjectDefineProperty(_global[className].prototype, prop, { - set: function (fn) { - if (typeof fn === 'function') { - this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop); - // keep callback in wrapped function so we can - // use it in Function.prototype.toString to return - // the native one. - attachOriginToPatched(this[originalInstanceKey][prop], fn); - } - else { - this[originalInstanceKey][prop] = fn; - } - }, - get: function () { return this[originalInstanceKey][prop]; } - }); - } - }(prop)); - } - for (prop in OriginalClass) { - if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) { - _global[className][prop] = OriginalClass[prop]; - } - } - } - function copySymbolProperties(src, dest) { - if (typeof Object.getOwnPropertySymbols !== 'function') { - return; - } - const symbols = Object.getOwnPropertySymbols(src); - symbols.forEach((symbol) => { - const desc = Object.getOwnPropertyDescriptor(src, symbol); - Object.defineProperty(dest, symbol, { - get: function () { return src[symbol]; }, - set: function (value) { - if (desc && (!desc.writable || typeof desc.set !== 'function')) { - // if src[symbol] is not writable or not have a setter, just return - return; - } - src[symbol] = value; - }, - enumerable: desc ? desc.enumerable : true, - configurable: desc ? desc.configurable : true - }); - }); - } - let shouldCopySymbolProperties = false; - function patchMethod(target, name, patchFn) { - let proto = target; - while (proto && !proto.hasOwnProperty(name)) { - proto = ObjectGetPrototypeOf(proto); - } - if (!proto && target[name]) { - // somehow we did not find it, but we can see it. This happens on IE for Window properties. - proto = target; - } - const delegateName = zoneSymbol(name); - let delegate = null; - if (proto && !(delegate = proto[delegateName])) { - delegate = proto[delegateName] = proto[name]; - // check whether proto[name] is writable - // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob - const desc = proto && ObjectGetOwnPropertyDescriptor(proto, name); - if (isPropertyWritable(desc)) { - const patchDelegate = patchFn(delegate, delegateName, name); - proto[name] = function () { return patchDelegate(this, arguments); }; - attachOriginToPatched(proto[name], delegate); - if (shouldCopySymbolProperties) { - copySymbolProperties(delegate, proto[name]); - } - } - } - return delegate; - } - // TODO: @JiaLiPassion, support cancel task later if necessary - function patchMacroTask(obj, funcName, metaCreator) { - let setNative = null; - function scheduleTask(task) { - const data = task.data; - data.args[data.cbIdx] = function () { task.invoke.apply(this, arguments); }; - setNative.apply(data.target, data.args); - return task; - } - setNative = patchMethod(obj, funcName, (delegate) => function (self, args) { - const meta = metaCreator(self, args); - if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') { - return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask); - } - else { - // cause an error by calling it directly. - return delegate.apply(self, args); - } - }); - } - function attachOriginToPatched(patched, original) { - patched[zoneSymbol('OriginalDelegate')] = original; - } - let isDetectedIEOrEdge = false; - let ieOrEdge = false; - function isIE() { - try { - const ua = internalWindow.navigator.userAgent; - if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) { - return true; - } - } - catch (error) { - } - return false; - } - function isIEOrEdge() { - if (isDetectedIEOrEdge) { - return ieOrEdge; - } - isDetectedIEOrEdge = true; - try { - const ua = internalWindow.navigator.userAgent; - if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) { - ieOrEdge = true; - } - } - catch (error) { - } - return ieOrEdge; - } - - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - // override Function.prototype.toString to make zone.js patched function - // look like native function - Zone.__load_patch('toString', (global) => { - // patch Func.prototype.toString to let them look like native - const originalFunctionToString = Function.prototype.toString; - const ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate'); - const PROMISE_SYMBOL = zoneSymbol('Promise'); - const ERROR_SYMBOL = zoneSymbol('Error'); - const newFunctionToString = function toString() { - if (typeof this === 'function') { - const originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL]; - if (originalDelegate) { - if (typeof originalDelegate === 'function') { - return originalFunctionToString.call(originalDelegate); - } - else { - return Object.prototype.toString.call(originalDelegate); - } - } - if (this === Promise) { - const nativePromise = global[PROMISE_SYMBOL]; - if (nativePromise) { - return originalFunctionToString.call(nativePromise); - } - } - if (this === Error) { - const nativeError = global[ERROR_SYMBOL]; - if (nativeError) { - return originalFunctionToString.call(nativeError); - } - } - } - return originalFunctionToString.call(this); - }; - newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString; - Function.prototype.toString = newFunctionToString; - // patch Object.prototype.toString to let them look like native - const originalObjectToString = Object.prototype.toString; - const PROMISE_OBJECT_TO_STRING = '[object Promise]'; - Object.prototype.toString = function () { - if (this instanceof Promise) { - return PROMISE_OBJECT_TO_STRING; - } - return originalObjectToString.call(this); - }; - }); - - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - let passiveSupported = false; - if (typeof window !== 'undefined') { - try { - const options = Object.defineProperty({}, 'passive', { get: function () { passiveSupported = true; } }); - window.addEventListener('test', options, options); - window.removeEventListener('test', options, options); - } - catch (err) { - passiveSupported = false; - } - } - // an identifier to tell ZoneTask do not create a new invoke closure - const OPTIMIZED_ZONE_EVENT_TASK_DATA = { - useG: true - }; - const zoneSymbolEventNames$1 = {}; - const globalSources = {}; - const EVENT_NAME_SYMBOL_REGX = new RegExp('^' + ZONE_SYMBOL_PREFIX + '(\\w+)(true|false)$'); - const IMMEDIATE_PROPAGATION_SYMBOL = zoneSymbol('propagationStopped'); - function patchEventTarget(_global, apis, patchOptions) { - const ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR; - const REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR; - const LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners'; - const REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners'; - const zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER); - const ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':'; - const PREPEND_EVENT_LISTENER = 'prependListener'; - const PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':'; - const invokeTask = function (task, target, event) { - // for better performance, check isRemoved which is set - // by removeEventListener - if (task.isRemoved) { - return; - } - const delegate = task.callback; - if (typeof delegate === 'object' && delegate.handleEvent) { - // create the bind version of handleEvent when invoke - task.callback = (event) => delegate.handleEvent(event); - task.originalDelegate = delegate; - } - // invoke static task.invoke - task.invoke(task, target, [event]); - const options = task.options; - if (options && typeof options === 'object' && options.once) { - // if options.once is true, after invoke once remove listener here - // only browser need to do this, nodejs eventEmitter will cal removeListener - // inside EventEmitter.once - const delegate = task.originalDelegate ? task.originalDelegate : task.callback; - target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate, options); - } - }; - // global shared zoneAwareCallback to handle all event callback with capture = false - const globalZoneAwareCallback = function (event) { - // https://github.com/angular/zone.js/issues/911, in IE, sometimes - // event will be undefined, so we need to use window.event - event = event || _global.event; - if (!event) { - return; - } - // event.target is needed for Samsung TV and SourceBuffer - // || global is needed https://github.com/angular/zone.js/issues/190 - const target = this || event.target || _global; - const tasks = target[zoneSymbolEventNames$1[event.type][FALSE_STR]]; - if (tasks) { - // invoke all tasks which attached to current target with given event.type and capture = false - // for performance concern, if task.length === 1, just invoke - if (tasks.length === 1) { - invokeTask(tasks[0], target, event); - } - else { - // https://github.com/angular/zone.js/issues/836 - // copy the tasks array before invoke, to avoid - // the callback will remove itself or other listener - const copyTasks = tasks.slice(); - for (let i = 0; i < copyTasks.length; i++) { - if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) { - break; - } - invokeTask(copyTasks[i], target, event); - } - } - } - }; - // global shared zoneAwareCallback to handle all event callback with capture = true - const globalZoneAwareCaptureCallback = function (event) { - // https://github.com/angular/zone.js/issues/911, in IE, sometimes - // event will be undefined, so we need to use window.event - event = event || _global.event; - if (!event) { - return; - } - // event.target is needed for Samsung TV and SourceBuffer - // || global is needed https://github.com/angular/zone.js/issues/190 - const target = this || event.target || _global; - const tasks = target[zoneSymbolEventNames$1[event.type][TRUE_STR]]; - if (tasks) { - // invoke all tasks which attached to current target with given event.type and capture = false - // for performance concern, if task.length === 1, just invoke - if (tasks.length === 1) { - invokeTask(tasks[0], target, event); - } - else { - // https://github.com/angular/zone.js/issues/836 - // copy the tasks array before invoke, to avoid - // the callback will remove itself or other listener - const copyTasks = tasks.slice(); - for (let i = 0; i < copyTasks.length; i++) { - if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) { - break; - } - invokeTask(copyTasks[i], target, event); - } - } - } - }; - function patchEventTargetMethods(obj, patchOptions) { - if (!obj) { - return false; - } - let useGlobalCallback = true; - if (patchOptions && patchOptions.useG !== undefined) { - useGlobalCallback = patchOptions.useG; - } - const validateHandler = patchOptions && patchOptions.vh; - let checkDuplicate = true; - if (patchOptions && patchOptions.chkDup !== undefined) { - checkDuplicate = patchOptions.chkDup; - } - let returnTarget = false; - if (patchOptions && patchOptions.rt !== undefined) { - returnTarget = patchOptions.rt; - } - let proto = obj; - while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) { - proto = ObjectGetPrototypeOf(proto); - } - if (!proto && obj[ADD_EVENT_LISTENER]) { - // somehow we did not find it, but we can see it. This happens on IE for Window properties. - proto = obj; - } - if (!proto) { - return false; - } - if (proto[zoneSymbolAddEventListener]) { - return false; - } - const eventNameToString = patchOptions && patchOptions.eventNameToString; - // a shared global taskData to pass data for scheduleEventTask - // so we do not need to create a new object just for pass some data - const taskData = {}; - const nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER]; - const nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] = - proto[REMOVE_EVENT_LISTENER]; - const nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] = - proto[LISTENERS_EVENT_LISTENER]; - const nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] = - proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER]; - let nativePrependEventListener; - if (patchOptions && patchOptions.prepend) { - nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] = - proto[patchOptions.prepend]; - } - function checkIsPassive(task) { - if (!passiveSupported && typeof taskData.options !== 'boolean' && - typeof taskData.options !== 'undefined' && taskData.options !== null) { - // options is a non-null non-undefined object - // passive is not supported - // don't pass options as object - // just pass capture as a boolean - task.options = !!taskData.options.capture; - taskData.options = task.options; - } - } - const customScheduleGlobal = function (task) { - // if there is already a task for the eventName + capture, - // just return, because we use the shared globalZoneAwareCallback here. - if (taskData.isExisting) { - return; - } - checkIsPassive(task); - return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options); - }; - const customCancelGlobal = function (task) { - // if task is not marked as isRemoved, this call is directly - // from Zone.prototype.cancelTask, we should remove the task - // from tasksList of target first - if (!task.isRemoved) { - const symbolEventNames = zoneSymbolEventNames$1[task.eventName]; - let symbolEventName; - if (symbolEventNames) { - symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR]; - } - const existingTasks = symbolEventName && task.target[symbolEventName]; - if (existingTasks) { - for (let i = 0; i < existingTasks.length; i++) { - const existingTask = existingTasks[i]; - if (existingTask === task) { - existingTasks.splice(i, 1); - // set isRemoved to data for faster invokeTask check - task.isRemoved = true; - if (existingTasks.length === 0) { - // all tasks for the eventName + capture have gone, - // remove globalZoneAwareCallback and remove the task cache from target - task.allRemoved = true; - task.target[symbolEventName] = null; - } - break; - } - } - } - } - // if all tasks for the eventName + capture have gone, - // we will really remove the global event callback, - // if not, return - if (!task.allRemoved) { - return; - } - return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options); - }; - const customScheduleNonGlobal = function (task) { - checkIsPassive(task); - return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options); - }; - const customSchedulePrepend = function (task) { - return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options); - }; - const customCancelNonGlobal = function (task) { - return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options); - }; - const customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal; - const customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal; - const compareTaskCallbackVsDelegate = function (task, delegate) { - const typeOfDelegate = typeof delegate; - return (typeOfDelegate === 'function' && task.callback === delegate) || - (typeOfDelegate === 'object' && task.originalDelegate === delegate); - }; - const compare = (patchOptions && patchOptions.diff) ? patchOptions.diff : compareTaskCallbackVsDelegate; - const blackListedEvents = Zone[zoneSymbol('BLACK_LISTED_EVENTS')]; - const makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget = false, prepend = false) { - return function () { - const target = this || _global; - let eventName = arguments[0]; - if (patchOptions && patchOptions.transferEventName) { - eventName = patchOptions.transferEventName(eventName); - } - let delegate = arguments[1]; - if (!delegate) { - return nativeListener.apply(this, arguments); - } - if (isNode && eventName === 'uncaughtException') { - // don't patch uncaughtException of nodejs to prevent endless loop - return nativeListener.apply(this, arguments); - } - // don't create the bind delegate function for handleEvent - // case here to improve addEventListener performance - // we will create the bind delegate when invoke - let isHandleEvent = false; - if (typeof delegate !== 'function') { - if (!delegate.handleEvent) { - return nativeListener.apply(this, arguments); - } - isHandleEvent = true; - } - if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) { - return; - } - const options = arguments[2]; - if (blackListedEvents) { - // check black list - for (let i = 0; i < blackListedEvents.length; i++) { - if (eventName === blackListedEvents[i]) { - return nativeListener.apply(this, arguments); - } - } - } - let capture; - let once = false; - if (options === undefined) { - capture = false; - } - else if (options === true) { - capture = true; - } - else if (options === false) { - capture = false; - } - else { - capture = options ? !!options.capture : false; - once = options ? !!options.once : false; - } - const zone = Zone.current; - const symbolEventNames = zoneSymbolEventNames$1[eventName]; - let symbolEventName; - if (!symbolEventNames) { - // the code is duplicate, but I just want to get some better performance - const falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR; - const trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR; - const symbol = ZONE_SYMBOL_PREFIX + falseEventName; - const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName; - zoneSymbolEventNames$1[eventName] = {}; - zoneSymbolEventNames$1[eventName][FALSE_STR] = symbol; - zoneSymbolEventNames$1[eventName][TRUE_STR] = symbolCapture; - symbolEventName = capture ? symbolCapture : symbol; - } - else { - symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR]; - } - let existingTasks = target[symbolEventName]; - let isExisting = false; - if (existingTasks) { - // already have task registered - isExisting = true; - if (checkDuplicate) { - for (let i = 0; i < existingTasks.length; i++) { - if (compare(existingTasks[i], delegate)) { - // same callback, same capture, same event name, just return - return; - } - } - } - } - else { - existingTasks = target[symbolEventName] = []; - } - let source; - const constructorName = target.constructor['name']; - const targetSource = globalSources[constructorName]; - if (targetSource) { - source = targetSource[eventName]; - } - if (!source) { - source = constructorName + addSource + - (eventNameToString ? eventNameToString(eventName) : eventName); - } - // do not create a new object as task.data to pass those things - // just use the global shared one - taskData.options = options; - if (once) { - // if addEventListener with once options, we don't pass it to - // native addEventListener, instead we keep the once setting - // and handle ourselves. - taskData.options.once = false; - } - taskData.target = target; - taskData.capture = capture; - taskData.eventName = eventName; - taskData.isExisting = isExisting; - const data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined; - // keep taskData into data to allow onScheduleEventTask to access the task information - if (data) { - data.taskData = taskData; - } - const task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn); - // should clear taskData.target to avoid memory leak - // issue, https://github.com/angular/angular/issues/20442 - taskData.target = null; - // need to clear up taskData because it is a global object - if (data) { - data.taskData = null; - } - // have to save those information to task in case - // application may call task.zone.cancelTask() directly - if (once) { - options.once = true; - } - if (!(!passiveSupported && typeof task.options === 'boolean')) { - // if not support passive, and we pass an option object - // to addEventListener, we should save the options to task - task.options = options; - } - task.target = target; - task.capture = capture; - task.eventName = eventName; - if (isHandleEvent) { - // save original delegate for compare to check duplicate - task.originalDelegate = delegate; - } - if (!prepend) { - existingTasks.push(task); - } - else { - existingTasks.unshift(task); - } - if (returnTarget) { - return target; - } - }; - }; - proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget); - if (nativePrependEventListener) { - proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true); - } - proto[REMOVE_EVENT_LISTENER] = function () { - const target = this || _global; - let eventName = arguments[0]; - if (patchOptions && patchOptions.transferEventName) { - eventName = patchOptions.transferEventName(eventName); - } - const options = arguments[2]; - let capture; - if (options === undefined) { - capture = false; - } - else if (options === true) { - capture = true; - } - else if (options === false) { - capture = false; - } - else { - capture = options ? !!options.capture : false; - } - const delegate = arguments[1]; - if (!delegate) { - return nativeRemoveEventListener.apply(this, arguments); - } - if (validateHandler && - !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) { - return; - } - const symbolEventNames = zoneSymbolEventNames$1[eventName]; - let symbolEventName; - if (symbolEventNames) { - symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR]; - } - const existingTasks = symbolEventName && target[symbolEventName]; - if (existingTasks) { - for (let i = 0; i < existingTasks.length; i++) { - const existingTask = existingTasks[i]; - if (compare(existingTask, delegate)) { - existingTasks.splice(i, 1); - // set isRemoved to data for faster invokeTask check - existingTask.isRemoved = true; - if (existingTasks.length === 0) { - // all tasks for the eventName + capture have gone, - // remove globalZoneAwareCallback and remove the task cache from target - existingTask.allRemoved = true; - target[symbolEventName] = null; - // in the target, we have an event listener which is added by on_property - // such as target.onclick = function() {}, so we need to clear this internal - // property too if all delegates all removed - if (typeof eventName === 'string') { - const onPropertySymbol = ZONE_SYMBOL_PREFIX + 'ON_PROPERTY' + eventName; - target[onPropertySymbol] = null; - } - } - existingTask.zone.cancelTask(existingTask); - if (returnTarget) { - return target; - } - return; - } - } - } - // issue 930, didn't find the event name or callback - // from zone kept existingTasks, the callback maybe - // added outside of zone, we need to call native removeEventListener - // to try to remove it. - return nativeRemoveEventListener.apply(this, arguments); - }; - proto[LISTENERS_EVENT_LISTENER] = function () { - const target = this || _global; - let eventName = arguments[0]; - if (patchOptions && patchOptions.transferEventName) { - eventName = patchOptions.transferEventName(eventName); - } - const listeners = []; - const tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName); - for (let i = 0; i < tasks.length; i++) { - const task = tasks[i]; - let delegate = task.originalDelegate ? task.originalDelegate : task.callback; - listeners.push(delegate); - } - return listeners; - }; - proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () { - const target = this || _global; - let eventName = arguments[0]; - if (!eventName) { - const keys = Object.keys(target); - for (let i = 0; i < keys.length; i++) { - const prop = keys[i]; - const match = EVENT_NAME_SYMBOL_REGX.exec(prop); - let evtName = match && match[1]; - // in nodejs EventEmitter, removeListener event is - // used for monitoring the removeListener call, - // so just keep removeListener eventListener until - // all other eventListeners are removed - if (evtName && evtName !== 'removeListener') { - this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName); - } - } - // remove removeListener listener finally - this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener'); - } - else { - if (patchOptions && patchOptions.transferEventName) { - eventName = patchOptions.transferEventName(eventName); - } - const symbolEventNames = zoneSymbolEventNames$1[eventName]; - if (symbolEventNames) { - const symbolEventName = symbolEventNames[FALSE_STR]; - const symbolCaptureEventName = symbolEventNames[TRUE_STR]; - const tasks = target[symbolEventName]; - const captureTasks = target[symbolCaptureEventName]; - if (tasks) { - const removeTasks = tasks.slice(); - for (let i = 0; i < removeTasks.length; i++) { - const task = removeTasks[i]; - let delegate = task.originalDelegate ? task.originalDelegate : task.callback; - this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options); - } - } - if (captureTasks) { - const removeTasks = captureTasks.slice(); - for (let i = 0; i < removeTasks.length; i++) { - const task = removeTasks[i]; - let delegate = task.originalDelegate ? task.originalDelegate : task.callback; - this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options); - } - } - } - } - if (returnTarget) { - return this; - } - }; - // for native toString patch - attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener); - attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener); - if (nativeRemoveAllListeners) { - attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners); - } - if (nativeListeners) { - attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners); - } - return true; - } - let results = []; - for (let i = 0; i < apis.length; i++) { - results[i] = patchEventTargetMethods(apis[i], patchOptions); - } - return results; - } - function findEventTasks(target, eventName) { - const foundTasks = []; - for (let prop in target) { - const match = EVENT_NAME_SYMBOL_REGX.exec(prop); - let evtName = match && match[1]; - if (evtName && (!eventName || evtName === eventName)) { - const tasks = target[prop]; - if (tasks) { - for (let i = 0; i < tasks.length; i++) { - foundTasks.push(tasks[i]); - } - } - } - } - return foundTasks; - } - function patchEventPrototype(global, api) { - const Event = global['Event']; - if (Event && Event.prototype) { - api.patchMethod(Event.prototype, 'stopImmediatePropagation', (delegate) => function (self, args) { - self[IMMEDIATE_PROPAGATION_SYMBOL] = true; - // we need to call the native stopImmediatePropagation - // in case in some hybrid application, some part of - // application will be controlled by zone, some are not - delegate && delegate.apply(self, args); - }); - } - } - - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - function patchCallbacks(api, target, targetName, method, callbacks) { - const symbol = Zone.__symbol__(method); - if (target[symbol]) { - return; - } - const nativeDelegate = target[symbol] = target[method]; - target[method] = function (name, opts, options) { - if (opts && opts.prototype) { - callbacks.forEach(function (callback) { - const source = `${targetName}.${method}::` + callback; - const prototype = opts.prototype; - if (prototype.hasOwnProperty(callback)) { - const descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback); - if (descriptor && descriptor.value) { - descriptor.value = api.wrapWithCurrentZone(descriptor.value, source); - api._redefineProperty(opts.prototype, callback, descriptor); - } - else if (prototype[callback]) { - prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source); - } - } - else if (prototype[callback]) { - prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source); - } - }); - } - return nativeDelegate.call(target, name, opts, options); - }; - api.attachOriginToPatched(target[method], nativeDelegate); - } - - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - const globalEventHandlersEventNames = [ - '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' - ]; - const documentEventNames = [ - 'afterscriptexecute', 'beforescriptexecute', 'DOMContentLoaded', 'freeze', 'fullscreenchange', - 'mozfullscreenchange', 'webkitfullscreenchange', 'msfullscreenchange', 'fullscreenerror', - 'mozfullscreenerror', 'webkitfullscreenerror', 'msfullscreenerror', 'readystatechange', - 'visibilitychange', 'resume' - ]; - const windowEventNames = [ - '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' - ]; - const htmlElementEventNames = [ - 'beforecopy', 'beforecut', 'beforepaste', 'copy', 'cut', 'paste', 'dragstart', 'loadend', - 'animationstart', 'search', 'transitionrun', 'transitionstart', 'webkitanimationend', - 'webkitanimationiteration', 'webkitanimationstart', 'webkittransitionend' - ]; - const mediaElementEventNames = ['encrypted', 'waitingforkey', 'msneedkey', 'mozinterruptbegin', 'mozinterruptend']; - const ieElementEventNames = [ - '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' - ]; - const webglEventNames = ['webglcontextrestored', 'webglcontextlost', 'webglcontextcreationerror']; - const formEventNames = ['autocomplete', 'autocompleteerror']; - const detailEventNames = ['toggle']; - const frameEventNames = ['load']; - const frameSetEventNames = ['blur', 'error', 'focus', 'load', 'resize', 'scroll', 'messageerror']; - const marqueeEventNames = ['bounce', 'finish', 'start']; - const XMLHttpRequestEventNames = [ - 'loadstart', 'progress', 'abort', 'error', 'load', 'progress', 'timeout', 'loadend', - 'readystatechange' - ]; - const IDBIndexEventNames = ['upgradeneeded', 'complete', 'abort', 'success', 'error', 'blocked', 'versionchange', 'close']; - const websocketEventNames = ['close', 'error', 'open', 'message']; - const workerEventNames = ['error', 'message']; - const eventNames = globalEventHandlersEventNames.concat(webglEventNames, formEventNames, detailEventNames, documentEventNames, windowEventNames, htmlElementEventNames, ieElementEventNames); - function filterProperties(target, onProperties, ignoreProperties) { - if (!ignoreProperties || ignoreProperties.length === 0) { - return onProperties; - } - const tip = ignoreProperties.filter(ip => ip.target === target); - if (!tip || tip.length === 0) { - return onProperties; - } - const targetIgnoreProperties = tip[0].ignoreProperties; - return onProperties.filter(op => targetIgnoreProperties.indexOf(op) === -1); - } - function patchFilteredProperties(target, onProperties, ignoreProperties, prototype) { - // check whether target is available, sometimes target will be undefined - // because different browser or some 3rd party plugin. - if (!target) { - return; - } - const filteredProperties = filterProperties(target, onProperties, ignoreProperties); - patchOnProperties(target, filteredProperties, prototype); - } - function propertyDescriptorPatch(api, _global) { - if (isNode && !isMix) { - return; - } - if (Zone[api.symbol('patchEvents')]) { - // events are already been patched by legacy patch. - return; - } - const supportsWebSocket = typeof WebSocket !== 'undefined'; - const ignoreProperties = _global['__Zone_ignore_on_properties']; - // for browsers that we can patch the descriptor: Chrome & Firefox - if (isBrowser) { - const internalWindow = window; - const ignoreErrorProperties = isIE ? [{ target: internalWindow, ignoreProperties: ['error'] }] : []; - // in IE/Edge, onProp not exist in window object, but in WindowPrototype - // so we need to pass WindowPrototype to check onProp exist or not - patchFilteredProperties(internalWindow, eventNames.concat(['messageerror']), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow)); - patchFilteredProperties(Document.prototype, eventNames, ignoreProperties); - if (typeof internalWindow['SVGElement'] !== 'undefined') { - patchFilteredProperties(internalWindow['SVGElement'].prototype, eventNames, ignoreProperties); - } - patchFilteredProperties(Element.prototype, eventNames, ignoreProperties); - patchFilteredProperties(HTMLElement.prototype, eventNames, ignoreProperties); - patchFilteredProperties(HTMLMediaElement.prototype, mediaElementEventNames, ignoreProperties); - patchFilteredProperties(HTMLFrameSetElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties); - patchFilteredProperties(HTMLBodyElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties); - patchFilteredProperties(HTMLFrameElement.prototype, frameEventNames, ignoreProperties); - patchFilteredProperties(HTMLIFrameElement.prototype, frameEventNames, ignoreProperties); - const HTMLMarqueeElement = internalWindow['HTMLMarqueeElement']; - if (HTMLMarqueeElement) { - patchFilteredProperties(HTMLMarqueeElement.prototype, marqueeEventNames, ignoreProperties); - } - const Worker = internalWindow['Worker']; - if (Worker) { - patchFilteredProperties(Worker.prototype, workerEventNames, ignoreProperties); - } - } - const XMLHttpRequest = _global['XMLHttpRequest']; - if (XMLHttpRequest) { - // XMLHttpRequest is not available in ServiceWorker, so we need to check here - patchFilteredProperties(XMLHttpRequest.prototype, XMLHttpRequestEventNames, ignoreProperties); - } - const XMLHttpRequestEventTarget = _global['XMLHttpRequestEventTarget']; - if (XMLHttpRequestEventTarget) { - patchFilteredProperties(XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype, XMLHttpRequestEventNames, ignoreProperties); - } - if (typeof IDBIndex !== 'undefined') { - patchFilteredProperties(IDBIndex.prototype, IDBIndexEventNames, ignoreProperties); - patchFilteredProperties(IDBRequest.prototype, IDBIndexEventNames, ignoreProperties); - patchFilteredProperties(IDBOpenDBRequest.prototype, IDBIndexEventNames, ignoreProperties); - patchFilteredProperties(IDBDatabase.prototype, IDBIndexEventNames, ignoreProperties); - patchFilteredProperties(IDBTransaction.prototype, IDBIndexEventNames, ignoreProperties); - patchFilteredProperties(IDBCursor.prototype, IDBIndexEventNames, ignoreProperties); - } - if (supportsWebSocket) { - patchFilteredProperties(WebSocket.prototype, websocketEventNames, ignoreProperties); - } - } - - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - Zone.__load_patch('util', (global, Zone, api) => { - api.patchOnProperties = patchOnProperties; - api.patchMethod = patchMethod; - api.bindArguments = bindArguments; - api.patchMacroTask = patchMacroTask; - // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS` to - // define which events will not be patched by `Zone.js`. - // In newer version (>=0.9.0), we change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep - // the name consistent with angular repo. - // The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be supported for - // backwards compatibility. - const SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS'); - const SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS'); - if (global[SYMBOL_UNPATCHED_EVENTS]) { - global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS]; - } - if (global[SYMBOL_BLACK_LISTED_EVENTS]) { - Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] = - global[SYMBOL_BLACK_LISTED_EVENTS]; - } - api.patchEventPrototype = patchEventPrototype; - api.patchEventTarget = patchEventTarget; - api.isIEOrEdge = isIEOrEdge; - api.ObjectDefineProperty = ObjectDefineProperty; - api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor; - api.ObjectCreate = ObjectCreate; - api.ArraySlice = ArraySlice; - api.patchClass = patchClass; - api.wrapWithCurrentZone = wrapWithCurrentZone; - api.filterProperties = filterProperties; - api.attachOriginToPatched = attachOriginToPatched; - api._redefineProperty = Object.defineProperty; - api.patchCallbacks = patchCallbacks; - api.getGlobalObjects = () => ({ globalSources, zoneSymbolEventNames: zoneSymbolEventNames$1, eventNames, isBrowser, isMix, isNode, TRUE_STR, - FALSE_STR, ZONE_SYMBOL_PREFIX, ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR }); - }); - - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - const taskSymbol = zoneSymbol('zoneTask'); - function patchTimer(window, setName, cancelName, nameSuffix) { - let setNative = null; - let clearNative = null; - setName += nameSuffix; - cancelName += nameSuffix; - const tasksByHandleId = {}; - function scheduleTask(task) { - const data = task.data; - function timer() { - try { - task.invoke.apply(this, arguments); - } - finally { - // issue-934, task will be cancelled - // even it is a periodic task such as - // setInterval - if (!(task.data && task.data.isPeriodic)) { - if (typeof data.handleId === 'number') { - // in non-nodejs env, we remove timerId - // from local cache - delete tasksByHandleId[data.handleId]; - } - else if (data.handleId) { - // Node returns complex objects as handleIds - // we remove task reference from timer object - data.handleId[taskSymbol] = null; - } - } - } - } - data.args[0] = timer; - data.handleId = setNative.apply(window, data.args); - return task; - } - function clearTask(task) { return clearNative(task.data.handleId); } - setNative = - patchMethod(window, setName, (delegate) => function (self, args) { - if (typeof args[0] === 'function') { - const options = { - isPeriodic: nameSuffix === 'Interval', - delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 : - undefined, - args: args - }; - const task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask); - if (!task) { - return task; - } - // Node.js must additionally support the ref and unref functions. - const handle = task.data.handleId; - if (typeof handle === 'number') { - // for non nodejs env, we save handleId: task - // mapping in local cache for clearTimeout - tasksByHandleId[handle] = task; - } - else if (handle) { - // for nodejs env, we save task - // reference in timerId Object for clearTimeout - handle[taskSymbol] = task; - } - // check whether handle is null, because some polyfill or browser - // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame - if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' && - typeof handle.unref === 'function') { - task.ref = handle.ref.bind(handle); - task.unref = handle.unref.bind(handle); - } - if (typeof handle === 'number' || handle) { - return handle; - } - return task; - } - else { - // cause an error by calling it directly. - return delegate.apply(window, args); - } - }); - clearNative = - patchMethod(window, cancelName, (delegate) => function (self, args) { - const id = args[0]; - let task; - if (typeof id === 'number') { - // non nodejs env. - task = tasksByHandleId[id]; - } - else { - // nodejs env. - task = id && id[taskSymbol]; - // other environments. - if (!task) { - task = id; - } - } - if (task && typeof task.type === 'string') { - if (task.state !== 'notScheduled' && - (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) { - if (typeof id === 'number') { - delete tasksByHandleId[id]; - } - else if (id) { - id[taskSymbol] = null; - } - // Do not cancel already canceled functions - task.zone.cancelTask(task); - } - } - else { - // cause an error by calling it directly. - delegate.apply(window, args); - } - }); - } - - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - function patchCustomElements(_global, api) { - const { isBrowser, isMix } = api.getGlobalObjects(); - if ((!isBrowser && !isMix) || !_global['customElements'] || !('customElements' in _global)) { - return; - } - const callbacks = ['connectedCallback', 'disconnectedCallback', 'adoptedCallback', 'attributeChangedCallback']; - api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks); - } - - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - function eventTargetPatch(_global, api) { - if (Zone[api.symbol('patchEventTarget')]) { - // EventTarget is already patched. - return; - } - const { eventNames, zoneSymbolEventNames, TRUE_STR, FALSE_STR, ZONE_SYMBOL_PREFIX } = api.getGlobalObjects(); - // predefine all __zone_symbol__ + eventName + true/false string - for (let i = 0; i < eventNames.length; i++) { - const eventName = eventNames[i]; - const falseEventName = eventName + FALSE_STR; - const trueEventName = eventName + TRUE_STR; - const symbol = ZONE_SYMBOL_PREFIX + falseEventName; - const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName; - zoneSymbolEventNames[eventName] = {}; - zoneSymbolEventNames[eventName][FALSE_STR] = symbol; - zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture; - } - const EVENT_TARGET = _global['EventTarget']; - if (!EVENT_TARGET || !EVENT_TARGET.prototype) { - return; - } - api.patchEventTarget(_global, [EVENT_TARGET && EVENT_TARGET.prototype]); - return true; - } - function patchEvent(global, api) { - api.patchEventPrototype(global, api); - } - - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - Zone.__load_patch('legacy', (global) => { - const legacyPatch = global[Zone.__symbol__('legacyPatch')]; - if (legacyPatch) { - legacyPatch(); - } - }); - Zone.__load_patch('timers', (global) => { - const set = 'set'; - const clear = 'clear'; - patchTimer(global, set, clear, 'Timeout'); - patchTimer(global, set, clear, 'Interval'); - patchTimer(global, set, clear, 'Immediate'); - }); - Zone.__load_patch('requestAnimationFrame', (global) => { - patchTimer(global, 'request', 'cancel', 'AnimationFrame'); - patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame'); - patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame'); - }); - Zone.__load_patch('blocking', (global, Zone) => { - const blockingMethods = ['alert', 'prompt', 'confirm']; - for (let i = 0; i < blockingMethods.length; i++) { - const name = blockingMethods[i]; - patchMethod(global, name, (delegate, symbol, name) => { - return function (s, args) { - return Zone.current.run(delegate, global, args, name); - }; - }); - } - }); - Zone.__load_patch('EventTarget', (global, Zone, api) => { - patchEvent(global, api); - eventTargetPatch(global, api); - // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener - const XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget']; - if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) { - api.patchEventTarget(global, [XMLHttpRequestEventTarget.prototype]); - } - patchClass('MutationObserver'); - patchClass('WebKitMutationObserver'); - patchClass('IntersectionObserver'); - patchClass('FileReader'); - }); - Zone.__load_patch('on_property', (global, Zone, api) => { - propertyDescriptorPatch(api, global); - }); - Zone.__load_patch('customElements', (global, Zone, api) => { - patchCustomElements(global, api); - }); - Zone.__load_patch('XHR', (global, Zone) => { - // Treat XMLHttpRequest as a macrotask. - patchXHR(global); - const XHR_TASK = zoneSymbol('xhrTask'); - const XHR_SYNC = zoneSymbol('xhrSync'); - const XHR_LISTENER = zoneSymbol('xhrListener'); - const XHR_SCHEDULED = zoneSymbol('xhrScheduled'); - const XHR_URL = zoneSymbol('xhrURL'); - const XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled'); - function patchXHR(window) { - const XMLHttpRequest = window['XMLHttpRequest']; - if (!XMLHttpRequest) { - // XMLHttpRequest is not available in service worker - return; - } - const XMLHttpRequestPrototype = XMLHttpRequest.prototype; - function findPendingTask(target) { return target[XHR_TASK]; } - let oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER]; - let oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER]; - if (!oriAddListener) { - const XMLHttpRequestEventTarget = window['XMLHttpRequestEventTarget']; - if (XMLHttpRequestEventTarget) { - const XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget.prototype; - oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER]; - oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER]; - } - } - const READY_STATE_CHANGE = 'readystatechange'; - const SCHEDULED = 'scheduled'; - function scheduleTask(task) { - const data = task.data; - const target = data.target; - target[XHR_SCHEDULED] = false; - target[XHR_ERROR_BEFORE_SCHEDULED] = false; - // remove existing event listener - const listener = target[XHR_LISTENER]; - if (!oriAddListener) { - oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER]; - oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER]; - } - if (listener) { - oriRemoveListener.call(target, READY_STATE_CHANGE, listener); - } - const newListener = target[XHR_LISTENER] = () => { - if (target.readyState === target.DONE) { - // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with - // readyState=4 multiple times, so we need to check task state here - if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) { - // check whether the xhr has registered onload listener - // if that is the case, the task should invoke after all - // onload listeners finish. - const loadTasks = target[Zone.__symbol__('loadfalse')]; - if (loadTasks && loadTasks.length > 0) { - const oriInvoke = task.invoke; - task.invoke = function () { - // need to load the tasks again, because in other - // load listener, they may remove themselves - const loadTasks = target[Zone.__symbol__('loadfalse')]; - for (let i = 0; i < loadTasks.length; i++) { - if (loadTasks[i] === task) { - loadTasks.splice(i, 1); - } - } - if (!data.aborted && task.state === SCHEDULED) { - oriInvoke.call(task); - } - }; - loadTasks.push(task); - } - else { - task.invoke(); - } - } - else if (!data.aborted && target[XHR_SCHEDULED] === false) { - // error occurs when xhr.send() - target[XHR_ERROR_BEFORE_SCHEDULED] = true; - } - } - }; - oriAddListener.call(target, READY_STATE_CHANGE, newListener); - const storedTask = target[XHR_TASK]; - if (!storedTask) { - target[XHR_TASK] = task; - } - sendNative.apply(target, data.args); - target[XHR_SCHEDULED] = true; - return task; - } - function placeholderCallback() { } - function clearTask(task) { - const data = task.data; - // Note - ideally, we would call data.target.removeEventListener here, but it's too late - // to prevent it from firing. So instead, we store info for the event listener. - data.aborted = true; - return abortNative.apply(data.target, data.args); - } - const openNative = patchMethod(XMLHttpRequestPrototype, 'open', () => function (self, args) { - self[XHR_SYNC] = args[2] == false; - self[XHR_URL] = args[1]; - return openNative.apply(self, args); - }); - const XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send'; - const fetchTaskAborting = zoneSymbol('fetchTaskAborting'); - const fetchTaskScheduling = zoneSymbol('fetchTaskScheduling'); - const sendNative = patchMethod(XMLHttpRequestPrototype, 'send', () => function (self, args) { - if (Zone.current[fetchTaskScheduling] === true) { - // a fetch is scheduling, so we are using xhr to polyfill fetch - // and because we already schedule macroTask for fetch, we should - // not schedule a macroTask for xhr again - return sendNative.apply(self, args); - } - if (self[XHR_SYNC]) { - // if the XHR is sync there is no task to schedule, just execute the code. - return sendNative.apply(self, args); - } - else { - const options = { target: self, url: self[XHR_URL], isPeriodic: false, args: args, aborted: false }; - const task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask); - if (self && self[XHR_ERROR_BEFORE_SCHEDULED] === true && !options.aborted && - task.state === SCHEDULED) { - // xhr request throw error when send - // we should invoke task instead of leaving a scheduled - // pending macroTask - task.invoke(); - } - } - }); - const abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', () => function (self, args) { - const task = findPendingTask(self); - if (task && typeof task.type == 'string') { - // If the XHR has already completed, do nothing. - // If the XHR has already been aborted, do nothing. - // Fix #569, call abort multiple times before done will cause - // macroTask task count be negative number - if (task.cancelFn == null || (task.data && task.data.aborted)) { - return; - } - task.zone.cancelTask(task); - } - else if (Zone.current[fetchTaskAborting] === true) { - // the abort is called from fetch polyfill, we need to call native abort of XHR. - return abortNative.apply(self, args); - } - // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no - // task - // to cancel. Do nothing. - }); - } - }); - Zone.__load_patch('geolocation', (global) => { - /// GEO_LOCATION - if (global['navigator'] && global['navigator'].geolocation) { - patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']); - } - }); - Zone.__load_patch('PromiseRejectionEvent', (global, Zone) => { - // handle unhandled promise rejection - function findPromiseRejectionHandler(evtName) { - return function (e) { - const eventTasks = findEventTasks(global, evtName); - eventTasks.forEach(eventTask => { - // windows has added unhandledrejection event listener - // trigger the event listener - const PromiseRejectionEvent = global['PromiseRejectionEvent']; - if (PromiseRejectionEvent) { - const evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection }); - eventTask.invoke(evt); - } - }); - }; - } - if (global['PromiseRejectionEvent']) { - Zone[zoneSymbol('unhandledPromiseRejectionHandler')] = - findPromiseRejectionHandler('unhandledrejection'); - Zone[zoneSymbol('rejectionHandledHandler')] = - findPromiseRejectionHandler('rejectionhandled'); - } - }); - - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - -})); - - -/***/ }), - -/***/ "./src/polyfills.ts": -/*!**************************!*\ - !*** ./src/polyfills.ts ***! - \**************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var zone_js_dist_zone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! zone.js/dist/zone */ "./node_modules/zone.js/dist/zone-evergreen.js"); -/* harmony import */ var zone_js_dist_zone__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(zone_js_dist_zone__WEBPACK_IMPORTED_MODULE_0__); -/** - * This file includes polyfills needed by Angular and is loaded before the app. - * You can add your own extra polyfills to this file. - * - * This file is divided into 2 sections: - * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. - * 2. Application imports. Files imported after ZoneJS that should be loaded before your main - * file. - * - * The current setup is for so-called "evergreen" browsers; the last versions of browsers that - * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), - * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. - * - * Learn more in https://angular.io/guide/browser-support - */ -/*************************************************************************************************** - * BROWSER POLYFILLS - */ -/** IE10 and IE11 requires the following for NgClass support on SVG elements */ -// import 'classlist.js'; // Run `npm install --save classlist.js`. -/** - * Web Animations `@angular/platform-browser/animations` - * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. - * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). - */ -// import 'web-animations-js'; // Run `npm install --save web-animations-js`. -/** - * By default, zone.js will patch all possible macroTask and DomEvents - * user can disable parts of macroTask/DomEvents patch by setting following flags - * because those flags need to be set before `zone.js` being loaded, and webpack - * will put import in the top of bundle, so user need to create a separate file - * in this directory (for example: zone-flags.ts), and put the following flags - * into that file, and then add the following code before importing zone.js. - * import './zone-flags'; - * - * The flags allowed in zone-flags.ts are listed here. - * - * The following flags will work for all browsers. - * - * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame - * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick - * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames - * - * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js - * with the following flag, it will bypass `zone.js` patch for IE/Edge - * - * (window as any).__Zone_enable_cross_context_check = true; - * - */ -/*************************************************************************************************** - * Zone JS is required by default for Angular itself. - */ - // Included with Angular CLI. -/*************************************************************************************************** - * APPLICATION IMPORTS - */ - - -/***/ }), - -/***/ 2: -/*!********************************!*\ - !*** multi ./src/polyfills.ts ***! - \********************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! /Users/bhargavbachina/Projects/angular-nodejs-example/my-app/src/polyfills.ts */"./src/polyfills.ts"); - - -/***/ }) - -},[[2,"runtime"]]]); -//# sourceMappingURL=polyfills-es2015.js.map \ No newline at end of file diff --git a/src/main/ui/dist/angular-nodejs-example/polyfills-es2015.js.map b/src/main/ui/dist/angular-nodejs-example/polyfills-es2015.js.map deleted file mode 100644 index fcf565ddd..000000000 --- a/src/main/ui/dist/angular-nodejs-example/polyfills-es2015.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["./node_modules/zone.js/dist/zone-evergreen.js","./src/polyfills.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI,KAA0C,GAAG,oCAAO,OAAO;AAAA;AAAA;AAAA;AAAA,oGAAC;AAChE,IAAI,SAAS;AACb,CAAC,cAAc;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iEAAiE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,4BAA4B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,+BAA+B;AACjE,sCAAsC,qBAAqB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAqB;AAC/C,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,UAAU,6CAA6C,eAAe;AAC5I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0BAA0B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C,yBAAyB,oBAAoB;AAC7C,qCAAqC,8CAA8C;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,UAAU,IAAI,YAAY,4BAA4B,QAAQ,sBAAsB,WAAW,GAAG,+CAA+C,SAAS,YAAY;AAC7M;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gIAAgI,wBAAwB,oCAAoC;AAC5L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,4BAA4B,EAAE;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,4BAA4B;AAChE,2CAA2C,cAAc;AACzD,8CAA8C,2CAA2C;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,qCAAqC,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,qCAAqC,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,sEAAsE;AAC1J;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oDAAoD;AAChG;AACA;AACA;AACA;AACA;AACA,+BAA+B,mCAAmC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,2EAA2E,gBAAgB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qCAAqC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,2CAA2C,gBAAgB;AAC3D,0CAA0C,eAAe;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iDAAiD;AACjF;AACA;AACA;AACA,+CAA+C,6BAA6B;AAC5E,8CAA8C,kCAAkC;AAChF,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,0CAA0C,EAAE;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,EAAE;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,0CAA0C,wCAAwC;AAClF,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oBAAoB,EAAE;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uCAAuC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,oCAAoC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,cAAc,mBAAmB,yBAAyB,EAAE,EAAE;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sBAAsB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sBAAsB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,8BAA8B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,0BAA0B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iBAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,wBAAwB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,wBAAwB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,WAAW,GAAG,OAAO;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,sDAAsD;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,8FAA8F;AAC9F,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,wCAAwC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4EAA4E;AAC3F;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,yBAAyB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,sBAAsB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,0CAA0C;AAClH;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;;;;;;;;;;ACl3FD;AAAA;AAAA;AAAA;;;;;;;;;;;;;;GAcG;AAEH;;GAEG;AAEH,+EAA+E;AAC/E,oEAAoE;AAEpE;;;;GAIG;AACH,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;GAEG;AACwB,CAAE,6BAA6B;AAG1D;;GAEG","file":"polyfills-es2015.js","sourcesContent":["/**\n * @license Angular v0.10.2\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n\n(function (factory) {\n typeof define === 'function' && define.amd ? define(factory) :\n factory();\n}(function () { '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 const Zone$1 = (function (global) {\n const performance = global['performance'];\n function mark(name) { performance && performance['mark'] && performance['mark'](name); }\n function performanceMeasure(name, label) {\n performance && performance['measure'] && performance['measure'](name, label);\n }\n mark('Zone');\n // Initialize before it's accessed below.\n // __Zone_symbol_prefix global can be used to override the default zone\n // symbol prefix with a custom one if needed.\n const symbolPrefix = global['__Zone_symbol_prefix'] || '__zone_symbol__';\n function __symbol__(name) { return symbolPrefix + name; }\n const checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true;\n if (global['Zone']) {\n // if global['Zone'] already exists (maybe zone.js was already loaded or\n // some other lib also registered a global object named Zone), we may need\n // to throw an error, but sometimes user may not want this error.\n // For example,\n // we have two web pages, page1 includes zone.js, page2 doesn't.\n // and the 1st time user load page1 and page2, everything work fine,\n // but when user load page2 again, error occurs because global['Zone'] already exists.\n // so we add a flag to let user choose whether to throw this error or not.\n // By default, if existing Zone is from zone.js, we will not throw the error.\n if (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function') {\n throw new Error('Zone already loaded.');\n }\n else {\n return global['Zone'];\n }\n }\n class Zone {\n constructor(parent, zoneSpec) {\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = zoneSpec && zoneSpec.properties || {};\n this._zoneDelegate =\n new ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n static assertZonePatched() {\n if (global['Promise'] !== patches['ZoneAwarePromise']) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n 'has been overwritten.\\n' +\n 'Most likely cause is that a Promise polyfill has been loaded ' +\n 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n 'If you must load one, do so before loading zone.js.)');\n }\n }\n static get root() {\n let zone = Zone.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n }\n static get current() { return _currentZoneFrame.zone; }\n static get currentTask() { return _currentTask; }\n // tslint:disable-next-line:require-internal-with-underscore\n static __load_patch(name, fn) {\n if (patches.hasOwnProperty(name)) {\n if (checkDuplicate) {\n throw Error('Already loaded patch: ' + name);\n }\n }\n else if (!global['__Zone_disable_' + name]) {\n const perfName = 'Zone:' + name;\n mark(perfName);\n patches[name] = fn(global, Zone, _api);\n performanceMeasure(perfName, perfName);\n }\n }\n get parent() { return this._parent; }\n get name() { return this._name; }\n get(key) {\n const zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n }\n getZoneWith(key) {\n let current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n }\n fork(zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n }\n wrap(callback, source) {\n if (typeof callback !== 'function') {\n throw new Error('Expecting function got: ' + callback);\n }\n const _callback = this._zoneDelegate.intercept(this, callback, source);\n const zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n }\n run(callback, applyThis, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n }\n runGuarded(callback, applyThis = null, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n }\n runTask(task, applyThis, applyArgs) {\n if (task.zone != this) {\n throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n }\n // https://github.com/angular/zone.js/issues/778, sometimes eventTask\n // will run in notScheduled(canceled) state, we should not try to\n // run such kind of task but just return\n if (task.state === notScheduled && (task.type === eventTask || task.type === macroTask)) {\n return;\n }\n const reEntryGuard = task.state != running;\n reEntryGuard && task._transitionTo(running, scheduled);\n task.runCount++;\n const previousTask = _currentTask;\n _currentTask = task;\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n if (task.type == macroTask && task.data && !task.data.isPeriodic) {\n task.cancelFn = undefined;\n }\n try {\n return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n // if the task's state is notScheduled or unknown, then it has already been cancelled\n // we should not reset the state to scheduled\n if (task.state !== notScheduled && task.state !== unknown) {\n if (task.type == eventTask || (task.data && task.data.isPeriodic)) {\n reEntryGuard && task._transitionTo(scheduled, running);\n }\n else {\n task.runCount = 0;\n this._updateTaskCount(task, -1);\n reEntryGuard &&\n task._transitionTo(notScheduled, running, notScheduled);\n }\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n }\n scheduleTask(task) {\n if (task.zone && task.zone !== this) {\n // check if the task was rescheduled, the newZone\n // should not be the children of the original zone\n let newZone = this;\n while (newZone) {\n if (newZone === task.zone) {\n throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${task.zone.name}`);\n }\n newZone = newZone.parent;\n }\n }\n task._transitionTo(scheduling, notScheduled);\n const zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task._zone = this;\n try {\n task = this._zoneDelegate.scheduleTask(this, task);\n }\n catch (err) {\n // should set task's state to unknown when scheduleTask throw error\n // because the err may from reschedule, so the fromState maybe notScheduled\n task._transitionTo(unknown, scheduling, notScheduled);\n // TODO: @JiaLiPassion, should we check the result from handleError?\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n }\n scheduleMicroTask(source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined));\n }\n scheduleMacroTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n }\n scheduleEventTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n }\n cancelTask(task) {\n if (task.zone != this)\n throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n task._transitionTo(canceling, scheduled, running);\n try {\n this._zoneDelegate.cancelTask(this, task);\n }\n catch (err) {\n // if error occurs when cancelTask, transit the state to unknown\n task._transitionTo(unknown, canceling);\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = 0;\n return task;\n }\n _updateTaskCount(task, count) {\n const zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (let i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n }\n }\n // tslint:disable-next-line:require-internal-with-underscore\n Zone.__symbol__ = __symbol__;\n const DELEGATE_ZS = {\n name: '',\n onHasTask: (delegate, _, target, hasTaskState) => delegate.hasTask(target, hasTaskState),\n onScheduleTask: (delegate, _, target, task) => delegate.scheduleTask(target, task),\n onInvokeTask: (delegate, _, target, task, applyThis, applyArgs) => delegate.invokeTask(target, task, applyThis, applyArgs),\n onCancelTask: (delegate, _, target, task) => delegate.cancelTask(target, task)\n };\n class ZoneDelegate {\n constructor(zone, parentDelegate, zoneSpec) {\n this._taskCounts = { 'microTask': 0, 'macroTask': 0, 'eventTask': 0 };\n this.zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS =\n zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone =\n zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate._forkCurrZone);\n this._interceptZS =\n zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt =\n zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone =\n zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate._interceptCurrZone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt =\n zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone =\n zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate._invokeCurrZone);\n this._handleErrorZS =\n zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt = zoneSpec &&\n (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone =\n zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate._handleErrorCurrZone);\n this._scheduleTaskZS =\n zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt = zoneSpec &&\n (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone = zoneSpec &&\n (zoneSpec.onScheduleTask ? this.zone : parentDelegate._scheduleTaskCurrZone);\n this._invokeTaskZS =\n zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt =\n zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone =\n zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate._invokeTaskCurrZone);\n this._cancelTaskZS =\n zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt =\n zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone =\n zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate._cancelTaskCurrZone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n const zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n const parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this.zone;\n }\n }\n }\n fork(targetZone, zoneSpec) {\n return this._forkZS ?\n this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) :\n new Zone(targetZone, zoneSpec);\n }\n intercept(targetZone, callback, source) {\n return this._interceptZS ?\n this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) :\n callback;\n }\n invoke(targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS ?\n this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) :\n callback.apply(applyThis, applyArgs);\n }\n handleError(targetZone, error) {\n return this._handleErrorZS ?\n this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) :\n true;\n }\n scheduleTask(targetZone, task) {\n let returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n // clang-format off\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n // clang-format on\n if (!returnTask)\n returnTask = task;\n }\n else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n }\n else if (task.type == microTask) {\n scheduleMicroTask(task);\n }\n else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n }\n invokeTask(targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS ?\n this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) :\n task.callback.apply(applyThis, applyArgs);\n }\n cancelTask(targetZone, task) {\n let value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n }\n else {\n if (!task.cancelFn) {\n throw Error('Task is not cancelable');\n }\n value = task.cancelFn(task);\n }\n return value;\n }\n hasTask(targetZone, isEmpty) {\n // hasTask should not throw error so other ZoneDelegate\n // can still trigger hasTask callback\n try {\n this._hasTaskZS &&\n this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n }\n catch (err) {\n this.handleError(targetZone, err);\n }\n }\n // tslint:disable-next-line:require-internal-with-underscore\n _updateTaskCount(type, count) {\n const counts = this._taskCounts;\n const prev = counts[type];\n const next = counts[type] = prev + count;\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n const isEmpty = {\n microTask: counts['microTask'] > 0,\n macroTask: counts['macroTask'] > 0,\n eventTask: counts['eventTask'] > 0,\n change: type\n };\n this.hasTask(this.zone, isEmpty);\n }\n }\n }\n class ZoneTask {\n constructor(type, source, callback, options, scheduleFn, cancelFn) {\n // tslint:disable-next-line:require-internal-with-underscore\n this._zone = null;\n this.runCount = 0;\n // tslint:disable-next-line:require-internal-with-underscore\n this._zoneDelegates = null;\n // tslint:disable-next-line:require-internal-with-underscore\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n if (!callback) {\n throw new Error('callback is not defined');\n }\n this.callback = callback;\n const self = this;\n // TODO: @JiaLiPassion options should have interface\n if (type === eventTask && options && options.useG) {\n this.invoke = ZoneTask.invokeTask;\n }\n else {\n this.invoke = function () {\n return ZoneTask.invokeTask.call(global, self, this, arguments);\n };\n }\n }\n static invokeTask(task, target, args) {\n if (!task) {\n task = this;\n }\n _numberOfNestedTaskFrames++;\n try {\n task.runCount++;\n return task.zone.runTask(task, target, args);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n }\n get zone() { return this._zone; }\n get state() { return this._state; }\n cancelScheduleRequest() { this._transitionTo(notScheduled, scheduling); }\n // tslint:disable-next-line:require-internal-with-underscore\n _transitionTo(toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n }\n else {\n throw new Error(`${this.type} '${this.source}': can not transition to '${toState}', expecting state '${fromState1}'${fromState2 ? ' or \\'' + fromState2 + '\\'' : ''}, was '${this._state}'.`);\n }\n }\n toString() {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId.toString();\n }\n else {\n return Object.prototype.toString.call(this);\n }\n }\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n toJSON() {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n zone: this.zone.name,\n runCount: this.runCount\n };\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// MICROTASK QUEUE\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n const symbolSetTimeout = __symbol__('setTimeout');\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n let _microTaskQueue = [];\n let _isDrainingMicrotaskQueue = false;\n let nativeMicroTaskQueuePromise;\n function scheduleMicroTask(task) {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n if (!nativeMicroTaskQueuePromise) {\n if (global[symbolPromise]) {\n nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0);\n }\n }\n if (nativeMicroTaskQueuePromise) {\n let nativeThen = nativeMicroTaskQueuePromise[symbolThen];\n if (!nativeThen) {\n // native Promise is not patchable, we need to use `then` directly\n // issue 1078\n nativeThen = nativeMicroTaskQueuePromise['then'];\n }\n nativeThen.call(nativeMicroTaskQueuePromise, drainMicroTaskQueue);\n }\n else {\n global[symbolSetTimeout](drainMicroTaskQueue, 0);\n }\n }\n task && _microTaskQueue.push(task);\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n const queue = _microTaskQueue;\n _microTaskQueue = [];\n for (let i = 0; i < queue.length; i++) {\n const task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n }\n catch (error) {\n _api.onUnhandledError(error);\n }\n }\n }\n _api.microtaskDrainDone();\n _isDrainingMicrotaskQueue = false;\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// BOOTSTRAP\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n const NO_ZONE = { name: 'NO ZONE' };\n const notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';\n const microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n const patches = {};\n const _api = {\n symbol: __symbol__,\n currentZoneFrame: () => _currentZoneFrame,\n onUnhandledError: noop,\n microtaskDrainDone: noop,\n scheduleMicroTask: scheduleMicroTask,\n showUncaughtError: () => !Zone[__symbol__('ignoreConsoleErrorUncaughtError')],\n patchEventTarget: () => [],\n patchOnProperties: noop,\n patchMethod: () => noop,\n bindArguments: () => [],\n patchThen: () => noop,\n patchMacroTask: () => noop,\n setNativePromise: (NativePromise) => {\n // sometimes NativePromise.resolve static function\n // is not ready yet, (such as core-js/es6.promise)\n // so we need to check here.\n if (NativePromise && typeof NativePromise.resolve === 'function') {\n nativeMicroTaskQueuePromise = NativePromise.resolve(0);\n }\n },\n patchEventPrototype: () => noop,\n isIEOrEdge: () => false,\n getGlobalObjects: () => undefined,\n ObjectDefineProperty: () => noop,\n ObjectGetOwnPropertyDescriptor: () => undefined,\n ObjectCreate: () => undefined,\n ArraySlice: () => [],\n patchClass: () => noop,\n wrapWithCurrentZone: () => noop,\n filterProperties: () => [],\n attachOriginToPatched: () => noop,\n _redefineProperty: () => noop,\n patchCallbacks: () => noop\n };\n let _currentZoneFrame = { parent: null, zone: new Zone(null, null) };\n let _currentTask = null;\n let _numberOfNestedTaskFrames = 0;\n function noop() { }\n performanceMeasure('Zone', 'Zone');\n return global['Zone'] = Zone;\n })(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global);\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 Zone.__load_patch('ZoneAwarePromise', (global, Zone, api) => {\n const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n const ObjectDefineProperty = Object.defineProperty;\n function readableObjectToString(obj) {\n if (obj && obj.toString === Object.prototype.toString) {\n const className = obj.constructor && obj.constructor.name;\n return (className ? className : '') + ': ' + JSON.stringify(obj);\n }\n return obj ? obj.toString() : Object.prototype.toString.call(obj);\n }\n const __symbol__ = api.symbol;\n const _uncaughtPromiseErrors = [];\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n const creationTrace = '__creationTrace__';\n api.onUnhandledError = (e) => {\n if (api.showUncaughtError()) {\n const rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n }\n else {\n console.error(e);\n }\n }\n };\n api.microtaskDrainDone = () => {\n while (_uncaughtPromiseErrors.length) {\n while (_uncaughtPromiseErrors.length) {\n const uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(() => { throw uncaughtPromiseError; });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n }\n }\n };\n const UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler');\n function handleUnhandledRejection(e) {\n api.onUnhandledError(e);\n try {\n const handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL];\n if (handler && typeof handler === 'function') {\n handler.call(this, e);\n }\n }\n catch (err) {\n }\n }\n function isThenable(value) { return value && value.then; }\n function forwardResolution(value) { return value; }\n function forwardRejection(rejection) { return ZoneAwarePromise.reject(rejection); }\n const symbolState = __symbol__('state');\n const symbolValue = __symbol__('value');\n const symbolFinally = __symbol__('finally');\n const symbolParentPromiseValue = __symbol__('parentPromiseValue');\n const symbolParentPromiseState = __symbol__('parentPromiseState');\n const source = 'Promise.then';\n const UNRESOLVED = null;\n const RESOLVED = true;\n const REJECTED = false;\n const REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return (v) => {\n try {\n resolvePromise(promise, state, v);\n }\n catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n const once = function () {\n let wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n const TYPE_ERROR = 'Promise resolved with itself';\n const CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace');\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n const onceWrapper = once();\n if (promise === value) {\n throw new TypeError(TYPE_ERROR);\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n let then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(() => { resolvePromise(promise, false, err); })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED && value instanceof ZoneAwarePromise &&\n value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) &&\n value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n }\n else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false)));\n }\n catch (err) {\n onceWrapper(() => { resolvePromise(promise, false, err); })();\n }\n }\n else {\n promise[symbolState] = state;\n const queue = promise[symbolValue];\n promise[symbolValue] = value;\n if (promise[symbolFinally] === symbolFinally) {\n // the promise is generated by Promise.prototype.finally\n if (state === RESOLVED) {\n // the state is resolved, should ignore the value\n // and use parent promise value\n promise[symbolState] = promise[symbolParentPromiseState];\n promise[symbolValue] = promise[symbolParentPromiseValue];\n }\n }\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n // check if longStackTraceZone is here\n const trace = Zone.currentTask && Zone.currentTask.data &&\n Zone.currentTask.data[creationTrace];\n if (trace) {\n // only keep the long stack trace into error when in longStackTraceZone\n ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { configurable: true, enumerable: false, writable: true, value: trace });\n }\n }\n for (let i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n try {\n // try to print more readable error log\n throw new Error('Uncaught (in promise): ' + readableObjectToString(value) +\n (value && value.stack ? '\\n' + value.stack : ''));\n }\n catch (err) {\n const error = err;\n error.rejection = value;\n error.promise = promise;\n error.zone = Zone.current;\n error.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(error);\n api.scheduleMicroTask(); // to make sure that it is running\n }\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n const REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler');\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n const handler = Zone[REJECTION_HANDLED_HANDLER];\n if (handler && typeof handler === 'function') {\n handler.call(this, { rejection: promise[symbolValue], promise: promise });\n }\n }\n catch (err) {\n }\n promise[symbolState] = REJECTED;\n for (let i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n const promiseState = promise[symbolState];\n const delegate = promiseState ?\n (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution :\n (typeof onRejected === 'function') ? onRejected : forwardRejection;\n zone.scheduleMicroTask(source, () => {\n try {\n const parentPromiseValue = promise[symbolValue];\n const isFinallyPromise = !!chainPromise && symbolFinally === chainPromise[symbolFinally];\n if (isFinallyPromise) {\n // if the promise is generated from finally call, keep parent promise's state and value\n chainPromise[symbolParentPromiseValue] = parentPromiseValue;\n chainPromise[symbolParentPromiseState] = promiseState;\n }\n // should not pass value to finally callback\n const value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ?\n [] :\n [parentPromiseValue]);\n resolvePromise(chainPromise, true, value);\n }\n catch (error) {\n // if error occurs, should always return this error\n resolvePromise(chainPromise, false, error);\n }\n }, chainPromise);\n }\n const ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }';\n class ZoneAwarePromise {\n constructor(executor) {\n const promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n executor && executor(makeResolver(promise, RESOLVED), makeResolver(promise, REJECTED));\n }\n catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n static toString() { return ZONE_AWARE_PROMISE_TO_STRING; }\n static resolve(value) {\n return resolvePromise(new this(null), RESOLVED, value);\n }\n static reject(error) {\n return resolvePromise(new this(null), REJECTED, error);\n }\n static race(values) {\n let resolve;\n let reject;\n let promise = new this((res, rej) => {\n resolve = res;\n reject = rej;\n });\n function onResolve(value) { resolve(value); }\n function onReject(error) { reject(error); }\n for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n return promise;\n }\n static all(values) { return ZoneAwarePromise.allWithCallback(values); }\n static allSettled(values) {\n const P = this && this.prototype instanceof ZoneAwarePromise ? this : ZoneAwarePromise;\n return P.allWithCallback(values, {\n thenCallback: (value) => ({ status: 'fulfilled', value }),\n errorCallback: (err) => ({ status: 'rejected', reason: err })\n });\n }\n static allWithCallback(values, callback) {\n let resolve;\n let reject;\n let promise = new this((res, rej) => {\n resolve = res;\n reject = rej;\n });\n // Start at 2 to prevent prematurely resolving if .then is called immediately.\n let unresolvedCount = 2;\n let valueIndex = 0;\n const resolvedValues = [];\n for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n const curValueIndex = valueIndex;\n try {\n value.then((value) => {\n resolvedValues[curValueIndex] = callback ? callback.thenCallback(value) : value;\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }, (err) => {\n if (!callback) {\n reject(err);\n }\n else {\n resolvedValues[curValueIndex] = callback.errorCallback(err);\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }\n });\n }\n catch (thenErr) {\n reject(thenErr);\n }\n unresolvedCount++;\n valueIndex++;\n }\n // Make the unresolvedCount zero-based again.\n unresolvedCount -= 2;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n return promise;\n }\n get [Symbol.toStringTag]() { return 'Promise'; }\n then(onFulfilled, onRejected) {\n const chainPromise = new this.constructor(null);\n const zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n }\n catch(onRejected) {\n return this.then(null, onRejected);\n }\n finally(onFinally) {\n const chainPromise = new this.constructor(null);\n chainPromise[symbolFinally] = symbolFinally;\n const zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFinally, onFinally);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally);\n }\n return chainPromise;\n }\n }\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n const NativePromise = global[symbolPromise] = global['Promise'];\n const ZONE_AWARE_PROMISE = Zone.__symbol__('ZoneAwarePromise');\n let desc = ObjectGetOwnPropertyDescriptor(global, 'Promise');\n if (!desc || desc.configurable) {\n desc && delete desc.writable;\n desc && delete desc.value;\n if (!desc) {\n desc = { configurable: true, enumerable: true };\n }\n desc.get = function () {\n // if we already set ZoneAwarePromise, use patched one\n // otherwise return native one.\n return global[ZONE_AWARE_PROMISE] ? global[ZONE_AWARE_PROMISE] : global[symbolPromise];\n };\n desc.set = function (NewNativePromise) {\n if (NewNativePromise === ZoneAwarePromise) {\n // if the NewNativePromise is ZoneAwarePromise\n // save to global\n global[ZONE_AWARE_PROMISE] = NewNativePromise;\n }\n else {\n // if the NewNativePromise is not ZoneAwarePromise\n // for example: after load zone.js, some library just\n // set es6-promise to global, if we set it to global\n // directly, assertZonePatched will fail and angular\n // will not loaded, so we just set the NewNativePromise\n // to global[symbolPromise], so the result is just like\n // we load ES6 Promise before zone.js\n global[symbolPromise] = NewNativePromise;\n if (!NewNativePromise.prototype[symbolThen]) {\n patchThen(NewNativePromise);\n }\n api.setNativePromise(NewNativePromise);\n }\n };\n ObjectDefineProperty(global, 'Promise', desc);\n }\n global['Promise'] = ZoneAwarePromise;\n const symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n const proto = Ctor.prototype;\n const prop = ObjectGetOwnPropertyDescriptor(proto, 'then');\n if (prop && (prop.writable === false || !prop.configurable)) {\n // check Ctor.prototype.then propertyDescriptor is writable or not\n // in meteor env, writable is false, we should ignore such case\n return;\n }\n const originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n const wrapped = new ZoneAwarePromise((resolve, reject) => { originalThen.call(this, resolve, reject); });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n api.patchThen = patchThen;\n function zoneify(fn) {\n return function () {\n let resultPromise = fn.apply(this, arguments);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n let ctor = resultPromise.constructor;\n if (!ctor[symbolThenPatched]) {\n patchThen(ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n const fetch = global['fetch'];\n if (typeof fetch == 'function') {\n global[api.symbol('fetch')] = fetch;\n global['fetch'] = zoneify(fetch);\n }\n }\n // This is not part of public API, but it is useful for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n return ZoneAwarePromise;\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 * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis,missingRequire}\n */\n /// \n // issue #989, to reduce bundle size, use short name\n /** Object.getOwnPropertyDescriptor */\n const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n /** Object.defineProperty */\n const ObjectDefineProperty = Object.defineProperty;\n /** Object.getPrototypeOf */\n const ObjectGetPrototypeOf = Object.getPrototypeOf;\n /** Object.create */\n const ObjectCreate = Object.create;\n /** Array.prototype.slice */\n const ArraySlice = Array.prototype.slice;\n /** addEventListener string const */\n const ADD_EVENT_LISTENER_STR = 'addEventListener';\n /** removeEventListener string const */\n const REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\n /** zoneSymbol addEventListener */\n const ZONE_SYMBOL_ADD_EVENT_LISTENER = Zone.__symbol__(ADD_EVENT_LISTENER_STR);\n /** zoneSymbol removeEventListener */\n const ZONE_SYMBOL_REMOVE_EVENT_LISTENER = Zone.__symbol__(REMOVE_EVENT_LISTENER_STR);\n /** true string const */\n const TRUE_STR = 'true';\n /** false string const */\n const FALSE_STR = 'false';\n /** Zone symbol prefix string const. */\n const ZONE_SYMBOL_PREFIX = Zone.__symbol__('');\n function wrapWithCurrentZone(callback, source) {\n return Zone.current.wrap(callback, source);\n }\n function scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) {\n return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel);\n }\n const zoneSymbol = Zone.__symbol__;\n const isWindowExists = typeof window !== 'undefined';\n const internalWindow = isWindowExists ? window : undefined;\n const _global = isWindowExists && internalWindow || typeof self === 'object' && self || global;\n const REMOVE_ATTRIBUTE = 'removeAttribute';\n const NULL_ON_PROP_VALUE = [null];\n function bindArguments(args, source) {\n for (let i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = wrapWithCurrentZone(args[i], source + '_' + i);\n }\n }\n return args;\n }\n function patchPrototype(prototype, fnNames) {\n const source = prototype.constructor['name'];\n for (let i = 0; i < fnNames.length; i++) {\n const name = fnNames[i];\n const delegate = prototype[name];\n if (delegate) {\n const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name);\n if (!isPropertyWritable(prototypeDesc)) {\n continue;\n }\n prototype[name] = ((delegate) => {\n const patched = function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name));\n };\n attachOriginToPatched(patched, delegate);\n return patched;\n })(delegate);\n }\n }\n }\n function isPropertyWritable(propertyDesc) {\n if (!propertyDesc) {\n return true;\n }\n if (propertyDesc.writable === false) {\n return false;\n }\n return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined');\n }\n const isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope);\n // Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n // this code.\n const isNode = (!('nw' in _global) && typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]');\n const isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']);\n // we are in electron of nw, so we are both browser and nodejs\n // Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n // this code.\n const isMix = typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]' && !isWebWorker &&\n !!(isWindowExists && internalWindow['HTMLElement']);\n const zoneSymbolEventNames = {};\n const wrapFn = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n let eventNameSymbol = zoneSymbolEventNames[event.type];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames[event.type] = zoneSymbol('ON_PROPERTY' + event.type);\n }\n const target = this || event.target || _global;\n const listener = target[eventNameSymbol];\n let result;\n if (isBrowser && target === internalWindow && event.type === 'error') {\n // window.onerror have different signiture\n // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror\n // and onerror callback will prevent default when callback return true\n const errorEvent = event;\n result = listener &&\n listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error);\n if (result === true) {\n event.preventDefault();\n }\n }\n else {\n result = listener && listener.apply(this, arguments);\n if (result != undefined && !result) {\n event.preventDefault();\n }\n }\n return result;\n };\n function patchProperty(obj, prop, prototype) {\n let desc = ObjectGetOwnPropertyDescriptor(obj, prop);\n if (!desc && prototype) {\n // when patch window object, use prototype to check prop exist or not\n const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop);\n if (prototypeDesc) {\n desc = { enumerable: true, configurable: true };\n }\n }\n // if the descriptor not exists or is not configurable\n // just return\n if (!desc || !desc.configurable) {\n return;\n }\n const onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched');\n if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) {\n return;\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n const originalDescGet = desc.get;\n const originalDescSet = desc.set;\n // substr(2) cuz 'onclick' -> 'click', etc\n const eventName = prop.substr(2);\n let eventNameSymbol = zoneSymbolEventNames[eventName];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames[eventName] = zoneSymbol('ON_PROPERTY' + eventName);\n }\n desc.set = function (newValue) {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return;\n }\n let previousValue = target[eventNameSymbol];\n if (previousValue) {\n target.removeEventListener(eventName, wrapFn);\n }\n // issue #978, when onload handler was added before loading zone.js\n // we should remove it with originalDescSet\n if (originalDescSet) {\n originalDescSet.apply(target, NULL_ON_PROP_VALUE);\n }\n if (typeof newValue === 'function') {\n target[eventNameSymbol] = newValue;\n target.addEventListener(eventName, wrapFn, false);\n }\n else {\n target[eventNameSymbol] = null;\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return null;\n }\n const listener = target[eventNameSymbol];\n if (listener) {\n return listener;\n }\n else if (originalDescGet) {\n // result will be null when use inline event attribute,\n // such as \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n let value = originalDescGet && originalDescGet.call(this);\n if (value) {\n desc.set.call(this, value);\n if (typeof target[REMOVE_ATTRIBUTE] === 'function') {\n target.removeAttribute(prop);\n }\n return value;\n }\n }\n return null;\n };\n ObjectDefineProperty(obj, prop, desc);\n obj[onPropPatchedSymbol] = true;\n }\n function patchOnProperties(obj, properties, prototype) {\n if (properties) {\n for (let i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i], prototype);\n }\n }\n else {\n const onProperties = [];\n for (const prop in obj) {\n if (prop.substr(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (let j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j], prototype);\n }\n }\n }\n const originalInstanceKey = zoneSymbol('originalInstance');\n // wrap some native API on `window`\n function patchClass(className) {\n const OriginalClass = _global[className];\n if (!OriginalClass)\n return;\n // keep original class in global\n _global[zoneSymbol(className)] = OriginalClass;\n _global[className] = function () {\n const a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n // attach original delegate to patched function\n attachOriginToPatched(_global[className], OriginalClass);\n const instance = new OriginalClass(function () { });\n let prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n }\n else {\n ObjectDefineProperty(_global[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop);\n // keep callback in wrapped function so we can\n // use it in Function.prototype.toString to return\n // the native one.\n attachOriginToPatched(this[originalInstanceKey][prop], fn);\n }\n else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () { return this[originalInstanceKey][prop]; }\n });\n }\n }(prop));\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global[className][prop] = OriginalClass[prop];\n }\n }\n }\n function copySymbolProperties(src, dest) {\n if (typeof Object.getOwnPropertySymbols !== 'function') {\n return;\n }\n const symbols = Object.getOwnPropertySymbols(src);\n symbols.forEach((symbol) => {\n const desc = Object.getOwnPropertyDescriptor(src, symbol);\n Object.defineProperty(dest, symbol, {\n get: function () { return src[symbol]; },\n set: function (value) {\n if (desc && (!desc.writable || typeof desc.set !== 'function')) {\n // if src[symbol] is not writable or not have a setter, just return\n return;\n }\n src[symbol] = value;\n },\n enumerable: desc ? desc.enumerable : true,\n configurable: desc ? desc.configurable : true\n });\n });\n }\n let shouldCopySymbolProperties = false;\n function patchMethod(target, name, patchFn) {\n let proto = target;\n while (proto && !proto.hasOwnProperty(name)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n const delegateName = zoneSymbol(name);\n let delegate = null;\n if (proto && !(delegate = proto[delegateName])) {\n delegate = proto[delegateName] = proto[name];\n // check whether proto[name] is writable\n // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob\n const desc = proto && ObjectGetOwnPropertyDescriptor(proto, name);\n if (isPropertyWritable(desc)) {\n const patchDelegate = patchFn(delegate, delegateName, name);\n proto[name] = function () { return patchDelegate(this, arguments); };\n attachOriginToPatched(proto[name], delegate);\n if (shouldCopySymbolProperties) {\n copySymbolProperties(delegate, proto[name]);\n }\n }\n }\n return delegate;\n }\n // TODO: @JiaLiPassion, support cancel task later if necessary\n function patchMacroTask(obj, funcName, metaCreator) {\n let setNative = null;\n function scheduleTask(task) {\n const data = task.data;\n data.args[data.cbIdx] = function () { task.invoke.apply(this, arguments); };\n setNative.apply(data.target, data.args);\n return task;\n }\n setNative = patchMethod(obj, funcName, (delegate) => function (self, args) {\n const meta = metaCreator(self, args);\n if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') {\n return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask);\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(self, args);\n }\n });\n }\n function attachOriginToPatched(patched, original) {\n patched[zoneSymbol('OriginalDelegate')] = original;\n }\n let isDetectedIEOrEdge = false;\n let ieOrEdge = false;\n function isIE() {\n try {\n const ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) {\n return true;\n }\n }\n catch (error) {\n }\n return false;\n }\n function isIEOrEdge() {\n if (isDetectedIEOrEdge) {\n return ieOrEdge;\n }\n isDetectedIEOrEdge = true;\n try {\n const ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) {\n ieOrEdge = true;\n }\n }\n catch (error) {\n }\n return ieOrEdge;\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 // override Function.prototype.toString to make zone.js patched function\n // look like native function\n Zone.__load_patch('toString', (global) => {\n // patch Func.prototype.toString to let them look like native\n const originalFunctionToString = Function.prototype.toString;\n const ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate');\n const PROMISE_SYMBOL = zoneSymbol('Promise');\n const ERROR_SYMBOL = zoneSymbol('Error');\n const newFunctionToString = function toString() {\n if (typeof this === 'function') {\n const originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL];\n if (originalDelegate) {\n if (typeof originalDelegate === 'function') {\n return originalFunctionToString.call(originalDelegate);\n }\n else {\n return Object.prototype.toString.call(originalDelegate);\n }\n }\n if (this === Promise) {\n const nativePromise = global[PROMISE_SYMBOL];\n if (nativePromise) {\n return originalFunctionToString.call(nativePromise);\n }\n }\n if (this === Error) {\n const nativeError = global[ERROR_SYMBOL];\n if (nativeError) {\n return originalFunctionToString.call(nativeError);\n }\n }\n }\n return originalFunctionToString.call(this);\n };\n newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString;\n Function.prototype.toString = newFunctionToString;\n // patch Object.prototype.toString to let them look like native\n const originalObjectToString = Object.prototype.toString;\n const PROMISE_OBJECT_TO_STRING = '[object Promise]';\n Object.prototype.toString = function () {\n if (this instanceof Promise) {\n return PROMISE_OBJECT_TO_STRING;\n }\n return originalObjectToString.call(this);\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 let passiveSupported = false;\n if (typeof window !== 'undefined') {\n try {\n const options = Object.defineProperty({}, 'passive', { get: function () { passiveSupported = true; } });\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n }\n // an identifier to tell ZoneTask do not create a new invoke closure\n const OPTIMIZED_ZONE_EVENT_TASK_DATA = {\n useG: true\n };\n const zoneSymbolEventNames$1 = {};\n const globalSources = {};\n const EVENT_NAME_SYMBOL_REGX = new RegExp('^' + ZONE_SYMBOL_PREFIX + '(\\\\w+)(true|false)$');\n const IMMEDIATE_PROPAGATION_SYMBOL = zoneSymbol('propagationStopped');\n function patchEventTarget(_global, apis, patchOptions) {\n const ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR;\n const REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR;\n const LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners';\n const REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners';\n const zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER);\n const ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':';\n const PREPEND_EVENT_LISTENER = 'prependListener';\n const PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':';\n const invokeTask = function (task, target, event) {\n // for better performance, check isRemoved which is set\n // by removeEventListener\n if (task.isRemoved) {\n return;\n }\n const delegate = task.callback;\n if (typeof delegate === 'object' && delegate.handleEvent) {\n // create the bind version of handleEvent when invoke\n task.callback = (event) => delegate.handleEvent(event);\n task.originalDelegate = delegate;\n }\n // invoke static task.invoke\n task.invoke(task, target, [event]);\n const options = task.options;\n if (options && typeof options === 'object' && options.once) {\n // if options.once is true, after invoke once remove listener here\n // only browser need to do this, nodejs eventEmitter will cal removeListener\n // inside EventEmitter.once\n const delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate, options);\n }\n };\n // global shared zoneAwareCallback to handle all event callback with capture = false\n const globalZoneAwareCallback = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n const target = this || event.target || _global;\n const tasks = target[zoneSymbolEventNames$1[event.type][FALSE_STR]];\n if (tasks) {\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n invokeTask(tasks[0], target, event);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n const copyTasks = tasks.slice();\n for (let i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n invokeTask(copyTasks[i], target, event);\n }\n }\n }\n };\n // global shared zoneAwareCallback to handle all event callback with capture = true\n const globalZoneAwareCaptureCallback = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n const target = this || event.target || _global;\n const tasks = target[zoneSymbolEventNames$1[event.type][TRUE_STR]];\n if (tasks) {\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n invokeTask(tasks[0], target, event);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n const copyTasks = tasks.slice();\n for (let i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n invokeTask(copyTasks[i], target, event);\n }\n }\n }\n };\n function patchEventTargetMethods(obj, patchOptions) {\n if (!obj) {\n return false;\n }\n let useGlobalCallback = true;\n if (patchOptions && patchOptions.useG !== undefined) {\n useGlobalCallback = patchOptions.useG;\n }\n const validateHandler = patchOptions && patchOptions.vh;\n let checkDuplicate = true;\n if (patchOptions && patchOptions.chkDup !== undefined) {\n checkDuplicate = patchOptions.chkDup;\n }\n let returnTarget = false;\n if (patchOptions && patchOptions.rt !== undefined) {\n returnTarget = patchOptions.rt;\n }\n let proto = obj;\n while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && obj[ADD_EVENT_LISTENER]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = obj;\n }\n if (!proto) {\n return false;\n }\n if (proto[zoneSymbolAddEventListener]) {\n return false;\n }\n const eventNameToString = patchOptions && patchOptions.eventNameToString;\n // a shared global taskData to pass data for scheduleEventTask\n // so we do not need to create a new object just for pass some data\n const taskData = {};\n const nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER];\n const nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] =\n proto[REMOVE_EVENT_LISTENER];\n const nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] =\n proto[LISTENERS_EVENT_LISTENER];\n const nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] =\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER];\n let nativePrependEventListener;\n if (patchOptions && patchOptions.prepend) {\n nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] =\n proto[patchOptions.prepend];\n }\n function checkIsPassive(task) {\n if (!passiveSupported && typeof taskData.options !== 'boolean' &&\n typeof taskData.options !== 'undefined' && taskData.options !== null) {\n // options is a non-null non-undefined object\n // passive is not supported\n // don't pass options as object\n // just pass capture as a boolean\n task.options = !!taskData.options.capture;\n taskData.options = task.options;\n }\n }\n const customScheduleGlobal = function (task) {\n // if there is already a task for the eventName + capture,\n // just return, because we use the shared globalZoneAwareCallback here.\n if (taskData.isExisting) {\n return;\n }\n checkIsPassive(task);\n return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options);\n };\n const customCancelGlobal = function (task) {\n // if task is not marked as isRemoved, this call is directly\n // from Zone.prototype.cancelTask, we should remove the task\n // from tasksList of target first\n if (!task.isRemoved) {\n const symbolEventNames = zoneSymbolEventNames$1[task.eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && task.target[symbolEventName];\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const existingTask = existingTasks[i];\n if (existingTask === task) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n task.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n task.allRemoved = true;\n task.target[symbolEventName] = null;\n }\n break;\n }\n }\n }\n }\n // if all tasks for the eventName + capture have gone,\n // we will really remove the global event callback,\n // if not, return\n if (!task.allRemoved) {\n return;\n }\n return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options);\n };\n const customScheduleNonGlobal = function (task) {\n checkIsPassive(task);\n return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customSchedulePrepend = function (task) {\n return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customCancelNonGlobal = function (task) {\n return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options);\n };\n const customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal;\n const customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal;\n const compareTaskCallbackVsDelegate = function (task, delegate) {\n const typeOfDelegate = typeof delegate;\n return (typeOfDelegate === 'function' && task.callback === delegate) ||\n (typeOfDelegate === 'object' && task.originalDelegate === delegate);\n };\n const compare = (patchOptions && patchOptions.diff) ? patchOptions.diff : compareTaskCallbackVsDelegate;\n const blackListedEvents = Zone[zoneSymbol('BLACK_LISTED_EVENTS')];\n const makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget = false, prepend = false) {\n return function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n let delegate = arguments[1];\n if (!delegate) {\n return nativeListener.apply(this, arguments);\n }\n if (isNode && eventName === 'uncaughtException') {\n // don't patch uncaughtException of nodejs to prevent endless loop\n return nativeListener.apply(this, arguments);\n }\n // don't create the bind delegate function for handleEvent\n // case here to improve addEventListener performance\n // we will create the bind delegate when invoke\n let isHandleEvent = false;\n if (typeof delegate !== 'function') {\n if (!delegate.handleEvent) {\n return nativeListener.apply(this, arguments);\n }\n isHandleEvent = true;\n }\n if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) {\n return;\n }\n const options = arguments[2];\n if (blackListedEvents) {\n // check black list\n for (let i = 0; i < blackListedEvents.length; i++) {\n if (eventName === blackListedEvents[i]) {\n return nativeListener.apply(this, arguments);\n }\n }\n }\n let capture;\n let once = false;\n if (options === undefined) {\n capture = false;\n }\n else if (options === true) {\n capture = true;\n }\n else if (options === false) {\n capture = false;\n }\n else {\n capture = options ? !!options.capture : false;\n once = options ? !!options.once : false;\n }\n const zone = Zone.current;\n const symbolEventNames = zoneSymbolEventNames$1[eventName];\n let symbolEventName;\n if (!symbolEventNames) {\n // the code is duplicate, but I just want to get some better performance\n const falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR;\n const trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames$1[eventName] = {};\n zoneSymbolEventNames$1[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames$1[eventName][TRUE_STR] = symbolCapture;\n symbolEventName = capture ? symbolCapture : symbol;\n }\n else {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n let existingTasks = target[symbolEventName];\n let isExisting = false;\n if (existingTasks) {\n // already have task registered\n isExisting = true;\n if (checkDuplicate) {\n for (let i = 0; i < existingTasks.length; i++) {\n if (compare(existingTasks[i], delegate)) {\n // same callback, same capture, same event name, just return\n return;\n }\n }\n }\n }\n else {\n existingTasks = target[symbolEventName] = [];\n }\n let source;\n const constructorName = target.constructor['name'];\n const targetSource = globalSources[constructorName];\n if (targetSource) {\n source = targetSource[eventName];\n }\n if (!source) {\n source = constructorName + addSource +\n (eventNameToString ? eventNameToString(eventName) : eventName);\n }\n // do not create a new object as task.data to pass those things\n // just use the global shared one\n taskData.options = options;\n if (once) {\n // if addEventListener with once options, we don't pass it to\n // native addEventListener, instead we keep the once setting\n // and handle ourselves.\n taskData.options.once = false;\n }\n taskData.target = target;\n taskData.capture = capture;\n taskData.eventName = eventName;\n taskData.isExisting = isExisting;\n const data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined;\n // keep taskData into data to allow onScheduleEventTask to access the task information\n if (data) {\n data.taskData = taskData;\n }\n const task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn);\n // should clear taskData.target to avoid memory leak\n // issue, https://github.com/angular/angular/issues/20442\n taskData.target = null;\n // need to clear up taskData because it is a global object\n if (data) {\n data.taskData = null;\n }\n // have to save those information to task in case\n // application may call task.zone.cancelTask() directly\n if (once) {\n options.once = true;\n }\n if (!(!passiveSupported && typeof task.options === 'boolean')) {\n // if not support passive, and we pass an option object\n // to addEventListener, we should save the options to task\n task.options = options;\n }\n task.target = target;\n task.capture = capture;\n task.eventName = eventName;\n if (isHandleEvent) {\n // save original delegate for compare to check duplicate\n task.originalDelegate = delegate;\n }\n if (!prepend) {\n existingTasks.push(task);\n }\n else {\n existingTasks.unshift(task);\n }\n if (returnTarget) {\n return target;\n }\n };\n };\n proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget);\n if (nativePrependEventListener) {\n proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true);\n }\n proto[REMOVE_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const options = arguments[2];\n let capture;\n if (options === undefined) {\n capture = false;\n }\n else if (options === true) {\n capture = true;\n }\n else if (options === false) {\n capture = false;\n }\n else {\n capture = options ? !!options.capture : false;\n }\n const delegate = arguments[1];\n if (!delegate) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (validateHandler &&\n !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) {\n return;\n }\n const symbolEventNames = zoneSymbolEventNames$1[eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && target[symbolEventName];\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const existingTask = existingTasks[i];\n if (compare(existingTask, delegate)) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n existingTask.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n existingTask.allRemoved = true;\n target[symbolEventName] = null;\n // in the target, we have an event listener which is added by on_property\n // such as target.onclick = function() {}, so we need to clear this internal\n // property too if all delegates all removed\n if (typeof eventName === 'string') {\n const onPropertySymbol = ZONE_SYMBOL_PREFIX + 'ON_PROPERTY' + eventName;\n target[onPropertySymbol] = null;\n }\n }\n existingTask.zone.cancelTask(existingTask);\n if (returnTarget) {\n return target;\n }\n return;\n }\n }\n }\n // issue 930, didn't find the event name or callback\n // from zone kept existingTasks, the callback maybe\n // added outside of zone, we need to call native removeEventListener\n // to try to remove it.\n return nativeRemoveEventListener.apply(this, arguments);\n };\n proto[LISTENERS_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const listeners = [];\n const tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName);\n for (let i = 0; i < tasks.length; i++) {\n const task = tasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n listeners.push(delegate);\n }\n return listeners;\n };\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (!eventName) {\n const keys = Object.keys(target);\n for (let i = 0; i < keys.length; i++) {\n const prop = keys[i];\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let evtName = match && match[1];\n // in nodejs EventEmitter, removeListener event is\n // used for monitoring the removeListener call,\n // so just keep removeListener eventListener until\n // all other eventListeners are removed\n if (evtName && evtName !== 'removeListener') {\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName);\n }\n }\n // remove removeListener listener finally\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener');\n }\n else {\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const symbolEventNames = zoneSymbolEventNames$1[eventName];\n if (symbolEventNames) {\n const symbolEventName = symbolEventNames[FALSE_STR];\n const symbolCaptureEventName = symbolEventNames[TRUE_STR];\n const tasks = target[symbolEventName];\n const captureTasks = target[symbolCaptureEventName];\n if (tasks) {\n const removeTasks = tasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n if (captureTasks) {\n const removeTasks = captureTasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n }\n }\n if (returnTarget) {\n return this;\n }\n };\n // for native toString patch\n attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener);\n attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener);\n if (nativeRemoveAllListeners) {\n attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners);\n }\n if (nativeListeners) {\n attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners);\n }\n return true;\n }\n let results = [];\n for (let i = 0; i < apis.length; i++) {\n results[i] = patchEventTargetMethods(apis[i], patchOptions);\n }\n return results;\n }\n function findEventTasks(target, eventName) {\n const foundTasks = [];\n for (let prop in target) {\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let evtName = match && match[1];\n if (evtName && (!eventName || evtName === eventName)) {\n const tasks = target[prop];\n if (tasks) {\n for (let i = 0; i < tasks.length; i++) {\n foundTasks.push(tasks[i]);\n }\n }\n }\n }\n return foundTasks;\n }\n function patchEventPrototype(global, api) {\n const Event = global['Event'];\n if (Event && Event.prototype) {\n api.patchMethod(Event.prototype, 'stopImmediatePropagation', (delegate) => function (self, args) {\n self[IMMEDIATE_PROPAGATION_SYMBOL] = true;\n // we need to call the native stopImmediatePropagation\n // in case in some hybrid application, some part of\n // application will be controlled by zone, some are not\n delegate && delegate.apply(self, args);\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 function patchCallbacks(api, target, targetName, method, callbacks) {\n const symbol = Zone.__symbol__(method);\n if (target[symbol]) {\n return;\n }\n const nativeDelegate = target[symbol] = target[method];\n target[method] = function (name, opts, options) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n const source = `${targetName}.${method}::` + callback;\n const prototype = opts.prototype;\n if (prototype.hasOwnProperty(callback)) {\n const descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = api.wrapWithCurrentZone(descriptor.value, source);\n api._redefineProperty(opts.prototype, callback, descriptor);\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n });\n }\n return nativeDelegate.call(target, name, opts, options);\n };\n api.attachOriginToPatched(target[method], nativeDelegate);\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 globalEventHandlersEventNames = [\n 'abort',\n 'animationcancel',\n 'animationend',\n 'animationiteration',\n 'auxclick',\n 'beforeinput',\n 'blur',\n 'cancel',\n 'canplay',\n 'canplaythrough',\n 'change',\n 'compositionstart',\n 'compositionupdate',\n 'compositionend',\n 'cuechange',\n 'click',\n 'close',\n 'contextmenu',\n 'curechange',\n 'dblclick',\n 'drag',\n 'dragend',\n 'dragenter',\n 'dragexit',\n 'dragleave',\n 'dragover',\n 'drop',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'focus',\n 'focusin',\n 'focusout',\n 'gotpointercapture',\n 'input',\n 'invalid',\n 'keydown',\n 'keypress',\n 'keyup',\n 'load',\n 'loadstart',\n 'loadeddata',\n 'loadedmetadata',\n 'lostpointercapture',\n 'mousedown',\n 'mouseenter',\n 'mouseleave',\n 'mousemove',\n 'mouseout',\n 'mouseover',\n 'mouseup',\n 'mousewheel',\n 'orientationchange',\n 'pause',\n 'play',\n 'playing',\n 'pointercancel',\n 'pointerdown',\n 'pointerenter',\n 'pointerleave',\n 'pointerlockchange',\n 'mozpointerlockchange',\n 'webkitpointerlockerchange',\n 'pointerlockerror',\n 'mozpointerlockerror',\n 'webkitpointerlockerror',\n 'pointermove',\n 'pointout',\n 'pointerover',\n 'pointerup',\n 'progress',\n 'ratechange',\n 'reset',\n 'resize',\n 'scroll',\n 'seeked',\n 'seeking',\n 'select',\n 'selectionchange',\n 'selectstart',\n 'show',\n 'sort',\n 'stalled',\n 'submit',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'touchcancel',\n 'touchmove',\n 'touchstart',\n 'touchend',\n 'transitioncancel',\n 'transitionend',\n 'waiting',\n 'wheel'\n ];\n const documentEventNames = [\n 'afterscriptexecute', 'beforescriptexecute', 'DOMContentLoaded', 'freeze', 'fullscreenchange',\n 'mozfullscreenchange', 'webkitfullscreenchange', 'msfullscreenchange', 'fullscreenerror',\n 'mozfullscreenerror', 'webkitfullscreenerror', 'msfullscreenerror', 'readystatechange',\n 'visibilitychange', 'resume'\n ];\n const windowEventNames = [\n 'absolutedeviceorientation',\n 'afterinput',\n 'afterprint',\n 'appinstalled',\n 'beforeinstallprompt',\n 'beforeprint',\n 'beforeunload',\n 'devicelight',\n 'devicemotion',\n 'deviceorientation',\n 'deviceorientationabsolute',\n 'deviceproximity',\n 'hashchange',\n 'languagechange',\n 'message',\n 'mozbeforepaint',\n 'offline',\n 'online',\n 'paint',\n 'pageshow',\n 'pagehide',\n 'popstate',\n 'rejectionhandled',\n 'storage',\n 'unhandledrejection',\n 'unload',\n 'userproximity',\n 'vrdisplyconnected',\n 'vrdisplaydisconnected',\n 'vrdisplaypresentchange'\n ];\n const htmlElementEventNames = [\n 'beforecopy', 'beforecut', 'beforepaste', 'copy', 'cut', 'paste', 'dragstart', 'loadend',\n 'animationstart', 'search', 'transitionrun', 'transitionstart', 'webkitanimationend',\n 'webkitanimationiteration', 'webkitanimationstart', 'webkittransitionend'\n ];\n const mediaElementEventNames = ['encrypted', 'waitingforkey', 'msneedkey', 'mozinterruptbegin', 'mozinterruptend'];\n const ieElementEventNames = [\n 'activate',\n 'afterupdate',\n 'ariarequest',\n 'beforeactivate',\n 'beforedeactivate',\n 'beforeeditfocus',\n 'beforeupdate',\n 'cellchange',\n 'controlselect',\n 'dataavailable',\n 'datasetchanged',\n 'datasetcomplete',\n 'errorupdate',\n 'filterchange',\n 'layoutcomplete',\n 'losecapture',\n 'move',\n 'moveend',\n 'movestart',\n 'propertychange',\n 'resizeend',\n 'resizestart',\n 'rowenter',\n 'rowexit',\n 'rowsdelete',\n 'rowsinserted',\n 'command',\n 'compassneedscalibration',\n 'deactivate',\n 'help',\n 'mscontentzoom',\n 'msmanipulationstatechanged',\n 'msgesturechange',\n 'msgesturedoubletap',\n 'msgestureend',\n 'msgesturehold',\n 'msgesturestart',\n 'msgesturetap',\n 'msgotpointercapture',\n 'msinertiastart',\n 'mslostpointercapture',\n 'mspointercancel',\n 'mspointerdown',\n 'mspointerenter',\n 'mspointerhover',\n 'mspointerleave',\n 'mspointermove',\n 'mspointerout',\n 'mspointerover',\n 'mspointerup',\n 'pointerout',\n 'mssitemodejumplistitemremoved',\n 'msthumbnailclick',\n 'stop',\n 'storagecommit'\n ];\n const webglEventNames = ['webglcontextrestored', 'webglcontextlost', 'webglcontextcreationerror'];\n const formEventNames = ['autocomplete', 'autocompleteerror'];\n const detailEventNames = ['toggle'];\n const frameEventNames = ['load'];\n const frameSetEventNames = ['blur', 'error', 'focus', 'load', 'resize', 'scroll', 'messageerror'];\n const marqueeEventNames = ['bounce', 'finish', 'start'];\n const XMLHttpRequestEventNames = [\n 'loadstart', 'progress', 'abort', 'error', 'load', 'progress', 'timeout', 'loadend',\n 'readystatechange'\n ];\n const IDBIndexEventNames = ['upgradeneeded', 'complete', 'abort', 'success', 'error', 'blocked', 'versionchange', 'close'];\n const websocketEventNames = ['close', 'error', 'open', 'message'];\n const workerEventNames = ['error', 'message'];\n const eventNames = globalEventHandlersEventNames.concat(webglEventNames, formEventNames, detailEventNames, documentEventNames, windowEventNames, htmlElementEventNames, ieElementEventNames);\n function filterProperties(target, onProperties, ignoreProperties) {\n if (!ignoreProperties || ignoreProperties.length === 0) {\n return onProperties;\n }\n const tip = ignoreProperties.filter(ip => ip.target === target);\n if (!tip || tip.length === 0) {\n return onProperties;\n }\n const targetIgnoreProperties = tip[0].ignoreProperties;\n return onProperties.filter(op => targetIgnoreProperties.indexOf(op) === -1);\n }\n function patchFilteredProperties(target, onProperties, ignoreProperties, prototype) {\n // check whether target is available, sometimes target will be undefined\n // because different browser or some 3rd party plugin.\n if (!target) {\n return;\n }\n const filteredProperties = filterProperties(target, onProperties, ignoreProperties);\n patchOnProperties(target, filteredProperties, prototype);\n }\n function propertyDescriptorPatch(api, _global) {\n if (isNode && !isMix) {\n return;\n }\n if (Zone[api.symbol('patchEvents')]) {\n // events are already been patched by legacy patch.\n return;\n }\n const supportsWebSocket = typeof WebSocket !== 'undefined';\n const ignoreProperties = _global['__Zone_ignore_on_properties'];\n // for browsers that we can patch the descriptor: Chrome & Firefox\n if (isBrowser) {\n const internalWindow = window;\n const ignoreErrorProperties = isIE ? [{ target: internalWindow, ignoreProperties: ['error'] }] : [];\n // in IE/Edge, onProp not exist in window object, but in WindowPrototype\n // so we need to pass WindowPrototype to check onProp exist or not\n patchFilteredProperties(internalWindow, eventNames.concat(['messageerror']), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow));\n patchFilteredProperties(Document.prototype, eventNames, ignoreProperties);\n if (typeof internalWindow['SVGElement'] !== 'undefined') {\n patchFilteredProperties(internalWindow['SVGElement'].prototype, eventNames, ignoreProperties);\n }\n patchFilteredProperties(Element.prototype, eventNames, ignoreProperties);\n patchFilteredProperties(HTMLElement.prototype, eventNames, ignoreProperties);\n patchFilteredProperties(HTMLMediaElement.prototype, mediaElementEventNames, ignoreProperties);\n patchFilteredProperties(HTMLFrameSetElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties);\n patchFilteredProperties(HTMLBodyElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties);\n patchFilteredProperties(HTMLFrameElement.prototype, frameEventNames, ignoreProperties);\n patchFilteredProperties(HTMLIFrameElement.prototype, frameEventNames, ignoreProperties);\n const HTMLMarqueeElement = internalWindow['HTMLMarqueeElement'];\n if (HTMLMarqueeElement) {\n patchFilteredProperties(HTMLMarqueeElement.prototype, marqueeEventNames, ignoreProperties);\n }\n const Worker = internalWindow['Worker'];\n if (Worker) {\n patchFilteredProperties(Worker.prototype, workerEventNames, ignoreProperties);\n }\n }\n const XMLHttpRequest = _global['XMLHttpRequest'];\n if (XMLHttpRequest) {\n // XMLHttpRequest is not available in ServiceWorker, so we need to check here\n patchFilteredProperties(XMLHttpRequest.prototype, XMLHttpRequestEventNames, ignoreProperties);\n }\n const XMLHttpRequestEventTarget = _global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n patchFilteredProperties(XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype, XMLHttpRequestEventNames, ignoreProperties);\n }\n if (typeof IDBIndex !== 'undefined') {\n patchFilteredProperties(IDBIndex.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBRequest.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBOpenDBRequest.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBDatabase.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBTransaction.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBCursor.prototype, IDBIndexEventNames, ignoreProperties);\n }\n if (supportsWebSocket) {\n patchFilteredProperties(WebSocket.prototype, websocketEventNames, ignoreProperties);\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 Zone.__load_patch('util', (global, Zone, api) => {\n api.patchOnProperties = patchOnProperties;\n api.patchMethod = patchMethod;\n api.bindArguments = bindArguments;\n api.patchMacroTask = patchMacroTask;\n // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS` to\n // define which events will not be patched by `Zone.js`.\n // In newer version (>=0.9.0), we change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep\n // the name consistent with angular repo.\n // The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be supported for\n // backwards compatibility.\n const SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS');\n const SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS');\n if (global[SYMBOL_UNPATCHED_EVENTS]) {\n global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS];\n }\n if (global[SYMBOL_BLACK_LISTED_EVENTS]) {\n Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] =\n global[SYMBOL_BLACK_LISTED_EVENTS];\n }\n api.patchEventPrototype = patchEventPrototype;\n api.patchEventTarget = patchEventTarget;\n api.isIEOrEdge = isIEOrEdge;\n api.ObjectDefineProperty = ObjectDefineProperty;\n api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor;\n api.ObjectCreate = ObjectCreate;\n api.ArraySlice = ArraySlice;\n api.patchClass = patchClass;\n api.wrapWithCurrentZone = wrapWithCurrentZone;\n api.filterProperties = filterProperties;\n api.attachOriginToPatched = attachOriginToPatched;\n api._redefineProperty = Object.defineProperty;\n api.patchCallbacks = patchCallbacks;\n api.getGlobalObjects = () => ({ globalSources, zoneSymbolEventNames: zoneSymbolEventNames$1, eventNames, isBrowser, isMix, isNode, TRUE_STR,\n FALSE_STR, ZONE_SYMBOL_PREFIX, ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR });\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 /**\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 taskSymbol = zoneSymbol('zoneTask');\n function patchTimer(window, setName, cancelName, nameSuffix) {\n let setNative = null;\n let clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n const tasksByHandleId = {};\n function scheduleTask(task) {\n const data = task.data;\n function timer() {\n try {\n task.invoke.apply(this, arguments);\n }\n finally {\n // issue-934, task will be cancelled\n // even it is a periodic task such as\n // setInterval\n if (!(task.data && task.data.isPeriodic)) {\n if (typeof data.handleId === 'number') {\n // in non-nodejs env, we remove timerId\n // from local cache\n delete tasksByHandleId[data.handleId];\n }\n else if (data.handleId) {\n // Node returns complex objects as handleIds\n // we remove task reference from timer object\n data.handleId[taskSymbol] = null;\n }\n }\n }\n }\n data.args[0] = timer;\n data.handleId = setNative.apply(window, data.args);\n return task;\n }\n function clearTask(task) { return clearNative(task.data.handleId); }\n setNative =\n patchMethod(window, setName, (delegate) => function (self, args) {\n if (typeof args[0] === 'function') {\n const options = {\n isPeriodic: nameSuffix === 'Interval',\n delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 :\n undefined,\n args: args\n };\n const task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask);\n if (!task) {\n return task;\n }\n // Node.js must additionally support the ref and unref functions.\n const handle = task.data.handleId;\n if (typeof handle === 'number') {\n // for non nodejs env, we save handleId: task\n // mapping in local cache for clearTimeout\n tasksByHandleId[handle] = task;\n }\n else if (handle) {\n // for nodejs env, we save task\n // reference in timerId Object for clearTimeout\n handle[taskSymbol] = task;\n }\n // check whether handle is null, because some polyfill or browser\n // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame\n if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' &&\n typeof handle.unref === 'function') {\n task.ref = handle.ref.bind(handle);\n task.unref = handle.unref.bind(handle);\n }\n if (typeof handle === 'number' || handle) {\n return handle;\n }\n return task;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n });\n clearNative =\n patchMethod(window, cancelName, (delegate) => function (self, args) {\n const id = args[0];\n let task;\n if (typeof id === 'number') {\n // non nodejs env.\n task = tasksByHandleId[id];\n }\n else {\n // nodejs env.\n task = id && id[taskSymbol];\n // other environments.\n if (!task) {\n task = id;\n }\n }\n if (task && typeof task.type === 'string') {\n if (task.state !== 'notScheduled' &&\n (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) {\n if (typeof id === 'number') {\n delete tasksByHandleId[id];\n }\n else if (id) {\n id[taskSymbol] = null;\n }\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n }\n else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\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 function patchCustomElements(_global, api) {\n const { isBrowser, isMix } = api.getGlobalObjects();\n if ((!isBrowser && !isMix) || !_global['customElements'] || !('customElements' in _global)) {\n return;\n }\n const callbacks = ['connectedCallback', 'disconnectedCallback', 'adoptedCallback', 'attributeChangedCallback'];\n api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks);\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 eventTargetPatch(_global, api) {\n if (Zone[api.symbol('patchEventTarget')]) {\n // EventTarget is already patched.\n return;\n }\n const { eventNames, zoneSymbolEventNames, TRUE_STR, FALSE_STR, ZONE_SYMBOL_PREFIX } = api.getGlobalObjects();\n // predefine all __zone_symbol__ + eventName + true/false string\n for (let i = 0; i < eventNames.length; i++) {\n const eventName = eventNames[i];\n const falseEventName = eventName + FALSE_STR;\n const trueEventName = eventName + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n const EVENT_TARGET = _global['EventTarget'];\n if (!EVENT_TARGET || !EVENT_TARGET.prototype) {\n return;\n }\n api.patchEventTarget(_global, [EVENT_TARGET && EVENT_TARGET.prototype]);\n return true;\n }\n function patchEvent(global, api) {\n api.patchEventPrototype(global, api);\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 Zone.__load_patch('legacy', (global) => {\n const legacyPatch = global[Zone.__symbol__('legacyPatch')];\n if (legacyPatch) {\n legacyPatch();\n }\n });\n Zone.__load_patch('timers', (global) => {\n const set = 'set';\n const clear = 'clear';\n patchTimer(global, set, clear, 'Timeout');\n patchTimer(global, set, clear, 'Interval');\n patchTimer(global, set, clear, 'Immediate');\n });\n Zone.__load_patch('requestAnimationFrame', (global) => {\n patchTimer(global, 'request', 'cancel', 'AnimationFrame');\n patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame');\n patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\n });\n Zone.__load_patch('blocking', (global, Zone) => {\n const blockingMethods = ['alert', 'prompt', 'confirm'];\n for (let i = 0; i < blockingMethods.length; i++) {\n const name = blockingMethods[i];\n patchMethod(global, name, (delegate, symbol, name) => {\n return function (s, args) {\n return Zone.current.run(delegate, global, args, name);\n };\n });\n }\n });\n Zone.__load_patch('EventTarget', (global, Zone, api) => {\n patchEvent(global, api);\n eventTargetPatch(global, api);\n // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener\n const XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) {\n api.patchEventTarget(global, [XMLHttpRequestEventTarget.prototype]);\n }\n patchClass('MutationObserver');\n patchClass('WebKitMutationObserver');\n patchClass('IntersectionObserver');\n patchClass('FileReader');\n });\n Zone.__load_patch('on_property', (global, Zone, api) => {\n propertyDescriptorPatch(api, global);\n });\n Zone.__load_patch('customElements', (global, Zone, api) => {\n patchCustomElements(global, api);\n });\n Zone.__load_patch('XHR', (global, Zone) => {\n // Treat XMLHttpRequest as a macrotask.\n patchXHR(global);\n const XHR_TASK = zoneSymbol('xhrTask');\n const XHR_SYNC = zoneSymbol('xhrSync');\n const XHR_LISTENER = zoneSymbol('xhrListener');\n const XHR_SCHEDULED = zoneSymbol('xhrScheduled');\n const XHR_URL = zoneSymbol('xhrURL');\n const XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled');\n function patchXHR(window) {\n const XMLHttpRequest = window['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return;\n }\n const XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n function findPendingTask(target) { return target[XHR_TASK]; }\n let oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n let oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n if (!oriAddListener) {\n const XMLHttpRequestEventTarget = window['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n const XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget.prototype;\n oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n }\n const READY_STATE_CHANGE = 'readystatechange';\n const SCHEDULED = 'scheduled';\n function scheduleTask(task) {\n const data = task.data;\n const target = data.target;\n target[XHR_SCHEDULED] = false;\n target[XHR_ERROR_BEFORE_SCHEDULED] = false;\n // remove existing event listener\n const listener = target[XHR_LISTENER];\n if (!oriAddListener) {\n oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n if (listener) {\n oriRemoveListener.call(target, READY_STATE_CHANGE, listener);\n }\n const newListener = target[XHR_LISTENER] = () => {\n if (target.readyState === target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) {\n // check whether the xhr has registered onload listener\n // if that is the case, the task should invoke after all\n // onload listeners finish.\n const loadTasks = target[Zone.__symbol__('loadfalse')];\n if (loadTasks && loadTasks.length > 0) {\n const oriInvoke = task.invoke;\n task.invoke = function () {\n // need to load the tasks again, because in other\n // load listener, they may remove themselves\n const loadTasks = target[Zone.__symbol__('loadfalse')];\n for (let i = 0; i < loadTasks.length; i++) {\n if (loadTasks[i] === task) {\n loadTasks.splice(i, 1);\n }\n }\n if (!data.aborted && task.state === SCHEDULED) {\n oriInvoke.call(task);\n }\n };\n loadTasks.push(task);\n }\n else {\n task.invoke();\n }\n }\n else if (!data.aborted && target[XHR_SCHEDULED] === false) {\n // error occurs when xhr.send()\n target[XHR_ERROR_BEFORE_SCHEDULED] = true;\n }\n }\n };\n oriAddListener.call(target, READY_STATE_CHANGE, newListener);\n const storedTask = target[XHR_TASK];\n if (!storedTask) {\n target[XHR_TASK] = task;\n }\n sendNative.apply(target, data.args);\n target[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() { }\n function clearTask(task) {\n const data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n const openNative = patchMethod(XMLHttpRequestPrototype, 'open', () => function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n self[XHR_URL] = args[1];\n return openNative.apply(self, args);\n });\n const XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send';\n const fetchTaskAborting = zoneSymbol('fetchTaskAborting');\n const fetchTaskScheduling = zoneSymbol('fetchTaskScheduling');\n const sendNative = patchMethod(XMLHttpRequestPrototype, 'send', () => function (self, args) {\n if (Zone.current[fetchTaskScheduling] === true) {\n // a fetch is scheduling, so we are using xhr to polyfill fetch\n // and because we already schedule macroTask for fetch, we should\n // not schedule a macroTask for xhr again\n return sendNative.apply(self, args);\n }\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n }\n else {\n const options = { target: self, url: self[XHR_URL], isPeriodic: false, args: args, aborted: false };\n const task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask);\n if (self && self[XHR_ERROR_BEFORE_SCHEDULED] === true && !options.aborted &&\n task.state === SCHEDULED) {\n // xhr request throw error when send\n // we should invoke task instead of leaving a scheduled\n // pending macroTask\n task.invoke();\n }\n }\n });\n const abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', () => function (self, args) {\n const task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || (task.data && task.data.aborted)) {\n return;\n }\n task.zone.cancelTask(task);\n }\n else if (Zone.current[fetchTaskAborting] === true) {\n // the abort is called from fetch polyfill, we need to call native abort of XHR.\n return abortNative.apply(self, args);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no\n // task\n // to cancel. Do nothing.\n });\n }\n });\n Zone.__load_patch('geolocation', (global) => {\n /// GEO_LOCATION\n if (global['navigator'] && global['navigator'].geolocation) {\n patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n }\n });\n Zone.__load_patch('PromiseRejectionEvent', (global, Zone) => {\n // handle unhandled promise rejection\n function findPromiseRejectionHandler(evtName) {\n return function (e) {\n const eventTasks = findEventTasks(global, evtName);\n eventTasks.forEach(eventTask => {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n const PromiseRejectionEvent = global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n const evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection });\n eventTask.invoke(evt);\n }\n });\n };\n }\n if (global['PromiseRejectionEvent']) {\n Zone[zoneSymbol('unhandledPromiseRejectionHandler')] =\n findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol('rejectionHandledHandler')] =\n findPromiseRejectionHandler('rejectionhandled');\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}));\n","/**\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"],"sourceRoot":"webpack:///"} \ No newline at end of file diff --git a/src/main/ui/dist/angular-nodejs-example/polyfills-es5.js b/src/main/ui/dist/angular-nodejs-example/polyfills-es5.js deleted file mode 100644 index 46baa5c7d..000000000 --- a/src/main/ui/dist/angular-nodejs-example/polyfills-es5.js +++ /dev/null @@ -1,19063 +0,0 @@ -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["polyfills-es5"], { - /***/ - "./node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/es5-polyfills.js": - /*!**************************************************************************************************!*\ - !*** ./node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/es5-polyfills.js ***! - \**************************************************************************************************/ - - /*! no exports provided */ - - /***/ - function node_modulesAngularDevkitBuildAngularSrcAngularCliFilesModelsEs5PolyfillsJs(module, __webpack_exports__, __webpack_require__) { - "use strict"; - - __webpack_require__.r(__webpack_exports__); - /* harmony import */ - - - var core_js_es_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( - /*! core-js/es/symbol */ - "./node_modules/core-js/es/symbol/index.js"); - /* harmony import */ - - - var core_js_es_symbol__WEBPACK_IMPORTED_MODULE_0___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_es_symbol__WEBPACK_IMPORTED_MODULE_0__); - /* harmony import */ - - - var core_js_modules_es_function_bind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( - /*! core-js/modules/es.function.bind */ - "./node_modules/core-js/modules/es.function.bind.js"); - /* harmony import */ - - - var core_js_modules_es_function_bind__WEBPACK_IMPORTED_MODULE_1___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_function_bind__WEBPACK_IMPORTED_MODULE_1__); - /* harmony import */ - - - var core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( - /*! core-js/modules/es.function.name */ - "./node_modules/core-js/modules/es.function.name.js"); - /* harmony import */ - - - var core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_2___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_2__); - /* harmony import */ - - - var core_js_modules_es_function_has_instance__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( - /*! core-js/modules/es.function.has-instance */ - "./node_modules/core-js/modules/es.function.has-instance.js"); - /* harmony import */ - - - var core_js_modules_es_function_has_instance__WEBPACK_IMPORTED_MODULE_3___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_function_has_instance__WEBPACK_IMPORTED_MODULE_3__); - /* harmony import */ - - - var core_js_modules_es_object_create__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( - /*! core-js/modules/es.object.create */ - "./node_modules/core-js/modules/es.object.create.js"); - /* harmony import */ - - - var core_js_modules_es_object_create__WEBPACK_IMPORTED_MODULE_4___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_object_create__WEBPACK_IMPORTED_MODULE_4__); - /* harmony import */ - - - var core_js_modules_es_object_define_property__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( - /*! core-js/modules/es.object.define-property */ - "./node_modules/core-js/modules/es.object.define-property.js"); - /* harmony import */ - - - var core_js_modules_es_object_define_property__WEBPACK_IMPORTED_MODULE_5___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_object_define_property__WEBPACK_IMPORTED_MODULE_5__); - /* harmony import */ - - - var core_js_modules_es_object_define_properties__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( - /*! core-js/modules/es.object.define-properties */ - "./node_modules/core-js/modules/es.object.define-properties.js"); - /* harmony import */ - - - var core_js_modules_es_object_define_properties__WEBPACK_IMPORTED_MODULE_6___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_object_define_properties__WEBPACK_IMPORTED_MODULE_6__); - /* harmony import */ - - - var core_js_modules_es_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__( - /*! core-js/modules/es.object.get-own-property-descriptor */ - "./node_modules/core-js/modules/es.object.get-own-property-descriptor.js"); - /* harmony import */ - - - var core_js_modules_es_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_7___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_7__); - /* harmony import */ - - - var core_js_modules_es_object_get_prototype_of__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__( - /*! core-js/modules/es.object.get-prototype-of */ - "./node_modules/core-js/modules/es.object.get-prototype-of.js"); - /* harmony import */ - - - var core_js_modules_es_object_get_prototype_of__WEBPACK_IMPORTED_MODULE_8___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_object_get_prototype_of__WEBPACK_IMPORTED_MODULE_8__); - /* harmony import */ - - - var core_js_modules_es_object_keys__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__( - /*! core-js/modules/es.object.keys */ - "./node_modules/core-js/modules/es.object.keys.js"); - /* harmony import */ - - - var core_js_modules_es_object_keys__WEBPACK_IMPORTED_MODULE_9___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_object_keys__WEBPACK_IMPORTED_MODULE_9__); - /* harmony import */ - - - var core_js_modules_es_object_get_own_property_names__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__( - /*! core-js/modules/es.object.get-own-property-names */ - "./node_modules/core-js/modules/es.object.get-own-property-names.js"); - /* harmony import */ - - - var core_js_modules_es_object_get_own_property_names__WEBPACK_IMPORTED_MODULE_10___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_object_get_own_property_names__WEBPACK_IMPORTED_MODULE_10__); - /* harmony import */ - - - var core_js_modules_es_object_freeze__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__( - /*! core-js/modules/es.object.freeze */ - "./node_modules/core-js/modules/es.object.freeze.js"); - /* harmony import */ - - - var core_js_modules_es_object_freeze__WEBPACK_IMPORTED_MODULE_11___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_object_freeze__WEBPACK_IMPORTED_MODULE_11__); - /* harmony import */ - - - var core_js_modules_es_object_seal__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__( - /*! core-js/modules/es.object.seal */ - "./node_modules/core-js/modules/es.object.seal.js"); - /* harmony import */ - - - var core_js_modules_es_object_seal__WEBPACK_IMPORTED_MODULE_12___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_object_seal__WEBPACK_IMPORTED_MODULE_12__); - /* harmony import */ - - - var core_js_modules_es_object_prevent_extensions__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__( - /*! core-js/modules/es.object.prevent-extensions */ - "./node_modules/core-js/modules/es.object.prevent-extensions.js"); - /* harmony import */ - - - var core_js_modules_es_object_prevent_extensions__WEBPACK_IMPORTED_MODULE_13___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_object_prevent_extensions__WEBPACK_IMPORTED_MODULE_13__); - /* harmony import */ - - - var core_js_modules_es_object_is_frozen__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__( - /*! core-js/modules/es.object.is-frozen */ - "./node_modules/core-js/modules/es.object.is-frozen.js"); - /* harmony import */ - - - var core_js_modules_es_object_is_frozen__WEBPACK_IMPORTED_MODULE_14___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_object_is_frozen__WEBPACK_IMPORTED_MODULE_14__); - /* harmony import */ - - - var core_js_modules_es_object_is_sealed__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__( - /*! core-js/modules/es.object.is-sealed */ - "./node_modules/core-js/modules/es.object.is-sealed.js"); - /* harmony import */ - - - var core_js_modules_es_object_is_sealed__WEBPACK_IMPORTED_MODULE_15___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_object_is_sealed__WEBPACK_IMPORTED_MODULE_15__); - /* harmony import */ - - - var core_js_modules_es_object_is_extensible__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__( - /*! core-js/modules/es.object.is-extensible */ - "./node_modules/core-js/modules/es.object.is-extensible.js"); - /* harmony import */ - - - var core_js_modules_es_object_is_extensible__WEBPACK_IMPORTED_MODULE_16___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_object_is_extensible__WEBPACK_IMPORTED_MODULE_16__); - /* harmony import */ - - - var core_js_modules_es_object_assign__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__( - /*! core-js/modules/es.object.assign */ - "./node_modules/core-js/modules/es.object.assign.js"); - /* harmony import */ - - - var core_js_modules_es_object_assign__WEBPACK_IMPORTED_MODULE_17___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_object_assign__WEBPACK_IMPORTED_MODULE_17__); - /* harmony import */ - - - var core_js_modules_es_object_is__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__( - /*! core-js/modules/es.object.is */ - "./node_modules/core-js/modules/es.object.is.js"); - /* harmony import */ - - - var core_js_modules_es_object_is__WEBPACK_IMPORTED_MODULE_18___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_object_is__WEBPACK_IMPORTED_MODULE_18__); - /* harmony import */ - - - var core_js_modules_es_object_set_prototype_of__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__( - /*! core-js/modules/es.object.set-prototype-of */ - "./node_modules/core-js/modules/es.object.set-prototype-of.js"); - /* harmony import */ - - - var core_js_modules_es_object_set_prototype_of__WEBPACK_IMPORTED_MODULE_19___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_object_set_prototype_of__WEBPACK_IMPORTED_MODULE_19__); - /* harmony import */ - - - var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__( - /*! core-js/modules/es.object.to-string */ - "./node_modules/core-js/modules/es.object.to-string.js"); - /* harmony import */ - - - var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_20___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_20__); - /* harmony import */ - - - var core_js_modules_es_array_concat__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__( - /*! core-js/modules/es.array.concat */ - "./node_modules/core-js/modules/es.array.concat.js"); - /* harmony import */ - - - var core_js_modules_es_array_concat__WEBPACK_IMPORTED_MODULE_21___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_array_concat__WEBPACK_IMPORTED_MODULE_21__); - /* harmony import */ - - - var core_js_modules_es_array_is_array__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__( - /*! core-js/modules/es.array.is-array */ - "./node_modules/core-js/modules/es.array.is-array.js"); - /* harmony import */ - - - var core_js_modules_es_array_is_array__WEBPACK_IMPORTED_MODULE_22___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_array_is_array__WEBPACK_IMPORTED_MODULE_22__); - /* harmony import */ - - - var core_js_modules_es_array_from__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__( - /*! core-js/modules/es.array.from */ - "./node_modules/core-js/modules/es.array.from.js"); - /* harmony import */ - - - var core_js_modules_es_array_from__WEBPACK_IMPORTED_MODULE_23___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_array_from__WEBPACK_IMPORTED_MODULE_23__); - /* harmony import */ - - - var core_js_modules_es_array_of__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__( - /*! core-js/modules/es.array.of */ - "./node_modules/core-js/modules/es.array.of.js"); - /* harmony import */ - - - var core_js_modules_es_array_of__WEBPACK_IMPORTED_MODULE_24___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_array_of__WEBPACK_IMPORTED_MODULE_24__); - /* harmony import */ - - - var core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__( - /*! core-js/modules/es.array.join */ - "./node_modules/core-js/modules/es.array.join.js"); - /* harmony import */ - - - var core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_25___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_25__); - /* harmony import */ - - - var core_js_modules_es_array_slice__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__( - /*! core-js/modules/es.array.slice */ - "./node_modules/core-js/modules/es.array.slice.js"); - /* harmony import */ - - - var core_js_modules_es_array_slice__WEBPACK_IMPORTED_MODULE_26___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_array_slice__WEBPACK_IMPORTED_MODULE_26__); - /* harmony import */ - - - var core_js_modules_es_array_splice__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__( - /*! core-js/modules/es.array.splice */ - "./node_modules/core-js/modules/es.array.splice.js"); - /* harmony import */ - - - var core_js_modules_es_array_splice__WEBPACK_IMPORTED_MODULE_27___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_array_splice__WEBPACK_IMPORTED_MODULE_27__); - /* harmony import */ - - - var core_js_modules_es_array_sort__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__( - /*! core-js/modules/es.array.sort */ - "./node_modules/core-js/modules/es.array.sort.js"); - /* harmony import */ - - - var core_js_modules_es_array_sort__WEBPACK_IMPORTED_MODULE_28___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_array_sort__WEBPACK_IMPORTED_MODULE_28__); - /* harmony import */ - - - var core_js_modules_es_array_for_each__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__( - /*! core-js/modules/es.array.for-each */ - "./node_modules/core-js/modules/es.array.for-each.js"); - /* harmony import */ - - - var core_js_modules_es_array_for_each__WEBPACK_IMPORTED_MODULE_29___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_array_for_each__WEBPACK_IMPORTED_MODULE_29__); - /* harmony import */ - - - var core_js_modules_es_array_map__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__( - /*! core-js/modules/es.array.map */ - "./node_modules/core-js/modules/es.array.map.js"); - /* harmony import */ - - - var core_js_modules_es_array_map__WEBPACK_IMPORTED_MODULE_30___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_array_map__WEBPACK_IMPORTED_MODULE_30__); - /* harmony import */ - - - var core_js_modules_es_array_filter__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__( - /*! core-js/modules/es.array.filter */ - "./node_modules/core-js/modules/es.array.filter.js"); - /* harmony import */ - - - var core_js_modules_es_array_filter__WEBPACK_IMPORTED_MODULE_31___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_array_filter__WEBPACK_IMPORTED_MODULE_31__); - /* harmony import */ - - - var core_js_modules_es_array_some__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__( - /*! core-js/modules/es.array.some */ - "./node_modules/core-js/modules/es.array.some.js"); - /* harmony import */ - - - var core_js_modules_es_array_some__WEBPACK_IMPORTED_MODULE_32___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_array_some__WEBPACK_IMPORTED_MODULE_32__); - /* harmony import */ - - - var core_js_modules_es_array_every__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__( - /*! core-js/modules/es.array.every */ - "./node_modules/core-js/modules/es.array.every.js"); - /* harmony import */ - - - var core_js_modules_es_array_every__WEBPACK_IMPORTED_MODULE_33___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_array_every__WEBPACK_IMPORTED_MODULE_33__); - /* harmony import */ - - - var core_js_modules_es_array_reduce__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__( - /*! core-js/modules/es.array.reduce */ - "./node_modules/core-js/modules/es.array.reduce.js"); - /* harmony import */ - - - var core_js_modules_es_array_reduce__WEBPACK_IMPORTED_MODULE_34___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_array_reduce__WEBPACK_IMPORTED_MODULE_34__); - /* harmony import */ - - - var core_js_modules_es_array_reduce_right__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__( - /*! core-js/modules/es.array.reduce-right */ - "./node_modules/core-js/modules/es.array.reduce-right.js"); - /* harmony import */ - - - var core_js_modules_es_array_reduce_right__WEBPACK_IMPORTED_MODULE_35___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_array_reduce_right__WEBPACK_IMPORTED_MODULE_35__); - /* harmony import */ - - - var core_js_modules_es_array_index_of__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__( - /*! core-js/modules/es.array.index-of */ - "./node_modules/core-js/modules/es.array.index-of.js"); - /* harmony import */ - - - var core_js_modules_es_array_index_of__WEBPACK_IMPORTED_MODULE_36___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_array_index_of__WEBPACK_IMPORTED_MODULE_36__); - /* harmony import */ - - - var core_js_modules_es_array_last_index_of__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__( - /*! core-js/modules/es.array.last-index-of */ - "./node_modules/core-js/modules/es.array.last-index-of.js"); - /* harmony import */ - - - var core_js_modules_es_array_last_index_of__WEBPACK_IMPORTED_MODULE_37___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_array_last_index_of__WEBPACK_IMPORTED_MODULE_37__); - /* harmony import */ - - - var core_js_modules_es_array_copy_within__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__( - /*! core-js/modules/es.array.copy-within */ - "./node_modules/core-js/modules/es.array.copy-within.js"); - /* harmony import */ - - - var core_js_modules_es_array_copy_within__WEBPACK_IMPORTED_MODULE_38___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_array_copy_within__WEBPACK_IMPORTED_MODULE_38__); - /* harmony import */ - - - var core_js_modules_es_array_fill__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__( - /*! core-js/modules/es.array.fill */ - "./node_modules/core-js/modules/es.array.fill.js"); - /* harmony import */ - - - var core_js_modules_es_array_fill__WEBPACK_IMPORTED_MODULE_39___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_array_fill__WEBPACK_IMPORTED_MODULE_39__); - /* harmony import */ - - - var core_js_modules_es_array_find__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__( - /*! core-js/modules/es.array.find */ - "./node_modules/core-js/modules/es.array.find.js"); - /* harmony import */ - - - var core_js_modules_es_array_find__WEBPACK_IMPORTED_MODULE_40___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_array_find__WEBPACK_IMPORTED_MODULE_40__); - /* harmony import */ - - - var core_js_modules_es_array_find_index__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__( - /*! core-js/modules/es.array.find-index */ - "./node_modules/core-js/modules/es.array.find-index.js"); - /* harmony import */ - - - var core_js_modules_es_array_find_index__WEBPACK_IMPORTED_MODULE_41___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_array_find_index__WEBPACK_IMPORTED_MODULE_41__); - /* harmony import */ - - - var core_js_modules_es_array_iterator__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__( - /*! core-js/modules/es.array.iterator */ - "./node_modules/core-js/modules/es.array.iterator.js"); - /* harmony import */ - - - var core_js_modules_es_array_iterator__WEBPACK_IMPORTED_MODULE_42___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_array_iterator__WEBPACK_IMPORTED_MODULE_42__); - /* harmony import */ - - - var core_js_modules_es_string_from_code_point__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__( - /*! core-js/modules/es.string.from-code-point */ - "./node_modules/core-js/modules/es.string.from-code-point.js"); - /* harmony import */ - - - var core_js_modules_es_string_from_code_point__WEBPACK_IMPORTED_MODULE_43___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_string_from_code_point__WEBPACK_IMPORTED_MODULE_43__); - /* harmony import */ - - - var core_js_modules_es_string_raw__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__( - /*! core-js/modules/es.string.raw */ - "./node_modules/core-js/modules/es.string.raw.js"); - /* harmony import */ - - - var core_js_modules_es_string_raw__WEBPACK_IMPORTED_MODULE_44___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_string_raw__WEBPACK_IMPORTED_MODULE_44__); - /* harmony import */ - - - var core_js_modules_es_string_trim__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__( - /*! core-js/modules/es.string.trim */ - "./node_modules/core-js/modules/es.string.trim.js"); - /* harmony import */ - - - var core_js_modules_es_string_trim__WEBPACK_IMPORTED_MODULE_45___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_string_trim__WEBPACK_IMPORTED_MODULE_45__); - /* harmony import */ - - - var core_js_modules_es_string_iterator__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__( - /*! core-js/modules/es.string.iterator */ - "./node_modules/core-js/modules/es.string.iterator.js"); - /* harmony import */ - - - var core_js_modules_es_string_iterator__WEBPACK_IMPORTED_MODULE_46___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_string_iterator__WEBPACK_IMPORTED_MODULE_46__); - /* harmony import */ - - - var core_js_modules_es_string_code_point_at__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__( - /*! core-js/modules/es.string.code-point-at */ - "./node_modules/core-js/modules/es.string.code-point-at.js"); - /* harmony import */ - - - var core_js_modules_es_string_code_point_at__WEBPACK_IMPORTED_MODULE_47___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_string_code_point_at__WEBPACK_IMPORTED_MODULE_47__); - /* harmony import */ - - - var core_js_modules_es_string_ends_with__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__( - /*! core-js/modules/es.string.ends-with */ - "./node_modules/core-js/modules/es.string.ends-with.js"); - /* harmony import */ - - - var core_js_modules_es_string_ends_with__WEBPACK_IMPORTED_MODULE_48___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_string_ends_with__WEBPACK_IMPORTED_MODULE_48__); - /* harmony import */ - - - var core_js_modules_es_string_includes__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__( - /*! core-js/modules/es.string.includes */ - "./node_modules/core-js/modules/es.string.includes.js"); - /* harmony import */ - - - var core_js_modules_es_string_includes__WEBPACK_IMPORTED_MODULE_49___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_string_includes__WEBPACK_IMPORTED_MODULE_49__); - /* harmony import */ - - - var core_js_modules_es_string_repeat__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__( - /*! core-js/modules/es.string.repeat */ - "./node_modules/core-js/modules/es.string.repeat.js"); - /* harmony import */ - - - var core_js_modules_es_string_repeat__WEBPACK_IMPORTED_MODULE_50___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_string_repeat__WEBPACK_IMPORTED_MODULE_50__); - /* harmony import */ - - - var core_js_modules_es_string_starts_with__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__( - /*! core-js/modules/es.string.starts-with */ - "./node_modules/core-js/modules/es.string.starts-with.js"); - /* harmony import */ - - - var core_js_modules_es_string_starts_with__WEBPACK_IMPORTED_MODULE_51___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_string_starts_with__WEBPACK_IMPORTED_MODULE_51__); - /* harmony import */ - - - var core_js_modules_es_string_anchor__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__( - /*! core-js/modules/es.string.anchor */ - "./node_modules/core-js/modules/es.string.anchor.js"); - /* harmony import */ - - - var core_js_modules_es_string_anchor__WEBPACK_IMPORTED_MODULE_52___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_string_anchor__WEBPACK_IMPORTED_MODULE_52__); - /* harmony import */ - - - var core_js_modules_es_string_big__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__( - /*! core-js/modules/es.string.big */ - "./node_modules/core-js/modules/es.string.big.js"); - /* harmony import */ - - - var core_js_modules_es_string_big__WEBPACK_IMPORTED_MODULE_53___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_string_big__WEBPACK_IMPORTED_MODULE_53__); - /* harmony import */ - - - var core_js_modules_es_string_blink__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__( - /*! core-js/modules/es.string.blink */ - "./node_modules/core-js/modules/es.string.blink.js"); - /* harmony import */ - - - var core_js_modules_es_string_blink__WEBPACK_IMPORTED_MODULE_54___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_string_blink__WEBPACK_IMPORTED_MODULE_54__); - /* harmony import */ - - - var core_js_modules_es_string_bold__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__( - /*! core-js/modules/es.string.bold */ - "./node_modules/core-js/modules/es.string.bold.js"); - /* harmony import */ - - - var core_js_modules_es_string_bold__WEBPACK_IMPORTED_MODULE_55___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_string_bold__WEBPACK_IMPORTED_MODULE_55__); - /* harmony import */ - - - var core_js_modules_es_string_fixed__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__( - /*! core-js/modules/es.string.fixed */ - "./node_modules/core-js/modules/es.string.fixed.js"); - /* harmony import */ - - - var core_js_modules_es_string_fixed__WEBPACK_IMPORTED_MODULE_56___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_string_fixed__WEBPACK_IMPORTED_MODULE_56__); - /* harmony import */ - - - var core_js_modules_es_string_fontcolor__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__( - /*! core-js/modules/es.string.fontcolor */ - "./node_modules/core-js/modules/es.string.fontcolor.js"); - /* harmony import */ - - - var core_js_modules_es_string_fontcolor__WEBPACK_IMPORTED_MODULE_57___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_string_fontcolor__WEBPACK_IMPORTED_MODULE_57__); - /* harmony import */ - - - var core_js_modules_es_string_fontsize__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__( - /*! core-js/modules/es.string.fontsize */ - "./node_modules/core-js/modules/es.string.fontsize.js"); - /* harmony import */ - - - var core_js_modules_es_string_fontsize__WEBPACK_IMPORTED_MODULE_58___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_string_fontsize__WEBPACK_IMPORTED_MODULE_58__); - /* harmony import */ - - - var core_js_modules_es_string_italics__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__( - /*! core-js/modules/es.string.italics */ - "./node_modules/core-js/modules/es.string.italics.js"); - /* harmony import */ - - - var core_js_modules_es_string_italics__WEBPACK_IMPORTED_MODULE_59___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_string_italics__WEBPACK_IMPORTED_MODULE_59__); - /* harmony import */ - - - var core_js_modules_es_string_link__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__( - /*! core-js/modules/es.string.link */ - "./node_modules/core-js/modules/es.string.link.js"); - /* harmony import */ - - - var core_js_modules_es_string_link__WEBPACK_IMPORTED_MODULE_60___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_string_link__WEBPACK_IMPORTED_MODULE_60__); - /* harmony import */ - - - var core_js_modules_es_string_small__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__( - /*! core-js/modules/es.string.small */ - "./node_modules/core-js/modules/es.string.small.js"); - /* harmony import */ - - - var core_js_modules_es_string_small__WEBPACK_IMPORTED_MODULE_61___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_string_small__WEBPACK_IMPORTED_MODULE_61__); - /* harmony import */ - - - var core_js_modules_es_string_strike__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__( - /*! core-js/modules/es.string.strike */ - "./node_modules/core-js/modules/es.string.strike.js"); - /* harmony import */ - - - var core_js_modules_es_string_strike__WEBPACK_IMPORTED_MODULE_62___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_string_strike__WEBPACK_IMPORTED_MODULE_62__); - /* harmony import */ - - - var core_js_modules_es_string_sub__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__( - /*! core-js/modules/es.string.sub */ - "./node_modules/core-js/modules/es.string.sub.js"); - /* harmony import */ - - - var core_js_modules_es_string_sub__WEBPACK_IMPORTED_MODULE_63___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_string_sub__WEBPACK_IMPORTED_MODULE_63__); - /* harmony import */ - - - var core_js_modules_es_string_sup__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__( - /*! core-js/modules/es.string.sup */ - "./node_modules/core-js/modules/es.string.sup.js"); - /* harmony import */ - - - var core_js_modules_es_string_sup__WEBPACK_IMPORTED_MODULE_64___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_string_sup__WEBPACK_IMPORTED_MODULE_64__); - /* harmony import */ - - - var core_js_modules_es_string_match__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__( - /*! core-js/modules/es.string.match */ - "./node_modules/core-js/modules/es.string.match.js"); - /* harmony import */ - - - var core_js_modules_es_string_match__WEBPACK_IMPORTED_MODULE_65___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_string_match__WEBPACK_IMPORTED_MODULE_65__); - /* harmony import */ - - - var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__( - /*! core-js/modules/es.string.replace */ - "./node_modules/core-js/modules/es.string.replace.js"); - /* harmony import */ - - - var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_66___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_66__); - /* harmony import */ - - - var core_js_modules_es_string_search__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__( - /*! core-js/modules/es.string.search */ - "./node_modules/core-js/modules/es.string.search.js"); - /* harmony import */ - - - var core_js_modules_es_string_search__WEBPACK_IMPORTED_MODULE_67___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_string_search__WEBPACK_IMPORTED_MODULE_67__); - /* harmony import */ - - - var core_js_modules_es_string_split__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__( - /*! core-js/modules/es.string.split */ - "./node_modules/core-js/modules/es.string.split.js"); - /* harmony import */ - - - var core_js_modules_es_string_split__WEBPACK_IMPORTED_MODULE_68___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_string_split__WEBPACK_IMPORTED_MODULE_68__); - /* harmony import */ - - - var core_js_modules_es_parse_int__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__( - /*! core-js/modules/es.parse-int */ - "./node_modules/core-js/modules/es.parse-int.js"); - /* harmony import */ - - - var core_js_modules_es_parse_int__WEBPACK_IMPORTED_MODULE_69___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_parse_int__WEBPACK_IMPORTED_MODULE_69__); - /* harmony import */ - - - var core_js_modules_es_parse_float__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__( - /*! core-js/modules/es.parse-float */ - "./node_modules/core-js/modules/es.parse-float.js"); - /* harmony import */ - - - var core_js_modules_es_parse_float__WEBPACK_IMPORTED_MODULE_70___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_parse_float__WEBPACK_IMPORTED_MODULE_70__); - /* harmony import */ - - - var core_js_es_number__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__( - /*! core-js/es/number */ - "./node_modules/core-js/es/number/index.js"); - /* harmony import */ - - - var core_js_es_number__WEBPACK_IMPORTED_MODULE_71___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_es_number__WEBPACK_IMPORTED_MODULE_71__); - /* harmony import */ - - - var core_js_es_math__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__( - /*! core-js/es/math */ - "./node_modules/core-js/es/math/index.js"); - /* harmony import */ - - - var core_js_es_math__WEBPACK_IMPORTED_MODULE_72___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_es_math__WEBPACK_IMPORTED_MODULE_72__); - /* harmony import */ - - - var core_js_es_date__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__( - /*! core-js/es/date */ - "./node_modules/core-js/es/date/index.js"); - /* harmony import */ - - - var core_js_es_date__WEBPACK_IMPORTED_MODULE_73___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_es_date__WEBPACK_IMPORTED_MODULE_73__); - /* harmony import */ - - - var core_js_modules_es_regexp_constructor__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__( - /*! core-js/modules/es.regexp.constructor */ - "./node_modules/core-js/modules/es.regexp.constructor.js"); - /* harmony import */ - - - var core_js_modules_es_regexp_constructor__WEBPACK_IMPORTED_MODULE_74___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_regexp_constructor__WEBPACK_IMPORTED_MODULE_74__); - /* harmony import */ - - - var core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__( - /*! core-js/modules/es.regexp.to-string */ - "./node_modules/core-js/modules/es.regexp.to-string.js"); - /* harmony import */ - - - var core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_75___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_75__); - /* harmony import */ - - - var core_js_modules_es_regexp_flags__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__( - /*! core-js/modules/es.regexp.flags */ - "./node_modules/core-js/modules/es.regexp.flags.js"); - /* harmony import */ - - - var core_js_modules_es_regexp_flags__WEBPACK_IMPORTED_MODULE_76___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_regexp_flags__WEBPACK_IMPORTED_MODULE_76__); - /* harmony import */ - - - var core_js_modules_es_map__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__( - /*! core-js/modules/es.map */ - "./node_modules/core-js/modules/es.map.js"); - /* harmony import */ - - - var core_js_modules_es_map__WEBPACK_IMPORTED_MODULE_77___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_map__WEBPACK_IMPORTED_MODULE_77__); - /* harmony import */ - - - var core_js_modules_es_weak_map__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__( - /*! core-js/modules/es.weak-map */ - "./node_modules/core-js/modules/es.weak-map.js"); - /* harmony import */ - - - var core_js_modules_es_weak_map__WEBPACK_IMPORTED_MODULE_78___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_weak_map__WEBPACK_IMPORTED_MODULE_78__); - /* harmony import */ - - - var core_js_modules_es_set__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__( - /*! core-js/modules/es.set */ - "./node_modules/core-js/modules/es.set.js"); - /* harmony import */ - - - var core_js_modules_es_set__WEBPACK_IMPORTED_MODULE_79___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_set__WEBPACK_IMPORTED_MODULE_79__); - /* harmony import */ - - - var core_js_modules_web_dom_collections_for_each__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__( - /*! core-js/modules/web.dom-collections.for-each */ - "./node_modules/core-js/modules/web.dom-collections.for-each.js"); - /* harmony import */ - - - var core_js_modules_web_dom_collections_for_each__WEBPACK_IMPORTED_MODULE_80___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_web_dom_collections_for_each__WEBPACK_IMPORTED_MODULE_80__); - /* harmony import */ - - - var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__( - /*! core-js/modules/web.dom-collections.iterator */ - "./node_modules/core-js/modules/web.dom-collections.iterator.js"); - /* harmony import */ - - - var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_81___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_81__); - /* harmony import */ - - - var core_js_modules_es_promise__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__( - /*! core-js/modules/es.promise */ - "./node_modules/core-js/modules/es.promise.js"); - /* harmony import */ - - - var core_js_modules_es_promise__WEBPACK_IMPORTED_MODULE_82___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_promise__WEBPACK_IMPORTED_MODULE_82__); - /* harmony import */ - - - var core_js_modules_es_json_to_string_tag__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__( - /*! core-js/modules/es.json.to-string-tag */ - "./node_modules/core-js/modules/es.json.to-string-tag.js"); - /* harmony import */ - - - var core_js_modules_es_json_to_string_tag__WEBPACK_IMPORTED_MODULE_83___default = - /*#__PURE__*/ - __webpack_require__.n(core_js_modules_es_json_to_string_tag__WEBPACK_IMPORTED_MODULE_83__); - /* harmony import */ - - - var regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__( - /*! regenerator-runtime/runtime */ - "./node_modules/regenerator-runtime/runtime.js"); - /* harmony import */ - - - var regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_84___default = - /*#__PURE__*/ - __webpack_require__.n(regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_84__); - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - // ES2015 symbol capabilities - // ES2015 function capabilities - // ES2015 object capabilities - // ES2015 array capabilities - // ES2015 string capabilities - - /***/ - - }, - - /***/ - "./node_modules/core-js/es/date/index.js": - /*!***********************************************!*\ - !*** ./node_modules/core-js/es/date/index.js ***! - \***********************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsEsDateIndexJs(module, exports, __webpack_require__) { - __webpack_require__( - /*! ../../modules/es.date.now */ - "./node_modules/core-js/modules/es.date.now.js"); - - __webpack_require__( - /*! ../../modules/es.date.to-json */ - "./node_modules/core-js/modules/es.date.to-json.js"); - - __webpack_require__( - /*! ../../modules/es.date.to-iso-string */ - "./node_modules/core-js/modules/es.date.to-iso-string.js"); - - __webpack_require__( - /*! ../../modules/es.date.to-string */ - "./node_modules/core-js/modules/es.date.to-string.js"); - - __webpack_require__( - /*! ../../modules/es.date.to-primitive */ - "./node_modules/core-js/modules/es.date.to-primitive.js"); - - var path = __webpack_require__( - /*! ../../internals/path */ - "./node_modules/core-js/internals/path.js"); - - module.exports = path.Date; - /***/ - }, - - /***/ - "./node_modules/core-js/es/math/index.js": - /*!***********************************************!*\ - !*** ./node_modules/core-js/es/math/index.js ***! - \***********************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsEsMathIndexJs(module, exports, __webpack_require__) { - __webpack_require__( - /*! ../../modules/es.math.acosh */ - "./node_modules/core-js/modules/es.math.acosh.js"); - - __webpack_require__( - /*! ../../modules/es.math.asinh */ - "./node_modules/core-js/modules/es.math.asinh.js"); - - __webpack_require__( - /*! ../../modules/es.math.atanh */ - "./node_modules/core-js/modules/es.math.atanh.js"); - - __webpack_require__( - /*! ../../modules/es.math.cbrt */ - "./node_modules/core-js/modules/es.math.cbrt.js"); - - __webpack_require__( - /*! ../../modules/es.math.clz32 */ - "./node_modules/core-js/modules/es.math.clz32.js"); - - __webpack_require__( - /*! ../../modules/es.math.cosh */ - "./node_modules/core-js/modules/es.math.cosh.js"); - - __webpack_require__( - /*! ../../modules/es.math.expm1 */ - "./node_modules/core-js/modules/es.math.expm1.js"); - - __webpack_require__( - /*! ../../modules/es.math.fround */ - "./node_modules/core-js/modules/es.math.fround.js"); - - __webpack_require__( - /*! ../../modules/es.math.hypot */ - "./node_modules/core-js/modules/es.math.hypot.js"); - - __webpack_require__( - /*! ../../modules/es.math.imul */ - "./node_modules/core-js/modules/es.math.imul.js"); - - __webpack_require__( - /*! ../../modules/es.math.log10 */ - "./node_modules/core-js/modules/es.math.log10.js"); - - __webpack_require__( - /*! ../../modules/es.math.log1p */ - "./node_modules/core-js/modules/es.math.log1p.js"); - - __webpack_require__( - /*! ../../modules/es.math.log2 */ - "./node_modules/core-js/modules/es.math.log2.js"); - - __webpack_require__( - /*! ../../modules/es.math.sign */ - "./node_modules/core-js/modules/es.math.sign.js"); - - __webpack_require__( - /*! ../../modules/es.math.sinh */ - "./node_modules/core-js/modules/es.math.sinh.js"); - - __webpack_require__( - /*! ../../modules/es.math.tanh */ - "./node_modules/core-js/modules/es.math.tanh.js"); - - __webpack_require__( - /*! ../../modules/es.math.to-string-tag */ - "./node_modules/core-js/modules/es.math.to-string-tag.js"); - - __webpack_require__( - /*! ../../modules/es.math.trunc */ - "./node_modules/core-js/modules/es.math.trunc.js"); - - var path = __webpack_require__( - /*! ../../internals/path */ - "./node_modules/core-js/internals/path.js"); - - module.exports = path.Math; - /***/ - }, - - /***/ - "./node_modules/core-js/es/number/index.js": - /*!*************************************************!*\ - !*** ./node_modules/core-js/es/number/index.js ***! - \*************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsEsNumberIndexJs(module, exports, __webpack_require__) { - __webpack_require__( - /*! ../../modules/es.number.constructor */ - "./node_modules/core-js/modules/es.number.constructor.js"); - - __webpack_require__( - /*! ../../modules/es.number.epsilon */ - "./node_modules/core-js/modules/es.number.epsilon.js"); - - __webpack_require__( - /*! ../../modules/es.number.is-finite */ - "./node_modules/core-js/modules/es.number.is-finite.js"); - - __webpack_require__( - /*! ../../modules/es.number.is-integer */ - "./node_modules/core-js/modules/es.number.is-integer.js"); - - __webpack_require__( - /*! ../../modules/es.number.is-nan */ - "./node_modules/core-js/modules/es.number.is-nan.js"); - - __webpack_require__( - /*! ../../modules/es.number.is-safe-integer */ - "./node_modules/core-js/modules/es.number.is-safe-integer.js"); - - __webpack_require__( - /*! ../../modules/es.number.max-safe-integer */ - "./node_modules/core-js/modules/es.number.max-safe-integer.js"); - - __webpack_require__( - /*! ../../modules/es.number.min-safe-integer */ - "./node_modules/core-js/modules/es.number.min-safe-integer.js"); - - __webpack_require__( - /*! ../../modules/es.number.parse-float */ - "./node_modules/core-js/modules/es.number.parse-float.js"); - - __webpack_require__( - /*! ../../modules/es.number.parse-int */ - "./node_modules/core-js/modules/es.number.parse-int.js"); - - __webpack_require__( - /*! ../../modules/es.number.to-fixed */ - "./node_modules/core-js/modules/es.number.to-fixed.js"); - - __webpack_require__( - /*! ../../modules/es.number.to-precision */ - "./node_modules/core-js/modules/es.number.to-precision.js"); - - var path = __webpack_require__( - /*! ../../internals/path */ - "./node_modules/core-js/internals/path.js"); - - module.exports = path.Number; - /***/ - }, - - /***/ - "./node_modules/core-js/es/symbol/index.js": - /*!*************************************************!*\ - !*** ./node_modules/core-js/es/symbol/index.js ***! - \*************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsEsSymbolIndexJs(module, exports, __webpack_require__) { - __webpack_require__( - /*! ../../modules/es.array.concat */ - "./node_modules/core-js/modules/es.array.concat.js"); - - __webpack_require__( - /*! ../../modules/es.object.to-string */ - "./node_modules/core-js/modules/es.object.to-string.js"); - - __webpack_require__( - /*! ../../modules/es.symbol */ - "./node_modules/core-js/modules/es.symbol.js"); - - __webpack_require__( - /*! ../../modules/es.symbol.async-iterator */ - "./node_modules/core-js/modules/es.symbol.async-iterator.js"); - - __webpack_require__( - /*! ../../modules/es.symbol.description */ - "./node_modules/core-js/modules/es.symbol.description.js"); - - __webpack_require__( - /*! ../../modules/es.symbol.has-instance */ - "./node_modules/core-js/modules/es.symbol.has-instance.js"); - - __webpack_require__( - /*! ../../modules/es.symbol.is-concat-spreadable */ - "./node_modules/core-js/modules/es.symbol.is-concat-spreadable.js"); - - __webpack_require__( - /*! ../../modules/es.symbol.iterator */ - "./node_modules/core-js/modules/es.symbol.iterator.js"); - - __webpack_require__( - /*! ../../modules/es.symbol.match */ - "./node_modules/core-js/modules/es.symbol.match.js"); - - __webpack_require__( - /*! ../../modules/es.symbol.match-all */ - "./node_modules/core-js/modules/es.symbol.match-all.js"); - - __webpack_require__( - /*! ../../modules/es.symbol.replace */ - "./node_modules/core-js/modules/es.symbol.replace.js"); - - __webpack_require__( - /*! ../../modules/es.symbol.search */ - "./node_modules/core-js/modules/es.symbol.search.js"); - - __webpack_require__( - /*! ../../modules/es.symbol.species */ - "./node_modules/core-js/modules/es.symbol.species.js"); - - __webpack_require__( - /*! ../../modules/es.symbol.split */ - "./node_modules/core-js/modules/es.symbol.split.js"); - - __webpack_require__( - /*! ../../modules/es.symbol.to-primitive */ - "./node_modules/core-js/modules/es.symbol.to-primitive.js"); - - __webpack_require__( - /*! ../../modules/es.symbol.to-string-tag */ - "./node_modules/core-js/modules/es.symbol.to-string-tag.js"); - - __webpack_require__( - /*! ../../modules/es.symbol.unscopables */ - "./node_modules/core-js/modules/es.symbol.unscopables.js"); - - __webpack_require__( - /*! ../../modules/es.math.to-string-tag */ - "./node_modules/core-js/modules/es.math.to-string-tag.js"); - - __webpack_require__( - /*! ../../modules/es.json.to-string-tag */ - "./node_modules/core-js/modules/es.json.to-string-tag.js"); - - var path = __webpack_require__( - /*! ../../internals/path */ - "./node_modules/core-js/internals/path.js"); - - module.exports = path.Symbol; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/a-function.js": - /*!******************************************************!*\ - !*** ./node_modules/core-js/internals/a-function.js ***! - \******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsAFunctionJs(module, exports) { - module.exports = function (it) { - if (typeof it != 'function') { - throw TypeError(String(it) + ' is not a function'); - } - - return it; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/a-possible-prototype.js": - /*!****************************************************************!*\ - !*** ./node_modules/core-js/internals/a-possible-prototype.js ***! - \****************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsAPossiblePrototypeJs(module, exports, __webpack_require__) { - var isObject = __webpack_require__( - /*! ../internals/is-object */ - "./node_modules/core-js/internals/is-object.js"); - - module.exports = function (it) { - if (!isObject(it) && it !== null) { - throw TypeError("Can't set " + String(it) + ' as a prototype'); - } - - return it; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/add-to-unscopables.js": - /*!**************************************************************!*\ - !*** ./node_modules/core-js/internals/add-to-unscopables.js ***! - \**************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsAddToUnscopablesJs(module, exports, __webpack_require__) { - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ - "./node_modules/core-js/internals/well-known-symbol.js"); - - var create = __webpack_require__( - /*! ../internals/object-create */ - "./node_modules/core-js/internals/object-create.js"); - - var definePropertyModule = __webpack_require__( - /*! ../internals/object-define-property */ - "./node_modules/core-js/internals/object-define-property.js"); - - var UNSCOPABLES = wellKnownSymbol('unscopables'); - var ArrayPrototype = Array.prototype; // Array.prototype[@@unscopables] - // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables - - if (ArrayPrototype[UNSCOPABLES] == undefined) { - definePropertyModule.f(ArrayPrototype, UNSCOPABLES, { - configurable: true, - value: create(null) - }); - } // add a key to Array.prototype[@@unscopables] - - - module.exports = function (key) { - ArrayPrototype[UNSCOPABLES][key] = true; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/advance-string-index.js": - /*!****************************************************************!*\ - !*** ./node_modules/core-js/internals/advance-string-index.js ***! - \****************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsAdvanceStringIndexJs(module, exports, __webpack_require__) { - "use strict"; - - var charAt = __webpack_require__( - /*! ../internals/string-multibyte */ - "./node_modules/core-js/internals/string-multibyte.js").charAt; // `AdvanceStringIndex` abstract operation - // https://tc39.github.io/ecma262/#sec-advancestringindex - - - module.exports = function (S, index, unicode) { - return index + (unicode ? charAt(S, index).length : 1); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/an-instance.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/internals/an-instance.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsAnInstanceJs(module, exports) { - module.exports = function (it, Constructor, name) { - if (!(it instanceof Constructor)) { - throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation'); - } - - return it; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/an-object.js": - /*!*****************************************************!*\ - !*** ./node_modules/core-js/internals/an-object.js ***! - \*****************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsAnObjectJs(module, exports, __webpack_require__) { - var isObject = __webpack_require__( - /*! ../internals/is-object */ - "./node_modules/core-js/internals/is-object.js"); - - module.exports = function (it) { - if (!isObject(it)) { - throw TypeError(String(it) + ' is not an object'); - } - - return it; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/array-copy-within.js": - /*!*************************************************************!*\ - !*** ./node_modules/core-js/internals/array-copy-within.js ***! - \*************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsArrayCopyWithinJs(module, exports, __webpack_require__) { - "use strict"; - - var toObject = __webpack_require__( - /*! ../internals/to-object */ - "./node_modules/core-js/internals/to-object.js"); - - var toAbsoluteIndex = __webpack_require__( - /*! ../internals/to-absolute-index */ - "./node_modules/core-js/internals/to-absolute-index.js"); - - var toLength = __webpack_require__( - /*! ../internals/to-length */ - "./node_modules/core-js/internals/to-length.js"); - - var min = Math.min; // `Array.prototype.copyWithin` method implementation - // https://tc39.github.io/ecma262/#sec-array.prototype.copywithin - - module.exports = [].copyWithin || function copyWithin(target - /* = 0 */ - , start - /* = 0, end = @length */ - ) { - var O = toObject(this); - var len = toLength(O.length); - var to = toAbsoluteIndex(target, len); - var from = toAbsoluteIndex(start, len); - var end = arguments.length > 2 ? arguments[2] : undefined; - var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to); - var inc = 1; - - if (from < to && to < from + count) { - inc = -1; - from += count - 1; - to += count - 1; - } - - while (count-- > 0) { - if (from in O) O[to] = O[from];else delete O[to]; - to += inc; - from += inc; - } - - return O; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/array-fill.js": - /*!******************************************************!*\ - !*** ./node_modules/core-js/internals/array-fill.js ***! - \******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsArrayFillJs(module, exports, __webpack_require__) { - "use strict"; - - var toObject = __webpack_require__( - /*! ../internals/to-object */ - "./node_modules/core-js/internals/to-object.js"); - - var toAbsoluteIndex = __webpack_require__( - /*! ../internals/to-absolute-index */ - "./node_modules/core-js/internals/to-absolute-index.js"); - - var toLength = __webpack_require__( - /*! ../internals/to-length */ - "./node_modules/core-js/internals/to-length.js"); // `Array.prototype.fill` method implementation - // https://tc39.github.io/ecma262/#sec-array.prototype.fill - - - module.exports = function fill(value - /* , start = 0, end = @length */ - ) { - var O = toObject(this); - var length = toLength(O.length); - var argumentsLength = arguments.length; - var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length); - var end = argumentsLength > 2 ? arguments[2] : undefined; - var endPos = end === undefined ? length : toAbsoluteIndex(end, length); - - while (endPos > index) { - O[index++] = value; - } - - return O; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/array-for-each.js": - /*!**********************************************************!*\ - !*** ./node_modules/core-js/internals/array-for-each.js ***! - \**********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsArrayForEachJs(module, exports, __webpack_require__) { - "use strict"; - - var $forEach = __webpack_require__( - /*! ../internals/array-iteration */ - "./node_modules/core-js/internals/array-iteration.js").forEach; - - var arrayMethodIsStrict = __webpack_require__( - /*! ../internals/array-method-is-strict */ - "./node_modules/core-js/internals/array-method-is-strict.js"); - - var arrayMethodUsesToLength = __webpack_require__( - /*! ../internals/array-method-uses-to-length */ - "./node_modules/core-js/internals/array-method-uses-to-length.js"); - - var STRICT_METHOD = arrayMethodIsStrict('forEach'); - var USES_TO_LENGTH = arrayMethodUsesToLength('forEach'); // `Array.prototype.forEach` method implementation - // https://tc39.github.io/ecma262/#sec-array.prototype.foreach - - module.exports = !STRICT_METHOD || !USES_TO_LENGTH ? function forEach(callbackfn - /* , thisArg */ - ) { - return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } : [].forEach; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/array-from.js": - /*!******************************************************!*\ - !*** ./node_modules/core-js/internals/array-from.js ***! - \******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsArrayFromJs(module, exports, __webpack_require__) { - "use strict"; - - var bind = __webpack_require__( - /*! ../internals/function-bind-context */ - "./node_modules/core-js/internals/function-bind-context.js"); - - var toObject = __webpack_require__( - /*! ../internals/to-object */ - "./node_modules/core-js/internals/to-object.js"); - - var callWithSafeIterationClosing = __webpack_require__( - /*! ../internals/call-with-safe-iteration-closing */ - "./node_modules/core-js/internals/call-with-safe-iteration-closing.js"); - - var isArrayIteratorMethod = __webpack_require__( - /*! ../internals/is-array-iterator-method */ - "./node_modules/core-js/internals/is-array-iterator-method.js"); - - var toLength = __webpack_require__( - /*! ../internals/to-length */ - "./node_modules/core-js/internals/to-length.js"); - - var createProperty = __webpack_require__( - /*! ../internals/create-property */ - "./node_modules/core-js/internals/create-property.js"); - - var getIteratorMethod = __webpack_require__( - /*! ../internals/get-iterator-method */ - "./node_modules/core-js/internals/get-iterator-method.js"); // `Array.from` method implementation - // https://tc39.github.io/ecma262/#sec-array.from - - - module.exports = function from(arrayLike - /* , mapfn = undefined, thisArg = undefined */ - ) { - var O = toObject(arrayLike); - var C = typeof this == 'function' ? this : Array; - var argumentsLength = arguments.length; - var mapfn = argumentsLength > 1 ? arguments[1] : undefined; - var mapping = mapfn !== undefined; - var iteratorMethod = getIteratorMethod(O); - var index = 0; - var length, result, step, iterator, next, value; - if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2); // if the target is not iterable or it's an array with the default iterator - use a simple case - - if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) { - iterator = iteratorMethod.call(O); - next = iterator.next; - result = new C(); - - for (; !(step = next.call(iterator)).done; index++) { - value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value; - createProperty(result, index, value); - } - } else { - length = toLength(O.length); - result = new C(length); - - for (; length > index; index++) { - value = mapping ? mapfn(O[index], index) : O[index]; - createProperty(result, index, value); - } - } - - result.length = index; - return result; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/array-includes.js": - /*!**********************************************************!*\ - !*** ./node_modules/core-js/internals/array-includes.js ***! - \**********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsArrayIncludesJs(module, exports, __webpack_require__) { - var toIndexedObject = __webpack_require__( - /*! ../internals/to-indexed-object */ - "./node_modules/core-js/internals/to-indexed-object.js"); - - var toLength = __webpack_require__( - /*! ../internals/to-length */ - "./node_modules/core-js/internals/to-length.js"); - - var toAbsoluteIndex = __webpack_require__( - /*! ../internals/to-absolute-index */ - "./node_modules/core-js/internals/to-absolute-index.js"); // `Array.prototype.{ indexOf, includes }` methods implementation - - - var createMethod = function createMethod(IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIndexedObject($this); - var length = toLength(O.length); - var index = toAbsoluteIndex(fromIndex, length); - var value; // Array#includes uses SameValueZero equality algorithm - // eslint-disable-next-line no-self-compare - - if (IS_INCLUDES && el != el) while (length > index) { - value = O[index++]; // eslint-disable-next-line no-self-compare - - if (value != value) return true; // Array#indexOf ignores holes, Array#includes - not - } else for (; length > index; index++) { - if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; - } - return !IS_INCLUDES && -1; - }; - }; - - module.exports = { - // `Array.prototype.includes` method - // https://tc39.github.io/ecma262/#sec-array.prototype.includes - includes: createMethod(true), - // `Array.prototype.indexOf` method - // https://tc39.github.io/ecma262/#sec-array.prototype.indexof - indexOf: createMethod(false) - }; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/array-iteration.js": - /*!***********************************************************!*\ - !*** ./node_modules/core-js/internals/array-iteration.js ***! - \***********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsArrayIterationJs(module, exports, __webpack_require__) { - var bind = __webpack_require__( - /*! ../internals/function-bind-context */ - "./node_modules/core-js/internals/function-bind-context.js"); - - var IndexedObject = __webpack_require__( - /*! ../internals/indexed-object */ - "./node_modules/core-js/internals/indexed-object.js"); - - var toObject = __webpack_require__( - /*! ../internals/to-object */ - "./node_modules/core-js/internals/to-object.js"); - - var toLength = __webpack_require__( - /*! ../internals/to-length */ - "./node_modules/core-js/internals/to-length.js"); - - var arraySpeciesCreate = __webpack_require__( - /*! ../internals/array-species-create */ - "./node_modules/core-js/internals/array-species-create.js"); - - var push = [].push; // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation - - var createMethod = function createMethod(TYPE) { - var IS_MAP = TYPE == 1; - var IS_FILTER = TYPE == 2; - var IS_SOME = TYPE == 3; - var IS_EVERY = TYPE == 4; - var IS_FIND_INDEX = TYPE == 6; - var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; - return function ($this, callbackfn, that, specificCreate) { - var O = toObject($this); - var self = IndexedObject(O); - var boundFunction = bind(callbackfn, that, 3); - var length = toLength(self.length); - var index = 0; - var create = specificCreate || arraySpeciesCreate; - var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; - var value, result; - - for (; length > index; index++) { - if (NO_HOLES || index in self) { - value = self[index]; - result = boundFunction(value, index, O); - - if (TYPE) { - if (IS_MAP) target[index] = result; // map - else if (result) switch (TYPE) { - case 3: - return true; - // some - - case 5: - return value; - // find - - case 6: - return index; - // findIndex - - case 2: - push.call(target, value); - // filter - } else if (IS_EVERY) return false; // every - } - } - } - - return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; - }; - }; - - module.exports = { - // `Array.prototype.forEach` method - // https://tc39.github.io/ecma262/#sec-array.prototype.foreach - forEach: createMethod(0), - // `Array.prototype.map` method - // https://tc39.github.io/ecma262/#sec-array.prototype.map - map: createMethod(1), - // `Array.prototype.filter` method - // https://tc39.github.io/ecma262/#sec-array.prototype.filter - filter: createMethod(2), - // `Array.prototype.some` method - // https://tc39.github.io/ecma262/#sec-array.prototype.some - some: createMethod(3), - // `Array.prototype.every` method - // https://tc39.github.io/ecma262/#sec-array.prototype.every - every: createMethod(4), - // `Array.prototype.find` method - // https://tc39.github.io/ecma262/#sec-array.prototype.find - find: createMethod(5), - // `Array.prototype.findIndex` method - // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex - findIndex: createMethod(6) - }; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/array-last-index-of.js": - /*!***************************************************************!*\ - !*** ./node_modules/core-js/internals/array-last-index-of.js ***! - \***************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsArrayLastIndexOfJs(module, exports, __webpack_require__) { - "use strict"; - - var toIndexedObject = __webpack_require__( - /*! ../internals/to-indexed-object */ - "./node_modules/core-js/internals/to-indexed-object.js"); - - var toInteger = __webpack_require__( - /*! ../internals/to-integer */ - "./node_modules/core-js/internals/to-integer.js"); - - var toLength = __webpack_require__( - /*! ../internals/to-length */ - "./node_modules/core-js/internals/to-length.js"); - - var arrayMethodIsStrict = __webpack_require__( - /*! ../internals/array-method-is-strict */ - "./node_modules/core-js/internals/array-method-is-strict.js"); - - var arrayMethodUsesToLength = __webpack_require__( - /*! ../internals/array-method-uses-to-length */ - "./node_modules/core-js/internals/array-method-uses-to-length.js"); - - var min = Math.min; - var nativeLastIndexOf = [].lastIndexOf; - var NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0; - var STRICT_METHOD = arrayMethodIsStrict('lastIndexOf'); // For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method - - var USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { - ACCESSORS: true, - 1: 0 - }); - var FORCED = NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH; // `Array.prototype.lastIndexOf` method implementation - // https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof - - module.exports = FORCED ? function lastIndexOf(searchElement - /* , fromIndex = @[*-1] */ - ) { - // convert -0 to +0 - if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0; - var O = toIndexedObject(this); - var length = toLength(O.length); - var index = length - 1; - if (arguments.length > 1) index = min(index, toInteger(arguments[1])); - if (index < 0) index = length + index; - - for (; index >= 0; index--) { - if (index in O && O[index] === searchElement) return index || 0; - } - - return -1; - } : nativeLastIndexOf; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/array-method-has-species-support.js": - /*!****************************************************************************!*\ - !*** ./node_modules/core-js/internals/array-method-has-species-support.js ***! - \****************************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsArrayMethodHasSpeciesSupportJs(module, exports, __webpack_require__) { - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ - "./node_modules/core-js/internals/well-known-symbol.js"); - - var V8_VERSION = __webpack_require__( - /*! ../internals/engine-v8-version */ - "./node_modules/core-js/internals/engine-v8-version.js"); - - var SPECIES = wellKnownSymbol('species'); - - module.exports = function (METHOD_NAME) { - // We can't use this feature detection in V8 since it causes - // deoptimization and serious performance degradation - // https://github.com/zloirock/core-js/issues/677 - return V8_VERSION >= 51 || !fails(function () { - var array = []; - var constructor = array.constructor = {}; - - constructor[SPECIES] = function () { - return { - foo: 1 - }; - }; - - return array[METHOD_NAME](Boolean).foo !== 1; - }); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/array-method-is-strict.js": - /*!******************************************************************!*\ - !*** ./node_modules/core-js/internals/array-method-is-strict.js ***! - \******************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsArrayMethodIsStrictJs(module, exports, __webpack_require__) { - "use strict"; - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - module.exports = function (METHOD_NAME, argument) { - var method = [][METHOD_NAME]; - return !!method && fails(function () { - // eslint-disable-next-line no-useless-call,no-throw-literal - method.call(null, argument || function () { - throw 1; - }, 1); - }); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/array-method-uses-to-length.js": - /*!***********************************************************************!*\ - !*** ./node_modules/core-js/internals/array-method-uses-to-length.js ***! - \***********************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsArrayMethodUsesToLengthJs(module, exports, __webpack_require__) { - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ - "./node_modules/core-js/internals/descriptors.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var has = __webpack_require__( - /*! ../internals/has */ - "./node_modules/core-js/internals/has.js"); - - var defineProperty = Object.defineProperty; - var cache = {}; - - var thrower = function thrower(it) { - throw it; - }; - - module.exports = function (METHOD_NAME, options) { - if (has(cache, METHOD_NAME)) return cache[METHOD_NAME]; - if (!options) options = {}; - var method = [][METHOD_NAME]; - var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false; - var argument0 = has(options, 0) ? options[0] : thrower; - var argument1 = has(options, 1) ? options[1] : undefined; - return cache[METHOD_NAME] = !!method && !fails(function () { - if (ACCESSORS && !DESCRIPTORS) return true; - var O = { - length: -1 - }; - if (ACCESSORS) defineProperty(O, 1, { - enumerable: true, - get: thrower - });else O[1] = 1; - method.call(O, argument0, argument1); - }); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/array-reduce.js": - /*!********************************************************!*\ - !*** ./node_modules/core-js/internals/array-reduce.js ***! - \********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsArrayReduceJs(module, exports, __webpack_require__) { - var aFunction = __webpack_require__( - /*! ../internals/a-function */ - "./node_modules/core-js/internals/a-function.js"); - - var toObject = __webpack_require__( - /*! ../internals/to-object */ - "./node_modules/core-js/internals/to-object.js"); - - var IndexedObject = __webpack_require__( - /*! ../internals/indexed-object */ - "./node_modules/core-js/internals/indexed-object.js"); - - var toLength = __webpack_require__( - /*! ../internals/to-length */ - "./node_modules/core-js/internals/to-length.js"); // `Array.prototype.{ reduce, reduceRight }` methods implementation - - - var createMethod = function createMethod(IS_RIGHT) { - return function (that, callbackfn, argumentsLength, memo) { - aFunction(callbackfn); - var O = toObject(that); - var self = IndexedObject(O); - var length = toLength(O.length); - var index = IS_RIGHT ? length - 1 : 0; - var i = IS_RIGHT ? -1 : 1; - if (argumentsLength < 2) while (true) { - if (index in self) { - memo = self[index]; - index += i; - break; - } - - index += i; - - if (IS_RIGHT ? index < 0 : length <= index) { - throw TypeError('Reduce of empty array with no initial value'); - } - } - - for (; IS_RIGHT ? index >= 0 : length > index; index += i) { - if (index in self) { - memo = callbackfn(memo, self[index], index, O); - } - } - - return memo; - }; - }; - - module.exports = { - // `Array.prototype.reduce` method - // https://tc39.github.io/ecma262/#sec-array.prototype.reduce - left: createMethod(false), - // `Array.prototype.reduceRight` method - // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright - right: createMethod(true) - }; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/array-species-create.js": - /*!****************************************************************!*\ - !*** ./node_modules/core-js/internals/array-species-create.js ***! - \****************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsArraySpeciesCreateJs(module, exports, __webpack_require__) { - var isObject = __webpack_require__( - /*! ../internals/is-object */ - "./node_modules/core-js/internals/is-object.js"); - - var isArray = __webpack_require__( - /*! ../internals/is-array */ - "./node_modules/core-js/internals/is-array.js"); - - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ - "./node_modules/core-js/internals/well-known-symbol.js"); - - var SPECIES = wellKnownSymbol('species'); // `ArraySpeciesCreate` abstract operation - // https://tc39.github.io/ecma262/#sec-arrayspeciescreate - - module.exports = function (originalArray, length) { - var C; - - if (isArray(originalArray)) { - C = originalArray.constructor; // cross-realm fallback - - if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;else if (isObject(C)) { - C = C[SPECIES]; - if (C === null) C = undefined; - } - } - - return new (C === undefined ? Array : C)(length === 0 ? 0 : length); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/call-with-safe-iteration-closing.js": - /*!****************************************************************************!*\ - !*** ./node_modules/core-js/internals/call-with-safe-iteration-closing.js ***! - \****************************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsCallWithSafeIterationClosingJs(module, exports, __webpack_require__) { - var anObject = __webpack_require__( - /*! ../internals/an-object */ - "./node_modules/core-js/internals/an-object.js"); // call something on iterator step with safe closing on error - - - module.exports = function (iterator, fn, value, ENTRIES) { - try { - return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); // 7.4.6 IteratorClose(iterator, completion) - } catch (error) { - var returnMethod = iterator['return']; - if (returnMethod !== undefined) anObject(returnMethod.call(iterator)); - throw error; - } - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/check-correctness-of-iteration.js": - /*!**************************************************************************!*\ - !*** ./node_modules/core-js/internals/check-correctness-of-iteration.js ***! - \**************************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsCheckCorrectnessOfIterationJs(module, exports, __webpack_require__) { - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ - "./node_modules/core-js/internals/well-known-symbol.js"); - - var ITERATOR = wellKnownSymbol('iterator'); - var SAFE_CLOSING = false; - - try { - var called = 0; - var iteratorWithReturn = { - next: function next() { - return { - done: !!called++ - }; - }, - 'return': function _return() { - SAFE_CLOSING = true; - } - }; - - iteratorWithReturn[ITERATOR] = function () { - return this; - }; // eslint-disable-next-line no-throw-literal - - - Array.from(iteratorWithReturn, function () { - throw 2; - }); - } catch (error) { - /* empty */ - } - - module.exports = function (exec, SKIP_CLOSING) { - if (!SKIP_CLOSING && !SAFE_CLOSING) return false; - var ITERATION_SUPPORT = false; - - try { - var object = {}; - - object[ITERATOR] = function () { - return { - next: function next() { - return { - done: ITERATION_SUPPORT = true - }; - } - }; - }; - - exec(object); - } catch (error) { - /* empty */ - } - - return ITERATION_SUPPORT; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/classof-raw.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/internals/classof-raw.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsClassofRawJs(module, exports) { - var toString = {}.toString; - - module.exports = function (it) { - return toString.call(it).slice(8, -1); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/classof.js": - /*!***************************************************!*\ - !*** ./node_modules/core-js/internals/classof.js ***! - \***************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsClassofJs(module, exports, __webpack_require__) { - var TO_STRING_TAG_SUPPORT = __webpack_require__( - /*! ../internals/to-string-tag-support */ - "./node_modules/core-js/internals/to-string-tag-support.js"); - - var classofRaw = __webpack_require__( - /*! ../internals/classof-raw */ - "./node_modules/core-js/internals/classof-raw.js"); - - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ - "./node_modules/core-js/internals/well-known-symbol.js"); - - var TO_STRING_TAG = wellKnownSymbol('toStringTag'); // ES3 wrong here - - var CORRECT_ARGUMENTS = classofRaw(function () { - return arguments; - }()) == 'Arguments'; // fallback for IE11 Script Access Denied error - - var tryGet = function tryGet(it, key) { - try { - return it[key]; - } catch (error) { - /* empty */ - } - }; // getting tag from ES6+ `Object.prototype.toString` - - - module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { - var O, tag, result; - return it === undefined ? 'Undefined' : it === null ? 'Null' // @@toStringTag case - : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag // builtinTag case - : CORRECT_ARGUMENTS ? classofRaw(O) // ES3 arguments fallback - : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result; - }; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/collection-strong.js": - /*!*************************************************************!*\ - !*** ./node_modules/core-js/internals/collection-strong.js ***! - \*************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsCollectionStrongJs(module, exports, __webpack_require__) { - "use strict"; - - var defineProperty = __webpack_require__( - /*! ../internals/object-define-property */ - "./node_modules/core-js/internals/object-define-property.js").f; - - var create = __webpack_require__( - /*! ../internals/object-create */ - "./node_modules/core-js/internals/object-create.js"); - - var redefineAll = __webpack_require__( - /*! ../internals/redefine-all */ - "./node_modules/core-js/internals/redefine-all.js"); - - var bind = __webpack_require__( - /*! ../internals/function-bind-context */ - "./node_modules/core-js/internals/function-bind-context.js"); - - var anInstance = __webpack_require__( - /*! ../internals/an-instance */ - "./node_modules/core-js/internals/an-instance.js"); - - var iterate = __webpack_require__( - /*! ../internals/iterate */ - "./node_modules/core-js/internals/iterate.js"); - - var defineIterator = __webpack_require__( - /*! ../internals/define-iterator */ - "./node_modules/core-js/internals/define-iterator.js"); - - var setSpecies = __webpack_require__( - /*! ../internals/set-species */ - "./node_modules/core-js/internals/set-species.js"); - - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ - "./node_modules/core-js/internals/descriptors.js"); - - var fastKey = __webpack_require__( - /*! ../internals/internal-metadata */ - "./node_modules/core-js/internals/internal-metadata.js").fastKey; - - var InternalStateModule = __webpack_require__( - /*! ../internals/internal-state */ - "./node_modules/core-js/internals/internal-state.js"); - - var setInternalState = InternalStateModule.set; - var internalStateGetterFor = InternalStateModule.getterFor; - module.exports = { - getConstructor: function getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { - var C = wrapper(function (that, iterable) { - anInstance(that, C, CONSTRUCTOR_NAME); - setInternalState(that, { - type: CONSTRUCTOR_NAME, - index: create(null), - first: undefined, - last: undefined, - size: 0 - }); - if (!DESCRIPTORS) that.size = 0; - if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP); - }); - var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); - - var define = function define(that, key, value) { - var state = getInternalState(that); - var entry = getEntry(that, key); - var previous, index; // change existing entry - - if (entry) { - entry.value = value; // create new entry - } else { - state.last = entry = { - index: index = fastKey(key, true), - key: key, - value: value, - previous: previous = state.last, - next: undefined, - removed: false - }; - if (!state.first) state.first = entry; - if (previous) previous.next = entry; - if (DESCRIPTORS) state.size++;else that.size++; // add to index - - if (index !== 'F') state.index[index] = entry; - } - - return that; - }; - - var getEntry = function getEntry(that, key) { - var state = getInternalState(that); // fast case - - var index = fastKey(key); - var entry; - if (index !== 'F') return state.index[index]; // frozen object case - - for (entry = state.first; entry; entry = entry.next) { - if (entry.key == key) return entry; - } - }; - - redefineAll(C.prototype, { - // 23.1.3.1 Map.prototype.clear() - // 23.2.3.2 Set.prototype.clear() - clear: function clear() { - var that = this; - var state = getInternalState(that); - var data = state.index; - var entry = state.first; - - while (entry) { - entry.removed = true; - if (entry.previous) entry.previous = entry.previous.next = undefined; - delete data[entry.index]; - entry = entry.next; - } - - state.first = state.last = undefined; - if (DESCRIPTORS) state.size = 0;else that.size = 0; - }, - // 23.1.3.3 Map.prototype.delete(key) - // 23.2.3.4 Set.prototype.delete(value) - 'delete': function _delete(key) { - var that = this; - var state = getInternalState(that); - var entry = getEntry(that, key); - - if (entry) { - var next = entry.next; - var prev = entry.previous; - delete state.index[entry.index]; - entry.removed = true; - if (prev) prev.next = next; - if (next) next.previous = prev; - if (state.first == entry) state.first = next; - if (state.last == entry) state.last = prev; - if (DESCRIPTORS) state.size--;else that.size--; - } - - return !!entry; - }, - // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined) - // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined) - forEach: function forEach(callbackfn - /* , that = undefined */ - ) { - var state = getInternalState(this); - var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); - var entry; - - while (entry = entry ? entry.next : state.first) { - boundFunction(entry.value, entry.key, this); // revert to the last existing entry - - while (entry && entry.removed) { - entry = entry.previous; - } - } - }, - // 23.1.3.7 Map.prototype.has(key) - // 23.2.3.7 Set.prototype.has(value) - has: function has(key) { - return !!getEntry(this, key); - } - }); - redefineAll(C.prototype, IS_MAP ? { - // 23.1.3.6 Map.prototype.get(key) - get: function get(key) { - var entry = getEntry(this, key); - return entry && entry.value; - }, - // 23.1.3.9 Map.prototype.set(key, value) - set: function set(key, value) { - return define(this, key === 0 ? 0 : key, value); - } - } : { - // 23.2.3.1 Set.prototype.add(value) - add: function add(value) { - return define(this, value = value === 0 ? 0 : value, value); - } - }); - if (DESCRIPTORS) defineProperty(C.prototype, 'size', { - get: function get() { - return getInternalState(this).size; - } - }); - return C; - }, - setStrong: function setStrong(C, CONSTRUCTOR_NAME, IS_MAP) { - var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator'; - var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME); - var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME); // add .keys, .values, .entries, [@@iterator] - // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11 - - defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) { - setInternalState(this, { - type: ITERATOR_NAME, - target: iterated, - state: getInternalCollectionState(iterated), - kind: kind, - last: undefined - }); - }, function () { - var state = getInternalIteratorState(this); - var kind = state.kind; - var entry = state.last; // revert to the last existing entry - - while (entry && entry.removed) { - entry = entry.previous; - } // get next entry - - - if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) { - // or finish the iteration - state.target = undefined; - return { - value: undefined, - done: true - }; - } // return step by kind - - - if (kind == 'keys') return { - value: entry.key, - done: false - }; - if (kind == 'values') return { - value: entry.value, - done: false - }; - return { - value: [entry.key, entry.value], - done: false - }; - }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); // add [@@species], 23.1.2.2, 23.2.2.2 - - setSpecies(CONSTRUCTOR_NAME); - } - }; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/collection-weak.js": - /*!***********************************************************!*\ - !*** ./node_modules/core-js/internals/collection-weak.js ***! - \***********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsCollectionWeakJs(module, exports, __webpack_require__) { - "use strict"; - - var redefineAll = __webpack_require__( - /*! ../internals/redefine-all */ - "./node_modules/core-js/internals/redefine-all.js"); - - var getWeakData = __webpack_require__( - /*! ../internals/internal-metadata */ - "./node_modules/core-js/internals/internal-metadata.js").getWeakData; - - var anObject = __webpack_require__( - /*! ../internals/an-object */ - "./node_modules/core-js/internals/an-object.js"); - - var isObject = __webpack_require__( - /*! ../internals/is-object */ - "./node_modules/core-js/internals/is-object.js"); - - var anInstance = __webpack_require__( - /*! ../internals/an-instance */ - "./node_modules/core-js/internals/an-instance.js"); - - var iterate = __webpack_require__( - /*! ../internals/iterate */ - "./node_modules/core-js/internals/iterate.js"); - - var ArrayIterationModule = __webpack_require__( - /*! ../internals/array-iteration */ - "./node_modules/core-js/internals/array-iteration.js"); - - var $has = __webpack_require__( - /*! ../internals/has */ - "./node_modules/core-js/internals/has.js"); - - var InternalStateModule = __webpack_require__( - /*! ../internals/internal-state */ - "./node_modules/core-js/internals/internal-state.js"); - - var setInternalState = InternalStateModule.set; - var internalStateGetterFor = InternalStateModule.getterFor; - var find = ArrayIterationModule.find; - var findIndex = ArrayIterationModule.findIndex; - var id = 0; // fallback for uncaught frozen keys - - var uncaughtFrozenStore = function uncaughtFrozenStore(store) { - return store.frozen || (store.frozen = new UncaughtFrozenStore()); - }; - - var UncaughtFrozenStore = function UncaughtFrozenStore() { - this.entries = []; - }; - - var findUncaughtFrozen = function findUncaughtFrozen(store, key) { - return find(store.entries, function (it) { - return it[0] === key; - }); - }; - - UncaughtFrozenStore.prototype = { - get: function get(key) { - var entry = findUncaughtFrozen(this, key); - if (entry) return entry[1]; - }, - has: function has(key) { - return !!findUncaughtFrozen(this, key); - }, - set: function set(key, value) { - var entry = findUncaughtFrozen(this, key); - if (entry) entry[1] = value;else this.entries.push([key, value]); - }, - 'delete': function _delete(key) { - var index = findIndex(this.entries, function (it) { - return it[0] === key; - }); - if (~index) this.entries.splice(index, 1); - return !!~index; - } - }; - module.exports = { - getConstructor: function getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { - var C = wrapper(function (that, iterable) { - anInstance(that, C, CONSTRUCTOR_NAME); - setInternalState(that, { - type: CONSTRUCTOR_NAME, - id: id++, - frozen: undefined - }); - if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP); - }); - var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); - - var define = function define(that, key, value) { - var state = getInternalState(that); - var data = getWeakData(anObject(key), true); - if (data === true) uncaughtFrozenStore(state).set(key, value);else data[state.id] = value; - return that; - }; - - redefineAll(C.prototype, { - // 23.3.3.2 WeakMap.prototype.delete(key) - // 23.4.3.3 WeakSet.prototype.delete(value) - 'delete': function _delete(key) { - var state = getInternalState(this); - if (!isObject(key)) return false; - var data = getWeakData(key); - if (data === true) return uncaughtFrozenStore(state)['delete'](key); - return data && $has(data, state.id) && delete data[state.id]; - }, - // 23.3.3.4 WeakMap.prototype.has(key) - // 23.4.3.4 WeakSet.prototype.has(value) - has: function has(key) { - var state = getInternalState(this); - if (!isObject(key)) return false; - var data = getWeakData(key); - if (data === true) return uncaughtFrozenStore(state).has(key); - return data && $has(data, state.id); - } - }); - redefineAll(C.prototype, IS_MAP ? { - // 23.3.3.3 WeakMap.prototype.get(key) - get: function get(key) { - var state = getInternalState(this); - - if (isObject(key)) { - var data = getWeakData(key); - if (data === true) return uncaughtFrozenStore(state).get(key); - return data ? data[state.id] : undefined; - } - }, - // 23.3.3.5 WeakMap.prototype.set(key, value) - set: function set(key, value) { - return define(this, key, value); - } - } : { - // 23.4.3.1 WeakSet.prototype.add(value) - add: function add(value) { - return define(this, value, true); - } - }); - return C; - } - }; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/collection.js": - /*!******************************************************!*\ - !*** ./node_modules/core-js/internals/collection.js ***! - \******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsCollectionJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - var isForced = __webpack_require__( - /*! ../internals/is-forced */ - "./node_modules/core-js/internals/is-forced.js"); - - var redefine = __webpack_require__( - /*! ../internals/redefine */ - "./node_modules/core-js/internals/redefine.js"); - - var InternalMetadataModule = __webpack_require__( - /*! ../internals/internal-metadata */ - "./node_modules/core-js/internals/internal-metadata.js"); - - var iterate = __webpack_require__( - /*! ../internals/iterate */ - "./node_modules/core-js/internals/iterate.js"); - - var anInstance = __webpack_require__( - /*! ../internals/an-instance */ - "./node_modules/core-js/internals/an-instance.js"); - - var isObject = __webpack_require__( - /*! ../internals/is-object */ - "./node_modules/core-js/internals/is-object.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var checkCorrectnessOfIteration = __webpack_require__( - /*! ../internals/check-correctness-of-iteration */ - "./node_modules/core-js/internals/check-correctness-of-iteration.js"); - - var setToStringTag = __webpack_require__( - /*! ../internals/set-to-string-tag */ - "./node_modules/core-js/internals/set-to-string-tag.js"); - - var inheritIfRequired = __webpack_require__( - /*! ../internals/inherit-if-required */ - "./node_modules/core-js/internals/inherit-if-required.js"); - - module.exports = function (CONSTRUCTOR_NAME, wrapper, common) { - var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1; - var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1; - var ADDER = IS_MAP ? 'set' : 'add'; - var NativeConstructor = global[CONSTRUCTOR_NAME]; - var NativePrototype = NativeConstructor && NativeConstructor.prototype; - var Constructor = NativeConstructor; - var exported = {}; - - var fixMethod = function fixMethod(KEY) { - var nativeMethod = NativePrototype[KEY]; - redefine(NativePrototype, KEY, KEY == 'add' ? function add(value) { - nativeMethod.call(this, value === 0 ? 0 : value); - return this; - } : KEY == 'delete' ? function (key) { - return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key); - } : KEY == 'get' ? function get(key) { - return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key); - } : KEY == 'has' ? function has(key) { - return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key); - } : function set(key, value) { - nativeMethod.call(this, key === 0 ? 0 : key, value); - return this; - }); - }; // eslint-disable-next-line max-len - - - if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () { - new NativeConstructor().entries().next(); - })))) { - // create collection constructor - Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER); - InternalMetadataModule.REQUIRED = true; - } else if (isForced(CONSTRUCTOR_NAME, true)) { - var instance = new Constructor(); // early implementations not supports chaining - - var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false - - var THROWS_ON_PRIMITIVES = fails(function () { - instance.has(1); - }); // most early implementations doesn't supports iterables, most modern - not close it correctly - // eslint-disable-next-line no-new - - var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { - new NativeConstructor(iterable); - }); // for early implementations -0 and +0 not the same - - var BUGGY_ZERO = !IS_WEAK && fails(function () { - // V8 ~ Chromium 42- fails only with 5+ elements - var $instance = new NativeConstructor(); - var index = 5; - - while (index--) { - $instance[ADDER](index, index); - } - - return !$instance.has(-0); - }); - - if (!ACCEPT_ITERABLES) { - Constructor = wrapper(function (dummy, iterable) { - anInstance(dummy, Constructor, CONSTRUCTOR_NAME); - var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor); - if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP); - return that; - }); - Constructor.prototype = NativePrototype; - NativePrototype.constructor = Constructor; - } - - if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { - fixMethod('delete'); - fixMethod('has'); - IS_MAP && fixMethod('get'); - } - - if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); // weak collections should not contains .clear method - - if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear; - } - - exported[CONSTRUCTOR_NAME] = Constructor; - $({ - global: true, - forced: Constructor != NativeConstructor - }, exported); - setToStringTag(Constructor, CONSTRUCTOR_NAME); - if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP); - return Constructor; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/copy-constructor-properties.js": - /*!***********************************************************************!*\ - !*** ./node_modules/core-js/internals/copy-constructor-properties.js ***! - \***********************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsCopyConstructorPropertiesJs(module, exports, __webpack_require__) { - var has = __webpack_require__( - /*! ../internals/has */ - "./node_modules/core-js/internals/has.js"); - - var ownKeys = __webpack_require__( - /*! ../internals/own-keys */ - "./node_modules/core-js/internals/own-keys.js"); - - var getOwnPropertyDescriptorModule = __webpack_require__( - /*! ../internals/object-get-own-property-descriptor */ - "./node_modules/core-js/internals/object-get-own-property-descriptor.js"); - - var definePropertyModule = __webpack_require__( - /*! ../internals/object-define-property */ - "./node_modules/core-js/internals/object-define-property.js"); - - module.exports = function (target, source) { - var keys = ownKeys(source); - var defineProperty = definePropertyModule.f; - var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; - - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key)); - } - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/correct-is-regexp-logic.js": - /*!*******************************************************************!*\ - !*** ./node_modules/core-js/internals/correct-is-regexp-logic.js ***! - \*******************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsCorrectIsRegexpLogicJs(module, exports, __webpack_require__) { - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ - "./node_modules/core-js/internals/well-known-symbol.js"); - - var MATCH = wellKnownSymbol('match'); - - module.exports = function (METHOD_NAME) { - var regexp = /./; - - try { - '/./'[METHOD_NAME](regexp); - } catch (e) { - try { - regexp[MATCH] = false; - return '/./'[METHOD_NAME](regexp); - } catch (f) { - /* empty */ - } - } - - return false; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/correct-prototype-getter.js": - /*!********************************************************************!*\ - !*** ./node_modules/core-js/internals/correct-prototype-getter.js ***! - \********************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsCorrectPrototypeGetterJs(module, exports, __webpack_require__) { - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - module.exports = !fails(function () { - function F() { - /* empty */ - } - - F.prototype.constructor = null; - return Object.getPrototypeOf(new F()) !== F.prototype; - }); - /***/ - }, - - /***/ - "./node_modules/core-js/internals/create-html.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/internals/create-html.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsCreateHtmlJs(module, exports, __webpack_require__) { - var requireObjectCoercible = __webpack_require__( - /*! ../internals/require-object-coercible */ - "./node_modules/core-js/internals/require-object-coercible.js"); - - var quot = /"/g; // B.2.3.2.1 CreateHTML(string, tag, attribute, value) - // https://tc39.github.io/ecma262/#sec-createhtml - - module.exports = function (string, tag, attribute, value) { - var S = String(requireObjectCoercible(string)); - var p1 = '<' + tag; - if (attribute !== '') p1 += ' ' + attribute + '="' + String(value).replace(quot, '"') + '"'; - return p1 + '>' + S + ''; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/create-iterator-constructor.js": - /*!***********************************************************************!*\ - !*** ./node_modules/core-js/internals/create-iterator-constructor.js ***! - \***********************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsCreateIteratorConstructorJs(module, exports, __webpack_require__) { - "use strict"; - - var IteratorPrototype = __webpack_require__( - /*! ../internals/iterators-core */ - "./node_modules/core-js/internals/iterators-core.js").IteratorPrototype; - - var create = __webpack_require__( - /*! ../internals/object-create */ - "./node_modules/core-js/internals/object-create.js"); - - var createPropertyDescriptor = __webpack_require__( - /*! ../internals/create-property-descriptor */ - "./node_modules/core-js/internals/create-property-descriptor.js"); - - var setToStringTag = __webpack_require__( - /*! ../internals/set-to-string-tag */ - "./node_modules/core-js/internals/set-to-string-tag.js"); - - var Iterators = __webpack_require__( - /*! ../internals/iterators */ - "./node_modules/core-js/internals/iterators.js"); - - var returnThis = function returnThis() { - return this; - }; - - module.exports = function (IteratorConstructor, NAME, next) { - var TO_STRING_TAG = NAME + ' Iterator'; - IteratorConstructor.prototype = create(IteratorPrototype, { - next: createPropertyDescriptor(1, next) - }); - setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true); - Iterators[TO_STRING_TAG] = returnThis; - return IteratorConstructor; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/create-non-enumerable-property.js": - /*!**************************************************************************!*\ - !*** ./node_modules/core-js/internals/create-non-enumerable-property.js ***! - \**************************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsCreateNonEnumerablePropertyJs(module, exports, __webpack_require__) { - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ - "./node_modules/core-js/internals/descriptors.js"); - - var definePropertyModule = __webpack_require__( - /*! ../internals/object-define-property */ - "./node_modules/core-js/internals/object-define-property.js"); - - var createPropertyDescriptor = __webpack_require__( - /*! ../internals/create-property-descriptor */ - "./node_modules/core-js/internals/create-property-descriptor.js"); - - module.exports = DESCRIPTORS ? function (object, key, value) { - return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); - } : function (object, key, value) { - object[key] = value; - return object; - }; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/create-property-descriptor.js": - /*!**********************************************************************!*\ - !*** ./node_modules/core-js/internals/create-property-descriptor.js ***! - \**********************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsCreatePropertyDescriptorJs(module, exports) { - module.exports = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/create-property.js": - /*!***********************************************************!*\ - !*** ./node_modules/core-js/internals/create-property.js ***! - \***********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsCreatePropertyJs(module, exports, __webpack_require__) { - "use strict"; - - var toPrimitive = __webpack_require__( - /*! ../internals/to-primitive */ - "./node_modules/core-js/internals/to-primitive.js"); - - var definePropertyModule = __webpack_require__( - /*! ../internals/object-define-property */ - "./node_modules/core-js/internals/object-define-property.js"); - - var createPropertyDescriptor = __webpack_require__( - /*! ../internals/create-property-descriptor */ - "./node_modules/core-js/internals/create-property-descriptor.js"); - - module.exports = function (object, key, value) { - var propertyKey = toPrimitive(key); - if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));else object[propertyKey] = value; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/date-to-iso-string.js": - /*!**************************************************************!*\ - !*** ./node_modules/core-js/internals/date-to-iso-string.js ***! - \**************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsDateToIsoStringJs(module, exports, __webpack_require__) { - "use strict"; - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var padStart = __webpack_require__( - /*! ../internals/string-pad */ - "./node_modules/core-js/internals/string-pad.js").start; - - var abs = Math.abs; - var DatePrototype = Date.prototype; - var getTime = DatePrototype.getTime; - var nativeDateToISOString = DatePrototype.toISOString; // `Date.prototype.toISOString` method implementation - // https://tc39.github.io/ecma262/#sec-date.prototype.toisostring - // PhantomJS / old WebKit fails here: - - module.exports = fails(function () { - return nativeDateToISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z'; - }) || !fails(function () { - nativeDateToISOString.call(new Date(NaN)); - }) ? function toISOString() { - if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value'); - var date = this; - var year = date.getUTCFullYear(); - var milliseconds = date.getUTCMilliseconds(); - var sign = year < 0 ? '-' : year > 9999 ? '+' : ''; - return sign + padStart(abs(year), sign ? 6 : 4, 0) + '-' + padStart(date.getUTCMonth() + 1, 2, 0) + '-' + padStart(date.getUTCDate(), 2, 0) + 'T' + padStart(date.getUTCHours(), 2, 0) + ':' + padStart(date.getUTCMinutes(), 2, 0) + ':' + padStart(date.getUTCSeconds(), 2, 0) + '.' + padStart(milliseconds, 3, 0) + 'Z'; - } : nativeDateToISOString; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/date-to-primitive.js": - /*!*************************************************************!*\ - !*** ./node_modules/core-js/internals/date-to-primitive.js ***! - \*************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsDateToPrimitiveJs(module, exports, __webpack_require__) { - "use strict"; - - var anObject = __webpack_require__( - /*! ../internals/an-object */ - "./node_modules/core-js/internals/an-object.js"); - - var toPrimitive = __webpack_require__( - /*! ../internals/to-primitive */ - "./node_modules/core-js/internals/to-primitive.js"); - - module.exports = function (hint) { - if (hint !== 'string' && hint !== 'number' && hint !== 'default') { - throw TypeError('Incorrect hint'); - } - - return toPrimitive(anObject(this), hint !== 'number'); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/define-iterator.js": - /*!***********************************************************!*\ - !*** ./node_modules/core-js/internals/define-iterator.js ***! - \***********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsDefineIteratorJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var createIteratorConstructor = __webpack_require__( - /*! ../internals/create-iterator-constructor */ - "./node_modules/core-js/internals/create-iterator-constructor.js"); - - var getPrototypeOf = __webpack_require__( - /*! ../internals/object-get-prototype-of */ - "./node_modules/core-js/internals/object-get-prototype-of.js"); - - var setPrototypeOf = __webpack_require__( - /*! ../internals/object-set-prototype-of */ - "./node_modules/core-js/internals/object-set-prototype-of.js"); - - var setToStringTag = __webpack_require__( - /*! ../internals/set-to-string-tag */ - "./node_modules/core-js/internals/set-to-string-tag.js"); - - var createNonEnumerableProperty = __webpack_require__( - /*! ../internals/create-non-enumerable-property */ - "./node_modules/core-js/internals/create-non-enumerable-property.js"); - - var redefine = __webpack_require__( - /*! ../internals/redefine */ - "./node_modules/core-js/internals/redefine.js"); - - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ - "./node_modules/core-js/internals/well-known-symbol.js"); - - var IS_PURE = __webpack_require__( - /*! ../internals/is-pure */ - "./node_modules/core-js/internals/is-pure.js"); - - var Iterators = __webpack_require__( - /*! ../internals/iterators */ - "./node_modules/core-js/internals/iterators.js"); - - var IteratorsCore = __webpack_require__( - /*! ../internals/iterators-core */ - "./node_modules/core-js/internals/iterators-core.js"); - - var IteratorPrototype = IteratorsCore.IteratorPrototype; - var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; - var ITERATOR = wellKnownSymbol('iterator'); - var KEYS = 'keys'; - var VALUES = 'values'; - var ENTRIES = 'entries'; - - var returnThis = function returnThis() { - return this; - }; - - module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { - createIteratorConstructor(IteratorConstructor, NAME, next); - - var getIterationMethod = function getIterationMethod(KIND) { - if (KIND === DEFAULT && defaultIterator) return defaultIterator; - if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND]; - - switch (KIND) { - case KEYS: - return function keys() { - return new IteratorConstructor(this, KIND); - }; - - case VALUES: - return function values() { - return new IteratorConstructor(this, KIND); - }; - - case ENTRIES: - return function entries() { - return new IteratorConstructor(this, KIND); - }; - } - - return function () { - return new IteratorConstructor(this); - }; - }; - - var TO_STRING_TAG = NAME + ' Iterator'; - var INCORRECT_VALUES_NAME = false; - var IterablePrototype = Iterable.prototype; - var nativeIterator = IterablePrototype[ITERATOR] || IterablePrototype['@@iterator'] || DEFAULT && IterablePrototype[DEFAULT]; - var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); - var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; - var CurrentIteratorPrototype, methods, KEY; // fix native - - if (anyNativeIterator) { - CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); - - if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { - if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { - if (setPrototypeOf) { - setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); - } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') { - createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis); - } - } // Set @@toStringTag to native iterators - - - setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true); - if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis; - } - } // fix Array#{values, @@iterator}.name in V8 / FF - - - if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { - INCORRECT_VALUES_NAME = true; - - defaultIterator = function values() { - return nativeIterator.call(this); - }; - } // define iterator - - - if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) { - createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator); - } - - Iterators[NAME] = defaultIterator; // export additional methods - - if (DEFAULT) { - methods = { - values: getIterationMethod(VALUES), - keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), - entries: getIterationMethod(ENTRIES) - }; - if (FORCED) for (KEY in methods) { - if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { - redefine(IterablePrototype, KEY, methods[KEY]); - } - } else $({ - target: NAME, - proto: true, - forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME - }, methods); - } - - return methods; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/define-well-known-symbol.js": - /*!********************************************************************!*\ - !*** ./node_modules/core-js/internals/define-well-known-symbol.js ***! - \********************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsDefineWellKnownSymbolJs(module, exports, __webpack_require__) { - var path = __webpack_require__( - /*! ../internals/path */ - "./node_modules/core-js/internals/path.js"); - - var has = __webpack_require__( - /*! ../internals/has */ - "./node_modules/core-js/internals/has.js"); - - var wrappedWellKnownSymbolModule = __webpack_require__( - /*! ../internals/well-known-symbol-wrapped */ - "./node_modules/core-js/internals/well-known-symbol-wrapped.js"); - - var defineProperty = __webpack_require__( - /*! ../internals/object-define-property */ - "./node_modules/core-js/internals/object-define-property.js").f; - - module.exports = function (NAME) { - var Symbol = path.Symbol || (path.Symbol = {}); - if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, { - value: wrappedWellKnownSymbolModule.f(NAME) - }); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/descriptors.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/internals/descriptors.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsDescriptorsJs(module, exports, __webpack_require__) { - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); // Thank's IE8 for his funny defineProperty - - - module.exports = !fails(function () { - return Object.defineProperty({}, 1, { - get: function get() { - return 7; - } - })[1] != 7; - }); - /***/ - }, - - /***/ - "./node_modules/core-js/internals/document-create-element.js": - /*!*******************************************************************!*\ - !*** ./node_modules/core-js/internals/document-create-element.js ***! - \*******************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsDocumentCreateElementJs(module, exports, __webpack_require__) { - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - var isObject = __webpack_require__( - /*! ../internals/is-object */ - "./node_modules/core-js/internals/is-object.js"); - - var document = global.document; // typeof document.createElement is 'object' in old IE - - var EXISTS = isObject(document) && isObject(document.createElement); - - module.exports = function (it) { - return EXISTS ? document.createElement(it) : {}; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/dom-iterables.js": - /*!*********************************************************!*\ - !*** ./node_modules/core-js/internals/dom-iterables.js ***! - \*********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsDomIterablesJs(module, exports) { - // iterable DOM collections - // flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods - module.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 - }; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/engine-is-ios.js": - /*!*********************************************************!*\ - !*** ./node_modules/core-js/internals/engine-is-ios.js ***! - \*********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsEngineIsIosJs(module, exports, __webpack_require__) { - var userAgent = __webpack_require__( - /*! ../internals/engine-user-agent */ - "./node_modules/core-js/internals/engine-user-agent.js"); - - module.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent); - /***/ - }, - - /***/ - "./node_modules/core-js/internals/engine-user-agent.js": - /*!*************************************************************!*\ - !*** ./node_modules/core-js/internals/engine-user-agent.js ***! - \*************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsEngineUserAgentJs(module, exports, __webpack_require__) { - var getBuiltIn = __webpack_require__( - /*! ../internals/get-built-in */ - "./node_modules/core-js/internals/get-built-in.js"); - - module.exports = getBuiltIn('navigator', 'userAgent') || ''; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/engine-v8-version.js": - /*!*************************************************************!*\ - !*** ./node_modules/core-js/internals/engine-v8-version.js ***! - \*************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsEngineV8VersionJs(module, exports, __webpack_require__) { - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - var userAgent = __webpack_require__( - /*! ../internals/engine-user-agent */ - "./node_modules/core-js/internals/engine-user-agent.js"); - - var process = global.process; - var versions = process && process.versions; - var v8 = versions && versions.v8; - var match, version; - - if (v8) { - match = v8.split('.'); - version = match[0] + match[1]; - } else if (userAgent) { - match = userAgent.match(/Edge\/(\d+)/); - - if (!match || match[1] >= 74) { - match = userAgent.match(/Chrome\/(\d+)/); - if (match) version = match[1]; - } - } - - module.exports = version && +version; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/enum-bug-keys.js": - /*!*********************************************************!*\ - !*** ./node_modules/core-js/internals/enum-bug-keys.js ***! - \*********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsEnumBugKeysJs(module, exports) { - // IE8- don't enum bug keys - module.exports = ['constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf']; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/export.js": - /*!**************************************************!*\ - !*** ./node_modules/core-js/internals/export.js ***! - \**************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsExportJs(module, exports, __webpack_require__) { - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - var getOwnPropertyDescriptor = __webpack_require__( - /*! ../internals/object-get-own-property-descriptor */ - "./node_modules/core-js/internals/object-get-own-property-descriptor.js").f; - - var createNonEnumerableProperty = __webpack_require__( - /*! ../internals/create-non-enumerable-property */ - "./node_modules/core-js/internals/create-non-enumerable-property.js"); - - var redefine = __webpack_require__( - /*! ../internals/redefine */ - "./node_modules/core-js/internals/redefine.js"); - - var setGlobal = __webpack_require__( - /*! ../internals/set-global */ - "./node_modules/core-js/internals/set-global.js"); - - var copyConstructorProperties = __webpack_require__( - /*! ../internals/copy-constructor-properties */ - "./node_modules/core-js/internals/copy-constructor-properties.js"); - - var isForced = __webpack_require__( - /*! ../internals/is-forced */ - "./node_modules/core-js/internals/is-forced.js"); - /* - options.target - name of the target object - options.global - target is the global object - options.stat - export as static methods of target - options.proto - export as prototype methods of target - options.real - real prototype method for the `pure` version - options.forced - export even if the native feature is available - options.bind - bind methods to the target, required for the `pure` version - options.wrap - wrap constructors to preventing global pollution, required for the `pure` version - options.unsafe - use the simple assignment of property instead of delete + defineProperty - options.sham - add a flag to not completely full polyfills - options.enumerable - export as enumerable property - options.noTargetGet - prevent calling a getter on target - */ - - - module.exports = function (options, source) { - var TARGET = options.target; - var GLOBAL = options.global; - var STATIC = options.stat; - var FORCED, target, key, targetProperty, sourceProperty, descriptor; - - if (GLOBAL) { - target = global; - } else if (STATIC) { - target = global[TARGET] || setGlobal(TARGET, {}); - } else { - target = (global[TARGET] || {}).prototype; - } - - if (target) for (key in source) { - sourceProperty = source[key]; - - if (options.noTargetGet) { - descriptor = getOwnPropertyDescriptor(target, key); - targetProperty = descriptor && descriptor.value; - } else targetProperty = target[key]; - - FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); // contained in target - - if (!FORCED && targetProperty !== undefined) { - if (typeof sourceProperty === typeof targetProperty) continue; - copyConstructorProperties(sourceProperty, targetProperty); - } // add a flag to not completely full polyfills - - - if (options.sham || targetProperty && targetProperty.sham) { - createNonEnumerableProperty(sourceProperty, 'sham', true); - } // extend global - - - redefine(target, key, sourceProperty, options); - } - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/fails.js": - /*!*************************************************!*\ - !*** ./node_modules/core-js/internals/fails.js ***! - \*************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsFailsJs(module, exports) { - module.exports = function (exec) { - try { - return !!exec(); - } catch (error) { - return true; - } - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js": - /*!******************************************************************************!*\ - !*** ./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js ***! - \******************************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsFixRegexpWellKnownSymbolLogicJs(module, exports, __webpack_require__) { - "use strict"; // TODO: Remove from `core-js@4` since it's moved to entry points - - __webpack_require__( - /*! ../modules/es.regexp.exec */ - "./node_modules/core-js/modules/es.regexp.exec.js"); - - var redefine = __webpack_require__( - /*! ../internals/redefine */ - "./node_modules/core-js/internals/redefine.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ - "./node_modules/core-js/internals/well-known-symbol.js"); - - var regexpExec = __webpack_require__( - /*! ../internals/regexp-exec */ - "./node_modules/core-js/internals/regexp-exec.js"); - - var createNonEnumerableProperty = __webpack_require__( - /*! ../internals/create-non-enumerable-property */ - "./node_modules/core-js/internals/create-non-enumerable-property.js"); - - var SPECIES = wellKnownSymbol('species'); - var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { - // #replace needs built-in support for named groups. - // #match works fine because it just return the exec results, even if it has - // a "grops" property. - var re = /./; - - re.exec = function () { - var result = []; - result.groups = { - a: '7' - }; - return result; - }; - - return ''.replace(re, '$') !== '7'; - }); // IE <= 11 replaces $0 with the whole match, as if it was $& - // https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0 - - var REPLACE_KEEPS_$0 = function () { - return 'a'.replace(/./, '$0') === '$0'; - }(); - - var REPLACE = wellKnownSymbol('replace'); // Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string - - var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = function () { - if (/./[REPLACE]) { - return /./[REPLACE]('a', '$0') === ''; - } - - return false; - }(); // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec - // Weex JS has frozen built-in prototypes, so use try / catch wrapper - - - var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () { - var re = /(?:)/; - var originalExec = re.exec; - - re.exec = function () { - return originalExec.apply(this, arguments); - }; - - var result = 'ab'.split(re); - return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b'; - }); - - module.exports = function (KEY, length, exec, sham) { - var SYMBOL = wellKnownSymbol(KEY); - var DELEGATES_TO_SYMBOL = !fails(function () { - // String methods call symbol-named RegEp methods - var O = {}; - - O[SYMBOL] = function () { - return 7; - }; - - return ''[KEY](O) != 7; - }); - var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () { - // Symbol-named RegExp methods call .exec - var execCalled = false; - var re = /a/; - - if (KEY === 'split') { - // We can't use real regex here since it causes deoptimization - // and serious performance degradation in V8 - // https://github.com/zloirock/core-js/issues/306 - re = {}; // RegExp[@@split] doesn't call the regex's exec method, but first creates - // a new one. We need to return the patched regex when creating the new one. - - re.constructor = {}; - - re.constructor[SPECIES] = function () { - return re; - }; - - re.flags = ''; - re[SYMBOL] = /./[SYMBOL]; - } - - re.exec = function () { - execCalled = true; - return null; - }; - - re[SYMBOL](''); - return !execCalled; - }); - - if (!DELEGATES_TO_SYMBOL || !DELEGATES_TO_EXEC || KEY === 'replace' && !(REPLACE_SUPPORTS_NAMED_GROUPS && REPLACE_KEEPS_$0 && !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE) || KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC) { - var nativeRegExpMethod = /./[SYMBOL]; - var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) { - if (regexp.exec === regexpExec) { - if (DELEGATES_TO_SYMBOL && !forceStringMethod) { - // The native String method already delegates to @@method (this - // polyfilled function), leasing to infinite recursion. - // We avoid it by directly calling the native @@method method. - return { - done: true, - value: nativeRegExpMethod.call(regexp, str, arg2) - }; - } - - return { - done: true, - value: nativeMethod.call(str, regexp, arg2) - }; - } - - return { - done: false - }; - }, { - REPLACE_KEEPS_$0: REPLACE_KEEPS_$0, - REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE - }); - var stringMethod = methods[0]; - var regexMethod = methods[1]; - redefine(String.prototype, KEY, stringMethod); - redefine(RegExp.prototype, SYMBOL, length == 2 // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue) - // 21.2.5.11 RegExp.prototype[@@split](string, limit) - ? function (string, arg) { - return regexMethod.call(string, this, arg); - } // 21.2.5.6 RegExp.prototype[@@match](string) - // 21.2.5.9 RegExp.prototype[@@search](string) - : function (string) { - return regexMethod.call(string, this); - }); - } - - if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/freezing.js": - /*!****************************************************!*\ - !*** ./node_modules/core-js/internals/freezing.js ***! - \****************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsFreezingJs(module, exports, __webpack_require__) { - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - module.exports = !fails(function () { - return Object.isExtensible(Object.preventExtensions({})); - }); - /***/ - }, - - /***/ - "./node_modules/core-js/internals/function-bind-context.js": - /*!*****************************************************************!*\ - !*** ./node_modules/core-js/internals/function-bind-context.js ***! - \*****************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsFunctionBindContextJs(module, exports, __webpack_require__) { - var aFunction = __webpack_require__( - /*! ../internals/a-function */ - "./node_modules/core-js/internals/a-function.js"); // optional / simple context binding - - - module.exports = function (fn, that, length) { - aFunction(fn); - if (that === undefined) return fn; - - switch (length) { - case 0: - return function () { - return fn.call(that); - }; - - case 1: - return function (a) { - return fn.call(that, a); - }; - - case 2: - return function (a, b) { - return fn.call(that, a, b); - }; - - case 3: - return function (a, b, c) { - return fn.call(that, a, b, c); - }; - } - - return function () - /* ...args */ - { - return fn.apply(that, arguments); - }; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/function-bind.js": - /*!*********************************************************!*\ - !*** ./node_modules/core-js/internals/function-bind.js ***! - \*********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsFunctionBindJs(module, exports, __webpack_require__) { - "use strict"; - - var aFunction = __webpack_require__( - /*! ../internals/a-function */ - "./node_modules/core-js/internals/a-function.js"); - - var isObject = __webpack_require__( - /*! ../internals/is-object */ - "./node_modules/core-js/internals/is-object.js"); - - var slice = [].slice; - var factories = {}; - - var construct = function construct(C, argsLength, args) { - if (!(argsLength in factories)) { - for (var list = [], i = 0; i < argsLength; i++) { - list[i] = 'a[' + i + ']'; - } // eslint-disable-next-line no-new-func - - - factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')'); - } - - return factories[argsLength](C, args); - }; // `Function.prototype.bind` method implementation - // https://tc39.github.io/ecma262/#sec-function.prototype.bind - - - module.exports = Function.bind || function bind(that - /* , ...args */ - ) { - var fn = aFunction(this); - var partArgs = slice.call(arguments, 1); - - var boundFunction = function bound() - /* args... */ - { - var args = partArgs.concat(slice.call(arguments)); - return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args); - }; - - if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype; - return boundFunction; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/get-built-in.js": - /*!********************************************************!*\ - !*** ./node_modules/core-js/internals/get-built-in.js ***! - \********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsGetBuiltInJs(module, exports, __webpack_require__) { - var path = __webpack_require__( - /*! ../internals/path */ - "./node_modules/core-js/internals/path.js"); - - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - var aFunction = function aFunction(variable) { - return typeof variable == 'function' ? variable : undefined; - }; - - module.exports = function (namespace, method) { - return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace]) : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method]; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/get-iterator-method.js": - /*!***************************************************************!*\ - !*** ./node_modules/core-js/internals/get-iterator-method.js ***! - \***************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsGetIteratorMethodJs(module, exports, __webpack_require__) { - var classof = __webpack_require__( - /*! ../internals/classof */ - "./node_modules/core-js/internals/classof.js"); - - var Iterators = __webpack_require__( - /*! ../internals/iterators */ - "./node_modules/core-js/internals/iterators.js"); - - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ - "./node_modules/core-js/internals/well-known-symbol.js"); - - var ITERATOR = wellKnownSymbol('iterator'); - - module.exports = function (it) { - if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)]; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/global.js": - /*!**************************************************!*\ - !*** ./node_modules/core-js/internals/global.js ***! - \**************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsGlobalJs(module, exports) { - var check = function check(it) { - return it && it.Math == Math && it; - }; // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - - - module.exports = // eslint-disable-next-line no-undef - check(typeof globalThis == 'object' && globalThis) || check(typeof window == 'object' && window) || check(typeof self == 'object' && self) || check(typeof global == 'object' && global) || // eslint-disable-next-line no-new-func - Function('return this')(); - /***/ - }, - - /***/ - "./node_modules/core-js/internals/has.js": - /*!***********************************************!*\ - !*** ./node_modules/core-js/internals/has.js ***! - \***********************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsHasJs(module, exports) { - var hasOwnProperty = {}.hasOwnProperty; - - module.exports = function (it, key) { - return hasOwnProperty.call(it, key); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/hidden-keys.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/internals/hidden-keys.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsHiddenKeysJs(module, exports) { - module.exports = {}; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/host-report-errors.js": - /*!**************************************************************!*\ - !*** ./node_modules/core-js/internals/host-report-errors.js ***! - \**************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsHostReportErrorsJs(module, exports, __webpack_require__) { - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - module.exports = function (a, b) { - var console = global.console; - - if (console && console.error) { - arguments.length === 1 ? console.error(a) : console.error(a, b); - } - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/html.js": - /*!************************************************!*\ - !*** ./node_modules/core-js/internals/html.js ***! - \************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsHtmlJs(module, exports, __webpack_require__) { - var getBuiltIn = __webpack_require__( - /*! ../internals/get-built-in */ - "./node_modules/core-js/internals/get-built-in.js"); - - module.exports = getBuiltIn('document', 'documentElement'); - /***/ - }, - - /***/ - "./node_modules/core-js/internals/ie8-dom-define.js": - /*!**********************************************************!*\ - !*** ./node_modules/core-js/internals/ie8-dom-define.js ***! - \**********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsIe8DomDefineJs(module, exports, __webpack_require__) { - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ - "./node_modules/core-js/internals/descriptors.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var createElement = __webpack_require__( - /*! ../internals/document-create-element */ - "./node_modules/core-js/internals/document-create-element.js"); // Thank's IE8 for his funny defineProperty - - - module.exports = !DESCRIPTORS && !fails(function () { - return Object.defineProperty(createElement('div'), 'a', { - get: function get() { - return 7; - } - }).a != 7; - }); - /***/ - }, - - /***/ - "./node_modules/core-js/internals/indexed-object.js": - /*!**********************************************************!*\ - !*** ./node_modules/core-js/internals/indexed-object.js ***! - \**********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsIndexedObjectJs(module, exports, __webpack_require__) { - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var classof = __webpack_require__( - /*! ../internals/classof-raw */ - "./node_modules/core-js/internals/classof-raw.js"); - - var split = ''.split; // fallback for non-array-like ES3 and non-enumerable old V8 strings - - module.exports = fails(function () { - // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 - // eslint-disable-next-line no-prototype-builtins - return !Object('z').propertyIsEnumerable(0); - }) ? function (it) { - return classof(it) == 'String' ? split.call(it, '') : Object(it); - } : Object; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/inherit-if-required.js": - /*!***************************************************************!*\ - !*** ./node_modules/core-js/internals/inherit-if-required.js ***! - \***************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsInheritIfRequiredJs(module, exports, __webpack_require__) { - var isObject = __webpack_require__( - /*! ../internals/is-object */ - "./node_modules/core-js/internals/is-object.js"); - - var setPrototypeOf = __webpack_require__( - /*! ../internals/object-set-prototype-of */ - "./node_modules/core-js/internals/object-set-prototype-of.js"); // makes subclassing work correct for wrapped built-ins - - - module.exports = function ($this, dummy, Wrapper) { - var NewTarget, NewTargetPrototype; - if ( // it can work only with native `setPrototypeOf` - setPrototypeOf && // we haven't completely correct pre-ES6 way for getting `new.target`, so use this - typeof (NewTarget = dummy.constructor) == 'function' && NewTarget !== Wrapper && isObject(NewTargetPrototype = NewTarget.prototype) && NewTargetPrototype !== Wrapper.prototype) setPrototypeOf($this, NewTargetPrototype); - return $this; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/inspect-source.js": - /*!**********************************************************!*\ - !*** ./node_modules/core-js/internals/inspect-source.js ***! - \**********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsInspectSourceJs(module, exports, __webpack_require__) { - var store = __webpack_require__( - /*! ../internals/shared-store */ - "./node_modules/core-js/internals/shared-store.js"); - - var functionToString = Function.toString; // this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper - - if (typeof store.inspectSource != 'function') { - store.inspectSource = function (it) { - return functionToString.call(it); - }; - } - - module.exports = store.inspectSource; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/internal-metadata.js": - /*!*************************************************************!*\ - !*** ./node_modules/core-js/internals/internal-metadata.js ***! - \*************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsInternalMetadataJs(module, exports, __webpack_require__) { - var hiddenKeys = __webpack_require__( - /*! ../internals/hidden-keys */ - "./node_modules/core-js/internals/hidden-keys.js"); - - var isObject = __webpack_require__( - /*! ../internals/is-object */ - "./node_modules/core-js/internals/is-object.js"); - - var has = __webpack_require__( - /*! ../internals/has */ - "./node_modules/core-js/internals/has.js"); - - var defineProperty = __webpack_require__( - /*! ../internals/object-define-property */ - "./node_modules/core-js/internals/object-define-property.js").f; - - var uid = __webpack_require__( - /*! ../internals/uid */ - "./node_modules/core-js/internals/uid.js"); - - var FREEZING = __webpack_require__( - /*! ../internals/freezing */ - "./node_modules/core-js/internals/freezing.js"); - - var METADATA = uid('meta'); - var id = 0; - - var isExtensible = Object.isExtensible || function () { - return true; - }; - - var setMetadata = function setMetadata(it) { - defineProperty(it, METADATA, { - value: { - objectID: 'O' + ++id, - // object ID - weakData: {} // weak collections IDs - - } - }); - }; - - var fastKey = function fastKey(it, create) { - // return a primitive with prefix - if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - - if (!has(it, METADATA)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return 'F'; // not necessary to add metadata - - if (!create) return 'E'; // add missing metadata - - setMetadata(it); // return object ID - } - - return it[METADATA].objectID; - }; - - var getWeakData = function getWeakData(it, create) { - if (!has(it, METADATA)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return true; // not necessary to add metadata - - if (!create) return false; // add missing metadata - - setMetadata(it); // return the store of weak collections IDs - } - - return it[METADATA].weakData; - }; // add metadata on freeze-family methods calling - - - var onFreeze = function onFreeze(it) { - if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it); - return it; - }; - - var meta = module.exports = { - REQUIRED: false, - fastKey: fastKey, - getWeakData: getWeakData, - onFreeze: onFreeze - }; - hiddenKeys[METADATA] = true; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/internal-state.js": - /*!**********************************************************!*\ - !*** ./node_modules/core-js/internals/internal-state.js ***! - \**********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsInternalStateJs(module, exports, __webpack_require__) { - var NATIVE_WEAK_MAP = __webpack_require__( - /*! ../internals/native-weak-map */ - "./node_modules/core-js/internals/native-weak-map.js"); - - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - var isObject = __webpack_require__( - /*! ../internals/is-object */ - "./node_modules/core-js/internals/is-object.js"); - - var createNonEnumerableProperty = __webpack_require__( - /*! ../internals/create-non-enumerable-property */ - "./node_modules/core-js/internals/create-non-enumerable-property.js"); - - var objectHas = __webpack_require__( - /*! ../internals/has */ - "./node_modules/core-js/internals/has.js"); - - var sharedKey = __webpack_require__( - /*! ../internals/shared-key */ - "./node_modules/core-js/internals/shared-key.js"); - - var hiddenKeys = __webpack_require__( - /*! ../internals/hidden-keys */ - "./node_modules/core-js/internals/hidden-keys.js"); - - var WeakMap = global.WeakMap; - var set, get, has; - - var enforce = function enforce(it) { - return has(it) ? get(it) : set(it, {}); - }; - - var getterFor = function getterFor(TYPE) { - return function (it) { - var state; - - if (!isObject(it) || (state = get(it)).type !== TYPE) { - throw TypeError('Incompatible receiver, ' + TYPE + ' required'); - } - - return state; - }; - }; - - if (NATIVE_WEAK_MAP) { - var store = new WeakMap(); - var wmget = store.get; - var wmhas = store.has; - var wmset = store.set; - - set = function set(it, metadata) { - wmset.call(store, it, metadata); - return metadata; - }; - - get = function get(it) { - return wmget.call(store, it) || {}; - }; - - has = function has(it) { - return wmhas.call(store, it); - }; - } else { - var STATE = sharedKey('state'); - hiddenKeys[STATE] = true; - - set = function set(it, metadata) { - createNonEnumerableProperty(it, STATE, metadata); - return metadata; - }; - - get = function get(it) { - return objectHas(it, STATE) ? it[STATE] : {}; - }; - - has = function has(it) { - return objectHas(it, STATE); - }; - } - - module.exports = { - set: set, - get: get, - has: has, - enforce: enforce, - getterFor: getterFor - }; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/is-array-iterator-method.js": - /*!********************************************************************!*\ - !*** ./node_modules/core-js/internals/is-array-iterator-method.js ***! - \********************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsIsArrayIteratorMethodJs(module, exports, __webpack_require__) { - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ - "./node_modules/core-js/internals/well-known-symbol.js"); - - var Iterators = __webpack_require__( - /*! ../internals/iterators */ - "./node_modules/core-js/internals/iterators.js"); - - var ITERATOR = wellKnownSymbol('iterator'); - var ArrayPrototype = Array.prototype; // check on default Array iterator - - module.exports = function (it) { - return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/is-array.js": - /*!****************************************************!*\ - !*** ./node_modules/core-js/internals/is-array.js ***! - \****************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsIsArrayJs(module, exports, __webpack_require__) { - var classof = __webpack_require__( - /*! ../internals/classof-raw */ - "./node_modules/core-js/internals/classof-raw.js"); // `IsArray` abstract operation - // https://tc39.github.io/ecma262/#sec-isarray - - - module.exports = Array.isArray || function isArray(arg) { - return classof(arg) == 'Array'; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/is-forced.js": - /*!*****************************************************!*\ - !*** ./node_modules/core-js/internals/is-forced.js ***! - \*****************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsIsForcedJs(module, exports, __webpack_require__) { - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var replacement = /#|\.prototype\./; - - var isForced = function isForced(feature, detection) { - var value = data[normalize(feature)]; - return value == POLYFILL ? true : value == NATIVE ? false : typeof detection == 'function' ? fails(detection) : !!detection; - }; - - var normalize = isForced.normalize = function (string) { - return String(string).replace(replacement, '.').toLowerCase(); - }; - - var data = isForced.data = {}; - var NATIVE = isForced.NATIVE = 'N'; - var POLYFILL = isForced.POLYFILL = 'P'; - module.exports = isForced; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/is-integer.js": - /*!******************************************************!*\ - !*** ./node_modules/core-js/internals/is-integer.js ***! - \******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsIsIntegerJs(module, exports, __webpack_require__) { - var isObject = __webpack_require__( - /*! ../internals/is-object */ - "./node_modules/core-js/internals/is-object.js"); - - var floor = Math.floor; // `Number.isInteger` method implementation - // https://tc39.github.io/ecma262/#sec-number.isinteger - - module.exports = function isInteger(it) { - return !isObject(it) && isFinite(it) && floor(it) === it; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/is-object.js": - /*!*****************************************************!*\ - !*** ./node_modules/core-js/internals/is-object.js ***! - \*****************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsIsObjectJs(module, exports) { - module.exports = function (it) { - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/is-pure.js": - /*!***************************************************!*\ - !*** ./node_modules/core-js/internals/is-pure.js ***! - \***************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsIsPureJs(module, exports) { - module.exports = false; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/is-regexp.js": - /*!*****************************************************!*\ - !*** ./node_modules/core-js/internals/is-regexp.js ***! - \*****************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsIsRegexpJs(module, exports, __webpack_require__) { - var isObject = __webpack_require__( - /*! ../internals/is-object */ - "./node_modules/core-js/internals/is-object.js"); - - var classof = __webpack_require__( - /*! ../internals/classof-raw */ - "./node_modules/core-js/internals/classof-raw.js"); - - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ - "./node_modules/core-js/internals/well-known-symbol.js"); - - var MATCH = wellKnownSymbol('match'); // `IsRegExp` abstract operation - // https://tc39.github.io/ecma262/#sec-isregexp - - module.exports = function (it) { - var isRegExp; - return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp'); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/iterate.js": - /*!***************************************************!*\ - !*** ./node_modules/core-js/internals/iterate.js ***! - \***************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsIterateJs(module, exports, __webpack_require__) { - var anObject = __webpack_require__( - /*! ../internals/an-object */ - "./node_modules/core-js/internals/an-object.js"); - - var isArrayIteratorMethod = __webpack_require__( - /*! ../internals/is-array-iterator-method */ - "./node_modules/core-js/internals/is-array-iterator-method.js"); - - var toLength = __webpack_require__( - /*! ../internals/to-length */ - "./node_modules/core-js/internals/to-length.js"); - - var bind = __webpack_require__( - /*! ../internals/function-bind-context */ - "./node_modules/core-js/internals/function-bind-context.js"); - - var getIteratorMethod = __webpack_require__( - /*! ../internals/get-iterator-method */ - "./node_modules/core-js/internals/get-iterator-method.js"); - - var callWithSafeIterationClosing = __webpack_require__( - /*! ../internals/call-with-safe-iteration-closing */ - "./node_modules/core-js/internals/call-with-safe-iteration-closing.js"); - - var Result = function Result(stopped, result) { - this.stopped = stopped; - this.result = result; - }; - - var iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) { - var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1); - var iterator, iterFn, index, length, result, next, step; - - if (IS_ITERATOR) { - iterator = iterable; - } else { - iterFn = getIteratorMethod(iterable); - if (typeof iterFn != 'function') throw TypeError('Target is not iterable'); // optimisation for array iterators - - if (isArrayIteratorMethod(iterFn)) { - for (index = 0, length = toLength(iterable.length); length > index; index++) { - result = AS_ENTRIES ? boundFunction(anObject(step = iterable[index])[0], step[1]) : boundFunction(iterable[index]); - if (result && result instanceof Result) return result; - } - - return new Result(false); - } - - iterator = iterFn.call(iterable); - } - - next = iterator.next; - - while (!(step = next.call(iterator)).done) { - result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES); - if (typeof result == 'object' && result && result instanceof Result) return result; - } - - return new Result(false); - }; - - iterate.stop = function (result) { - return new Result(true, result); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/iterators-core.js": - /*!**********************************************************!*\ - !*** ./node_modules/core-js/internals/iterators-core.js ***! - \**********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsIteratorsCoreJs(module, exports, __webpack_require__) { - "use strict"; - - var getPrototypeOf = __webpack_require__( - /*! ../internals/object-get-prototype-of */ - "./node_modules/core-js/internals/object-get-prototype-of.js"); - - var createNonEnumerableProperty = __webpack_require__( - /*! ../internals/create-non-enumerable-property */ - "./node_modules/core-js/internals/create-non-enumerable-property.js"); - - var has = __webpack_require__( - /*! ../internals/has */ - "./node_modules/core-js/internals/has.js"); - - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ - "./node_modules/core-js/internals/well-known-symbol.js"); - - var IS_PURE = __webpack_require__( - /*! ../internals/is-pure */ - "./node_modules/core-js/internals/is-pure.js"); - - var ITERATOR = wellKnownSymbol('iterator'); - var BUGGY_SAFARI_ITERATORS = false; - - var returnThis = function returnThis() { - return this; - }; // `%IteratorPrototype%` object - // https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object - - - var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; - - if ([].keys) { - arrayIterator = [].keys(); // Safari 8 has buggy iterators w/o `next` - - if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;else { - PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); - if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype; - } - } - - if (IteratorPrototype == undefined) IteratorPrototype = {}; // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() - - if (!IS_PURE && !has(IteratorPrototype, ITERATOR)) { - createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis); - } - - module.exports = { - IteratorPrototype: IteratorPrototype, - BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS - }; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/iterators.js": - /*!*****************************************************!*\ - !*** ./node_modules/core-js/internals/iterators.js ***! - \*****************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsIteratorsJs(module, exports) { - module.exports = {}; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/math-expm1.js": - /*!******************************************************!*\ - !*** ./node_modules/core-js/internals/math-expm1.js ***! - \******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsMathExpm1Js(module, exports) { - var nativeExpm1 = Math.expm1; - var exp = Math.exp; // `Math.expm1` method implementation - // https://tc39.github.io/ecma262/#sec-math.expm1 - - module.exports = !nativeExpm1 // Old FF bug - || nativeExpm1(10) > 22025.465794806719 || nativeExpm1(10) < 22025.4657948067165168 // Tor Browser bug - || nativeExpm1(-2e-17) != -2e-17 ? function expm1(x) { - return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : exp(x) - 1; - } : nativeExpm1; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/math-fround.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/internals/math-fround.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsMathFroundJs(module, exports, __webpack_require__) { - var sign = __webpack_require__( - /*! ../internals/math-sign */ - "./node_modules/core-js/internals/math-sign.js"); - - var abs = Math.abs; - var pow = Math.pow; - var EPSILON = pow(2, -52); - var EPSILON32 = pow(2, -23); - var MAX32 = pow(2, 127) * (2 - EPSILON32); - var MIN32 = pow(2, -126); - - var roundTiesToEven = function roundTiesToEven(n) { - return n + 1 / EPSILON - 1 / EPSILON; - }; // `Math.fround` method implementation - // https://tc39.github.io/ecma262/#sec-math.fround - - - module.exports = Math.fround || function fround(x) { - var $abs = abs(x); - var $sign = sign(x); - var a, result; - if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32; - a = (1 + EPSILON32 / EPSILON) * $abs; - result = a - (a - $abs); // eslint-disable-next-line no-self-compare - - if (result > MAX32 || result != result) return $sign * Infinity; - return $sign * result; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/math-log1p.js": - /*!******************************************************!*\ - !*** ./node_modules/core-js/internals/math-log1p.js ***! - \******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsMathLog1pJs(module, exports) { - var log = Math.log; // `Math.log1p` method implementation - // https://tc39.github.io/ecma262/#sec-math.log1p - - module.exports = Math.log1p || function log1p(x) { - return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : log(1 + x); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/math-sign.js": - /*!*****************************************************!*\ - !*** ./node_modules/core-js/internals/math-sign.js ***! - \*****************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsMathSignJs(module, exports) { - // `Math.sign` method implementation - // https://tc39.github.io/ecma262/#sec-math.sign - module.exports = Math.sign || function sign(x) { - // eslint-disable-next-line no-self-compare - return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/microtask.js": - /*!*****************************************************!*\ - !*** ./node_modules/core-js/internals/microtask.js ***! - \*****************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsMicrotaskJs(module, exports, __webpack_require__) { - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - var getOwnPropertyDescriptor = __webpack_require__( - /*! ../internals/object-get-own-property-descriptor */ - "./node_modules/core-js/internals/object-get-own-property-descriptor.js").f; - - var classof = __webpack_require__( - /*! ../internals/classof-raw */ - "./node_modules/core-js/internals/classof-raw.js"); - - var macrotask = __webpack_require__( - /*! ../internals/task */ - "./node_modules/core-js/internals/task.js").set; - - var IS_IOS = __webpack_require__( - /*! ../internals/engine-is-ios */ - "./node_modules/core-js/internals/engine-is-ios.js"); - - var MutationObserver = global.MutationObserver || global.WebKitMutationObserver; - var process = global.process; - var Promise = global.Promise; - var IS_NODE = classof(process) == 'process'; // Node.js 11 shows ExperimentalWarning on getting `queueMicrotask` - - var queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask'); - var queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value; - var flush, head, last, notify, toggle, node, promise, then; // modern engines have queueMicrotask method - - if (!queueMicrotask) { - flush = function flush() { - var parent, fn; - if (IS_NODE && (parent = process.domain)) parent.exit(); - - while (head) { - fn = head.fn; - head = head.next; - - try { - fn(); - } catch (error) { - if (head) notify();else last = undefined; - throw error; - } - } - - last = undefined; - if (parent) parent.enter(); - }; // Node.js - - - if (IS_NODE) { - notify = function notify() { - process.nextTick(flush); - }; // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 - - } else if (MutationObserver && !IS_IOS) { - toggle = true; - node = document.createTextNode(''); - new MutationObserver(flush).observe(node, { - characterData: true - }); - - notify = function notify() { - node.data = toggle = !toggle; - }; // environments with maybe non-completely correct, but existent Promise - - } else if (Promise && Promise.resolve) { - // Promise.resolve without an argument throws an error in LG WebOS 2 - promise = Promise.resolve(undefined); - then = promise.then; - - notify = function notify() { - then.call(promise, flush); - }; // for other environments - macrotask based on: - // - setImmediate - // - MessageChannel - // - window.postMessag - // - onreadystatechange - // - setTimeout - - } else { - notify = function notify() { - // strange IE + webpack dev server bug - use .call(global) - macrotask.call(global, flush); - }; - } - } - - module.exports = queueMicrotask || function (fn) { - var task = { - fn: fn, - next: undefined - }; - if (last) last.next = task; - - if (!head) { - head = task; - notify(); - } - - last = task; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/native-promise-constructor.js": - /*!**********************************************************************!*\ - !*** ./node_modules/core-js/internals/native-promise-constructor.js ***! - \**********************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsNativePromiseConstructorJs(module, exports, __webpack_require__) { - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - module.exports = global.Promise; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/native-symbol.js": - /*!*********************************************************!*\ - !*** ./node_modules/core-js/internals/native-symbol.js ***! - \*********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsNativeSymbolJs(module, exports, __webpack_require__) { - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - module.exports = !!Object.getOwnPropertySymbols && !fails(function () { - // Chrome 38 Symbol has incorrect toString conversion - // eslint-disable-next-line no-undef - return !String(Symbol()); - }); - /***/ - }, - - /***/ - "./node_modules/core-js/internals/native-weak-map.js": - /*!***********************************************************!*\ - !*** ./node_modules/core-js/internals/native-weak-map.js ***! - \***********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsNativeWeakMapJs(module, exports, __webpack_require__) { - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - var inspectSource = __webpack_require__( - /*! ../internals/inspect-source */ - "./node_modules/core-js/internals/inspect-source.js"); - - var WeakMap = global.WeakMap; - module.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap)); - /***/ - }, - - /***/ - "./node_modules/core-js/internals/new-promise-capability.js": - /*!******************************************************************!*\ - !*** ./node_modules/core-js/internals/new-promise-capability.js ***! - \******************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsNewPromiseCapabilityJs(module, exports, __webpack_require__) { - "use strict"; - - var aFunction = __webpack_require__( - /*! ../internals/a-function */ - "./node_modules/core-js/internals/a-function.js"); - - var PromiseCapability = function PromiseCapability(C) { - var resolve, reject; - this.promise = new C(function ($$resolve, $$reject) { - if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); - resolve = $$resolve; - reject = $$reject; - }); - this.resolve = aFunction(resolve); - this.reject = aFunction(reject); - }; // 25.4.1.5 NewPromiseCapability(C) - - - module.exports.f = function (C) { - return new PromiseCapability(C); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/not-a-regexp.js": - /*!********************************************************!*\ - !*** ./node_modules/core-js/internals/not-a-regexp.js ***! - \********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsNotARegexpJs(module, exports, __webpack_require__) { - var isRegExp = __webpack_require__( - /*! ../internals/is-regexp */ - "./node_modules/core-js/internals/is-regexp.js"); - - module.exports = function (it) { - if (isRegExp(it)) { - throw TypeError("The method doesn't accept regular expressions"); - } - - return it; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/number-is-finite.js": - /*!************************************************************!*\ - !*** ./node_modules/core-js/internals/number-is-finite.js ***! - \************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsNumberIsFiniteJs(module, exports, __webpack_require__) { - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - var globalIsFinite = global.isFinite; // `Number.isFinite` method - // https://tc39.github.io/ecma262/#sec-number.isfinite - - module.exports = Number.isFinite || function isFinite(it) { - return typeof it == 'number' && globalIsFinite(it); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/number-parse-float.js": - /*!**************************************************************!*\ - !*** ./node_modules/core-js/internals/number-parse-float.js ***! - \**************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsNumberParseFloatJs(module, exports, __webpack_require__) { - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - var trim = __webpack_require__( - /*! ../internals/string-trim */ - "./node_modules/core-js/internals/string-trim.js").trim; - - var whitespaces = __webpack_require__( - /*! ../internals/whitespaces */ - "./node_modules/core-js/internals/whitespaces.js"); - - var $parseFloat = global.parseFloat; - var FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity; // `parseFloat` method - // https://tc39.github.io/ecma262/#sec-parsefloat-string - - module.exports = FORCED ? function parseFloat(string) { - var trimmedString = trim(String(string)); - var result = $parseFloat(trimmedString); - return result === 0 && trimmedString.charAt(0) == '-' ? -0 : result; - } : $parseFloat; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/number-parse-int.js": - /*!************************************************************!*\ - !*** ./node_modules/core-js/internals/number-parse-int.js ***! - \************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsNumberParseIntJs(module, exports, __webpack_require__) { - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - var trim = __webpack_require__( - /*! ../internals/string-trim */ - "./node_modules/core-js/internals/string-trim.js").trim; - - var whitespaces = __webpack_require__( - /*! ../internals/whitespaces */ - "./node_modules/core-js/internals/whitespaces.js"); - - var $parseInt = global.parseInt; - var hex = /^[+-]?0[Xx]/; - var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22; // `parseInt` method - // https://tc39.github.io/ecma262/#sec-parseint-string-radix - - module.exports = FORCED ? function parseInt(string, radix) { - var S = trim(String(string)); - return $parseInt(S, radix >>> 0 || (hex.test(S) ? 16 : 10)); - } : $parseInt; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/object-assign.js": - /*!*********************************************************!*\ - !*** ./node_modules/core-js/internals/object-assign.js ***! - \*********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsObjectAssignJs(module, exports, __webpack_require__) { - "use strict"; - - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ - "./node_modules/core-js/internals/descriptors.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var objectKeys = __webpack_require__( - /*! ../internals/object-keys */ - "./node_modules/core-js/internals/object-keys.js"); - - var getOwnPropertySymbolsModule = __webpack_require__( - /*! ../internals/object-get-own-property-symbols */ - "./node_modules/core-js/internals/object-get-own-property-symbols.js"); - - var propertyIsEnumerableModule = __webpack_require__( - /*! ../internals/object-property-is-enumerable */ - "./node_modules/core-js/internals/object-property-is-enumerable.js"); - - var toObject = __webpack_require__( - /*! ../internals/to-object */ - "./node_modules/core-js/internals/to-object.js"); - - var IndexedObject = __webpack_require__( - /*! ../internals/indexed-object */ - "./node_modules/core-js/internals/indexed-object.js"); - - var nativeAssign = Object.assign; - var defineProperty = Object.defineProperty; // `Object.assign` method - // https://tc39.github.io/ecma262/#sec-object.assign - - module.exports = !nativeAssign || fails(function () { - // should have correct order of operations (Edge bug) - if (DESCRIPTORS && nativeAssign({ - b: 1 - }, nativeAssign(defineProperty({}, 'a', { - enumerable: true, - get: function get() { - defineProperty(this, 'b', { - value: 3, - enumerable: false - }); - } - }), { - b: 2 - })).b !== 1) return true; // should work with symbols and should have deterministic property order (V8 bug) - - var A = {}; - var B = {}; // eslint-disable-next-line no-undef - - var symbol = Symbol(); - var alphabet = 'abcdefghijklmnopqrst'; - A[symbol] = 7; - alphabet.split('').forEach(function (chr) { - B[chr] = chr; - }); - return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet; - }) ? function assign(target, source) { - // eslint-disable-line no-unused-vars - var T = toObject(target); - var argumentsLength = arguments.length; - var index = 1; - var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; - var propertyIsEnumerable = propertyIsEnumerableModule.f; - - while (argumentsLength > index) { - var S = IndexedObject(arguments[index++]); - var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S); - var length = keys.length; - var j = 0; - var key; - - while (length > j) { - key = keys[j++]; - if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key]; - } - } - - return T; - } : nativeAssign; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/object-create.js": - /*!*********************************************************!*\ - !*** ./node_modules/core-js/internals/object-create.js ***! - \*********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsObjectCreateJs(module, exports, __webpack_require__) { - var anObject = __webpack_require__( - /*! ../internals/an-object */ - "./node_modules/core-js/internals/an-object.js"); - - var defineProperties = __webpack_require__( - /*! ../internals/object-define-properties */ - "./node_modules/core-js/internals/object-define-properties.js"); - - var enumBugKeys = __webpack_require__( - /*! ../internals/enum-bug-keys */ - "./node_modules/core-js/internals/enum-bug-keys.js"); - - var hiddenKeys = __webpack_require__( - /*! ../internals/hidden-keys */ - "./node_modules/core-js/internals/hidden-keys.js"); - - var html = __webpack_require__( - /*! ../internals/html */ - "./node_modules/core-js/internals/html.js"); - - var documentCreateElement = __webpack_require__( - /*! ../internals/document-create-element */ - "./node_modules/core-js/internals/document-create-element.js"); - - var sharedKey = __webpack_require__( - /*! ../internals/shared-key */ - "./node_modules/core-js/internals/shared-key.js"); - - var GT = '>'; - var LT = '<'; - var PROTOTYPE = 'prototype'; - var SCRIPT = 'script'; - var IE_PROTO = sharedKey('IE_PROTO'); - - var EmptyConstructor = function EmptyConstructor() { - /* empty */ - }; - - var scriptTag = function scriptTag(content) { - return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; - }; // Create object with fake `null` prototype: use ActiveX Object with cleared prototype - - - var NullProtoObjectViaActiveX = function NullProtoObjectViaActiveX(activeXDocument) { - activeXDocument.write(scriptTag('')); - activeXDocument.close(); - var temp = activeXDocument.parentWindow.Object; - activeXDocument = null; // avoid memory leak - - return temp; - }; // Create object with fake `null` prototype: use iframe Object with cleared prototype - - - var NullProtoObjectViaIFrame = function NullProtoObjectViaIFrame() { - // Thrash, waste and sodomy: IE GC bug - var iframe = documentCreateElement('iframe'); - var JS = 'java' + SCRIPT + ':'; - var iframeDocument; - iframe.style.display = 'none'; - html.appendChild(iframe); // https://github.com/zloirock/core-js/issues/475 - - iframe.src = String(JS); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(scriptTag('document.F=Object')); - iframeDocument.close(); - return iframeDocument.F; - }; // Check for document.domain and active x support - // No need to use active x approach when document.domain is not set - // see https://github.com/es-shims/es5-shim/issues/150 - // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 - // avoid IE GC bug - - - var activeXDocument; - - var _NullProtoObject = function NullProtoObject() { - try { - /* global ActiveXObject */ - activeXDocument = document.domain && new ActiveXObject('htmlfile'); - } catch (error) { - /* ignore */ - } - - _NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame(); - var length = enumBugKeys.length; - - while (length--) { - delete _NullProtoObject[PROTOTYPE][enumBugKeys[length]]; - } - - return _NullProtoObject(); - }; - - hiddenKeys[IE_PROTO] = true; // `Object.create` method - // https://tc39.github.io/ecma262/#sec-object.create - - module.exports = Object.create || function create(O, Properties) { - var result; - - if (O !== null) { - EmptyConstructor[PROTOTYPE] = anObject(O); - result = new EmptyConstructor(); - EmptyConstructor[PROTOTYPE] = null; // add "__proto__" for Object.getPrototypeOf polyfill - - result[IE_PROTO] = O; - } else result = _NullProtoObject(); - - return Properties === undefined ? result : defineProperties(result, Properties); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/object-define-properties.js": - /*!********************************************************************!*\ - !*** ./node_modules/core-js/internals/object-define-properties.js ***! - \********************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsObjectDefinePropertiesJs(module, exports, __webpack_require__) { - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ - "./node_modules/core-js/internals/descriptors.js"); - - var definePropertyModule = __webpack_require__( - /*! ../internals/object-define-property */ - "./node_modules/core-js/internals/object-define-property.js"); - - var anObject = __webpack_require__( - /*! ../internals/an-object */ - "./node_modules/core-js/internals/an-object.js"); - - var objectKeys = __webpack_require__( - /*! ../internals/object-keys */ - "./node_modules/core-js/internals/object-keys.js"); // `Object.defineProperties` method - // https://tc39.github.io/ecma262/#sec-object.defineproperties - - - module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { - anObject(O); - var keys = objectKeys(Properties); - var length = keys.length; - var index = 0; - var key; - - while (length > index) { - definePropertyModule.f(O, key = keys[index++], Properties[key]); - } - - return O; - }; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/object-define-property.js": - /*!******************************************************************!*\ - !*** ./node_modules/core-js/internals/object-define-property.js ***! - \******************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsObjectDefinePropertyJs(module, exports, __webpack_require__) { - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ - "./node_modules/core-js/internals/descriptors.js"); - - var IE8_DOM_DEFINE = __webpack_require__( - /*! ../internals/ie8-dom-define */ - "./node_modules/core-js/internals/ie8-dom-define.js"); - - var anObject = __webpack_require__( - /*! ../internals/an-object */ - "./node_modules/core-js/internals/an-object.js"); - - var toPrimitive = __webpack_require__( - /*! ../internals/to-primitive */ - "./node_modules/core-js/internals/to-primitive.js"); - - var nativeDefineProperty = Object.defineProperty; // `Object.defineProperty` method - // https://tc39.github.io/ecma262/#sec-object.defineproperty - - exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (IE8_DOM_DEFINE) try { - return nativeDefineProperty(O, P, Attributes); - } catch (error) { - /* empty */ - } - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; - }; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/object-get-own-property-descriptor.js": - /*!******************************************************************************!*\ - !*** ./node_modules/core-js/internals/object-get-own-property-descriptor.js ***! - \******************************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsObjectGetOwnPropertyDescriptorJs(module, exports, __webpack_require__) { - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ - "./node_modules/core-js/internals/descriptors.js"); - - var propertyIsEnumerableModule = __webpack_require__( - /*! ../internals/object-property-is-enumerable */ - "./node_modules/core-js/internals/object-property-is-enumerable.js"); - - var createPropertyDescriptor = __webpack_require__( - /*! ../internals/create-property-descriptor */ - "./node_modules/core-js/internals/create-property-descriptor.js"); - - var toIndexedObject = __webpack_require__( - /*! ../internals/to-indexed-object */ - "./node_modules/core-js/internals/to-indexed-object.js"); - - var toPrimitive = __webpack_require__( - /*! ../internals/to-primitive */ - "./node_modules/core-js/internals/to-primitive.js"); - - var has = __webpack_require__( - /*! ../internals/has */ - "./node_modules/core-js/internals/has.js"); - - var IE8_DOM_DEFINE = __webpack_require__( - /*! ../internals/ie8-dom-define */ - "./node_modules/core-js/internals/ie8-dom-define.js"); - - var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // `Object.getOwnPropertyDescriptor` method - // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor - - exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { - O = toIndexedObject(O); - P = toPrimitive(P, true); - if (IE8_DOM_DEFINE) try { - return nativeGetOwnPropertyDescriptor(O, P); - } catch (error) { - /* empty */ - } - if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); - }; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/object-get-own-property-names-external.js": - /*!**********************************************************************************!*\ - !*** ./node_modules/core-js/internals/object-get-own-property-names-external.js ***! - \**********************************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsObjectGetOwnPropertyNamesExternalJs(module, exports, __webpack_require__) { - var toIndexedObject = __webpack_require__( - /*! ../internals/to-indexed-object */ - "./node_modules/core-js/internals/to-indexed-object.js"); - - var nativeGetOwnPropertyNames = __webpack_require__( - /*! ../internals/object-get-own-property-names */ - "./node_modules/core-js/internals/object-get-own-property-names.js").f; - - var toString = {}.toString; - var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; - - var getWindowNames = function getWindowNames(it) { - try { - return nativeGetOwnPropertyNames(it); - } catch (error) { - return windowNames.slice(); - } - }; // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window - - - module.exports.f = function getOwnPropertyNames(it) { - return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : nativeGetOwnPropertyNames(toIndexedObject(it)); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/object-get-own-property-names.js": - /*!*************************************************************************!*\ - !*** ./node_modules/core-js/internals/object-get-own-property-names.js ***! - \*************************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsObjectGetOwnPropertyNamesJs(module, exports, __webpack_require__) { - var internalObjectKeys = __webpack_require__( - /*! ../internals/object-keys-internal */ - "./node_modules/core-js/internals/object-keys-internal.js"); - - var enumBugKeys = __webpack_require__( - /*! ../internals/enum-bug-keys */ - "./node_modules/core-js/internals/enum-bug-keys.js"); - - var hiddenKeys = enumBugKeys.concat('length', 'prototype'); // `Object.getOwnPropertyNames` method - // https://tc39.github.io/ecma262/#sec-object.getownpropertynames - - exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { - return internalObjectKeys(O, hiddenKeys); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/object-get-own-property-symbols.js": - /*!***************************************************************************!*\ - !*** ./node_modules/core-js/internals/object-get-own-property-symbols.js ***! - \***************************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsObjectGetOwnPropertySymbolsJs(module, exports) { - exports.f = Object.getOwnPropertySymbols; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/object-get-prototype-of.js": - /*!*******************************************************************!*\ - !*** ./node_modules/core-js/internals/object-get-prototype-of.js ***! - \*******************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsObjectGetPrototypeOfJs(module, exports, __webpack_require__) { - var has = __webpack_require__( - /*! ../internals/has */ - "./node_modules/core-js/internals/has.js"); - - var toObject = __webpack_require__( - /*! ../internals/to-object */ - "./node_modules/core-js/internals/to-object.js"); - - var sharedKey = __webpack_require__( - /*! ../internals/shared-key */ - "./node_modules/core-js/internals/shared-key.js"); - - var CORRECT_PROTOTYPE_GETTER = __webpack_require__( - /*! ../internals/correct-prototype-getter */ - "./node_modules/core-js/internals/correct-prototype-getter.js"); - - var IE_PROTO = sharedKey('IE_PROTO'); - var ObjectPrototype = Object.prototype; // `Object.getPrototypeOf` method - // https://tc39.github.io/ecma262/#sec-object.getprototypeof - - module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) { - O = toObject(O); - if (has(O, IE_PROTO)) return O[IE_PROTO]; - - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; - } - - return O instanceof Object ? ObjectPrototype : null; - }; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/object-keys-internal.js": - /*!****************************************************************!*\ - !*** ./node_modules/core-js/internals/object-keys-internal.js ***! - \****************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsObjectKeysInternalJs(module, exports, __webpack_require__) { - var has = __webpack_require__( - /*! ../internals/has */ - "./node_modules/core-js/internals/has.js"); - - var toIndexedObject = __webpack_require__( - /*! ../internals/to-indexed-object */ - "./node_modules/core-js/internals/to-indexed-object.js"); - - var indexOf = __webpack_require__( - /*! ../internals/array-includes */ - "./node_modules/core-js/internals/array-includes.js").indexOf; - - var hiddenKeys = __webpack_require__( - /*! ../internals/hidden-keys */ - "./node_modules/core-js/internals/hidden-keys.js"); - - module.exports = function (object, names) { - var O = toIndexedObject(object); - var i = 0; - var result = []; - var key; - - for (key in O) { - !has(hiddenKeys, key) && has(O, key) && result.push(key); - } // Don't enum bug & hidden keys - - - while (names.length > i) { - if (has(O, key = names[i++])) { - ~indexOf(result, key) || result.push(key); - } - } - - return result; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/object-keys.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/internals/object-keys.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsObjectKeysJs(module, exports, __webpack_require__) { - var internalObjectKeys = __webpack_require__( - /*! ../internals/object-keys-internal */ - "./node_modules/core-js/internals/object-keys-internal.js"); - - var enumBugKeys = __webpack_require__( - /*! ../internals/enum-bug-keys */ - "./node_modules/core-js/internals/enum-bug-keys.js"); // `Object.keys` method - // https://tc39.github.io/ecma262/#sec-object.keys - - - module.exports = Object.keys || function keys(O) { - return internalObjectKeys(O, enumBugKeys); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/object-property-is-enumerable.js": - /*!*************************************************************************!*\ - !*** ./node_modules/core-js/internals/object-property-is-enumerable.js ***! - \*************************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsObjectPropertyIsEnumerableJs(module, exports, __webpack_require__) { - "use strict"; - - var nativePropertyIsEnumerable = {}.propertyIsEnumerable; - var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // Nashorn ~ JDK8 bug - - var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ - 1: 2 - }, 1); // `Object.prototype.propertyIsEnumerable` method implementation - // https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable - - exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { - var descriptor = getOwnPropertyDescriptor(this, V); - return !!descriptor && descriptor.enumerable; - } : nativePropertyIsEnumerable; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/object-set-prototype-of.js": - /*!*******************************************************************!*\ - !*** ./node_modules/core-js/internals/object-set-prototype-of.js ***! - \*******************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsObjectSetPrototypeOfJs(module, exports, __webpack_require__) { - var anObject = __webpack_require__( - /*! ../internals/an-object */ - "./node_modules/core-js/internals/an-object.js"); - - var aPossiblePrototype = __webpack_require__( - /*! ../internals/a-possible-prototype */ - "./node_modules/core-js/internals/a-possible-prototype.js"); // `Object.setPrototypeOf` method - // https://tc39.github.io/ecma262/#sec-object.setprototypeof - // Works with __proto__ only. Old v8 can't work with null proto objects. - - /* eslint-disable no-proto */ - - - module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () { - var CORRECT_SETTER = false; - var test = {}; - var setter; - - try { - setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set; - setter.call(test, []); - CORRECT_SETTER = test instanceof Array; - } catch (error) { - /* empty */ - } - - return function setPrototypeOf(O, proto) { - anObject(O); - aPossiblePrototype(proto); - if (CORRECT_SETTER) setter.call(O, proto);else O.__proto__ = proto; - return O; - }; - }() : undefined); - /***/ - }, - - /***/ - "./node_modules/core-js/internals/object-to-string.js": - /*!************************************************************!*\ - !*** ./node_modules/core-js/internals/object-to-string.js ***! - \************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsObjectToStringJs(module, exports, __webpack_require__) { - "use strict"; - - var TO_STRING_TAG_SUPPORT = __webpack_require__( - /*! ../internals/to-string-tag-support */ - "./node_modules/core-js/internals/to-string-tag-support.js"); - - var classof = __webpack_require__( - /*! ../internals/classof */ - "./node_modules/core-js/internals/classof.js"); // `Object.prototype.toString` method implementation - // https://tc39.github.io/ecma262/#sec-object.prototype.tostring - - - module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() { - return '[object ' + classof(this) + ']'; - }; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/own-keys.js": - /*!****************************************************!*\ - !*** ./node_modules/core-js/internals/own-keys.js ***! - \****************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsOwnKeysJs(module, exports, __webpack_require__) { - var getBuiltIn = __webpack_require__( - /*! ../internals/get-built-in */ - "./node_modules/core-js/internals/get-built-in.js"); - - var getOwnPropertyNamesModule = __webpack_require__( - /*! ../internals/object-get-own-property-names */ - "./node_modules/core-js/internals/object-get-own-property-names.js"); - - var getOwnPropertySymbolsModule = __webpack_require__( - /*! ../internals/object-get-own-property-symbols */ - "./node_modules/core-js/internals/object-get-own-property-symbols.js"); - - var anObject = __webpack_require__( - /*! ../internals/an-object */ - "./node_modules/core-js/internals/an-object.js"); // all object keys, includes non-enumerable and symbols - - - module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { - var keys = getOwnPropertyNamesModule.f(anObject(it)); - var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; - return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/path.js": - /*!************************************************!*\ - !*** ./node_modules/core-js/internals/path.js ***! - \************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsPathJs(module, exports, __webpack_require__) { - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - module.exports = global; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/perform.js": - /*!***************************************************!*\ - !*** ./node_modules/core-js/internals/perform.js ***! - \***************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsPerformJs(module, exports) { - module.exports = function (exec) { - try { - return { - error: false, - value: exec() - }; - } catch (error) { - return { - error: true, - value: error - }; - } - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/promise-resolve.js": - /*!***********************************************************!*\ - !*** ./node_modules/core-js/internals/promise-resolve.js ***! - \***********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsPromiseResolveJs(module, exports, __webpack_require__) { - var anObject = __webpack_require__( - /*! ../internals/an-object */ - "./node_modules/core-js/internals/an-object.js"); - - var isObject = __webpack_require__( - /*! ../internals/is-object */ - "./node_modules/core-js/internals/is-object.js"); - - var newPromiseCapability = __webpack_require__( - /*! ../internals/new-promise-capability */ - "./node_modules/core-js/internals/new-promise-capability.js"); - - module.exports = function (C, x) { - anObject(C); - if (isObject(x) && x.constructor === C) return x; - var promiseCapability = newPromiseCapability.f(C); - var resolve = promiseCapability.resolve; - resolve(x); - return promiseCapability.promise; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/redefine-all.js": - /*!********************************************************!*\ - !*** ./node_modules/core-js/internals/redefine-all.js ***! - \********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsRedefineAllJs(module, exports, __webpack_require__) { - var redefine = __webpack_require__( - /*! ../internals/redefine */ - "./node_modules/core-js/internals/redefine.js"); - - module.exports = function (target, src, options) { - for (var key in src) { - redefine(target, key, src[key], options); - } - - return target; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/redefine.js": - /*!****************************************************!*\ - !*** ./node_modules/core-js/internals/redefine.js ***! - \****************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsRedefineJs(module, exports, __webpack_require__) { - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - var createNonEnumerableProperty = __webpack_require__( - /*! ../internals/create-non-enumerable-property */ - "./node_modules/core-js/internals/create-non-enumerable-property.js"); - - var has = __webpack_require__( - /*! ../internals/has */ - "./node_modules/core-js/internals/has.js"); - - var setGlobal = __webpack_require__( - /*! ../internals/set-global */ - "./node_modules/core-js/internals/set-global.js"); - - var inspectSource = __webpack_require__( - /*! ../internals/inspect-source */ - "./node_modules/core-js/internals/inspect-source.js"); - - var InternalStateModule = __webpack_require__( - /*! ../internals/internal-state */ - "./node_modules/core-js/internals/internal-state.js"); - - var getInternalState = InternalStateModule.get; - var enforceInternalState = InternalStateModule.enforce; - var TEMPLATE = String(String).split('String'); - (module.exports = function (O, key, value, options) { - var unsafe = options ? !!options.unsafe : false; - var simple = options ? !!options.enumerable : false; - var noTargetGet = options ? !!options.noTargetGet : false; - - if (typeof value == 'function') { - if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key); - enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : ''); - } - - if (O === global) { - if (simple) O[key] = value;else setGlobal(key, value); - return; - } else if (!unsafe) { - delete O[key]; - } else if (!noTargetGet && O[key]) { - simple = true; - } - - if (simple) O[key] = value;else createNonEnumerableProperty(O, key, value); // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative - })(Function.prototype, 'toString', function toString() { - return typeof this == 'function' && getInternalState(this).source || inspectSource(this); - }); - /***/ - }, - - /***/ - "./node_modules/core-js/internals/regexp-exec-abstract.js": - /*!****************************************************************!*\ - !*** ./node_modules/core-js/internals/regexp-exec-abstract.js ***! - \****************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsRegexpExecAbstractJs(module, exports, __webpack_require__) { - var classof = __webpack_require__( - /*! ./classof-raw */ - "./node_modules/core-js/internals/classof-raw.js"); - - var regexpExec = __webpack_require__( - /*! ./regexp-exec */ - "./node_modules/core-js/internals/regexp-exec.js"); // `RegExpExec` abstract operation - // https://tc39.github.io/ecma262/#sec-regexpexec - - - module.exports = function (R, S) { - var exec = R.exec; - - if (typeof exec === 'function') { - var result = exec.call(R, S); - - if (typeof result !== 'object') { - throw TypeError('RegExp exec method returned something other than an Object or null'); - } - - return result; - } - - if (classof(R) !== 'RegExp') { - throw TypeError('RegExp#exec called on incompatible receiver'); - } - - return regexpExec.call(R, S); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/regexp-exec.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/internals/regexp-exec.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsRegexpExecJs(module, exports, __webpack_require__) { - "use strict"; - - var regexpFlags = __webpack_require__( - /*! ./regexp-flags */ - "./node_modules/core-js/internals/regexp-flags.js"); - - var stickyHelpers = __webpack_require__( - /*! ./regexp-sticky-helpers */ - "./node_modules/core-js/internals/regexp-sticky-helpers.js"); - - var nativeExec = RegExp.prototype.exec; // This always refers to the native implementation, because the - // String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js, - // which loads this file before patching the method. - - var nativeReplace = String.prototype.replace; - var patchedExec = nativeExec; - - var UPDATES_LAST_INDEX_WRONG = function () { - var re1 = /a/; - var re2 = /b*/g; - nativeExec.call(re1, 'a'); - nativeExec.call(re2, 'a'); - return re1.lastIndex !== 0 || re2.lastIndex !== 0; - }(); - - var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET; // nonparticipating capturing group, copied from es5-shim's String#split patch. - - var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; - var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y; - - if (PATCH) { - patchedExec = function exec(str) { - var re = this; - var lastIndex, reCopy, match, i; - var sticky = UNSUPPORTED_Y && re.sticky; - var flags = regexpFlags.call(re); - var source = re.source; - var charsAdded = 0; - var strCopy = str; - - if (sticky) { - flags = flags.replace('y', ''); - - if (flags.indexOf('g') === -1) { - flags += 'g'; - } - - strCopy = String(str).slice(re.lastIndex); // Support anchored sticky behavior. - - if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) { - source = '(?: ' + source + ')'; - strCopy = ' ' + strCopy; - charsAdded++; - } // ^(? + rx + ) is needed, in combination with some str slicing, to - // simulate the 'y' flag. - - - reCopy = new RegExp('^(?:' + source + ')', flags); - } - - if (NPCG_INCLUDED) { - reCopy = new RegExp('^' + source + '$(?!\\s)', flags); - } - - if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex; - match = nativeExec.call(sticky ? reCopy : re, strCopy); - - if (sticky) { - if (match) { - match.input = match.input.slice(charsAdded); - match[0] = match[0].slice(charsAdded); - match.index = re.lastIndex; - re.lastIndex += match[0].length; - } else re.lastIndex = 0; - } else if (UPDATES_LAST_INDEX_WRONG && match) { - re.lastIndex = re.global ? match.index + match[0].length : lastIndex; - } - - if (NPCG_INCLUDED && match && match.length > 1) { - // Fix browsers whose `exec` methods don't consistently return `undefined` - // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/ - nativeReplace.call(match[0], reCopy, function () { - for (i = 1; i < arguments.length - 2; i++) { - if (arguments[i] === undefined) match[i] = undefined; - } - }); - } - - return match; - }; - } - - module.exports = patchedExec; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/regexp-flags.js": - /*!********************************************************!*\ - !*** ./node_modules/core-js/internals/regexp-flags.js ***! - \********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsRegexpFlagsJs(module, exports, __webpack_require__) { - "use strict"; - - var anObject = __webpack_require__( - /*! ../internals/an-object */ - "./node_modules/core-js/internals/an-object.js"); // `RegExp.prototype.flags` getter implementation - // https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags - - - module.exports = function () { - var that = anObject(this); - var result = ''; - if (that.global) result += 'g'; - if (that.ignoreCase) result += 'i'; - if (that.multiline) result += 'm'; - if (that.dotAll) result += 's'; - if (that.unicode) result += 'u'; - if (that.sticky) result += 'y'; - return result; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/regexp-sticky-helpers.js": - /*!*****************************************************************!*\ - !*** ./node_modules/core-js/internals/regexp-sticky-helpers.js ***! - \*****************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsRegexpStickyHelpersJs(module, exports, __webpack_require__) { - "use strict"; - - var fails = __webpack_require__( - /*! ./fails */ - "./node_modules/core-js/internals/fails.js"); // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError, - // so we use an intermediate function. - - - function RE(s, f) { - return RegExp(s, f); - } - - exports.UNSUPPORTED_Y = fails(function () { - // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError - var re = RE('a', 'y'); - re.lastIndex = 2; - return re.exec('abcd') != null; - }); - exports.BROKEN_CARET = fails(function () { - // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 - var re = RE('^r', 'gy'); - re.lastIndex = 2; - return re.exec('str') != null; - }); - /***/ - }, - - /***/ - "./node_modules/core-js/internals/require-object-coercible.js": - /*!********************************************************************!*\ - !*** ./node_modules/core-js/internals/require-object-coercible.js ***! - \********************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsRequireObjectCoercibleJs(module, exports) { - // `RequireObjectCoercible` abstract operation - // https://tc39.github.io/ecma262/#sec-requireobjectcoercible - module.exports = function (it) { - if (it == undefined) throw TypeError("Can't call method on " + it); - return it; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/same-value.js": - /*!******************************************************!*\ - !*** ./node_modules/core-js/internals/same-value.js ***! - \******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsSameValueJs(module, exports) { - // `SameValue` abstract operation - // https://tc39.github.io/ecma262/#sec-samevalue - module.exports = Object.is || function is(x, y) { - // eslint-disable-next-line no-self-compare - return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/set-global.js": - /*!******************************************************!*\ - !*** ./node_modules/core-js/internals/set-global.js ***! - \******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsSetGlobalJs(module, exports, __webpack_require__) { - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - var createNonEnumerableProperty = __webpack_require__( - /*! ../internals/create-non-enumerable-property */ - "./node_modules/core-js/internals/create-non-enumerable-property.js"); - - module.exports = function (key, value) { - try { - createNonEnumerableProperty(global, key, value); - } catch (error) { - global[key] = value; - } - - return value; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/set-species.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/internals/set-species.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsSetSpeciesJs(module, exports, __webpack_require__) { - "use strict"; - - var getBuiltIn = __webpack_require__( - /*! ../internals/get-built-in */ - "./node_modules/core-js/internals/get-built-in.js"); - - var definePropertyModule = __webpack_require__( - /*! ../internals/object-define-property */ - "./node_modules/core-js/internals/object-define-property.js"); - - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ - "./node_modules/core-js/internals/well-known-symbol.js"); - - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ - "./node_modules/core-js/internals/descriptors.js"); - - var SPECIES = wellKnownSymbol('species'); - - module.exports = function (CONSTRUCTOR_NAME) { - var Constructor = getBuiltIn(CONSTRUCTOR_NAME); - var defineProperty = definePropertyModule.f; - - if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) { - defineProperty(Constructor, SPECIES, { - configurable: true, - get: function get() { - return this; - } - }); - } - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/set-to-string-tag.js": - /*!*************************************************************!*\ - !*** ./node_modules/core-js/internals/set-to-string-tag.js ***! - \*************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsSetToStringTagJs(module, exports, __webpack_require__) { - var defineProperty = __webpack_require__( - /*! ../internals/object-define-property */ - "./node_modules/core-js/internals/object-define-property.js").f; - - var has = __webpack_require__( - /*! ../internals/has */ - "./node_modules/core-js/internals/has.js"); - - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ - "./node_modules/core-js/internals/well-known-symbol.js"); - - var TO_STRING_TAG = wellKnownSymbol('toStringTag'); - - module.exports = function (it, TAG, STATIC) { - if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) { - defineProperty(it, TO_STRING_TAG, { - configurable: true, - value: TAG - }); - } - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/shared-key.js": - /*!******************************************************!*\ - !*** ./node_modules/core-js/internals/shared-key.js ***! - \******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsSharedKeyJs(module, exports, __webpack_require__) { - var shared = __webpack_require__( - /*! ../internals/shared */ - "./node_modules/core-js/internals/shared.js"); - - var uid = __webpack_require__( - /*! ../internals/uid */ - "./node_modules/core-js/internals/uid.js"); - - var keys = shared('keys'); - - module.exports = function (key) { - return keys[key] || (keys[key] = uid(key)); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/shared-store.js": - /*!********************************************************!*\ - !*** ./node_modules/core-js/internals/shared-store.js ***! - \********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsSharedStoreJs(module, exports, __webpack_require__) { - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - var setGlobal = __webpack_require__( - /*! ../internals/set-global */ - "./node_modules/core-js/internals/set-global.js"); - - var SHARED = '__core-js_shared__'; - var store = global[SHARED] || setGlobal(SHARED, {}); - module.exports = store; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/shared.js": - /*!**************************************************!*\ - !*** ./node_modules/core-js/internals/shared.js ***! - \**************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsSharedJs(module, exports, __webpack_require__) { - var IS_PURE = __webpack_require__( - /*! ../internals/is-pure */ - "./node_modules/core-js/internals/is-pure.js"); - - var store = __webpack_require__( - /*! ../internals/shared-store */ - "./node_modules/core-js/internals/shared-store.js"); - - (module.exports = function (key, value) { - return store[key] || (store[key] = value !== undefined ? value : {}); - })('versions', []).push({ - version: '3.6.4', - mode: IS_PURE ? 'pure' : 'global', - copyright: '© 2020 Denis Pushkarev (zloirock.ru)' - }); - /***/ - }, - - /***/ - "./node_modules/core-js/internals/species-constructor.js": - /*!***************************************************************!*\ - !*** ./node_modules/core-js/internals/species-constructor.js ***! - \***************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsSpeciesConstructorJs(module, exports, __webpack_require__) { - var anObject = __webpack_require__( - /*! ../internals/an-object */ - "./node_modules/core-js/internals/an-object.js"); - - var aFunction = __webpack_require__( - /*! ../internals/a-function */ - "./node_modules/core-js/internals/a-function.js"); - - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ - "./node_modules/core-js/internals/well-known-symbol.js"); - - var SPECIES = wellKnownSymbol('species'); // `SpeciesConstructor` abstract operation - // https://tc39.github.io/ecma262/#sec-speciesconstructor - - module.exports = function (O, defaultConstructor) { - var C = anObject(O).constructor; - var S; - return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/string-html-forced.js": - /*!**************************************************************!*\ - !*** ./node_modules/core-js/internals/string-html-forced.js ***! - \**************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsStringHtmlForcedJs(module, exports, __webpack_require__) { - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); // check the existence of a method, lowercase - // of a tag and escaping quotes in arguments - - - module.exports = function (METHOD_NAME) { - return fails(function () { - var test = ''[METHOD_NAME]('"'); - return test !== test.toLowerCase() || test.split('"').length > 3; - }); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/string-multibyte.js": - /*!************************************************************!*\ - !*** ./node_modules/core-js/internals/string-multibyte.js ***! - \************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsStringMultibyteJs(module, exports, __webpack_require__) { - var toInteger = __webpack_require__( - /*! ../internals/to-integer */ - "./node_modules/core-js/internals/to-integer.js"); - - var requireObjectCoercible = __webpack_require__( - /*! ../internals/require-object-coercible */ - "./node_modules/core-js/internals/require-object-coercible.js"); // `String.prototype.{ codePointAt, at }` methods implementation - - - var createMethod = function createMethod(CONVERT_TO_STRING) { - return function ($this, pos) { - var S = String(requireObjectCoercible($this)); - var position = toInteger(pos); - var size = S.length; - var first, second; - if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; - first = S.charCodeAt(position); - return first < 0xD800 || first > 0xDBFF || position + 1 === size || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF ? CONVERT_TO_STRING ? S.charAt(position) : first : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; - }; - }; - - module.exports = { - // `String.prototype.codePointAt` method - // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat - codeAt: createMethod(false), - // `String.prototype.at` method - // https://github.com/mathiasbynens/String.prototype.at - charAt: createMethod(true) - }; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/string-pad.js": - /*!******************************************************!*\ - !*** ./node_modules/core-js/internals/string-pad.js ***! - \******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsStringPadJs(module, exports, __webpack_require__) { - // https://github.com/tc39/proposal-string-pad-start-end - var toLength = __webpack_require__( - /*! ../internals/to-length */ - "./node_modules/core-js/internals/to-length.js"); - - var repeat = __webpack_require__( - /*! ../internals/string-repeat */ - "./node_modules/core-js/internals/string-repeat.js"); - - var requireObjectCoercible = __webpack_require__( - /*! ../internals/require-object-coercible */ - "./node_modules/core-js/internals/require-object-coercible.js"); - - var ceil = Math.ceil; // `String.prototype.{ padStart, padEnd }` methods implementation - - var createMethod = function createMethod(IS_END) { - return function ($this, maxLength, fillString) { - var S = String(requireObjectCoercible($this)); - var stringLength = S.length; - var fillStr = fillString === undefined ? ' ' : String(fillString); - var intMaxLength = toLength(maxLength); - var fillLen, stringFiller; - if (intMaxLength <= stringLength || fillStr == '') return S; - fillLen = intMaxLength - stringLength; - stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length)); - if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen); - return IS_END ? S + stringFiller : stringFiller + S; - }; - }; - - module.exports = { - // `String.prototype.padStart` method - // https://tc39.github.io/ecma262/#sec-string.prototype.padstart - start: createMethod(false), - // `String.prototype.padEnd` method - // https://tc39.github.io/ecma262/#sec-string.prototype.padend - end: createMethod(true) - }; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/string-repeat.js": - /*!*********************************************************!*\ - !*** ./node_modules/core-js/internals/string-repeat.js ***! - \*********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsStringRepeatJs(module, exports, __webpack_require__) { - "use strict"; - - var toInteger = __webpack_require__( - /*! ../internals/to-integer */ - "./node_modules/core-js/internals/to-integer.js"); - - var requireObjectCoercible = __webpack_require__( - /*! ../internals/require-object-coercible */ - "./node_modules/core-js/internals/require-object-coercible.js"); // `String.prototype.repeat` method implementation - // https://tc39.github.io/ecma262/#sec-string.prototype.repeat - - - module.exports = ''.repeat || function repeat(count) { - var str = String(requireObjectCoercible(this)); - var result = ''; - var n = toInteger(count); - if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions'); - - for (; n > 0; (n >>>= 1) && (str += str)) { - if (n & 1) result += str; - } - - return result; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/string-trim-forced.js": - /*!**************************************************************!*\ - !*** ./node_modules/core-js/internals/string-trim-forced.js ***! - \**************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsStringTrimForcedJs(module, exports, __webpack_require__) { - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var whitespaces = __webpack_require__( - /*! ../internals/whitespaces */ - "./node_modules/core-js/internals/whitespaces.js"); - - var non = "\u200B\x85\u180E"; // check that a method works with the correct list - // of whitespaces and has a correct name - - module.exports = function (METHOD_NAME) { - return fails(function () { - return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME; - }); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/string-trim.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/internals/string-trim.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsStringTrimJs(module, exports, __webpack_require__) { - var requireObjectCoercible = __webpack_require__( - /*! ../internals/require-object-coercible */ - "./node_modules/core-js/internals/require-object-coercible.js"); - - var whitespaces = __webpack_require__( - /*! ../internals/whitespaces */ - "./node_modules/core-js/internals/whitespaces.js"); - - var whitespace = '[' + whitespaces + ']'; - var ltrim = RegExp('^' + whitespace + whitespace + '*'); - var rtrim = RegExp(whitespace + whitespace + '*$'); // `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation - - var createMethod = function createMethod(TYPE) { - return function ($this) { - var string = String(requireObjectCoercible($this)); - if (TYPE & 1) string = string.replace(ltrim, ''); - if (TYPE & 2) string = string.replace(rtrim, ''); - return string; - }; - }; - - module.exports = { - // `String.prototype.{ trimLeft, trimStart }` methods - // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart - start: createMethod(1), - // `String.prototype.{ trimRight, trimEnd }` methods - // https://tc39.github.io/ecma262/#sec-string.prototype.trimend - end: createMethod(2), - // `String.prototype.trim` method - // https://tc39.github.io/ecma262/#sec-string.prototype.trim - trim: createMethod(3) - }; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/task.js": - /*!************************************************!*\ - !*** ./node_modules/core-js/internals/task.js ***! - \************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsTaskJs(module, exports, __webpack_require__) { - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var classof = __webpack_require__( - /*! ../internals/classof-raw */ - "./node_modules/core-js/internals/classof-raw.js"); - - var bind = __webpack_require__( - /*! ../internals/function-bind-context */ - "./node_modules/core-js/internals/function-bind-context.js"); - - var html = __webpack_require__( - /*! ../internals/html */ - "./node_modules/core-js/internals/html.js"); - - var createElement = __webpack_require__( - /*! ../internals/document-create-element */ - "./node_modules/core-js/internals/document-create-element.js"); - - var IS_IOS = __webpack_require__( - /*! ../internals/engine-is-ios */ - "./node_modules/core-js/internals/engine-is-ios.js"); - - var location = global.location; - var set = global.setImmediate; - var clear = global.clearImmediate; - var process = global.process; - var MessageChannel = global.MessageChannel; - var Dispatch = global.Dispatch; - var counter = 0; - var queue = {}; - var ONREADYSTATECHANGE = 'onreadystatechange'; - var defer, channel, port; - - var run = function run(id) { - // eslint-disable-next-line no-prototype-builtins - if (queue.hasOwnProperty(id)) { - var fn = queue[id]; - delete queue[id]; - fn(); - } - }; - - var runner = function runner(id) { - return function () { - run(id); - }; - }; - - var listener = function listener(event) { - run(event.data); - }; - - var post = function post(id) { - // old engines have not location.origin - global.postMessage(id + '', location.protocol + '//' + location.host); - }; // Node.js 0.9+ & IE10+ has setImmediate, otherwise: - - - if (!set || !clear) { - set = function setImmediate(fn) { - var args = []; - var i = 1; - - while (arguments.length > i) { - args.push(arguments[i++]); - } - - queue[++counter] = function () { - // eslint-disable-next-line no-new-func - (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args); - }; - - defer(counter); - return counter; - }; - - clear = function clearImmediate(id) { - delete queue[id]; - }; // Node.js 0.8- - - - if (classof(process) == 'process') { - defer = function defer(id) { - process.nextTick(runner(id)); - }; // Sphere (JS game engine) Dispatch API - - } else if (Dispatch && Dispatch.now) { - defer = function defer(id) { - Dispatch.now(runner(id)); - }; // Browsers with MessageChannel, includes WebWorkers - // except iOS - https://github.com/zloirock/core-js/issues/624 - - } else if (MessageChannel && !IS_IOS) { - channel = new MessageChannel(); - port = channel.port2; - channel.port1.onmessage = listener; - defer = bind(port.postMessage, port, 1); // Browsers with postMessage, skip WebWorkers - // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' - } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts && !fails(post)) { - defer = post; - global.addEventListener('message', listener, false); // IE8- - } else if (ONREADYSTATECHANGE in createElement('script')) { - defer = function defer(id) { - html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { - html.removeChild(this); - run(id); - }; - }; // Rest old browsers - - } else { - defer = function defer(id) { - setTimeout(runner(id), 0); - }; - } - } - - module.exports = { - set: set, - clear: clear - }; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/this-number-value.js": - /*!*************************************************************!*\ - !*** ./node_modules/core-js/internals/this-number-value.js ***! - \*************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsThisNumberValueJs(module, exports, __webpack_require__) { - var classof = __webpack_require__( - /*! ../internals/classof-raw */ - "./node_modules/core-js/internals/classof-raw.js"); // `thisNumberValue` abstract operation - // https://tc39.github.io/ecma262/#sec-thisnumbervalue - - - module.exports = function (value) { - if (typeof value != 'number' && classof(value) != 'Number') { - throw TypeError('Incorrect invocation'); - } - - return +value; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/to-absolute-index.js": - /*!*************************************************************!*\ - !*** ./node_modules/core-js/internals/to-absolute-index.js ***! - \*************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsToAbsoluteIndexJs(module, exports, __webpack_require__) { - var toInteger = __webpack_require__( - /*! ../internals/to-integer */ - "./node_modules/core-js/internals/to-integer.js"); - - var max = Math.max; - var min = Math.min; // Helper for a popular repeating case of the spec: - // Let integer be ? ToInteger(index). - // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). - - module.exports = function (index, length) { - var integer = toInteger(index); - return integer < 0 ? max(integer + length, 0) : min(integer, length); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/to-indexed-object.js": - /*!*************************************************************!*\ - !*** ./node_modules/core-js/internals/to-indexed-object.js ***! - \*************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsToIndexedObjectJs(module, exports, __webpack_require__) { - // toObject with fallback for non-array-like ES3 strings - var IndexedObject = __webpack_require__( - /*! ../internals/indexed-object */ - "./node_modules/core-js/internals/indexed-object.js"); - - var requireObjectCoercible = __webpack_require__( - /*! ../internals/require-object-coercible */ - "./node_modules/core-js/internals/require-object-coercible.js"); - - module.exports = function (it) { - return IndexedObject(requireObjectCoercible(it)); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/to-integer.js": - /*!******************************************************!*\ - !*** ./node_modules/core-js/internals/to-integer.js ***! - \******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsToIntegerJs(module, exports) { - var ceil = Math.ceil; - var floor = Math.floor; // `ToInteger` abstract operation - // https://tc39.github.io/ecma262/#sec-tointeger - - module.exports = function (argument) { - return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/to-length.js": - /*!*****************************************************!*\ - !*** ./node_modules/core-js/internals/to-length.js ***! - \*****************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsToLengthJs(module, exports, __webpack_require__) { - var toInteger = __webpack_require__( - /*! ../internals/to-integer */ - "./node_modules/core-js/internals/to-integer.js"); - - var min = Math.min; // `ToLength` abstract operation - // https://tc39.github.io/ecma262/#sec-tolength - - module.exports = function (argument) { - return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/to-object.js": - /*!*****************************************************!*\ - !*** ./node_modules/core-js/internals/to-object.js ***! - \*****************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsToObjectJs(module, exports, __webpack_require__) { - var requireObjectCoercible = __webpack_require__( - /*! ../internals/require-object-coercible */ - "./node_modules/core-js/internals/require-object-coercible.js"); // `ToObject` abstract operation - // https://tc39.github.io/ecma262/#sec-toobject - - - module.exports = function (argument) { - return Object(requireObjectCoercible(argument)); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/to-primitive.js": - /*!********************************************************!*\ - !*** ./node_modules/core-js/internals/to-primitive.js ***! - \********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsToPrimitiveJs(module, exports, __webpack_require__) { - var isObject = __webpack_require__( - /*! ../internals/is-object */ - "./node_modules/core-js/internals/is-object.js"); // `ToPrimitive` abstract operation - // https://tc39.github.io/ecma262/#sec-toprimitive - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - - - module.exports = function (input, PREFERRED_STRING) { - if (!isObject(input)) return input; - var fn, val; - if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; - if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val; - if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; - throw TypeError("Can't convert object to primitive value"); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/to-string-tag-support.js": - /*!*****************************************************************!*\ - !*** ./node_modules/core-js/internals/to-string-tag-support.js ***! - \*****************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsToStringTagSupportJs(module, exports, __webpack_require__) { - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ - "./node_modules/core-js/internals/well-known-symbol.js"); - - var TO_STRING_TAG = wellKnownSymbol('toStringTag'); - var test = {}; - test[TO_STRING_TAG] = 'z'; - module.exports = String(test) === '[object z]'; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/uid.js": - /*!***********************************************!*\ - !*** ./node_modules/core-js/internals/uid.js ***! - \***********************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsUidJs(module, exports) { - var id = 0; - var postfix = Math.random(); - - module.exports = function (key) { - return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36); - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/use-symbol-as-uid.js": - /*!*************************************************************!*\ - !*** ./node_modules/core-js/internals/use-symbol-as-uid.js ***! - \*************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsUseSymbolAsUidJs(module, exports, __webpack_require__) { - var NATIVE_SYMBOL = __webpack_require__( - /*! ../internals/native-symbol */ - "./node_modules/core-js/internals/native-symbol.js"); - - module.exports = NATIVE_SYMBOL // eslint-disable-next-line no-undef - && !Symbol.sham // eslint-disable-next-line no-undef - && typeof Symbol.iterator == 'symbol'; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/well-known-symbol-wrapped.js": - /*!*********************************************************************!*\ - !*** ./node_modules/core-js/internals/well-known-symbol-wrapped.js ***! - \*********************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsWellKnownSymbolWrappedJs(module, exports, __webpack_require__) { - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ - "./node_modules/core-js/internals/well-known-symbol.js"); - - exports.f = wellKnownSymbol; - /***/ - }, - - /***/ - "./node_modules/core-js/internals/well-known-symbol.js": - /*!*************************************************************!*\ - !*** ./node_modules/core-js/internals/well-known-symbol.js ***! - \*************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsWellKnownSymbolJs(module, exports, __webpack_require__) { - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - var shared = __webpack_require__( - /*! ../internals/shared */ - "./node_modules/core-js/internals/shared.js"); - - var has = __webpack_require__( - /*! ../internals/has */ - "./node_modules/core-js/internals/has.js"); - - var uid = __webpack_require__( - /*! ../internals/uid */ - "./node_modules/core-js/internals/uid.js"); - - var NATIVE_SYMBOL = __webpack_require__( - /*! ../internals/native-symbol */ - "./node_modules/core-js/internals/native-symbol.js"); - - var USE_SYMBOL_AS_UID = __webpack_require__( - /*! ../internals/use-symbol-as-uid */ - "./node_modules/core-js/internals/use-symbol-as-uid.js"); - - var WellKnownSymbolsStore = shared('wks'); - var Symbol = global.Symbol; - var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid; - - module.exports = function (name) { - if (!has(WellKnownSymbolsStore, name)) { - if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name); - } - - return WellKnownSymbolsStore[name]; - }; - /***/ - - }, - - /***/ - "./node_modules/core-js/internals/whitespaces.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/internals/whitespaces.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsInternalsWhitespacesJs(module, exports) { - // a string of all valid unicode whitespaces - // eslint-disable-next-line max-len - module.exports = "\t\n\x0B\f\r \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF"; - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.array.concat.js": - /*!*********************************************************!*\ - !*** ./node_modules/core-js/modules/es.array.concat.js ***! - \*********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsArrayConcatJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var isArray = __webpack_require__( - /*! ../internals/is-array */ - "./node_modules/core-js/internals/is-array.js"); - - var isObject = __webpack_require__( - /*! ../internals/is-object */ - "./node_modules/core-js/internals/is-object.js"); - - var toObject = __webpack_require__( - /*! ../internals/to-object */ - "./node_modules/core-js/internals/to-object.js"); - - var toLength = __webpack_require__( - /*! ../internals/to-length */ - "./node_modules/core-js/internals/to-length.js"); - - var createProperty = __webpack_require__( - /*! ../internals/create-property */ - "./node_modules/core-js/internals/create-property.js"); - - var arraySpeciesCreate = __webpack_require__( - /*! ../internals/array-species-create */ - "./node_modules/core-js/internals/array-species-create.js"); - - var arrayMethodHasSpeciesSupport = __webpack_require__( - /*! ../internals/array-method-has-species-support */ - "./node_modules/core-js/internals/array-method-has-species-support.js"); - - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ - "./node_modules/core-js/internals/well-known-symbol.js"); - - var V8_VERSION = __webpack_require__( - /*! ../internals/engine-v8-version */ - "./node_modules/core-js/internals/engine-v8-version.js"); - - var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable'); - var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; - var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded'; // We can't use this feature detection in V8 since it causes - // deoptimization and serious performance degradation - // https://github.com/zloirock/core-js/issues/679 - - var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () { - var array = []; - array[IS_CONCAT_SPREADABLE] = false; - return array.concat()[0] !== array; - }); - var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat'); - - var isConcatSpreadable = function isConcatSpreadable(O) { - if (!isObject(O)) return false; - var spreadable = O[IS_CONCAT_SPREADABLE]; - return spreadable !== undefined ? !!spreadable : isArray(O); - }; - - var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT; // `Array.prototype.concat` method - // https://tc39.github.io/ecma262/#sec-array.prototype.concat - // with adding support of @@isConcatSpreadable and @@species - - $({ - target: 'Array', - proto: true, - forced: FORCED - }, { - concat: function concat(arg) { - // eslint-disable-line no-unused-vars - var O = toObject(this); - var A = arraySpeciesCreate(O, 0); - var n = 0; - var i, k, length, len, E; - - for (i = -1, length = arguments.length; i < length; i++) { - E = i === -1 ? O : arguments[i]; - - if (isConcatSpreadable(E)) { - len = toLength(E.length); - if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED); - - for (k = 0; k < len; k++, n++) { - if (k in E) createProperty(A, n, E[k]); - } - } else { - if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED); - createProperty(A, n++, E); - } - } - - A.length = n; - return A; - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.array.copy-within.js": - /*!**************************************************************!*\ - !*** ./node_modules/core-js/modules/es.array.copy-within.js ***! - \**************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsArrayCopyWithinJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var copyWithin = __webpack_require__( - /*! ../internals/array-copy-within */ - "./node_modules/core-js/internals/array-copy-within.js"); - - var addToUnscopables = __webpack_require__( - /*! ../internals/add-to-unscopables */ - "./node_modules/core-js/internals/add-to-unscopables.js"); // `Array.prototype.copyWithin` method - // https://tc39.github.io/ecma262/#sec-array.prototype.copywithin - - - $({ - target: 'Array', - proto: true - }, { - copyWithin: copyWithin - }); // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables - - addToUnscopables('copyWithin'); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.array.every.js": - /*!********************************************************!*\ - !*** ./node_modules/core-js/modules/es.array.every.js ***! - \********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsArrayEveryJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var $every = __webpack_require__( - /*! ../internals/array-iteration */ - "./node_modules/core-js/internals/array-iteration.js").every; - - var arrayMethodIsStrict = __webpack_require__( - /*! ../internals/array-method-is-strict */ - "./node_modules/core-js/internals/array-method-is-strict.js"); - - var arrayMethodUsesToLength = __webpack_require__( - /*! ../internals/array-method-uses-to-length */ - "./node_modules/core-js/internals/array-method-uses-to-length.js"); - - var STRICT_METHOD = arrayMethodIsStrict('every'); - var USES_TO_LENGTH = arrayMethodUsesToLength('every'); // `Array.prototype.every` method - // https://tc39.github.io/ecma262/#sec-array.prototype.every - - $({ - target: 'Array', - proto: true, - forced: !STRICT_METHOD || !USES_TO_LENGTH - }, { - every: function every(callbackfn - /* , thisArg */ - ) { - return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.array.fill.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/modules/es.array.fill.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsArrayFillJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var fill = __webpack_require__( - /*! ../internals/array-fill */ - "./node_modules/core-js/internals/array-fill.js"); - - var addToUnscopables = __webpack_require__( - /*! ../internals/add-to-unscopables */ - "./node_modules/core-js/internals/add-to-unscopables.js"); // `Array.prototype.fill` method - // https://tc39.github.io/ecma262/#sec-array.prototype.fill - - - $({ - target: 'Array', - proto: true - }, { - fill: fill - }); // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables - - addToUnscopables('fill'); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.array.filter.js": - /*!*********************************************************!*\ - !*** ./node_modules/core-js/modules/es.array.filter.js ***! - \*********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsArrayFilterJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var $filter = __webpack_require__( - /*! ../internals/array-iteration */ - "./node_modules/core-js/internals/array-iteration.js").filter; - - var arrayMethodHasSpeciesSupport = __webpack_require__( - /*! ../internals/array-method-has-species-support */ - "./node_modules/core-js/internals/array-method-has-species-support.js"); - - var arrayMethodUsesToLength = __webpack_require__( - /*! ../internals/array-method-uses-to-length */ - "./node_modules/core-js/internals/array-method-uses-to-length.js"); - - var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter'); // Edge 14- issue - - var USES_TO_LENGTH = arrayMethodUsesToLength('filter'); // `Array.prototype.filter` method - // https://tc39.github.io/ecma262/#sec-array.prototype.filter - // with adding support of @@species - - $({ - target: 'Array', - proto: true, - forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH - }, { - filter: function filter(callbackfn - /* , thisArg */ - ) { - return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.array.find-index.js": - /*!*************************************************************!*\ - !*** ./node_modules/core-js/modules/es.array.find-index.js ***! - \*************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsArrayFindIndexJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var $findIndex = __webpack_require__( - /*! ../internals/array-iteration */ - "./node_modules/core-js/internals/array-iteration.js").findIndex; - - var addToUnscopables = __webpack_require__( - /*! ../internals/add-to-unscopables */ - "./node_modules/core-js/internals/add-to-unscopables.js"); - - var arrayMethodUsesToLength = __webpack_require__( - /*! ../internals/array-method-uses-to-length */ - "./node_modules/core-js/internals/array-method-uses-to-length.js"); - - var FIND_INDEX = 'findIndex'; - var SKIPS_HOLES = true; - var USES_TO_LENGTH = arrayMethodUsesToLength(FIND_INDEX); // Shouldn't skip holes - - if (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { - SKIPS_HOLES = false; - }); // `Array.prototype.findIndex` method - // https://tc39.github.io/ecma262/#sec-array.prototype.findindex - - $({ - target: 'Array', - proto: true, - forced: SKIPS_HOLES || !USES_TO_LENGTH - }, { - findIndex: function findIndex(callbackfn - /* , that = undefined */ - ) { - return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } - }); // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables - - addToUnscopables(FIND_INDEX); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.array.find.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/modules/es.array.find.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsArrayFindJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var $find = __webpack_require__( - /*! ../internals/array-iteration */ - "./node_modules/core-js/internals/array-iteration.js").find; - - var addToUnscopables = __webpack_require__( - /*! ../internals/add-to-unscopables */ - "./node_modules/core-js/internals/add-to-unscopables.js"); - - var arrayMethodUsesToLength = __webpack_require__( - /*! ../internals/array-method-uses-to-length */ - "./node_modules/core-js/internals/array-method-uses-to-length.js"); - - var FIND = 'find'; - var SKIPS_HOLES = true; - var USES_TO_LENGTH = arrayMethodUsesToLength(FIND); // Shouldn't skip holes - - if (FIND in []) Array(1)[FIND](function () { - SKIPS_HOLES = false; - }); // `Array.prototype.find` method - // https://tc39.github.io/ecma262/#sec-array.prototype.find - - $({ - target: 'Array', - proto: true, - forced: SKIPS_HOLES || !USES_TO_LENGTH - }, { - find: function find(callbackfn - /* , that = undefined */ - ) { - return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } - }); // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables - - addToUnscopables(FIND); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.array.for-each.js": - /*!***********************************************************!*\ - !*** ./node_modules/core-js/modules/es.array.for-each.js ***! - \***********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsArrayForEachJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var forEach = __webpack_require__( - /*! ../internals/array-for-each */ - "./node_modules/core-js/internals/array-for-each.js"); // `Array.prototype.forEach` method - // https://tc39.github.io/ecma262/#sec-array.prototype.foreach - - - $({ - target: 'Array', - proto: true, - forced: [].forEach != forEach - }, { - forEach: forEach - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.array.from.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/modules/es.array.from.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsArrayFromJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var from = __webpack_require__( - /*! ../internals/array-from */ - "./node_modules/core-js/internals/array-from.js"); - - var checkCorrectnessOfIteration = __webpack_require__( - /*! ../internals/check-correctness-of-iteration */ - "./node_modules/core-js/internals/check-correctness-of-iteration.js"); - - var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) { - Array.from(iterable); - }); // `Array.from` method - // https://tc39.github.io/ecma262/#sec-array.from - - $({ - target: 'Array', - stat: true, - forced: INCORRECT_ITERATION - }, { - from: from - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.array.index-of.js": - /*!***********************************************************!*\ - !*** ./node_modules/core-js/modules/es.array.index-of.js ***! - \***********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsArrayIndexOfJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var $indexOf = __webpack_require__( - /*! ../internals/array-includes */ - "./node_modules/core-js/internals/array-includes.js").indexOf; - - var arrayMethodIsStrict = __webpack_require__( - /*! ../internals/array-method-is-strict */ - "./node_modules/core-js/internals/array-method-is-strict.js"); - - var arrayMethodUsesToLength = __webpack_require__( - /*! ../internals/array-method-uses-to-length */ - "./node_modules/core-js/internals/array-method-uses-to-length.js"); - - var nativeIndexOf = [].indexOf; - var NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0; - var STRICT_METHOD = arrayMethodIsStrict('indexOf'); - var USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { - ACCESSORS: true, - 1: 0 - }); // `Array.prototype.indexOf` method - // https://tc39.github.io/ecma262/#sec-array.prototype.indexof - - $({ - target: 'Array', - proto: true, - forced: NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH - }, { - indexOf: function indexOf(searchElement - /* , fromIndex = 0 */ - ) { - return NEGATIVE_ZERO // convert -0 to +0 - ? nativeIndexOf.apply(this, arguments) || 0 : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.array.is-array.js": - /*!***********************************************************!*\ - !*** ./node_modules/core-js/modules/es.array.is-array.js ***! - \***********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsArrayIsArrayJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var isArray = __webpack_require__( - /*! ../internals/is-array */ - "./node_modules/core-js/internals/is-array.js"); // `Array.isArray` method - // https://tc39.github.io/ecma262/#sec-array.isarray - - - $({ - target: 'Array', - stat: true - }, { - isArray: isArray - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.array.iterator.js": - /*!***********************************************************!*\ - !*** ./node_modules/core-js/modules/es.array.iterator.js ***! - \***********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsArrayIteratorJs(module, exports, __webpack_require__) { - "use strict"; - - var toIndexedObject = __webpack_require__( - /*! ../internals/to-indexed-object */ - "./node_modules/core-js/internals/to-indexed-object.js"); - - var addToUnscopables = __webpack_require__( - /*! ../internals/add-to-unscopables */ - "./node_modules/core-js/internals/add-to-unscopables.js"); - - var Iterators = __webpack_require__( - /*! ../internals/iterators */ - "./node_modules/core-js/internals/iterators.js"); - - var InternalStateModule = __webpack_require__( - /*! ../internals/internal-state */ - "./node_modules/core-js/internals/internal-state.js"); - - var defineIterator = __webpack_require__( - /*! ../internals/define-iterator */ - "./node_modules/core-js/internals/define-iterator.js"); - - var ARRAY_ITERATOR = 'Array Iterator'; - var setInternalState = InternalStateModule.set; - var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR); // `Array.prototype.entries` method - // https://tc39.github.io/ecma262/#sec-array.prototype.entries - // `Array.prototype.keys` method - // https://tc39.github.io/ecma262/#sec-array.prototype.keys - // `Array.prototype.values` method - // https://tc39.github.io/ecma262/#sec-array.prototype.values - // `Array.prototype[@@iterator]` method - // https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator - // `CreateArrayIterator` internal method - // https://tc39.github.io/ecma262/#sec-createarrayiterator - - module.exports = defineIterator(Array, 'Array', function (iterated, kind) { - setInternalState(this, { - type: ARRAY_ITERATOR, - target: toIndexedObject(iterated), - // target - index: 0, - // next index - kind: kind // kind - - }); // `%ArrayIteratorPrototype%.next` method - // https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next - }, function () { - var state = getInternalState(this); - var target = state.target; - var kind = state.kind; - var index = state.index++; - - if (!target || index >= target.length) { - state.target = undefined; - return { - value: undefined, - done: true - }; - } - - if (kind == 'keys') return { - value: index, - done: false - }; - if (kind == 'values') return { - value: target[index], - done: false - }; - return { - value: [index, target[index]], - done: false - }; - }, 'values'); // argumentsList[@@iterator] is %ArrayProto_values% - // https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject - // https://tc39.github.io/ecma262/#sec-createmappedargumentsobject - - Iterators.Arguments = Iterators.Array; // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables - - addToUnscopables('keys'); - addToUnscopables('values'); - addToUnscopables('entries'); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.array.join.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/modules/es.array.join.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsArrayJoinJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var IndexedObject = __webpack_require__( - /*! ../internals/indexed-object */ - "./node_modules/core-js/internals/indexed-object.js"); - - var toIndexedObject = __webpack_require__( - /*! ../internals/to-indexed-object */ - "./node_modules/core-js/internals/to-indexed-object.js"); - - var arrayMethodIsStrict = __webpack_require__( - /*! ../internals/array-method-is-strict */ - "./node_modules/core-js/internals/array-method-is-strict.js"); - - var nativeJoin = [].join; - var ES3_STRINGS = IndexedObject != Object; - var STRICT_METHOD = arrayMethodIsStrict('join', ','); // `Array.prototype.join` method - // https://tc39.github.io/ecma262/#sec-array.prototype.join - - $({ - target: 'Array', - proto: true, - forced: ES3_STRINGS || !STRICT_METHOD - }, { - join: function join(separator) { - return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.array.last-index-of.js": - /*!****************************************************************!*\ - !*** ./node_modules/core-js/modules/es.array.last-index-of.js ***! - \****************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsArrayLastIndexOfJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var lastIndexOf = __webpack_require__( - /*! ../internals/array-last-index-of */ - "./node_modules/core-js/internals/array-last-index-of.js"); // `Array.prototype.lastIndexOf` method - // https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof - - - $({ - target: 'Array', - proto: true, - forced: lastIndexOf !== [].lastIndexOf - }, { - lastIndexOf: lastIndexOf - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.array.map.js": - /*!******************************************************!*\ - !*** ./node_modules/core-js/modules/es.array.map.js ***! - \******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsArrayMapJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var $map = __webpack_require__( - /*! ../internals/array-iteration */ - "./node_modules/core-js/internals/array-iteration.js").map; - - var arrayMethodHasSpeciesSupport = __webpack_require__( - /*! ../internals/array-method-has-species-support */ - "./node_modules/core-js/internals/array-method-has-species-support.js"); - - var arrayMethodUsesToLength = __webpack_require__( - /*! ../internals/array-method-uses-to-length */ - "./node_modules/core-js/internals/array-method-uses-to-length.js"); - - var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map'); // FF49- issue - - var USES_TO_LENGTH = arrayMethodUsesToLength('map'); // `Array.prototype.map` method - // https://tc39.github.io/ecma262/#sec-array.prototype.map - // with adding support of @@species - - $({ - target: 'Array', - proto: true, - forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH - }, { - map: function map(callbackfn - /* , thisArg */ - ) { - return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.array.of.js": - /*!*****************************************************!*\ - !*** ./node_modules/core-js/modules/es.array.of.js ***! - \*****************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsArrayOfJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var createProperty = __webpack_require__( - /*! ../internals/create-property */ - "./node_modules/core-js/internals/create-property.js"); - - var ISNT_GENERIC = fails(function () { - function F() { - /* empty */ - } - - return !(Array.of.call(F) instanceof F); - }); // `Array.of` method - // https://tc39.github.io/ecma262/#sec-array.of - // WebKit Array.of isn't generic - - $({ - target: 'Array', - stat: true, - forced: ISNT_GENERIC - }, { - of: function of() - /* ...args */ - { - var index = 0; - var argumentsLength = arguments.length; - var result = new (typeof this == 'function' ? this : Array)(argumentsLength); - - while (argumentsLength > index) { - createProperty(result, index, arguments[index++]); - } - - result.length = argumentsLength; - return result; - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.array.reduce-right.js": - /*!***************************************************************!*\ - !*** ./node_modules/core-js/modules/es.array.reduce-right.js ***! - \***************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsArrayReduceRightJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var $reduceRight = __webpack_require__( - /*! ../internals/array-reduce */ - "./node_modules/core-js/internals/array-reduce.js").right; - - var arrayMethodIsStrict = __webpack_require__( - /*! ../internals/array-method-is-strict */ - "./node_modules/core-js/internals/array-method-is-strict.js"); - - var arrayMethodUsesToLength = __webpack_require__( - /*! ../internals/array-method-uses-to-length */ - "./node_modules/core-js/internals/array-method-uses-to-length.js"); - - var STRICT_METHOD = arrayMethodIsStrict('reduceRight'); // For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method - - var USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { - 1: 0 - }); // `Array.prototype.reduceRight` method - // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright - - $({ - target: 'Array', - proto: true, - forced: !STRICT_METHOD || !USES_TO_LENGTH - }, { - reduceRight: function reduceRight(callbackfn - /* , initialValue */ - ) { - return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.array.reduce.js": - /*!*********************************************************!*\ - !*** ./node_modules/core-js/modules/es.array.reduce.js ***! - \*********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsArrayReduceJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var $reduce = __webpack_require__( - /*! ../internals/array-reduce */ - "./node_modules/core-js/internals/array-reduce.js").left; - - var arrayMethodIsStrict = __webpack_require__( - /*! ../internals/array-method-is-strict */ - "./node_modules/core-js/internals/array-method-is-strict.js"); - - var arrayMethodUsesToLength = __webpack_require__( - /*! ../internals/array-method-uses-to-length */ - "./node_modules/core-js/internals/array-method-uses-to-length.js"); - - var STRICT_METHOD = arrayMethodIsStrict('reduce'); - var USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { - 1: 0 - }); // `Array.prototype.reduce` method - // https://tc39.github.io/ecma262/#sec-array.prototype.reduce - - $({ - target: 'Array', - proto: true, - forced: !STRICT_METHOD || !USES_TO_LENGTH - }, { - reduce: function reduce(callbackfn - /* , initialValue */ - ) { - return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.array.slice.js": - /*!********************************************************!*\ - !*** ./node_modules/core-js/modules/es.array.slice.js ***! - \********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsArraySliceJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var isObject = __webpack_require__( - /*! ../internals/is-object */ - "./node_modules/core-js/internals/is-object.js"); - - var isArray = __webpack_require__( - /*! ../internals/is-array */ - "./node_modules/core-js/internals/is-array.js"); - - var toAbsoluteIndex = __webpack_require__( - /*! ../internals/to-absolute-index */ - "./node_modules/core-js/internals/to-absolute-index.js"); - - var toLength = __webpack_require__( - /*! ../internals/to-length */ - "./node_modules/core-js/internals/to-length.js"); - - var toIndexedObject = __webpack_require__( - /*! ../internals/to-indexed-object */ - "./node_modules/core-js/internals/to-indexed-object.js"); - - var createProperty = __webpack_require__( - /*! ../internals/create-property */ - "./node_modules/core-js/internals/create-property.js"); - - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ - "./node_modules/core-js/internals/well-known-symbol.js"); - - var arrayMethodHasSpeciesSupport = __webpack_require__( - /*! ../internals/array-method-has-species-support */ - "./node_modules/core-js/internals/array-method-has-species-support.js"); - - var arrayMethodUsesToLength = __webpack_require__( - /*! ../internals/array-method-uses-to-length */ - "./node_modules/core-js/internals/array-method-uses-to-length.js"); - - var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice'); - var USES_TO_LENGTH = arrayMethodUsesToLength('slice', { - ACCESSORS: true, - 0: 0, - 1: 2 - }); - var SPECIES = wellKnownSymbol('species'); - var nativeSlice = [].slice; - var max = Math.max; // `Array.prototype.slice` method - // https://tc39.github.io/ecma262/#sec-array.prototype.slice - // fallback for not array-like ES3 strings and DOM objects - - $({ - target: 'Array', - proto: true, - forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH - }, { - slice: function slice(start, end) { - var O = toIndexedObject(this); - var length = toLength(O.length); - var k = toAbsoluteIndex(start, length); - var fin = toAbsoluteIndex(end === undefined ? length : end, length); // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible - - var Constructor, result, n; - - if (isArray(O)) { - Constructor = O.constructor; // cross-realm fallback - - if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) { - Constructor = undefined; - } else if (isObject(Constructor)) { - Constructor = Constructor[SPECIES]; - if (Constructor === null) Constructor = undefined; - } - - if (Constructor === Array || Constructor === undefined) { - return nativeSlice.call(O, k, fin); - } - } - - result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0)); - - for (n = 0; k < fin; k++, n++) { - if (k in O) createProperty(result, n, O[k]); - } - - result.length = n; - return result; - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.array.some.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/modules/es.array.some.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsArraySomeJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var $some = __webpack_require__( - /*! ../internals/array-iteration */ - "./node_modules/core-js/internals/array-iteration.js").some; - - var arrayMethodIsStrict = __webpack_require__( - /*! ../internals/array-method-is-strict */ - "./node_modules/core-js/internals/array-method-is-strict.js"); - - var arrayMethodUsesToLength = __webpack_require__( - /*! ../internals/array-method-uses-to-length */ - "./node_modules/core-js/internals/array-method-uses-to-length.js"); - - var STRICT_METHOD = arrayMethodIsStrict('some'); - var USES_TO_LENGTH = arrayMethodUsesToLength('some'); // `Array.prototype.some` method - // https://tc39.github.io/ecma262/#sec-array.prototype.some - - $({ - target: 'Array', - proto: true, - forced: !STRICT_METHOD || !USES_TO_LENGTH - }, { - some: function some(callbackfn - /* , thisArg */ - ) { - return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.array.sort.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/modules/es.array.sort.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsArraySortJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var aFunction = __webpack_require__( - /*! ../internals/a-function */ - "./node_modules/core-js/internals/a-function.js"); - - var toObject = __webpack_require__( - /*! ../internals/to-object */ - "./node_modules/core-js/internals/to-object.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var arrayMethodIsStrict = __webpack_require__( - /*! ../internals/array-method-is-strict */ - "./node_modules/core-js/internals/array-method-is-strict.js"); - - var test = []; - var nativeSort = test.sort; // IE8- - - var FAILS_ON_UNDEFINED = fails(function () { - test.sort(undefined); - }); // V8 bug - - var FAILS_ON_NULL = fails(function () { - test.sort(null); - }); // Old WebKit - - var STRICT_METHOD = arrayMethodIsStrict('sort'); - var FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD; // `Array.prototype.sort` method - // https://tc39.github.io/ecma262/#sec-array.prototype.sort - - $({ - target: 'Array', - proto: true, - forced: FORCED - }, { - sort: function sort(comparefn) { - return comparefn === undefined ? nativeSort.call(toObject(this)) : nativeSort.call(toObject(this), aFunction(comparefn)); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.array.splice.js": - /*!*********************************************************!*\ - !*** ./node_modules/core-js/modules/es.array.splice.js ***! - \*********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsArraySpliceJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var toAbsoluteIndex = __webpack_require__( - /*! ../internals/to-absolute-index */ - "./node_modules/core-js/internals/to-absolute-index.js"); - - var toInteger = __webpack_require__( - /*! ../internals/to-integer */ - "./node_modules/core-js/internals/to-integer.js"); - - var toLength = __webpack_require__( - /*! ../internals/to-length */ - "./node_modules/core-js/internals/to-length.js"); - - var toObject = __webpack_require__( - /*! ../internals/to-object */ - "./node_modules/core-js/internals/to-object.js"); - - var arraySpeciesCreate = __webpack_require__( - /*! ../internals/array-species-create */ - "./node_modules/core-js/internals/array-species-create.js"); - - var createProperty = __webpack_require__( - /*! ../internals/create-property */ - "./node_modules/core-js/internals/create-property.js"); - - var arrayMethodHasSpeciesSupport = __webpack_require__( - /*! ../internals/array-method-has-species-support */ - "./node_modules/core-js/internals/array-method-has-species-support.js"); - - var arrayMethodUsesToLength = __webpack_require__( - /*! ../internals/array-method-uses-to-length */ - "./node_modules/core-js/internals/array-method-uses-to-length.js"); - - var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice'); - var USES_TO_LENGTH = arrayMethodUsesToLength('splice', { - ACCESSORS: true, - 0: 0, - 1: 2 - }); - var max = Math.max; - var min = Math.min; - var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; - var MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded'; // `Array.prototype.splice` method - // https://tc39.github.io/ecma262/#sec-array.prototype.splice - // with adding support of @@species - - $({ - target: 'Array', - proto: true, - forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH - }, { - splice: function splice(start, deleteCount - /* , ...items */ - ) { - var O = toObject(this); - var len = toLength(O.length); - var actualStart = toAbsoluteIndex(start, len); - var argumentsLength = arguments.length; - var insertCount, actualDeleteCount, A, k, from, to; - - if (argumentsLength === 0) { - insertCount = actualDeleteCount = 0; - } else if (argumentsLength === 1) { - insertCount = 0; - actualDeleteCount = len - actualStart; - } else { - insertCount = argumentsLength - 2; - actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart); - } - - if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) { - throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED); - } - - A = arraySpeciesCreate(O, actualDeleteCount); - - for (k = 0; k < actualDeleteCount; k++) { - from = actualStart + k; - if (from in O) createProperty(A, k, O[from]); - } - - A.length = actualDeleteCount; - - if (insertCount < actualDeleteCount) { - for (k = actualStart; k < len - actualDeleteCount; k++) { - from = k + actualDeleteCount; - to = k + insertCount; - if (from in O) O[to] = O[from];else delete O[to]; - } - - for (k = len; k > len - actualDeleteCount + insertCount; k--) { - delete O[k - 1]; - } - } else if (insertCount > actualDeleteCount) { - for (k = len - actualDeleteCount; k > actualStart; k--) { - from = k + actualDeleteCount - 1; - to = k + insertCount - 1; - if (from in O) O[to] = O[from];else delete O[to]; - } - } - - for (k = 0; k < insertCount; k++) { - O[k + actualStart] = arguments[k + 2]; - } - - O.length = len - actualDeleteCount + insertCount; - return A; - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.date.now.js": - /*!*****************************************************!*\ - !*** ./node_modules/core-js/modules/es.date.now.js ***! - \*****************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsDateNowJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); // `Date.now` method - // https://tc39.github.io/ecma262/#sec-date.now - - - $({ - target: 'Date', - stat: true - }, { - now: function now() { - return new Date().getTime(); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.date.to-iso-string.js": - /*!***************************************************************!*\ - !*** ./node_modules/core-js/modules/es.date.to-iso-string.js ***! - \***************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsDateToIsoStringJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var toISOString = __webpack_require__( - /*! ../internals/date-to-iso-string */ - "./node_modules/core-js/internals/date-to-iso-string.js"); // `Date.prototype.toISOString` method - // https://tc39.github.io/ecma262/#sec-date.prototype.toisostring - // PhantomJS / old WebKit has a broken implementations - - - $({ - target: 'Date', - proto: true, - forced: Date.prototype.toISOString !== toISOString - }, { - toISOString: toISOString - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.date.to-json.js": - /*!*********************************************************!*\ - !*** ./node_modules/core-js/modules/es.date.to-json.js ***! - \*********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsDateToJsonJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var toObject = __webpack_require__( - /*! ../internals/to-object */ - "./node_modules/core-js/internals/to-object.js"); - - var toPrimitive = __webpack_require__( - /*! ../internals/to-primitive */ - "./node_modules/core-js/internals/to-primitive.js"); - - var FORCED = fails(function () { - return new Date(NaN).toJSON() !== null || Date.prototype.toJSON.call({ - toISOString: function toISOString() { - return 1; - } - }) !== 1; - }); // `Date.prototype.toJSON` method - // https://tc39.github.io/ecma262/#sec-date.prototype.tojson - - $({ - target: 'Date', - proto: true, - forced: FORCED - }, { - // eslint-disable-next-line no-unused-vars - toJSON: function toJSON(key) { - var O = toObject(this); - var pv = toPrimitive(O); - return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString(); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.date.to-primitive.js": - /*!**************************************************************!*\ - !*** ./node_modules/core-js/modules/es.date.to-primitive.js ***! - \**************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsDateToPrimitiveJs(module, exports, __webpack_require__) { - var createNonEnumerableProperty = __webpack_require__( - /*! ../internals/create-non-enumerable-property */ - "./node_modules/core-js/internals/create-non-enumerable-property.js"); - - var dateToPrimitive = __webpack_require__( - /*! ../internals/date-to-primitive */ - "./node_modules/core-js/internals/date-to-primitive.js"); - - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ - "./node_modules/core-js/internals/well-known-symbol.js"); - - var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); - var DatePrototype = Date.prototype; // `Date.prototype[@@toPrimitive]` method - // https://tc39.github.io/ecma262/#sec-date.prototype-@@toprimitive - - if (!(TO_PRIMITIVE in DatePrototype)) { - createNonEnumerableProperty(DatePrototype, TO_PRIMITIVE, dateToPrimitive); - } - /***/ - - }, - - /***/ - "./node_modules/core-js/modules/es.date.to-string.js": - /*!***********************************************************!*\ - !*** ./node_modules/core-js/modules/es.date.to-string.js ***! - \***********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsDateToStringJs(module, exports, __webpack_require__) { - var redefine = __webpack_require__( - /*! ../internals/redefine */ - "./node_modules/core-js/internals/redefine.js"); - - var DatePrototype = Date.prototype; - var INVALID_DATE = 'Invalid Date'; - var TO_STRING = 'toString'; - var nativeDateToString = DatePrototype[TO_STRING]; - var getTime = DatePrototype.getTime; // `Date.prototype.toString` method - // https://tc39.github.io/ecma262/#sec-date.prototype.tostring - - if (new Date(NaN) + '' != INVALID_DATE) { - redefine(DatePrototype, TO_STRING, function toString() { - var value = getTime.call(this); // eslint-disable-next-line no-self-compare - - return value === value ? nativeDateToString.call(this) : INVALID_DATE; - }); - } - /***/ - - }, - - /***/ - "./node_modules/core-js/modules/es.function.bind.js": - /*!**********************************************************!*\ - !*** ./node_modules/core-js/modules/es.function.bind.js ***! - \**********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsFunctionBindJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var bind = __webpack_require__( - /*! ../internals/function-bind */ - "./node_modules/core-js/internals/function-bind.js"); // `Function.prototype.bind` method - // https://tc39.github.io/ecma262/#sec-function.prototype.bind - - - $({ - target: 'Function', - proto: true - }, { - bind: bind - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.function.has-instance.js": - /*!******************************************************************!*\ - !*** ./node_modules/core-js/modules/es.function.has-instance.js ***! - \******************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsFunctionHasInstanceJs(module, exports, __webpack_require__) { - "use strict"; - - var isObject = __webpack_require__( - /*! ../internals/is-object */ - "./node_modules/core-js/internals/is-object.js"); - - var definePropertyModule = __webpack_require__( - /*! ../internals/object-define-property */ - "./node_modules/core-js/internals/object-define-property.js"); - - var getPrototypeOf = __webpack_require__( - /*! ../internals/object-get-prototype-of */ - "./node_modules/core-js/internals/object-get-prototype-of.js"); - - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ - "./node_modules/core-js/internals/well-known-symbol.js"); - - var HAS_INSTANCE = wellKnownSymbol('hasInstance'); - var FunctionPrototype = Function.prototype; // `Function.prototype[@@hasInstance]` method - // https://tc39.github.io/ecma262/#sec-function.prototype-@@hasinstance - - if (!(HAS_INSTANCE in FunctionPrototype)) { - definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { - value: function value(O) { - if (typeof this != 'function' || !isObject(O)) return false; - if (!isObject(this.prototype)) return O instanceof this; // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this: - - while (O = getPrototypeOf(O)) { - if (this.prototype === O) return true; - } - - return false; - } - }); - } - /***/ - - }, - - /***/ - "./node_modules/core-js/modules/es.function.name.js": - /*!**********************************************************!*\ - !*** ./node_modules/core-js/modules/es.function.name.js ***! - \**********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsFunctionNameJs(module, exports, __webpack_require__) { - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ - "./node_modules/core-js/internals/descriptors.js"); - - var defineProperty = __webpack_require__( - /*! ../internals/object-define-property */ - "./node_modules/core-js/internals/object-define-property.js").f; - - var FunctionPrototype = Function.prototype; - var FunctionPrototypeToString = FunctionPrototype.toString; - var nameRE = /^\s*function ([^ (]*)/; - var NAME = 'name'; // Function instances `.name` property - // https://tc39.github.io/ecma262/#sec-function-instances-name - - if (DESCRIPTORS && !(NAME in FunctionPrototype)) { - defineProperty(FunctionPrototype, NAME, { - configurable: true, - get: function get() { - try { - return FunctionPrototypeToString.call(this).match(nameRE)[1]; - } catch (error) { - return ''; - } - } - }); - } - /***/ - - }, - - /***/ - "./node_modules/core-js/modules/es.json.to-string-tag.js": - /*!***************************************************************!*\ - !*** ./node_modules/core-js/modules/es.json.to-string-tag.js ***! - \***************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsJsonToStringTagJs(module, exports, __webpack_require__) { - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - var setToStringTag = __webpack_require__( - /*! ../internals/set-to-string-tag */ - "./node_modules/core-js/internals/set-to-string-tag.js"); // JSON[@@toStringTag] property - // https://tc39.github.io/ecma262/#sec-json-@@tostringtag - - - setToStringTag(global.JSON, 'JSON', true); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.map.js": - /*!************************************************!*\ - !*** ./node_modules/core-js/modules/es.map.js ***! - \************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsMapJs(module, exports, __webpack_require__) { - "use strict"; - - var collection = __webpack_require__( - /*! ../internals/collection */ - "./node_modules/core-js/internals/collection.js"); - - var collectionStrong = __webpack_require__( - /*! ../internals/collection-strong */ - "./node_modules/core-js/internals/collection-strong.js"); // `Map` constructor - // https://tc39.github.io/ecma262/#sec-map-objects - - - module.exports = collection('Map', function (init) { - return function Map() { - return init(this, arguments.length ? arguments[0] : undefined); - }; - }, collectionStrong); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.math.acosh.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/modules/es.math.acosh.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsMathAcoshJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var log1p = __webpack_require__( - /*! ../internals/math-log1p */ - "./node_modules/core-js/internals/math-log1p.js"); - - var nativeAcosh = Math.acosh; - var log = Math.log; - var sqrt = Math.sqrt; - var LN2 = Math.LN2; - var FORCED = !nativeAcosh // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509 - || Math.floor(nativeAcosh(Number.MAX_VALUE)) != 710 // Tor Browser bug: Math.acosh(Infinity) -> NaN - || nativeAcosh(Infinity) != Infinity; // `Math.acosh` method - // https://tc39.github.io/ecma262/#sec-math.acosh - - $({ - target: 'Math', - stat: true, - forced: FORCED - }, { - acosh: function acosh(x) { - return (x = +x) < 1 ? NaN : x > 94906265.62425156 ? log(x) + LN2 : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1)); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.math.asinh.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/modules/es.math.asinh.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsMathAsinhJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var nativeAsinh = Math.asinh; - var log = Math.log; - var sqrt = Math.sqrt; - - function asinh(x) { - return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : log(x + sqrt(x * x + 1)); - } // `Math.asinh` method - // https://tc39.github.io/ecma262/#sec-math.asinh - // Tor Browser bug: Math.asinh(0) -> -0 - - - $({ - target: 'Math', - stat: true, - forced: !(nativeAsinh && 1 / nativeAsinh(0) > 0) - }, { - asinh: asinh - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.math.atanh.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/modules/es.math.atanh.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsMathAtanhJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var nativeAtanh = Math.atanh; - var log = Math.log; // `Math.atanh` method - // https://tc39.github.io/ecma262/#sec-math.atanh - // Tor Browser bug: Math.atanh(-0) -> 0 - - $({ - target: 'Math', - stat: true, - forced: !(nativeAtanh && 1 / nativeAtanh(-0) < 0) - }, { - atanh: function atanh(x) { - return (x = +x) == 0 ? x : log((1 + x) / (1 - x)) / 2; - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.math.cbrt.js": - /*!******************************************************!*\ - !*** ./node_modules/core-js/modules/es.math.cbrt.js ***! - \******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsMathCbrtJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var sign = __webpack_require__( - /*! ../internals/math-sign */ - "./node_modules/core-js/internals/math-sign.js"); - - var abs = Math.abs; - var pow = Math.pow; // `Math.cbrt` method - // https://tc39.github.io/ecma262/#sec-math.cbrt - - $({ - target: 'Math', - stat: true - }, { - cbrt: function cbrt(x) { - return sign(x = +x) * pow(abs(x), 1 / 3); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.math.clz32.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/modules/es.math.clz32.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsMathClz32Js(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var floor = Math.floor; - var log = Math.log; - var LOG2E = Math.LOG2E; // `Math.clz32` method - // https://tc39.github.io/ecma262/#sec-math.clz32 - - $({ - target: 'Math', - stat: true - }, { - clz32: function clz32(x) { - return (x >>>= 0) ? 31 - floor(log(x + 0.5) * LOG2E) : 32; - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.math.cosh.js": - /*!******************************************************!*\ - !*** ./node_modules/core-js/modules/es.math.cosh.js ***! - \******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsMathCoshJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var expm1 = __webpack_require__( - /*! ../internals/math-expm1 */ - "./node_modules/core-js/internals/math-expm1.js"); - - var nativeCosh = Math.cosh; - var abs = Math.abs; - var E = Math.E; // `Math.cosh` method - // https://tc39.github.io/ecma262/#sec-math.cosh - - $({ - target: 'Math', - stat: true, - forced: !nativeCosh || nativeCosh(710) === Infinity - }, { - cosh: function cosh(x) { - var t = expm1(abs(x) - 1) + 1; - return (t + 1 / (t * E * E)) * (E / 2); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.math.expm1.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/modules/es.math.expm1.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsMathExpm1Js(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var expm1 = __webpack_require__( - /*! ../internals/math-expm1 */ - "./node_modules/core-js/internals/math-expm1.js"); // `Math.expm1` method - // https://tc39.github.io/ecma262/#sec-math.expm1 - - - $({ - target: 'Math', - stat: true, - forced: expm1 != Math.expm1 - }, { - expm1: expm1 - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.math.fround.js": - /*!********************************************************!*\ - !*** ./node_modules/core-js/modules/es.math.fround.js ***! - \********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsMathFroundJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var fround = __webpack_require__( - /*! ../internals/math-fround */ - "./node_modules/core-js/internals/math-fround.js"); // `Math.fround` method - // https://tc39.github.io/ecma262/#sec-math.fround - - - $({ - target: 'Math', - stat: true - }, { - fround: fround - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.math.hypot.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/modules/es.math.hypot.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsMathHypotJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var $hypot = Math.hypot; - var abs = Math.abs; - var sqrt = Math.sqrt; // Chrome 77 bug - // https://bugs.chromium.org/p/v8/issues/detail?id=9546 - - var BUGGY = !!$hypot && $hypot(Infinity, NaN) !== Infinity; // `Math.hypot` method - // https://tc39.github.io/ecma262/#sec-math.hypot - - $({ - target: 'Math', - stat: true, - forced: BUGGY - }, { - hypot: function hypot(value1, value2) { - // eslint-disable-line no-unused-vars - var sum = 0; - var i = 0; - var aLen = arguments.length; - var larg = 0; - var arg, div; - - while (i < aLen) { - arg = abs(arguments[i++]); - - if (larg < arg) { - div = larg / arg; - sum = sum * div * div + 1; - larg = arg; - } else if (arg > 0) { - div = arg / larg; - sum += div * div; - } else sum += arg; - } - - return larg === Infinity ? Infinity : larg * sqrt(sum); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.math.imul.js": - /*!******************************************************!*\ - !*** ./node_modules/core-js/modules/es.math.imul.js ***! - \******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsMathImulJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var nativeImul = Math.imul; - var FORCED = fails(function () { - return nativeImul(0xFFFFFFFF, 5) != -5 || nativeImul.length != 2; - }); // `Math.imul` method - // https://tc39.github.io/ecma262/#sec-math.imul - // some WebKit versions fails with big numbers, some has wrong arity - - $({ - target: 'Math', - stat: true, - forced: FORCED - }, { - imul: function imul(x, y) { - var UINT16 = 0xFFFF; - var xn = +x; - var yn = +y; - var xl = UINT16 & xn; - var yl = UINT16 & yn; - return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.math.log10.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/modules/es.math.log10.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsMathLog10Js(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var log = Math.log; - var LOG10E = Math.LOG10E; // `Math.log10` method - // https://tc39.github.io/ecma262/#sec-math.log10 - - $({ - target: 'Math', - stat: true - }, { - log10: function log10(x) { - return log(x) * LOG10E; - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.math.log1p.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/modules/es.math.log1p.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsMathLog1pJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var log1p = __webpack_require__( - /*! ../internals/math-log1p */ - "./node_modules/core-js/internals/math-log1p.js"); // `Math.log1p` method - // https://tc39.github.io/ecma262/#sec-math.log1p - - - $({ - target: 'Math', - stat: true - }, { - log1p: log1p - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.math.log2.js": - /*!******************************************************!*\ - !*** ./node_modules/core-js/modules/es.math.log2.js ***! - \******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsMathLog2Js(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var log = Math.log; - var LN2 = Math.LN2; // `Math.log2` method - // https://tc39.github.io/ecma262/#sec-math.log2 - - $({ - target: 'Math', - stat: true - }, { - log2: function log2(x) { - return log(x) / LN2; - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.math.sign.js": - /*!******************************************************!*\ - !*** ./node_modules/core-js/modules/es.math.sign.js ***! - \******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsMathSignJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var sign = __webpack_require__( - /*! ../internals/math-sign */ - "./node_modules/core-js/internals/math-sign.js"); // `Math.sign` method - // https://tc39.github.io/ecma262/#sec-math.sign - - - $({ - target: 'Math', - stat: true - }, { - sign: sign - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.math.sinh.js": - /*!******************************************************!*\ - !*** ./node_modules/core-js/modules/es.math.sinh.js ***! - \******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsMathSinhJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var expm1 = __webpack_require__( - /*! ../internals/math-expm1 */ - "./node_modules/core-js/internals/math-expm1.js"); - - var abs = Math.abs; - var exp = Math.exp; - var E = Math.E; - var FORCED = fails(function () { - return Math.sinh(-2e-17) != -2e-17; - }); // `Math.sinh` method - // https://tc39.github.io/ecma262/#sec-math.sinh - // V8 near Chromium 38 has a problem with very small numbers - - $({ - target: 'Math', - stat: true, - forced: FORCED - }, { - sinh: function sinh(x) { - return abs(x = +x) < 1 ? (expm1(x) - expm1(-x)) / 2 : (exp(x - 1) - exp(-x - 1)) * (E / 2); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.math.tanh.js": - /*!******************************************************!*\ - !*** ./node_modules/core-js/modules/es.math.tanh.js ***! - \******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsMathTanhJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var expm1 = __webpack_require__( - /*! ../internals/math-expm1 */ - "./node_modules/core-js/internals/math-expm1.js"); - - var exp = Math.exp; // `Math.tanh` method - // https://tc39.github.io/ecma262/#sec-math.tanh - - $({ - target: 'Math', - stat: true - }, { - tanh: function tanh(x) { - var a = expm1(x = +x); - var b = expm1(-x); - return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x)); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.math.to-string-tag.js": - /*!***************************************************************!*\ - !*** ./node_modules/core-js/modules/es.math.to-string-tag.js ***! - \***************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsMathToStringTagJs(module, exports, __webpack_require__) { - var setToStringTag = __webpack_require__( - /*! ../internals/set-to-string-tag */ - "./node_modules/core-js/internals/set-to-string-tag.js"); // Math[@@toStringTag] property - // https://tc39.github.io/ecma262/#sec-math-@@tostringtag - - - setToStringTag(Math, 'Math', true); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.math.trunc.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/modules/es.math.trunc.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsMathTruncJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var ceil = Math.ceil; - var floor = Math.floor; // `Math.trunc` method - // https://tc39.github.io/ecma262/#sec-math.trunc - - $({ - target: 'Math', - stat: true - }, { - trunc: function trunc(it) { - return (it > 0 ? floor : ceil)(it); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.number.constructor.js": - /*!***************************************************************!*\ - !*** ./node_modules/core-js/modules/es.number.constructor.js ***! - \***************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsNumberConstructorJs(module, exports, __webpack_require__) { - "use strict"; - - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ - "./node_modules/core-js/internals/descriptors.js"); - - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - var isForced = __webpack_require__( - /*! ../internals/is-forced */ - "./node_modules/core-js/internals/is-forced.js"); - - var redefine = __webpack_require__( - /*! ../internals/redefine */ - "./node_modules/core-js/internals/redefine.js"); - - var has = __webpack_require__( - /*! ../internals/has */ - "./node_modules/core-js/internals/has.js"); - - var classof = __webpack_require__( - /*! ../internals/classof-raw */ - "./node_modules/core-js/internals/classof-raw.js"); - - var inheritIfRequired = __webpack_require__( - /*! ../internals/inherit-if-required */ - "./node_modules/core-js/internals/inherit-if-required.js"); - - var toPrimitive = __webpack_require__( - /*! ../internals/to-primitive */ - "./node_modules/core-js/internals/to-primitive.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var create = __webpack_require__( - /*! ../internals/object-create */ - "./node_modules/core-js/internals/object-create.js"); - - var getOwnPropertyNames = __webpack_require__( - /*! ../internals/object-get-own-property-names */ - "./node_modules/core-js/internals/object-get-own-property-names.js").f; - - var getOwnPropertyDescriptor = __webpack_require__( - /*! ../internals/object-get-own-property-descriptor */ - "./node_modules/core-js/internals/object-get-own-property-descriptor.js").f; - - var defineProperty = __webpack_require__( - /*! ../internals/object-define-property */ - "./node_modules/core-js/internals/object-define-property.js").f; - - var trim = __webpack_require__( - /*! ../internals/string-trim */ - "./node_modules/core-js/internals/string-trim.js").trim; - - var NUMBER = 'Number'; - var NativeNumber = global[NUMBER]; - var NumberPrototype = NativeNumber.prototype; // Opera ~12 has broken Object#toString - - var BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER; // `ToNumber` abstract operation - // https://tc39.github.io/ecma262/#sec-tonumber - - var toNumber = function toNumber(argument) { - var it = toPrimitive(argument, false); - var first, third, radix, maxCode, digits, length, index, code; - - if (typeof it == 'string' && it.length > 2) { - it = trim(it); - first = it.charCodeAt(0); - - if (first === 43 || first === 45) { - third = it.charCodeAt(2); - if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix - } else if (first === 48) { - switch (it.charCodeAt(1)) { - case 66: - case 98: - radix = 2; - maxCode = 49; - break; - // fast equal of /^0b[01]+$/i - - case 79: - case 111: - radix = 8; - maxCode = 55; - break; - // fast equal of /^0o[0-7]+$/i - - default: - return +it; - } - - digits = it.slice(2); - length = digits.length; - - for (index = 0; index < length; index++) { - code = digits.charCodeAt(index); // parseInt parses a string to a first unavailable symbol - // but ToNumber should return NaN if a string contains unavailable symbols - - if (code < 48 || code > maxCode) return NaN; - } - - return parseInt(digits, radix); - } - } - - return +it; - }; // `Number` constructor - // https://tc39.github.io/ecma262/#sec-number-constructor - - - if (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) { - var NumberWrapper = function Number(value) { - var it = arguments.length < 1 ? 0 : value; - var dummy = this; - return dummy instanceof NumberWrapper // check on 1..constructor(foo) case - && (BROKEN_CLASSOF ? fails(function () { - NumberPrototype.valueOf.call(dummy); - }) : classof(dummy) != NUMBER) ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it); - }; - - for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : ( // ES3: - 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' + // ES2015 (in case, if modules with ES2015 Number statics required before): - 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' + 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger').split(','), j = 0, key; keys.length > j; j++) { - if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) { - defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key)); - } - } - - NumberWrapper.prototype = NumberPrototype; - NumberPrototype.constructor = NumberWrapper; - redefine(global, NUMBER, NumberWrapper); - } - /***/ - - }, - - /***/ - "./node_modules/core-js/modules/es.number.epsilon.js": - /*!***********************************************************!*\ - !*** ./node_modules/core-js/modules/es.number.epsilon.js ***! - \***********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsNumberEpsilonJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); // `Number.EPSILON` constant - // https://tc39.github.io/ecma262/#sec-number.epsilon - - - $({ - target: 'Number', - stat: true - }, { - EPSILON: Math.pow(2, -52) - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.number.is-finite.js": - /*!*************************************************************!*\ - !*** ./node_modules/core-js/modules/es.number.is-finite.js ***! - \*************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsNumberIsFiniteJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var numberIsFinite = __webpack_require__( - /*! ../internals/number-is-finite */ - "./node_modules/core-js/internals/number-is-finite.js"); // `Number.isFinite` method - // https://tc39.github.io/ecma262/#sec-number.isfinite - - - $({ - target: 'Number', - stat: true - }, { - isFinite: numberIsFinite - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.number.is-integer.js": - /*!**************************************************************!*\ - !*** ./node_modules/core-js/modules/es.number.is-integer.js ***! - \**************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsNumberIsIntegerJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var isInteger = __webpack_require__( - /*! ../internals/is-integer */ - "./node_modules/core-js/internals/is-integer.js"); // `Number.isInteger` method - // https://tc39.github.io/ecma262/#sec-number.isinteger - - - $({ - target: 'Number', - stat: true - }, { - isInteger: isInteger - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.number.is-nan.js": - /*!**********************************************************!*\ - !*** ./node_modules/core-js/modules/es.number.is-nan.js ***! - \**********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsNumberIsNanJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); // `Number.isNaN` method - // https://tc39.github.io/ecma262/#sec-number.isnan - - - $({ - target: 'Number', - stat: true - }, { - isNaN: function isNaN(number) { - // eslint-disable-next-line no-self-compare - return number != number; - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.number.is-safe-integer.js": - /*!*******************************************************************!*\ - !*** ./node_modules/core-js/modules/es.number.is-safe-integer.js ***! - \*******************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsNumberIsSafeIntegerJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var isInteger = __webpack_require__( - /*! ../internals/is-integer */ - "./node_modules/core-js/internals/is-integer.js"); - - var abs = Math.abs; // `Number.isSafeInteger` method - // https://tc39.github.io/ecma262/#sec-number.issafeinteger - - $({ - target: 'Number', - stat: true - }, { - isSafeInteger: function isSafeInteger(number) { - return isInteger(number) && abs(number) <= 0x1FFFFFFFFFFFFF; - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.number.max-safe-integer.js": - /*!********************************************************************!*\ - !*** ./node_modules/core-js/modules/es.number.max-safe-integer.js ***! - \********************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsNumberMaxSafeIntegerJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); // `Number.MAX_SAFE_INTEGER` constant - // https://tc39.github.io/ecma262/#sec-number.max_safe_integer - - - $({ - target: 'Number', - stat: true - }, { - MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.number.min-safe-integer.js": - /*!********************************************************************!*\ - !*** ./node_modules/core-js/modules/es.number.min-safe-integer.js ***! - \********************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsNumberMinSafeIntegerJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); // `Number.MIN_SAFE_INTEGER` constant - // https://tc39.github.io/ecma262/#sec-number.min_safe_integer - - - $({ - target: 'Number', - stat: true - }, { - MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.number.parse-float.js": - /*!***************************************************************!*\ - !*** ./node_modules/core-js/modules/es.number.parse-float.js ***! - \***************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsNumberParseFloatJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var parseFloat = __webpack_require__( - /*! ../internals/number-parse-float */ - "./node_modules/core-js/internals/number-parse-float.js"); // `Number.parseFloat` method - // https://tc39.github.io/ecma262/#sec-number.parseFloat - - - $({ - target: 'Number', - stat: true, - forced: Number.parseFloat != parseFloat - }, { - parseFloat: parseFloat - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.number.parse-int.js": - /*!*************************************************************!*\ - !*** ./node_modules/core-js/modules/es.number.parse-int.js ***! - \*************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsNumberParseIntJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var parseInt = __webpack_require__( - /*! ../internals/number-parse-int */ - "./node_modules/core-js/internals/number-parse-int.js"); // `Number.parseInt` method - // https://tc39.github.io/ecma262/#sec-number.parseint - - - $({ - target: 'Number', - stat: true, - forced: Number.parseInt != parseInt - }, { - parseInt: parseInt - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.number.to-fixed.js": - /*!************************************************************!*\ - !*** ./node_modules/core-js/modules/es.number.to-fixed.js ***! - \************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsNumberToFixedJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var toInteger = __webpack_require__( - /*! ../internals/to-integer */ - "./node_modules/core-js/internals/to-integer.js"); - - var thisNumberValue = __webpack_require__( - /*! ../internals/this-number-value */ - "./node_modules/core-js/internals/this-number-value.js"); - - var repeat = __webpack_require__( - /*! ../internals/string-repeat */ - "./node_modules/core-js/internals/string-repeat.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var nativeToFixed = 1.0.toFixed; - var floor = Math.floor; - - var pow = function pow(x, n, acc) { - return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc); - }; - - var log = function log(x) { - var n = 0; - var x2 = x; - - while (x2 >= 4096) { - n += 12; - x2 /= 4096; - } - - while (x2 >= 2) { - n += 1; - x2 /= 2; - } - - return n; - }; - - var FORCED = nativeToFixed && (0.00008.toFixed(3) !== '0.000' || 0.9.toFixed(0) !== '1' || 1.255.toFixed(2) !== '1.25' || 1000000000000000128.0.toFixed(0) !== '1000000000000000128') || !fails(function () { - // V8 ~ Android 4.3- - nativeToFixed.call({}); - }); // `Number.prototype.toFixed` method - // https://tc39.github.io/ecma262/#sec-number.prototype.tofixed - - $({ - target: 'Number', - proto: true, - forced: FORCED - }, { - // eslint-disable-next-line max-statements - toFixed: function toFixed(fractionDigits) { - var number = thisNumberValue(this); - var fractDigits = toInteger(fractionDigits); - var data = [0, 0, 0, 0, 0, 0]; - var sign = ''; - var result = '0'; - var e, z, j, k; - - var multiply = function multiply(n, c) { - var index = -1; - var c2 = c; - - while (++index < 6) { - c2 += n * data[index]; - data[index] = c2 % 1e7; - c2 = floor(c2 / 1e7); - } - }; - - var divide = function divide(n) { - var index = 6; - var c = 0; - - while (--index >= 0) { - c += data[index]; - data[index] = floor(c / n); - c = c % n * 1e7; - } - }; - - var dataToString = function dataToString() { - var index = 6; - var s = ''; - - while (--index >= 0) { - if (s !== '' || index === 0 || data[index] !== 0) { - var t = String(data[index]); - s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t; - } - } - - return s; - }; - - if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits'); // eslint-disable-next-line no-self-compare - - if (number != number) return 'NaN'; - if (number <= -1e21 || number >= 1e21) return String(number); - - if (number < 0) { - sign = '-'; - number = -number; - } - - if (number > 1e-21) { - e = log(number * pow(2, 69, 1)) - 69; - z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1); - z *= 0x10000000000000; - e = 52 - e; - - if (e > 0) { - multiply(0, z); - j = fractDigits; - - while (j >= 7) { - multiply(1e7, 0); - j -= 7; - } - - multiply(pow(10, j, 1), 0); - j = e - 1; - - while (j >= 23) { - divide(1 << 23); - j -= 23; - } - - divide(1 << j); - multiply(1, 1); - divide(2); - result = dataToString(); - } else { - multiply(0, z); - multiply(1 << -e, 0); - result = dataToString() + repeat.call('0', fractDigits); - } - } - - if (fractDigits > 0) { - k = result.length; - result = sign + (k <= fractDigits ? '0.' + repeat.call('0', fractDigits - k) + result : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits)); - } else { - result = sign + result; - } - - return result; - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.number.to-precision.js": - /*!****************************************************************!*\ - !*** ./node_modules/core-js/modules/es.number.to-precision.js ***! - \****************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsNumberToPrecisionJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var thisNumberValue = __webpack_require__( - /*! ../internals/this-number-value */ - "./node_modules/core-js/internals/this-number-value.js"); - - var nativeToPrecision = 1.0.toPrecision; - var FORCED = fails(function () { - // IE7- - return nativeToPrecision.call(1, undefined) !== '1'; - }) || !fails(function () { - // V8 ~ Android 4.3- - nativeToPrecision.call({}); - }); // `Number.prototype.toPrecision` method - // https://tc39.github.io/ecma262/#sec-number.prototype.toprecision - - $({ - target: 'Number', - proto: true, - forced: FORCED - }, { - toPrecision: function toPrecision(precision) { - return precision === undefined ? nativeToPrecision.call(thisNumberValue(this)) : nativeToPrecision.call(thisNumberValue(this), precision); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.object.assign.js": - /*!**********************************************************!*\ - !*** ./node_modules/core-js/modules/es.object.assign.js ***! - \**********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsObjectAssignJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var assign = __webpack_require__( - /*! ../internals/object-assign */ - "./node_modules/core-js/internals/object-assign.js"); // `Object.assign` method - // https://tc39.github.io/ecma262/#sec-object.assign - - - $({ - target: 'Object', - stat: true, - forced: Object.assign !== assign - }, { - assign: assign - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.object.create.js": - /*!**********************************************************!*\ - !*** ./node_modules/core-js/modules/es.object.create.js ***! - \**********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsObjectCreateJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ - "./node_modules/core-js/internals/descriptors.js"); - - var create = __webpack_require__( - /*! ../internals/object-create */ - "./node_modules/core-js/internals/object-create.js"); // `Object.create` method - // https://tc39.github.io/ecma262/#sec-object.create - - - $({ - target: 'Object', - stat: true, - sham: !DESCRIPTORS - }, { - create: create - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.object.define-properties.js": - /*!*********************************************************************!*\ - !*** ./node_modules/core-js/modules/es.object.define-properties.js ***! - \*********************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsObjectDefinePropertiesJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ - "./node_modules/core-js/internals/descriptors.js"); - - var defineProperties = __webpack_require__( - /*! ../internals/object-define-properties */ - "./node_modules/core-js/internals/object-define-properties.js"); // `Object.defineProperties` method - // https://tc39.github.io/ecma262/#sec-object.defineproperties - - - $({ - target: 'Object', - stat: true, - forced: !DESCRIPTORS, - sham: !DESCRIPTORS - }, { - defineProperties: defineProperties - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.object.define-property.js": - /*!*******************************************************************!*\ - !*** ./node_modules/core-js/modules/es.object.define-property.js ***! - \*******************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsObjectDefinePropertyJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ - "./node_modules/core-js/internals/descriptors.js"); - - var objectDefinePropertyModile = __webpack_require__( - /*! ../internals/object-define-property */ - "./node_modules/core-js/internals/object-define-property.js"); // `Object.defineProperty` method - // https://tc39.github.io/ecma262/#sec-object.defineproperty - - - $({ - target: 'Object', - stat: true, - forced: !DESCRIPTORS, - sham: !DESCRIPTORS - }, { - defineProperty: objectDefinePropertyModile.f - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.object.freeze.js": - /*!**********************************************************!*\ - !*** ./node_modules/core-js/modules/es.object.freeze.js ***! - \**********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsObjectFreezeJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var FREEZING = __webpack_require__( - /*! ../internals/freezing */ - "./node_modules/core-js/internals/freezing.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var isObject = __webpack_require__( - /*! ../internals/is-object */ - "./node_modules/core-js/internals/is-object.js"); - - var onFreeze = __webpack_require__( - /*! ../internals/internal-metadata */ - "./node_modules/core-js/internals/internal-metadata.js").onFreeze; - - var nativeFreeze = Object.freeze; - var FAILS_ON_PRIMITIVES = fails(function () { - nativeFreeze(1); - }); // `Object.freeze` method - // https://tc39.github.io/ecma262/#sec-object.freeze - - $({ - target: 'Object', - stat: true, - forced: FAILS_ON_PRIMITIVES, - sham: !FREEZING - }, { - freeze: function freeze(it) { - return nativeFreeze && isObject(it) ? nativeFreeze(onFreeze(it)) : it; - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.object.get-own-property-descriptor.js": - /*!*******************************************************************************!*\ - !*** ./node_modules/core-js/modules/es.object.get-own-property-descriptor.js ***! - \*******************************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsObjectGetOwnPropertyDescriptorJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var toIndexedObject = __webpack_require__( - /*! ../internals/to-indexed-object */ - "./node_modules/core-js/internals/to-indexed-object.js"); - - var nativeGetOwnPropertyDescriptor = __webpack_require__( - /*! ../internals/object-get-own-property-descriptor */ - "./node_modules/core-js/internals/object-get-own-property-descriptor.js").f; - - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ - "./node_modules/core-js/internals/descriptors.js"); - - var FAILS_ON_PRIMITIVES = fails(function () { - nativeGetOwnPropertyDescriptor(1); - }); - var FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES; // `Object.getOwnPropertyDescriptor` method - // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor - - $({ - target: 'Object', - stat: true, - forced: FORCED, - sham: !DESCRIPTORS - }, { - getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) { - return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.object.get-own-property-names.js": - /*!**************************************************************************!*\ - !*** ./node_modules/core-js/modules/es.object.get-own-property-names.js ***! - \**************************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsObjectGetOwnPropertyNamesJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var nativeGetOwnPropertyNames = __webpack_require__( - /*! ../internals/object-get-own-property-names-external */ - "./node_modules/core-js/internals/object-get-own-property-names-external.js").f; - - var FAILS_ON_PRIMITIVES = fails(function () { - return !Object.getOwnPropertyNames(1); - }); // `Object.getOwnPropertyNames` method - // https://tc39.github.io/ecma262/#sec-object.getownpropertynames - - $({ - target: 'Object', - stat: true, - forced: FAILS_ON_PRIMITIVES - }, { - getOwnPropertyNames: nativeGetOwnPropertyNames - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.object.get-prototype-of.js": - /*!********************************************************************!*\ - !*** ./node_modules/core-js/modules/es.object.get-prototype-of.js ***! - \********************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsObjectGetPrototypeOfJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var toObject = __webpack_require__( - /*! ../internals/to-object */ - "./node_modules/core-js/internals/to-object.js"); - - var nativeGetPrototypeOf = __webpack_require__( - /*! ../internals/object-get-prototype-of */ - "./node_modules/core-js/internals/object-get-prototype-of.js"); - - var CORRECT_PROTOTYPE_GETTER = __webpack_require__( - /*! ../internals/correct-prototype-getter */ - "./node_modules/core-js/internals/correct-prototype-getter.js"); - - var FAILS_ON_PRIMITIVES = fails(function () { - nativeGetPrototypeOf(1); - }); // `Object.getPrototypeOf` method - // https://tc39.github.io/ecma262/#sec-object.getprototypeof - - $({ - target: 'Object', - stat: true, - forced: FAILS_ON_PRIMITIVES, - sham: !CORRECT_PROTOTYPE_GETTER - }, { - getPrototypeOf: function getPrototypeOf(it) { - return nativeGetPrototypeOf(toObject(it)); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.object.is-extensible.js": - /*!*****************************************************************!*\ - !*** ./node_modules/core-js/modules/es.object.is-extensible.js ***! - \*****************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsObjectIsExtensibleJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var isObject = __webpack_require__( - /*! ../internals/is-object */ - "./node_modules/core-js/internals/is-object.js"); - - var nativeIsExtensible = Object.isExtensible; - var FAILS_ON_PRIMITIVES = fails(function () { - nativeIsExtensible(1); - }); // `Object.isExtensible` method - // https://tc39.github.io/ecma262/#sec-object.isextensible - - $({ - target: 'Object', - stat: true, - forced: FAILS_ON_PRIMITIVES - }, { - isExtensible: function isExtensible(it) { - return isObject(it) ? nativeIsExtensible ? nativeIsExtensible(it) : true : false; - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.object.is-frozen.js": - /*!*************************************************************!*\ - !*** ./node_modules/core-js/modules/es.object.is-frozen.js ***! - \*************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsObjectIsFrozenJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var isObject = __webpack_require__( - /*! ../internals/is-object */ - "./node_modules/core-js/internals/is-object.js"); - - var nativeIsFrozen = Object.isFrozen; - var FAILS_ON_PRIMITIVES = fails(function () { - nativeIsFrozen(1); - }); // `Object.isFrozen` method - // https://tc39.github.io/ecma262/#sec-object.isfrozen - - $({ - target: 'Object', - stat: true, - forced: FAILS_ON_PRIMITIVES - }, { - isFrozen: function isFrozen(it) { - return isObject(it) ? nativeIsFrozen ? nativeIsFrozen(it) : false : true; - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.object.is-sealed.js": - /*!*************************************************************!*\ - !*** ./node_modules/core-js/modules/es.object.is-sealed.js ***! - \*************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsObjectIsSealedJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var isObject = __webpack_require__( - /*! ../internals/is-object */ - "./node_modules/core-js/internals/is-object.js"); - - var nativeIsSealed = Object.isSealed; - var FAILS_ON_PRIMITIVES = fails(function () { - nativeIsSealed(1); - }); // `Object.isSealed` method - // https://tc39.github.io/ecma262/#sec-object.issealed - - $({ - target: 'Object', - stat: true, - forced: FAILS_ON_PRIMITIVES - }, { - isSealed: function isSealed(it) { - return isObject(it) ? nativeIsSealed ? nativeIsSealed(it) : false : true; - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.object.is.js": - /*!******************************************************!*\ - !*** ./node_modules/core-js/modules/es.object.is.js ***! - \******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsObjectIsJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var is = __webpack_require__( - /*! ../internals/same-value */ - "./node_modules/core-js/internals/same-value.js"); // `Object.is` method - // https://tc39.github.io/ecma262/#sec-object.is - - - $({ - target: 'Object', - stat: true - }, { - is: is - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.object.keys.js": - /*!********************************************************!*\ - !*** ./node_modules/core-js/modules/es.object.keys.js ***! - \********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsObjectKeysJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var toObject = __webpack_require__( - /*! ../internals/to-object */ - "./node_modules/core-js/internals/to-object.js"); - - var nativeKeys = __webpack_require__( - /*! ../internals/object-keys */ - "./node_modules/core-js/internals/object-keys.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var FAILS_ON_PRIMITIVES = fails(function () { - nativeKeys(1); - }); // `Object.keys` method - // https://tc39.github.io/ecma262/#sec-object.keys - - $({ - target: 'Object', - stat: true, - forced: FAILS_ON_PRIMITIVES - }, { - keys: function keys(it) { - return nativeKeys(toObject(it)); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.object.prevent-extensions.js": - /*!**********************************************************************!*\ - !*** ./node_modules/core-js/modules/es.object.prevent-extensions.js ***! - \**********************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsObjectPreventExtensionsJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var isObject = __webpack_require__( - /*! ../internals/is-object */ - "./node_modules/core-js/internals/is-object.js"); - - var onFreeze = __webpack_require__( - /*! ../internals/internal-metadata */ - "./node_modules/core-js/internals/internal-metadata.js").onFreeze; - - var FREEZING = __webpack_require__( - /*! ../internals/freezing */ - "./node_modules/core-js/internals/freezing.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var nativePreventExtensions = Object.preventExtensions; - var FAILS_ON_PRIMITIVES = fails(function () { - nativePreventExtensions(1); - }); // `Object.preventExtensions` method - // https://tc39.github.io/ecma262/#sec-object.preventextensions - - $({ - target: 'Object', - stat: true, - forced: FAILS_ON_PRIMITIVES, - sham: !FREEZING - }, { - preventExtensions: function preventExtensions(it) { - return nativePreventExtensions && isObject(it) ? nativePreventExtensions(onFreeze(it)) : it; - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.object.seal.js": - /*!********************************************************!*\ - !*** ./node_modules/core-js/modules/es.object.seal.js ***! - \********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsObjectSealJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var isObject = __webpack_require__( - /*! ../internals/is-object */ - "./node_modules/core-js/internals/is-object.js"); - - var onFreeze = __webpack_require__( - /*! ../internals/internal-metadata */ - "./node_modules/core-js/internals/internal-metadata.js").onFreeze; - - var FREEZING = __webpack_require__( - /*! ../internals/freezing */ - "./node_modules/core-js/internals/freezing.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var nativeSeal = Object.seal; - var FAILS_ON_PRIMITIVES = fails(function () { - nativeSeal(1); - }); // `Object.seal` method - // https://tc39.github.io/ecma262/#sec-object.seal - - $({ - target: 'Object', - stat: true, - forced: FAILS_ON_PRIMITIVES, - sham: !FREEZING - }, { - seal: function seal(it) { - return nativeSeal && isObject(it) ? nativeSeal(onFreeze(it)) : it; - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.object.set-prototype-of.js": - /*!********************************************************************!*\ - !*** ./node_modules/core-js/modules/es.object.set-prototype-of.js ***! - \********************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsObjectSetPrototypeOfJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var setPrototypeOf = __webpack_require__( - /*! ../internals/object-set-prototype-of */ - "./node_modules/core-js/internals/object-set-prototype-of.js"); // `Object.setPrototypeOf` method - // https://tc39.github.io/ecma262/#sec-object.setprototypeof - - - $({ - target: 'Object', - stat: true - }, { - setPrototypeOf: setPrototypeOf - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.object.to-string.js": - /*!*************************************************************!*\ - !*** ./node_modules/core-js/modules/es.object.to-string.js ***! - \*************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsObjectToStringJs(module, exports, __webpack_require__) { - var TO_STRING_TAG_SUPPORT = __webpack_require__( - /*! ../internals/to-string-tag-support */ - "./node_modules/core-js/internals/to-string-tag-support.js"); - - var redefine = __webpack_require__( - /*! ../internals/redefine */ - "./node_modules/core-js/internals/redefine.js"); - - var toString = __webpack_require__( - /*! ../internals/object-to-string */ - "./node_modules/core-js/internals/object-to-string.js"); // `Object.prototype.toString` method - // https://tc39.github.io/ecma262/#sec-object.prototype.tostring - - - if (!TO_STRING_TAG_SUPPORT) { - redefine(Object.prototype, 'toString', toString, { - unsafe: true - }); - } - /***/ - - }, - - /***/ - "./node_modules/core-js/modules/es.parse-float.js": - /*!********************************************************!*\ - !*** ./node_modules/core-js/modules/es.parse-float.js ***! - \********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsParseFloatJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var parseFloatImplementation = __webpack_require__( - /*! ../internals/number-parse-float */ - "./node_modules/core-js/internals/number-parse-float.js"); // `parseFloat` method - // https://tc39.github.io/ecma262/#sec-parsefloat-string - - - $({ - global: true, - forced: parseFloat != parseFloatImplementation - }, { - parseFloat: parseFloatImplementation - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.parse-int.js": - /*!******************************************************!*\ - !*** ./node_modules/core-js/modules/es.parse-int.js ***! - \******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsParseIntJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var parseIntImplementation = __webpack_require__( - /*! ../internals/number-parse-int */ - "./node_modules/core-js/internals/number-parse-int.js"); // `parseInt` method - // https://tc39.github.io/ecma262/#sec-parseint-string-radix - - - $({ - global: true, - forced: parseInt != parseIntImplementation - }, { - parseInt: parseIntImplementation - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.promise.js": - /*!****************************************************!*\ - !*** ./node_modules/core-js/modules/es.promise.js ***! - \****************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsPromiseJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var IS_PURE = __webpack_require__( - /*! ../internals/is-pure */ - "./node_modules/core-js/internals/is-pure.js"); - - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - var getBuiltIn = __webpack_require__( - /*! ../internals/get-built-in */ - "./node_modules/core-js/internals/get-built-in.js"); - - var NativePromise = __webpack_require__( - /*! ../internals/native-promise-constructor */ - "./node_modules/core-js/internals/native-promise-constructor.js"); - - var redefine = __webpack_require__( - /*! ../internals/redefine */ - "./node_modules/core-js/internals/redefine.js"); - - var redefineAll = __webpack_require__( - /*! ../internals/redefine-all */ - "./node_modules/core-js/internals/redefine-all.js"); - - var setToStringTag = __webpack_require__( - /*! ../internals/set-to-string-tag */ - "./node_modules/core-js/internals/set-to-string-tag.js"); - - var setSpecies = __webpack_require__( - /*! ../internals/set-species */ - "./node_modules/core-js/internals/set-species.js"); - - var isObject = __webpack_require__( - /*! ../internals/is-object */ - "./node_modules/core-js/internals/is-object.js"); - - var aFunction = __webpack_require__( - /*! ../internals/a-function */ - "./node_modules/core-js/internals/a-function.js"); - - var anInstance = __webpack_require__( - /*! ../internals/an-instance */ - "./node_modules/core-js/internals/an-instance.js"); - - var classof = __webpack_require__( - /*! ../internals/classof-raw */ - "./node_modules/core-js/internals/classof-raw.js"); - - var inspectSource = __webpack_require__( - /*! ../internals/inspect-source */ - "./node_modules/core-js/internals/inspect-source.js"); - - var iterate = __webpack_require__( - /*! ../internals/iterate */ - "./node_modules/core-js/internals/iterate.js"); - - var checkCorrectnessOfIteration = __webpack_require__( - /*! ../internals/check-correctness-of-iteration */ - "./node_modules/core-js/internals/check-correctness-of-iteration.js"); - - var speciesConstructor = __webpack_require__( - /*! ../internals/species-constructor */ - "./node_modules/core-js/internals/species-constructor.js"); - - var task = __webpack_require__( - /*! ../internals/task */ - "./node_modules/core-js/internals/task.js").set; - - var microtask = __webpack_require__( - /*! ../internals/microtask */ - "./node_modules/core-js/internals/microtask.js"); - - var promiseResolve = __webpack_require__( - /*! ../internals/promise-resolve */ - "./node_modules/core-js/internals/promise-resolve.js"); - - var hostReportErrors = __webpack_require__( - /*! ../internals/host-report-errors */ - "./node_modules/core-js/internals/host-report-errors.js"); - - var newPromiseCapabilityModule = __webpack_require__( - /*! ../internals/new-promise-capability */ - "./node_modules/core-js/internals/new-promise-capability.js"); - - var perform = __webpack_require__( - /*! ../internals/perform */ - "./node_modules/core-js/internals/perform.js"); - - var InternalStateModule = __webpack_require__( - /*! ../internals/internal-state */ - "./node_modules/core-js/internals/internal-state.js"); - - var isForced = __webpack_require__( - /*! ../internals/is-forced */ - "./node_modules/core-js/internals/is-forced.js"); - - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ - "./node_modules/core-js/internals/well-known-symbol.js"); - - var V8_VERSION = __webpack_require__( - /*! ../internals/engine-v8-version */ - "./node_modules/core-js/internals/engine-v8-version.js"); - - var SPECIES = wellKnownSymbol('species'); - var PROMISE = 'Promise'; - var getInternalState = InternalStateModule.get; - var setInternalState = InternalStateModule.set; - var getInternalPromiseState = InternalStateModule.getterFor(PROMISE); - var PromiseConstructor = NativePromise; - var TypeError = global.TypeError; - var document = global.document; - var process = global.process; - var $fetch = getBuiltIn('fetch'); - var newPromiseCapability = newPromiseCapabilityModule.f; - var newGenericPromiseCapability = newPromiseCapability; - var IS_NODE = classof(process) == 'process'; - var DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent); - var UNHANDLED_REJECTION = 'unhandledrejection'; - var REJECTION_HANDLED = 'rejectionhandled'; - var PENDING = 0; - var FULFILLED = 1; - var REJECTED = 2; - var HANDLED = 1; - var UNHANDLED = 2; - var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; - var FORCED = isForced(PROMISE, function () { - var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor); - - if (!GLOBAL_CORE_JS_PROMISE) { - // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables - // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 - // We can't detect it synchronously, so just check versions - if (V8_VERSION === 66) return true; // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test - - if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true; - } // We need Promise#finally in the pure version for preventing prototype pollution - - - if (IS_PURE && !PromiseConstructor.prototype['finally']) return true; // We can't use @@species feature detection in V8 since it causes - // deoptimization and performance degradation - // https://github.com/zloirock/core-js/issues/679 - - if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false; // Detect correctness of subclassing with @@species support - - var promise = PromiseConstructor.resolve(1); - - var FakePromise = function FakePromise(exec) { - exec(function () { - /* empty */ - }, function () { - /* empty */ - }); - }; - - var constructor = promise.constructor = {}; - constructor[SPECIES] = FakePromise; - return !(promise.then(function () { - /* empty */ - }) instanceof FakePromise); - }); - var INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) { - PromiseConstructor.all(iterable)['catch'](function () { - /* empty */ - }); - }); // helpers - - var isThenable = function isThenable(it) { - var then; - return isObject(it) && typeof (then = it.then) == 'function' ? then : false; - }; - - var notify = function notify(promise, state, isReject) { - if (state.notified) return; - state.notified = true; - var chain = state.reactions; - microtask(function () { - var value = state.value; - var ok = state.state == FULFILLED; - var index = 0; // variable length - can't use forEach - - while (chain.length > index) { - var reaction = chain[index++]; - var handler = ok ? reaction.ok : reaction.fail; - var resolve = reaction.resolve; - var reject = reaction.reject; - var domain = reaction.domain; - var result, then, exited; - - try { - if (handler) { - if (!ok) { - if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state); - state.rejection = HANDLED; - } - - if (handler === true) result = value;else { - if (domain) domain.enter(); - result = handler(value); // can throw - - if (domain) { - domain.exit(); - exited = true; - } - } - - if (result === reaction.promise) { - reject(TypeError('Promise-chain cycle')); - } else if (then = isThenable(result)) { - then.call(result, resolve, reject); - } else resolve(result); - } else reject(value); - } catch (error) { - if (domain && !exited) domain.exit(); - reject(error); - } - } - - state.reactions = []; - state.notified = false; - if (isReject && !state.rejection) onUnhandled(promise, state); - }); - }; - - var dispatchEvent = function dispatchEvent(name, promise, reason) { - var event, handler; - - if (DISPATCH_EVENT) { - event = document.createEvent('Event'); - event.promise = promise; - event.reason = reason; - event.initEvent(name, false, true); - global.dispatchEvent(event); - } else event = { - promise: promise, - reason: reason - }; - - if (handler = global['on' + name]) handler(event);else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); - }; - - var onUnhandled = function onUnhandled(promise, state) { - task.call(global, function () { - var value = state.value; - var IS_UNHANDLED = isUnhandled(state); - var result; - - if (IS_UNHANDLED) { - result = perform(function () { - if (IS_NODE) { - process.emit('unhandledRejection', value, promise); - } else dispatchEvent(UNHANDLED_REJECTION, promise, value); - }); // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should - - state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED; - if (result.error) throw result.value; - } - }); - }; - - var isUnhandled = function isUnhandled(state) { - return state.rejection !== HANDLED && !state.parent; - }; - - var onHandleUnhandled = function onHandleUnhandled(promise, state) { - task.call(global, function () { - if (IS_NODE) { - process.emit('rejectionHandled', promise); - } else dispatchEvent(REJECTION_HANDLED, promise, state.value); - }); - }; - - var bind = function bind(fn, promise, state, unwrap) { - return function (value) { - fn(promise, state, value, unwrap); - }; - }; - - var internalReject = function internalReject(promise, state, value, unwrap) { - if (state.done) return; - state.done = true; - if (unwrap) state = unwrap; - state.value = value; - state.state = REJECTED; - notify(promise, state, true); - }; - - var internalResolve = function internalResolve(promise, state, value, unwrap) { - if (state.done) return; - state.done = true; - if (unwrap) state = unwrap; - - try { - if (promise === value) throw TypeError("Promise can't be resolved itself"); - var then = isThenable(value); - - if (then) { - microtask(function () { - var wrapper = { - done: false - }; - - try { - then.call(value, bind(internalResolve, promise, wrapper, state), bind(internalReject, promise, wrapper, state)); - } catch (error) { - internalReject(promise, wrapper, error, state); - } - }); - } else { - state.value = value; - state.state = FULFILLED; - notify(promise, state, false); - } - } catch (error) { - internalReject(promise, { - done: false - }, error, state); - } - }; // constructor polyfill - - - if (FORCED) { - // 25.4.3.1 Promise(executor) - PromiseConstructor = function Promise(executor) { - anInstance(this, PromiseConstructor, PROMISE); - aFunction(executor); - Internal.call(this); - var state = getInternalState(this); - - try { - executor(bind(internalResolve, this, state), bind(internalReject, this, state)); - } catch (error) { - internalReject(this, state, error); - } - }; // eslint-disable-next-line no-unused-vars - - - Internal = function Promise(executor) { - setInternalState(this, { - type: PROMISE, - done: false, - notified: false, - parent: false, - reactions: [], - rejection: false, - state: PENDING, - value: undefined - }); - }; - - Internal.prototype = redefineAll(PromiseConstructor.prototype, { - // `Promise.prototype.then` method - // https://tc39.github.io/ecma262/#sec-promise.prototype.then - then: function then(onFulfilled, onRejected) { - var state = getInternalPromiseState(this); - var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor)); - reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; - reaction.fail = typeof onRejected == 'function' && onRejected; - reaction.domain = IS_NODE ? process.domain : undefined; - state.parent = true; - state.reactions.push(reaction); - if (state.state != PENDING) notify(this, state, false); - return reaction.promise; - }, - // `Promise.prototype.catch` method - // https://tc39.github.io/ecma262/#sec-promise.prototype.catch - 'catch': function _catch(onRejected) { - return this.then(undefined, onRejected); - } - }); - - OwnPromiseCapability = function OwnPromiseCapability() { - var promise = new Internal(); - var state = getInternalState(promise); - this.promise = promise; - this.resolve = bind(internalResolve, promise, state); - this.reject = bind(internalReject, promise, state); - }; - - newPromiseCapabilityModule.f = newPromiseCapability = function newPromiseCapability(C) { - return C === PromiseConstructor || C === PromiseWrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C); - }; - - if (!IS_PURE && typeof NativePromise == 'function') { - nativeThen = NativePromise.prototype.then; // wrap native Promise#then for native async functions - - redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) { - var that = this; - return new PromiseConstructor(function (resolve, reject) { - nativeThen.call(that, resolve, reject); - }).then(onFulfilled, onRejected); // https://github.com/zloirock/core-js/issues/640 - }, { - unsafe: true - }); // wrap fetch result - - if (typeof $fetch == 'function') $({ - global: true, - enumerable: true, - forced: true - }, { - // eslint-disable-next-line no-unused-vars - fetch: function fetch(input - /* , init */ - ) { - return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments)); - } - }); - } - } - - $({ - global: true, - wrap: true, - forced: FORCED - }, { - Promise: PromiseConstructor - }); - setToStringTag(PromiseConstructor, PROMISE, false, true); - setSpecies(PROMISE); - PromiseWrapper = getBuiltIn(PROMISE); // statics - - $({ - target: PROMISE, - stat: true, - forced: FORCED - }, { - // `Promise.reject` method - // https://tc39.github.io/ecma262/#sec-promise.reject - reject: function reject(r) { - var capability = newPromiseCapability(this); - capability.reject.call(undefined, r); - return capability.promise; - } - }); - $({ - target: PROMISE, - stat: true, - forced: IS_PURE || FORCED - }, { - // `Promise.resolve` method - // https://tc39.github.io/ecma262/#sec-promise.resolve - resolve: function resolve(x) { - return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x); - } - }); - $({ - target: PROMISE, - stat: true, - forced: INCORRECT_ITERATION - }, { - // `Promise.all` method - // https://tc39.github.io/ecma262/#sec-promise.all - all: function all(iterable) { - var C = this; - var capability = newPromiseCapability(C); - var resolve = capability.resolve; - var reject = capability.reject; - var result = perform(function () { - var $promiseResolve = aFunction(C.resolve); - var values = []; - var counter = 0; - var remaining = 1; - iterate(iterable, function (promise) { - var index = counter++; - var alreadyCalled = false; - values.push(undefined); - remaining++; - $promiseResolve.call(C, promise).then(function (value) { - if (alreadyCalled) return; - alreadyCalled = true; - values[index] = value; - --remaining || resolve(values); - }, reject); - }); - --remaining || resolve(values); - }); - if (result.error) reject(result.value); - return capability.promise; - }, - // `Promise.race` method - // https://tc39.github.io/ecma262/#sec-promise.race - race: function race(iterable) { - var C = this; - var capability = newPromiseCapability(C); - var reject = capability.reject; - var result = perform(function () { - var $promiseResolve = aFunction(C.resolve); - iterate(iterable, function (promise) { - $promiseResolve.call(C, promise).then(capability.resolve, reject); - }); - }); - if (result.error) reject(result.value); - return capability.promise; - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.regexp.constructor.js": - /*!***************************************************************!*\ - !*** ./node_modules/core-js/modules/es.regexp.constructor.js ***! - \***************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsRegexpConstructorJs(module, exports, __webpack_require__) { - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ - "./node_modules/core-js/internals/descriptors.js"); - - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - var isForced = __webpack_require__( - /*! ../internals/is-forced */ - "./node_modules/core-js/internals/is-forced.js"); - - var inheritIfRequired = __webpack_require__( - /*! ../internals/inherit-if-required */ - "./node_modules/core-js/internals/inherit-if-required.js"); - - var defineProperty = __webpack_require__( - /*! ../internals/object-define-property */ - "./node_modules/core-js/internals/object-define-property.js").f; - - var getOwnPropertyNames = __webpack_require__( - /*! ../internals/object-get-own-property-names */ - "./node_modules/core-js/internals/object-get-own-property-names.js").f; - - var isRegExp = __webpack_require__( - /*! ../internals/is-regexp */ - "./node_modules/core-js/internals/is-regexp.js"); - - var getFlags = __webpack_require__( - /*! ../internals/regexp-flags */ - "./node_modules/core-js/internals/regexp-flags.js"); - - var stickyHelpers = __webpack_require__( - /*! ../internals/regexp-sticky-helpers */ - "./node_modules/core-js/internals/regexp-sticky-helpers.js"); - - var redefine = __webpack_require__( - /*! ../internals/redefine */ - "./node_modules/core-js/internals/redefine.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var setInternalState = __webpack_require__( - /*! ../internals/internal-state */ - "./node_modules/core-js/internals/internal-state.js").set; - - var setSpecies = __webpack_require__( - /*! ../internals/set-species */ - "./node_modules/core-js/internals/set-species.js"); - - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ - "./node_modules/core-js/internals/well-known-symbol.js"); - - var MATCH = wellKnownSymbol('match'); - var NativeRegExp = global.RegExp; - var RegExpPrototype = NativeRegExp.prototype; - var re1 = /a/g; - var re2 = /a/g; // "new" should create a new object, old webkit bug - - var CORRECT_NEW = new NativeRegExp(re1) !== re1; - var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y; - var FORCED = DESCRIPTORS && isForced('RegExp', !CORRECT_NEW || UNSUPPORTED_Y || fails(function () { - re2[MATCH] = false; // RegExp constructor can alter flags and IsRegExp works correct with @@match - - return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i'; - })); // `RegExp` constructor - // https://tc39.github.io/ecma262/#sec-regexp-constructor - - if (FORCED) { - var RegExpWrapper = function RegExp(pattern, flags) { - var thisIsRegExp = this instanceof RegExpWrapper; - var patternIsRegExp = isRegExp(pattern); - var flagsAreUndefined = flags === undefined; - var sticky; - - if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) { - return pattern; - } - - if (CORRECT_NEW) { - if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source; - } else if (pattern instanceof RegExpWrapper) { - if (flagsAreUndefined) flags = getFlags.call(pattern); - pattern = pattern.source; - } - - if (UNSUPPORTED_Y) { - sticky = !!flags && flags.indexOf('y') > -1; - if (sticky) flags = flags.replace(/y/g, ''); - } - - var result = inheritIfRequired(CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper); - if (UNSUPPORTED_Y && sticky) setInternalState(result, { - sticky: sticky - }); - return result; - }; - - var proxy = function proxy(key) { - key in RegExpWrapper || defineProperty(RegExpWrapper, key, { - configurable: true, - get: function get() { - return NativeRegExp[key]; - }, - set: function set(it) { - NativeRegExp[key] = it; - } - }); - }; - - var keys = getOwnPropertyNames(NativeRegExp); - var index = 0; - - while (keys.length > index) { - proxy(keys[index++]); - } - - RegExpPrototype.constructor = RegExpWrapper; - RegExpWrapper.prototype = RegExpPrototype; - redefine(global, 'RegExp', RegExpWrapper); - } // https://tc39.github.io/ecma262/#sec-get-regexp-@@species - - - setSpecies('RegExp'); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.regexp.exec.js": - /*!********************************************************!*\ - !*** ./node_modules/core-js/modules/es.regexp.exec.js ***! - \********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsRegexpExecJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var exec = __webpack_require__( - /*! ../internals/regexp-exec */ - "./node_modules/core-js/internals/regexp-exec.js"); - - $({ - target: 'RegExp', - proto: true, - forced: /./.exec !== exec - }, { - exec: exec - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.regexp.flags.js": - /*!*********************************************************!*\ - !*** ./node_modules/core-js/modules/es.regexp.flags.js ***! - \*********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsRegexpFlagsJs(module, exports, __webpack_require__) { - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ - "./node_modules/core-js/internals/descriptors.js"); - - var objectDefinePropertyModule = __webpack_require__( - /*! ../internals/object-define-property */ - "./node_modules/core-js/internals/object-define-property.js"); - - var regExpFlags = __webpack_require__( - /*! ../internals/regexp-flags */ - "./node_modules/core-js/internals/regexp-flags.js"); - - var UNSUPPORTED_Y = __webpack_require__( - /*! ../internals/regexp-sticky-helpers */ - "./node_modules/core-js/internals/regexp-sticky-helpers.js").UNSUPPORTED_Y; // `RegExp.prototype.flags` getter - // https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags - - - if (DESCRIPTORS && (/./g.flags != 'g' || UNSUPPORTED_Y)) { - objectDefinePropertyModule.f(RegExp.prototype, 'flags', { - configurable: true, - get: regExpFlags - }); - } - /***/ - - }, - - /***/ - "./node_modules/core-js/modules/es.regexp.to-string.js": - /*!*************************************************************!*\ - !*** ./node_modules/core-js/modules/es.regexp.to-string.js ***! - \*************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsRegexpToStringJs(module, exports, __webpack_require__) { - "use strict"; - - var redefine = __webpack_require__( - /*! ../internals/redefine */ - "./node_modules/core-js/internals/redefine.js"); - - var anObject = __webpack_require__( - /*! ../internals/an-object */ - "./node_modules/core-js/internals/an-object.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var flags = __webpack_require__( - /*! ../internals/regexp-flags */ - "./node_modules/core-js/internals/regexp-flags.js"); - - var TO_STRING = 'toString'; - var RegExpPrototype = RegExp.prototype; - var nativeToString = RegExpPrototype[TO_STRING]; - var NOT_GENERIC = fails(function () { - return nativeToString.call({ - source: 'a', - flags: 'b' - }) != '/a/b'; - }); // FF44- RegExp#toString has a wrong name - - var INCORRECT_NAME = nativeToString.name != TO_STRING; // `RegExp.prototype.toString` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring - - if (NOT_GENERIC || INCORRECT_NAME) { - redefine(RegExp.prototype, TO_STRING, function toString() { - var R = anObject(this); - var p = String(R.source); - var rf = R.flags; - var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf); - return '/' + p + '/' + f; - }, { - unsafe: true - }); - } - /***/ - - }, - - /***/ - "./node_modules/core-js/modules/es.set.js": - /*!************************************************!*\ - !*** ./node_modules/core-js/modules/es.set.js ***! - \************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsSetJs(module, exports, __webpack_require__) { - "use strict"; - - var collection = __webpack_require__( - /*! ../internals/collection */ - "./node_modules/core-js/internals/collection.js"); - - var collectionStrong = __webpack_require__( - /*! ../internals/collection-strong */ - "./node_modules/core-js/internals/collection-strong.js"); // `Set` constructor - // https://tc39.github.io/ecma262/#sec-set-objects - - - module.exports = collection('Set', function (init) { - return function Set() { - return init(this, arguments.length ? arguments[0] : undefined); - }; - }, collectionStrong); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.string.anchor.js": - /*!**********************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.anchor.js ***! - \**********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsStringAnchorJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var createHTML = __webpack_require__( - /*! ../internals/create-html */ - "./node_modules/core-js/internals/create-html.js"); - - var forcedStringHTMLMethod = __webpack_require__( - /*! ../internals/string-html-forced */ - "./node_modules/core-js/internals/string-html-forced.js"); // `String.prototype.anchor` method - // https://tc39.github.io/ecma262/#sec-string.prototype.anchor - - - $({ - target: 'String', - proto: true, - forced: forcedStringHTMLMethod('anchor') - }, { - anchor: function anchor(name) { - return createHTML(this, 'a', 'name', name); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.string.big.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.big.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsStringBigJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var createHTML = __webpack_require__( - /*! ../internals/create-html */ - "./node_modules/core-js/internals/create-html.js"); - - var forcedStringHTMLMethod = __webpack_require__( - /*! ../internals/string-html-forced */ - "./node_modules/core-js/internals/string-html-forced.js"); // `String.prototype.big` method - // https://tc39.github.io/ecma262/#sec-string.prototype.big - - - $({ - target: 'String', - proto: true, - forced: forcedStringHTMLMethod('big') - }, { - big: function big() { - return createHTML(this, 'big', '', ''); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.string.blink.js": - /*!*********************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.blink.js ***! - \*********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsStringBlinkJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var createHTML = __webpack_require__( - /*! ../internals/create-html */ - "./node_modules/core-js/internals/create-html.js"); - - var forcedStringHTMLMethod = __webpack_require__( - /*! ../internals/string-html-forced */ - "./node_modules/core-js/internals/string-html-forced.js"); // `String.prototype.blink` method - // https://tc39.github.io/ecma262/#sec-string.prototype.blink - - - $({ - target: 'String', - proto: true, - forced: forcedStringHTMLMethod('blink') - }, { - blink: function blink() { - return createHTML(this, 'blink', '', ''); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.string.bold.js": - /*!********************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.bold.js ***! - \********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsStringBoldJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var createHTML = __webpack_require__( - /*! ../internals/create-html */ - "./node_modules/core-js/internals/create-html.js"); - - var forcedStringHTMLMethod = __webpack_require__( - /*! ../internals/string-html-forced */ - "./node_modules/core-js/internals/string-html-forced.js"); // `String.prototype.bold` method - // https://tc39.github.io/ecma262/#sec-string.prototype.bold - - - $({ - target: 'String', - proto: true, - forced: forcedStringHTMLMethod('bold') - }, { - bold: function bold() { - return createHTML(this, 'b', '', ''); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.string.code-point-at.js": - /*!*****************************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.code-point-at.js ***! - \*****************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsStringCodePointAtJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var codeAt = __webpack_require__( - /*! ../internals/string-multibyte */ - "./node_modules/core-js/internals/string-multibyte.js").codeAt; // `String.prototype.codePointAt` method - // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat - - - $({ - target: 'String', - proto: true - }, { - codePointAt: function codePointAt(pos) { - return codeAt(this, pos); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.string.ends-with.js": - /*!*************************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.ends-with.js ***! - \*************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsStringEndsWithJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var getOwnPropertyDescriptor = __webpack_require__( - /*! ../internals/object-get-own-property-descriptor */ - "./node_modules/core-js/internals/object-get-own-property-descriptor.js").f; - - var toLength = __webpack_require__( - /*! ../internals/to-length */ - "./node_modules/core-js/internals/to-length.js"); - - var notARegExp = __webpack_require__( - /*! ../internals/not-a-regexp */ - "./node_modules/core-js/internals/not-a-regexp.js"); - - var requireObjectCoercible = __webpack_require__( - /*! ../internals/require-object-coercible */ - "./node_modules/core-js/internals/require-object-coercible.js"); - - var correctIsRegExpLogic = __webpack_require__( - /*! ../internals/correct-is-regexp-logic */ - "./node_modules/core-js/internals/correct-is-regexp-logic.js"); - - var IS_PURE = __webpack_require__( - /*! ../internals/is-pure */ - "./node_modules/core-js/internals/is-pure.js"); - - var nativeEndsWith = ''.endsWith; - var min = Math.min; - var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith'); // https://github.com/zloirock/core-js/pull/702 - - var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () { - var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith'); - return descriptor && !descriptor.writable; - }(); // `String.prototype.endsWith` method - // https://tc39.github.io/ecma262/#sec-string.prototype.endswith - - $({ - target: 'String', - proto: true, - forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC - }, { - endsWith: function endsWith(searchString - /* , endPosition = @length */ - ) { - var that = String(requireObjectCoercible(this)); - notARegExp(searchString); - var endPosition = arguments.length > 1 ? arguments[1] : undefined; - var len = toLength(that.length); - var end = endPosition === undefined ? len : min(toLength(endPosition), len); - var search = String(searchString); - return nativeEndsWith ? nativeEndsWith.call(that, search, end) : that.slice(end - search.length, end) === search; - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.string.fixed.js": - /*!*********************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.fixed.js ***! - \*********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsStringFixedJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var createHTML = __webpack_require__( - /*! ../internals/create-html */ - "./node_modules/core-js/internals/create-html.js"); - - var forcedStringHTMLMethod = __webpack_require__( - /*! ../internals/string-html-forced */ - "./node_modules/core-js/internals/string-html-forced.js"); // `String.prototype.fixed` method - // https://tc39.github.io/ecma262/#sec-string.prototype.fixed - - - $({ - target: 'String', - proto: true, - forced: forcedStringHTMLMethod('fixed') - }, { - fixed: function fixed() { - return createHTML(this, 'tt', '', ''); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.string.fontcolor.js": - /*!*************************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.fontcolor.js ***! - \*************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsStringFontcolorJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var createHTML = __webpack_require__( - /*! ../internals/create-html */ - "./node_modules/core-js/internals/create-html.js"); - - var forcedStringHTMLMethod = __webpack_require__( - /*! ../internals/string-html-forced */ - "./node_modules/core-js/internals/string-html-forced.js"); // `String.prototype.fontcolor` method - // https://tc39.github.io/ecma262/#sec-string.prototype.fontcolor - - - $({ - target: 'String', - proto: true, - forced: forcedStringHTMLMethod('fontcolor') - }, { - fontcolor: function fontcolor(color) { - return createHTML(this, 'font', 'color', color); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.string.fontsize.js": - /*!************************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.fontsize.js ***! - \************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsStringFontsizeJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var createHTML = __webpack_require__( - /*! ../internals/create-html */ - "./node_modules/core-js/internals/create-html.js"); - - var forcedStringHTMLMethod = __webpack_require__( - /*! ../internals/string-html-forced */ - "./node_modules/core-js/internals/string-html-forced.js"); // `String.prototype.fontsize` method - // https://tc39.github.io/ecma262/#sec-string.prototype.fontsize - - - $({ - target: 'String', - proto: true, - forced: forcedStringHTMLMethod('fontsize') - }, { - fontsize: function fontsize(size) { - return createHTML(this, 'font', 'size', size); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.string.from-code-point.js": - /*!*******************************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.from-code-point.js ***! - \*******************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsStringFromCodePointJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var toAbsoluteIndex = __webpack_require__( - /*! ../internals/to-absolute-index */ - "./node_modules/core-js/internals/to-absolute-index.js"); - - var fromCharCode = String.fromCharCode; - var nativeFromCodePoint = String.fromCodePoint; // length should be 1, old FF problem - - var INCORRECT_LENGTH = !!nativeFromCodePoint && nativeFromCodePoint.length != 1; // `String.fromCodePoint` method - // https://tc39.github.io/ecma262/#sec-string.fromcodepoint - - $({ - target: 'String', - stat: true, - forced: INCORRECT_LENGTH - }, { - fromCodePoint: function fromCodePoint(x) { - // eslint-disable-line no-unused-vars - var elements = []; - var length = arguments.length; - var i = 0; - var code; - - while (length > i) { - code = +arguments[i++]; - if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw RangeError(code + ' is not a valid code point'); - elements.push(code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00)); - } - - return elements.join(''); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.string.includes.js": - /*!************************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.includes.js ***! - \************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsStringIncludesJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var notARegExp = __webpack_require__( - /*! ../internals/not-a-regexp */ - "./node_modules/core-js/internals/not-a-regexp.js"); - - var requireObjectCoercible = __webpack_require__( - /*! ../internals/require-object-coercible */ - "./node_modules/core-js/internals/require-object-coercible.js"); - - var correctIsRegExpLogic = __webpack_require__( - /*! ../internals/correct-is-regexp-logic */ - "./node_modules/core-js/internals/correct-is-regexp-logic.js"); // `String.prototype.includes` method - // https://tc39.github.io/ecma262/#sec-string.prototype.includes - - - $({ - target: 'String', - proto: true, - forced: !correctIsRegExpLogic('includes') - }, { - includes: function includes(searchString - /* , position = 0 */ - ) { - return !!~String(requireObjectCoercible(this)).indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.string.italics.js": - /*!***********************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.italics.js ***! - \***********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsStringItalicsJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var createHTML = __webpack_require__( - /*! ../internals/create-html */ - "./node_modules/core-js/internals/create-html.js"); - - var forcedStringHTMLMethod = __webpack_require__( - /*! ../internals/string-html-forced */ - "./node_modules/core-js/internals/string-html-forced.js"); // `String.prototype.italics` method - // https://tc39.github.io/ecma262/#sec-string.prototype.italics - - - $({ - target: 'String', - proto: true, - forced: forcedStringHTMLMethod('italics') - }, { - italics: function italics() { - return createHTML(this, 'i', '', ''); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.string.iterator.js": - /*!************************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.iterator.js ***! - \************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsStringIteratorJs(module, exports, __webpack_require__) { - "use strict"; - - var charAt = __webpack_require__( - /*! ../internals/string-multibyte */ - "./node_modules/core-js/internals/string-multibyte.js").charAt; - - var InternalStateModule = __webpack_require__( - /*! ../internals/internal-state */ - "./node_modules/core-js/internals/internal-state.js"); - - var defineIterator = __webpack_require__( - /*! ../internals/define-iterator */ - "./node_modules/core-js/internals/define-iterator.js"); - - var STRING_ITERATOR = 'String Iterator'; - var setInternalState = InternalStateModule.set; - var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR); // `String.prototype[@@iterator]` method - // https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator - - defineIterator(String, 'String', function (iterated) { - setInternalState(this, { - type: STRING_ITERATOR, - string: String(iterated), - index: 0 - }); // `%StringIteratorPrototype%.next` method - // https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next - }, function next() { - var state = getInternalState(this); - var string = state.string; - var index = state.index; - var point; - if (index >= string.length) return { - value: undefined, - done: true - }; - point = charAt(string, index); - state.index += point.length; - return { - value: point, - done: false - }; - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.string.link.js": - /*!********************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.link.js ***! - \********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsStringLinkJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var createHTML = __webpack_require__( - /*! ../internals/create-html */ - "./node_modules/core-js/internals/create-html.js"); - - var forcedStringHTMLMethod = __webpack_require__( - /*! ../internals/string-html-forced */ - "./node_modules/core-js/internals/string-html-forced.js"); // `String.prototype.link` method - // https://tc39.github.io/ecma262/#sec-string.prototype.link - - - $({ - target: 'String', - proto: true, - forced: forcedStringHTMLMethod('link') - }, { - link: function link(url) { - return createHTML(this, 'a', 'href', url); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.string.match.js": - /*!*********************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.match.js ***! - \*********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsStringMatchJs(module, exports, __webpack_require__) { - "use strict"; - - var fixRegExpWellKnownSymbolLogic = __webpack_require__( - /*! ../internals/fix-regexp-well-known-symbol-logic */ - "./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js"); - - var anObject = __webpack_require__( - /*! ../internals/an-object */ - "./node_modules/core-js/internals/an-object.js"); - - var toLength = __webpack_require__( - /*! ../internals/to-length */ - "./node_modules/core-js/internals/to-length.js"); - - var requireObjectCoercible = __webpack_require__( - /*! ../internals/require-object-coercible */ - "./node_modules/core-js/internals/require-object-coercible.js"); - - var advanceStringIndex = __webpack_require__( - /*! ../internals/advance-string-index */ - "./node_modules/core-js/internals/advance-string-index.js"); - - var regExpExec = __webpack_require__( - /*! ../internals/regexp-exec-abstract */ - "./node_modules/core-js/internals/regexp-exec-abstract.js"); // @@match logic - - - fixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) { - return [// `String.prototype.match` method - // https://tc39.github.io/ecma262/#sec-string.prototype.match - function match(regexp) { - var O = requireObjectCoercible(this); - var matcher = regexp == undefined ? undefined : regexp[MATCH]; - return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O)); - }, // `RegExp.prototype[@@match]` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match - function (regexp) { - var res = maybeCallNative(nativeMatch, regexp, this); - if (res.done) return res.value; - var rx = anObject(regexp); - var S = String(this); - if (!rx.global) return regExpExec(rx, S); - var fullUnicode = rx.unicode; - rx.lastIndex = 0; - var A = []; - var n = 0; - var result; - - while ((result = regExpExec(rx, S)) !== null) { - var matchStr = String(result[0]); - A[n] = matchStr; - if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); - n++; - } - - return n === 0 ? null : A; - }]; - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.string.raw.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.raw.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsStringRawJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var toIndexedObject = __webpack_require__( - /*! ../internals/to-indexed-object */ - "./node_modules/core-js/internals/to-indexed-object.js"); - - var toLength = __webpack_require__( - /*! ../internals/to-length */ - "./node_modules/core-js/internals/to-length.js"); // `String.raw` method - // https://tc39.github.io/ecma262/#sec-string.raw - - - $({ - target: 'String', - stat: true - }, { - raw: function raw(template) { - var rawTemplate = toIndexedObject(template.raw); - var literalSegments = toLength(rawTemplate.length); - var argumentsLength = arguments.length; - var elements = []; - var i = 0; - - while (literalSegments > i) { - elements.push(String(rawTemplate[i++])); - if (i < argumentsLength) elements.push(String(arguments[i])); - } - - return elements.join(''); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.string.repeat.js": - /*!**********************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.repeat.js ***! - \**********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsStringRepeatJs(module, exports, __webpack_require__) { - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var repeat = __webpack_require__( - /*! ../internals/string-repeat */ - "./node_modules/core-js/internals/string-repeat.js"); // `String.prototype.repeat` method - // https://tc39.github.io/ecma262/#sec-string.prototype.repeat - - - $({ - target: 'String', - proto: true - }, { - repeat: repeat - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.string.replace.js": - /*!***********************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.replace.js ***! - \***********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsStringReplaceJs(module, exports, __webpack_require__) { - "use strict"; - - var fixRegExpWellKnownSymbolLogic = __webpack_require__( - /*! ../internals/fix-regexp-well-known-symbol-logic */ - "./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js"); - - var anObject = __webpack_require__( - /*! ../internals/an-object */ - "./node_modules/core-js/internals/an-object.js"); - - var toObject = __webpack_require__( - /*! ../internals/to-object */ - "./node_modules/core-js/internals/to-object.js"); - - var toLength = __webpack_require__( - /*! ../internals/to-length */ - "./node_modules/core-js/internals/to-length.js"); - - var toInteger = __webpack_require__( - /*! ../internals/to-integer */ - "./node_modules/core-js/internals/to-integer.js"); - - var requireObjectCoercible = __webpack_require__( - /*! ../internals/require-object-coercible */ - "./node_modules/core-js/internals/require-object-coercible.js"); - - var advanceStringIndex = __webpack_require__( - /*! ../internals/advance-string-index */ - "./node_modules/core-js/internals/advance-string-index.js"); - - var regExpExec = __webpack_require__( - /*! ../internals/regexp-exec-abstract */ - "./node_modules/core-js/internals/regexp-exec-abstract.js"); - - var max = Math.max; - var min = Math.min; - var floor = Math.floor; - var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d\d?|<[^>]*>)/g; - var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d\d?)/g; - - var maybeToString = function maybeToString(it) { - return it === undefined ? it : String(it); - }; // @@replace logic - - - fixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) { - var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE; - var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0; - var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0'; - return [// `String.prototype.replace` method - // https://tc39.github.io/ecma262/#sec-string.prototype.replace - function replace(searchValue, replaceValue) { - var O = requireObjectCoercible(this); - var replacer = searchValue == undefined ? undefined : searchValue[REPLACE]; - return replacer !== undefined ? replacer.call(searchValue, O, replaceValue) : nativeReplace.call(String(O), searchValue, replaceValue); - }, // `RegExp.prototype[@@replace]` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace - function (regexp, replaceValue) { - if (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0 || typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1) { - var res = maybeCallNative(nativeReplace, regexp, this, replaceValue); - if (res.done) return res.value; - } - - var rx = anObject(regexp); - var S = String(this); - var functionalReplace = typeof replaceValue === 'function'; - if (!functionalReplace) replaceValue = String(replaceValue); - var global = rx.global; - - if (global) { - var fullUnicode = rx.unicode; - rx.lastIndex = 0; - } - - var results = []; - - while (true) { - var result = regExpExec(rx, S); - if (result === null) break; - results.push(result); - if (!global) break; - var matchStr = String(result[0]); - if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); - } - - var accumulatedResult = ''; - var nextSourcePosition = 0; - - for (var i = 0; i < results.length; i++) { - result = results[i]; - var matched = String(result[0]); - var position = max(min(toInteger(result.index), S.length), 0); - var captures = []; // NOTE: This is equivalent to - // captures = result.slice(1).map(maybeToString) - // but for some reason `nativeSlice.call(result, 1, result.length)` (called in - // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and - // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. - - for (var j = 1; j < result.length; j++) { - captures.push(maybeToString(result[j])); - } - - var namedCaptures = result.groups; - - if (functionalReplace) { - var replacerArgs = [matched].concat(captures, position, S); - if (namedCaptures !== undefined) replacerArgs.push(namedCaptures); - var replacement = String(replaceValue.apply(undefined, replacerArgs)); - } else { - replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); - } - - if (position >= nextSourcePosition) { - accumulatedResult += S.slice(nextSourcePosition, position) + replacement; - nextSourcePosition = position + matched.length; - } - } - - return accumulatedResult + S.slice(nextSourcePosition); - }]; // https://tc39.github.io/ecma262/#sec-getsubstitution - - function getSubstitution(matched, str, position, captures, namedCaptures, replacement) { - var tailPos = position + matched.length; - var m = captures.length; - var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; - - if (namedCaptures !== undefined) { - namedCaptures = toObject(namedCaptures); - symbols = SUBSTITUTION_SYMBOLS; - } - - return nativeReplace.call(replacement, symbols, function (match, ch) { - var capture; - - switch (ch.charAt(0)) { - case '$': - return '$'; - - case '&': - return matched; - - case '`': - return str.slice(0, position); - - case "'": - return str.slice(tailPos); - - case '<': - capture = namedCaptures[ch.slice(1, -1)]; - break; - - default: - // \d\d? - var n = +ch; - if (n === 0) return match; - - if (n > m) { - var f = floor(n / 10); - if (f === 0) return match; - if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1); - return match; - } - - capture = captures[n - 1]; - } - - return capture === undefined ? '' : capture; - }); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.string.search.js": - /*!**********************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.search.js ***! - \**********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsStringSearchJs(module, exports, __webpack_require__) { - "use strict"; - - var fixRegExpWellKnownSymbolLogic = __webpack_require__( - /*! ../internals/fix-regexp-well-known-symbol-logic */ - "./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js"); - - var anObject = __webpack_require__( - /*! ../internals/an-object */ - "./node_modules/core-js/internals/an-object.js"); - - var requireObjectCoercible = __webpack_require__( - /*! ../internals/require-object-coercible */ - "./node_modules/core-js/internals/require-object-coercible.js"); - - var sameValue = __webpack_require__( - /*! ../internals/same-value */ - "./node_modules/core-js/internals/same-value.js"); - - var regExpExec = __webpack_require__( - /*! ../internals/regexp-exec-abstract */ - "./node_modules/core-js/internals/regexp-exec-abstract.js"); // @@search logic - - - fixRegExpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) { - return [// `String.prototype.search` method - // https://tc39.github.io/ecma262/#sec-string.prototype.search - function search(regexp) { - var O = requireObjectCoercible(this); - var searcher = regexp == undefined ? undefined : regexp[SEARCH]; - return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O)); - }, // `RegExp.prototype[@@search]` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search - function (regexp) { - var res = maybeCallNative(nativeSearch, regexp, this); - if (res.done) return res.value; - var rx = anObject(regexp); - var S = String(this); - var previousLastIndex = rx.lastIndex; - if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0; - var result = regExpExec(rx, S); - if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex; - return result === null ? -1 : result.index; - }]; - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.string.small.js": - /*!*********************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.small.js ***! - \*********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsStringSmallJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var createHTML = __webpack_require__( - /*! ../internals/create-html */ - "./node_modules/core-js/internals/create-html.js"); - - var forcedStringHTMLMethod = __webpack_require__( - /*! ../internals/string-html-forced */ - "./node_modules/core-js/internals/string-html-forced.js"); // `String.prototype.small` method - // https://tc39.github.io/ecma262/#sec-string.prototype.small - - - $({ - target: 'String', - proto: true, - forced: forcedStringHTMLMethod('small') - }, { - small: function small() { - return createHTML(this, 'small', '', ''); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.string.split.js": - /*!*********************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.split.js ***! - \*********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsStringSplitJs(module, exports, __webpack_require__) { - "use strict"; - - var fixRegExpWellKnownSymbolLogic = __webpack_require__( - /*! ../internals/fix-regexp-well-known-symbol-logic */ - "./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js"); - - var isRegExp = __webpack_require__( - /*! ../internals/is-regexp */ - "./node_modules/core-js/internals/is-regexp.js"); - - var anObject = __webpack_require__( - /*! ../internals/an-object */ - "./node_modules/core-js/internals/an-object.js"); - - var requireObjectCoercible = __webpack_require__( - /*! ../internals/require-object-coercible */ - "./node_modules/core-js/internals/require-object-coercible.js"); - - var speciesConstructor = __webpack_require__( - /*! ../internals/species-constructor */ - "./node_modules/core-js/internals/species-constructor.js"); - - var advanceStringIndex = __webpack_require__( - /*! ../internals/advance-string-index */ - "./node_modules/core-js/internals/advance-string-index.js"); - - var toLength = __webpack_require__( - /*! ../internals/to-length */ - "./node_modules/core-js/internals/to-length.js"); - - var callRegExpExec = __webpack_require__( - /*! ../internals/regexp-exec-abstract */ - "./node_modules/core-js/internals/regexp-exec-abstract.js"); - - var regexpExec = __webpack_require__( - /*! ../internals/regexp-exec */ - "./node_modules/core-js/internals/regexp-exec.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var arrayPush = [].push; - var min = Math.min; - var MAX_UINT32 = 0xFFFFFFFF; // babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError - - var SUPPORTS_Y = !fails(function () { - return !RegExp(MAX_UINT32, 'y'); - }); // @@split logic - - fixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) { - var internalSplit; - - if ('abbc'.split(/(b)*/)[1] == 'c' || 'test'.split(/(?:)/, -1).length != 4 || 'ab'.split(/(?:ab)*/).length != 2 || '.'.split(/(.?)(.?)/).length != 4 || '.'.split(/()()/).length > 1 || ''.split(/.?/).length) { - // based on es5-shim implementation, need to rework it - internalSplit = function internalSplit(separator, limit) { - var string = String(requireObjectCoercible(this)); - var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; - if (lim === 0) return []; - if (separator === undefined) return [string]; // If `separator` is not a regex, use native split - - if (!isRegExp(separator)) { - return nativeSplit.call(string, separator, lim); - } - - var output = []; - var flags = (separator.ignoreCase ? 'i' : '') + (separator.multiline ? 'm' : '') + (separator.unicode ? 'u' : '') + (separator.sticky ? 'y' : ''); - var lastLastIndex = 0; // Make `global` and avoid `lastIndex` issues by working with a copy - - var separatorCopy = new RegExp(separator.source, flags + 'g'); - var match, lastIndex, lastLength; - - while (match = regexpExec.call(separatorCopy, string)) { - lastIndex = separatorCopy.lastIndex; - - if (lastIndex > lastLastIndex) { - output.push(string.slice(lastLastIndex, match.index)); - if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1)); - lastLength = match[0].length; - lastLastIndex = lastIndex; - if (output.length >= lim) break; - } - - if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop - } - - if (lastLastIndex === string.length) { - if (lastLength || !separatorCopy.test('')) output.push(''); - } else output.push(string.slice(lastLastIndex)); - - return output.length > lim ? output.slice(0, lim) : output; - }; // Chakra, V8 - - } else if ('0'.split(undefined, 0).length) { - internalSplit = function internalSplit(separator, limit) { - return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit); - }; - } else internalSplit = nativeSplit; - - return [// `String.prototype.split` method - // https://tc39.github.io/ecma262/#sec-string.prototype.split - function split(separator, limit) { - var O = requireObjectCoercible(this); - var splitter = separator == undefined ? undefined : separator[SPLIT]; - return splitter !== undefined ? splitter.call(separator, O, limit) : internalSplit.call(String(O), separator, limit); - }, // `RegExp.prototype[@@split]` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split - // - // NOTE: This cannot be properly polyfilled in engines that don't support - // the 'y' flag. - function (regexp, limit) { - var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit); - if (res.done) return res.value; - var rx = anObject(regexp); - var S = String(this); - var C = speciesConstructor(rx, RegExp); - var unicodeMatching = rx.unicode; - var flags = (rx.ignoreCase ? 'i' : '') + (rx.multiline ? 'm' : '') + (rx.unicode ? 'u' : '') + (SUPPORTS_Y ? 'y' : 'g'); // ^(? + rx + ) is needed, in combination with some S slicing, to - // simulate the 'y' flag. - - var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags); - var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; - if (lim === 0) return []; - if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : []; - var p = 0; - var q = 0; - var A = []; - - while (q < S.length) { - splitter.lastIndex = SUPPORTS_Y ? q : 0; - var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q)); - var e; - - if (z === null || (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p) { - q = advanceStringIndex(S, q, unicodeMatching); - } else { - A.push(S.slice(p, q)); - if (A.length === lim) return A; - - for (var i = 1; i <= z.length - 1; i++) { - A.push(z[i]); - if (A.length === lim) return A; - } - - q = p = e; - } - } - - A.push(S.slice(p)); - return A; - }]; - }, !SUPPORTS_Y); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.string.starts-with.js": - /*!***************************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.starts-with.js ***! - \***************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsStringStartsWithJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var getOwnPropertyDescriptor = __webpack_require__( - /*! ../internals/object-get-own-property-descriptor */ - "./node_modules/core-js/internals/object-get-own-property-descriptor.js").f; - - var toLength = __webpack_require__( - /*! ../internals/to-length */ - "./node_modules/core-js/internals/to-length.js"); - - var notARegExp = __webpack_require__( - /*! ../internals/not-a-regexp */ - "./node_modules/core-js/internals/not-a-regexp.js"); - - var requireObjectCoercible = __webpack_require__( - /*! ../internals/require-object-coercible */ - "./node_modules/core-js/internals/require-object-coercible.js"); - - var correctIsRegExpLogic = __webpack_require__( - /*! ../internals/correct-is-regexp-logic */ - "./node_modules/core-js/internals/correct-is-regexp-logic.js"); - - var IS_PURE = __webpack_require__( - /*! ../internals/is-pure */ - "./node_modules/core-js/internals/is-pure.js"); - - var nativeStartsWith = ''.startsWith; - var min = Math.min; - var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith'); // https://github.com/zloirock/core-js/pull/702 - - var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () { - var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith'); - return descriptor && !descriptor.writable; - }(); // `String.prototype.startsWith` method - // https://tc39.github.io/ecma262/#sec-string.prototype.startswith - - $({ - target: 'String', - proto: true, - forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC - }, { - startsWith: function startsWith(searchString - /* , position = 0 */ - ) { - var that = String(requireObjectCoercible(this)); - notARegExp(searchString); - var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length)); - var search = String(searchString); - return nativeStartsWith ? nativeStartsWith.call(that, search, index) : that.slice(index, index + search.length) === search; - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.string.strike.js": - /*!**********************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.strike.js ***! - \**********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsStringStrikeJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var createHTML = __webpack_require__( - /*! ../internals/create-html */ - "./node_modules/core-js/internals/create-html.js"); - - var forcedStringHTMLMethod = __webpack_require__( - /*! ../internals/string-html-forced */ - "./node_modules/core-js/internals/string-html-forced.js"); // `String.prototype.strike` method - // https://tc39.github.io/ecma262/#sec-string.prototype.strike - - - $({ - target: 'String', - proto: true, - forced: forcedStringHTMLMethod('strike') - }, { - strike: function strike() { - return createHTML(this, 'strike', '', ''); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.string.sub.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.sub.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsStringSubJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var createHTML = __webpack_require__( - /*! ../internals/create-html */ - "./node_modules/core-js/internals/create-html.js"); - - var forcedStringHTMLMethod = __webpack_require__( - /*! ../internals/string-html-forced */ - "./node_modules/core-js/internals/string-html-forced.js"); // `String.prototype.sub` method - // https://tc39.github.io/ecma262/#sec-string.prototype.sub - - - $({ - target: 'String', - proto: true, - forced: forcedStringHTMLMethod('sub') - }, { - sub: function sub() { - return createHTML(this, 'sub', '', ''); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.string.sup.js": - /*!*******************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.sup.js ***! - \*******************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsStringSupJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var createHTML = __webpack_require__( - /*! ../internals/create-html */ - "./node_modules/core-js/internals/create-html.js"); - - var forcedStringHTMLMethod = __webpack_require__( - /*! ../internals/string-html-forced */ - "./node_modules/core-js/internals/string-html-forced.js"); // `String.prototype.sup` method - // https://tc39.github.io/ecma262/#sec-string.prototype.sup - - - $({ - target: 'String', - proto: true, - forced: forcedStringHTMLMethod('sup') - }, { - sup: function sup() { - return createHTML(this, 'sup', '', ''); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.string.trim.js": - /*!********************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.trim.js ***! - \********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsStringTrimJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var $trim = __webpack_require__( - /*! ../internals/string-trim */ - "./node_modules/core-js/internals/string-trim.js").trim; - - var forcedStringTrimMethod = __webpack_require__( - /*! ../internals/string-trim-forced */ - "./node_modules/core-js/internals/string-trim-forced.js"); // `String.prototype.trim` method - // https://tc39.github.io/ecma262/#sec-string.prototype.trim - - - $({ - target: 'String', - proto: true, - forced: forcedStringTrimMethod('trim') - }, { - trim: function trim() { - return $trim(this); - } - }); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.symbol.async-iterator.js": - /*!******************************************************************!*\ - !*** ./node_modules/core-js/modules/es.symbol.async-iterator.js ***! - \******************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsSymbolAsyncIteratorJs(module, exports, __webpack_require__) { - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/define-well-known-symbol */ - "./node_modules/core-js/internals/define-well-known-symbol.js"); // `Symbol.asyncIterator` well-known symbol - // https://tc39.github.io/ecma262/#sec-symbol.asynciterator - - - defineWellKnownSymbol('asyncIterator'); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.symbol.description.js": - /*!***************************************************************!*\ - !*** ./node_modules/core-js/modules/es.symbol.description.js ***! - \***************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsSymbolDescriptionJs(module, exports, __webpack_require__) { - "use strict"; // `Symbol.prototype.description` getter - // https://tc39.github.io/ecma262/#sec-symbol.prototype.description - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ - "./node_modules/core-js/internals/descriptors.js"); - - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - var has = __webpack_require__( - /*! ../internals/has */ - "./node_modules/core-js/internals/has.js"); - - var isObject = __webpack_require__( - /*! ../internals/is-object */ - "./node_modules/core-js/internals/is-object.js"); - - var defineProperty = __webpack_require__( - /*! ../internals/object-define-property */ - "./node_modules/core-js/internals/object-define-property.js").f; - - var copyConstructorProperties = __webpack_require__( - /*! ../internals/copy-constructor-properties */ - "./node_modules/core-js/internals/copy-constructor-properties.js"); - - var NativeSymbol = global.Symbol; - - if (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) || // Safari 12 bug - NativeSymbol().description !== undefined)) { - var EmptyStringDescriptionStore = {}; // wrap Symbol constructor for correct work with undefined description - - var SymbolWrapper = function Symbol() { - var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]); - var result = this instanceof SymbolWrapper ? new NativeSymbol(description) // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)' - : description === undefined ? NativeSymbol() : NativeSymbol(description); - if (description === '') EmptyStringDescriptionStore[result] = true; - return result; - }; - - copyConstructorProperties(SymbolWrapper, NativeSymbol); - var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype; - symbolPrototype.constructor = SymbolWrapper; - var symbolToString = symbolPrototype.toString; - var native = String(NativeSymbol('test')) == 'Symbol(test)'; - var regexp = /^Symbol\((.*)\)[^)]+$/; - defineProperty(symbolPrototype, 'description', { - configurable: true, - get: function description() { - var symbol = isObject(this) ? this.valueOf() : this; - var string = symbolToString.call(symbol); - if (has(EmptyStringDescriptionStore, symbol)) return ''; - var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1'); - return desc === '' ? undefined : desc; - } - }); - $({ - global: true, - forced: true - }, { - Symbol: SymbolWrapper - }); - } - /***/ - - }, - - /***/ - "./node_modules/core-js/modules/es.symbol.has-instance.js": - /*!****************************************************************!*\ - !*** ./node_modules/core-js/modules/es.symbol.has-instance.js ***! - \****************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsSymbolHasInstanceJs(module, exports, __webpack_require__) { - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/define-well-known-symbol */ - "./node_modules/core-js/internals/define-well-known-symbol.js"); // `Symbol.hasInstance` well-known symbol - // https://tc39.github.io/ecma262/#sec-symbol.hasinstance - - - defineWellKnownSymbol('hasInstance'); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.symbol.is-concat-spreadable.js": - /*!************************************************************************!*\ - !*** ./node_modules/core-js/modules/es.symbol.is-concat-spreadable.js ***! - \************************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsSymbolIsConcatSpreadableJs(module, exports, __webpack_require__) { - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/define-well-known-symbol */ - "./node_modules/core-js/internals/define-well-known-symbol.js"); // `Symbol.isConcatSpreadable` well-known symbol - // https://tc39.github.io/ecma262/#sec-symbol.isconcatspreadable - - - defineWellKnownSymbol('isConcatSpreadable'); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.symbol.iterator.js": - /*!************************************************************!*\ - !*** ./node_modules/core-js/modules/es.symbol.iterator.js ***! - \************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsSymbolIteratorJs(module, exports, __webpack_require__) { - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/define-well-known-symbol */ - "./node_modules/core-js/internals/define-well-known-symbol.js"); // `Symbol.iterator` well-known symbol - // https://tc39.github.io/ecma262/#sec-symbol.iterator - - - defineWellKnownSymbol('iterator'); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.symbol.js": - /*!***************************************************!*\ - !*** ./node_modules/core-js/modules/es.symbol.js ***! - \***************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsSymbolJs(module, exports, __webpack_require__) { - "use strict"; - - var $ = __webpack_require__( - /*! ../internals/export */ - "./node_modules/core-js/internals/export.js"); - - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - var getBuiltIn = __webpack_require__( - /*! ../internals/get-built-in */ - "./node_modules/core-js/internals/get-built-in.js"); - - var IS_PURE = __webpack_require__( - /*! ../internals/is-pure */ - "./node_modules/core-js/internals/is-pure.js"); - - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ - "./node_modules/core-js/internals/descriptors.js"); - - var NATIVE_SYMBOL = __webpack_require__( - /*! ../internals/native-symbol */ - "./node_modules/core-js/internals/native-symbol.js"); - - var USE_SYMBOL_AS_UID = __webpack_require__( - /*! ../internals/use-symbol-as-uid */ - "./node_modules/core-js/internals/use-symbol-as-uid.js"); - - var fails = __webpack_require__( - /*! ../internals/fails */ - "./node_modules/core-js/internals/fails.js"); - - var has = __webpack_require__( - /*! ../internals/has */ - "./node_modules/core-js/internals/has.js"); - - var isArray = __webpack_require__( - /*! ../internals/is-array */ - "./node_modules/core-js/internals/is-array.js"); - - var isObject = __webpack_require__( - /*! ../internals/is-object */ - "./node_modules/core-js/internals/is-object.js"); - - var anObject = __webpack_require__( - /*! ../internals/an-object */ - "./node_modules/core-js/internals/an-object.js"); - - var toObject = __webpack_require__( - /*! ../internals/to-object */ - "./node_modules/core-js/internals/to-object.js"); - - var toIndexedObject = __webpack_require__( - /*! ../internals/to-indexed-object */ - "./node_modules/core-js/internals/to-indexed-object.js"); - - var toPrimitive = __webpack_require__( - /*! ../internals/to-primitive */ - "./node_modules/core-js/internals/to-primitive.js"); - - var createPropertyDescriptor = __webpack_require__( - /*! ../internals/create-property-descriptor */ - "./node_modules/core-js/internals/create-property-descriptor.js"); - - var nativeObjectCreate = __webpack_require__( - /*! ../internals/object-create */ - "./node_modules/core-js/internals/object-create.js"); - - var objectKeys = __webpack_require__( - /*! ../internals/object-keys */ - "./node_modules/core-js/internals/object-keys.js"); - - var getOwnPropertyNamesModule = __webpack_require__( - /*! ../internals/object-get-own-property-names */ - "./node_modules/core-js/internals/object-get-own-property-names.js"); - - var getOwnPropertyNamesExternal = __webpack_require__( - /*! ../internals/object-get-own-property-names-external */ - "./node_modules/core-js/internals/object-get-own-property-names-external.js"); - - var getOwnPropertySymbolsModule = __webpack_require__( - /*! ../internals/object-get-own-property-symbols */ - "./node_modules/core-js/internals/object-get-own-property-symbols.js"); - - var getOwnPropertyDescriptorModule = __webpack_require__( - /*! ../internals/object-get-own-property-descriptor */ - "./node_modules/core-js/internals/object-get-own-property-descriptor.js"); - - var definePropertyModule = __webpack_require__( - /*! ../internals/object-define-property */ - "./node_modules/core-js/internals/object-define-property.js"); - - var propertyIsEnumerableModule = __webpack_require__( - /*! ../internals/object-property-is-enumerable */ - "./node_modules/core-js/internals/object-property-is-enumerable.js"); - - var createNonEnumerableProperty = __webpack_require__( - /*! ../internals/create-non-enumerable-property */ - "./node_modules/core-js/internals/create-non-enumerable-property.js"); - - var redefine = __webpack_require__( - /*! ../internals/redefine */ - "./node_modules/core-js/internals/redefine.js"); - - var shared = __webpack_require__( - /*! ../internals/shared */ - "./node_modules/core-js/internals/shared.js"); - - var sharedKey = __webpack_require__( - /*! ../internals/shared-key */ - "./node_modules/core-js/internals/shared-key.js"); - - var hiddenKeys = __webpack_require__( - /*! ../internals/hidden-keys */ - "./node_modules/core-js/internals/hidden-keys.js"); - - var uid = __webpack_require__( - /*! ../internals/uid */ - "./node_modules/core-js/internals/uid.js"); - - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ - "./node_modules/core-js/internals/well-known-symbol.js"); - - var wrappedWellKnownSymbolModule = __webpack_require__( - /*! ../internals/well-known-symbol-wrapped */ - "./node_modules/core-js/internals/well-known-symbol-wrapped.js"); - - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/define-well-known-symbol */ - "./node_modules/core-js/internals/define-well-known-symbol.js"); - - var setToStringTag = __webpack_require__( - /*! ../internals/set-to-string-tag */ - "./node_modules/core-js/internals/set-to-string-tag.js"); - - var InternalStateModule = __webpack_require__( - /*! ../internals/internal-state */ - "./node_modules/core-js/internals/internal-state.js"); - - var $forEach = __webpack_require__( - /*! ../internals/array-iteration */ - "./node_modules/core-js/internals/array-iteration.js").forEach; - - var HIDDEN = sharedKey('hidden'); - var SYMBOL = 'Symbol'; - var PROTOTYPE = 'prototype'; - var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); - var setInternalState = InternalStateModule.set; - var getInternalState = InternalStateModule.getterFor(SYMBOL); - var ObjectPrototype = Object[PROTOTYPE]; - var $Symbol = global.Symbol; - var $stringify = getBuiltIn('JSON', 'stringify'); - var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; - var nativeDefineProperty = definePropertyModule.f; - var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f; - var nativePropertyIsEnumerable = propertyIsEnumerableModule.f; - var AllSymbols = shared('symbols'); - var ObjectPrototypeSymbols = shared('op-symbols'); - var StringToSymbolRegistry = shared('string-to-symbol-registry'); - var SymbolToStringRegistry = shared('symbol-to-string-registry'); - var WellKnownSymbolsStore = shared('wks'); - var QObject = global.QObject; // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 - - var USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 - - var setSymbolDescriptor = DESCRIPTORS && fails(function () { - return nativeObjectCreate(nativeDefineProperty({}, 'a', { - get: function get() { - return nativeDefineProperty(this, 'a', { - value: 7 - }).a; - } - })).a != 7; - }) ? function (O, P, Attributes) { - var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P); - if (ObjectPrototypeDescriptor) delete ObjectPrototype[P]; - nativeDefineProperty(O, P, Attributes); - - if (ObjectPrototypeDescriptor && O !== ObjectPrototype) { - nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor); - } - } : nativeDefineProperty; - - var wrap = function wrap(tag, description) { - var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]); - setInternalState(symbol, { - type: SYMBOL, - tag: tag, - description: description - }); - if (!DESCRIPTORS) symbol.description = description; - return symbol; - }; - - var isSymbol = USE_SYMBOL_AS_UID ? function (it) { - return typeof it == 'symbol'; - } : function (it) { - return Object(it) instanceof $Symbol; - }; - - var $defineProperty = function defineProperty(O, P, Attributes) { - if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes); - anObject(O); - var key = toPrimitive(P, true); - anObject(Attributes); - - if (has(AllSymbols, key)) { - if (!Attributes.enumerable) { - if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {})); - O[HIDDEN][key] = true; - } else { - if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false; - Attributes = nativeObjectCreate(Attributes, { - enumerable: createPropertyDescriptor(0, false) - }); - } - - return setSymbolDescriptor(O, key, Attributes); - } - - return nativeDefineProperty(O, key, Attributes); - }; - - var $defineProperties = function defineProperties(O, Properties) { - anObject(O); - var properties = toIndexedObject(Properties); - var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties)); - $forEach(keys, function (key) { - if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]); - }); - return O; - }; - - var $create = function create(O, Properties) { - return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties); - }; - - var $propertyIsEnumerable = function propertyIsEnumerable(V) { - var P = toPrimitive(V, true); - var enumerable = nativePropertyIsEnumerable.call(this, P); - if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false; - return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true; - }; - - var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) { - var it = toIndexedObject(O); - var key = toPrimitive(P, true); - if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return; - var descriptor = nativeGetOwnPropertyDescriptor(it, key); - - if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) { - descriptor.enumerable = true; - } - - return descriptor; - }; - - var $getOwnPropertyNames = function getOwnPropertyNames(O) { - var names = nativeGetOwnPropertyNames(toIndexedObject(O)); - var result = []; - $forEach(names, function (key) { - if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key); - }); - return result; - }; - - var $getOwnPropertySymbols = function getOwnPropertySymbols(O) { - var IS_OBJECT_PROTOTYPE = O === ObjectPrototype; - var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O)); - var result = []; - $forEach(names, function (key) { - if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) { - result.push(AllSymbols[key]); - } - }); - return result; - }; // `Symbol` constructor - // https://tc39.github.io/ecma262/#sec-symbol-constructor - - - if (!NATIVE_SYMBOL) { - $Symbol = function Symbol() { - if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor'); - var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]); - var tag = uid(description); - - var setter = function setter(value) { - if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value); - if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; - setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value)); - }; - - if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { - configurable: true, - set: setter - }); - return wrap(tag, description); - }; - - redefine($Symbol[PROTOTYPE], 'toString', function toString() { - return getInternalState(this).tag; - }); - redefine($Symbol, 'withoutSetter', function (description) { - return wrap(uid(description), description); - }); - propertyIsEnumerableModule.f = $propertyIsEnumerable; - definePropertyModule.f = $defineProperty; - getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor; - getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames; - getOwnPropertySymbolsModule.f = $getOwnPropertySymbols; - - wrappedWellKnownSymbolModule.f = function (name) { - return wrap(wellKnownSymbol(name), name); - }; - - if (DESCRIPTORS) { - // https://github.com/tc39/proposal-Symbol-description - nativeDefineProperty($Symbol[PROTOTYPE], 'description', { - configurable: true, - get: function description() { - return getInternalState(this).description; - } - }); - - if (!IS_PURE) { - redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { - unsafe: true - }); - } - } - } - - $({ - global: true, - wrap: true, - forced: !NATIVE_SYMBOL, - sham: !NATIVE_SYMBOL - }, { - Symbol: $Symbol - }); - $forEach(objectKeys(WellKnownSymbolsStore), function (name) { - defineWellKnownSymbol(name); - }); - $({ - target: SYMBOL, - stat: true, - forced: !NATIVE_SYMBOL - }, { - // `Symbol.for` method - // https://tc39.github.io/ecma262/#sec-symbol.for - 'for': function _for(key) { - var string = String(key); - if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string]; - var symbol = $Symbol(string); - StringToSymbolRegistry[string] = symbol; - SymbolToStringRegistry[symbol] = string; - return symbol; - }, - // `Symbol.keyFor` method - // https://tc39.github.io/ecma262/#sec-symbol.keyfor - keyFor: function keyFor(sym) { - if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol'); - if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym]; - }, - useSetter: function useSetter() { - USE_SETTER = true; - }, - useSimple: function useSimple() { - USE_SETTER = false; - } - }); - $({ - target: 'Object', - stat: true, - forced: !NATIVE_SYMBOL, - sham: !DESCRIPTORS - }, { - // `Object.create` method - // https://tc39.github.io/ecma262/#sec-object.create - create: $create, - // `Object.defineProperty` method - // https://tc39.github.io/ecma262/#sec-object.defineproperty - defineProperty: $defineProperty, - // `Object.defineProperties` method - // https://tc39.github.io/ecma262/#sec-object.defineproperties - defineProperties: $defineProperties, - // `Object.getOwnPropertyDescriptor` method - // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors - getOwnPropertyDescriptor: $getOwnPropertyDescriptor - }); - $({ - target: 'Object', - stat: true, - forced: !NATIVE_SYMBOL - }, { - // `Object.getOwnPropertyNames` method - // https://tc39.github.io/ecma262/#sec-object.getownpropertynames - getOwnPropertyNames: $getOwnPropertyNames, - // `Object.getOwnPropertySymbols` method - // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols - getOwnPropertySymbols: $getOwnPropertySymbols - }); // Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives - // https://bugs.chromium.org/p/v8/issues/detail?id=3443 - - $({ - target: 'Object', - stat: true, - forced: fails(function () { - getOwnPropertySymbolsModule.f(1); - }) - }, { - getOwnPropertySymbols: function getOwnPropertySymbols(it) { - return getOwnPropertySymbolsModule.f(toObject(it)); - } - }); // `JSON.stringify` method behavior with symbols - // https://tc39.github.io/ecma262/#sec-json.stringify - - if ($stringify) { - var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () { - var symbol = $Symbol(); // MS Edge converts symbol values to JSON as {} - - return $stringify([symbol]) != '[null]' // WebKit converts symbol values to JSON as null - || $stringify({ - a: symbol - }) != '{}' // V8 throws on boxed symbols - || $stringify(Object(symbol)) != '{}'; - }); - $({ - target: 'JSON', - stat: true, - forced: FORCED_JSON_STRINGIFY - }, { - // eslint-disable-next-line no-unused-vars - stringify: function stringify(it, replacer, space) { - var args = [it]; - var index = 1; - var $replacer; - - while (arguments.length > index) { - args.push(arguments[index++]); - } - - $replacer = replacer; - if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined - - if (!isArray(replacer)) replacer = function replacer(key, value) { - if (typeof $replacer == 'function') value = $replacer.call(this, key, value); - if (!isSymbol(value)) return value; - }; - args[1] = replacer; - return $stringify.apply(null, args); - } - }); - } // `Symbol.prototype[@@toPrimitive]` method - // https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive - - - if (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) { - createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); - } // `Symbol.prototype[@@toStringTag]` property - // https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag - - - setToStringTag($Symbol, SYMBOL); - hiddenKeys[HIDDEN] = true; - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.symbol.match-all.js": - /*!*************************************************************!*\ - !*** ./node_modules/core-js/modules/es.symbol.match-all.js ***! - \*************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsSymbolMatchAllJs(module, exports, __webpack_require__) { - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/define-well-known-symbol */ - "./node_modules/core-js/internals/define-well-known-symbol.js"); // `Symbol.matchAll` well-known symbol - - - defineWellKnownSymbol('matchAll'); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.symbol.match.js": - /*!*********************************************************!*\ - !*** ./node_modules/core-js/modules/es.symbol.match.js ***! - \*********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsSymbolMatchJs(module, exports, __webpack_require__) { - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/define-well-known-symbol */ - "./node_modules/core-js/internals/define-well-known-symbol.js"); // `Symbol.match` well-known symbol - // https://tc39.github.io/ecma262/#sec-symbol.match - - - defineWellKnownSymbol('match'); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.symbol.replace.js": - /*!***********************************************************!*\ - !*** ./node_modules/core-js/modules/es.symbol.replace.js ***! - \***********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsSymbolReplaceJs(module, exports, __webpack_require__) { - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/define-well-known-symbol */ - "./node_modules/core-js/internals/define-well-known-symbol.js"); // `Symbol.replace` well-known symbol - // https://tc39.github.io/ecma262/#sec-symbol.replace - - - defineWellKnownSymbol('replace'); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.symbol.search.js": - /*!**********************************************************!*\ - !*** ./node_modules/core-js/modules/es.symbol.search.js ***! - \**********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsSymbolSearchJs(module, exports, __webpack_require__) { - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/define-well-known-symbol */ - "./node_modules/core-js/internals/define-well-known-symbol.js"); // `Symbol.search` well-known symbol - // https://tc39.github.io/ecma262/#sec-symbol.search - - - defineWellKnownSymbol('search'); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.symbol.species.js": - /*!***********************************************************!*\ - !*** ./node_modules/core-js/modules/es.symbol.species.js ***! - \***********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsSymbolSpeciesJs(module, exports, __webpack_require__) { - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/define-well-known-symbol */ - "./node_modules/core-js/internals/define-well-known-symbol.js"); // `Symbol.species` well-known symbol - // https://tc39.github.io/ecma262/#sec-symbol.species - - - defineWellKnownSymbol('species'); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.symbol.split.js": - /*!*********************************************************!*\ - !*** ./node_modules/core-js/modules/es.symbol.split.js ***! - \*********************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsSymbolSplitJs(module, exports, __webpack_require__) { - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/define-well-known-symbol */ - "./node_modules/core-js/internals/define-well-known-symbol.js"); // `Symbol.split` well-known symbol - // https://tc39.github.io/ecma262/#sec-symbol.split - - - defineWellKnownSymbol('split'); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.symbol.to-primitive.js": - /*!****************************************************************!*\ - !*** ./node_modules/core-js/modules/es.symbol.to-primitive.js ***! - \****************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsSymbolToPrimitiveJs(module, exports, __webpack_require__) { - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/define-well-known-symbol */ - "./node_modules/core-js/internals/define-well-known-symbol.js"); // `Symbol.toPrimitive` well-known symbol - // https://tc39.github.io/ecma262/#sec-symbol.toprimitive - - - defineWellKnownSymbol('toPrimitive'); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.symbol.to-string-tag.js": - /*!*****************************************************************!*\ - !*** ./node_modules/core-js/modules/es.symbol.to-string-tag.js ***! - \*****************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsSymbolToStringTagJs(module, exports, __webpack_require__) { - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/define-well-known-symbol */ - "./node_modules/core-js/internals/define-well-known-symbol.js"); // `Symbol.toStringTag` well-known symbol - // https://tc39.github.io/ecma262/#sec-symbol.tostringtag - - - defineWellKnownSymbol('toStringTag'); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.symbol.unscopables.js": - /*!***************************************************************!*\ - !*** ./node_modules/core-js/modules/es.symbol.unscopables.js ***! - \***************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsSymbolUnscopablesJs(module, exports, __webpack_require__) { - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/define-well-known-symbol */ - "./node_modules/core-js/internals/define-well-known-symbol.js"); // `Symbol.unscopables` well-known symbol - // https://tc39.github.io/ecma262/#sec-symbol.unscopables - - - defineWellKnownSymbol('unscopables'); - /***/ - }, - - /***/ - "./node_modules/core-js/modules/es.weak-map.js": - /*!*****************************************************!*\ - !*** ./node_modules/core-js/modules/es.weak-map.js ***! - \*****************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesEsWeakMapJs(module, exports, __webpack_require__) { - "use strict"; - - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - var redefineAll = __webpack_require__( - /*! ../internals/redefine-all */ - "./node_modules/core-js/internals/redefine-all.js"); - - var InternalMetadataModule = __webpack_require__( - /*! ../internals/internal-metadata */ - "./node_modules/core-js/internals/internal-metadata.js"); - - var collection = __webpack_require__( - /*! ../internals/collection */ - "./node_modules/core-js/internals/collection.js"); - - var collectionWeak = __webpack_require__( - /*! ../internals/collection-weak */ - "./node_modules/core-js/internals/collection-weak.js"); - - var isObject = __webpack_require__( - /*! ../internals/is-object */ - "./node_modules/core-js/internals/is-object.js"); - - var enforceIternalState = __webpack_require__( - /*! ../internals/internal-state */ - "./node_modules/core-js/internals/internal-state.js").enforce; - - var NATIVE_WEAK_MAP = __webpack_require__( - /*! ../internals/native-weak-map */ - "./node_modules/core-js/internals/native-weak-map.js"); - - var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global; - var isExtensible = Object.isExtensible; - var InternalWeakMap; - - var wrapper = function wrapper(init) { - return function WeakMap() { - return init(this, arguments.length ? arguments[0] : undefined); - }; - }; // `WeakMap` constructor - // https://tc39.github.io/ecma262/#sec-weakmap-constructor - - - var $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak); // IE11 WeakMap frozen keys fix - // We can't use feature detection because it crash some old IE builds - // https://github.com/zloirock/core-js/issues/485 - - if (NATIVE_WEAK_MAP && IS_IE11) { - InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true); - InternalMetadataModule.REQUIRED = true; - var WeakMapPrototype = $WeakMap.prototype; - var nativeDelete = WeakMapPrototype['delete']; - var nativeHas = WeakMapPrototype.has; - var nativeGet = WeakMapPrototype.get; - var nativeSet = WeakMapPrototype.set; - redefineAll(WeakMapPrototype, { - 'delete': function _delete(key) { - if (isObject(key) && !isExtensible(key)) { - var state = enforceIternalState(this); - if (!state.frozen) state.frozen = new InternalWeakMap(); - return nativeDelete.call(this, key) || state.frozen['delete'](key); - } - - return nativeDelete.call(this, key); - }, - has: function has(key) { - if (isObject(key) && !isExtensible(key)) { - var state = enforceIternalState(this); - if (!state.frozen) state.frozen = new InternalWeakMap(); - return nativeHas.call(this, key) || state.frozen.has(key); - } - - return nativeHas.call(this, key); - }, - get: function get(key) { - if (isObject(key) && !isExtensible(key)) { - var state = enforceIternalState(this); - if (!state.frozen) state.frozen = new InternalWeakMap(); - return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key); - } - - return nativeGet.call(this, key); - }, - set: function set(key, value) { - if (isObject(key) && !isExtensible(key)) { - var state = enforceIternalState(this); - if (!state.frozen) state.frozen = new InternalWeakMap(); - nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value); - } else nativeSet.call(this, key, value); - - return this; - } - }); - } - /***/ - - }, - - /***/ - "./node_modules/core-js/modules/web.dom-collections.for-each.js": - /*!**********************************************************************!*\ - !*** ./node_modules/core-js/modules/web.dom-collections.for-each.js ***! - \**********************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesWebDomCollectionsForEachJs(module, exports, __webpack_require__) { - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - var DOMIterables = __webpack_require__( - /*! ../internals/dom-iterables */ - "./node_modules/core-js/internals/dom-iterables.js"); - - var forEach = __webpack_require__( - /*! ../internals/array-for-each */ - "./node_modules/core-js/internals/array-for-each.js"); - - var createNonEnumerableProperty = __webpack_require__( - /*! ../internals/create-non-enumerable-property */ - "./node_modules/core-js/internals/create-non-enumerable-property.js"); - - for (var COLLECTION_NAME in DOMIterables) { - var Collection = global[COLLECTION_NAME]; - var CollectionPrototype = Collection && Collection.prototype; // some Chrome versions have non-configurable methods on DOMTokenList - - if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try { - createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach); - } catch (error) { - CollectionPrototype.forEach = forEach; - } - } - /***/ - - }, - - /***/ - "./node_modules/core-js/modules/web.dom-collections.iterator.js": - /*!**********************************************************************!*\ - !*** ./node_modules/core-js/modules/web.dom-collections.iterator.js ***! - \**********************************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesCoreJsModulesWebDomCollectionsIteratorJs(module, exports, __webpack_require__) { - var global = __webpack_require__( - /*! ../internals/global */ - "./node_modules/core-js/internals/global.js"); - - var DOMIterables = __webpack_require__( - /*! ../internals/dom-iterables */ - "./node_modules/core-js/internals/dom-iterables.js"); - - var ArrayIteratorMethods = __webpack_require__( - /*! ../modules/es.array.iterator */ - "./node_modules/core-js/modules/es.array.iterator.js"); - - var createNonEnumerableProperty = __webpack_require__( - /*! ../internals/create-non-enumerable-property */ - "./node_modules/core-js/internals/create-non-enumerable-property.js"); - - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ - "./node_modules/core-js/internals/well-known-symbol.js"); - - var ITERATOR = wellKnownSymbol('iterator'); - var TO_STRING_TAG = wellKnownSymbol('toStringTag'); - var ArrayValues = ArrayIteratorMethods.values; - - for (var COLLECTION_NAME in DOMIterables) { - var Collection = global[COLLECTION_NAME]; - var CollectionPrototype = Collection && Collection.prototype; - - if (CollectionPrototype) { - // some Chrome versions have non-configurable methods on DOMTokenList - if (CollectionPrototype[ITERATOR] !== ArrayValues) try { - createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues); - } catch (error) { - CollectionPrototype[ITERATOR] = ArrayValues; - } - - if (!CollectionPrototype[TO_STRING_TAG]) { - createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME); - } - - if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) { - // some Chrome versions have non-configurable methods on DOMTokenList - if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try { - createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]); - } catch (error) { - CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME]; - } - } - } - } - /***/ - - }, - - /***/ - "./node_modules/regenerator-runtime/runtime.js": - /*!*****************************************************!*\ - !*** ./node_modules/regenerator-runtime/runtime.js ***! - \*****************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesRegeneratorRuntimeRuntimeJs(module, exports, __webpack_require__) { - /** - * Copyright (c) 2014-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - var runtime = function (exports) { - "use strict"; - - var Op = Object.prototype; - var hasOwn = Op.hasOwnProperty; - var undefined; // More compressible than void 0. - - var $Symbol = typeof Symbol === "function" ? Symbol : {}; - var iteratorSymbol = $Symbol.iterator || "@@iterator"; - var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; - var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - - function wrap(innerFn, outerFn, self, tryLocsList) { - // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; - var generator = Object.create(protoGenerator.prototype); - var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next, - // .throw, and .return methods. - - generator._invoke = makeInvokeMethod(innerFn, self, context); - return generator; - } - - exports.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion - // record like context.tryEntries[i].completion. This interface could - // have been (and was previously) designed to take a closure to be - // invoked without arguments, but in all the cases we care about we - // already have an existing method we want to call, so there's no need - // to create a new function object. We can even get away with assuming - // the method takes exactly one argument, since that happens to be true - // in every case, so we don't have to touch the arguments object. The - // only additional allocation required is the completion record, which - // has a stable shape and so hopefully should be cheap to allocate. - - function tryCatch(fn, obj, arg) { - try { - return { - type: "normal", - arg: fn.call(obj, arg) - }; - } catch (err) { - return { - type: "throw", - arg: err - }; - } - } - - var GenStateSuspendedStart = "suspendedStart"; - var GenStateSuspendedYield = "suspendedYield"; - var GenStateExecuting = "executing"; - var GenStateCompleted = "completed"; // Returning this object from the innerFn has the same effect as - // breaking out of the dispatch switch statement. - - var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and - // .constructor.prototype properties for functions that return Generator - // objects. For full spec compliance, you may wish to configure your - // minifier not to mangle the names of these two functions. - - function Generator() {} - - function GeneratorFunction() {} - - function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that - // don't natively support it. - - - var IteratorPrototype = {}; - - IteratorPrototype[iteratorSymbol] = function () { - return this; - }; - - var getProto = Object.getPrototypeOf; - var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - - if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { - // This environment has a native %IteratorPrototype%; use it instead - // of the polyfill. - IteratorPrototype = NativeIteratorPrototype; - } - - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); - GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; - GeneratorFunctionPrototype.constructor = GeneratorFunction; - GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction"; // Helper for defining the .next, .throw, and .return methods of the - // Iterator interface in terms of a single ._invoke method. - - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function (method) { - prototype[method] = function (arg) { - return this._invoke(method, arg); - }; - }); - } - - exports.isGeneratorFunction = function (genFun) { - var ctor = typeof genFun === "function" && genFun.constructor; - return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can - // do is to check its .name property. - (ctor.displayName || ctor.name) === "GeneratorFunction" : false; - }; - - exports.mark = function (genFun) { - if (Object.setPrototypeOf) { - Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); - } else { - genFun.__proto__ = GeneratorFunctionPrototype; - - if (!(toStringTagSymbol in genFun)) { - genFun[toStringTagSymbol] = "GeneratorFunction"; - } - } - - genFun.prototype = Object.create(Gp); - return genFun; - }; // Within the body of any async function, `await x` is transformed to - // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test - // `hasOwn.call(value, "__await")` to determine if the yielded value is - // meant to be awaited. - - - exports.awrap = function (arg) { - return { - __await: arg - }; - }; - - function AsyncIterator(generator) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - - if (record.type === "throw") { - reject(record.arg); - } else { - var result = record.arg; - var value = result.value; - - if (value && typeof value === "object" && hasOwn.call(value, "__await")) { - return Promise.resolve(value.__await).then(function (value) { - invoke("next", value, resolve, reject); - }, function (err) { - invoke("throw", err, resolve, reject); - }); - } - - return Promise.resolve(value).then(function (unwrapped) { - // When a yielded Promise is resolved, its final value becomes - // the .value of the Promise<{value,done}> result for the - // current iteration. - result.value = unwrapped; - resolve(result); - }, function (error) { - // If a rejected Promise was yielded, throw the rejection back - // into the async generator function so it can be handled there. - return invoke("throw", error, resolve, reject); - }); - } - } - - var previousPromise; - - function enqueue(method, arg) { - function callInvokeWithMethodAndArg() { - return new Promise(function (resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - - return previousPromise = // If enqueue has been called before, then we want to wait until - // all previous Promises have been resolved before calling invoke, - // so that results are always delivered in the correct order. If - // enqueue has not been called before, then it is important to - // call invoke immediately, without waiting on a callback to fire, - // so that the async generator function has the opportunity to do - // any necessary setup in a predictable way. This predictability - // is why the Promise constructor synchronously invokes its - // executor callback, and why async functions synchronously - // execute code before the first await. Since we implement simple - // async functions in terms of async generators, it is especially - // important to get this right, even though it requires care. - previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later - // invocations of the iterator. - callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); - } // Define the unified helper method that is used to implement .next, - // .throw, and .return (see defineIteratorMethods). - - - this._invoke = enqueue; - } - - defineIteratorMethods(AsyncIterator.prototype); - - AsyncIterator.prototype[asyncIteratorSymbol] = function () { - return this; - }; - - exports.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of - // AsyncIterator objects; they just return a Promise for the value of - // the final result produced by the iterator. - - exports.async = function (innerFn, outerFn, self, tryLocsList) { - var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList)); - return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator. - : iter.next().then(function (result) { - return result.done ? result.value : iter.next(); - }); - }; - - function makeInvokeMethod(innerFn, self, context) { - var state = GenStateSuspendedStart; - return function invoke(method, arg) { - if (state === GenStateExecuting) { - throw new Error("Generator is already running"); - } - - if (state === GenStateCompleted) { - if (method === "throw") { - throw arg; - } // Be forgiving, per 25.3.3.3.3 of the spec: - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume - - - return doneResult(); - } - - context.method = method; - context.arg = arg; - - while (true) { - var delegate = context.delegate; - - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - - if (context.method === "next") { - // Setting context._sent for legacy support of Babel's - // function.sent implementation. - context.sent = context._sent = context.arg; - } else if (context.method === "throw") { - if (state === GenStateSuspendedStart) { - state = GenStateCompleted; - throw context.arg; - } - - context.dispatchException(context.arg); - } else if (context.method === "return") { - context.abrupt("return", context.arg); - } - - state = GenStateExecuting; - var record = tryCatch(innerFn, self, context); - - if (record.type === "normal") { - // If an exception is thrown from innerFn, we leave state === - // GenStateExecuting and loop back for another invocation. - state = context.done ? GenStateCompleted : GenStateSuspendedYield; - - if (record.arg === ContinueSentinel) { - continue; - } - - return { - value: record.arg, - done: context.done - }; - } else if (record.type === "throw") { - state = GenStateCompleted; // Dispatch the exception by looping back around to the - // context.dispatchException(context.arg) call above. - - context.method = "throw"; - context.arg = record.arg; - } - } - }; - } // Call delegate.iterator[context.method](context.arg) and handle the - // result, either by returning a { value, done } result from the - // delegate iterator, or by modifying context.method and context.arg, - // setting context.delegate to null, and returning the ContinueSentinel. - - - function maybeInvokeDelegate(delegate, context) { - var method = delegate.iterator[context.method]; - - if (method === undefined) { - // A .throw or .return when the delegate iterator has no .throw - // method always terminates the yield* loop. - context.delegate = null; - - if (context.method === "throw") { - // Note: ["return"] must be used for ES3 parsing compatibility. - if (delegate.iterator["return"]) { - // If the delegate iterator has a return method, give it a - // chance to clean up. - context.method = "return"; - context.arg = undefined; - maybeInvokeDelegate(delegate, context); - - if (context.method === "throw") { - // If maybeInvokeDelegate(context) changed context.method from - // "return" to "throw", let that override the TypeError below. - return ContinueSentinel; - } - } - - context.method = "throw"; - context.arg = new TypeError("The iterator does not provide a 'throw' method"); - } - - return ContinueSentinel; - } - - var record = tryCatch(method, delegate.iterator, context.arg); - - if (record.type === "throw") { - context.method = "throw"; - context.arg = record.arg; - context.delegate = null; - return ContinueSentinel; - } - - var info = record.arg; - - if (!info) { - context.method = "throw"; - context.arg = new TypeError("iterator result is not an object"); - context.delegate = null; - return ContinueSentinel; - } - - if (info.done) { - // Assign the result of the finished delegate to the temporary - // variable specified by delegate.resultName (see delegateYield). - context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield). - - context.next = delegate.nextLoc; // If context.method was "throw" but the delegate handled the - // exception, let the outer generator proceed normally. If - // context.method was "next", forget context.arg since it has been - // "consumed" by the delegate iterator. If context.method was - // "return", allow the original .return call to continue in the - // outer generator. - - if (context.method !== "return") { - context.method = "next"; - context.arg = undefined; - } - } else { - // Re-yield the result returned by the delegate method. - return info; - } // The delegate iterator is finished, so forget it and continue with - // the outer generator. - - - context.delegate = null; - return ContinueSentinel; - } // Define Generator.prototype.{next,throw,return} in terms of the - // unified ._invoke helper method. - - - defineIteratorMethods(Gp); - Gp[toStringTagSymbol] = "Generator"; // A Generator should always return itself as the iterator object when the - // @@iterator function is called on it. Some browsers' implementations of the - // iterator prototype chain incorrectly implement this, causing the Generator - // object to not be returned from this call. This ensures that doesn't happen. - // See https://github.com/facebook/regenerator/issues/274 for more details. - - Gp[iteratorSymbol] = function () { - return this; - }; - - Gp.toString = function () { - return "[object Generator]"; - }; - - function pushTryEntry(locs) { - var entry = { - tryLoc: locs[0] - }; - - if (1 in locs) { - entry.catchLoc = locs[1]; - } - - if (2 in locs) { - entry.finallyLoc = locs[2]; - entry.afterLoc = locs[3]; - } - - this.tryEntries.push(entry); - } - - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal"; - delete record.arg; - entry.completion = record; - } - - function Context(tryLocsList) { - // The root entry object (effectively a try statement without a catch - // or a finally block) gives us a place to store values thrown from - // locations where there is no enclosing try statement. - this.tryEntries = [{ - tryLoc: "root" - }]; - tryLocsList.forEach(pushTryEntry, this); - this.reset(true); - } - - exports.keys = function (object) { - var keys = []; - - for (var key in object) { - keys.push(key); - } - - keys.reverse(); // Rather than returning an object with a next method, we keep - // things simple and return the next function itself. - - return function next() { - while (keys.length) { - var key = keys.pop(); - - if (key in object) { - next.value = key; - next.done = false; - return next; - } - } // To avoid creating an additional object, we just hang the .value - // and .done properties off the next function object itself. This - // also ensures that the minifier will not anonymize the function. - - - next.done = true; - return next; - }; - }; - - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - - if (iteratorMethod) { - return iteratorMethod.call(iterable); - } - - if (typeof iterable.next === "function") { - return iterable; - } - - if (!isNaN(iterable.length)) { - var i = -1, - next = function next() { - while (++i < iterable.length) { - if (hasOwn.call(iterable, i)) { - next.value = iterable[i]; - next.done = false; - return next; - } - } - - next.value = undefined; - next.done = true; - return next; - }; - - return next.next = next; - } - } // Return an iterator with no values. - - - return { - next: doneResult - }; - } - - exports.values = values; - - function doneResult() { - return { - value: undefined, - done: true - }; - } - - Context.prototype = { - constructor: Context, - reset: function reset(skipTempReset) { - this.prev = 0; - this.next = 0; // Resetting context._sent for legacy support of Babel's - // function.sent implementation. - - this.sent = this._sent = undefined; - this.done = false; - this.delegate = null; - this.method = "next"; - this.arg = undefined; - this.tryEntries.forEach(resetTryEntry); - - if (!skipTempReset) { - for (var name in this) { - // Not sure about the optimal order of these conditions: - if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { - this[name] = undefined; - } - } - } - }, - stop: function stop() { - this.done = true; - var rootEntry = this.tryEntries[0]; - var rootRecord = rootEntry.completion; - - if (rootRecord.type === "throw") { - throw rootRecord.arg; - } - - return this.rval; - }, - dispatchException: function dispatchException(exception) { - if (this.done) { - throw exception; - } - - var context = this; - - function handle(loc, caught) { - record.type = "throw"; - record.arg = exception; - context.next = loc; - - if (caught) { - // If the dispatched exception was caught by a catch block, - // then let that catch block handle the exception normally. - context.method = "next"; - context.arg = undefined; - } - - return !!caught; - } - - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - var record = entry.completion; - - if (entry.tryLoc === "root") { - // Exception thrown outside of any try block that could handle - // it, so set the completion value of the entire function to - // throw the exception. - return handle("end"); - } - - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"); - var hasFinally = hasOwn.call(entry, "finallyLoc"); - - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } else if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - } else if (hasCatch) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } - } else if (hasFinally) { - if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - } else { - throw new Error("try statement without catch or finally"); - } - } - } - }, - abrupt: function abrupt(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } - } - - if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { - // Ignore the finally entry if control is not jumping to a - // location outside the try/catch block. - finallyEntry = null; - } - - var record = finallyEntry ? finallyEntry.completion : {}; - record.type = type; - record.arg = arg; - - if (finallyEntry) { - this.method = "next"; - this.next = finallyEntry.finallyLoc; - return ContinueSentinel; - } - - return this.complete(record); - }, - complete: function complete(record, afterLoc) { - if (record.type === "throw") { - throw record.arg; - } - - if (record.type === "break" || record.type === "continue") { - this.next = record.arg; - } else if (record.type === "return") { - this.rval = this.arg = record.arg; - this.method = "return"; - this.next = "end"; - } else if (record.type === "normal" && afterLoc) { - this.next = afterLoc; - } - - return ContinueSentinel; - }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.finallyLoc === finallyLoc) { - this.complete(entry.completion, entry.afterLoc); - resetTryEntry(entry); - return ContinueSentinel; - } - } - }, - "catch": function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - - if (record.type === "throw") { - var thrown = record.arg; - resetTryEntry(entry); - } - - return thrown; - } - } // The context.catch method must only be called with a location - // argument that corresponds to a known catch block. - - - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }; - - if (this.method === "next") { - // Deliberately forget the last sent value so that we don't - // accidentally pass it on to the delegate. - this.arg = undefined; - } - - return ContinueSentinel; - } - }; // Regardless of whether this script is executing as a CommonJS module - // or not, return the runtime object so that we can declare the variable - // regeneratorRuntime in the outer scope, which allows this module to be - // injected easily by `bin/regenerator --include-runtime script.js`. - - return exports; - }( // If this script is executing as a CommonJS module, use module.exports - // as the regeneratorRuntime namespace. Otherwise create a new empty - // object. Either way, the resulting object will be used to initialize - // the regeneratorRuntime variable at the top of this file. - true ? module.exports : undefined); - - try { - regeneratorRuntime = runtime; - } catch (accidentalStrictMode) { - // This module should not be running in strict mode, so the above - // assignment should always work unless something is misconfigured. Just - // in case runtime.js accidentally runs in strict mode, we can escape - // strict mode using a global Function call. This could conceivably fail - // if a Content Security Policy forbids using Function, but in that case - // the proper solution is to fix the accidental strict mode problem. If - // you've misconfigured your bundler to force strict mode and applied a - // CSP to forbid Function, and you're not willing to fix either of those - // problems, please detail your unique predicament in a GitHub issue. - Function("r", "regeneratorRuntime = r")(runtime); - } - /***/ - - }, - - /***/ - "./node_modules/zone.js/dist/zone-evergreen.js": - /*!*****************************************************!*\ - !*** ./node_modules/zone.js/dist/zone-evergreen.js ***! - \*****************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesZoneJsDistZoneEvergreenJs(module, exports, __webpack_require__) { - var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__; - /** - * @license Angular v0.10.2 - * (c) 2010-2019 Google LLC. https://angular.io/ - * License: MIT - */ - - - (function (factory) { - true ? !(__WEBPACK_AMD_DEFINE_FACTORY__ = factory, __WEBPACK_AMD_DEFINE_RESULT__ = typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? __WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module) : __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; - })(function () { - 'use strict'; - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - var Zone$1 = function (global) { - var performance = global['performance']; - - function mark(name) { - performance && performance['mark'] && performance['mark'](name); - } - - function performanceMeasure(name, label) { - performance && performance['measure'] && performance['measure'](name, label); - } - - mark('Zone'); // Initialize before it's accessed below. - // __Zone_symbol_prefix global can be used to override the default zone - // symbol prefix with a custom one if needed. - - var symbolPrefix = global['__Zone_symbol_prefix'] || '__zone_symbol__'; - - function __symbol__(name) { - return symbolPrefix + name; - } - - var checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true; - - if (global['Zone']) { - // if global['Zone'] already exists (maybe zone.js was already loaded or - // some other lib also registered a global object named Zone), we may need - // to throw an error, but sometimes user may not want this error. - // For example, - // we have two web pages, page1 includes zone.js, page2 doesn't. - // and the 1st time user load page1 and page2, everything work fine, - // but when user load page2 again, error occurs because global['Zone'] already exists. - // so we add a flag to let user choose whether to throw this error or not. - // By default, if existing Zone is from zone.js, we will not throw the error. - if (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function') { - throw new Error('Zone already loaded.'); - } else { - return global['Zone']; - } - } - - var Zone = - /*#__PURE__*/ - function () { - function Zone(parent, zoneSpec) { - _classCallCheck(this, Zone); - - this._parent = parent; - this._name = zoneSpec ? zoneSpec.name || 'unnamed' : ''; - this._properties = zoneSpec && zoneSpec.properties || {}; - this._zoneDelegate = new ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec); - } - - _createClass(Zone, [{ - key: "get", - value: function get(key) { - var zone = this.getZoneWith(key); - if (zone) return zone._properties[key]; - } - }, { - key: "getZoneWith", - value: function getZoneWith(key) { - var current = this; - - while (current) { - if (current._properties.hasOwnProperty(key)) { - return current; - } - - current = current._parent; - } - - return null; - } - }, { - key: "fork", - value: function fork(zoneSpec) { - if (!zoneSpec) throw new Error('ZoneSpec required!'); - return this._zoneDelegate.fork(this, zoneSpec); - } - }, { - key: "wrap", - value: function wrap(callback, source) { - if (typeof callback !== 'function') { - throw new Error('Expecting function got: ' + callback); - } - - var _callback = this._zoneDelegate.intercept(this, callback, source); - - var zone = this; - return function () { - return zone.runGuarded(_callback, this, arguments, source); - }; - } - }, { - key: "run", - value: function run(callback, applyThis, applyArgs, source) { - _currentZoneFrame = { - parent: _currentZoneFrame, - zone: this - }; - - try { - return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source); - } finally { - _currentZoneFrame = _currentZoneFrame.parent; - } - } - }, { - key: "runGuarded", - value: function runGuarded(callback) { - var applyThis = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - var applyArgs = arguments.length > 2 ? arguments[2] : undefined; - var source = arguments.length > 3 ? arguments[3] : undefined; - _currentZoneFrame = { - parent: _currentZoneFrame, - zone: this - }; - - try { - try { - return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source); - } catch (error) { - if (this._zoneDelegate.handleError(this, error)) { - throw error; - } - } - } finally { - _currentZoneFrame = _currentZoneFrame.parent; - } - } - }, { - key: "runTask", - value: function runTask(task, applyThis, applyArgs) { - if (task.zone != this) { - throw new Error('A task can only be run in the zone of creation! (Creation: ' + (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')'); - } // https://github.com/angular/zone.js/issues/778, sometimes eventTask - // will run in notScheduled(canceled) state, we should not try to - // run such kind of task but just return - - - if (task.state === notScheduled && (task.type === eventTask || task.type === macroTask)) { - return; - } - - var reEntryGuard = task.state != running; - reEntryGuard && task._transitionTo(running, scheduled); - task.runCount++; - var previousTask = _currentTask; - _currentTask = task; - _currentZoneFrame = { - parent: _currentZoneFrame, - zone: this - }; - - try { - if (task.type == macroTask && task.data && !task.data.isPeriodic) { - task.cancelFn = undefined; - } - - try { - return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs); - } catch (error) { - if (this._zoneDelegate.handleError(this, error)) { - throw error; - } - } - } finally { - // if the task's state is notScheduled or unknown, then it has already been cancelled - // we should not reset the state to scheduled - if (task.state !== notScheduled && task.state !== unknown) { - if (task.type == eventTask || task.data && task.data.isPeriodic) { - reEntryGuard && task._transitionTo(scheduled, running); - } else { - task.runCount = 0; - - this._updateTaskCount(task, -1); - - reEntryGuard && task._transitionTo(notScheduled, running, notScheduled); - } - } - - _currentZoneFrame = _currentZoneFrame.parent; - _currentTask = previousTask; - } - } - }, { - key: "scheduleTask", - value: function scheduleTask(task) { - if (task.zone && task.zone !== this) { - // check if the task was rescheduled, the newZone - // should not be the children of the original zone - var newZone = this; - - while (newZone) { - if (newZone === task.zone) { - throw Error("can not reschedule task to ".concat(this.name, " which is descendants of the original zone ").concat(task.zone.name)); - } - - newZone = newZone.parent; - } - } - - task._transitionTo(scheduling, notScheduled); - - var zoneDelegates = []; - task._zoneDelegates = zoneDelegates; - task._zone = this; - - try { - task = this._zoneDelegate.scheduleTask(this, task); - } catch (err) { - // should set task's state to unknown when scheduleTask throw error - // because the err may from reschedule, so the fromState maybe notScheduled - task._transitionTo(unknown, scheduling, notScheduled); // TODO: @JiaLiPassion, should we check the result from handleError? - - - this._zoneDelegate.handleError(this, err); - - throw err; - } - - if (task._zoneDelegates === zoneDelegates) { - // we have to check because internally the delegate can reschedule the task. - this._updateTaskCount(task, 1); - } - - if (task.state == scheduling) { - task._transitionTo(scheduled, scheduling); - } - - return task; - } - }, { - key: "scheduleMicroTask", - value: function scheduleMicroTask(source, callback, data, customSchedule) { - return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined)); - } - }, { - key: "scheduleMacroTask", - value: function scheduleMacroTask(source, callback, data, customSchedule, customCancel) { - return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel)); - } - }, { - key: "scheduleEventTask", - value: function scheduleEventTask(source, callback, data, customSchedule, customCancel) { - return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel)); - } - }, { - key: "cancelTask", - value: function cancelTask(task) { - if (task.zone != this) throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' + (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')'); - - task._transitionTo(canceling, scheduled, running); - - try { - this._zoneDelegate.cancelTask(this, task); - } catch (err) { - // if error occurs when cancelTask, transit the state to unknown - task._transitionTo(unknown, canceling); - - this._zoneDelegate.handleError(this, err); - - throw err; - } - - this._updateTaskCount(task, -1); - - task._transitionTo(notScheduled, canceling); - - task.runCount = 0; - return task; - } - }, { - key: "_updateTaskCount", - value: function _updateTaskCount(task, count) { - var zoneDelegates = task._zoneDelegates; - - if (count == -1) { - task._zoneDelegates = null; - } - - for (var i = 0; i < zoneDelegates.length; i++) { - zoneDelegates[i]._updateTaskCount(task.type, count); - } - } - }, { - key: "parent", - get: function get() { - return this._parent; - } - }, { - key: "name", - get: function get() { - return this._name; - } - }], [{ - key: "assertZonePatched", - value: function assertZonePatched() { - if (global['Promise'] !== patches['ZoneAwarePromise']) { - throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' + 'has been overwritten.\n' + 'Most 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", - // tslint:disable-next-line:require-internal-with-underscore - value: function __load_patch(name, fn) { - if (patches.hasOwnProperty(name)) { - if (checkDuplicate) { - throw Error('Already loaded patch: ' + name); - } - } else if (!global['__Zone_disable_' + name]) { - var perfName = 'Zone:' + name; - mark(perfName); - patches[name] = fn(global, Zone, _api); - performanceMeasure(perfName, perfName); - } - } - }, { - key: "root", - get: function get() { - var zone = Zone.current; - - while (zone.parent) { - zone = zone.parent; - } - - return zone; - } - }, { - key: "current", - get: function get() { - return _currentZoneFrame.zone; - } - }, { - key: "currentTask", - get: function get() { - return _currentTask; - } - }]); - - return Zone; - }(); // tslint:disable-next-line:require-internal-with-underscore - - - Zone.__symbol__ = __symbol__; - var DELEGATE_ZS = { - name: '', - onHasTask: function onHasTask(delegate, _, target, hasTaskState) { - return delegate.hasTask(target, hasTaskState); - }, - onScheduleTask: function onScheduleTask(delegate, _, target, task) { - return delegate.scheduleTask(target, task); - }, - onInvokeTask: function onInvokeTask(delegate, _, target, task, applyThis, applyArgs) { - return delegate.invokeTask(target, task, applyThis, applyArgs); - }, - onCancelTask: function onCancelTask(delegate, _, target, task) { - return delegate.cancelTask(target, task); - } - }; - - var ZoneDelegate = - /*#__PURE__*/ - function () { - function ZoneDelegate(zone, parentDelegate, zoneSpec) { - _classCallCheck(this, ZoneDelegate); - - this._taskCounts = { - 'microTask': 0, - 'macroTask': 0, - 'eventTask': 0 - }; - this.zone = zone; - this._parentDelegate = parentDelegate; - this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS); - this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt); - this._forkCurrZone = zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate._forkCurrZone); - this._interceptZS = zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS); - this._interceptDlgt = zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt); - this._interceptCurrZone = zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate._interceptCurrZone); - this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS); - this._invokeDlgt = zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt); - this._invokeCurrZone = zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate._invokeCurrZone); - this._handleErrorZS = zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS); - this._handleErrorDlgt = zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt); - this._handleErrorCurrZone = zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate._handleErrorCurrZone); - this._scheduleTaskZS = zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS); - this._scheduleTaskDlgt = zoneSpec && (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt); - this._scheduleTaskCurrZone = zoneSpec && (zoneSpec.onScheduleTask ? this.zone : parentDelegate._scheduleTaskCurrZone); - this._invokeTaskZS = zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS); - this._invokeTaskDlgt = zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt); - this._invokeTaskCurrZone = zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate._invokeTaskCurrZone); - this._cancelTaskZS = zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS); - this._cancelTaskDlgt = zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt); - this._cancelTaskCurrZone = zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate._cancelTaskCurrZone); - this._hasTaskZS = null; - this._hasTaskDlgt = null; - this._hasTaskDlgtOwner = null; - this._hasTaskCurrZone = null; - var zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask; - var parentHasTask = parentDelegate && parentDelegate._hasTaskZS; - - if (zoneSpecHasTask || parentHasTask) { - // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such - // a case all task related interceptors must go through this ZD. We can't short circuit it. - this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS; - this._hasTaskDlgt = parentDelegate; - this._hasTaskDlgtOwner = this; - this._hasTaskCurrZone = zone; - - if (!zoneSpec.onScheduleTask) { - this._scheduleTaskZS = DELEGATE_ZS; - this._scheduleTaskDlgt = parentDelegate; - this._scheduleTaskCurrZone = this.zone; - } - - if (!zoneSpec.onInvokeTask) { - this._invokeTaskZS = DELEGATE_ZS; - this._invokeTaskDlgt = parentDelegate; - this._invokeTaskCurrZone = this.zone; - } - - if (!zoneSpec.onCancelTask) { - this._cancelTaskZS = DELEGATE_ZS; - this._cancelTaskDlgt = parentDelegate; - this._cancelTaskCurrZone = this.zone; - } - } - } - - _createClass(ZoneDelegate, [{ - key: "fork", - value: function fork(targetZone, zoneSpec) { - return this._forkZS ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) : new Zone(targetZone, zoneSpec); - } - }, { - key: "intercept", - value: function intercept(targetZone, callback, source) { - return this._interceptZS ? this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) : callback; - } - }, { - key: "invoke", - value: function invoke(targetZone, callback, applyThis, applyArgs, source) { - return this._invokeZS ? this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) : callback.apply(applyThis, applyArgs); - } - }, { - key: "handleError", - value: function handleError(targetZone, error) { - return this._handleErrorZS ? this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) : true; - } - }, { - key: "scheduleTask", - value: function scheduleTask(targetZone, task) { - var returnTask = task; - - if (this._scheduleTaskZS) { - if (this._hasTaskZS) { - returnTask._zoneDelegates.push(this._hasTaskDlgtOwner); - } // clang-format off - - - returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task); // clang-format on - - if (!returnTask) returnTask = task; - } else { - if (task.scheduleFn) { - task.scheduleFn(task); - } else if (task.type == microTask) { - scheduleMicroTask(task); - } else { - throw new Error('Task is missing scheduleFn.'); - } - } - - return returnTask; - } - }, { - key: "invokeTask", - value: function invokeTask(targetZone, task, applyThis, applyArgs) { - return this._invokeTaskZS ? this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) : task.callback.apply(applyThis, applyArgs); - } - }, { - key: "cancelTask", - value: function cancelTask(targetZone, task) { - var value; - - if (this._cancelTaskZS) { - value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task); - } else { - if (!task.cancelFn) { - throw Error('Task is not cancelable'); - } - - value = task.cancelFn(task); - } - - return value; - } - }, { - key: "hasTask", - value: function hasTask(targetZone, isEmpty) { - // hasTask should not throw error so other ZoneDelegate - // can still trigger hasTask callback - try { - this._hasTaskZS && this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty); - } catch (err) { - this.handleError(targetZone, err); - } - } // tslint:disable-next-line:require-internal-with-underscore - - }, { - key: "_updateTaskCount", - value: function _updateTaskCount(type, count) { - var counts = this._taskCounts; - var prev = counts[type]; - var next = counts[type] = prev + count; - - if (next < 0) { - throw new Error('More tasks executed then were scheduled.'); - } - - if (prev == 0 || next == 0) { - var isEmpty = { - microTask: counts['microTask'] > 0, - macroTask: counts['macroTask'] > 0, - eventTask: counts['eventTask'] > 0, - change: type - }; - this.hasTask(this.zone, isEmpty); - } - } - }]); - - return ZoneDelegate; - }(); - - var ZoneTask = - /*#__PURE__*/ - function () { - function ZoneTask(type, source, callback, options, scheduleFn, cancelFn) { - _classCallCheck(this, ZoneTask); - - // tslint:disable-next-line:require-internal-with-underscore - this._zone = null; - this.runCount = 0; // tslint:disable-next-line:require-internal-with-underscore - - this._zoneDelegates = null; // tslint:disable-next-line:require-internal-with-underscore - - this._state = 'notScheduled'; - this.type = type; - this.source = source; - this.data = options; - this.scheduleFn = scheduleFn; - this.cancelFn = cancelFn; - - if (!callback) { - throw new Error('callback is not defined'); - } - - this.callback = callback; - var self = this; // TODO: @JiaLiPassion options should have interface - - if (type === eventTask && options && options.useG) { - this.invoke = ZoneTask.invokeTask; - } else { - this.invoke = function () { - return ZoneTask.invokeTask.call(global, self, this, arguments); - }; - } - } - - _createClass(ZoneTask, [{ - key: "cancelScheduleRequest", - value: function cancelScheduleRequest() { - this._transitionTo(notScheduled, scheduling); - } // tslint:disable-next-line:require-internal-with-underscore - - }, { - key: "_transitionTo", - value: function _transitionTo(toState, fromState1, fromState2) { - if (this._state === fromState1 || this._state === fromState2) { - this._state = toState; - - if (toState == notScheduled) { - this._zoneDelegates = null; - } - } else { - throw new Error("".concat(this.type, " '").concat(this.source, "': can not transition to '").concat(toState, "', expecting state '").concat(fromState1, "'").concat(fromState2 ? ' or \'' + fromState2 + '\'' : '', ", was '").concat(this._state, "'.")); - } - } - }, { - key: "toString", - value: function toString() { - if (this.data && typeof this.data.handleId !== 'undefined') { - return this.data.handleId.toString(); - } else { - return Object.prototype.toString.call(this); - } - } // add toJSON method to prevent cyclic error when - // call JSON.stringify(zoneTask) - - }, { - key: "toJSON", - value: function toJSON() { - return { - type: this.type, - state: this.state, - source: this.source, - zone: this.zone.name, - runCount: this.runCount - }; - } - }, { - key: "zone", - get: function get() { - return this._zone; - } - }, { - key: "state", - get: function get() { - return this._state; - } - }], [{ - key: "invokeTask", - value: function invokeTask(task, target, args) { - if (!task) { - task = this; - } - - _numberOfNestedTaskFrames++; - - try { - task.runCount++; - return task.zone.runTask(task, target, args); - } finally { - if (_numberOfNestedTaskFrames == 1) { - drainMicroTaskQueue(); - } - - _numberOfNestedTaskFrames--; - } - } - }]); - - return ZoneTask; - }(); ////////////////////////////////////////////////////// - ////////////////////////////////////////////////////// - /// MICROTASK QUEUE - ////////////////////////////////////////////////////// - ////////////////////////////////////////////////////// - - - var symbolSetTimeout = __symbol__('setTimeout'); - - var symbolPromise = __symbol__('Promise'); - - var symbolThen = __symbol__('then'); - - var _microTaskQueue = []; - var _isDrainingMicrotaskQueue = false; - var nativeMicroTaskQueuePromise; - - function scheduleMicroTask(task) { - // if we are not running in any task, and there has not been anything scheduled - // we must bootstrap the initial task creation by manually scheduling the drain - if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) { - // We are not running in Task, so we need to kickstart the microtask queue. - if (!nativeMicroTaskQueuePromise) { - if (global[symbolPromise]) { - nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0); - } - } - - if (nativeMicroTaskQueuePromise) { - var nativeThen = nativeMicroTaskQueuePromise[symbolThen]; - - if (!nativeThen) { - // native Promise is not patchable, we need to use `then` directly - // issue 1078 - nativeThen = nativeMicroTaskQueuePromise['then']; - } - - nativeThen.call(nativeMicroTaskQueuePromise, drainMicroTaskQueue); - } else { - global[symbolSetTimeout](drainMicroTaskQueue, 0); - } - } - - task && _microTaskQueue.push(task); - } - - function drainMicroTaskQueue() { - if (!_isDrainingMicrotaskQueue) { - _isDrainingMicrotaskQueue = true; - - while (_microTaskQueue.length) { - var queue = _microTaskQueue; - _microTaskQueue = []; - - for (var i = 0; i < queue.length; i++) { - var task = queue[i]; - - try { - task.zone.runTask(task, null, null); - } catch (error) { - _api.onUnhandledError(error); - } - } - } - - _api.microtaskDrainDone(); - - _isDrainingMicrotaskQueue = false; - } - } ////////////////////////////////////////////////////// - ////////////////////////////////////////////////////// - /// BOOTSTRAP - ////////////////////////////////////////////////////// - ////////////////////////////////////////////////////// - - - var NO_ZONE = { - name: 'NO ZONE' - }; - var notScheduled = 'notScheduled', - scheduling = 'scheduling', - scheduled = 'scheduled', - running = 'running', - canceling = 'canceling', - unknown = 'unknown'; - var microTask = 'microTask', - macroTask = 'macroTask', - eventTask = 'eventTask'; - var patches = {}; - var _api = { - symbol: __symbol__, - currentZoneFrame: function currentZoneFrame() { - return _currentZoneFrame; - }, - onUnhandledError: noop, - microtaskDrainDone: noop, - scheduleMicroTask: scheduleMicroTask, - showUncaughtError: function showUncaughtError() { - return !Zone[__symbol__('ignoreConsoleErrorUncaughtError')]; - }, - patchEventTarget: function patchEventTarget() { - return []; - }, - patchOnProperties: noop, - patchMethod: function patchMethod() { - return noop; - }, - bindArguments: function bindArguments() { - return []; - }, - patchThen: function patchThen() { - return noop; - }, - patchMacroTask: function patchMacroTask() { - return noop; - }, - setNativePromise: function setNativePromise(NativePromise) { - // sometimes NativePromise.resolve static function - // is not ready yet, (such as core-js/es6.promise) - // so we need to check here. - if (NativePromise && typeof NativePromise.resolve === 'function') { - nativeMicroTaskQueuePromise = NativePromise.resolve(0); - } - }, - patchEventPrototype: function patchEventPrototype() { - return noop; - }, - isIEOrEdge: function isIEOrEdge() { - return false; - }, - getGlobalObjects: function getGlobalObjects() { - return undefined; - }, - ObjectDefineProperty: function ObjectDefineProperty() { - return noop; - }, - ObjectGetOwnPropertyDescriptor: function ObjectGetOwnPropertyDescriptor() { - return undefined; - }, - ObjectCreate: function ObjectCreate() { - return undefined; - }, - ArraySlice: function ArraySlice() { - return []; - }, - patchClass: function patchClass() { - return noop; - }, - wrapWithCurrentZone: function wrapWithCurrentZone() { - return noop; - }, - filterProperties: function filterProperties() { - return []; - }, - attachOriginToPatched: function attachOriginToPatched() { - return noop; - }, - _redefineProperty: function _redefineProperty() { - return noop; - }, - patchCallbacks: function patchCallbacks() { - return noop; - } - }; - var _currentZoneFrame = { - parent: null, - zone: new Zone(null, null) - }; - var _currentTask = null; - var _numberOfNestedTaskFrames = 0; - - function noop() {} - - performanceMeasure('Zone', 'Zone'); - return global['Zone'] = Zone; - }(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global); - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - - Zone.__load_patch('ZoneAwarePromise', function (global, Zone, api) { - var ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - var ObjectDefineProperty = Object.defineProperty; - - function readableObjectToString(obj) { - if (obj && obj.toString === Object.prototype.toString) { - var className = obj.constructor && obj.constructor.name; - return (className ? className : '') + ': ' + JSON.stringify(obj); - } - - return obj ? obj.toString() : Object.prototype.toString.call(obj); - } - - var __symbol__ = api.symbol; - var _uncaughtPromiseErrors = []; - - var symbolPromise = __symbol__('Promise'); - - var symbolThen = __symbol__('then'); - - var creationTrace = '__creationTrace__'; - - api.onUnhandledError = function (e) { - if (api.showUncaughtError()) { - var rejection = e && e.rejection; - - if (rejection) { - console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined); - } else { - console.error(e); - } - } - }; - - api.microtaskDrainDone = function () { - while (_uncaughtPromiseErrors.length) { - var _loop = function _loop() { - var uncaughtPromiseError = _uncaughtPromiseErrors.shift(); - - try { - uncaughtPromiseError.zone.runGuarded(function () { - throw uncaughtPromiseError; - }); - } catch (error) { - handleUnhandledRejection(error); - } - }; - - while (_uncaughtPromiseErrors.length) { - _loop(); - } - } - }; - - var UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler'); - - function handleUnhandledRejection(e) { - api.onUnhandledError(e); - - try { - var handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL]; - - if (handler && typeof handler === 'function') { - handler.call(this, e); - } - } catch (err) {} - } - - function isThenable(value) { - return value && value.then; - } - - function forwardResolution(value) { - return value; - } - - function forwardRejection(rejection) { - return ZoneAwarePromise.reject(rejection); - } - - var symbolState = __symbol__('state'); - - var symbolValue = __symbol__('value'); - - var symbolFinally = __symbol__('finally'); - - var symbolParentPromiseValue = __symbol__('parentPromiseValue'); - - var symbolParentPromiseState = __symbol__('parentPromiseState'); - - var source = 'Promise.then'; - var UNRESOLVED = null; - var RESOLVED = true; - var REJECTED = false; - var REJECTED_NO_CATCH = 0; - - function makeResolver(promise, state) { - return function (v) { - try { - resolvePromise(promise, state, v); - } catch (err) { - resolvePromise(promise, false, err); - } // Do not return value or you will break the Promise spec. - - }; - } - - var once = function once() { - var wasCalled = false; - return function wrapper(wrappedFunction) { - return function () { - if (wasCalled) { - return; - } - - wasCalled = true; - wrappedFunction.apply(null, arguments); - }; - }; - }; - - var TYPE_ERROR = 'Promise resolved with itself'; - - var CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace'); // Promise Resolution - - - function resolvePromise(promise, state, value) { - var onceWrapper = once(); - - if (promise === value) { - throw new TypeError(TYPE_ERROR); - } - - if (promise[symbolState] === UNRESOLVED) { - // should only get value.then once based on promise spec. - var then = null; - - try { - if (typeof value === 'object' || typeof value === 'function') { - then = value && value.then; - } - } catch (err) { - onceWrapper(function () { - resolvePromise(promise, false, err); - })(); - return promise; - } // if (value instanceof ZoneAwarePromise) { - - - if (state !== REJECTED && value instanceof ZoneAwarePromise && value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) && value[symbolState] !== UNRESOLVED) { - clearRejectedNoCatch(value); - resolvePromise(promise, value[symbolState], value[symbolValue]); - } else if (state !== REJECTED && typeof then === 'function') { - try { - then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false))); - } catch (err) { - onceWrapper(function () { - resolvePromise(promise, false, err); - })(); - } - } else { - promise[symbolState] = state; - var queue = promise[symbolValue]; - promise[symbolValue] = value; - - if (promise[symbolFinally] === symbolFinally) { - // the promise is generated by Promise.prototype.finally - if (state === RESOLVED) { - // the state is resolved, should ignore the value - // and use parent promise value - promise[symbolState] = promise[symbolParentPromiseState]; - promise[symbolValue] = promise[symbolParentPromiseValue]; - } - } // record task information in value when error occurs, so we can - // do some additional work such as render longStackTrace - - - if (state === REJECTED && value instanceof Error) { - // check if longStackTraceZone is here - var trace = Zone.currentTask && Zone.currentTask.data && Zone.currentTask.data[creationTrace]; - - if (trace) { - // only keep the long stack trace into error when in longStackTraceZone - ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { - configurable: true, - enumerable: false, - writable: true, - value: trace - }); - } - } - - for (var i = 0; i < queue.length;) { - scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]); - } - - if (queue.length == 0 && state == REJECTED) { - promise[symbolState] = REJECTED_NO_CATCH; - - try { - // try to print more readable error log - throw new Error('Uncaught (in promise): ' + readableObjectToString(value) + (value && value.stack ? '\n' + value.stack : '')); - } catch (err) { - var error = err; - error.rejection = value; - error.promise = promise; - error.zone = Zone.current; - error.task = Zone.currentTask; - - _uncaughtPromiseErrors.push(error); - - api.scheduleMicroTask(); // to make sure that it is running - } - } - } - } // Resolving an already resolved promise is a noop. - - - return promise; - } - - var REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler'); - - function clearRejectedNoCatch(promise) { - if (promise[symbolState] === REJECTED_NO_CATCH) { - // if the promise is rejected no catch status - // and queue.length > 0, means there is a error handler - // here to handle the rejected promise, we should trigger - // windows.rejectionhandled eventHandler or nodejs rejectionHandled - // eventHandler - try { - var handler = Zone[REJECTION_HANDLED_HANDLER]; - - if (handler && typeof handler === 'function') { - handler.call(this, { - rejection: promise[symbolValue], - promise: promise - }); - } - } catch (err) {} - - promise[symbolState] = REJECTED; - - for (var i = 0; i < _uncaughtPromiseErrors.length; i++) { - if (promise === _uncaughtPromiseErrors[i].promise) { - _uncaughtPromiseErrors.splice(i, 1); - } - } - } - } - - function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) { - clearRejectedNoCatch(promise); - var promiseState = promise[symbolState]; - var delegate = promiseState ? typeof onFulfilled === 'function' ? onFulfilled : forwardResolution : typeof onRejected === 'function' ? onRejected : forwardRejection; - zone.scheduleMicroTask(source, function () { - try { - var parentPromiseValue = promise[symbolValue]; - var isFinallyPromise = !!chainPromise && symbolFinally === chainPromise[symbolFinally]; - - if (isFinallyPromise) { - // if the promise is generated from finally call, keep parent promise's state and value - chainPromise[symbolParentPromiseValue] = parentPromiseValue; - chainPromise[symbolParentPromiseState] = promiseState; - } // should not pass value to finally callback - - - var value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ? [] : [parentPromiseValue]); - resolvePromise(chainPromise, true, value); - } catch (error) { - // if error occurs, should always return this error - resolvePromise(chainPromise, false, error); - } - }, chainPromise); - } - - var ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }'; - - var ZoneAwarePromise = - /*#__PURE__*/ - function () { - function ZoneAwarePromise(executor) { - _classCallCheck(this, ZoneAwarePromise); - - var promise = this; - - if (!(promise instanceof ZoneAwarePromise)) { - throw new Error('Must be an instanceof Promise.'); - } - - promise[symbolState] = UNRESOLVED; - promise[symbolValue] = []; // queue; - - try { - executor && executor(makeResolver(promise, RESOLVED), makeResolver(promise, REJECTED)); - } catch (error) { - resolvePromise(promise, false, error); - } - } - - _createClass(ZoneAwarePromise, [{ - key: "then", - value: function then(onFulfilled, onRejected) { - var chainPromise = new this.constructor(null); - var zone = Zone.current; - - if (this[symbolState] == UNRESOLVED) { - this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected); - } else { - scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected); - } - - return chainPromise; - } - }, { - key: "catch", - value: function _catch(onRejected) { - return this.then(null, onRejected); - } - }, { - key: "finally", - value: function _finally(onFinally) { - var chainPromise = new this.constructor(null); - chainPromise[symbolFinally] = symbolFinally; - var zone = Zone.current; - - if (this[symbolState] == UNRESOLVED) { - this[symbolValue].push(zone, chainPromise, onFinally, onFinally); - } else { - scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally); - } - - return chainPromise; - } - }, { - key: Symbol.toStringTag, - get: function get() { - return 'Promise'; - } - }], [{ - key: "toString", - value: function toString() { - return ZONE_AWARE_PROMISE_TO_STRING; - } - }, { - key: "resolve", - value: function resolve(value) { - return resolvePromise(new this(null), RESOLVED, value); - } - }, { - key: "reject", - value: function reject(error) { - return resolvePromise(new this(null), REJECTED, error); - } - }, { - key: "race", - value: function race(values) { - var resolve; - var reject; - var promise = new this(function (res, rej) { - resolve = res; - reject = rej; - }); - - function onResolve(value) { - resolve(value); - } - - function onReject(error) { - reject(error); - } - - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = values[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var value = _step.value; - - if (!isThenable(value)) { - value = this.resolve(value); - } - - value.then(onResolve, onReject); - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return != null) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - return promise; - } - }, { - key: "all", - value: function all(values) { - return ZoneAwarePromise.allWithCallback(values); - } - }, { - key: "allSettled", - value: function allSettled(values) { - var P = this && this.prototype instanceof ZoneAwarePromise ? this : ZoneAwarePromise; - return P.allWithCallback(values, { - thenCallback: function thenCallback(value) { - return { - status: 'fulfilled', - value: value - }; - }, - errorCallback: function errorCallback(err) { - return { - status: 'rejected', - reason: err - }; - } - }); - } - }, { - key: "allWithCallback", - value: function allWithCallback(values, callback) { - var _this = this; - - var resolve; - var reject; - var promise = new this(function (res, rej) { - resolve = res; - reject = rej; - }); // Start at 2 to prevent prematurely resolving if .then is called immediately. - - var unresolvedCount = 2; - var valueIndex = 0; - var resolvedValues = []; - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - var _loop2 = function _loop2() { - var value = _step2.value; - - if (!isThenable(value)) { - value = _this.resolve(value); - } - - var curValueIndex = valueIndex; - - try { - value.then(function (value) { - resolvedValues[curValueIndex] = callback ? callback.thenCallback(value) : value; - unresolvedCount--; - - if (unresolvedCount === 0) { - resolve(resolvedValues); - } - }, function (err) { - if (!callback) { - reject(err); - } else { - resolvedValues[curValueIndex] = callback.errorCallback(err); - unresolvedCount--; - - if (unresolvedCount === 0) { - resolve(resolvedValues); - } - } - }); - } catch (thenErr) { - reject(thenErr); - } - - unresolvedCount++; - valueIndex++; - }; - - for (var _iterator2 = values[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - _loop2(); - } // Make the unresolvedCount zero-based again. - - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2.return != null) { - _iterator2.return(); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - - unresolvedCount -= 2; - - if (unresolvedCount === 0) { - resolve(resolvedValues); - } - - return promise; - } - }]); - - return ZoneAwarePromise; - }(); // Protect against aggressive optimizers dropping seemingly unused properties. - // E.g. Closure Compiler in advanced mode. - - - ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve; - ZoneAwarePromise['reject'] = ZoneAwarePromise.reject; - ZoneAwarePromise['race'] = ZoneAwarePromise.race; - ZoneAwarePromise['all'] = ZoneAwarePromise.all; - var NativePromise = global[symbolPromise] = global['Promise']; - - var ZONE_AWARE_PROMISE = Zone.__symbol__('ZoneAwarePromise'); - - var desc = ObjectGetOwnPropertyDescriptor(global, 'Promise'); - - if (!desc || desc.configurable) { - desc && delete desc.writable; - desc && delete desc.value; - - if (!desc) { - desc = { - configurable: true, - enumerable: true - }; - } - - desc.get = function () { - // if we already set ZoneAwarePromise, use patched one - // otherwise return native one. - return global[ZONE_AWARE_PROMISE] ? global[ZONE_AWARE_PROMISE] : global[symbolPromise]; - }; - - desc.set = function (NewNativePromise) { - if (NewNativePromise === ZoneAwarePromise) { - // if the NewNativePromise is ZoneAwarePromise - // save to global - global[ZONE_AWARE_PROMISE] = NewNativePromise; - } else { - // if the NewNativePromise is not ZoneAwarePromise - // for example: after load zone.js, some library just - // set es6-promise to global, if we set it to global - // directly, assertZonePatched will fail and angular - // will not loaded, so we just set the NewNativePromise - // to global[symbolPromise], so the result is just like - // we load ES6 Promise before zone.js - global[symbolPromise] = NewNativePromise; - - if (!NewNativePromise.prototype[symbolThen]) { - patchThen(NewNativePromise); - } - - api.setNativePromise(NewNativePromise); - } - }; - - ObjectDefineProperty(global, 'Promise', desc); - } - - global['Promise'] = ZoneAwarePromise; - - var symbolThenPatched = __symbol__('thenPatched'); - - function patchThen(Ctor) { - var proto = Ctor.prototype; - var prop = ObjectGetOwnPropertyDescriptor(proto, 'then'); - - if (prop && (prop.writable === false || !prop.configurable)) { - // check Ctor.prototype.then propertyDescriptor is writable or not - // in meteor env, writable is false, we should ignore such case - return; - } - - var originalThen = proto.then; // Keep a reference to the original method. - - proto[symbolThen] = originalThen; - - Ctor.prototype.then = function (onResolve, onReject) { - var _this2 = this; - - var wrapped = new ZoneAwarePromise(function (resolve, reject) { - originalThen.call(_this2, resolve, reject); - }); - return wrapped.then(onResolve, onReject); - }; - - Ctor[symbolThenPatched] = true; - } - - api.patchThen = patchThen; - - function zoneify(fn) { - return function () { - var resultPromise = fn.apply(this, arguments); - - if (resultPromise instanceof ZoneAwarePromise) { - return resultPromise; - } - - var ctor = resultPromise.constructor; - - if (!ctor[symbolThenPatched]) { - patchThen(ctor); - } - - return resultPromise; - }; - } - - if (NativePromise) { - patchThen(NativePromise); - var fetch = global['fetch']; - - if (typeof fetch == 'function') { - global[api.symbol('fetch')] = fetch; - global['fetch'] = zoneify(fetch); - } - } // This is not part of public API, but it is useful for tests, so we expose it. - - - Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors; - return ZoneAwarePromise; - }); - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - /** - * Suppress closure compiler errors about unknown 'Zone' variable - * @fileoverview - * @suppress {undefinedVars,globalThis,missingRequire} - */ - /// - // issue #989, to reduce bundle size, use short name - - /** Object.getOwnPropertyDescriptor */ - - - var ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - /** Object.defineProperty */ - - var ObjectDefineProperty = Object.defineProperty; - /** Object.getPrototypeOf */ - - var ObjectGetPrototypeOf = Object.getPrototypeOf; - /** Object.create */ - - var ObjectCreate = Object.create; - /** Array.prototype.slice */ - - var ArraySlice = Array.prototype.slice; - /** addEventListener string const */ - - var ADD_EVENT_LISTENER_STR = 'addEventListener'; - /** removeEventListener string const */ - - var REMOVE_EVENT_LISTENER_STR = 'removeEventListener'; - /** zoneSymbol addEventListener */ - - var ZONE_SYMBOL_ADD_EVENT_LISTENER = Zone.__symbol__(ADD_EVENT_LISTENER_STR); - /** zoneSymbol removeEventListener */ - - - var ZONE_SYMBOL_REMOVE_EVENT_LISTENER = Zone.__symbol__(REMOVE_EVENT_LISTENER_STR); - /** true string const */ - - - var TRUE_STR = 'true'; - /** false string const */ - - var FALSE_STR = 'false'; - /** Zone symbol prefix string const. */ - - var ZONE_SYMBOL_PREFIX = Zone.__symbol__(''); - - function wrapWithCurrentZone(callback, source) { - return Zone.current.wrap(callback, source); - } - - function scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) { - return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel); - } - - var zoneSymbol = Zone.__symbol__; - var isWindowExists = typeof window !== 'undefined'; - var internalWindow = isWindowExists ? window : undefined; - - var _global = isWindowExists && internalWindow || typeof self === 'object' && self || global; - - var REMOVE_ATTRIBUTE = 'removeAttribute'; - var NULL_ON_PROP_VALUE = [null]; - - function bindArguments(args, source) { - for (var i = args.length - 1; i >= 0; i--) { - if (typeof args[i] === 'function') { - args[i] = wrapWithCurrentZone(args[i], source + '_' + i); - } - } - - return args; - } - - function patchPrototype(prototype, fnNames) { - var source = prototype.constructor['name']; - - var _loop3 = function _loop3(i) { - var name = fnNames[i]; - var delegate = prototype[name]; - - if (delegate) { - var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name); - - if (!isPropertyWritable(prototypeDesc)) { - return "continue"; - } - - prototype[name] = function (delegate) { - var patched = function patched() { - return delegate.apply(this, bindArguments(arguments, source + '.' + name)); - }; - - attachOriginToPatched(patched, delegate); - return patched; - }(delegate); - } - }; - - for (var i = 0; i < fnNames.length; i++) { - var _ret = _loop3(i); - - if (_ret === "continue") continue; - } - } - - function isPropertyWritable(propertyDesc) { - if (!propertyDesc) { - return true; - } - - if (propertyDesc.writable === false) { - return false; - } - - return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined'); - } - - var isWebWorker = typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope; // Make sure to access `process` through `_global` so that WebPack does not accidentally browserify - // this code. - - var isNode = !('nw' in _global) && typeof _global.process !== 'undefined' && {}.toString.call(_global.process) === '[object process]'; - var isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']); // we are in electron of nw, so we are both browser and nodejs - // Make sure to access `process` through `_global` so that WebPack does not accidentally browserify - // this code. - - var isMix = typeof _global.process !== 'undefined' && {}.toString.call(_global.process) === '[object process]' && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']); - var zoneSymbolEventNames = {}; - - var wrapFn = function wrapFn(event) { - // https://github.com/angular/zone.js/issues/911, in IE, sometimes - // event will be undefined, so we need to use window.event - event = event || _global.event; - - if (!event) { - return; - } - - var eventNameSymbol = zoneSymbolEventNames[event.type]; - - if (!eventNameSymbol) { - eventNameSymbol = zoneSymbolEventNames[event.type] = zoneSymbol('ON_PROPERTY' + event.type); - } - - var target = this || event.target || _global; - var listener = target[eventNameSymbol]; - var result; - - if (isBrowser && target === internalWindow && event.type === 'error') { - // window.onerror have different signiture - // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror - // and onerror callback will prevent default when callback return true - var errorEvent = event; - result = listener && listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error); - - if (result === true) { - event.preventDefault(); - } - } else { - result = listener && listener.apply(this, arguments); - - if (result != undefined && !result) { - event.preventDefault(); - } - } - - return result; - }; - - function patchProperty(obj, prop, prototype) { - var desc = ObjectGetOwnPropertyDescriptor(obj, prop); - - if (!desc && prototype) { - // when patch window object, use prototype to check prop exist or not - var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop); - - if (prototypeDesc) { - desc = { - enumerable: true, - configurable: true - }; - } - } // if the descriptor not exists or is not configurable - // just return - - - if (!desc || !desc.configurable) { - return; - } - - var onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched'); - - if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) { - return; - } // A property descriptor cannot have getter/setter and be writable - // deleting the writable and value properties avoids this error: - // - // TypeError: property descriptors must not specify a value or be writable when a - // getter or setter has been specified - - - delete desc.writable; - delete desc.value; - var originalDescGet = desc.get; - var originalDescSet = desc.set; // substr(2) cuz 'onclick' -> 'click', etc - - var eventName = prop.substr(2); - var eventNameSymbol = zoneSymbolEventNames[eventName]; - - if (!eventNameSymbol) { - eventNameSymbol = zoneSymbolEventNames[eventName] = zoneSymbol('ON_PROPERTY' + eventName); - } - - desc.set = function (newValue) { - // in some of windows's onproperty callback, this is undefined - // so we need to check it - var target = this; - - if (!target && obj === _global) { - target = _global; - } - - if (!target) { - return; - } - - var previousValue = target[eventNameSymbol]; - - if (previousValue) { - target.removeEventListener(eventName, wrapFn); - } // issue #978, when onload handler was added before loading zone.js - // we should remove it with originalDescSet - - - if (originalDescSet) { - originalDescSet.apply(target, NULL_ON_PROP_VALUE); - } - - if (typeof newValue === 'function') { - target[eventNameSymbol] = newValue; - target.addEventListener(eventName, wrapFn, false); - } else { - target[eventNameSymbol] = null; - } - }; // The getter would return undefined for unassigned properties but the default value of an - // unassigned property is null - - - desc.get = function () { - // in some of windows's onproperty callback, this is undefined - // so we need to check it - var target = this; - - if (!target && obj === _global) { - target = _global; - } - - if (!target) { - return null; - } - - var listener = target[eventNameSymbol]; - - if (listener) { - return listener; - } else if (originalDescGet) { - // result will be null when use inline event attribute, - // such as - // because the onclick function is internal raw uncompiled handler - // the onclick will be evaluated when first time event was triggered or - // the property is accessed, https://github.com/angular/zone.js/issues/525 - // so we should use original native get to retrieve the handler - var value = originalDescGet && originalDescGet.call(this); - - if (value) { - desc.set.call(this, value); - - if (typeof target[REMOVE_ATTRIBUTE] === 'function') { - target.removeAttribute(prop); - } - - return value; - } - } - - return null; - }; - - ObjectDefineProperty(obj, prop, desc); - obj[onPropPatchedSymbol] = true; - } - - function patchOnProperties(obj, properties, prototype) { - if (properties) { - for (var i = 0; i < properties.length; i++) { - patchProperty(obj, 'on' + properties[i], prototype); - } - } else { - var onProperties = []; - - for (var prop in obj) { - if (prop.substr(0, 2) == 'on') { - onProperties.push(prop); - } - } - - for (var j = 0; j < onProperties.length; j++) { - patchProperty(obj, onProperties[j], prototype); - } - } - } - - var originalInstanceKey = zoneSymbol('originalInstance'); // wrap some native API on `window` - - function patchClass(className) { - var OriginalClass = _global[className]; - if (!OriginalClass) return; // keep original class in global - - _global[zoneSymbol(className)] = OriginalClass; - - _global[className] = function () { - var a = bindArguments(arguments, className); - - switch (a.length) { - case 0: - this[originalInstanceKey] = new OriginalClass(); - break; - - case 1: - this[originalInstanceKey] = new OriginalClass(a[0]); - break; - - case 2: - this[originalInstanceKey] = new OriginalClass(a[0], a[1]); - break; - - case 3: - this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]); - break; - - case 4: - this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]); - break; - - default: - throw new Error('Arg list too long.'); - } - }; // attach original delegate to patched function - - - attachOriginToPatched(_global[className], OriginalClass); - var instance = new OriginalClass(function () {}); - var prop; - - for (prop in instance) { - // https://bugs.webkit.org/show_bug.cgi?id=44721 - if (className === 'XMLHttpRequest' && prop === 'responseBlob') continue; - - (function (prop) { - if (typeof instance[prop] === 'function') { - _global[className].prototype[prop] = function () { - return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments); - }; - } else { - ObjectDefineProperty(_global[className].prototype, prop, { - set: function set(fn) { - if (typeof fn === 'function') { - this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop); // keep callback in wrapped function so we can - // use it in Function.prototype.toString to return - // the native one. - - attachOriginToPatched(this[originalInstanceKey][prop], fn); - } else { - this[originalInstanceKey][prop] = fn; - } - }, - get: function get() { - return this[originalInstanceKey][prop]; - } - }); - } - })(prop); - } - - for (prop in OriginalClass) { - if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) { - _global[className][prop] = OriginalClass[prop]; - } - } - } - - function copySymbolProperties(src, dest) { - if (typeof Object.getOwnPropertySymbols !== 'function') { - return; - } - - var symbols = Object.getOwnPropertySymbols(src); - symbols.forEach(function (symbol) { - var desc = Object.getOwnPropertyDescriptor(src, symbol); - Object.defineProperty(dest, symbol, { - get: function get() { - return src[symbol]; - }, - set: function set(value) { - if (desc && (!desc.writable || typeof desc.set !== 'function')) { - // if src[symbol] is not writable or not have a setter, just return - return; - } - - src[symbol] = value; - }, - enumerable: desc ? desc.enumerable : true, - configurable: desc ? desc.configurable : true - }); - }); - } - - var shouldCopySymbolProperties = false; - - function patchMethod(target, name, patchFn) { - var proto = target; - - while (proto && !proto.hasOwnProperty(name)) { - proto = ObjectGetPrototypeOf(proto); - } - - if (!proto && target[name]) { - // somehow we did not find it, but we can see it. This happens on IE for Window properties. - proto = target; - } - - var delegateName = zoneSymbol(name); - var delegate = null; - - if (proto && !(delegate = proto[delegateName])) { - delegate = proto[delegateName] = proto[name]; // check whether proto[name] is writable - // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob - - var desc = proto && ObjectGetOwnPropertyDescriptor(proto, name); - - if (isPropertyWritable(desc)) { - var patchDelegate = patchFn(delegate, delegateName, name); - - proto[name] = function () { - return patchDelegate(this, arguments); - }; - - attachOriginToPatched(proto[name], delegate); - - if (shouldCopySymbolProperties) { - copySymbolProperties(delegate, proto[name]); - } - } - } - - return delegate; - } // TODO: @JiaLiPassion, support cancel task later if necessary - - - function patchMacroTask(obj, funcName, metaCreator) { - var setNative = null; - - function scheduleTask(task) { - var data = task.data; - - data.args[data.cbIdx] = function () { - task.invoke.apply(this, arguments); - }; - - setNative.apply(data.target, data.args); - return task; - } - - setNative = patchMethod(obj, funcName, function (delegate) { - return function (self, args) { - var meta = metaCreator(self, args); - - if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') { - return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask); - } else { - // cause an error by calling it directly. - return delegate.apply(self, args); - } - }; - }); - } - - function attachOriginToPatched(patched, original) { - patched[zoneSymbol('OriginalDelegate')] = original; - } - - var isDetectedIEOrEdge = false; - var ieOrEdge = false; - - function isIE() { - try { - var ua = internalWindow.navigator.userAgent; - - if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) { - return true; - } - } catch (error) {} - - return false; - } - - function isIEOrEdge() { - if (isDetectedIEOrEdge) { - return ieOrEdge; - } - - isDetectedIEOrEdge = true; - - try { - var ua = internalWindow.navigator.userAgent; - - if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) { - ieOrEdge = true; - } - } catch (error) {} - - return ieOrEdge; - } - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - // override Function.prototype.toString to make zone.js patched function - // look like native function - - - Zone.__load_patch('toString', function (global) { - // patch Func.prototype.toString to let them look like native - var originalFunctionToString = Function.prototype.toString; - var ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate'); - var PROMISE_SYMBOL = zoneSymbol('Promise'); - var ERROR_SYMBOL = zoneSymbol('Error'); - - var newFunctionToString = function toString() { - if (typeof this === 'function') { - var originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL]; - - if (originalDelegate) { - if (typeof originalDelegate === 'function') { - return originalFunctionToString.call(originalDelegate); - } else { - return Object.prototype.toString.call(originalDelegate); - } - } - - if (this === Promise) { - var nativePromise = global[PROMISE_SYMBOL]; - - if (nativePromise) { - return originalFunctionToString.call(nativePromise); - } - } - - if (this === Error) { - var nativeError = global[ERROR_SYMBOL]; - - if (nativeError) { - return originalFunctionToString.call(nativeError); - } - } - } - - return originalFunctionToString.call(this); - }; - - newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString; - Function.prototype.toString = newFunctionToString; // patch Object.prototype.toString to let them look like native - - var originalObjectToString = Object.prototype.toString; - var PROMISE_OBJECT_TO_STRING = '[object Promise]'; - - Object.prototype.toString = function () { - if (this instanceof Promise) { - return PROMISE_OBJECT_TO_STRING; - } - - return originalObjectToString.call(this); - }; - }); - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - - var passiveSupported = false; - - if (typeof window !== 'undefined') { - try { - var options = Object.defineProperty({}, 'passive', { - get: function get() { - passiveSupported = true; - } - }); - window.addEventListener('test', options, options); - window.removeEventListener('test', options, options); - } catch (err) { - passiveSupported = false; - } - } // an identifier to tell ZoneTask do not create a new invoke closure - - - var OPTIMIZED_ZONE_EVENT_TASK_DATA = { - useG: true - }; - var zoneSymbolEventNames$1 = {}; - var globalSources = {}; - var EVENT_NAME_SYMBOL_REGX = new RegExp('^' + ZONE_SYMBOL_PREFIX + '(\\w+)(true|false)$'); - var IMMEDIATE_PROPAGATION_SYMBOL = zoneSymbol('propagationStopped'); - - function patchEventTarget(_global, apis, patchOptions) { - var ADD_EVENT_LISTENER = patchOptions && patchOptions.add || ADD_EVENT_LISTENER_STR; - var REMOVE_EVENT_LISTENER = patchOptions && patchOptions.rm || REMOVE_EVENT_LISTENER_STR; - var LISTENERS_EVENT_LISTENER = patchOptions && patchOptions.listeners || 'eventListeners'; - var REMOVE_ALL_LISTENERS_EVENT_LISTENER = patchOptions && patchOptions.rmAll || 'removeAllListeners'; - var zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER); - var ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':'; - var PREPEND_EVENT_LISTENER = 'prependListener'; - var PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':'; - - var invokeTask = function invokeTask(task, target, event) { - // for better performance, check isRemoved which is set - // by removeEventListener - if (task.isRemoved) { - return; - } - - var delegate = task.callback; - - if (typeof delegate === 'object' && delegate.handleEvent) { - // create the bind version of handleEvent when invoke - task.callback = function (event) { - return delegate.handleEvent(event); - }; - - task.originalDelegate = delegate; - } // invoke static task.invoke - - - task.invoke(task, target, [event]); - var options = task.options; - - if (options && typeof options === 'object' && options.once) { - // if options.once is true, after invoke once remove listener here - // only browser need to do this, nodejs eventEmitter will cal removeListener - // inside EventEmitter.once - var _delegate = task.originalDelegate ? task.originalDelegate : task.callback; - - target[REMOVE_EVENT_LISTENER].call(target, event.type, _delegate, options); - } - }; // global shared zoneAwareCallback to handle all event callback with capture = false - - - var globalZoneAwareCallback = function globalZoneAwareCallback(event) { - // https://github.com/angular/zone.js/issues/911, in IE, sometimes - // event will be undefined, so we need to use window.event - event = event || _global.event; - - if (!event) { - return; - } // event.target is needed for Samsung TV and SourceBuffer - // || global is needed https://github.com/angular/zone.js/issues/190 - - - var target = this || event.target || _global; - var tasks = target[zoneSymbolEventNames$1[event.type][FALSE_STR]]; - - if (tasks) { - // invoke all tasks which attached to current target with given event.type and capture = false - // for performance concern, if task.length === 1, just invoke - if (tasks.length === 1) { - invokeTask(tasks[0], target, event); - } else { - // https://github.com/angular/zone.js/issues/836 - // copy the tasks array before invoke, to avoid - // the callback will remove itself or other listener - var copyTasks = tasks.slice(); - - for (var i = 0; i < copyTasks.length; i++) { - if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) { - break; - } - - invokeTask(copyTasks[i], target, event); - } - } - } - }; // global shared zoneAwareCallback to handle all event callback with capture = true - - - var globalZoneAwareCaptureCallback = function globalZoneAwareCaptureCallback(event) { - // https://github.com/angular/zone.js/issues/911, in IE, sometimes - // event will be undefined, so we need to use window.event - event = event || _global.event; - - if (!event) { - return; - } // event.target is needed for Samsung TV and SourceBuffer - // || global is needed https://github.com/angular/zone.js/issues/190 - - - var target = this || event.target || _global; - var tasks = target[zoneSymbolEventNames$1[event.type][TRUE_STR]]; - - if (tasks) { - // invoke all tasks which attached to current target with given event.type and capture = false - // for performance concern, if task.length === 1, just invoke - if (tasks.length === 1) { - invokeTask(tasks[0], target, event); - } else { - // https://github.com/angular/zone.js/issues/836 - // copy the tasks array before invoke, to avoid - // the callback will remove itself or other listener - var copyTasks = tasks.slice(); - - for (var i = 0; i < copyTasks.length; i++) { - if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) { - break; - } - - invokeTask(copyTasks[i], target, event); - } - } - } - }; - - function patchEventTargetMethods(obj, patchOptions) { - if (!obj) { - return false; - } - - var useGlobalCallback = true; - - if (patchOptions && patchOptions.useG !== undefined) { - useGlobalCallback = patchOptions.useG; - } - - var validateHandler = patchOptions && patchOptions.vh; - var checkDuplicate = true; - - if (patchOptions && patchOptions.chkDup !== undefined) { - checkDuplicate = patchOptions.chkDup; - } - - var returnTarget = false; - - if (patchOptions && patchOptions.rt !== undefined) { - returnTarget = patchOptions.rt; - } - - var proto = obj; - - while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) { - proto = ObjectGetPrototypeOf(proto); - } - - if (!proto && obj[ADD_EVENT_LISTENER]) { - // somehow we did not find it, but we can see it. This happens on IE for Window properties. - proto = obj; - } - - if (!proto) { - return false; - } - - if (proto[zoneSymbolAddEventListener]) { - return false; - } - - var eventNameToString = patchOptions && patchOptions.eventNameToString; // a shared global taskData to pass data for scheduleEventTask - // so we do not need to create a new object just for pass some data - - var taskData = {}; - var nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER]; - var nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] = proto[REMOVE_EVENT_LISTENER]; - var nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] = proto[LISTENERS_EVENT_LISTENER]; - var nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] = proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER]; - var nativePrependEventListener; - - if (patchOptions && patchOptions.prepend) { - nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] = proto[patchOptions.prepend]; - } - - function checkIsPassive(task) { - if (!passiveSupported && typeof taskData.options !== 'boolean' && typeof taskData.options !== 'undefined' && taskData.options !== null) { - // options is a non-null non-undefined object - // passive is not supported - // don't pass options as object - // just pass capture as a boolean - task.options = !!taskData.options.capture; - taskData.options = task.options; - } - } - - var customScheduleGlobal = function customScheduleGlobal(task) { - // if there is already a task for the eventName + capture, - // just return, because we use the shared globalZoneAwareCallback here. - if (taskData.isExisting) { - return; - } - - checkIsPassive(task); - return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options); - }; - - var customCancelGlobal = function customCancelGlobal(task) { - // if task is not marked as isRemoved, this call is directly - // from Zone.prototype.cancelTask, we should remove the task - // from tasksList of target first - if (!task.isRemoved) { - var symbolEventNames = zoneSymbolEventNames$1[task.eventName]; - var symbolEventName; - - if (symbolEventNames) { - symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR]; - } - - var existingTasks = symbolEventName && task.target[symbolEventName]; - - if (existingTasks) { - for (var i = 0; i < existingTasks.length; i++) { - var existingTask = existingTasks[i]; - - if (existingTask === task) { - existingTasks.splice(i, 1); // set isRemoved to data for faster invokeTask check - - task.isRemoved = true; - - if (existingTasks.length === 0) { - // all tasks for the eventName + capture have gone, - // remove globalZoneAwareCallback and remove the task cache from target - task.allRemoved = true; - task.target[symbolEventName] = null; - } - - break; - } - } - } - } // if all tasks for the eventName + capture have gone, - // we will really remove the global event callback, - // if not, return - - - if (!task.allRemoved) { - return; - } - - return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options); - }; - - var customScheduleNonGlobal = function customScheduleNonGlobal(task) { - checkIsPassive(task); - return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options); - }; - - var customSchedulePrepend = function customSchedulePrepend(task) { - return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options); - }; - - var customCancelNonGlobal = function customCancelNonGlobal(task) { - return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options); - }; - - var customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal; - var customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal; - - var compareTaskCallbackVsDelegate = function compareTaskCallbackVsDelegate(task, delegate) { - var typeOfDelegate = typeof delegate; - return typeOfDelegate === 'function' && task.callback === delegate || typeOfDelegate === 'object' && task.originalDelegate === delegate; - }; - - var compare = patchOptions && patchOptions.diff ? patchOptions.diff : compareTaskCallbackVsDelegate; - var blackListedEvents = Zone[zoneSymbol('BLACK_LISTED_EVENTS')]; - - var makeAddListener = function makeAddListener(nativeListener, addSource, customScheduleFn, customCancelFn) { - var returnTarget = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; - var prepend = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false; - return function () { - var target = this || _global; - var eventName = arguments[0]; - - if (patchOptions && patchOptions.transferEventName) { - eventName = patchOptions.transferEventName(eventName); - } - - var delegate = arguments[1]; - - if (!delegate) { - return nativeListener.apply(this, arguments); - } - - if (isNode && eventName === 'uncaughtException') { - // don't patch uncaughtException of nodejs to prevent endless loop - return nativeListener.apply(this, arguments); - } // don't create the bind delegate function for handleEvent - // case here to improve addEventListener performance - // we will create the bind delegate when invoke - - - var isHandleEvent = false; - - if (typeof delegate !== 'function') { - if (!delegate.handleEvent) { - return nativeListener.apply(this, arguments); - } - - isHandleEvent = true; - } - - if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) { - return; - } - - var options = arguments[2]; - - if (blackListedEvents) { - // check black list - for (var i = 0; i < blackListedEvents.length; i++) { - if (eventName === blackListedEvents[i]) { - return nativeListener.apply(this, arguments); - } - } - } - - var capture; - var once = false; - - if (options === undefined) { - capture = false; - } else if (options === true) { - capture = true; - } else if (options === false) { - capture = false; - } else { - capture = options ? !!options.capture : false; - once = options ? !!options.once : false; - } - - var zone = Zone.current; - var symbolEventNames = zoneSymbolEventNames$1[eventName]; - var symbolEventName; - - if (!symbolEventNames) { - // the code is duplicate, but I just want to get some better performance - var falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR; - var trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR; - var symbol = ZONE_SYMBOL_PREFIX + falseEventName; - var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName; - zoneSymbolEventNames$1[eventName] = {}; - zoneSymbolEventNames$1[eventName][FALSE_STR] = symbol; - zoneSymbolEventNames$1[eventName][TRUE_STR] = symbolCapture; - symbolEventName = capture ? symbolCapture : symbol; - } else { - symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR]; - } - - var existingTasks = target[symbolEventName]; - var isExisting = false; - - if (existingTasks) { - // already have task registered - isExisting = true; - - if (checkDuplicate) { - for (var _i = 0; _i < existingTasks.length; _i++) { - if (compare(existingTasks[_i], delegate)) { - // same callback, same capture, same event name, just return - return; - } - } - } - } else { - existingTasks = target[symbolEventName] = []; - } - - var source; - var constructorName = target.constructor['name']; - var targetSource = globalSources[constructorName]; - - if (targetSource) { - source = targetSource[eventName]; - } - - if (!source) { - source = constructorName + addSource + (eventNameToString ? eventNameToString(eventName) : eventName); - } // do not create a new object as task.data to pass those things - // just use the global shared one - - - taskData.options = options; - - if (once) { - // if addEventListener with once options, we don't pass it to - // native addEventListener, instead we keep the once setting - // and handle ourselves. - taskData.options.once = false; - } - - taskData.target = target; - taskData.capture = capture; - taskData.eventName = eventName; - taskData.isExisting = isExisting; - var data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined; // keep taskData into data to allow onScheduleEventTask to access the task information - - if (data) { - data.taskData = taskData; - } - - var task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn); // should clear taskData.target to avoid memory leak - // issue, https://github.com/angular/angular/issues/20442 - - taskData.target = null; // need to clear up taskData because it is a global object - - if (data) { - data.taskData = null; - } // have to save those information to task in case - // application may call task.zone.cancelTask() directly - - - if (once) { - options.once = true; - } - - if (!(!passiveSupported && typeof task.options === 'boolean')) { - // if not support passive, and we pass an option object - // to addEventListener, we should save the options to task - task.options = options; - } - - task.target = target; - task.capture = capture; - task.eventName = eventName; - - if (isHandleEvent) { - // save original delegate for compare to check duplicate - task.originalDelegate = delegate; - } - - if (!prepend) { - existingTasks.push(task); - } else { - existingTasks.unshift(task); - } - - if (returnTarget) { - return target; - } - }; - }; - - proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget); - - if (nativePrependEventListener) { - proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true); - } - - proto[REMOVE_EVENT_LISTENER] = function () { - var target = this || _global; - var eventName = arguments[0]; - - if (patchOptions && patchOptions.transferEventName) { - eventName = patchOptions.transferEventName(eventName); - } - - var options = arguments[2]; - var capture; - - if (options === undefined) { - capture = false; - } else if (options === true) { - capture = true; - } else if (options === false) { - capture = false; - } else { - capture = options ? !!options.capture : false; - } - - var delegate = arguments[1]; - - if (!delegate) { - return nativeRemoveEventListener.apply(this, arguments); - } - - if (validateHandler && !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) { - return; - } - - var symbolEventNames = zoneSymbolEventNames$1[eventName]; - var symbolEventName; - - if (symbolEventNames) { - symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR]; - } - - var existingTasks = symbolEventName && target[symbolEventName]; - - if (existingTasks) { - for (var i = 0; i < existingTasks.length; i++) { - var existingTask = existingTasks[i]; - - if (compare(existingTask, delegate)) { - existingTasks.splice(i, 1); // set isRemoved to data for faster invokeTask check - - existingTask.isRemoved = true; - - if (existingTasks.length === 0) { - // all tasks for the eventName + capture have gone, - // remove globalZoneAwareCallback and remove the task cache from target - existingTask.allRemoved = true; - target[symbolEventName] = null; // in the target, we have an event listener which is added by on_property - // such as target.onclick = function() {}, so we need to clear this internal - // property too if all delegates all removed - - if (typeof eventName === 'string') { - var onPropertySymbol = ZONE_SYMBOL_PREFIX + 'ON_PROPERTY' + eventName; - target[onPropertySymbol] = null; - } - } - - existingTask.zone.cancelTask(existingTask); - - if (returnTarget) { - return target; - } - - return; - } - } - } // issue 930, didn't find the event name or callback - // from zone kept existingTasks, the callback maybe - // added outside of zone, we need to call native removeEventListener - // to try to remove it. - - - return nativeRemoveEventListener.apply(this, arguments); - }; - - proto[LISTENERS_EVENT_LISTENER] = function () { - var target = this || _global; - var eventName = arguments[0]; - - if (patchOptions && patchOptions.transferEventName) { - eventName = patchOptions.transferEventName(eventName); - } - - var listeners = []; - var tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName); - - for (var i = 0; i < tasks.length; i++) { - var task = tasks[i]; - var delegate = task.originalDelegate ? task.originalDelegate : task.callback; - listeners.push(delegate); - } - - return listeners; - }; - - proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () { - var target = this || _global; - var eventName = arguments[0]; - - if (!eventName) { - var keys = Object.keys(target); - - for (var i = 0; i < keys.length; i++) { - var prop = keys[i]; - var match = EVENT_NAME_SYMBOL_REGX.exec(prop); - var evtName = match && match[1]; // in nodejs EventEmitter, removeListener event is - // used for monitoring the removeListener call, - // so just keep removeListener eventListener until - // all other eventListeners are removed - - if (evtName && evtName !== 'removeListener') { - this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName); - } - } // remove removeListener listener finally - - - this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener'); - } else { - if (patchOptions && patchOptions.transferEventName) { - eventName = patchOptions.transferEventName(eventName); - } - - var symbolEventNames = zoneSymbolEventNames$1[eventName]; - - if (symbolEventNames) { - var symbolEventName = symbolEventNames[FALSE_STR]; - var symbolCaptureEventName = symbolEventNames[TRUE_STR]; - var tasks = target[symbolEventName]; - var captureTasks = target[symbolCaptureEventName]; - - if (tasks) { - var removeTasks = tasks.slice(); - - for (var _i2 = 0; _i2 < removeTasks.length; _i2++) { - var task = removeTasks[_i2]; - var delegate = task.originalDelegate ? task.originalDelegate : task.callback; - this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options); - } - } - - if (captureTasks) { - var _removeTasks = captureTasks.slice(); - - for (var _i3 = 0; _i3 < _removeTasks.length; _i3++) { - var _task = _removeTasks[_i3]; - - var _delegate2 = _task.originalDelegate ? _task.originalDelegate : _task.callback; - - this[REMOVE_EVENT_LISTENER].call(this, eventName, _delegate2, _task.options); - } - } - } - } - - if (returnTarget) { - return this; - } - }; // for native toString patch - - - attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener); - attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener); - - if (nativeRemoveAllListeners) { - attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners); - } - - if (nativeListeners) { - attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners); - } - - return true; - } - - var results = []; - - for (var i = 0; i < apis.length; i++) { - results[i] = patchEventTargetMethods(apis[i], patchOptions); - } - - return results; - } - - function findEventTasks(target, eventName) { - var foundTasks = []; - - for (var prop in target) { - var match = EVENT_NAME_SYMBOL_REGX.exec(prop); - var evtName = match && match[1]; - - if (evtName && (!eventName || evtName === eventName)) { - var tasks = target[prop]; - - if (tasks) { - for (var i = 0; i < tasks.length; i++) { - foundTasks.push(tasks[i]); - } - } - } - } - - return foundTasks; - } - - function patchEventPrototype(global, api) { - var Event = global['Event']; - - if (Event && Event.prototype) { - api.patchMethod(Event.prototype, 'stopImmediatePropagation', function (delegate) { - return function (self, args) { - self[IMMEDIATE_PROPAGATION_SYMBOL] = true; // we need to call the native stopImmediatePropagation - // in case in some hybrid application, some part of - // application will be controlled by zone, some are not - - delegate && delegate.apply(self, args); - }; - }); - } - } - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - - function patchCallbacks(api, target, targetName, method, callbacks) { - var symbol = Zone.__symbol__(method); - - if (target[symbol]) { - return; - } - - var nativeDelegate = target[symbol] = target[method]; - - target[method] = function (name, opts, options) { - if (opts && opts.prototype) { - callbacks.forEach(function (callback) { - var source = "".concat(targetName, ".").concat(method, "::") + callback; - var prototype = opts.prototype; - - if (prototype.hasOwnProperty(callback)) { - var descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback); - - if (descriptor && descriptor.value) { - descriptor.value = api.wrapWithCurrentZone(descriptor.value, source); - - api._redefineProperty(opts.prototype, callback, descriptor); - } else if (prototype[callback]) { - prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source); - } - } else if (prototype[callback]) { - prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source); - } - }); - } - - return nativeDelegate.call(target, name, opts, options); - }; - - api.attachOriginToPatched(target[method], nativeDelegate); - } - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - - var globalEventHandlersEventNames = ['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']; - var documentEventNames = ['afterscriptexecute', 'beforescriptexecute', 'DOMContentLoaded', 'freeze', 'fullscreenchange', 'mozfullscreenchange', 'webkitfullscreenchange', 'msfullscreenchange', 'fullscreenerror', 'mozfullscreenerror', 'webkitfullscreenerror', 'msfullscreenerror', 'readystatechange', 'visibilitychange', 'resume']; - var windowEventNames = ['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']; - var htmlElementEventNames = ['beforecopy', 'beforecut', 'beforepaste', 'copy', 'cut', 'paste', 'dragstart', 'loadend', 'animationstart', 'search', 'transitionrun', 'transitionstart', 'webkitanimationend', 'webkitanimationiteration', 'webkitanimationstart', 'webkittransitionend']; - var mediaElementEventNames = ['encrypted', 'waitingforkey', 'msneedkey', 'mozinterruptbegin', 'mozinterruptend']; - var ieElementEventNames = ['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']; - var webglEventNames = ['webglcontextrestored', 'webglcontextlost', 'webglcontextcreationerror']; - var formEventNames = ['autocomplete', 'autocompleteerror']; - var detailEventNames = ['toggle']; - var frameEventNames = ['load']; - var frameSetEventNames = ['blur', 'error', 'focus', 'load', 'resize', 'scroll', 'messageerror']; - var marqueeEventNames = ['bounce', 'finish', 'start']; - var XMLHttpRequestEventNames = ['loadstart', 'progress', 'abort', 'error', 'load', 'progress', 'timeout', 'loadend', 'readystatechange']; - var IDBIndexEventNames = ['upgradeneeded', 'complete', 'abort', 'success', 'error', 'blocked', 'versionchange', 'close']; - var websocketEventNames = ['close', 'error', 'open', 'message']; - var workerEventNames = ['error', 'message']; - var eventNames = globalEventHandlersEventNames.concat(webglEventNames, formEventNames, detailEventNames, documentEventNames, windowEventNames, htmlElementEventNames, ieElementEventNames); - - function filterProperties(target, onProperties, ignoreProperties) { - if (!ignoreProperties || ignoreProperties.length === 0) { - return onProperties; - } - - var tip = ignoreProperties.filter(function (ip) { - return ip.target === target; - }); - - if (!tip || tip.length === 0) { - return onProperties; - } - - var targetIgnoreProperties = tip[0].ignoreProperties; - return onProperties.filter(function (op) { - return targetIgnoreProperties.indexOf(op) === -1; - }); - } - - function patchFilteredProperties(target, onProperties, ignoreProperties, prototype) { - // check whether target is available, sometimes target will be undefined - // because different browser or some 3rd party plugin. - if (!target) { - return; - } - - var filteredProperties = filterProperties(target, onProperties, ignoreProperties); - patchOnProperties(target, filteredProperties, prototype); - } - - function propertyDescriptorPatch(api, _global) { - if (isNode && !isMix) { - return; - } - - if (Zone[api.symbol('patchEvents')]) { - // events are already been patched by legacy patch. - return; - } - - var supportsWebSocket = typeof WebSocket !== 'undefined'; - var ignoreProperties = _global['__Zone_ignore_on_properties']; // for browsers that we can patch the descriptor: Chrome & Firefox - - if (isBrowser) { - var _internalWindow = window; - var ignoreErrorProperties = isIE ? [{ - target: _internalWindow, - ignoreProperties: ['error'] - }] : []; // in IE/Edge, onProp not exist in window object, but in WindowPrototype - // so we need to pass WindowPrototype to check onProp exist or not - - patchFilteredProperties(_internalWindow, eventNames.concat(['messageerror']), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(_internalWindow)); - patchFilteredProperties(Document.prototype, eventNames, ignoreProperties); - - if (typeof _internalWindow['SVGElement'] !== 'undefined') { - patchFilteredProperties(_internalWindow['SVGElement'].prototype, eventNames, ignoreProperties); - } - - patchFilteredProperties(Element.prototype, eventNames, ignoreProperties); - patchFilteredProperties(HTMLElement.prototype, eventNames, ignoreProperties); - patchFilteredProperties(HTMLMediaElement.prototype, mediaElementEventNames, ignoreProperties); - patchFilteredProperties(HTMLFrameSetElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties); - patchFilteredProperties(HTMLBodyElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties); - patchFilteredProperties(HTMLFrameElement.prototype, frameEventNames, ignoreProperties); - patchFilteredProperties(HTMLIFrameElement.prototype, frameEventNames, ignoreProperties); - var HTMLMarqueeElement = _internalWindow['HTMLMarqueeElement']; - - if (HTMLMarqueeElement) { - patchFilteredProperties(HTMLMarqueeElement.prototype, marqueeEventNames, ignoreProperties); - } - - var Worker = _internalWindow['Worker']; - - if (Worker) { - patchFilteredProperties(Worker.prototype, workerEventNames, ignoreProperties); - } - } - - var XMLHttpRequest = _global['XMLHttpRequest']; - - if (XMLHttpRequest) { - // XMLHttpRequest is not available in ServiceWorker, so we need to check here - patchFilteredProperties(XMLHttpRequest.prototype, XMLHttpRequestEventNames, ignoreProperties); - } - - var XMLHttpRequestEventTarget = _global['XMLHttpRequestEventTarget']; - - if (XMLHttpRequestEventTarget) { - patchFilteredProperties(XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype, XMLHttpRequestEventNames, ignoreProperties); - } - - if (typeof IDBIndex !== 'undefined') { - patchFilteredProperties(IDBIndex.prototype, IDBIndexEventNames, ignoreProperties); - patchFilteredProperties(IDBRequest.prototype, IDBIndexEventNames, ignoreProperties); - patchFilteredProperties(IDBOpenDBRequest.prototype, IDBIndexEventNames, ignoreProperties); - patchFilteredProperties(IDBDatabase.prototype, IDBIndexEventNames, ignoreProperties); - patchFilteredProperties(IDBTransaction.prototype, IDBIndexEventNames, ignoreProperties); - patchFilteredProperties(IDBCursor.prototype, IDBIndexEventNames, ignoreProperties); - } - - if (supportsWebSocket) { - patchFilteredProperties(WebSocket.prototype, websocketEventNames, ignoreProperties); - } - } - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - - Zone.__load_patch('util', function (global, Zone, api) { - api.patchOnProperties = patchOnProperties; - api.patchMethod = patchMethod; - api.bindArguments = bindArguments; - api.patchMacroTask = patchMacroTask; // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS` to - // define which events will not be patched by `Zone.js`. - // In newer version (>=0.9.0), we change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep - // the name consistent with angular repo. - // The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be supported for - // backwards compatibility. - - var SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS'); - - var SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS'); - - if (global[SYMBOL_UNPATCHED_EVENTS]) { - global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS]; - } - - if (global[SYMBOL_BLACK_LISTED_EVENTS]) { - Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] = global[SYMBOL_BLACK_LISTED_EVENTS]; - } - - api.patchEventPrototype = patchEventPrototype; - api.patchEventTarget = patchEventTarget; - api.isIEOrEdge = isIEOrEdge; - api.ObjectDefineProperty = ObjectDefineProperty; - api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor; - api.ObjectCreate = ObjectCreate; - api.ArraySlice = ArraySlice; - api.patchClass = patchClass; - api.wrapWithCurrentZone = wrapWithCurrentZone; - api.filterProperties = filterProperties; - api.attachOriginToPatched = attachOriginToPatched; - api._redefineProperty = Object.defineProperty; - api.patchCallbacks = patchCallbacks; - - api.getGlobalObjects = function () { - return { - globalSources: globalSources, - zoneSymbolEventNames: zoneSymbolEventNames$1, - eventNames: eventNames, - isBrowser: isBrowser, - isMix: isMix, - isNode: isNode, - TRUE_STR: TRUE_STR, - FALSE_STR: FALSE_STR, - ZONE_SYMBOL_PREFIX: ZONE_SYMBOL_PREFIX, - ADD_EVENT_LISTENER_STR: ADD_EVENT_LISTENER_STR, - REMOVE_EVENT_LISTENER_STR: REMOVE_EVENT_LISTENER_STR - }; - }; - }); - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - - var taskSymbol = zoneSymbol('zoneTask'); - - function patchTimer(window, setName, cancelName, nameSuffix) { - var setNative = null; - var clearNative = null; - setName += nameSuffix; - cancelName += nameSuffix; - var tasksByHandleId = {}; - - function scheduleTask(task) { - var data = task.data; - - function timer() { - try { - task.invoke.apply(this, arguments); - } finally { - // issue-934, task will be cancelled - // even it is a periodic task such as - // setInterval - if (!(task.data && task.data.isPeriodic)) { - if (typeof data.handleId === 'number') { - // in non-nodejs env, we remove timerId - // from local cache - delete tasksByHandleId[data.handleId]; - } else if (data.handleId) { - // Node returns complex objects as handleIds - // we remove task reference from timer object - data.handleId[taskSymbol] = null; - } - } - } - } - - data.args[0] = timer; - data.handleId = setNative.apply(window, data.args); - return task; - } - - function clearTask(task) { - return clearNative(task.data.handleId); - } - - setNative = patchMethod(window, setName, function (delegate) { - return function (self, args) { - if (typeof args[0] === 'function') { - var _options = { - isPeriodic: nameSuffix === 'Interval', - delay: nameSuffix === 'Timeout' || nameSuffix === 'Interval' ? args[1] || 0 : undefined, - args: args - }; - var task = scheduleMacroTaskWithCurrentZone(setName, args[0], _options, scheduleTask, clearTask); - - if (!task) { - return task; - } // Node.js must additionally support the ref and unref functions. - - - var handle = task.data.handleId; - - if (typeof handle === 'number') { - // for non nodejs env, we save handleId: task - // mapping in local cache for clearTimeout - tasksByHandleId[handle] = task; - } else if (handle) { - // for nodejs env, we save task - // reference in timerId Object for clearTimeout - handle[taskSymbol] = task; - } // check whether handle is null, because some polyfill or browser - // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame - - - if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' && typeof handle.unref === 'function') { - task.ref = handle.ref.bind(handle); - task.unref = handle.unref.bind(handle); - } - - if (typeof handle === 'number' || handle) { - return handle; - } - - return task; - } else { - // cause an error by calling it directly. - return delegate.apply(window, args); - } - }; - }); - clearNative = patchMethod(window, cancelName, function (delegate) { - return function (self, args) { - var id = args[0]; - var task; - - if (typeof id === 'number') { - // non nodejs env. - task = tasksByHandleId[id]; - } else { - // nodejs env. - task = id && id[taskSymbol]; // other environments. - - if (!task) { - task = id; - } - } - - if (task && typeof task.type === 'string') { - if (task.state !== 'notScheduled' && (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) { - if (typeof id === 'number') { - delete tasksByHandleId[id]; - } else if (id) { - id[taskSymbol] = null; - } // Do not cancel already canceled functions - - - task.zone.cancelTask(task); - } - } else { - // cause an error by calling it directly. - delegate.apply(window, args); - } - }; - }); - } - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - - function patchCustomElements(_global, api) { - var _api$getGlobalObjects = api.getGlobalObjects(), - isBrowser = _api$getGlobalObjects.isBrowser, - isMix = _api$getGlobalObjects.isMix; - - if (!isBrowser && !isMix || !_global['customElements'] || !('customElements' in _global)) { - return; - } - - var callbacks = ['connectedCallback', 'disconnectedCallback', 'adoptedCallback', 'attributeChangedCallback']; - api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks); - } - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - - function eventTargetPatch(_global, api) { - if (Zone[api.symbol('patchEventTarget')]) { - // EventTarget is already patched. - return; - } - - var _api$getGlobalObjects2 = api.getGlobalObjects(), - eventNames = _api$getGlobalObjects2.eventNames, - zoneSymbolEventNames = _api$getGlobalObjects2.zoneSymbolEventNames, - TRUE_STR = _api$getGlobalObjects2.TRUE_STR, - FALSE_STR = _api$getGlobalObjects2.FALSE_STR, - ZONE_SYMBOL_PREFIX = _api$getGlobalObjects2.ZONE_SYMBOL_PREFIX; // predefine all __zone_symbol__ + eventName + true/false string - - - for (var i = 0; i < eventNames.length; i++) { - var eventName = eventNames[i]; - var falseEventName = eventName + FALSE_STR; - var trueEventName = eventName + TRUE_STR; - var symbol = ZONE_SYMBOL_PREFIX + falseEventName; - var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName; - zoneSymbolEventNames[eventName] = {}; - zoneSymbolEventNames[eventName][FALSE_STR] = symbol; - zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture; - } - - var EVENT_TARGET = _global['EventTarget']; - - if (!EVENT_TARGET || !EVENT_TARGET.prototype) { - return; - } - - api.patchEventTarget(_global, [EVENT_TARGET && EVENT_TARGET.prototype]); - return true; - } - - function patchEvent(global, api) { - api.patchEventPrototype(global, api); - } - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - - Zone.__load_patch('legacy', function (global) { - var legacyPatch = global[Zone.__symbol__('legacyPatch')]; - - if (legacyPatch) { - legacyPatch(); - } - }); - - Zone.__load_patch('timers', function (global) { - var set = 'set'; - var clear = 'clear'; - patchTimer(global, set, clear, 'Timeout'); - patchTimer(global, set, clear, 'Interval'); - patchTimer(global, set, clear, 'Immediate'); - }); - - Zone.__load_patch('requestAnimationFrame', function (global) { - patchTimer(global, 'request', 'cancel', 'AnimationFrame'); - patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame'); - patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame'); - }); - - Zone.__load_patch('blocking', function (global, Zone) { - var blockingMethods = ['alert', 'prompt', 'confirm']; - - for (var i = 0; i < blockingMethods.length; i++) { - var name = blockingMethods[i]; - patchMethod(global, name, function (delegate, symbol, name) { - return function (s, args) { - return Zone.current.run(delegate, global, args, name); - }; - }); - } - }); - - Zone.__load_patch('EventTarget', function (global, Zone, api) { - patchEvent(global, api); - eventTargetPatch(global, api); // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener - - var XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget']; - - if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) { - api.patchEventTarget(global, [XMLHttpRequestEventTarget.prototype]); - } - - patchClass('MutationObserver'); - patchClass('WebKitMutationObserver'); - patchClass('IntersectionObserver'); - patchClass('FileReader'); - }); - - Zone.__load_patch('on_property', function (global, Zone, api) { - propertyDescriptorPatch(api, global); - }); - - Zone.__load_patch('customElements', function (global, Zone, api) { - patchCustomElements(global, api); - }); - - Zone.__load_patch('XHR', function (global, Zone) { - // Treat XMLHttpRequest as a macrotask. - patchXHR(global); - var XHR_TASK = zoneSymbol('xhrTask'); - var XHR_SYNC = zoneSymbol('xhrSync'); - var XHR_LISTENER = zoneSymbol('xhrListener'); - var XHR_SCHEDULED = zoneSymbol('xhrScheduled'); - var XHR_URL = zoneSymbol('xhrURL'); - var XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled'); - - function patchXHR(window) { - var XMLHttpRequest = window['XMLHttpRequest']; - - if (!XMLHttpRequest) { - // XMLHttpRequest is not available in service worker - return; - } - - var XMLHttpRequestPrototype = XMLHttpRequest.prototype; - - function findPendingTask(target) { - return target[XHR_TASK]; - } - - var oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER]; - var oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER]; - - if (!oriAddListener) { - var XMLHttpRequestEventTarget = window['XMLHttpRequestEventTarget']; - - if (XMLHttpRequestEventTarget) { - var XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget.prototype; - oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER]; - oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER]; - } - } - - var READY_STATE_CHANGE = 'readystatechange'; - var SCHEDULED = 'scheduled'; - - function scheduleTask(task) { - var data = task.data; - var target = data.target; - target[XHR_SCHEDULED] = false; - target[XHR_ERROR_BEFORE_SCHEDULED] = false; // remove existing event listener - - var listener = target[XHR_LISTENER]; - - if (!oriAddListener) { - oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER]; - oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER]; - } - - if (listener) { - oriRemoveListener.call(target, READY_STATE_CHANGE, listener); - } - - var newListener = target[XHR_LISTENER] = function () { - if (target.readyState === target.DONE) { - // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with - // readyState=4 multiple times, so we need to check task state here - if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) { - // check whether the xhr has registered onload listener - // if that is the case, the task should invoke after all - // onload listeners finish. - var loadTasks = target[Zone.__symbol__('loadfalse')]; - - if (loadTasks && loadTasks.length > 0) { - var oriInvoke = task.invoke; - - task.invoke = function () { - // need to load the tasks again, because in other - // load listener, they may remove themselves - var loadTasks = target[Zone.__symbol__('loadfalse')]; - - for (var i = 0; i < loadTasks.length; i++) { - if (loadTasks[i] === task) { - loadTasks.splice(i, 1); - } - } - - if (!data.aborted && task.state === SCHEDULED) { - oriInvoke.call(task); - } - }; - - loadTasks.push(task); - } else { - task.invoke(); - } - } else if (!data.aborted && target[XHR_SCHEDULED] === false) { - // error occurs when xhr.send() - target[XHR_ERROR_BEFORE_SCHEDULED] = true; - } - } - }; - - oriAddListener.call(target, READY_STATE_CHANGE, newListener); - var storedTask = target[XHR_TASK]; - - if (!storedTask) { - target[XHR_TASK] = task; - } - - sendNative.apply(target, data.args); - target[XHR_SCHEDULED] = true; - return task; - } - - function placeholderCallback() {} - - function clearTask(task) { - var data = task.data; // Note - ideally, we would call data.target.removeEventListener here, but it's too late - // to prevent it from firing. So instead, we store info for the event listener. - - data.aborted = true; - return abortNative.apply(data.target, data.args); - } - - var openNative = patchMethod(XMLHttpRequestPrototype, 'open', function () { - return function (self, args) { - self[XHR_SYNC] = args[2] == false; - self[XHR_URL] = args[1]; - return openNative.apply(self, args); - }; - }); - var XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send'; - var fetchTaskAborting = zoneSymbol('fetchTaskAborting'); - var fetchTaskScheduling = zoneSymbol('fetchTaskScheduling'); - var sendNative = patchMethod(XMLHttpRequestPrototype, 'send', function () { - return function (self, args) { - if (Zone.current[fetchTaskScheduling] === true) { - // a fetch is scheduling, so we are using xhr to polyfill fetch - // and because we already schedule macroTask for fetch, we should - // not schedule a macroTask for xhr again - return sendNative.apply(self, args); - } - - if (self[XHR_SYNC]) { - // if the XHR is sync there is no task to schedule, just execute the code. - return sendNative.apply(self, args); - } else { - var _options2 = { - target: self, - url: self[XHR_URL], - isPeriodic: false, - args: args, - aborted: false - }; - var task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, _options2, scheduleTask, clearTask); - - if (self && self[XHR_ERROR_BEFORE_SCHEDULED] === true && !_options2.aborted && task.state === SCHEDULED) { - // xhr request throw error when send - // we should invoke task instead of leaving a scheduled - // pending macroTask - task.invoke(); - } - } - }; - }); - var abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', function () { - return function (self, args) { - var task = findPendingTask(self); - - if (task && typeof task.type == 'string') { - // If the XHR has already completed, do nothing. - // If the XHR has already been aborted, do nothing. - // Fix #569, call abort multiple times before done will cause - // macroTask task count be negative number - if (task.cancelFn == null || task.data && task.data.aborted) { - return; - } - - task.zone.cancelTask(task); - } else if (Zone.current[fetchTaskAborting] === true) { - // the abort is called from fetch polyfill, we need to call native abort of XHR. - return abortNative.apply(self, args); - } // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no - // task - // to cancel. Do nothing. - - }; - }); - } - }); - - Zone.__load_patch('geolocation', function (global) { - /// GEO_LOCATION - if (global['navigator'] && global['navigator'].geolocation) { - patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']); - } - }); - - Zone.__load_patch('PromiseRejectionEvent', function (global, Zone) { - // handle unhandled promise rejection - function findPromiseRejectionHandler(evtName) { - return function (e) { - var eventTasks = findEventTasks(global, evtName); - eventTasks.forEach(function (eventTask) { - // windows has added unhandledrejection event listener - // trigger the event listener - var PromiseRejectionEvent = global['PromiseRejectionEvent']; - - if (PromiseRejectionEvent) { - var evt = new PromiseRejectionEvent(evtName, { - promise: e.promise, - reason: e.rejection - }); - eventTask.invoke(evt); - } - }); - }; - } - - if (global['PromiseRejectionEvent']) { - Zone[zoneSymbol('unhandledPromiseRejectionHandler')] = findPromiseRejectionHandler('unhandledrejection'); - Zone[zoneSymbol('rejectionHandledHandler')] = findPromiseRejectionHandler('rejectionhandled'); - } - }); - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - }); - /***/ - - }, - - /***/ - "./node_modules/zone.js/dist/zone-legacy.js": - /*!**************************************************!*\ - !*** ./node_modules/zone.js/dist/zone-legacy.js ***! - \**************************************************/ - - /*! no static exports found */ - - /***/ - function node_modulesZoneJsDistZoneLegacyJs(module, exports, __webpack_require__) { - var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__; - /** - * @license Angular v0.10.2 - * (c) 2010-2019 Google LLC. https://angular.io/ - * License: MIT - */ - - - (function (factory) { - true ? !(__WEBPACK_AMD_DEFINE_FACTORY__ = factory, __WEBPACK_AMD_DEFINE_RESULT__ = typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? __WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module) : __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; - })(function () { - 'use strict'; - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - /* - * This is necessary for Chrome and Chrome mobile, to enable - * things like redefining `createdCallback` on an element. - */ - - var zoneSymbol; - - var _defineProperty; - - var _getOwnPropertyDescriptor; - - var _create; - - var unconfigurablesKey; - - function propertyPatch() { - zoneSymbol = Zone.__symbol__; - _defineProperty = Object[zoneSymbol('defineProperty')] = Object.defineProperty; - _getOwnPropertyDescriptor = Object[zoneSymbol('getOwnPropertyDescriptor')] = Object.getOwnPropertyDescriptor; - _create = Object.create; - unconfigurablesKey = zoneSymbol('unconfigurables'); - - Object.defineProperty = function (obj, prop, desc) { - if (isUnconfigurable(obj, prop)) { - throw new TypeError('Cannot assign to read only property \'' + prop + '\' of ' + obj); - } - - var originalConfigurableFlag = desc.configurable; - - if (prop !== 'prototype') { - desc = rewriteDescriptor(obj, prop, desc); - } - - return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag); - }; - - Object.defineProperties = function (obj, props) { - Object.keys(props).forEach(function (prop) { - Object.defineProperty(obj, prop, props[prop]); - }); - return obj; - }; - - Object.create = function (obj, proto) { - if (typeof proto === 'object' && !Object.isFrozen(proto)) { - Object.keys(proto).forEach(function (prop) { - proto[prop] = rewriteDescriptor(obj, prop, proto[prop]); - }); - } - - return _create(obj, proto); - }; - - Object.getOwnPropertyDescriptor = function (obj, prop) { - var desc = _getOwnPropertyDescriptor(obj, prop); - - if (desc && isUnconfigurable(obj, prop)) { - desc.configurable = false; - } - - return desc; - }; - } - - function _redefineProperty(obj, prop, desc) { - var originalConfigurableFlag = desc.configurable; - desc = rewriteDescriptor(obj, prop, desc); - return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag); - } - - function isUnconfigurable(obj, prop) { - return obj && obj[unconfigurablesKey] && obj[unconfigurablesKey][prop]; - } - - function rewriteDescriptor(obj, prop, desc) { - // issue-927, if the desc is frozen, don't try to change the desc - if (!Object.isFrozen(desc)) { - desc.configurable = true; - } - - if (!desc.configurable) { - // issue-927, if the obj is frozen, don't try to set the desc to obj - if (!obj[unconfigurablesKey] && !Object.isFrozen(obj)) { - _defineProperty(obj, unconfigurablesKey, { - writable: true, - value: {} - }); - } - - if (obj[unconfigurablesKey]) { - obj[unconfigurablesKey][prop] = true; - } - } - - return desc; - } - - function _tryDefineProperty(obj, prop, desc, originalConfigurableFlag) { - try { - return _defineProperty(obj, prop, desc); - } catch (error) { - if (desc.configurable) { - // In case of errors, when the configurable flag was likely set by rewriteDescriptor(), let's - // retry with the original flag value - if (typeof originalConfigurableFlag == 'undefined') { - delete desc.configurable; - } else { - desc.configurable = originalConfigurableFlag; - } - - try { - return _defineProperty(obj, prop, desc); - } catch (error) { - var descJson = null; - - try { - descJson = JSON.stringify(desc); - } catch (error) { - descJson = desc.toString(); - } - - console.log("Attempting to configure '" + prop + "' with descriptor '" + descJson + "' on object '" + obj + "' and got error, giving up: " + error); - } - } else { - throw error; - } - } - } - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - - function eventTargetLegacyPatch(_global, api) { - var _a = api.getGlobalObjects(), - eventNames = _a.eventNames, - globalSources = _a.globalSources, - zoneSymbolEventNames = _a.zoneSymbolEventNames, - TRUE_STR = _a.TRUE_STR, - FALSE_STR = _a.FALSE_STR, - ZONE_SYMBOL_PREFIX = _a.ZONE_SYMBOL_PREFIX; - - var WTF_ISSUE_555 = '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'; - var NO_EVENT_TARGET = '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(','); - var EVENT_TARGET = 'EventTarget'; - var apis = []; - var isWtf = _global['wtf']; - var WTF_ISSUE_555_ARRAY = WTF_ISSUE_555.split(','); - - if (isWtf) { - // Workaround for: https://github.com/google/tracing-framework/issues/555 - apis = WTF_ISSUE_555_ARRAY.map(function (v) { - return 'HTML' + v + 'Element'; - }).concat(NO_EVENT_TARGET); - } else if (_global[EVENT_TARGET]) { - apis.push(EVENT_TARGET); - } else { - // Note: EventTarget is not available in all browsers, - // if it's not available, we instead patch the APIs in the IDL that inherit from EventTarget - apis = NO_EVENT_TARGET; - } - - var isDisableIECheck = _global['__Zone_disable_IE_check'] || false; - var isEnableCrossContextCheck = _global['__Zone_enable_cross_context_check'] || false; - var ieOrEdge = api.isIEOrEdge(); - var ADD_EVENT_LISTENER_SOURCE = '.addEventListener:'; - var FUNCTION_WRAPPER = '[object FunctionWrapper]'; - var BROWSER_TOOLS = 'function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }'; - var pointerEventsMap = { - 'MSPointerCancel': 'pointercancel', - 'MSPointerDown': 'pointerdown', - 'MSPointerEnter': 'pointerenter', - 'MSPointerHover': 'pointerhover', - 'MSPointerLeave': 'pointerleave', - 'MSPointerMove': 'pointermove', - 'MSPointerOut': 'pointerout', - 'MSPointerOver': 'pointerover', - 'MSPointerUp': 'pointerup' - }; // predefine all __zone_symbol__ + eventName + true/false string - - for (var i = 0; i < eventNames.length; i++) { - var eventName = eventNames[i]; - var falseEventName = eventName + FALSE_STR; - var trueEventName = eventName + TRUE_STR; - var symbol = ZONE_SYMBOL_PREFIX + falseEventName; - var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName; - zoneSymbolEventNames[eventName] = {}; - zoneSymbolEventNames[eventName][FALSE_STR] = symbol; - zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture; - } // predefine all task.source string - - - for (var i = 0; i < WTF_ISSUE_555_ARRAY.length; i++) { - var target = WTF_ISSUE_555_ARRAY[i]; - var targets = globalSources[target] = {}; - - for (var j = 0; j < eventNames.length; j++) { - var eventName = eventNames[j]; - targets[eventName] = target + ADD_EVENT_LISTENER_SOURCE + eventName; - } - } - - var checkIEAndCrossContext = function checkIEAndCrossContext(nativeDelegate, delegate, target, args) { - if (!isDisableIECheck && ieOrEdge) { - if (isEnableCrossContextCheck) { - try { - var testString = delegate.toString(); - - if (testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS) { - nativeDelegate.apply(target, args); - return false; - } - } catch (error) { - nativeDelegate.apply(target, args); - return false; - } - } else { - var testString = delegate.toString(); - - if (testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS) { - nativeDelegate.apply(target, args); - return false; - } - } - } else if (isEnableCrossContextCheck) { - try { - delegate.toString(); - } catch (error) { - nativeDelegate.apply(target, args); - return false; - } - } - - return true; - }; - - var apiTypes = []; - - for (var i = 0; i < apis.length; i++) { - var type = _global[apis[i]]; - apiTypes.push(type && type.prototype); - } // vh is validateHandler to check event handler - // is valid or not(for security check) - - - api.patchEventTarget(_global, apiTypes, { - vh: checkIEAndCrossContext, - transferEventName: function transferEventName(eventName) { - var pointerEventName = pointerEventsMap[eventName]; - return pointerEventName || eventName; - } - }); - Zone[api.symbol('patchEventTarget')] = !!_global[EVENT_TARGET]; - return true; - } - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - // we have to patch the instance since the proto is non-configurable - - - function apply(api, _global) { - var _a = api.getGlobalObjects(), - ADD_EVENT_LISTENER_STR = _a.ADD_EVENT_LISTENER_STR, - REMOVE_EVENT_LISTENER_STR = _a.REMOVE_EVENT_LISTENER_STR; - - var WS = _global.WebSocket; // On Safari window.EventTarget doesn't exist so need to patch WS add/removeEventListener - // On older Chrome, no need since EventTarget was already patched - - if (!_global.EventTarget) { - api.patchEventTarget(_global, [WS.prototype]); - } - - _global.WebSocket = function (x, y) { - var socket = arguments.length > 1 ? new WS(x, y) : new WS(x); - var proxySocket; - var proxySocketProto; // Safari 7.0 has non-configurable own 'onmessage' and friends properties on the socket instance - - var onmessageDesc = api.ObjectGetOwnPropertyDescriptor(socket, 'onmessage'); - - if (onmessageDesc && onmessageDesc.configurable === false) { - proxySocket = api.ObjectCreate(socket); // socket have own property descriptor 'onopen', 'onmessage', 'onclose', 'onerror' - // but proxySocket not, so we will keep socket as prototype and pass it to - // patchOnProperties method - - proxySocketProto = socket; - [ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR, 'send', 'close'].forEach(function (propName) { - proxySocket[propName] = function () { - var args = api.ArraySlice.call(arguments); - - if (propName === ADD_EVENT_LISTENER_STR || propName === REMOVE_EVENT_LISTENER_STR) { - var eventName = args.length > 0 ? args[0] : undefined; - - if (eventName) { - var propertySymbol = Zone.__symbol__('ON_PROPERTY' + eventName); - - socket[propertySymbol] = proxySocket[propertySymbol]; - } - } - - return socket[propName].apply(socket, args); - }; - }); - } else { - // we can patch the real socket - proxySocket = socket; - } - - api.patchOnProperties(proxySocket, ['close', 'error', 'message', 'open'], proxySocketProto); - return proxySocket; - }; - - var globalWebSocket = _global['WebSocket']; - - for (var prop in WS) { - globalWebSocket[prop] = WS[prop]; - } - } - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - - function propertyDescriptorLegacyPatch(api, _global) { - var _a = api.getGlobalObjects(), - isNode = _a.isNode, - isMix = _a.isMix; - - if (isNode && !isMix) { - return; - } - - if (!canPatchViaPropertyDescriptor(api, _global)) { - var supportsWebSocket = typeof WebSocket !== 'undefined'; // Safari, Android browsers (Jelly Bean) - - patchViaCapturingAllTheEvents(api); - api.patchClass('XMLHttpRequest'); - - if (supportsWebSocket) { - apply(api, _global); - } - - Zone[api.symbol('patchEvents')] = true; - } - } - - function canPatchViaPropertyDescriptor(api, _global) { - var _a = api.getGlobalObjects(), - isBrowser = _a.isBrowser, - isMix = _a.isMix; - - if ((isBrowser || isMix) && !api.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype, 'onclick') && typeof Element !== 'undefined') { - // WebKit https://bugs.webkit.org/show_bug.cgi?id=134364 - // IDL interface attributes are not configurable - var desc = api.ObjectGetOwnPropertyDescriptor(Element.prototype, 'onclick'); - if (desc && !desc.configurable) return false; // try to use onclick to detect whether we can patch via propertyDescriptor - // because XMLHttpRequest is not available in service worker - - if (desc) { - api.ObjectDefineProperty(Element.prototype, 'onclick', { - enumerable: true, - configurable: true, - get: function get() { - return true; - } - }); - var div = document.createElement('div'); - var result = !!div.onclick; - api.ObjectDefineProperty(Element.prototype, 'onclick', desc); - return result; - } - } - - var XMLHttpRequest = _global['XMLHttpRequest']; - - if (!XMLHttpRequest) { - // XMLHttpRequest is not available in service worker - return false; - } - - var ON_READY_STATE_CHANGE = 'onreadystatechange'; - var XMLHttpRequestPrototype = XMLHttpRequest.prototype; - var xhrDesc = api.ObjectGetOwnPropertyDescriptor(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE); // add enumerable and configurable here because in opera - // by default XMLHttpRequest.prototype.onreadystatechange is undefined - // without adding enumerable and configurable will cause onreadystatechange - // non-configurable - // and if XMLHttpRequest.prototype.onreadystatechange is undefined, - // we should set a real desc instead a fake one - - if (xhrDesc) { - api.ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, { - enumerable: true, - configurable: true, - get: function get() { - return true; - } - }); - var req = new XMLHttpRequest(); - var result = !!req.onreadystatechange; // restore original desc - - api.ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, xhrDesc || {}); - return result; - } else { - var SYMBOL_FAKE_ONREADYSTATECHANGE_1 = api.symbol('fake'); - api.ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, { - enumerable: true, - configurable: true, - get: function get() { - return this[SYMBOL_FAKE_ONREADYSTATECHANGE_1]; - }, - set: function set(value) { - this[SYMBOL_FAKE_ONREADYSTATECHANGE_1] = value; - } - }); - var req = new XMLHttpRequest(); - - var detectFunc = function detectFunc() {}; - - req.onreadystatechange = detectFunc; - var result = req[SYMBOL_FAKE_ONREADYSTATECHANGE_1] === detectFunc; - req.onreadystatechange = null; - return result; - } - } // Whenever any eventListener fires, we check the eventListener target and all parents - // for `onwhatever` properties and replace them with zone-bound functions - // - Chrome (for now) - - - function patchViaCapturingAllTheEvents(api) { - var eventNames = api.getGlobalObjects().eventNames; - var unboundKey = api.symbol('unbound'); - - var _loop_1 = function _loop_1(i) { - var property = eventNames[i]; - var onproperty = 'on' + property; - self.addEventListener(property, function (event) { - var elt = event.target, - bound, - source; - - if (elt) { - source = elt.constructor['name'] + '.' + onproperty; - } else { - source = 'unknown.' + onproperty; - } - - while (elt) { - if (elt[onproperty] && !elt[onproperty][unboundKey]) { - bound = api.wrapWithCurrentZone(elt[onproperty], source); - bound[unboundKey] = elt[onproperty]; - elt[onproperty] = bound; - } - - elt = elt.parentElement; - } - }, true); - }; - - for (var i = 0; i < eventNames.length; i++) { - _loop_1(i); - } - } - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - - function registerElementPatch(_global, api) { - var _a = api.getGlobalObjects(), - isBrowser = _a.isBrowser, - isMix = _a.isMix; - - if (!isBrowser && !isMix || !('registerElement' in _global.document)) { - return; - } - - var callbacks = ['createdCallback', 'attachedCallback', 'detachedCallback', 'attributeChangedCallback']; - api.patchCallbacks(api, document, 'Document', 'registerElement', callbacks); - } - /** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - - (function (_global) { - var symbolPrefix = _global['__Zone_symbol_prefix'] || '__zone_symbol__'; - - function __symbol__(name) { - return symbolPrefix + name; - } - - _global[__symbol__('legacyPatch')] = function () { - var Zone = _global['Zone']; - - Zone.__load_patch('defineProperty', function (global, Zone, api) { - api._redefineProperty = _redefineProperty; - propertyPatch(); - }); - - Zone.__load_patch('registerElement', function (global, Zone, api) { - registerElementPatch(global, api); - }); - - Zone.__load_patch('EventTargetLegacy', function (global, Zone, api) { - eventTargetLegacyPatch(global, api); - propertyDescriptorLegacyPatch(api, global); - }); - }; - })(typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}); - }); - /***/ - - }, - - /***/ - "./src/polyfills.ts": - /*!**************************!*\ - !*** ./src/polyfills.ts ***! - \**************************/ - - /*! no exports provided */ - - /***/ - function srcPolyfillsTs(module, __webpack_exports__, __webpack_require__) { - "use strict"; - - __webpack_require__.r(__webpack_exports__); - /* harmony import */ - - - var zone_js_dist_zone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( - /*! zone.js/dist/zone */ - "./node_modules/zone.js/dist/zone-evergreen.js"); - /* harmony import */ - - - var zone_js_dist_zone__WEBPACK_IMPORTED_MODULE_0___default = - /*#__PURE__*/ - __webpack_require__.n(zone_js_dist_zone__WEBPACK_IMPORTED_MODULE_0__); - /** - * This file includes polyfills needed by Angular and is loaded before the app. - * You can add your own extra polyfills to this file. - * - * This file is divided into 2 sections: - * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. - * 2. Application imports. Files imported after ZoneJS that should be loaded before your main - * file. - * - * The current setup is for so-called "evergreen" browsers; the last versions of browsers that - * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), - * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. - * - * Learn more in https://angular.io/guide/browser-support - */ - - /*************************************************************************************************** - * BROWSER POLYFILLS - */ - - /** IE10 and IE11 requires the following for NgClass support on SVG elements */ - // import 'classlist.js'; // Run `npm install --save classlist.js`. - - /** - * Web Animations `@angular/platform-browser/animations` - * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. - * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). - */ - // import 'web-animations-js'; // Run `npm install --save web-animations-js`. - - /** - * By default, zone.js will patch all possible macroTask and DomEvents - * user can disable parts of macroTask/DomEvents patch by setting following flags - * because those flags need to be set before `zone.js` being loaded, and webpack - * will put import in the top of bundle, so user need to create a separate file - * in this directory (for example: zone-flags.ts), and put the following flags - * into that file, and then add the following code before importing zone.js. - * import './zone-flags'; - * - * The flags allowed in zone-flags.ts are listed here. - * - * The following flags will work for all browsers. - * - * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame - * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick - * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames - * - * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js - * with the following flag, it will bypass `zone.js` patch for IE/Edge - * - * (window as any).__Zone_enable_cross_context_check = true; - * - */ - - /*************************************************************************************************** - * Zone JS is required by default for Angular itself. - */ - // Included with Angular CLI. - - /*************************************************************************************************** - * APPLICATION IMPORTS - */ - - /***/ - - }, - - /***/ - 1: - /*!****************************************************************************************************************************************************!*\ - !*** multi ./node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/es5-polyfills.js zone.js/dist/zone-legacy ./src/polyfills.ts ***! - \****************************************************************************************************************************************************/ - - /*! no static exports found */ - - /***/ - function _(module, exports, __webpack_require__) { - __webpack_require__( - /*! /Users/bhargavbachina/Projects/angular-nodejs-example/my-app/node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/es5-polyfills.js */ - "./node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/es5-polyfills.js"); - - __webpack_require__( - /*! zone.js/dist/zone-legacy */ - "./node_modules/zone.js/dist/zone-legacy.js"); - - module.exports = __webpack_require__( - /*! /Users/bhargavbachina/Projects/angular-nodejs-example/my-app/src/polyfills.ts */ - "./src/polyfills.ts"); - /***/ - } -}, [[1, "runtime"]]]); -//# sourceMappingURL=polyfills-es5.js.map \ No newline at end of file diff --git a/src/main/ui/dist/angular-nodejs-example/polyfills-es5.js.map b/src/main/ui/dist/angular-nodejs-example/polyfills-es5.js.map deleted file mode 100644 index ae25c8991..000000000 --- a/src/main/ui/dist/angular-nodejs-example/polyfills-es5.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/es5-polyfills.js","webpack:///node_modules/core-js/es/date/index.js","webpack:///node_modules/core-js/es/math/index.js","webpack:///node_modules/core-js/es/number/index.js","webpack:///node_modules/core-js/es/symbol/index.js","webpack:///node_modules/core-js/internals/a-function.js","webpack:///node_modules/core-js/internals/a-possible-prototype.js","webpack:///node_modules/core-js/internals/add-to-unscopables.js","webpack:///node_modules/core-js/internals/advance-string-index.js","webpack:///node_modules/core-js/internals/an-instance.js","webpack:///node_modules/core-js/internals/an-object.js","webpack:///node_modules/core-js/internals/array-copy-within.js","webpack:///node_modules/core-js/internals/array-fill.js","webpack:///node_modules/core-js/internals/array-for-each.js","webpack:///node_modules/core-js/internals/array-from.js","webpack:///node_modules/core-js/internals/array-includes.js","webpack:///node_modules/core-js/internals/array-iteration.js","webpack:///node_modules/core-js/internals/array-last-index-of.js","webpack:///node_modules/core-js/internals/array-method-has-species-support.js","webpack:///node_modules/core-js/internals/array-method-is-strict.js","webpack:///node_modules/core-js/internals/array-method-uses-to-length.js","webpack:///node_modules/core-js/internals/array-reduce.js","webpack:///node_modules/core-js/internals/array-species-create.js","webpack:///node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///node_modules/core-js/internals/classof-raw.js","webpack:///node_modules/core-js/internals/classof.js","webpack:///node_modules/core-js/internals/collection-strong.js","webpack:///node_modules/core-js/internals/collection-weak.js","webpack:///node_modules/core-js/internals/collection.js","webpack:///node_modules/core-js/internals/copy-constructor-properties.js","webpack:///node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///node_modules/core-js/internals/correct-prototype-getter.js","webpack:///node_modules/core-js/internals/create-html.js","webpack:///node_modules/core-js/internals/create-iterator-constructor.js","webpack:///node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///node_modules/core-js/internals/create-property-descriptor.js","webpack:///node_modules/core-js/internals/create-property.js","webpack:///node_modules/core-js/internals/date-to-iso-string.js","webpack:///node_modules/core-js/internals/date-to-primitive.js","webpack:///node_modules/core-js/internals/define-iterator.js","webpack:///node_modules/core-js/internals/define-well-known-symbol.js","webpack:///node_modules/core-js/internals/descriptors.js","webpack:///node_modules/core-js/internals/document-create-element.js","webpack:///node_modules/core-js/internals/dom-iterables.js","webpack:///node_modules/core-js/internals/engine-is-ios.js","webpack:///node_modules/core-js/internals/engine-user-agent.js","webpack:///node_modules/core-js/internals/engine-v8-version.js","webpack:///node_modules/core-js/internals/enum-bug-keys.js","webpack:///node_modules/core-js/internals/export.js","webpack:///node_modules/core-js/internals/fails.js","webpack:///node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///node_modules/core-js/internals/freezing.js","webpack:///node_modules/core-js/internals/function-bind-context.js","webpack:///node_modules/core-js/internals/function-bind.js","webpack:///node_modules/core-js/internals/get-built-in.js","webpack:///node_modules/core-js/internals/get-iterator-method.js","webpack:///node_modules/core-js/internals/global.js","webpack:///node_modules/core-js/internals/has.js","webpack:///node_modules/core-js/internals/hidden-keys.js","webpack:///node_modules/core-js/internals/host-report-errors.js","webpack:///node_modules/core-js/internals/html.js","webpack:///node_modules/core-js/internals/ie8-dom-define.js","webpack:///node_modules/core-js/internals/indexed-object.js","webpack:///node_modules/core-js/internals/inherit-if-required.js","webpack:///node_modules/core-js/internals/inspect-source.js","webpack:///node_modules/core-js/internals/internal-metadata.js","webpack:///node_modules/core-js/internals/internal-state.js","webpack:///node_modules/core-js/internals/is-array-iterator-method.js","webpack:///node_modules/core-js/internals/is-array.js","webpack:///node_modules/core-js/internals/is-forced.js","webpack:///node_modules/core-js/internals/is-integer.js","webpack:///node_modules/core-js/internals/is-object.js","webpack:///node_modules/core-js/internals/is-pure.js","webpack:///node_modules/core-js/internals/is-regexp.js","webpack:///node_modules/core-js/internals/iterate.js","webpack:///node_modules/core-js/internals/iterators-core.js","webpack:///node_modules/core-js/internals/iterators.js","webpack:///node_modules/core-js/internals/math-expm1.js","webpack:///node_modules/core-js/internals/math-fround.js","webpack:///node_modules/core-js/internals/math-log1p.js","webpack:///node_modules/core-js/internals/math-sign.js","webpack:///node_modules/core-js/internals/microtask.js","webpack:///node_modules/core-js/internals/native-promise-constructor.js","webpack:///node_modules/core-js/internals/native-symbol.js","webpack:///node_modules/core-js/internals/native-weak-map.js","webpack:///node_modules/core-js/internals/new-promise-capability.js","webpack:///node_modules/core-js/internals/not-a-regexp.js","webpack:///node_modules/core-js/internals/number-is-finite.js","webpack:///node_modules/core-js/internals/number-parse-float.js","webpack:///node_modules/core-js/internals/number-parse-int.js","webpack:///node_modules/core-js/internals/object-assign.js","webpack:///node_modules/core-js/internals/object-create.js","webpack:///node_modules/core-js/internals/object-define-properties.js","webpack:///node_modules/core-js/internals/object-define-property.js","webpack:///node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///node_modules/core-js/internals/object-get-own-property-names.js","webpack:///node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///node_modules/core-js/internals/object-get-prototype-of.js","webpack:///node_modules/core-js/internals/object-keys-internal.js","webpack:///node_modules/core-js/internals/object-keys.js","webpack:///node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///node_modules/core-js/internals/object-set-prototype-of.js","webpack:///node_modules/core-js/internals/object-to-string.js","webpack:///node_modules/core-js/internals/own-keys.js","webpack:///node_modules/core-js/internals/path.js","webpack:///node_modules/core-js/internals/perform.js","webpack:///node_modules/core-js/internals/promise-resolve.js","webpack:///node_modules/core-js/internals/redefine-all.js","webpack:///node_modules/core-js/internals/redefine.js","webpack:///node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///node_modules/core-js/internals/regexp-exec.js","webpack:///node_modules/core-js/internals/regexp-flags.js","webpack:///node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///node_modules/core-js/internals/require-object-coercible.js","webpack:///node_modules/core-js/internals/same-value.js","webpack:///node_modules/core-js/internals/set-global.js","webpack:///node_modules/core-js/internals/set-species.js","webpack:///node_modules/core-js/internals/set-to-string-tag.js","webpack:///node_modules/core-js/internals/shared-key.js","webpack:///node_modules/core-js/internals/shared-store.js","webpack:///node_modules/core-js/internals/shared.js","webpack:///node_modules/core-js/internals/species-constructor.js","webpack:///node_modules/core-js/internals/string-html-forced.js","webpack:///node_modules/core-js/internals/string-multibyte.js","webpack:///node_modules/core-js/internals/string-pad.js","webpack:///node_modules/core-js/internals/string-repeat.js","webpack:///node_modules/core-js/internals/string-trim-forced.js","webpack:///node_modules/core-js/internals/string-trim.js","webpack:///node_modules/core-js/internals/task.js","webpack:///node_modules/core-js/internals/this-number-value.js","webpack:///node_modules/core-js/internals/to-absolute-index.js","webpack:///node_modules/core-js/internals/to-indexed-object.js","webpack:///node_modules/core-js/internals/to-integer.js","webpack:///node_modules/core-js/internals/to-length.js","webpack:///node_modules/core-js/internals/to-object.js","webpack:///node_modules/core-js/internals/to-primitive.js","webpack:///node_modules/core-js/internals/to-string-tag-support.js","webpack:///node_modules/core-js/internals/uid.js","webpack:///node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///node_modules/core-js/internals/well-known-symbol.js","webpack:///node_modules/core-js/internals/whitespaces.js","webpack:///node_modules/core-js/modules/es.array.concat.js","webpack:///node_modules/core-js/modules/es.array.copy-within.js","webpack:///node_modules/core-js/modules/es.array.every.js","webpack:///node_modules/core-js/modules/es.array.fill.js","webpack:///node_modules/core-js/modules/es.array.filter.js","webpack:///node_modules/core-js/modules/es.array.find-index.js","webpack:///node_modules/core-js/modules/es.array.find.js","webpack:///node_modules/core-js/modules/es.array.for-each.js","webpack:///node_modules/core-js/modules/es.array.from.js","webpack:///node_modules/core-js/modules/es.array.index-of.js","webpack:///node_modules/core-js/modules/es.array.is-array.js","webpack:///node_modules/core-js/modules/es.array.iterator.js","webpack:///node_modules/core-js/modules/es.array.join.js","webpack:///node_modules/core-js/modules/es.array.last-index-of.js","webpack:///node_modules/core-js/modules/es.array.map.js","webpack:///node_modules/core-js/modules/es.array.of.js","webpack:///node_modules/core-js/modules/es.array.reduce-right.js","webpack:///node_modules/core-js/modules/es.array.reduce.js","webpack:///node_modules/core-js/modules/es.array.slice.js","webpack:///node_modules/core-js/modules/es.array.some.js","webpack:///node_modules/core-js/modules/es.array.sort.js","webpack:///node_modules/core-js/modules/es.array.splice.js","webpack:///node_modules/core-js/modules/es.date.now.js","webpack:///node_modules/core-js/modules/es.date.to-iso-string.js","webpack:///node_modules/core-js/modules/es.date.to-json.js","webpack:///node_modules/core-js/modules/es.date.to-primitive.js","webpack:///node_modules/core-js/modules/es.date.to-string.js","webpack:///node_modules/core-js/modules/es.function.bind.js","webpack:///node_modules/core-js/modules/es.function.has-instance.js","webpack:///node_modules/core-js/modules/es.function.name.js","webpack:///node_modules/core-js/modules/es.json.to-string-tag.js","webpack:///node_modules/core-js/modules/es.map.js","webpack:///node_modules/core-js/modules/es.math.acosh.js","webpack:///node_modules/core-js/modules/es.math.asinh.js","webpack:///node_modules/core-js/modules/es.math.atanh.js","webpack:///node_modules/core-js/modules/es.math.cbrt.js","webpack:///node_modules/core-js/modules/es.math.clz32.js","webpack:///node_modules/core-js/modules/es.math.cosh.js","webpack:///node_modules/core-js/modules/es.math.expm1.js","webpack:///node_modules/core-js/modules/es.math.fround.js","webpack:///node_modules/core-js/modules/es.math.hypot.js","webpack:///node_modules/core-js/modules/es.math.imul.js","webpack:///node_modules/core-js/modules/es.math.log10.js","webpack:///node_modules/core-js/modules/es.math.log1p.js","webpack:///node_modules/core-js/modules/es.math.log2.js","webpack:///node_modules/core-js/modules/es.math.sign.js","webpack:///node_modules/core-js/modules/es.math.sinh.js","webpack:///node_modules/core-js/modules/es.math.tanh.js","webpack:///node_modules/core-js/modules/es.math.to-string-tag.js","webpack:///node_modules/core-js/modules/es.math.trunc.js","webpack:///node_modules/core-js/modules/es.number.constructor.js","webpack:///node_modules/core-js/modules/es.number.epsilon.js","webpack:///node_modules/core-js/modules/es.number.is-finite.js","webpack:///node_modules/core-js/modules/es.number.is-integer.js","webpack:///node_modules/core-js/modules/es.number.is-nan.js","webpack:///node_modules/core-js/modules/es.number.is-safe-integer.js","webpack:///node_modules/core-js/modules/es.number.max-safe-integer.js","webpack:///node_modules/core-js/modules/es.number.min-safe-integer.js","webpack:///node_modules/core-js/modules/es.number.parse-float.js","webpack:///node_modules/core-js/modules/es.number.parse-int.js","webpack:///node_modules/core-js/modules/es.number.to-fixed.js","webpack:///node_modules/core-js/modules/es.number.to-precision.js","webpack:///node_modules/core-js/modules/es.object.assign.js","webpack:///node_modules/core-js/modules/es.object.create.js","webpack:///node_modules/core-js/modules/es.object.define-properties.js","webpack:///node_modules/core-js/modules/es.object.define-property.js","webpack:///node_modules/core-js/modules/es.object.freeze.js","webpack:///node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack:///node_modules/core-js/modules/es.object.get-own-property-names.js","webpack:///node_modules/core-js/modules/es.object.get-prototype-of.js","webpack:///node_modules/core-js/modules/es.object.is-extensible.js","webpack:///node_modules/core-js/modules/es.object.is-frozen.js","webpack:///node_modules/core-js/modules/es.object.is-sealed.js","webpack:///node_modules/core-js/modules/es.object.is.js","webpack:///node_modules/core-js/modules/es.object.keys.js","webpack:///node_modules/core-js/modules/es.object.prevent-extensions.js","webpack:///node_modules/core-js/modules/es.object.seal.js","webpack:///node_modules/core-js/modules/es.object.set-prototype-of.js","webpack:///node_modules/core-js/modules/es.object.to-string.js","webpack:///node_modules/core-js/modules/es.parse-float.js","webpack:///node_modules/core-js/modules/es.parse-int.js","webpack:///node_modules/core-js/modules/es.promise.js","webpack:///node_modules/core-js/modules/es.regexp.constructor.js","webpack:///node_modules/core-js/modules/es.regexp.exec.js","webpack:///node_modules/core-js/modules/es.regexp.flags.js","webpack:///node_modules/core-js/modules/es.regexp.to-string.js","webpack:///node_modules/core-js/modules/es.set.js","webpack:///node_modules/core-js/modules/es.string.anchor.js","webpack:///node_modules/core-js/modules/es.string.big.js","webpack:///node_modules/core-js/modules/es.string.blink.js","webpack:///node_modules/core-js/modules/es.string.bold.js","webpack:///node_modules/core-js/modules/es.string.code-point-at.js","webpack:///node_modules/core-js/modules/es.string.ends-with.js","webpack:///node_modules/core-js/modules/es.string.fixed.js","webpack:///node_modules/core-js/modules/es.string.fontcolor.js","webpack:///node_modules/core-js/modules/es.string.fontsize.js","webpack:///node_modules/core-js/modules/es.string.from-code-point.js","webpack:///node_modules/core-js/modules/es.string.includes.js","webpack:///node_modules/core-js/modules/es.string.italics.js","webpack:///node_modules/core-js/modules/es.string.iterator.js","webpack:///node_modules/core-js/modules/es.string.link.js","webpack:///node_modules/core-js/modules/es.string.match.js","webpack:///node_modules/core-js/modules/es.string.raw.js","webpack:///node_modules/core-js/modules/es.string.repeat.js","webpack:///node_modules/core-js/modules/es.string.replace.js","webpack:///node_modules/core-js/modules/es.string.search.js","webpack:///node_modules/core-js/modules/es.string.small.js","webpack:///node_modules/core-js/modules/es.string.split.js","webpack:///node_modules/core-js/modules/es.string.starts-with.js","webpack:///node_modules/core-js/modules/es.string.strike.js","webpack:///node_modules/core-js/modules/es.string.sub.js","webpack:///node_modules/core-js/modules/es.string.sup.js","webpack:///node_modules/core-js/modules/es.string.trim.js","webpack:///node_modules/core-js/modules/es.symbol.async-iterator.js","webpack:///node_modules/core-js/modules/es.symbol.description.js","webpack:///node_modules/core-js/modules/es.symbol.has-instance.js","webpack:///node_modules/core-js/modules/es.symbol.is-concat-spreadable.js","webpack:///node_modules/core-js/modules/es.symbol.iterator.js","webpack:///node_modules/core-js/modules/es.symbol.js","webpack:///node_modules/core-js/modules/es.symbol.match-all.js","webpack:///node_modules/core-js/modules/es.symbol.match.js","webpack:///node_modules/core-js/modules/es.symbol.replace.js","webpack:///node_modules/core-js/modules/es.symbol.search.js","webpack:///node_modules/core-js/modules/es.symbol.species.js","webpack:///node_modules/core-js/modules/es.symbol.split.js","webpack:///node_modules/core-js/modules/es.symbol.to-primitive.js","webpack:///node_modules/core-js/modules/es.symbol.to-string-tag.js","webpack:///node_modules/core-js/modules/es.symbol.unscopables.js","webpack:///node_modules/core-js/modules/es.weak-map.js","webpack:///node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///node_modules/regenerator-runtime/runtime.js","webpack:///node_modules/zone.js/dist/zone-evergreen.js","webpack:///node_modules/zone.js/dist/zone-legacy.js","webpack:///src/polyfills.ts"],"names":["path","module","exports","Date","Math","Number","Symbol","it","TypeError","String","isObject","wellKnownSymbol","create","definePropertyModule","UNSCOPABLES","ArrayPrototype","Array","prototype","undefined","f","configurable","value","key","charAt","S","index","unicode","length","Constructor","name","toObject","toAbsoluteIndex","toLength","min","copyWithin","target","start","O","len","to","from","end","arguments","count","inc","fill","argumentsLength","endPos","$forEach","forEach","arrayMethodIsStrict","arrayMethodUsesToLength","STRICT_METHOD","USES_TO_LENGTH","callbackfn","bind","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","getIteratorMethod","arrayLike","C","mapfn","mapping","iteratorMethod","result","step","iterator","next","call","done","toIndexedObject","createMethod","IS_INCLUDES","$this","el","fromIndex","includes","indexOf","IndexedObject","arraySpeciesCreate","push","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","that","specificCreate","self","boundFunction","map","filter","some","every","find","findIndex","toInteger","nativeLastIndexOf","lastIndexOf","NEGATIVE_ZERO","ACCESSORS","FORCED","searchElement","apply","fails","V8_VERSION","SPECIES","METHOD_NAME","array","constructor","foo","Boolean","argument","method","DESCRIPTORS","has","defineProperty","Object","cache","thrower","options","argument0","argument1","enumerable","get","aFunction","IS_RIGHT","memo","i","left","right","isArray","originalArray","anObject","fn","ENTRIES","error","returnMethod","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","exec","SKIP_CLOSING","ITERATION_SUPPORT","object","toString","slice","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","CORRECT_ARGUMENTS","tryGet","tag","callee","redefineAll","anInstance","iterate","defineIterator","setSpecies","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","ADDER","iterable","type","first","last","size","getInternalState","define","state","entry","getEntry","previous","removed","clear","data","prev","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","getWeakData","ArrayIterationModule","$has","id","uncaughtFrozenStore","store","frozen","UncaughtFrozenStore","entries","findUncaughtFrozen","splice","$","global","isForced","redefine","InternalMetadataModule","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","KEY","nativeMethod","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","forced","ownKeys","getOwnPropertyDescriptorModule","source","keys","getOwnPropertyDescriptor","MATCH","regexp","e","F","getPrototypeOf","requireObjectCoercible","quot","string","attribute","p1","replace","IteratorPrototype","createPropertyDescriptor","Iterators","returnThis","IteratorConstructor","NAME","bitmap","writable","toPrimitive","propertyKey","padStart","abs","DatePrototype","getTime","nativeDateToISOString","toISOString","NaN","isFinite","RangeError","date","year","getUTCFullYear","milliseconds","getUTCMilliseconds","sign","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","hint","createIteratorConstructor","setPrototypeOf","createNonEnumerableProperty","IS_PURE","IteratorsCore","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","getIterationMethod","KIND","defaultIterator","IterablePrototype","values","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","CurrentIteratorPrototype","methods","proto","wrappedWellKnownSymbolModule","document","EXISTS","createElement","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","userAgent","test","getBuiltIn","process","versions","v8","match","version","split","setGlobal","copyConstructorProperties","TARGET","GLOBAL","STATIC","stat","targetProperty","sourceProperty","descriptor","noTargetGet","sham","regexpExec","REPLACE_SUPPORTS_NAMED_GROUPS","re","groups","a","REPLACE_KEEPS_$0","REPLACE","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","flags","nativeRegExpMethod","str","arg2","forceStringMethod","stringMethod","regexMethod","RegExp","arg","isExtensible","preventExtensions","b","c","factories","construct","argsLength","args","list","Function","join","partArgs","bound","concat","variable","namespace","classof","check","globalThis","window","hasOwnProperty","console","propertyIsEnumerable","Wrapper","NewTarget","NewTargetPrototype","functionToString","inspectSource","hiddenKeys","uid","FREEZING","METADATA","setMetadata","objectID","weakData","onFreeze","meta","NATIVE_WEAK_MAP","objectHas","sharedKey","WeakMap","enforce","wmget","wmhas","wmset","metadata","STATE","replacement","feature","detection","normalize","POLYFILL","NATIVE","toLowerCase","floor","isInteger","isRegExp","Result","stopped","AS_ENTRIES","IS_ITERATOR","iterFn","stop","PrototypeOfArrayIteratorPrototype","arrayIterator","nativeExpm1","expm1","exp","x","pow","EPSILON","EPSILON32","MAX32","MIN32","roundTiesToEven","n","fround","$abs","$sign","Infinity","log","log1p","macrotask","IS_IOS","MutationObserver","WebKitMutationObserver","Promise","IS_NODE","queueMicrotaskDescriptor","queueMicrotask","flush","head","notify","toggle","node","promise","then","parent","domain","exit","enter","nextTick","createTextNode","observe","characterData","resolve","task","getOwnPropertySymbols","PromiseCapability","reject","$$resolve","$$reject","globalIsFinite","trim","whitespaces","$parseFloat","parseFloat","trimmedString","$parseInt","parseInt","hex","radix","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","nativeAssign","assign","A","B","symbol","alphabet","chr","T","j","defineProperties","enumBugKeys","html","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","activeXDocument","write","close","temp","parentWindow","NullProtoObjectViaIFrame","iframe","JS","iframeDocument","style","display","appendChild","src","contentWindow","open","NullProtoObject","ActiveXObject","Properties","IE8_DOM_DEFINE","nativeDefineProperty","P","Attributes","nativeGetOwnPropertyDescriptor","nativeGetOwnPropertyNames","windowNames","getOwnPropertyNames","getWindowNames","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","names","nativePropertyIsEnumerable","NASHORN_BUG","V","aPossiblePrototype","CORRECT_SETTER","setter","__proto__","getOwnPropertyNamesModule","newPromiseCapability","promiseCapability","enforceInternalState","TEMPLATE","unsafe","simple","R","regexpFlags","stickyHelpers","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","lastIndex","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","PATCH","reCopy","sticky","charsAdded","strCopy","multiline","input","ignoreCase","dotAll","RE","s","is","y","TAG","shared","SHARED","mode","copyright","defaultConstructor","CONVERT_TO_STRING","pos","position","second","charCodeAt","codeAt","repeat","ceil","IS_END","maxLength","fillString","stringLength","fillStr","intMaxLength","fillLen","stringFiller","non","whitespace","ltrim","rtrim","location","setImmediate","clearImmediate","MessageChannel","Dispatch","counter","queue","ONREADYSTATECHANGE","defer","channel","port","run","runner","listener","event","post","postMessage","protocol","host","now","port2","port1","onmessage","addEventListener","importScripts","removeChild","setTimeout","max","integer","isNaN","PREFERRED_STRING","val","valueOf","postfix","random","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","k","E","addToUnscopables","$every","$filter","HAS_SPECIES_SUPPORT","$findIndex","FIND_INDEX","SKIPS_HOLES","$find","FIND","INCORRECT_ITERATION","$indexOf","nativeIndexOf","ARRAY_ITERATOR","Arguments","nativeJoin","ES3_STRINGS","separator","$map","ISNT_GENERIC","of","$reduceRight","reduceRight","$reduce","reduce","nativeSlice","fin","$some","nativeSort","sort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","comparefn","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","deleteCount","actualStart","insertCount","actualDeleteCount","toJSON","pv","dateToPrimitive","TO_PRIMITIVE","INVALID_DATE","TO_STRING","nativeDateToString","HAS_INSTANCE","FunctionPrototype","FunctionPrototypeToString","nameRE","JSON","collection","collectionStrong","init","Map","nativeAcosh","acosh","sqrt","LN2","MAX_VALUE","nativeAsinh","asinh","nativeAtanh","atanh","cbrt","LOG2E","clz32","nativeCosh","cosh","t","$hypot","hypot","BUGGY","value1","value2","sum","aLen","larg","div","nativeImul","imul","UINT16","xn","yn","xl","yl","LOG10E","log10","log2","sinh","tanh","trunc","NUMBER","NativeNumber","NumberPrototype","BROKEN_CLASSOF","toNumber","third","maxCode","digits","code","NumberWrapper","numberIsFinite","number","isSafeInteger","MIN_SAFE_INTEGER","thisNumberValue","nativeToFixed","toFixed","acc","x2","fractionDigits","fractDigits","z","multiply","c2","divide","dataToString","nativeToPrecision","toPrecision","precision","objectDefinePropertyModile","nativeFreeze","freeze","FAILS_ON_PRIMITIVES","nativeGetPrototypeOf","nativeIsExtensible","nativeIsFrozen","isFrozen","nativeIsSealed","isSealed","nativeKeys","nativePreventExtensions","nativeSeal","seal","parseFloatImplementation","parseIntImplementation","NativePromise","speciesConstructor","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","PROMISE","getInternalPromiseState","PromiseConstructor","$fetch","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","GLOBAL_CORE_JS_PROMISE","PromiseRejectionEvent","FakePromise","all","isThenable","isReject","notified","chain","reactions","ok","reaction","handler","fail","exited","rejection","onHandleUnhandled","onUnhandled","reason","initEvent","IS_UNHANDLED","isUnhandled","emit","unwrap","internalReject","internalResolve","executor","onFulfilled","onRejected","fetch","wrap","r","capability","$promiseResolve","remaining","alreadyCalled","race","getFlags","NativeRegExp","RegExpPrototype","CORRECT_NEW","RegExpWrapper","pattern","thisIsRegExp","patternIsRegExp","flagsAreUndefined","proxy","objectDefinePropertyModule","regExpFlags","nativeToString","NOT_GENERIC","INCORRECT_NAME","p","rf","Set","createHTML","forcedStringHTMLMethod","anchor","big","blink","bold","codePointAt","notARegExp","correctIsRegExpLogic","nativeEndsWith","endsWith","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","searchString","endPosition","search","fixed","fontcolor","color","fontsize","fromCharCode","nativeFromCodePoint","fromCodePoint","INCORRECT_LENGTH","elements","italics","STRING_ITERATOR","point","link","url","fixRegExpWellKnownSymbolLogic","advanceStringIndex","regExpExec","nativeMatch","maybeCallNative","matcher","res","rx","fullUnicode","matchStr","raw","template","rawTemplate","literalSegments","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","functionalReplace","results","accumulatedResult","nextSourcePosition","matched","captures","namedCaptures","replacerArgs","getSubstitution","tailPos","m","symbols","ch","capture","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","small","callRegExpExec","arrayPush","MAX_UINT32","SUPPORTS_Y","SPLIT","nativeSplit","internalSplit","limit","lim","output","lastLastIndex","separatorCopy","lastLength","splitter","unicodeMatching","q","nativeStartsWith","startsWith","strike","sub","sup","$trim","forcedStringTrimMethod","defineWellKnownSymbol","NativeSymbol","description","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","desc","nativeObjectCreate","getOwnPropertyNamesExternal","HIDDEN","$Symbol","$stringify","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","isSymbol","$defineProperty","$defineProperties","properties","$getOwnPropertySymbols","$propertyIsEnumerable","$create","$getOwnPropertyDescriptor","$getOwnPropertyNames","IS_OBJECT_PROTOTYPE","keyFor","sym","useSetter","useSimple","FORCED_JSON_STRINGIFY","stringify","space","$replacer","collectionWeak","enforceIternalState","IS_IE11","InternalWeakMap","$WeakMap","WeakMapPrototype","nativeDelete","nativeHas","nativeGet","nativeSet","DOMIterables","COLLECTION_NAME","Collection","CollectionPrototype","ArrayIteratorMethods","ArrayValues","runtime","Op","hasOwn","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","obj","err","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","displayName","defineIteratorMethods","isGeneratorFunction","genFun","ctor","mark","awrap","__await","AsyncIterator","invoke","record","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","async","iter","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","reverse","pop","skipTempReset","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","factory","Zone$1","performance","performanceMeasure","label","symbolPrefix","__symbol__","checkDuplicate","Zone","zoneSpec","_parent","_name","_properties","_zoneDelegate","ZoneDelegate","zone","getZoneWith","current","fork","callback","_callback","intercept","runGuarded","applyThis","applyArgs","_currentZoneFrame","handleError","NO_ZONE","notScheduled","eventTask","macroTask","reEntryGuard","running","_transitionTo","scheduled","runCount","previousTask","_currentTask","isPeriodic","cancelFn","invokeTask","unknown","_updateTaskCount","newZone","scheduling","zoneDelegates","_zoneDelegates","_zone","scheduleTask","customSchedule","ZoneTask","microTask","customCancel","canceling","cancelTask","patches","perfName","_api","DELEGATE_ZS","onHasTask","_","hasTaskState","hasTask","onScheduleTask","onInvokeTask","onCancelTask","parentDelegate","_taskCounts","_parentDelegate","_forkZS","onFork","_forkDlgt","_forkCurrZone","_interceptZS","onIntercept","_interceptDlgt","_interceptCurrZone","_invokeZS","onInvoke","_invokeDlgt","_invokeCurrZone","_handleErrorZS","onHandleError","_handleErrorDlgt","_handleErrorCurrZone","_scheduleTaskZS","_scheduleTaskDlgt","_scheduleTaskCurrZone","_invokeTaskZS","_invokeTaskDlgt","_invokeTaskCurrZone","_cancelTaskZS","_cancelTaskDlgt","_cancelTaskCurrZone","_hasTaskZS","_hasTaskDlgt","_hasTaskDlgtOwner","_hasTaskCurrZone","zoneSpecHasTask","parentHasTask","targetZone","returnTask","scheduleFn","scheduleMicroTask","isEmpty","counts","change","_state","useG","toState","fromState1","fromState2","handleId","_numberOfNestedTaskFrames","runTask","drainMicroTaskQueue","symbolSetTimeout","symbolPromise","symbolThen","_microTaskQueue","_isDrainingMicrotaskQueue","nativeMicroTaskQueuePromise","onUnhandledError","microtaskDrainDone","currentZoneFrame","noop","showUncaughtError","patchEventTarget","patchOnProperties","patchMethod","bindArguments","patchThen","patchMacroTask","setNativePromise","patchEventPrototype","isIEOrEdge","getGlobalObjects","ObjectDefineProperty","ObjectGetOwnPropertyDescriptor","ObjectCreate","ArraySlice","patchClass","wrapWithCurrentZone","filterProperties","attachOriginToPatched","_redefineProperty","patchCallbacks","__load_patch","api","readableObjectToString","className","_uncaughtPromiseErrors","creationTrace","message","stack","uncaughtPromiseError","shift","handleUnhandledRejection","UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL","forwardResolution","forwardRejection","ZoneAwarePromise","symbolState","symbolValue","symbolFinally","symbolParentPromiseValue","symbolParentPromiseState","UNRESOLVED","RESOLVED","REJECTED_NO_CATCH","makeResolver","v","resolvePromise","once","wasCalled","wrappedFunction","TYPE_ERROR","CURRENT_TASK_TRACE_SYMBOL","onceWrapper","clearRejectedNoCatch","trace","currentTask","scheduleResolveOrReject","REJECTION_HANDLED_HANDLER","chainPromise","promiseState","parentPromiseValue","isFinallyPromise","ZONE_AWARE_PROMISE_TO_STRING","onFinally","rej","onResolve","onReject","allWithCallback","thenCallback","status","errorCallback","unresolvedCount","valueIndex","resolvedValues","curValueIndex","thenErr","ZONE_AWARE_PROMISE","NewNativePromise","symbolThenPatched","Ctor","prop","originalThen","wrapped","zoneify","resultPromise","ObjectGetPrototypeOf","ADD_EVENT_LISTENER_STR","REMOVE_EVENT_LISTENER_STR","ZONE_SYMBOL_ADD_EVENT_LISTENER","ZONE_SYMBOL_REMOVE_EVENT_LISTENER","TRUE_STR","FALSE_STR","ZONE_SYMBOL_PREFIX","scheduleMacroTaskWithCurrentZone","scheduleMacroTask","zoneSymbol","isWindowExists","internalWindow","_global","REMOVE_ATTRIBUTE","NULL_ON_PROP_VALUE","patchPrototype","fnNames","prototypeDesc","isPropertyWritable","patched","propertyDesc","isWebWorker","WorkerGlobalScope","isNode","isBrowser","isMix","zoneSymbolEventNames","wrapFn","eventNameSymbol","errorEvent","filename","lineno","colno","preventDefault","patchProperty","onPropPatchedSymbol","originalDescGet","originalDescSet","eventName","substr","newValue","previousValue","removeEventListener","removeAttribute","onProperties","originalInstanceKey","OriginalClass","copySymbolProperties","dest","shouldCopySymbolProperties","patchFn","delegateName","patchDelegate","funcName","metaCreator","setNative","cbIdx","original","isDetectedIEOrEdge","ieOrEdge","isIE","ua","navigator","originalFunctionToString","ORIGINAL_DELEGATE_SYMBOL","PROMISE_SYMBOL","ERROR_SYMBOL","newFunctionToString","originalDelegate","nativePromise","nativeError","originalObjectToString","PROMISE_OBJECT_TO_STRING","passiveSupported","OPTIMIZED_ZONE_EVENT_TASK_DATA","zoneSymbolEventNames$1","globalSources","EVENT_NAME_SYMBOL_REGX","IMMEDIATE_PROPAGATION_SYMBOL","apis","patchOptions","ADD_EVENT_LISTENER","REMOVE_EVENT_LISTENER","rm","LISTENERS_EVENT_LISTENER","listeners","REMOVE_ALL_LISTENERS_EVENT_LISTENER","rmAll","zoneSymbolAddEventListener","ADD_EVENT_LISTENER_SOURCE","PREPEND_EVENT_LISTENER","PREPEND_EVENT_LISTENER_SOURCE","isRemoved","handleEvent","globalZoneAwareCallback","tasks","copyTasks","globalZoneAwareCaptureCallback","patchEventTargetMethods","useGlobalCallback","validateHandler","vh","chkDup","returnTarget","rt","eventNameToString","taskData","nativeAddEventListener","nativeRemoveEventListener","nativeListeners","nativeRemoveAllListeners","nativePrependEventListener","prepend","checkIsPassive","customScheduleGlobal","isExisting","customCancelGlobal","symbolEventNames","symbolEventName","existingTasks","existingTask","allRemoved","customScheduleNonGlobal","customSchedulePrepend","customCancelNonGlobal","compareTaskCallbackVsDelegate","typeOfDelegate","compare","diff","blackListedEvents","makeAddListener","nativeListener","addSource","customScheduleFn","customCancelFn","transferEventName","isHandleEvent","falseEventName","trueEventName","symbolCapture","constructorName","targetSource","scheduleEventTask","unshift","onPropertySymbol","findEventTasks","evtName","symbolCaptureEventName","captureTasks","removeTasks","foundTasks","Event","targetName","callbacks","nativeDelegate","opts","globalEventHandlersEventNames","documentEventNames","windowEventNames","htmlElementEventNames","mediaElementEventNames","ieElementEventNames","webglEventNames","formEventNames","detailEventNames","frameEventNames","frameSetEventNames","marqueeEventNames","XMLHttpRequestEventNames","IDBIndexEventNames","websocketEventNames","workerEventNames","eventNames","ignoreProperties","tip","ip","targetIgnoreProperties","op","patchFilteredProperties","filteredProperties","propertyDescriptorPatch","supportsWebSocket","WebSocket","ignoreErrorProperties","Document","Element","HTMLElement","HTMLMediaElement","HTMLFrameSetElement","HTMLBodyElement","HTMLFrameElement","HTMLIFrameElement","HTMLMarqueeElement","Worker","XMLHttpRequest","XMLHttpRequestEventTarget","IDBIndex","IDBRequest","IDBOpenDBRequest","IDBDatabase","IDBTransaction","IDBCursor","SYMBOL_BLACK_LISTED_EVENTS","SYMBOL_UNPATCHED_EVENTS","taskSymbol","patchTimer","setName","cancelName","nameSuffix","clearNative","tasksByHandleId","timer","clearTask","delay","ref","unref","patchCustomElements","customElements","eventTargetPatch","EVENT_TARGET","patchEvent","legacyPatch","blockingMethods","patchXHR","XHR_TASK","XHR_SYNC","XHR_LISTENER","XHR_SCHEDULED","XHR_URL","XHR_ERROR_BEFORE_SCHEDULED","XMLHttpRequestPrototype","findPendingTask","oriAddListener","oriRemoveListener","XMLHttpRequestEventTargetPrototype","READY_STATE_CHANGE","SCHEDULED","newListener","readyState","DONE","aborted","loadTasks","oriInvoke","storedTask","sendNative","placeholderCallback","abortNative","openNative","XMLHTTPREQUEST_SOURCE","fetchTaskAborting","fetchTaskScheduling","geolocation","findPromiseRejectionHandler","eventTasks","evt","_defineProperty","_getOwnPropertyDescriptor","_create","unconfigurablesKey","propertyPatch","isUnconfigurable","originalConfigurableFlag","rewriteDescriptor","_tryDefineProperty","props","descJson","eventTargetLegacyPatch","_a","WTF_ISSUE_555","NO_EVENT_TARGET","isWtf","WTF_ISSUE_555_ARRAY","isDisableIECheck","isEnableCrossContextCheck","FUNCTION_WRAPPER","BROWSER_TOOLS","pointerEventsMap","targets","checkIEAndCrossContext","testString","apiTypes","pointerEventName","WS","EventTarget","socket","proxySocket","proxySocketProto","onmessageDesc","propName","propertySymbol","globalWebSocket","propertyDescriptorLegacyPatch","canPatchViaPropertyDescriptor","patchViaCapturingAllTheEvents","onclick","ON_READY_STATE_CHANGE","xhrDesc","req","onreadystatechange","SYMBOL_FAKE_ONREADYSTATECHANGE_1","detectFunc","unboundKey","_loop_1","property","onproperty","elt","parentElement","registerElementPatch"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;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","file":"polyfills-es5.js","sourcesContent":["/**\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// ES2015 symbol capabilities\nimport 'core-js/es/symbol';\n\n// ES2015 function capabilities\nimport 'core-js/modules/es.function.bind';\nimport 'core-js/modules/es.function.name';\nimport 'core-js/modules/es.function.has-instance';\n\n// ES2015 object capabilities\nimport 'core-js/modules/es.object.create';\nimport 'core-js/modules/es.object.define-property';\nimport 'core-js/modules/es.object.define-properties';\nimport 'core-js/modules/es.object.get-own-property-descriptor';\nimport 'core-js/modules/es.object.get-prototype-of';\nimport 'core-js/modules/es.object.keys';\nimport 'core-js/modules/es.object.get-own-property-names';\nimport 'core-js/modules/es.object.freeze';\nimport 'core-js/modules/es.object.seal';\nimport 'core-js/modules/es.object.prevent-extensions';\nimport 'core-js/modules/es.object.is-frozen';\nimport 'core-js/modules/es.object.is-sealed';\nimport 'core-js/modules/es.object.is-extensible';\nimport 'core-js/modules/es.object.assign';\nimport 'core-js/modules/es.object.is';\nimport 'core-js/modules/es.object.set-prototype-of';\nimport 'core-js/modules/es.object.to-string';\n\n// ES2015 array capabilities\nimport 'core-js/modules/es.array.concat';\nimport 'core-js/modules/es.array.is-array';\nimport 'core-js/modules/es.array.from';\nimport 'core-js/modules/es.array.of';\nimport 'core-js/modules/es.array.join';\nimport 'core-js/modules/es.array.slice';\nimport 'core-js/modules/es.array.splice';\nimport 'core-js/modules/es.array.sort';\nimport 'core-js/modules/es.array.for-each';\nimport 'core-js/modules/es.array.map';\nimport 'core-js/modules/es.array.filter';\nimport 'core-js/modules/es.array.some';\nimport 'core-js/modules/es.array.every';\nimport 'core-js/modules/es.array.reduce';\nimport 'core-js/modules/es.array.reduce-right';\nimport 'core-js/modules/es.array.index-of';\nimport 'core-js/modules/es.array.last-index-of';\nimport 'core-js/modules/es.array.copy-within';\nimport 'core-js/modules/es.array.fill';\nimport 'core-js/modules/es.array.find';\nimport 'core-js/modules/es.array.find-index';\nimport 'core-js/modules/es.array.iterator';\n\n// ES2015 string capabilities\nimport 'core-js/modules/es.string.from-code-point';\nimport 'core-js/modules/es.string.raw';\nimport 'core-js/modules/es.string.trim';\nimport 'core-js/modules/es.string.iterator';\nimport 'core-js/modules/es.string.code-point-at';\nimport 'core-js/modules/es.string.ends-with';\nimport 'core-js/modules/es.string.includes';\nimport 'core-js/modules/es.string.repeat';\nimport 'core-js/modules/es.string.starts-with';\nimport 'core-js/modules/es.string.anchor';\nimport 'core-js/modules/es.string.big';\nimport 'core-js/modules/es.string.blink';\nimport 'core-js/modules/es.string.bold';\nimport 'core-js/modules/es.string.fixed';\nimport 'core-js/modules/es.string.fontcolor';\nimport 'core-js/modules/es.string.fontsize';\nimport 'core-js/modules/es.string.italics';\nimport 'core-js/modules/es.string.link';\nimport 'core-js/modules/es.string.small';\nimport 'core-js/modules/es.string.strike';\nimport 'core-js/modules/es.string.sub';\nimport 'core-js/modules/es.string.sup';\nimport 'core-js/modules/es.string.match';\nimport 'core-js/modules/es.string.replace';\nimport 'core-js/modules/es.string.search';\nimport 'core-js/modules/es.string.split';\n\nimport 'core-js/modules/es.parse-int';\nimport 'core-js/modules/es.parse-float';\n\nimport 'core-js/es/number';\nimport 'core-js/es/math';\nimport 'core-js/es/date';\n\nimport 'core-js/modules/es.regexp.constructor';\nimport 'core-js/modules/es.regexp.to-string';\nimport 'core-js/modules/es.regexp.flags';\n\nimport 'core-js/modules/es.map';\nimport 'core-js/modules/es.weak-map';\nimport 'core-js/modules/es.set';\nimport 'core-js/modules/web.dom-collections.for-each';\nimport 'core-js/modules/web.dom-collections.iterator';\nimport 'core-js/modules/es.promise';\nimport 'core-js/modules/es.json.to-string-tag';\n\nimport 'regenerator-runtime/runtime';","require('../../modules/es.date.now');\nrequire('../../modules/es.date.to-json');\nrequire('../../modules/es.date.to-iso-string');\nrequire('../../modules/es.date.to-string');\nrequire('../../modules/es.date.to-primitive');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Date;\n","require('../../modules/es.math.acosh');\nrequire('../../modules/es.math.asinh');\nrequire('../../modules/es.math.atanh');\nrequire('../../modules/es.math.cbrt');\nrequire('../../modules/es.math.clz32');\nrequire('../../modules/es.math.cosh');\nrequire('../../modules/es.math.expm1');\nrequire('../../modules/es.math.fround');\nrequire('../../modules/es.math.hypot');\nrequire('../../modules/es.math.imul');\nrequire('../../modules/es.math.log10');\nrequire('../../modules/es.math.log1p');\nrequire('../../modules/es.math.log2');\nrequire('../../modules/es.math.sign');\nrequire('../../modules/es.math.sinh');\nrequire('../../modules/es.math.tanh');\nrequire('../../modules/es.math.to-string-tag');\nrequire('../../modules/es.math.trunc');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math;\n","require('../../modules/es.number.constructor');\nrequire('../../modules/es.number.epsilon');\nrequire('../../modules/es.number.is-finite');\nrequire('../../modules/es.number.is-integer');\nrequire('../../modules/es.number.is-nan');\nrequire('../../modules/es.number.is-safe-integer');\nrequire('../../modules/es.number.max-safe-integer');\nrequire('../../modules/es.number.min-safe-integer');\nrequire('../../modules/es.number.parse-float');\nrequire('../../modules/es.number.parse-int');\nrequire('../../modules/es.number.to-fixed');\nrequire('../../modules/es.number.to-precision');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Number;\n","require('../../modules/es.array.concat');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.symbol');\nrequire('../../modules/es.symbol.async-iterator');\nrequire('../../modules/es.symbol.description');\nrequire('../../modules/es.symbol.has-instance');\nrequire('../../modules/es.symbol.is-concat-spreadable');\nrequire('../../modules/es.symbol.iterator');\nrequire('../../modules/es.symbol.match');\nrequire('../../modules/es.symbol.match-all');\nrequire('../../modules/es.symbol.replace');\nrequire('../../modules/es.symbol.search');\nrequire('../../modules/es.symbol.species');\nrequire('../../modules/es.symbol.split');\nrequire('../../modules/es.symbol.to-primitive');\nrequire('../../modules/es.symbol.to-string-tag');\nrequire('../../modules/es.symbol.unscopables');\nrequire('../../modules/es.math.to-string-tag');\nrequire('../../modules/es.json.to-string-tag');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Symbol;\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.copywithin\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6)\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar min = Math.min;\nvar nativeLastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\n// For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : nativeLastIndexOf;\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function (it) { throw it; };\n\nmodule.exports = function (METHOD_NAME, options) {\n if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n if (!options) options = {};\n var method = [][METHOD_NAME];\n var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n var argument0 = has(options, 0) ? options[0] : thrower;\n var argument1 = has(options, 1) ? options[1] : undefined;\n\n return cache[METHOD_NAME] = !!method && !fails(function () {\n if (ACCESSORS && !DESCRIPTORS) return true;\n var O = { length: -1 };\n\n if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });\n else O[1] = 1;\n\n method.call(O, argument0, argument1);\n });\n};\n","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar redefineAll = require('../internals/redefine-all');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar $has = require('../internals/has');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (store) {\n return store.frozen || (store.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) this.entries.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && $has(data, state.id) && delete data[state.id];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && $has(data, state.id);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return C;\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n // eslint-disable-next-line max-len\n if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n })))) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (e) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (f) { /* empty */ }\n } return false;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar quot = /\"/g;\n\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\n// https://tc39.github.io/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = String(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar padStart = require('../internals/string-pad').start;\n\nvar abs = Math.abs;\nvar DatePrototype = Date.prototype;\nvar getTime = DatePrototype.getTime;\nvar nativeDateToISOString = DatePrototype.toISOString;\n\n// `Date.prototype.toISOString` method implementation\n// https://tc39.github.io/ecma262/#sec-date.prototype.toisostring\n// PhantomJS / old WebKit fails here:\nmodule.exports = (fails(function () {\n return nativeDateToISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n nativeDateToISOString.call(new Date(NaN));\n})) ? function toISOString() {\n if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');\n var date = this;\n var year = date.getUTCFullYear();\n var milliseconds = date.getUTCMilliseconds();\n var sign = year < 0 ? '-' : year > 9999 ? '+' : '';\n return sign + padStart(abs(year), sign ? 6 : 4, 0) +\n '-' + padStart(date.getUTCMonth() + 1, 2, 0) +\n '-' + padStart(date.getUTCDate(), 2, 0) +\n 'T' + padStart(date.getUTCHours(), 2, 0) +\n ':' + padStart(date.getUTCMinutes(), 2, 0) +\n ':' + padStart(date.getUTCSeconds(), 2, 0) +\n '.' + padStart(milliseconds, 3, 0) +\n 'Z';\n} : nativeDateToISOString;\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nmodule.exports = function (hint) {\n if (hint !== 'string' && hint !== 'number' && hint !== 'default') {\n throw TypeError('Incorrect hint');\n } return toPrimitive(anObject(this), hint !== 'number');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar regexpExec = require('../internals/regexp-exec');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !(\n REPLACE_SUPPORTS_NAMED_GROUPS &&\n REPLACE_KEEPS_$0 &&\n !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n )) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n }\n\n if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar aFunction = require('../internals/a-function');\nvar isObject = require('../internals/is-object');\n\nvar slice = [].slice;\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!(argsLength in factories)) {\n for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.github.io/ecma262/#sec-function.prototype.bind\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = slice.call(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = partArgs.concat(slice.call(arguments));\n return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);\n };\n if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;\n return boundFunction;\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","module.exports = {};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + ++id, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar meta = module.exports = {\n REQUIRED: false,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var isObject = require('../internals/is-object');\n\nvar floor = Math.floor;\n\n// `Number.isInteger` method implementation\n// https://tc39.github.io/ecma262/#sec-number.isinteger\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = false;\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var nativeExpm1 = Math.expm1;\nvar exp = Math.exp;\n\n// `Math.expm1` method implementation\n// https://tc39.github.io/ecma262/#sec-math.expm1\nmodule.exports = (!nativeExpm1\n // Old FF bug\n || nativeExpm1(10) > 22025.465794806719 || nativeExpm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || nativeExpm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : exp(x) - 1;\n} : nativeExpm1;\n","var sign = require('../internals/math-sign');\n\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n return n + 1 / EPSILON - 1 / EPSILON;\n};\n\n// `Math.fround` method implementation\n// https://tc39.github.io/ecma262/#sec-math.fround\nmodule.exports = Math.fround || function fround(x) {\n var $abs = abs(x);\n var $sign = sign(x);\n var a, result;\n if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n a = (1 + EPSILON32 / EPSILON) * $abs;\n result = a - (a - $abs);\n // eslint-disable-next-line no-self-compare\n if (result > MAX32 || result != result) return $sign * Infinity;\n return $sign * result;\n};\n","var log = Math.log;\n\n// `Math.log1p` method implementation\n// https://tc39.github.io/ecma262/#sec-math.log1p\nmodule.exports = Math.log1p || function log1p(x) {\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : log(1 + x);\n};\n","// `Math.sign` method implementation\n// https://tc39.github.io/ecma262/#sec-math.sign\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar classof = require('../internals/classof-raw');\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n } else if (MutationObserver && !IS_IOS) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var global = require('../internals/global');\n\nvar globalIsFinite = global.isFinite;\n\n// `Number.isFinite` method\n// https://tc39.github.io/ecma262/#sec-number.isfinite\nmodule.exports = Number.isFinite || function isFinite(it) {\n return typeof it == 'number' && globalIsFinite(it);\n};\n","var global = require('../internals/global');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseFloat = global.parseFloat;\nvar FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity;\n\n// `parseFloat` method\n// https://tc39.github.io/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n var trimmedString = trim(String(string));\n var result = $parseFloat(trimmedString);\n return result === 0 && trimmedString.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n","var global = require('../internals/global');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar hex = /^[+-]?0[Xx]/;\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22;\n\n// `parseInt` method\n// https://tc39.github.io/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(String(string));\n return $parseInt(S, (radix >>> 0) || (hex.test(S) ? 16 : 10));\n} : $parseInt;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\nmodule.exports = !nativeAssign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","'use strict';\nvar regexpFlags = require('./regexp-flags');\nvar stickyHelpers = require('./regexp-sticky-helpers');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\n\nvar fails = require('./fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// `SameValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-samevalue\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.4',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('../internals/to-length');\nvar repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n return function ($this, maxLength, fillString) {\n var S = String(requireObjectCoercible($this));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : String(fillString);\n var intMaxLength = toLength(maxLength);\n var fillLen, stringFiller;\n if (intMaxLength <= stringLength || fillStr == '') return S;\n fillLen = intMaxLength - stringLength;\n stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return IS_END ? S + stringFiller : stringFiller + S;\n };\n};\n\nmodule.exports = {\n // `String.prototype.padStart` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.padstart\n start: createMethod(false),\n // `String.prototype.padEnd` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.padend\n end: createMethod(true)\n};\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (classof(process) == 'process') {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts && !fails(post)) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var classof = require('../internals/classof-raw');\n\n// `thisNumberValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-thisnumbervalue\nmodule.exports = function (value) {\n if (typeof value != 'number' && classof(value) != 'Number') {\n throw TypeError('Incorrect invocation');\n }\n return +value;\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n concat: function concat(arg) { // eslint-disable-line no-unused-vars\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","var $ = require('../internals/export');\nvar copyWithin = require('../internals/array-copy-within');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.copyWithin` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.copywithin\n$({ target: 'Array', proto: true }, {\n copyWithin: copyWithin\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('copyWithin');\n","'use strict';\nvar $ = require('../internals/export');\nvar $every = require('../internals/array-iteration').every;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('every');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('every');\n\n// `Array.prototype.every` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.every\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength(FIND_INDEX);\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength(FIND);\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.github.io/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\n// `Array.isArray` method\n// https://tc39.github.io/ecma262/#sec-array.isarray\n$({ target: 'Array', stat: true }, {\n isArray: isArray\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","var $ = require('../internals/export');\nvar lastIndexOf = require('../internals/array-last-index-of');\n\n// `Array.prototype.lastIndexOf` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof\n$({ target: 'Array', proto: true, forced: lastIndexOf !== [].lastIndexOf }, {\n lastIndexOf: lastIndexOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n// FF49- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('map');\n\n// `Array.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar createProperty = require('../internals/create-property');\n\nvar ISNT_GENERIC = fails(function () {\n function F() { /* empty */ }\n return !(Array.of.call(F) instanceof F);\n});\n\n// `Array.of` method\n// https://tc39.github.io/ecma262/#sec-array.of\n// WebKit Array.of isn't generic\n$({ target: 'Array', stat: true, forced: ISNT_GENERIC }, {\n of: function of(/* ...args */) {\n var index = 0;\n var argumentsLength = arguments.length;\n var result = new (typeof this == 'function' ? this : Array)(argumentsLength);\n while (argumentsLength > index) createProperty(result, index, arguments[index++]);\n result.length = argumentsLength;\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduceRight = require('../internals/array-reduce').right;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduceRight');\n// For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n\n// `Array.prototype.reduceRight` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduceright\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n\n// `Array.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('slice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/array-iteration').some;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('some');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('some');\n\n// `Array.prototype.some` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.some\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar test = [];\nvar nativeSort = test.sort;\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD;\n\n// `Array.prototype.sort` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? nativeSort.call(toObject(this))\n : nativeSort.call(toObject(this), aFunction(comparefn));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('splice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","var $ = require('../internals/export');\n\n// `Date.now` method\n// https://tc39.github.io/ecma262/#sec-date.now\n$({ target: 'Date', stat: true }, {\n now: function now() {\n return new Date().getTime();\n }\n});\n","var $ = require('../internals/export');\nvar toISOString = require('../internals/date-to-iso-string');\n\n// `Date.prototype.toISOString` method\n// https://tc39.github.io/ecma262/#sec-date.prototype.toisostring\n// PhantomJS / old WebKit has a broken implementations\n$({ target: 'Date', proto: true, forced: Date.prototype.toISOString !== toISOString }, {\n toISOString: toISOString\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar FORCED = fails(function () {\n return new Date(NaN).toJSON() !== null\n || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n});\n\n// `Date.prototype.toJSON` method\n// https://tc39.github.io/ecma262/#sec-date.prototype.tojson\n$({ target: 'Date', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars\n toJSON: function toJSON(key) {\n var O = toObject(this);\n var pv = toPrimitive(O);\n return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n }\n});\n","var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar dateToPrimitive = require('../internals/date-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar DatePrototype = Date.prototype;\n\n// `Date.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-date.prototype-@@toprimitive\nif (!(TO_PRIMITIVE in DatePrototype)) {\n createNonEnumerableProperty(DatePrototype, TO_PRIMITIVE, dateToPrimitive);\n}\n","var redefine = require('../internals/redefine');\n\nvar DatePrototype = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar nativeDateToString = DatePrototype[TO_STRING];\nvar getTime = DatePrototype.getTime;\n\n// `Date.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-date.prototype.tostring\nif (new Date(NaN) + '' != INVALID_DATE) {\n redefine(DatePrototype, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare\n return value === value ? nativeDateToString.call(this) : INVALID_DATE;\n });\n}\n","var $ = require('../internals/export');\nvar bind = require('../internals/function-bind');\n\n// `Function.prototype.bind` method\n// https://tc39.github.io/ecma262/#sec-function.prototype.bind\n$({ target: 'Function', proto: true }, {\n bind: bind\n});\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar HAS_INSTANCE = wellKnownSymbol('hasInstance');\nvar FunctionPrototype = Function.prototype;\n\n// `Function.prototype[@@hasInstance]` method\n// https://tc39.github.io/ecma262/#sec-function.prototype-@@hasinstance\nif (!(HAS_INSTANCE in FunctionPrototype)) {\n definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: function (O) {\n if (typeof this != 'function' || !isObject(O)) return false;\n if (!isObject(this.prototype)) return O instanceof this;\n // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n while (O = getPrototypeOf(O)) if (this.prototype === O) return true;\n return false;\n } });\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.github.io/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","var global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.github.io/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.github.io/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var $ = require('../internals/export');\nvar log1p = require('../internals/math-log1p');\n\nvar nativeAcosh = Math.acosh;\nvar log = Math.log;\nvar sqrt = Math.sqrt;\nvar LN2 = Math.LN2;\n\nvar FORCED = !nativeAcosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n || Math.floor(nativeAcosh(Number.MAX_VALUE)) != 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n || nativeAcosh(Infinity) != Infinity;\n\n// `Math.acosh` method\n// https://tc39.github.io/ecma262/#sec-math.acosh\n$({ target: 'Math', stat: true, forced: FORCED }, {\n acosh: function acosh(x) {\n return (x = +x) < 1 ? NaN : x > 94906265.62425156\n ? log(x) + LN2\n : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n }\n});\n","var $ = require('../internals/export');\n\nvar nativeAsinh = Math.asinh;\nvar log = Math.log;\nvar sqrt = Math.sqrt;\n\nfunction asinh(x) {\n return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : log(x + sqrt(x * x + 1));\n}\n\n// `Math.asinh` method\n// https://tc39.github.io/ecma262/#sec-math.asinh\n// Tor Browser bug: Math.asinh(0) -> -0\n$({ target: 'Math', stat: true, forced: !(nativeAsinh && 1 / nativeAsinh(0) > 0) }, {\n asinh: asinh\n});\n","var $ = require('../internals/export');\n\nvar nativeAtanh = Math.atanh;\nvar log = Math.log;\n\n// `Math.atanh` method\n// https://tc39.github.io/ecma262/#sec-math.atanh\n// Tor Browser bug: Math.atanh(-0) -> 0\n$({ target: 'Math', stat: true, forced: !(nativeAtanh && 1 / nativeAtanh(-0) < 0) }, {\n atanh: function atanh(x) {\n return (x = +x) == 0 ? x : log((1 + x) / (1 - x)) / 2;\n }\n});\n","var $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\nvar abs = Math.abs;\nvar pow = Math.pow;\n\n// `Math.cbrt` method\n// https://tc39.github.io/ecma262/#sec-math.cbrt\n$({ target: 'Math', stat: true }, {\n cbrt: function cbrt(x) {\n return sign(x = +x) * pow(abs(x), 1 / 3);\n }\n});\n","var $ = require('../internals/export');\n\nvar floor = Math.floor;\nvar log = Math.log;\nvar LOG2E = Math.LOG2E;\n\n// `Math.clz32` method\n// https://tc39.github.io/ecma262/#sec-math.clz32\n$({ target: 'Math', stat: true }, {\n clz32: function clz32(x) {\n return (x >>>= 0) ? 31 - floor(log(x + 0.5) * LOG2E) : 32;\n }\n});\n","var $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\nvar nativeCosh = Math.cosh;\nvar abs = Math.abs;\nvar E = Math.E;\n\n// `Math.cosh` method\n// https://tc39.github.io/ecma262/#sec-math.cosh\n$({ target: 'Math', stat: true, forced: !nativeCosh || nativeCosh(710) === Infinity }, {\n cosh: function cosh(x) {\n var t = expm1(abs(x) - 1) + 1;\n return (t + 1 / (t * E * E)) * (E / 2);\n }\n});\n","var $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\n// `Math.expm1` method\n// https://tc39.github.io/ecma262/#sec-math.expm1\n$({ target: 'Math', stat: true, forced: expm1 != Math.expm1 }, { expm1: expm1 });\n","var $ = require('../internals/export');\nvar fround = require('../internals/math-fround');\n\n// `Math.fround` method\n// https://tc39.github.io/ecma262/#sec-math.fround\n$({ target: 'Math', stat: true }, { fround: fround });\n","var $ = require('../internals/export');\n\nvar $hypot = Math.hypot;\nvar abs = Math.abs;\nvar sqrt = Math.sqrt;\n\n// Chrome 77 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=9546\nvar BUGGY = !!$hypot && $hypot(Infinity, NaN) !== Infinity;\n\n// `Math.hypot` method\n// https://tc39.github.io/ecma262/#sec-math.hypot\n$({ target: 'Math', stat: true, forced: BUGGY }, {\n hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * sqrt(sum);\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\n\nvar nativeImul = Math.imul;\n\nvar FORCED = fails(function () {\n return nativeImul(0xFFFFFFFF, 5) != -5 || nativeImul.length != 2;\n});\n\n// `Math.imul` method\n// https://tc39.github.io/ecma262/#sec-math.imul\n// some WebKit versions fails with big numbers, some has wrong arity\n$({ target: 'Math', stat: true, forced: FORCED }, {\n imul: function imul(x, y) {\n var UINT16 = 0xFFFF;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n","var $ = require('../internals/export');\n\nvar log = Math.log;\nvar LOG10E = Math.LOG10E;\n\n// `Math.log10` method\n// https://tc39.github.io/ecma262/#sec-math.log10\n$({ target: 'Math', stat: true }, {\n log10: function log10(x) {\n return log(x) * LOG10E;\n }\n});\n","var $ = require('../internals/export');\nvar log1p = require('../internals/math-log1p');\n\n// `Math.log1p` method\n// https://tc39.github.io/ecma262/#sec-math.log1p\n$({ target: 'Math', stat: true }, { log1p: log1p });\n","var $ = require('../internals/export');\n\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\n// `Math.log2` method\n// https://tc39.github.io/ecma262/#sec-math.log2\n$({ target: 'Math', stat: true }, {\n log2: function log2(x) {\n return log(x) / LN2;\n }\n});\n","var $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\n// `Math.sign` method\n// https://tc39.github.io/ecma262/#sec-math.sign\n$({ target: 'Math', stat: true }, {\n sign: sign\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar expm1 = require('../internals/math-expm1');\n\nvar abs = Math.abs;\nvar exp = Math.exp;\nvar E = Math.E;\n\nvar FORCED = fails(function () {\n return Math.sinh(-2e-17) != -2e-17;\n});\n\n// `Math.sinh` method\n// https://tc39.github.io/ecma262/#sec-math.sinh\n// V8 near Chromium 38 has a problem with very small numbers\n$({ target: 'Math', stat: true, forced: FORCED }, {\n sinh: function sinh(x) {\n return abs(x = +x) < 1 ? (expm1(x) - expm1(-x)) / 2 : (exp(x - 1) - exp(-x - 1)) * (E / 2);\n }\n});\n","var $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\nvar exp = Math.exp;\n\n// `Math.tanh` method\n// https://tc39.github.io/ecma262/#sec-math.tanh\n$({ target: 'Math', stat: true }, {\n tanh: function tanh(x) {\n var a = expm1(x = +x);\n var b = expm1(-x);\n return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n }\n});\n","var setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.github.io/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","var $ = require('../internals/export');\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.github.io/ecma262/#sec-math.trunc\n$({ target: 'Math', stat: true }, {\n trunc: function trunc(it) {\n return (it > 0 ? floor : ceil)(it);\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.github.io/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.github.io/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","var $ = require('../internals/export');\n\n// `Number.EPSILON` constant\n// https://tc39.github.io/ecma262/#sec-number.epsilon\n$({ target: 'Number', stat: true }, {\n EPSILON: Math.pow(2, -52)\n});\n","var $ = require('../internals/export');\nvar numberIsFinite = require('../internals/number-is-finite');\n\n// `Number.isFinite` method\n// https://tc39.github.io/ecma262/#sec-number.isfinite\n$({ target: 'Number', stat: true }, { isFinite: numberIsFinite });\n","var $ = require('../internals/export');\nvar isInteger = require('../internals/is-integer');\n\n// `Number.isInteger` method\n// https://tc39.github.io/ecma262/#sec-number.isinteger\n$({ target: 'Number', stat: true }, {\n isInteger: isInteger\n});\n","var $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.github.io/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n","var $ = require('../internals/export');\nvar isInteger = require('../internals/is-integer');\n\nvar abs = Math.abs;\n\n// `Number.isSafeInteger` method\n// https://tc39.github.io/ecma262/#sec-number.issafeinteger\n$({ target: 'Number', stat: true }, {\n isSafeInteger: function isSafeInteger(number) {\n return isInteger(number) && abs(number) <= 0x1FFFFFFFFFFFFF;\n }\n});\n","var $ = require('../internals/export');\n\n// `Number.MAX_SAFE_INTEGER` constant\n// https://tc39.github.io/ecma262/#sec-number.max_safe_integer\n$({ target: 'Number', stat: true }, {\n MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF\n});\n","var $ = require('../internals/export');\n\n// `Number.MIN_SAFE_INTEGER` constant\n// https://tc39.github.io/ecma262/#sec-number.min_safe_integer\n$({ target: 'Number', stat: true }, {\n MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF\n});\n","var $ = require('../internals/export');\nvar parseFloat = require('../internals/number-parse-float');\n\n// `Number.parseFloat` method\n// https://tc39.github.io/ecma262/#sec-number.parseFloat\n$({ target: 'Number', stat: true, forced: Number.parseFloat != parseFloat }, {\n parseFloat: parseFloat\n});\n","var $ = require('../internals/export');\nvar parseInt = require('../internals/number-parse-int');\n\n// `Number.parseInt` method\n// https://tc39.github.io/ecma262/#sec-number.parseint\n$({ target: 'Number', stat: true, forced: Number.parseInt != parseInt }, {\n parseInt: parseInt\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toInteger = require('../internals/to-integer');\nvar thisNumberValue = require('../internals/this-number-value');\nvar repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar nativeToFixed = 1.0.toFixed;\nvar floor = Math.floor;\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar FORCED = nativeToFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed.call({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.github.io/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n // eslint-disable-next-line max-statements\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toInteger(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n var multiply = function (n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n };\n\n var divide = function (n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n };\n\n var dataToString = function () {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;\n }\n } return s;\n };\n\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n result = dataToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n result = dataToString() + repeat.call('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat.call('0', fractDigits - k) + result\n : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar thisNumberValue = require('../internals/this-number-value');\n\nvar nativeToPrecision = 1.0.toPrecision;\n\nvar FORCED = fails(function () {\n // IE7-\n return nativeToPrecision.call(1, undefined) !== '1';\n}) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToPrecision.call({});\n});\n\n// `Number.prototype.toPrecision` method\n// https://tc39.github.io/ecma262/#sec-number.prototype.toprecision\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toPrecision: function toPrecision(precision) {\n return precision === undefined\n ? nativeToPrecision.call(thisNumberValue(this))\n : nativeToPrecision.call(thisNumberValue(this), precision);\n }\n});\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar create = require('../internals/object-create');\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n create: create\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperties = require('../internals/object-define-properties');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\n$({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {\n defineProperties: defineProperties\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar objectDefinePropertyModile = require('../internals/object-define-property');\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\n$({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {\n defineProperty: objectDefinePropertyModile.f\n});\n","var $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\n\nvar nativeFreeze = Object.freeze;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeFreeze(1); });\n\n// `Object.freeze` method\n// https://tc39.github.io/ecma262/#sec-object.freeze\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n freeze: function freeze(it) {\n return nativeFreeze && isObject(it) ? nativeFreeze(onFreeze(it)) : it;\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names-external').f;\n\nvar FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); });\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n getOwnPropertyNames: nativeGetOwnPropertyNames\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\n\nvar nativeIsExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeIsExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.github.io/ecma262/#sec-object.isextensible\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n isExtensible: function isExtensible(it) {\n return isObject(it) ? nativeIsExtensible ? nativeIsExtensible(it) : true : false;\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\n\nvar nativeIsFrozen = Object.isFrozen;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeIsFrozen(1); });\n\n// `Object.isFrozen` method\n// https://tc39.github.io/ecma262/#sec-object.isfrozen\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n isFrozen: function isFrozen(it) {\n return isObject(it) ? nativeIsFrozen ? nativeIsFrozen(it) : false : true;\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\n\nvar nativeIsSealed = Object.isSealed;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeIsSealed(1); });\n\n// `Object.isSealed` method\n// https://tc39.github.io/ecma262/#sec-object.issealed\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n isSealed: function isSealed(it) {\n return isObject(it) ? nativeIsSealed ? nativeIsSealed(it) : false : true;\n }\n});\n","var $ = require('../internals/export');\nvar is = require('../internals/same-value');\n\n// `Object.is` method\n// https://tc39.github.io/ecma262/#sec-object.is\n$({ target: 'Object', stat: true }, {\n is: is\n});\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","var $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\n\nvar nativePreventExtensions = Object.preventExtensions;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativePreventExtensions(1); });\n\n// `Object.preventExtensions` method\n// https://tc39.github.io/ecma262/#sec-object.preventextensions\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n preventExtensions: function preventExtensions(it) {\n return nativePreventExtensions && isObject(it) ? nativePreventExtensions(onFreeze(it)) : it;\n }\n});\n","var $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\n\nvar nativeSeal = Object.seal;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeSeal(1); });\n\n// `Object.seal` method\n// https://tc39.github.io/ecma262/#sec-object.seal\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n seal: function seal(it) {\n return nativeSeal && isObject(it) ? nativeSeal(onFreeze(it)) : it;\n }\n});\n","var $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n setPrototypeOf: setPrototypeOf\n});\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var $ = require('../internals/export');\nvar parseFloatImplementation = require('../internals/number-parse-float');\n\n// `parseFloat` method\n// https://tc39.github.io/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat != parseFloatImplementation }, {\n parseFloat: parseFloatImplementation\n});\n","var $ = require('../internals/export');\nvar parseIntImplementation = require('../internals/number-parse-int');\n\n// `parseInt` method\n// https://tc39.github.io/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt != parseIntImplementation }, {\n parseInt: parseIntImplementation\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar classof = require('../internals/classof-raw');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(promise, state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (handler = global['on' + name]) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n task.call(global, function () {\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n task.call(global, function () {\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n return function (value) {\n fn(promise, state, value, unwrap);\n };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, promise, wrapper, state),\n bind(internalReject, promise, wrapper, state)\n );\n } catch (error) {\n internalReject(promise, wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(promise, state, false);\n }\n } catch (error) {\n internalReject(promise, { done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n } catch (error) {\n internalReject(this, state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(this, state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, promise, state);\n this.reject = bind(internalReject, promise, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.github.io/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.github.io/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.github.io/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.github.io/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isRegExp = require('../internals/is-regexp');\nvar getFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar setInternalState = require('../internals/internal-state').set;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar FORCED = DESCRIPTORS && isForced('RegExp', (!CORRECT_NEW || UNSUPPORTED_Y || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n})));\n\n// `RegExp` constructor\n// https://tc39.github.io/ecma262/#sec-regexp-constructor\nif (FORCED) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = this instanceof RegExpWrapper;\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var sticky;\n\n if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) {\n return pattern;\n }\n\n if (CORRECT_NEW) {\n if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source;\n } else if (pattern instanceof RegExpWrapper) {\n if (flagsAreUndefined) flags = getFlags.call(pattern);\n pattern = pattern.source;\n }\n\n if (UNSUPPORTED_Y) {\n sticky = !!flags && flags.indexOf('y') > -1;\n if (sticky) flags = flags.replace(/y/g, '');\n }\n\n var result = inheritIfRequired(\n CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags),\n thisIsRegExp ? this : RegExpPrototype,\n RegExpWrapper\n );\n\n if (UNSUPPORTED_Y && sticky) setInternalState(result, { sticky: sticky });\n\n return result;\n };\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n var keys = getOwnPropertyNames(NativeRegExp);\n var index = 0;\n while (keys.length > index) proxy(keys[index++]);\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.github.io/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectDefinePropertyModule = require('../internals/object-define-property');\nvar regExpFlags = require('../internals/regexp-flags');\nvar UNSUPPORTED_Y = require('../internals/regexp-sticky-helpers').UNSUPPORTED_Y;\n\n// `RegExp.prototype.flags` getter\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nif (DESCRIPTORS && (/./g.flags != 'g' || UNSUPPORTED_Y)) {\n objectDefinePropertyModule.f(RegExp.prototype, 'flags', {\n configurable: true,\n get: regExpFlags\n });\n}\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.github.io/ecma262/#sec-set-objects\nmodule.exports = collection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.anchor` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.anchor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, {\n anchor: function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.big` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.big\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('big') }, {\n big: function big() {\n return createHTML(this, 'big', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.blink` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.blink\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('blink') }, {\n blink: function blink() {\n return createHTML(this, 'blink', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.bold` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.bold\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('bold') }, {\n bold: function bold() {\n return createHTML(this, 'b', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar codeAt = require('../internals/string-multibyte').codeAt;\n\n// `String.prototype.codePointAt` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n$({ target: 'String', proto: true }, {\n codePointAt: function codePointAt(pos) {\n return codeAt(this, pos);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar nativeEndsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return nativeEndsWith\n ? nativeEndsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fontcolor` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.fontcolor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontcolor') }, {\n fontcolor: function fontcolor(color) {\n return createHTML(this, 'font', 'color', color);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fontsize` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.fontsize\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontsize') }, {\n fontsize: function fontsize(size) {\n return createHTML(this, 'font', 'size', size);\n }\n});\n","var $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar fromCharCode = String.fromCharCode;\nvar nativeFromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\nvar INCORRECT_LENGTH = !!nativeFromCodePoint && nativeFromCodePoint.length != 1;\n\n// `String.fromCodePoint` method\n// https://tc39.github.io/ecma262/#sec-string.fromcodepoint\n$({ target: 'String', stat: true, forced: INCORRECT_LENGTH }, {\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n var elements = [];\n var length = arguments.length;\n var i = 0;\n var code;\n while (length > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw RangeError(code + ' is not a valid code point');\n elements.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00)\n );\n } return elements.join('');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.italics` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.italics\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('italics') }, {\n italics: function italics() {\n return createHTML(this, 'i', '', '');\n }\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","var $ = require('../internals/export');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `String.raw` method\n// https://tc39.github.io/ecma262/#sec-string.raw\n$({ target: 'String', stat: true }, {\n raw: function raw(template) {\n var rawTemplate = toIndexedObject(template.raw);\n var literalSegments = toLength(rawTemplate.length);\n var argumentsLength = arguments.length;\n var elements = [];\n var i = 0;\n while (literalSegments > i) {\n elements.push(String(rawTemplate[i++]));\n if (i < argumentsLength) elements.push(String(arguments[i]));\n } return elements.join('');\n }\n});\n","var $ = require('../internals/export');\nvar repeat = require('../internals/string-repeat');\n\n// `String.prototype.repeat` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\n$({ target: 'String', proto: true }, {\n repeat: repeat\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : regexp[SEARCH];\n return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative(nativeSearch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SUPPORTS_Y);\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar nativeStartsWith = ''.startsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return nativeStartsWith\n ? nativeStartsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.strike` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.strike\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('strike') }, {\n strike: function strike() {\n return createHTML(this, 'strike', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.sub` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.sub\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sub') }, {\n sub: function sub() {\n return createHTML(this, 'sub', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.sup` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.sup\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sup') }, {\n sup: function sup() {\n return createHTML(this, 'sup', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","// `Symbol.prototype.description` getter\n// https://tc39.github.io/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.hasInstance` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.hasinstance\ndefineWellKnownSymbol('hasInstance');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.isconcatspreadable\ndefineWellKnownSymbol('isConcatSpreadable');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar isSymbol = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPrimitive(P, true);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPrimitive(V, true);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPrimitive(P, true);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.github.io/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.github.io/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = String(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.github.io/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.github.io/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.github.io/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return $stringify.apply(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.matchAll` well-known symbol\ndefineWellKnownSymbol('matchAll');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.match` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.match\ndefineWellKnownSymbol('match');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.replace` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.replace\ndefineWellKnownSymbol('replace');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.search` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.search\ndefineWellKnownSymbol('search');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.species` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.split` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.split\ndefineWellKnownSymbol('split');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.unscopables` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.unscopables\ndefineWellKnownSymbol('unscopables');\n","'use strict';\nvar global = require('../internals/global');\nvar redefineAll = require('../internals/redefine-all');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar enforceIternalState = require('../internals/internal-state').enforce;\nvar NATIVE_WEAK_MAP = require('../internals/native-weak-map');\n\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar isExtensible = Object.isExtensible;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n return function WeakMap() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n};\n\n// `WeakMap` constructor\n// https://tc39.github.io/ecma262/#sec-weakmap-constructor\nvar $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak);\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n InternalMetadataModule.REQUIRED = true;\n var WeakMapPrototype = $WeakMap.prototype;\n var nativeDelete = WeakMapPrototype['delete'];\n var nativeHas = WeakMapPrototype.has;\n var nativeGet = WeakMapPrototype.get;\n var nativeSet = WeakMapPrototype.set;\n redefineAll(WeakMapPrototype, {\n 'delete': function (key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeDelete.call(this, key) || state.frozen['delete'](key);\n } return nativeDelete.call(this, key);\n },\n has: function has(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas.call(this, key) || state.frozen.has(key);\n } return nativeHas.call(this, key);\n },\n get: function get(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key);\n } return nativeGet.call(this, key);\n },\n set: function set(key, value) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value);\n } else nativeSet.call(this, key, value);\n return this;\n }\n });\n}\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","/**\n * @license Angular v0.10.2\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n\n(function (factory) {\n typeof define === 'function' && define.amd ? define(factory) :\n factory();\n}(function () { '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 const Zone$1 = (function (global) {\n const performance = global['performance'];\n function mark(name) { performance && performance['mark'] && performance['mark'](name); }\n function performanceMeasure(name, label) {\n performance && performance['measure'] && performance['measure'](name, label);\n }\n mark('Zone');\n // Initialize before it's accessed below.\n // __Zone_symbol_prefix global can be used to override the default zone\n // symbol prefix with a custom one if needed.\n const symbolPrefix = global['__Zone_symbol_prefix'] || '__zone_symbol__';\n function __symbol__(name) { return symbolPrefix + name; }\n const checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true;\n if (global['Zone']) {\n // if global['Zone'] already exists (maybe zone.js was already loaded or\n // some other lib also registered a global object named Zone), we may need\n // to throw an error, but sometimes user may not want this error.\n // For example,\n // we have two web pages, page1 includes zone.js, page2 doesn't.\n // and the 1st time user load page1 and page2, everything work fine,\n // but when user load page2 again, error occurs because global['Zone'] already exists.\n // so we add a flag to let user choose whether to throw this error or not.\n // By default, if existing Zone is from zone.js, we will not throw the error.\n if (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function') {\n throw new Error('Zone already loaded.');\n }\n else {\n return global['Zone'];\n }\n }\n class Zone {\n constructor(parent, zoneSpec) {\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = zoneSpec && zoneSpec.properties || {};\n this._zoneDelegate =\n new ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n static assertZonePatched() {\n if (global['Promise'] !== patches['ZoneAwarePromise']) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n 'has been overwritten.\\n' +\n 'Most likely cause is that a Promise polyfill has been loaded ' +\n 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n 'If you must load one, do so before loading zone.js.)');\n }\n }\n static get root() {\n let zone = Zone.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n }\n static get current() { return _currentZoneFrame.zone; }\n static get currentTask() { return _currentTask; }\n // tslint:disable-next-line:require-internal-with-underscore\n static __load_patch(name, fn) {\n if (patches.hasOwnProperty(name)) {\n if (checkDuplicate) {\n throw Error('Already loaded patch: ' + name);\n }\n }\n else if (!global['__Zone_disable_' + name]) {\n const perfName = 'Zone:' + name;\n mark(perfName);\n patches[name] = fn(global, Zone, _api);\n performanceMeasure(perfName, perfName);\n }\n }\n get parent() { return this._parent; }\n get name() { return this._name; }\n get(key) {\n const zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n }\n getZoneWith(key) {\n let current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n }\n fork(zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n }\n wrap(callback, source) {\n if (typeof callback !== 'function') {\n throw new Error('Expecting function got: ' + callback);\n }\n const _callback = this._zoneDelegate.intercept(this, callback, source);\n const zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n }\n run(callback, applyThis, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n }\n runGuarded(callback, applyThis = null, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n }\n runTask(task, applyThis, applyArgs) {\n if (task.zone != this) {\n throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n }\n // https://github.com/angular/zone.js/issues/778, sometimes eventTask\n // will run in notScheduled(canceled) state, we should not try to\n // run such kind of task but just return\n if (task.state === notScheduled && (task.type === eventTask || task.type === macroTask)) {\n return;\n }\n const reEntryGuard = task.state != running;\n reEntryGuard && task._transitionTo(running, scheduled);\n task.runCount++;\n const previousTask = _currentTask;\n _currentTask = task;\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n if (task.type == macroTask && task.data && !task.data.isPeriodic) {\n task.cancelFn = undefined;\n }\n try {\n return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n // if the task's state is notScheduled or unknown, then it has already been cancelled\n // we should not reset the state to scheduled\n if (task.state !== notScheduled && task.state !== unknown) {\n if (task.type == eventTask || (task.data && task.data.isPeriodic)) {\n reEntryGuard && task._transitionTo(scheduled, running);\n }\n else {\n task.runCount = 0;\n this._updateTaskCount(task, -1);\n reEntryGuard &&\n task._transitionTo(notScheduled, running, notScheduled);\n }\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n }\n scheduleTask(task) {\n if (task.zone && task.zone !== this) {\n // check if the task was rescheduled, the newZone\n // should not be the children of the original zone\n let newZone = this;\n while (newZone) {\n if (newZone === task.zone) {\n throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${task.zone.name}`);\n }\n newZone = newZone.parent;\n }\n }\n task._transitionTo(scheduling, notScheduled);\n const zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task._zone = this;\n try {\n task = this._zoneDelegate.scheduleTask(this, task);\n }\n catch (err) {\n // should set task's state to unknown when scheduleTask throw error\n // because the err may from reschedule, so the fromState maybe notScheduled\n task._transitionTo(unknown, scheduling, notScheduled);\n // TODO: @JiaLiPassion, should we check the result from handleError?\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n }\n scheduleMicroTask(source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined));\n }\n scheduleMacroTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n }\n scheduleEventTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n }\n cancelTask(task) {\n if (task.zone != this)\n throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n task._transitionTo(canceling, scheduled, running);\n try {\n this._zoneDelegate.cancelTask(this, task);\n }\n catch (err) {\n // if error occurs when cancelTask, transit the state to unknown\n task._transitionTo(unknown, canceling);\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = 0;\n return task;\n }\n _updateTaskCount(task, count) {\n const zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (let i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n }\n }\n // tslint:disable-next-line:require-internal-with-underscore\n Zone.__symbol__ = __symbol__;\n const DELEGATE_ZS = {\n name: '',\n onHasTask: (delegate, _, target, hasTaskState) => delegate.hasTask(target, hasTaskState),\n onScheduleTask: (delegate, _, target, task) => delegate.scheduleTask(target, task),\n onInvokeTask: (delegate, _, target, task, applyThis, applyArgs) => delegate.invokeTask(target, task, applyThis, applyArgs),\n onCancelTask: (delegate, _, target, task) => delegate.cancelTask(target, task)\n };\n class ZoneDelegate {\n constructor(zone, parentDelegate, zoneSpec) {\n this._taskCounts = { 'microTask': 0, 'macroTask': 0, 'eventTask': 0 };\n this.zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS =\n zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone =\n zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate._forkCurrZone);\n this._interceptZS =\n zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt =\n zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone =\n zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate._interceptCurrZone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt =\n zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone =\n zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate._invokeCurrZone);\n this._handleErrorZS =\n zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt = zoneSpec &&\n (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone =\n zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate._handleErrorCurrZone);\n this._scheduleTaskZS =\n zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt = zoneSpec &&\n (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone = zoneSpec &&\n (zoneSpec.onScheduleTask ? this.zone : parentDelegate._scheduleTaskCurrZone);\n this._invokeTaskZS =\n zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt =\n zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone =\n zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate._invokeTaskCurrZone);\n this._cancelTaskZS =\n zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt =\n zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone =\n zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate._cancelTaskCurrZone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n const zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n const parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this.zone;\n }\n }\n }\n fork(targetZone, zoneSpec) {\n return this._forkZS ?\n this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) :\n new Zone(targetZone, zoneSpec);\n }\n intercept(targetZone, callback, source) {\n return this._interceptZS ?\n this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) :\n callback;\n }\n invoke(targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS ?\n this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) :\n callback.apply(applyThis, applyArgs);\n }\n handleError(targetZone, error) {\n return this._handleErrorZS ?\n this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) :\n true;\n }\n scheduleTask(targetZone, task) {\n let returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n // clang-format off\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n // clang-format on\n if (!returnTask)\n returnTask = task;\n }\n else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n }\n else if (task.type == microTask) {\n scheduleMicroTask(task);\n }\n else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n }\n invokeTask(targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS ?\n this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) :\n task.callback.apply(applyThis, applyArgs);\n }\n cancelTask(targetZone, task) {\n let value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n }\n else {\n if (!task.cancelFn) {\n throw Error('Task is not cancelable');\n }\n value = task.cancelFn(task);\n }\n return value;\n }\n hasTask(targetZone, isEmpty) {\n // hasTask should not throw error so other ZoneDelegate\n // can still trigger hasTask callback\n try {\n this._hasTaskZS &&\n this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n }\n catch (err) {\n this.handleError(targetZone, err);\n }\n }\n // tslint:disable-next-line:require-internal-with-underscore\n _updateTaskCount(type, count) {\n const counts = this._taskCounts;\n const prev = counts[type];\n const next = counts[type] = prev + count;\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n const isEmpty = {\n microTask: counts['microTask'] > 0,\n macroTask: counts['macroTask'] > 0,\n eventTask: counts['eventTask'] > 0,\n change: type\n };\n this.hasTask(this.zone, isEmpty);\n }\n }\n }\n class ZoneTask {\n constructor(type, source, callback, options, scheduleFn, cancelFn) {\n // tslint:disable-next-line:require-internal-with-underscore\n this._zone = null;\n this.runCount = 0;\n // tslint:disable-next-line:require-internal-with-underscore\n this._zoneDelegates = null;\n // tslint:disable-next-line:require-internal-with-underscore\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n if (!callback) {\n throw new Error('callback is not defined');\n }\n this.callback = callback;\n const self = this;\n // TODO: @JiaLiPassion options should have interface\n if (type === eventTask && options && options.useG) {\n this.invoke = ZoneTask.invokeTask;\n }\n else {\n this.invoke = function () {\n return ZoneTask.invokeTask.call(global, self, this, arguments);\n };\n }\n }\n static invokeTask(task, target, args) {\n if (!task) {\n task = this;\n }\n _numberOfNestedTaskFrames++;\n try {\n task.runCount++;\n return task.zone.runTask(task, target, args);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n }\n get zone() { return this._zone; }\n get state() { return this._state; }\n cancelScheduleRequest() { this._transitionTo(notScheduled, scheduling); }\n // tslint:disable-next-line:require-internal-with-underscore\n _transitionTo(toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n }\n else {\n throw new Error(`${this.type} '${this.source}': can not transition to '${toState}', expecting state '${fromState1}'${fromState2 ? ' or \\'' + fromState2 + '\\'' : ''}, was '${this._state}'.`);\n }\n }\n toString() {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId.toString();\n }\n else {\n return Object.prototype.toString.call(this);\n }\n }\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n toJSON() {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n zone: this.zone.name,\n runCount: this.runCount\n };\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// MICROTASK QUEUE\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n const symbolSetTimeout = __symbol__('setTimeout');\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n let _microTaskQueue = [];\n let _isDrainingMicrotaskQueue = false;\n let nativeMicroTaskQueuePromise;\n function scheduleMicroTask(task) {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n if (!nativeMicroTaskQueuePromise) {\n if (global[symbolPromise]) {\n nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0);\n }\n }\n if (nativeMicroTaskQueuePromise) {\n let nativeThen = nativeMicroTaskQueuePromise[symbolThen];\n if (!nativeThen) {\n // native Promise is not patchable, we need to use `then` directly\n // issue 1078\n nativeThen = nativeMicroTaskQueuePromise['then'];\n }\n nativeThen.call(nativeMicroTaskQueuePromise, drainMicroTaskQueue);\n }\n else {\n global[symbolSetTimeout](drainMicroTaskQueue, 0);\n }\n }\n task && _microTaskQueue.push(task);\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n const queue = _microTaskQueue;\n _microTaskQueue = [];\n for (let i = 0; i < queue.length; i++) {\n const task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n }\n catch (error) {\n _api.onUnhandledError(error);\n }\n }\n }\n _api.microtaskDrainDone();\n _isDrainingMicrotaskQueue = false;\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// BOOTSTRAP\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n const NO_ZONE = { name: 'NO ZONE' };\n const notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';\n const microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n const patches = {};\n const _api = {\n symbol: __symbol__,\n currentZoneFrame: () => _currentZoneFrame,\n onUnhandledError: noop,\n microtaskDrainDone: noop,\n scheduleMicroTask: scheduleMicroTask,\n showUncaughtError: () => !Zone[__symbol__('ignoreConsoleErrorUncaughtError')],\n patchEventTarget: () => [],\n patchOnProperties: noop,\n patchMethod: () => noop,\n bindArguments: () => [],\n patchThen: () => noop,\n patchMacroTask: () => noop,\n setNativePromise: (NativePromise) => {\n // sometimes NativePromise.resolve static function\n // is not ready yet, (such as core-js/es6.promise)\n // so we need to check here.\n if (NativePromise && typeof NativePromise.resolve === 'function') {\n nativeMicroTaskQueuePromise = NativePromise.resolve(0);\n }\n },\n patchEventPrototype: () => noop,\n isIEOrEdge: () => false,\n getGlobalObjects: () => undefined,\n ObjectDefineProperty: () => noop,\n ObjectGetOwnPropertyDescriptor: () => undefined,\n ObjectCreate: () => undefined,\n ArraySlice: () => [],\n patchClass: () => noop,\n wrapWithCurrentZone: () => noop,\n filterProperties: () => [],\n attachOriginToPatched: () => noop,\n _redefineProperty: () => noop,\n patchCallbacks: () => noop\n };\n let _currentZoneFrame = { parent: null, zone: new Zone(null, null) };\n let _currentTask = null;\n let _numberOfNestedTaskFrames = 0;\n function noop() { }\n performanceMeasure('Zone', 'Zone');\n return global['Zone'] = Zone;\n })(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global);\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 Zone.__load_patch('ZoneAwarePromise', (global, Zone, api) => {\n const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n const ObjectDefineProperty = Object.defineProperty;\n function readableObjectToString(obj) {\n if (obj && obj.toString === Object.prototype.toString) {\n const className = obj.constructor && obj.constructor.name;\n return (className ? className : '') + ': ' + JSON.stringify(obj);\n }\n return obj ? obj.toString() : Object.prototype.toString.call(obj);\n }\n const __symbol__ = api.symbol;\n const _uncaughtPromiseErrors = [];\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n const creationTrace = '__creationTrace__';\n api.onUnhandledError = (e) => {\n if (api.showUncaughtError()) {\n const rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n }\n else {\n console.error(e);\n }\n }\n };\n api.microtaskDrainDone = () => {\n while (_uncaughtPromiseErrors.length) {\n while (_uncaughtPromiseErrors.length) {\n const uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(() => { throw uncaughtPromiseError; });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n }\n }\n };\n const UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler');\n function handleUnhandledRejection(e) {\n api.onUnhandledError(e);\n try {\n const handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL];\n if (handler && typeof handler === 'function') {\n handler.call(this, e);\n }\n }\n catch (err) {\n }\n }\n function isThenable(value) { return value && value.then; }\n function forwardResolution(value) { return value; }\n function forwardRejection(rejection) { return ZoneAwarePromise.reject(rejection); }\n const symbolState = __symbol__('state');\n const symbolValue = __symbol__('value');\n const symbolFinally = __symbol__('finally');\n const symbolParentPromiseValue = __symbol__('parentPromiseValue');\n const symbolParentPromiseState = __symbol__('parentPromiseState');\n const source = 'Promise.then';\n const UNRESOLVED = null;\n const RESOLVED = true;\n const REJECTED = false;\n const REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return (v) => {\n try {\n resolvePromise(promise, state, v);\n }\n catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n const once = function () {\n let wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n const TYPE_ERROR = 'Promise resolved with itself';\n const CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace');\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n const onceWrapper = once();\n if (promise === value) {\n throw new TypeError(TYPE_ERROR);\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n let then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(() => { resolvePromise(promise, false, err); })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED && value instanceof ZoneAwarePromise &&\n value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) &&\n value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n }\n else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false)));\n }\n catch (err) {\n onceWrapper(() => { resolvePromise(promise, false, err); })();\n }\n }\n else {\n promise[symbolState] = state;\n const queue = promise[symbolValue];\n promise[symbolValue] = value;\n if (promise[symbolFinally] === symbolFinally) {\n // the promise is generated by Promise.prototype.finally\n if (state === RESOLVED) {\n // the state is resolved, should ignore the value\n // and use parent promise value\n promise[symbolState] = promise[symbolParentPromiseState];\n promise[symbolValue] = promise[symbolParentPromiseValue];\n }\n }\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n // check if longStackTraceZone is here\n const trace = Zone.currentTask && Zone.currentTask.data &&\n Zone.currentTask.data[creationTrace];\n if (trace) {\n // only keep the long stack trace into error when in longStackTraceZone\n ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { configurable: true, enumerable: false, writable: true, value: trace });\n }\n }\n for (let i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n try {\n // try to print more readable error log\n throw new Error('Uncaught (in promise): ' + readableObjectToString(value) +\n (value && value.stack ? '\\n' + value.stack : ''));\n }\n catch (err) {\n const error = err;\n error.rejection = value;\n error.promise = promise;\n error.zone = Zone.current;\n error.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(error);\n api.scheduleMicroTask(); // to make sure that it is running\n }\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n const REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler');\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n const handler = Zone[REJECTION_HANDLED_HANDLER];\n if (handler && typeof handler === 'function') {\n handler.call(this, { rejection: promise[symbolValue], promise: promise });\n }\n }\n catch (err) {\n }\n promise[symbolState] = REJECTED;\n for (let i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n const promiseState = promise[symbolState];\n const delegate = promiseState ?\n (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution :\n (typeof onRejected === 'function') ? onRejected : forwardRejection;\n zone.scheduleMicroTask(source, () => {\n try {\n const parentPromiseValue = promise[symbolValue];\n const isFinallyPromise = !!chainPromise && symbolFinally === chainPromise[symbolFinally];\n if (isFinallyPromise) {\n // if the promise is generated from finally call, keep parent promise's state and value\n chainPromise[symbolParentPromiseValue] = parentPromiseValue;\n chainPromise[symbolParentPromiseState] = promiseState;\n }\n // should not pass value to finally callback\n const value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ?\n [] :\n [parentPromiseValue]);\n resolvePromise(chainPromise, true, value);\n }\n catch (error) {\n // if error occurs, should always return this error\n resolvePromise(chainPromise, false, error);\n }\n }, chainPromise);\n }\n const ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }';\n class ZoneAwarePromise {\n constructor(executor) {\n const promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n executor && executor(makeResolver(promise, RESOLVED), makeResolver(promise, REJECTED));\n }\n catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n static toString() { return ZONE_AWARE_PROMISE_TO_STRING; }\n static resolve(value) {\n return resolvePromise(new this(null), RESOLVED, value);\n }\n static reject(error) {\n return resolvePromise(new this(null), REJECTED, error);\n }\n static race(values) {\n let resolve;\n let reject;\n let promise = new this((res, rej) => {\n resolve = res;\n reject = rej;\n });\n function onResolve(value) { resolve(value); }\n function onReject(error) { reject(error); }\n for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n return promise;\n }\n static all(values) { return ZoneAwarePromise.allWithCallback(values); }\n static allSettled(values) {\n const P = this && this.prototype instanceof ZoneAwarePromise ? this : ZoneAwarePromise;\n return P.allWithCallback(values, {\n thenCallback: (value) => ({ status: 'fulfilled', value }),\n errorCallback: (err) => ({ status: 'rejected', reason: err })\n });\n }\n static allWithCallback(values, callback) {\n let resolve;\n let reject;\n let promise = new this((res, rej) => {\n resolve = res;\n reject = rej;\n });\n // Start at 2 to prevent prematurely resolving if .then is called immediately.\n let unresolvedCount = 2;\n let valueIndex = 0;\n const resolvedValues = [];\n for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n const curValueIndex = valueIndex;\n try {\n value.then((value) => {\n resolvedValues[curValueIndex] = callback ? callback.thenCallback(value) : value;\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }, (err) => {\n if (!callback) {\n reject(err);\n }\n else {\n resolvedValues[curValueIndex] = callback.errorCallback(err);\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }\n });\n }\n catch (thenErr) {\n reject(thenErr);\n }\n unresolvedCount++;\n valueIndex++;\n }\n // Make the unresolvedCount zero-based again.\n unresolvedCount -= 2;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n return promise;\n }\n get [Symbol.toStringTag]() { return 'Promise'; }\n then(onFulfilled, onRejected) {\n const chainPromise = new this.constructor(null);\n const zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n }\n catch(onRejected) {\n return this.then(null, onRejected);\n }\n finally(onFinally) {\n const chainPromise = new this.constructor(null);\n chainPromise[symbolFinally] = symbolFinally;\n const zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFinally, onFinally);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally);\n }\n return chainPromise;\n }\n }\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n const NativePromise = global[symbolPromise] = global['Promise'];\n const ZONE_AWARE_PROMISE = Zone.__symbol__('ZoneAwarePromise');\n let desc = ObjectGetOwnPropertyDescriptor(global, 'Promise');\n if (!desc || desc.configurable) {\n desc && delete desc.writable;\n desc && delete desc.value;\n if (!desc) {\n desc = { configurable: true, enumerable: true };\n }\n desc.get = function () {\n // if we already set ZoneAwarePromise, use patched one\n // otherwise return native one.\n return global[ZONE_AWARE_PROMISE] ? global[ZONE_AWARE_PROMISE] : global[symbolPromise];\n };\n desc.set = function (NewNativePromise) {\n if (NewNativePromise === ZoneAwarePromise) {\n // if the NewNativePromise is ZoneAwarePromise\n // save to global\n global[ZONE_AWARE_PROMISE] = NewNativePromise;\n }\n else {\n // if the NewNativePromise is not ZoneAwarePromise\n // for example: after load zone.js, some library just\n // set es6-promise to global, if we set it to global\n // directly, assertZonePatched will fail and angular\n // will not loaded, so we just set the NewNativePromise\n // to global[symbolPromise], so the result is just like\n // we load ES6 Promise before zone.js\n global[symbolPromise] = NewNativePromise;\n if (!NewNativePromise.prototype[symbolThen]) {\n patchThen(NewNativePromise);\n }\n api.setNativePromise(NewNativePromise);\n }\n };\n ObjectDefineProperty(global, 'Promise', desc);\n }\n global['Promise'] = ZoneAwarePromise;\n const symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n const proto = Ctor.prototype;\n const prop = ObjectGetOwnPropertyDescriptor(proto, 'then');\n if (prop && (prop.writable === false || !prop.configurable)) {\n // check Ctor.prototype.then propertyDescriptor is writable or not\n // in meteor env, writable is false, we should ignore such case\n return;\n }\n const originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n const wrapped = new ZoneAwarePromise((resolve, reject) => { originalThen.call(this, resolve, reject); });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n api.patchThen = patchThen;\n function zoneify(fn) {\n return function () {\n let resultPromise = fn.apply(this, arguments);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n let ctor = resultPromise.constructor;\n if (!ctor[symbolThenPatched]) {\n patchThen(ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n const fetch = global['fetch'];\n if (typeof fetch == 'function') {\n global[api.symbol('fetch')] = fetch;\n global['fetch'] = zoneify(fetch);\n }\n }\n // This is not part of public API, but it is useful for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n return ZoneAwarePromise;\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 * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis,missingRequire}\n */\n /// \n // issue #989, to reduce bundle size, use short name\n /** Object.getOwnPropertyDescriptor */\n const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n /** Object.defineProperty */\n const ObjectDefineProperty = Object.defineProperty;\n /** Object.getPrototypeOf */\n const ObjectGetPrototypeOf = Object.getPrototypeOf;\n /** Object.create */\n const ObjectCreate = Object.create;\n /** Array.prototype.slice */\n const ArraySlice = Array.prototype.slice;\n /** addEventListener string const */\n const ADD_EVENT_LISTENER_STR = 'addEventListener';\n /** removeEventListener string const */\n const REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\n /** zoneSymbol addEventListener */\n const ZONE_SYMBOL_ADD_EVENT_LISTENER = Zone.__symbol__(ADD_EVENT_LISTENER_STR);\n /** zoneSymbol removeEventListener */\n const ZONE_SYMBOL_REMOVE_EVENT_LISTENER = Zone.__symbol__(REMOVE_EVENT_LISTENER_STR);\n /** true string const */\n const TRUE_STR = 'true';\n /** false string const */\n const FALSE_STR = 'false';\n /** Zone symbol prefix string const. */\n const ZONE_SYMBOL_PREFIX = Zone.__symbol__('');\n function wrapWithCurrentZone(callback, source) {\n return Zone.current.wrap(callback, source);\n }\n function scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) {\n return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel);\n }\n const zoneSymbol = Zone.__symbol__;\n const isWindowExists = typeof window !== 'undefined';\n const internalWindow = isWindowExists ? window : undefined;\n const _global = isWindowExists && internalWindow || typeof self === 'object' && self || global;\n const REMOVE_ATTRIBUTE = 'removeAttribute';\n const NULL_ON_PROP_VALUE = [null];\n function bindArguments(args, source) {\n for (let i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = wrapWithCurrentZone(args[i], source + '_' + i);\n }\n }\n return args;\n }\n function patchPrototype(prototype, fnNames) {\n const source = prototype.constructor['name'];\n for (let i = 0; i < fnNames.length; i++) {\n const name = fnNames[i];\n const delegate = prototype[name];\n if (delegate) {\n const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name);\n if (!isPropertyWritable(prototypeDesc)) {\n continue;\n }\n prototype[name] = ((delegate) => {\n const patched = function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name));\n };\n attachOriginToPatched(patched, delegate);\n return patched;\n })(delegate);\n }\n }\n }\n function isPropertyWritable(propertyDesc) {\n if (!propertyDesc) {\n return true;\n }\n if (propertyDesc.writable === false) {\n return false;\n }\n return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined');\n }\n const isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope);\n // Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n // this code.\n const isNode = (!('nw' in _global) && typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]');\n const isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']);\n // we are in electron of nw, so we are both browser and nodejs\n // Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n // this code.\n const isMix = typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]' && !isWebWorker &&\n !!(isWindowExists && internalWindow['HTMLElement']);\n const zoneSymbolEventNames = {};\n const wrapFn = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n let eventNameSymbol = zoneSymbolEventNames[event.type];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames[event.type] = zoneSymbol('ON_PROPERTY' + event.type);\n }\n const target = this || event.target || _global;\n const listener = target[eventNameSymbol];\n let result;\n if (isBrowser && target === internalWindow && event.type === 'error') {\n // window.onerror have different signiture\n // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror\n // and onerror callback will prevent default when callback return true\n const errorEvent = event;\n result = listener &&\n listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error);\n if (result === true) {\n event.preventDefault();\n }\n }\n else {\n result = listener && listener.apply(this, arguments);\n if (result != undefined && !result) {\n event.preventDefault();\n }\n }\n return result;\n };\n function patchProperty(obj, prop, prototype) {\n let desc = ObjectGetOwnPropertyDescriptor(obj, prop);\n if (!desc && prototype) {\n // when patch window object, use prototype to check prop exist or not\n const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop);\n if (prototypeDesc) {\n desc = { enumerable: true, configurable: true };\n }\n }\n // if the descriptor not exists or is not configurable\n // just return\n if (!desc || !desc.configurable) {\n return;\n }\n const onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched');\n if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) {\n return;\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n const originalDescGet = desc.get;\n const originalDescSet = desc.set;\n // substr(2) cuz 'onclick' -> 'click', etc\n const eventName = prop.substr(2);\n let eventNameSymbol = zoneSymbolEventNames[eventName];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames[eventName] = zoneSymbol('ON_PROPERTY' + eventName);\n }\n desc.set = function (newValue) {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return;\n }\n let previousValue = target[eventNameSymbol];\n if (previousValue) {\n target.removeEventListener(eventName, wrapFn);\n }\n // issue #978, when onload handler was added before loading zone.js\n // we should remove it with originalDescSet\n if (originalDescSet) {\n originalDescSet.apply(target, NULL_ON_PROP_VALUE);\n }\n if (typeof newValue === 'function') {\n target[eventNameSymbol] = newValue;\n target.addEventListener(eventName, wrapFn, false);\n }\n else {\n target[eventNameSymbol] = null;\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return null;\n }\n const listener = target[eventNameSymbol];\n if (listener) {\n return listener;\n }\n else if (originalDescGet) {\n // result will be null when use inline event attribute,\n // such as \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n let value = originalDescGet && originalDescGet.call(this);\n if (value) {\n desc.set.call(this, value);\n if (typeof target[REMOVE_ATTRIBUTE] === 'function') {\n target.removeAttribute(prop);\n }\n return value;\n }\n }\n return null;\n };\n ObjectDefineProperty(obj, prop, desc);\n obj[onPropPatchedSymbol] = true;\n }\n function patchOnProperties(obj, properties, prototype) {\n if (properties) {\n for (let i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i], prototype);\n }\n }\n else {\n const onProperties = [];\n for (const prop in obj) {\n if (prop.substr(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (let j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j], prototype);\n }\n }\n }\n const originalInstanceKey = zoneSymbol('originalInstance');\n // wrap some native API on `window`\n function patchClass(className) {\n const OriginalClass = _global[className];\n if (!OriginalClass)\n return;\n // keep original class in global\n _global[zoneSymbol(className)] = OriginalClass;\n _global[className] = function () {\n const a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n // attach original delegate to patched function\n attachOriginToPatched(_global[className], OriginalClass);\n const instance = new OriginalClass(function () { });\n let prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n }\n else {\n ObjectDefineProperty(_global[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop);\n // keep callback in wrapped function so we can\n // use it in Function.prototype.toString to return\n // the native one.\n attachOriginToPatched(this[originalInstanceKey][prop], fn);\n }\n else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () { return this[originalInstanceKey][prop]; }\n });\n }\n }(prop));\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global[className][prop] = OriginalClass[prop];\n }\n }\n }\n function copySymbolProperties(src, dest) {\n if (typeof Object.getOwnPropertySymbols !== 'function') {\n return;\n }\n const symbols = Object.getOwnPropertySymbols(src);\n symbols.forEach((symbol) => {\n const desc = Object.getOwnPropertyDescriptor(src, symbol);\n Object.defineProperty(dest, symbol, {\n get: function () { return src[symbol]; },\n set: function (value) {\n if (desc && (!desc.writable || typeof desc.set !== 'function')) {\n // if src[symbol] is not writable or not have a setter, just return\n return;\n }\n src[symbol] = value;\n },\n enumerable: desc ? desc.enumerable : true,\n configurable: desc ? desc.configurable : true\n });\n });\n }\n let shouldCopySymbolProperties = false;\n function patchMethod(target, name, patchFn) {\n let proto = target;\n while (proto && !proto.hasOwnProperty(name)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n const delegateName = zoneSymbol(name);\n let delegate = null;\n if (proto && !(delegate = proto[delegateName])) {\n delegate = proto[delegateName] = proto[name];\n // check whether proto[name] is writable\n // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob\n const desc = proto && ObjectGetOwnPropertyDescriptor(proto, name);\n if (isPropertyWritable(desc)) {\n const patchDelegate = patchFn(delegate, delegateName, name);\n proto[name] = function () { return patchDelegate(this, arguments); };\n attachOriginToPatched(proto[name], delegate);\n if (shouldCopySymbolProperties) {\n copySymbolProperties(delegate, proto[name]);\n }\n }\n }\n return delegate;\n }\n // TODO: @JiaLiPassion, support cancel task later if necessary\n function patchMacroTask(obj, funcName, metaCreator) {\n let setNative = null;\n function scheduleTask(task) {\n const data = task.data;\n data.args[data.cbIdx] = function () { task.invoke.apply(this, arguments); };\n setNative.apply(data.target, data.args);\n return task;\n }\n setNative = patchMethod(obj, funcName, (delegate) => function (self, args) {\n const meta = metaCreator(self, args);\n if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') {\n return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask);\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(self, args);\n }\n });\n }\n function attachOriginToPatched(patched, original) {\n patched[zoneSymbol('OriginalDelegate')] = original;\n }\n let isDetectedIEOrEdge = false;\n let ieOrEdge = false;\n function isIE() {\n try {\n const ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) {\n return true;\n }\n }\n catch (error) {\n }\n return false;\n }\n function isIEOrEdge() {\n if (isDetectedIEOrEdge) {\n return ieOrEdge;\n }\n isDetectedIEOrEdge = true;\n try {\n const ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) {\n ieOrEdge = true;\n }\n }\n catch (error) {\n }\n return ieOrEdge;\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 // override Function.prototype.toString to make zone.js patched function\n // look like native function\n Zone.__load_patch('toString', (global) => {\n // patch Func.prototype.toString to let them look like native\n const originalFunctionToString = Function.prototype.toString;\n const ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate');\n const PROMISE_SYMBOL = zoneSymbol('Promise');\n const ERROR_SYMBOL = zoneSymbol('Error');\n const newFunctionToString = function toString() {\n if (typeof this === 'function') {\n const originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL];\n if (originalDelegate) {\n if (typeof originalDelegate === 'function') {\n return originalFunctionToString.call(originalDelegate);\n }\n else {\n return Object.prototype.toString.call(originalDelegate);\n }\n }\n if (this === Promise) {\n const nativePromise = global[PROMISE_SYMBOL];\n if (nativePromise) {\n return originalFunctionToString.call(nativePromise);\n }\n }\n if (this === Error) {\n const nativeError = global[ERROR_SYMBOL];\n if (nativeError) {\n return originalFunctionToString.call(nativeError);\n }\n }\n }\n return originalFunctionToString.call(this);\n };\n newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString;\n Function.prototype.toString = newFunctionToString;\n // patch Object.prototype.toString to let them look like native\n const originalObjectToString = Object.prototype.toString;\n const PROMISE_OBJECT_TO_STRING = '[object Promise]';\n Object.prototype.toString = function () {\n if (this instanceof Promise) {\n return PROMISE_OBJECT_TO_STRING;\n }\n return originalObjectToString.call(this);\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 let passiveSupported = false;\n if (typeof window !== 'undefined') {\n try {\n const options = Object.defineProperty({}, 'passive', { get: function () { passiveSupported = true; } });\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n }\n // an identifier to tell ZoneTask do not create a new invoke closure\n const OPTIMIZED_ZONE_EVENT_TASK_DATA = {\n useG: true\n };\n const zoneSymbolEventNames$1 = {};\n const globalSources = {};\n const EVENT_NAME_SYMBOL_REGX = new RegExp('^' + ZONE_SYMBOL_PREFIX + '(\\\\w+)(true|false)$');\n const IMMEDIATE_PROPAGATION_SYMBOL = zoneSymbol('propagationStopped');\n function patchEventTarget(_global, apis, patchOptions) {\n const ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR;\n const REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR;\n const LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners';\n const REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners';\n const zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER);\n const ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':';\n const PREPEND_EVENT_LISTENER = 'prependListener';\n const PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':';\n const invokeTask = function (task, target, event) {\n // for better performance, check isRemoved which is set\n // by removeEventListener\n if (task.isRemoved) {\n return;\n }\n const delegate = task.callback;\n if (typeof delegate === 'object' && delegate.handleEvent) {\n // create the bind version of handleEvent when invoke\n task.callback = (event) => delegate.handleEvent(event);\n task.originalDelegate = delegate;\n }\n // invoke static task.invoke\n task.invoke(task, target, [event]);\n const options = task.options;\n if (options && typeof options === 'object' && options.once) {\n // if options.once is true, after invoke once remove listener here\n // only browser need to do this, nodejs eventEmitter will cal removeListener\n // inside EventEmitter.once\n const delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate, options);\n }\n };\n // global shared zoneAwareCallback to handle all event callback with capture = false\n const globalZoneAwareCallback = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n const target = this || event.target || _global;\n const tasks = target[zoneSymbolEventNames$1[event.type][FALSE_STR]];\n if (tasks) {\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n invokeTask(tasks[0], target, event);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n const copyTasks = tasks.slice();\n for (let i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n invokeTask(copyTasks[i], target, event);\n }\n }\n }\n };\n // global shared zoneAwareCallback to handle all event callback with capture = true\n const globalZoneAwareCaptureCallback = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n const target = this || event.target || _global;\n const tasks = target[zoneSymbolEventNames$1[event.type][TRUE_STR]];\n if (tasks) {\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n invokeTask(tasks[0], target, event);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n const copyTasks = tasks.slice();\n for (let i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n invokeTask(copyTasks[i], target, event);\n }\n }\n }\n };\n function patchEventTargetMethods(obj, patchOptions) {\n if (!obj) {\n return false;\n }\n let useGlobalCallback = true;\n if (patchOptions && patchOptions.useG !== undefined) {\n useGlobalCallback = patchOptions.useG;\n }\n const validateHandler = patchOptions && patchOptions.vh;\n let checkDuplicate = true;\n if (patchOptions && patchOptions.chkDup !== undefined) {\n checkDuplicate = patchOptions.chkDup;\n }\n let returnTarget = false;\n if (patchOptions && patchOptions.rt !== undefined) {\n returnTarget = patchOptions.rt;\n }\n let proto = obj;\n while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && obj[ADD_EVENT_LISTENER]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = obj;\n }\n if (!proto) {\n return false;\n }\n if (proto[zoneSymbolAddEventListener]) {\n return false;\n }\n const eventNameToString = patchOptions && patchOptions.eventNameToString;\n // a shared global taskData to pass data for scheduleEventTask\n // so we do not need to create a new object just for pass some data\n const taskData = {};\n const nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER];\n const nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] =\n proto[REMOVE_EVENT_LISTENER];\n const nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] =\n proto[LISTENERS_EVENT_LISTENER];\n const nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] =\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER];\n let nativePrependEventListener;\n if (patchOptions && patchOptions.prepend) {\n nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] =\n proto[patchOptions.prepend];\n }\n function checkIsPassive(task) {\n if (!passiveSupported && typeof taskData.options !== 'boolean' &&\n typeof taskData.options !== 'undefined' && taskData.options !== null) {\n // options is a non-null non-undefined object\n // passive is not supported\n // don't pass options as object\n // just pass capture as a boolean\n task.options = !!taskData.options.capture;\n taskData.options = task.options;\n }\n }\n const customScheduleGlobal = function (task) {\n // if there is already a task for the eventName + capture,\n // just return, because we use the shared globalZoneAwareCallback here.\n if (taskData.isExisting) {\n return;\n }\n checkIsPassive(task);\n return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options);\n };\n const customCancelGlobal = function (task) {\n // if task is not marked as isRemoved, this call is directly\n // from Zone.prototype.cancelTask, we should remove the task\n // from tasksList of target first\n if (!task.isRemoved) {\n const symbolEventNames = zoneSymbolEventNames$1[task.eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && task.target[symbolEventName];\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const existingTask = existingTasks[i];\n if (existingTask === task) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n task.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n task.allRemoved = true;\n task.target[symbolEventName] = null;\n }\n break;\n }\n }\n }\n }\n // if all tasks for the eventName + capture have gone,\n // we will really remove the global event callback,\n // if not, return\n if (!task.allRemoved) {\n return;\n }\n return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options);\n };\n const customScheduleNonGlobal = function (task) {\n checkIsPassive(task);\n return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customSchedulePrepend = function (task) {\n return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customCancelNonGlobal = function (task) {\n return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options);\n };\n const customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal;\n const customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal;\n const compareTaskCallbackVsDelegate = function (task, delegate) {\n const typeOfDelegate = typeof delegate;\n return (typeOfDelegate === 'function' && task.callback === delegate) ||\n (typeOfDelegate === 'object' && task.originalDelegate === delegate);\n };\n const compare = (patchOptions && patchOptions.diff) ? patchOptions.diff : compareTaskCallbackVsDelegate;\n const blackListedEvents = Zone[zoneSymbol('BLACK_LISTED_EVENTS')];\n const makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget = false, prepend = false) {\n return function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n let delegate = arguments[1];\n if (!delegate) {\n return nativeListener.apply(this, arguments);\n }\n if (isNode && eventName === 'uncaughtException') {\n // don't patch uncaughtException of nodejs to prevent endless loop\n return nativeListener.apply(this, arguments);\n }\n // don't create the bind delegate function for handleEvent\n // case here to improve addEventListener performance\n // we will create the bind delegate when invoke\n let isHandleEvent = false;\n if (typeof delegate !== 'function') {\n if (!delegate.handleEvent) {\n return nativeListener.apply(this, arguments);\n }\n isHandleEvent = true;\n }\n if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) {\n return;\n }\n const options = arguments[2];\n if (blackListedEvents) {\n // check black list\n for (let i = 0; i < blackListedEvents.length; i++) {\n if (eventName === blackListedEvents[i]) {\n return nativeListener.apply(this, arguments);\n }\n }\n }\n let capture;\n let once = false;\n if (options === undefined) {\n capture = false;\n }\n else if (options === true) {\n capture = true;\n }\n else if (options === false) {\n capture = false;\n }\n else {\n capture = options ? !!options.capture : false;\n once = options ? !!options.once : false;\n }\n const zone = Zone.current;\n const symbolEventNames = zoneSymbolEventNames$1[eventName];\n let symbolEventName;\n if (!symbolEventNames) {\n // the code is duplicate, but I just want to get some better performance\n const falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR;\n const trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames$1[eventName] = {};\n zoneSymbolEventNames$1[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames$1[eventName][TRUE_STR] = symbolCapture;\n symbolEventName = capture ? symbolCapture : symbol;\n }\n else {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n let existingTasks = target[symbolEventName];\n let isExisting = false;\n if (existingTasks) {\n // already have task registered\n isExisting = true;\n if (checkDuplicate) {\n for (let i = 0; i < existingTasks.length; i++) {\n if (compare(existingTasks[i], delegate)) {\n // same callback, same capture, same event name, just return\n return;\n }\n }\n }\n }\n else {\n existingTasks = target[symbolEventName] = [];\n }\n let source;\n const constructorName = target.constructor['name'];\n const targetSource = globalSources[constructorName];\n if (targetSource) {\n source = targetSource[eventName];\n }\n if (!source) {\n source = constructorName + addSource +\n (eventNameToString ? eventNameToString(eventName) : eventName);\n }\n // do not create a new object as task.data to pass those things\n // just use the global shared one\n taskData.options = options;\n if (once) {\n // if addEventListener with once options, we don't pass it to\n // native addEventListener, instead we keep the once setting\n // and handle ourselves.\n taskData.options.once = false;\n }\n taskData.target = target;\n taskData.capture = capture;\n taskData.eventName = eventName;\n taskData.isExisting = isExisting;\n const data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined;\n // keep taskData into data to allow onScheduleEventTask to access the task information\n if (data) {\n data.taskData = taskData;\n }\n const task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn);\n // should clear taskData.target to avoid memory leak\n // issue, https://github.com/angular/angular/issues/20442\n taskData.target = null;\n // need to clear up taskData because it is a global object\n if (data) {\n data.taskData = null;\n }\n // have to save those information to task in case\n // application may call task.zone.cancelTask() directly\n if (once) {\n options.once = true;\n }\n if (!(!passiveSupported && typeof task.options === 'boolean')) {\n // if not support passive, and we pass an option object\n // to addEventListener, we should save the options to task\n task.options = options;\n }\n task.target = target;\n task.capture = capture;\n task.eventName = eventName;\n if (isHandleEvent) {\n // save original delegate for compare to check duplicate\n task.originalDelegate = delegate;\n }\n if (!prepend) {\n existingTasks.push(task);\n }\n else {\n existingTasks.unshift(task);\n }\n if (returnTarget) {\n return target;\n }\n };\n };\n proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget);\n if (nativePrependEventListener) {\n proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true);\n }\n proto[REMOVE_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const options = arguments[2];\n let capture;\n if (options === undefined) {\n capture = false;\n }\n else if (options === true) {\n capture = true;\n }\n else if (options === false) {\n capture = false;\n }\n else {\n capture = options ? !!options.capture : false;\n }\n const delegate = arguments[1];\n if (!delegate) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (validateHandler &&\n !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) {\n return;\n }\n const symbolEventNames = zoneSymbolEventNames$1[eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && target[symbolEventName];\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const existingTask = existingTasks[i];\n if (compare(existingTask, delegate)) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n existingTask.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n existingTask.allRemoved = true;\n target[symbolEventName] = null;\n // in the target, we have an event listener which is added by on_property\n // such as target.onclick = function() {}, so we need to clear this internal\n // property too if all delegates all removed\n if (typeof eventName === 'string') {\n const onPropertySymbol = ZONE_SYMBOL_PREFIX + 'ON_PROPERTY' + eventName;\n target[onPropertySymbol] = null;\n }\n }\n existingTask.zone.cancelTask(existingTask);\n if (returnTarget) {\n return target;\n }\n return;\n }\n }\n }\n // issue 930, didn't find the event name or callback\n // from zone kept existingTasks, the callback maybe\n // added outside of zone, we need to call native removeEventListener\n // to try to remove it.\n return nativeRemoveEventListener.apply(this, arguments);\n };\n proto[LISTENERS_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const listeners = [];\n const tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName);\n for (let i = 0; i < tasks.length; i++) {\n const task = tasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n listeners.push(delegate);\n }\n return listeners;\n };\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (!eventName) {\n const keys = Object.keys(target);\n for (let i = 0; i < keys.length; i++) {\n const prop = keys[i];\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let evtName = match && match[1];\n // in nodejs EventEmitter, removeListener event is\n // used for monitoring the removeListener call,\n // so just keep removeListener eventListener until\n // all other eventListeners are removed\n if (evtName && evtName !== 'removeListener') {\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName);\n }\n }\n // remove removeListener listener finally\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener');\n }\n else {\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const symbolEventNames = zoneSymbolEventNames$1[eventName];\n if (symbolEventNames) {\n const symbolEventName = symbolEventNames[FALSE_STR];\n const symbolCaptureEventName = symbolEventNames[TRUE_STR];\n const tasks = target[symbolEventName];\n const captureTasks = target[symbolCaptureEventName];\n if (tasks) {\n const removeTasks = tasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n if (captureTasks) {\n const removeTasks = captureTasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n }\n }\n if (returnTarget) {\n return this;\n }\n };\n // for native toString patch\n attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener);\n attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener);\n if (nativeRemoveAllListeners) {\n attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners);\n }\n if (nativeListeners) {\n attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners);\n }\n return true;\n }\n let results = [];\n for (let i = 0; i < apis.length; i++) {\n results[i] = patchEventTargetMethods(apis[i], patchOptions);\n }\n return results;\n }\n function findEventTasks(target, eventName) {\n const foundTasks = [];\n for (let prop in target) {\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let evtName = match && match[1];\n if (evtName && (!eventName || evtName === eventName)) {\n const tasks = target[prop];\n if (tasks) {\n for (let i = 0; i < tasks.length; i++) {\n foundTasks.push(tasks[i]);\n }\n }\n }\n }\n return foundTasks;\n }\n function patchEventPrototype(global, api) {\n const Event = global['Event'];\n if (Event && Event.prototype) {\n api.patchMethod(Event.prototype, 'stopImmediatePropagation', (delegate) => function (self, args) {\n self[IMMEDIATE_PROPAGATION_SYMBOL] = true;\n // we need to call the native stopImmediatePropagation\n // in case in some hybrid application, some part of\n // application will be controlled by zone, some are not\n delegate && delegate.apply(self, args);\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 function patchCallbacks(api, target, targetName, method, callbacks) {\n const symbol = Zone.__symbol__(method);\n if (target[symbol]) {\n return;\n }\n const nativeDelegate = target[symbol] = target[method];\n target[method] = function (name, opts, options) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n const source = `${targetName}.${method}::` + callback;\n const prototype = opts.prototype;\n if (prototype.hasOwnProperty(callback)) {\n const descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = api.wrapWithCurrentZone(descriptor.value, source);\n api._redefineProperty(opts.prototype, callback, descriptor);\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n });\n }\n return nativeDelegate.call(target, name, opts, options);\n };\n api.attachOriginToPatched(target[method], nativeDelegate);\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 globalEventHandlersEventNames = [\n 'abort',\n 'animationcancel',\n 'animationend',\n 'animationiteration',\n 'auxclick',\n 'beforeinput',\n 'blur',\n 'cancel',\n 'canplay',\n 'canplaythrough',\n 'change',\n 'compositionstart',\n 'compositionupdate',\n 'compositionend',\n 'cuechange',\n 'click',\n 'close',\n 'contextmenu',\n 'curechange',\n 'dblclick',\n 'drag',\n 'dragend',\n 'dragenter',\n 'dragexit',\n 'dragleave',\n 'dragover',\n 'drop',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'focus',\n 'focusin',\n 'focusout',\n 'gotpointercapture',\n 'input',\n 'invalid',\n 'keydown',\n 'keypress',\n 'keyup',\n 'load',\n 'loadstart',\n 'loadeddata',\n 'loadedmetadata',\n 'lostpointercapture',\n 'mousedown',\n 'mouseenter',\n 'mouseleave',\n 'mousemove',\n 'mouseout',\n 'mouseover',\n 'mouseup',\n 'mousewheel',\n 'orientationchange',\n 'pause',\n 'play',\n 'playing',\n 'pointercancel',\n 'pointerdown',\n 'pointerenter',\n 'pointerleave',\n 'pointerlockchange',\n 'mozpointerlockchange',\n 'webkitpointerlockerchange',\n 'pointerlockerror',\n 'mozpointerlockerror',\n 'webkitpointerlockerror',\n 'pointermove',\n 'pointout',\n 'pointerover',\n 'pointerup',\n 'progress',\n 'ratechange',\n 'reset',\n 'resize',\n 'scroll',\n 'seeked',\n 'seeking',\n 'select',\n 'selectionchange',\n 'selectstart',\n 'show',\n 'sort',\n 'stalled',\n 'submit',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'touchcancel',\n 'touchmove',\n 'touchstart',\n 'touchend',\n 'transitioncancel',\n 'transitionend',\n 'waiting',\n 'wheel'\n ];\n const documentEventNames = [\n 'afterscriptexecute', 'beforescriptexecute', 'DOMContentLoaded', 'freeze', 'fullscreenchange',\n 'mozfullscreenchange', 'webkitfullscreenchange', 'msfullscreenchange', 'fullscreenerror',\n 'mozfullscreenerror', 'webkitfullscreenerror', 'msfullscreenerror', 'readystatechange',\n 'visibilitychange', 'resume'\n ];\n const windowEventNames = [\n 'absolutedeviceorientation',\n 'afterinput',\n 'afterprint',\n 'appinstalled',\n 'beforeinstallprompt',\n 'beforeprint',\n 'beforeunload',\n 'devicelight',\n 'devicemotion',\n 'deviceorientation',\n 'deviceorientationabsolute',\n 'deviceproximity',\n 'hashchange',\n 'languagechange',\n 'message',\n 'mozbeforepaint',\n 'offline',\n 'online',\n 'paint',\n 'pageshow',\n 'pagehide',\n 'popstate',\n 'rejectionhandled',\n 'storage',\n 'unhandledrejection',\n 'unload',\n 'userproximity',\n 'vrdisplyconnected',\n 'vrdisplaydisconnected',\n 'vrdisplaypresentchange'\n ];\n const htmlElementEventNames = [\n 'beforecopy', 'beforecut', 'beforepaste', 'copy', 'cut', 'paste', 'dragstart', 'loadend',\n 'animationstart', 'search', 'transitionrun', 'transitionstart', 'webkitanimationend',\n 'webkitanimationiteration', 'webkitanimationstart', 'webkittransitionend'\n ];\n const mediaElementEventNames = ['encrypted', 'waitingforkey', 'msneedkey', 'mozinterruptbegin', 'mozinterruptend'];\n const ieElementEventNames = [\n 'activate',\n 'afterupdate',\n 'ariarequest',\n 'beforeactivate',\n 'beforedeactivate',\n 'beforeeditfocus',\n 'beforeupdate',\n 'cellchange',\n 'controlselect',\n 'dataavailable',\n 'datasetchanged',\n 'datasetcomplete',\n 'errorupdate',\n 'filterchange',\n 'layoutcomplete',\n 'losecapture',\n 'move',\n 'moveend',\n 'movestart',\n 'propertychange',\n 'resizeend',\n 'resizestart',\n 'rowenter',\n 'rowexit',\n 'rowsdelete',\n 'rowsinserted',\n 'command',\n 'compassneedscalibration',\n 'deactivate',\n 'help',\n 'mscontentzoom',\n 'msmanipulationstatechanged',\n 'msgesturechange',\n 'msgesturedoubletap',\n 'msgestureend',\n 'msgesturehold',\n 'msgesturestart',\n 'msgesturetap',\n 'msgotpointercapture',\n 'msinertiastart',\n 'mslostpointercapture',\n 'mspointercancel',\n 'mspointerdown',\n 'mspointerenter',\n 'mspointerhover',\n 'mspointerleave',\n 'mspointermove',\n 'mspointerout',\n 'mspointerover',\n 'mspointerup',\n 'pointerout',\n 'mssitemodejumplistitemremoved',\n 'msthumbnailclick',\n 'stop',\n 'storagecommit'\n ];\n const webglEventNames = ['webglcontextrestored', 'webglcontextlost', 'webglcontextcreationerror'];\n const formEventNames = ['autocomplete', 'autocompleteerror'];\n const detailEventNames = ['toggle'];\n const frameEventNames = ['load'];\n const frameSetEventNames = ['blur', 'error', 'focus', 'load', 'resize', 'scroll', 'messageerror'];\n const marqueeEventNames = ['bounce', 'finish', 'start'];\n const XMLHttpRequestEventNames = [\n 'loadstart', 'progress', 'abort', 'error', 'load', 'progress', 'timeout', 'loadend',\n 'readystatechange'\n ];\n const IDBIndexEventNames = ['upgradeneeded', 'complete', 'abort', 'success', 'error', 'blocked', 'versionchange', 'close'];\n const websocketEventNames = ['close', 'error', 'open', 'message'];\n const workerEventNames = ['error', 'message'];\n const eventNames = globalEventHandlersEventNames.concat(webglEventNames, formEventNames, detailEventNames, documentEventNames, windowEventNames, htmlElementEventNames, ieElementEventNames);\n function filterProperties(target, onProperties, ignoreProperties) {\n if (!ignoreProperties || ignoreProperties.length === 0) {\n return onProperties;\n }\n const tip = ignoreProperties.filter(ip => ip.target === target);\n if (!tip || tip.length === 0) {\n return onProperties;\n }\n const targetIgnoreProperties = tip[0].ignoreProperties;\n return onProperties.filter(op => targetIgnoreProperties.indexOf(op) === -1);\n }\n function patchFilteredProperties(target, onProperties, ignoreProperties, prototype) {\n // check whether target is available, sometimes target will be undefined\n // because different browser or some 3rd party plugin.\n if (!target) {\n return;\n }\n const filteredProperties = filterProperties(target, onProperties, ignoreProperties);\n patchOnProperties(target, filteredProperties, prototype);\n }\n function propertyDescriptorPatch(api, _global) {\n if (isNode && !isMix) {\n return;\n }\n if (Zone[api.symbol('patchEvents')]) {\n // events are already been patched by legacy patch.\n return;\n }\n const supportsWebSocket = typeof WebSocket !== 'undefined';\n const ignoreProperties = _global['__Zone_ignore_on_properties'];\n // for browsers that we can patch the descriptor: Chrome & Firefox\n if (isBrowser) {\n const internalWindow = window;\n const ignoreErrorProperties = isIE ? [{ target: internalWindow, ignoreProperties: ['error'] }] : [];\n // in IE/Edge, onProp not exist in window object, but in WindowPrototype\n // so we need to pass WindowPrototype to check onProp exist or not\n patchFilteredProperties(internalWindow, eventNames.concat(['messageerror']), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow));\n patchFilteredProperties(Document.prototype, eventNames, ignoreProperties);\n if (typeof internalWindow['SVGElement'] !== 'undefined') {\n patchFilteredProperties(internalWindow['SVGElement'].prototype, eventNames, ignoreProperties);\n }\n patchFilteredProperties(Element.prototype, eventNames, ignoreProperties);\n patchFilteredProperties(HTMLElement.prototype, eventNames, ignoreProperties);\n patchFilteredProperties(HTMLMediaElement.prototype, mediaElementEventNames, ignoreProperties);\n patchFilteredProperties(HTMLFrameSetElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties);\n patchFilteredProperties(HTMLBodyElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties);\n patchFilteredProperties(HTMLFrameElement.prototype, frameEventNames, ignoreProperties);\n patchFilteredProperties(HTMLIFrameElement.prototype, frameEventNames, ignoreProperties);\n const HTMLMarqueeElement = internalWindow['HTMLMarqueeElement'];\n if (HTMLMarqueeElement) {\n patchFilteredProperties(HTMLMarqueeElement.prototype, marqueeEventNames, ignoreProperties);\n }\n const Worker = internalWindow['Worker'];\n if (Worker) {\n patchFilteredProperties(Worker.prototype, workerEventNames, ignoreProperties);\n }\n }\n const XMLHttpRequest = _global['XMLHttpRequest'];\n if (XMLHttpRequest) {\n // XMLHttpRequest is not available in ServiceWorker, so we need to check here\n patchFilteredProperties(XMLHttpRequest.prototype, XMLHttpRequestEventNames, ignoreProperties);\n }\n const XMLHttpRequestEventTarget = _global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n patchFilteredProperties(XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype, XMLHttpRequestEventNames, ignoreProperties);\n }\n if (typeof IDBIndex !== 'undefined') {\n patchFilteredProperties(IDBIndex.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBRequest.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBOpenDBRequest.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBDatabase.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBTransaction.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBCursor.prototype, IDBIndexEventNames, ignoreProperties);\n }\n if (supportsWebSocket) {\n patchFilteredProperties(WebSocket.prototype, websocketEventNames, ignoreProperties);\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 Zone.__load_patch('util', (global, Zone, api) => {\n api.patchOnProperties = patchOnProperties;\n api.patchMethod = patchMethod;\n api.bindArguments = bindArguments;\n api.patchMacroTask = patchMacroTask;\n // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS` to\n // define which events will not be patched by `Zone.js`.\n // In newer version (>=0.9.0), we change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep\n // the name consistent with angular repo.\n // The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be supported for\n // backwards compatibility.\n const SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS');\n const SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS');\n if (global[SYMBOL_UNPATCHED_EVENTS]) {\n global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS];\n }\n if (global[SYMBOL_BLACK_LISTED_EVENTS]) {\n Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] =\n global[SYMBOL_BLACK_LISTED_EVENTS];\n }\n api.patchEventPrototype = patchEventPrototype;\n api.patchEventTarget = patchEventTarget;\n api.isIEOrEdge = isIEOrEdge;\n api.ObjectDefineProperty = ObjectDefineProperty;\n api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor;\n api.ObjectCreate = ObjectCreate;\n api.ArraySlice = ArraySlice;\n api.patchClass = patchClass;\n api.wrapWithCurrentZone = wrapWithCurrentZone;\n api.filterProperties = filterProperties;\n api.attachOriginToPatched = attachOriginToPatched;\n api._redefineProperty = Object.defineProperty;\n api.patchCallbacks = patchCallbacks;\n api.getGlobalObjects = () => ({ globalSources, zoneSymbolEventNames: zoneSymbolEventNames$1, eventNames, isBrowser, isMix, isNode, TRUE_STR,\n FALSE_STR, ZONE_SYMBOL_PREFIX, ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR });\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 /**\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 taskSymbol = zoneSymbol('zoneTask');\n function patchTimer(window, setName, cancelName, nameSuffix) {\n let setNative = null;\n let clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n const tasksByHandleId = {};\n function scheduleTask(task) {\n const data = task.data;\n function timer() {\n try {\n task.invoke.apply(this, arguments);\n }\n finally {\n // issue-934, task will be cancelled\n // even it is a periodic task such as\n // setInterval\n if (!(task.data && task.data.isPeriodic)) {\n if (typeof data.handleId === 'number') {\n // in non-nodejs env, we remove timerId\n // from local cache\n delete tasksByHandleId[data.handleId];\n }\n else if (data.handleId) {\n // Node returns complex objects as handleIds\n // we remove task reference from timer object\n data.handleId[taskSymbol] = null;\n }\n }\n }\n }\n data.args[0] = timer;\n data.handleId = setNative.apply(window, data.args);\n return task;\n }\n function clearTask(task) { return clearNative(task.data.handleId); }\n setNative =\n patchMethod(window, setName, (delegate) => function (self, args) {\n if (typeof args[0] === 'function') {\n const options = {\n isPeriodic: nameSuffix === 'Interval',\n delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 :\n undefined,\n args: args\n };\n const task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask);\n if (!task) {\n return task;\n }\n // Node.js must additionally support the ref and unref functions.\n const handle = task.data.handleId;\n if (typeof handle === 'number') {\n // for non nodejs env, we save handleId: task\n // mapping in local cache for clearTimeout\n tasksByHandleId[handle] = task;\n }\n else if (handle) {\n // for nodejs env, we save task\n // reference in timerId Object for clearTimeout\n handle[taskSymbol] = task;\n }\n // check whether handle is null, because some polyfill or browser\n // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame\n if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' &&\n typeof handle.unref === 'function') {\n task.ref = handle.ref.bind(handle);\n task.unref = handle.unref.bind(handle);\n }\n if (typeof handle === 'number' || handle) {\n return handle;\n }\n return task;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n });\n clearNative =\n patchMethod(window, cancelName, (delegate) => function (self, args) {\n const id = args[0];\n let task;\n if (typeof id === 'number') {\n // non nodejs env.\n task = tasksByHandleId[id];\n }\n else {\n // nodejs env.\n task = id && id[taskSymbol];\n // other environments.\n if (!task) {\n task = id;\n }\n }\n if (task && typeof task.type === 'string') {\n if (task.state !== 'notScheduled' &&\n (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) {\n if (typeof id === 'number') {\n delete tasksByHandleId[id];\n }\n else if (id) {\n id[taskSymbol] = null;\n }\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n }\n else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\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 function patchCustomElements(_global, api) {\n const { isBrowser, isMix } = api.getGlobalObjects();\n if ((!isBrowser && !isMix) || !_global['customElements'] || !('customElements' in _global)) {\n return;\n }\n const callbacks = ['connectedCallback', 'disconnectedCallback', 'adoptedCallback', 'attributeChangedCallback'];\n api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks);\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 eventTargetPatch(_global, api) {\n if (Zone[api.symbol('patchEventTarget')]) {\n // EventTarget is already patched.\n return;\n }\n const { eventNames, zoneSymbolEventNames, TRUE_STR, FALSE_STR, ZONE_SYMBOL_PREFIX } = api.getGlobalObjects();\n // predefine all __zone_symbol__ + eventName + true/false string\n for (let i = 0; i < eventNames.length; i++) {\n const eventName = eventNames[i];\n const falseEventName = eventName + FALSE_STR;\n const trueEventName = eventName + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n const EVENT_TARGET = _global['EventTarget'];\n if (!EVENT_TARGET || !EVENT_TARGET.prototype) {\n return;\n }\n api.patchEventTarget(_global, [EVENT_TARGET && EVENT_TARGET.prototype]);\n return true;\n }\n function patchEvent(global, api) {\n api.patchEventPrototype(global, api);\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 Zone.__load_patch('legacy', (global) => {\n const legacyPatch = global[Zone.__symbol__('legacyPatch')];\n if (legacyPatch) {\n legacyPatch();\n }\n });\n Zone.__load_patch('timers', (global) => {\n const set = 'set';\n const clear = 'clear';\n patchTimer(global, set, clear, 'Timeout');\n patchTimer(global, set, clear, 'Interval');\n patchTimer(global, set, clear, 'Immediate');\n });\n Zone.__load_patch('requestAnimationFrame', (global) => {\n patchTimer(global, 'request', 'cancel', 'AnimationFrame');\n patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame');\n patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\n });\n Zone.__load_patch('blocking', (global, Zone) => {\n const blockingMethods = ['alert', 'prompt', 'confirm'];\n for (let i = 0; i < blockingMethods.length; i++) {\n const name = blockingMethods[i];\n patchMethod(global, name, (delegate, symbol, name) => {\n return function (s, args) {\n return Zone.current.run(delegate, global, args, name);\n };\n });\n }\n });\n Zone.__load_patch('EventTarget', (global, Zone, api) => {\n patchEvent(global, api);\n eventTargetPatch(global, api);\n // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener\n const XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) {\n api.patchEventTarget(global, [XMLHttpRequestEventTarget.prototype]);\n }\n patchClass('MutationObserver');\n patchClass('WebKitMutationObserver');\n patchClass('IntersectionObserver');\n patchClass('FileReader');\n });\n Zone.__load_patch('on_property', (global, Zone, api) => {\n propertyDescriptorPatch(api, global);\n });\n Zone.__load_patch('customElements', (global, Zone, api) => {\n patchCustomElements(global, api);\n });\n Zone.__load_patch('XHR', (global, Zone) => {\n // Treat XMLHttpRequest as a macrotask.\n patchXHR(global);\n const XHR_TASK = zoneSymbol('xhrTask');\n const XHR_SYNC = zoneSymbol('xhrSync');\n const XHR_LISTENER = zoneSymbol('xhrListener');\n const XHR_SCHEDULED = zoneSymbol('xhrScheduled');\n const XHR_URL = zoneSymbol('xhrURL');\n const XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled');\n function patchXHR(window) {\n const XMLHttpRequest = window['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return;\n }\n const XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n function findPendingTask(target) { return target[XHR_TASK]; }\n let oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n let oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n if (!oriAddListener) {\n const XMLHttpRequestEventTarget = window['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n const XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget.prototype;\n oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n }\n const READY_STATE_CHANGE = 'readystatechange';\n const SCHEDULED = 'scheduled';\n function scheduleTask(task) {\n const data = task.data;\n const target = data.target;\n target[XHR_SCHEDULED] = false;\n target[XHR_ERROR_BEFORE_SCHEDULED] = false;\n // remove existing event listener\n const listener = target[XHR_LISTENER];\n if (!oriAddListener) {\n oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n if (listener) {\n oriRemoveListener.call(target, READY_STATE_CHANGE, listener);\n }\n const newListener = target[XHR_LISTENER] = () => {\n if (target.readyState === target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) {\n // check whether the xhr has registered onload listener\n // if that is the case, the task should invoke after all\n // onload listeners finish.\n const loadTasks = target[Zone.__symbol__('loadfalse')];\n if (loadTasks && loadTasks.length > 0) {\n const oriInvoke = task.invoke;\n task.invoke = function () {\n // need to load the tasks again, because in other\n // load listener, they may remove themselves\n const loadTasks = target[Zone.__symbol__('loadfalse')];\n for (let i = 0; i < loadTasks.length; i++) {\n if (loadTasks[i] === task) {\n loadTasks.splice(i, 1);\n }\n }\n if (!data.aborted && task.state === SCHEDULED) {\n oriInvoke.call(task);\n }\n };\n loadTasks.push(task);\n }\n else {\n task.invoke();\n }\n }\n else if (!data.aborted && target[XHR_SCHEDULED] === false) {\n // error occurs when xhr.send()\n target[XHR_ERROR_BEFORE_SCHEDULED] = true;\n }\n }\n };\n oriAddListener.call(target, READY_STATE_CHANGE, newListener);\n const storedTask = target[XHR_TASK];\n if (!storedTask) {\n target[XHR_TASK] = task;\n }\n sendNative.apply(target, data.args);\n target[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() { }\n function clearTask(task) {\n const data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n const openNative = patchMethod(XMLHttpRequestPrototype, 'open', () => function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n self[XHR_URL] = args[1];\n return openNative.apply(self, args);\n });\n const XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send';\n const fetchTaskAborting = zoneSymbol('fetchTaskAborting');\n const fetchTaskScheduling = zoneSymbol('fetchTaskScheduling');\n const sendNative = patchMethod(XMLHttpRequestPrototype, 'send', () => function (self, args) {\n if (Zone.current[fetchTaskScheduling] === true) {\n // a fetch is scheduling, so we are using xhr to polyfill fetch\n // and because we already schedule macroTask for fetch, we should\n // not schedule a macroTask for xhr again\n return sendNative.apply(self, args);\n }\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n }\n else {\n const options = { target: self, url: self[XHR_URL], isPeriodic: false, args: args, aborted: false };\n const task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask);\n if (self && self[XHR_ERROR_BEFORE_SCHEDULED] === true && !options.aborted &&\n task.state === SCHEDULED) {\n // xhr request throw error when send\n // we should invoke task instead of leaving a scheduled\n // pending macroTask\n task.invoke();\n }\n }\n });\n const abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', () => function (self, args) {\n const task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || (task.data && task.data.aborted)) {\n return;\n }\n task.zone.cancelTask(task);\n }\n else if (Zone.current[fetchTaskAborting] === true) {\n // the abort is called from fetch polyfill, we need to call native abort of XHR.\n return abortNative.apply(self, args);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no\n // task\n // to cancel. Do nothing.\n });\n }\n });\n Zone.__load_patch('geolocation', (global) => {\n /// GEO_LOCATION\n if (global['navigator'] && global['navigator'].geolocation) {\n patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n }\n });\n Zone.__load_patch('PromiseRejectionEvent', (global, Zone) => {\n // handle unhandled promise rejection\n function findPromiseRejectionHandler(evtName) {\n return function (e) {\n const eventTasks = findEventTasks(global, evtName);\n eventTasks.forEach(eventTask => {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n const PromiseRejectionEvent = global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n const evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection });\n eventTask.invoke(evt);\n }\n });\n };\n }\n if (global['PromiseRejectionEvent']) {\n Zone[zoneSymbol('unhandledPromiseRejectionHandler')] =\n findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol('rejectionHandledHandler')] =\n findPromiseRejectionHandler('rejectionhandled');\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}));\n","/**\n * @license Angular v0.10.2\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n(function (factory) {\n typeof define === 'function' && define.amd ? define(factory) :\n factory();\n}(function () {\n 'use strict';\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 * This is necessary for Chrome and Chrome mobile, to enable\n * things like redefining `createdCallback` on an element.\n */\n var zoneSymbol;\n var _defineProperty;\n var _getOwnPropertyDescriptor;\n var _create;\n var unconfigurablesKey;\n function propertyPatch() {\n zoneSymbol = Zone.__symbol__;\n _defineProperty = Object[zoneSymbol('defineProperty')] = Object.defineProperty;\n _getOwnPropertyDescriptor = Object[zoneSymbol('getOwnPropertyDescriptor')] =\n Object.getOwnPropertyDescriptor;\n _create = Object.create;\n unconfigurablesKey = zoneSymbol('unconfigurables');\n Object.defineProperty = function (obj, prop, desc) {\n if (isUnconfigurable(obj, prop)) {\n throw new TypeError('Cannot assign to read only property \\'' + prop + '\\' of ' + obj);\n }\n var originalConfigurableFlag = desc.configurable;\n if (prop !== 'prototype') {\n desc = rewriteDescriptor(obj, prop, desc);\n }\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n };\n Object.defineProperties = function (obj, props) {\n Object.keys(props).forEach(function (prop) { Object.defineProperty(obj, prop, props[prop]); });\n return obj;\n };\n Object.create = function (obj, proto) {\n if (typeof proto === 'object' && !Object.isFrozen(proto)) {\n Object.keys(proto).forEach(function (prop) {\n proto[prop] = rewriteDescriptor(obj, prop, proto[prop]);\n });\n }\n return _create(obj, proto);\n };\n Object.getOwnPropertyDescriptor = function (obj, prop) {\n var desc = _getOwnPropertyDescriptor(obj, prop);\n if (desc && isUnconfigurable(obj, prop)) {\n desc.configurable = false;\n }\n return desc;\n };\n }\n function _redefineProperty(obj, prop, desc) {\n var originalConfigurableFlag = desc.configurable;\n desc = rewriteDescriptor(obj, prop, desc);\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n }\n function isUnconfigurable(obj, prop) {\n return obj && obj[unconfigurablesKey] && obj[unconfigurablesKey][prop];\n }\n function rewriteDescriptor(obj, prop, desc) {\n // issue-927, if the desc is frozen, don't try to change the desc\n if (!Object.isFrozen(desc)) {\n desc.configurable = true;\n }\n if (!desc.configurable) {\n // issue-927, if the obj is frozen, don't try to set the desc to obj\n if (!obj[unconfigurablesKey] && !Object.isFrozen(obj)) {\n _defineProperty(obj, unconfigurablesKey, { writable: true, value: {} });\n }\n if (obj[unconfigurablesKey]) {\n obj[unconfigurablesKey][prop] = true;\n }\n }\n return desc;\n }\n function _tryDefineProperty(obj, prop, desc, originalConfigurableFlag) {\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n if (desc.configurable) {\n // In case of errors, when the configurable flag was likely set by rewriteDescriptor(), let's\n // retry with the original flag value\n if (typeof originalConfigurableFlag == 'undefined') {\n delete desc.configurable;\n }\n else {\n desc.configurable = originalConfigurableFlag;\n }\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n var descJson = null;\n try {\n descJson = JSON.stringify(desc);\n }\n catch (error) {\n descJson = desc.toString();\n }\n console.log(\"Attempting to configure '\" + prop + \"' with descriptor '\" + descJson + \"' on object '\" + obj + \"' and got error, giving up: \" + error);\n }\n }\n else {\n throw 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 function eventTargetLegacyPatch(_global, api) {\n var _a = api.getGlobalObjects(), eventNames = _a.eventNames, globalSources = _a.globalSources, zoneSymbolEventNames = _a.zoneSymbolEventNames, TRUE_STR = _a.TRUE_STR, FALSE_STR = _a.FALSE_STR, ZONE_SYMBOL_PREFIX = _a.ZONE_SYMBOL_PREFIX;\n var WTF_ISSUE_555 = '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';\n var NO_EVENT_TARGET = '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'\n .split(',');\n var EVENT_TARGET = 'EventTarget';\n var apis = [];\n var isWtf = _global['wtf'];\n var WTF_ISSUE_555_ARRAY = WTF_ISSUE_555.split(',');\n if (isWtf) {\n // Workaround for: https://github.com/google/tracing-framework/issues/555\n apis = WTF_ISSUE_555_ARRAY.map(function (v) { return 'HTML' + v + 'Element'; }).concat(NO_EVENT_TARGET);\n }\n else if (_global[EVENT_TARGET]) {\n apis.push(EVENT_TARGET);\n }\n else {\n // Note: EventTarget is not available in all browsers,\n // if it's not available, we instead patch the APIs in the IDL that inherit from EventTarget\n apis = NO_EVENT_TARGET;\n }\n var isDisableIECheck = _global['__Zone_disable_IE_check'] || false;\n var isEnableCrossContextCheck = _global['__Zone_enable_cross_context_check'] || false;\n var ieOrEdge = api.isIEOrEdge();\n var ADD_EVENT_LISTENER_SOURCE = '.addEventListener:';\n var FUNCTION_WRAPPER = '[object FunctionWrapper]';\n var BROWSER_TOOLS = 'function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }';\n var pointerEventsMap = {\n 'MSPointerCancel': 'pointercancel',\n 'MSPointerDown': 'pointerdown',\n 'MSPointerEnter': 'pointerenter',\n 'MSPointerHover': 'pointerhover',\n 'MSPointerLeave': 'pointerleave',\n 'MSPointerMove': 'pointermove',\n 'MSPointerOut': 'pointerout',\n 'MSPointerOver': 'pointerover',\n 'MSPointerUp': 'pointerup'\n };\n // predefine all __zone_symbol__ + eventName + true/false string\n for (var i = 0; i < eventNames.length; i++) {\n var eventName = eventNames[i];\n var falseEventName = eventName + FALSE_STR;\n var trueEventName = eventName + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n // predefine all task.source string\n for (var i = 0; i < WTF_ISSUE_555_ARRAY.length; i++) {\n var target = WTF_ISSUE_555_ARRAY[i];\n var targets = globalSources[target] = {};\n for (var j = 0; j < eventNames.length; j++) {\n var eventName = eventNames[j];\n targets[eventName] = target + ADD_EVENT_LISTENER_SOURCE + eventName;\n }\n }\n var checkIEAndCrossContext = function (nativeDelegate, delegate, target, args) {\n if (!isDisableIECheck && ieOrEdge) {\n if (isEnableCrossContextCheck) {\n try {\n var testString = delegate.toString();\n if ((testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS)) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n catch (error) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n else {\n var testString = delegate.toString();\n if ((testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS)) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n }\n else if (isEnableCrossContextCheck) {\n try {\n delegate.toString();\n }\n catch (error) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n return true;\n };\n var apiTypes = [];\n for (var i = 0; i < apis.length; i++) {\n var type = _global[apis[i]];\n apiTypes.push(type && type.prototype);\n }\n // vh is validateHandler to check event handler\n // is valid or not(for security check)\n api.patchEventTarget(_global, apiTypes, {\n vh: checkIEAndCrossContext,\n transferEventName: function (eventName) {\n var pointerEventName = pointerEventsMap[eventName];\n return pointerEventName || eventName;\n }\n });\n Zone[api.symbol('patchEventTarget')] = !!_global[EVENT_TARGET];\n return true;\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 // we have to patch the instance since the proto is non-configurable\n function apply(api, _global) {\n var _a = api.getGlobalObjects(), ADD_EVENT_LISTENER_STR = _a.ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR = _a.REMOVE_EVENT_LISTENER_STR;\n var WS = _global.WebSocket;\n // On Safari window.EventTarget doesn't exist so need to patch WS add/removeEventListener\n // On older Chrome, no need since EventTarget was already patched\n if (!_global.EventTarget) {\n api.patchEventTarget(_global, [WS.prototype]);\n }\n _global.WebSocket = function (x, y) {\n var socket = arguments.length > 1 ? new WS(x, y) : new WS(x);\n var proxySocket;\n var proxySocketProto;\n // Safari 7.0 has non-configurable own 'onmessage' and friends properties on the socket instance\n var onmessageDesc = api.ObjectGetOwnPropertyDescriptor(socket, 'onmessage');\n if (onmessageDesc && onmessageDesc.configurable === false) {\n proxySocket = api.ObjectCreate(socket);\n // socket have own property descriptor 'onopen', 'onmessage', 'onclose', 'onerror'\n // but proxySocket not, so we will keep socket as prototype and pass it to\n // patchOnProperties method\n proxySocketProto = socket;\n [ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR, 'send', 'close'].forEach(function (propName) {\n proxySocket[propName] = function () {\n var args = api.ArraySlice.call(arguments);\n if (propName === ADD_EVENT_LISTENER_STR || propName === REMOVE_EVENT_LISTENER_STR) {\n var eventName = args.length > 0 ? args[0] : undefined;\n if (eventName) {\n var propertySymbol = Zone.__symbol__('ON_PROPERTY' + eventName);\n socket[propertySymbol] = proxySocket[propertySymbol];\n }\n }\n return socket[propName].apply(socket, args);\n };\n });\n }\n else {\n // we can patch the real socket\n proxySocket = socket;\n }\n api.patchOnProperties(proxySocket, ['close', 'error', 'message', 'open'], proxySocketProto);\n return proxySocket;\n };\n var globalWebSocket = _global['WebSocket'];\n for (var prop in WS) {\n globalWebSocket[prop] = WS[prop];\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 propertyDescriptorLegacyPatch(api, _global) {\n var _a = api.getGlobalObjects(), isNode = _a.isNode, isMix = _a.isMix;\n if (isNode && !isMix) {\n return;\n }\n if (!canPatchViaPropertyDescriptor(api, _global)) {\n var supportsWebSocket = typeof WebSocket !== 'undefined';\n // Safari, Android browsers (Jelly Bean)\n patchViaCapturingAllTheEvents(api);\n api.patchClass('XMLHttpRequest');\n if (supportsWebSocket) {\n apply(api, _global);\n }\n Zone[api.symbol('patchEvents')] = true;\n }\n }\n function canPatchViaPropertyDescriptor(api, _global) {\n var _a = api.getGlobalObjects(), isBrowser = _a.isBrowser, isMix = _a.isMix;\n if ((isBrowser || isMix) &&\n !api.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype, 'onclick') &&\n typeof Element !== 'undefined') {\n // WebKit https://bugs.webkit.org/show_bug.cgi?id=134364\n // IDL interface attributes are not configurable\n var desc = api.ObjectGetOwnPropertyDescriptor(Element.prototype, 'onclick');\n if (desc && !desc.configurable)\n return false;\n // try to use onclick to detect whether we can patch via propertyDescriptor\n // because XMLHttpRequest is not available in service worker\n if (desc) {\n api.ObjectDefineProperty(Element.prototype, 'onclick', { enumerable: true, configurable: true, get: function () { return true; } });\n var div = document.createElement('div');\n var result = !!div.onclick;\n api.ObjectDefineProperty(Element.prototype, 'onclick', desc);\n return result;\n }\n }\n var XMLHttpRequest = _global['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return false;\n }\n var ON_READY_STATE_CHANGE = 'onreadystatechange';\n var XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n var xhrDesc = api.ObjectGetOwnPropertyDescriptor(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE);\n // add enumerable and configurable here because in opera\n // by default XMLHttpRequest.prototype.onreadystatechange is undefined\n // without adding enumerable and configurable will cause onreadystatechange\n // non-configurable\n // and if XMLHttpRequest.prototype.onreadystatechange is undefined,\n // we should set a real desc instead a fake one\n if (xhrDesc) {\n api.ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, { enumerable: true, configurable: true, get: function () { return true; } });\n var req = new XMLHttpRequest();\n var result = !!req.onreadystatechange;\n // restore original desc\n api.ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, xhrDesc || {});\n return result;\n }\n else {\n var SYMBOL_FAKE_ONREADYSTATECHANGE_1 = api.symbol('fake');\n api.ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, {\n enumerable: true,\n configurable: true,\n get: function () { return this[SYMBOL_FAKE_ONREADYSTATECHANGE_1]; },\n set: function (value) { this[SYMBOL_FAKE_ONREADYSTATECHANGE_1] = value; }\n });\n var req = new XMLHttpRequest();\n var detectFunc = function () { };\n req.onreadystatechange = detectFunc;\n var result = req[SYMBOL_FAKE_ONREADYSTATECHANGE_1] === detectFunc;\n req.onreadystatechange = null;\n return result;\n }\n }\n // Whenever any eventListener fires, we check the eventListener target and all parents\n // for `onwhatever` properties and replace them with zone-bound functions\n // - Chrome (for now)\n function patchViaCapturingAllTheEvents(api) {\n var eventNames = api.getGlobalObjects().eventNames;\n var unboundKey = api.symbol('unbound');\n var _loop_1 = function (i) {\n var property = eventNames[i];\n var onproperty = 'on' + property;\n self.addEventListener(property, function (event) {\n var elt = event.target, bound, source;\n if (elt) {\n source = elt.constructor['name'] + '.' + onproperty;\n }\n else {\n source = 'unknown.' + onproperty;\n }\n while (elt) {\n if (elt[onproperty] && !elt[onproperty][unboundKey]) {\n bound = api.wrapWithCurrentZone(elt[onproperty], source);\n bound[unboundKey] = elt[onproperty];\n elt[onproperty] = bound;\n }\n elt = elt.parentElement;\n }\n }, true);\n };\n for (var i = 0; i < eventNames.length; i++) {\n _loop_1(i);\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 registerElementPatch(_global, api) {\n var _a = api.getGlobalObjects(), isBrowser = _a.isBrowser, isMix = _a.isMix;\n if ((!isBrowser && !isMix) || !('registerElement' in _global.document)) {\n return;\n }\n var callbacks = ['createdCallback', 'attachedCallback', 'detachedCallback', 'attributeChangedCallback'];\n api.patchCallbacks(api, document, 'Document', 'registerElement', callbacks);\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 (_global) {\n var symbolPrefix = _global['__Zone_symbol_prefix'] || '__zone_symbol__';\n function __symbol__(name) { return symbolPrefix + name; }\n _global[__symbol__('legacyPatch')] = function () {\n var Zone = _global['Zone'];\n Zone.__load_patch('defineProperty', function (global, Zone, api) {\n api._redefineProperty = _redefineProperty;\n propertyPatch();\n });\n Zone.__load_patch('registerElement', function (global, Zone, api) {\n registerElementPatch(global, api);\n });\n Zone.__load_patch('EventTargetLegacy', function (global, Zone, api) {\n eventTargetLegacyPatch(global, api);\n propertyDescriptorLegacyPatch(api, global);\n });\n };\n })(typeof window !== 'undefined' ?\n window :\n typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {});\n}));\n","/**\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"]} \ No newline at end of file diff --git a/src/main/ui/dist/angular-nodejs-example/runtime-es2015.js b/src/main/ui/dist/angular-nodejs-example/runtime-es2015.js deleted file mode 100644 index f1df4c314..000000000 --- a/src/main/ui/dist/angular-nodejs-example/runtime-es2015.js +++ /dev/null @@ -1,155 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // install a JSONP callback for chunk loading -/******/ function webpackJsonpCallback(data) { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var executeModules = data[2]; -/******/ -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0, resolves = []; -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ resolves.push(installedChunks[chunkId][0]); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ for(moduleId in moreModules) { -/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { -/******/ modules[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(parentJsonpFunction) parentJsonpFunction(data); -/******/ -/******/ while(resolves.length) { -/******/ resolves.shift()(); -/******/ } -/******/ -/******/ // add entry modules from loaded chunk to deferred list -/******/ deferredModules.push.apply(deferredModules, executeModules || []); -/******/ -/******/ // run deferred modules when all chunks ready -/******/ return checkDeferredModules(); -/******/ }; -/******/ function checkDeferredModules() { -/******/ var result; -/******/ for(var i = 0; i < deferredModules.length; i++) { -/******/ var deferredModule = deferredModules[i]; -/******/ var fulfilled = true; -/******/ for(var j = 1; j < deferredModule.length; j++) { -/******/ var depId = deferredModule[j]; -/******/ if(installedChunks[depId] !== 0) fulfilled = false; -/******/ } -/******/ if(fulfilled) { -/******/ deferredModules.splice(i--, 1); -/******/ result = __webpack_require__(__webpack_require__.s = deferredModule[0]); -/******/ } -/******/ } -/******/ -/******/ return result; -/******/ } -/******/ -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // Promise = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "runtime": 0 -/******/ }; -/******/ -/******/ var deferredModules = []; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ var jsonpArray = window["webpackJsonp"] = window["webpackJsonp"] || []; -/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray); -/******/ jsonpArray.push = webpackJsonpCallback; -/******/ jsonpArray = jsonpArray.slice(); -/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]); -/******/ var parentJsonpFunction = oldJsonpFunction; -/******/ -/******/ -/******/ // run deferred modules from other chunks -/******/ checkDeferredModules(); -/******/ }) -/************************************************************************/ -/******/ ([]); -//# sourceMappingURL=runtime-es2015.js.map \ No newline at end of file diff --git a/src/main/ui/dist/angular-nodejs-example/runtime-es2015.js.map b/src/main/ui/dist/angular-nodejs-example/runtime-es2015.js.map deleted file mode 100644 index f42399a71..000000000 --- a/src/main/ui/dist/angular-nodejs-example/runtime-es2015.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack/bootstrap"],"names":[],"mappings":";QAAA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,iBAAiB,4BAA4B;QAC7C;QACA;QACA,kBAAkB,2BAA2B;QAC7C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA","file":"runtime-es2015.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"runtime\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":"webpack:///"} \ No newline at end of file diff --git a/src/main/ui/dist/angular-nodejs-example/runtime-es5.js b/src/main/ui/dist/angular-nodejs-example/runtime-es5.js deleted file mode 100644 index f717c9fb9..000000000 --- a/src/main/ui/dist/angular-nodejs-example/runtime-es5.js +++ /dev/null @@ -1,155 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // install a JSONP callback for chunk loading -/******/ function webpackJsonpCallback(data) { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var executeModules = data[2]; -/******/ -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0, resolves = []; -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ resolves.push(installedChunks[chunkId][0]); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ for(moduleId in moreModules) { -/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { -/******/ modules[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(parentJsonpFunction) parentJsonpFunction(data); -/******/ -/******/ while(resolves.length) { -/******/ resolves.shift()(); -/******/ } -/******/ -/******/ // add entry modules from loaded chunk to deferred list -/******/ deferredModules.push.apply(deferredModules, executeModules || []); -/******/ -/******/ // run deferred modules when all chunks ready -/******/ return checkDeferredModules(); -/******/ }; -/******/ function checkDeferredModules() { -/******/ var result; -/******/ for(var i = 0; i < deferredModules.length; i++) { -/******/ var deferredModule = deferredModules[i]; -/******/ var fulfilled = true; -/******/ for(var j = 1; j < deferredModule.length; j++) { -/******/ var depId = deferredModule[j]; -/******/ if(installedChunks[depId] !== 0) fulfilled = false; -/******/ } -/******/ if(fulfilled) { -/******/ deferredModules.splice(i--, 1); -/******/ result = __webpack_require__(__webpack_require__.s = deferredModule[0]); -/******/ } -/******/ } -/******/ -/******/ return result; -/******/ } -/******/ -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // Promise = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "runtime": 0 -/******/ }; -/******/ -/******/ var deferredModules = []; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ var jsonpArray = window["webpackJsonp"] = window["webpackJsonp"] || []; -/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray); -/******/ jsonpArray.push = webpackJsonpCallback; -/******/ jsonpArray = jsonpArray.slice(); -/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]); -/******/ var parentJsonpFunction = oldJsonpFunction; -/******/ -/******/ -/******/ // run deferred modules from other chunks -/******/ checkDeferredModules(); -/******/ }) -/************************************************************************/ -/******/ ([]); -//# sourceMappingURL=runtime-es5.js.map \ No newline at end of file diff --git a/src/main/ui/dist/angular-nodejs-example/runtime-es5.js.map b/src/main/ui/dist/angular-nodejs-example/runtime-es5.js.map deleted file mode 100644 index c1877df2e..000000000 --- a/src/main/ui/dist/angular-nodejs-example/runtime-es5.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack/bootstrap"],"names":[],"mappings":";QAAA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,iBAAiB,4BAA4B;QAC7C;QACA;QACA,kBAAkB,2BAA2B;QAC7C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA","file":"runtime-es5.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"runtime\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":"webpack:///"} \ No newline at end of file diff --git a/src/main/ui/dist/angular-nodejs-example/styles-es2015.js b/src/main/ui/dist/angular-nodejs-example/styles-es2015.js deleted file mode 100644 index 77ef7ec7a..000000000 --- a/src/main/ui/dist/angular-nodejs-example/styles-es2015.js +++ /dev/null @@ -1,425 +0,0 @@ -(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["styles"],{ - -/***/ "./node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/bootstrap/dist/css/bootstrap.min.css": -/*!****************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!./node_modules/postcss-loader/src??embedded!./node_modules/bootstrap/dist/css/bootstrap.min.css ***! - \****************************************************************************************************************************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = [[module.i, "/*!\n * Bootstrap v4.1.1 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 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,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\";--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%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}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,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus{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}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}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}dfn{font-style:italic}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;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}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;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){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}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[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-cancel-button,[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-family:inherit;font-weight:500;line-height:1.2;color:inherit}.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;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}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-unstyled{padding-left:0;list-style:none}.list-inline{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{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.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-break: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{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;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-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.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-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.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-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.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-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.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-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-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{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order: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{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order: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{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order: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{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order: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%;max-width:100%;margin-bottom:1rem;background-color:transparent}.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 .table{background-color:#fff}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.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{background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-hover .table-primary:hover{background-color:#9fcdff}.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-hover .table-secondary:hover{background-color:#c8cbcf}.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-hover .table-success:hover{background-color:#b1dfbb}.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-hover .table-info:hover{background-color:#abdde5}.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-hover .table-warning:hover{background-color:#ffe8a1}.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-hover .table-danger:hover{background-color:#f1b0b7}.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-hover .table-light:hover{background-color:#ececf6}.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-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.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:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#212529}.table-dark td,.table-dark th,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.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;-ms-overflow-style:-ms-autohiding-scrollbar}.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;-ms-overflow-style:-ms-autohiding-scrollbar}.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;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;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 screen and (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.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::-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:not([size]):not([multiple]){height:calc(2.25rem + 2px)}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-top:.375rem;padding-bottom:.375rem;margin-bottom:0;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,.input-group-lg>.form-control-plaintext.form-control,.input-group-lg>.input-group-append>.form-control-plaintext.btn,.input-group-lg>.input-group-append>.form-control-plaintext.input-group-text,.input-group-lg>.input-group-prepend>.form-control-plaintext.btn,.input-group-lg>.input-group-prepend>.form-control-plaintext.input-group-text,.input-group-sm>.form-control-plaintext.form-control,.input-group-sm>.input-group-append>.form-control-plaintext.btn,.input-group-sm>.input-group-append>.form-control-plaintext.input-group-text,.input-group-sm>.input-group-prepend>.form-control-plaintext.btn,.input-group-sm>.input-group-prepend>.form-control-plaintext.input-group-text{padding-right:0;padding-left:0}.form-control-sm,.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-sm>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-sm>select.form-control:not([size]):not([multiple]),select.form-control-sm:not([size]):not([multiple]){height:calc(1.8125rem + 2px)}.form-control-lg,.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-lg>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-lg>select.form-control:not([size]):not([multiple]),select.form-control-lg:not([size]):not([multiple]){height:calc(2.875rem + 2px)}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;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{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-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:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(40,167,69,.8);border-radius:.2rem}.custom-select.is-valid,.form-control.is-valid,.was-validated .custom-select:valid,.was-validated .form-control:valid{border-color:#28a745}.custom-select.is-valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip{display:block}.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{background-color:#71dd8a}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{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 1px #fff,0 0 0 .2rem rgba(40,167,69,.25)}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label::before,.was-validated .custom-file-input:valid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{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:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(220,53,69,.8);border-radius:.2rem}.custom-select.is-invalid,.form-control.is-invalid,.was-validated .custom-select:invalid,.was-validated .form-control:invalid{border-color:#dc3545}.custom-select.is-invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip{display:block}.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{background-color:#efa2a9}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{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 1px #fff,0 0 0 .2rem rgba(220,53,69,.25)}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label::before,.was-validated .custom-file-input:invalid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.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:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;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 screen and (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:focus,.btn:hover{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}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn:not(:disabled):not(.disabled).active,.btn:not(:disabled):not(.disabled):active{background-image:none}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,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(0,123,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.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(108,117,125,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.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(40,167,69,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.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(23,162,184,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.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(255,193,7,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.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(220,53,69,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.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(248,249,250,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.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(52,58,64,.5)}.btn-outline-primary{color:#007bff;background-color:transparent;background-image:none;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;background-color:transparent;background-image:none;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;background-color:transparent;background-image:none;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;background-color:transparent;background-image:none;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;background-color:transparent;background-image:none;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;background-color:transparent;background-image:none;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;background-color:transparent;background-image:none;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;background-color:transparent;background-image:none;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;background-color:transparent}.btn-link:hover{color:#0056b3;text-decoration:underline;background-color:transparent;border-color:transparent}.btn-link.focus,.btn-link:focus{text-decoration:underline;border-color:transparent;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 screen and (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 screen and (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle::after{display:inline-block;width:0;height:0;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-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;width:0;height:0;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;width:0;height:0;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;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:\"\"}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;width:0;height:0;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;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:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:0 1 auto;flex:0 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:first-child{margin-left:0}.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{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.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 input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file:focus,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.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{margin-left:-1px}.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:-ms-flexbox;display:flex;-ms-flex-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:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.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:-ms-flexbox;display:flex;-ms-flex-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>.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:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:active~.custom-control-label::before{color:#fff;background-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:\"\";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#dee2e6}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\";background-repeat:no-repeat;background-position:center center;background-size:50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' 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{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::before{background-color:#007bff}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' 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-select{display:inline-block;width:100%;height:calc(2.25rem + 2px);padding:.375rem 1.75rem .375rem .75rem;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center;background-size: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:inset 0 1px 2px rgba(0,0,0,.075),0 0 5px rgba(128,189,255,.5)}.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{opacity:0}.custom-select-sm{height:calc(1.8125rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:75%}.custom-select-lg{height:calc(2.875rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:125%}.custom-file{position:relative;display:inline-block;width:100%;height:calc(2.25rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(2.25rem + 2px);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:focus~.custom-file-label::after{border-color:#80bdff}.custom-file-input:lang(en)~.custom-file-label::after{content:\"Browse\"}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(2.25rem + 2px);padding:.375rem .75rem;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:2.25rem;padding:.375rem .75rem;line-height:1.5;color:#495057;content:\"Browse\";background-color:#e9ecef;border-left:1px solid #ced4da;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;padding-left:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.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-appearance:none;appearance:none}.custom-range::-webkit-slider-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.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-appearance:none;appearance:none}.custom-range::-moz-range-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.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;background-color:#007bff;border:0;border-radius:1rem;appearance:none}.custom-range::-ms-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.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{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;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}.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{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-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:-ms-flexbox;display:flex;-ms-flex-direction:column;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{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-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:not(:disabled):not(.disabled){cursor:pointer}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;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{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;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{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;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{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;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{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;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{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.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=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.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:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;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{-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.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-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-ms-flexbox;display:flex;-ms-flex:1 0 0%;flex:1 0 0%;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-header,.card-group>.card:first-child .card-img-top{border-top-right-radius:0}.card-group>.card:first-child .card-footer,.card-group>.card:first-child .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-header,.card-group>.card:last-child .card-img-top{border-top-left-radius:0}.card-group>.card:last-child .card-footer,.card-group>.card:last-child .card-img-bottom{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:.25rem}.card-group>.card:only-child .card-header,.card-group>.card:only-child .card-img-top{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-group>.card:only-child .card-footer,.card-group>.card:only-child .card-img-bottom{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-group>.card:not(:first-child):not(:last-child):not(:only-child){border-radius:0}.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top{border-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:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion .card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion .card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion .card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;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}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;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:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-link:not(:disabled):not(.disabled){cursor:pointer}.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:1;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}.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}.badge-primary[href]:focus,.badge-primary[href]:hover{color:#fff;text-decoration:none;background-color:#0062cc}.badge-secondary{color:#fff;background-color:#6c757d}.badge-secondary[href]:focus,.badge-secondary[href]:hover{color:#fff;text-decoration:none;background-color:#545b62}.badge-success{color:#fff;background-color:#28a745}.badge-success[href]:focus,.badge-success[href]:hover{color:#fff;text-decoration:none;background-color:#1e7e34}.badge-info{color:#fff;background-color:#17a2b8}.badge-info[href]:focus,.badge-info[href]:hover{color:#fff;text-decoration:none;background-color:#117a8b}.badge-warning{color:#212529;background-color:#ffc107}.badge-warning[href]:focus,.badge-warning[href]:hover{color:#212529;text-decoration:none;background-color:#d39e00}.badge-danger{color:#fff;background-color:#dc3545}.badge-danger[href]:focus,.badge-danger[href]:hover{color:#fff;text-decoration:none;background-color:#bd2130}.badge-light{color:#212529;background-color:#f8f9fa}.badge-light[href]:focus,.badge-light[href]:hover{color:#212529;text-decoration:none;background-color:#dae0e5}.badge-dark{color:#fff;background-color:#343a40}.badge-dark[href]:focus,.badge-dark[href]:hover{color:#fff;text-decoration:none;background-color:#1d2124}.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{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media screen and (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;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{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;margin-bottom:-1px;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{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item:focus,.list-group-item:hover{z-index:1;text-decoration:none}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom: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:focus,.close:hover{color:#000;text-decoration:none;opacity:.75}.close:not(:disabled):not(.disabled){cursor:pointer}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;outline:0}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out, -webkit-transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-25%);transform:translate(0,-25%)}@media screen and (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - (.5rem * 2))}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;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;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #e9ecef;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #e9ecef}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.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-centered{min-height:calc(100% - (1.75rem * 2))}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg{max-width:800px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\";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{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\";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 .arrow{position:absolute;display:block;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) * -1)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::after,.bs-popover-top .arrow::before{border-width:.5rem .5rem 0}.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::before{bottom: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-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) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::after,.bs-popover-right .arrow::before{border-width:.5rem .5rem .5rem 0}.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::before{left: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-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) * -1)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::after,.bs-popover-bottom .arrow::before{border-width:0 .5rem .5rem .5rem}.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::before{top:0;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after{top:1px;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) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::after,.bs-popover-left .arrow::before{border-width:.5rem 0 .5rem .5rem}.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::before{right:0;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-left .arrow::after{right:1px;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:inherit;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-inner{position:relative;width:100%;overflow:hidden}.carousel-item{position:relative;display:none;-ms-flex-align:center;align-items:center;width:100%;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease, -webkit-transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}@media screen and (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.carousel-item-next,.carousel-item-prev{position:absolute;top:0}.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.active.carousel-item-right,.carousel-item-next{-webkit-transform:translateX(100%);transform:translateX(100%)}@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)){.active.carousel-item-right,.carousel-item-next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translateX(-100%);transform:translateX(-100%)}@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)){.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.carousel-fade .carousel-item{opacity:0;transition-duration:.6s;transition-property:opacity}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{opacity:0}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5}.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:transparent no-repeat center center;background-size:100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\")}.carousel-indicators{position:absolute;right:0;bottom:10px;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{position:relative;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:rgba(255,255,255,.5)}.carousel-indicators li::before{position:absolute;top:-10px;left:0;display:inline-block;width:100%;height:10px;content:\"\"}.carousel-indicators li::after{position:absolute;bottom:-10px;left:0;display:inline-block;width:100%;height:10px;content:\"\"}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.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{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-circle{border-radius:50%!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:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!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:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!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:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!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:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!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:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!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:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!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{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;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}}.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{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@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;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}.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-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-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-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-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-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}.text-justify{text-align:justify!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-normal{font-weight:400!important}.font-weight-bold{font-weight:700!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:#0062cc!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#545b62!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#1e7e34!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#117a8b!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#d39e00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#bd2130!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#dae0e5!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#1d2124!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:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.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}body{min-width:992px!important}.container{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}}/*# sourceMappingURL=bootstrap.min.css.map */\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9ib290c3RyYXAuc2NzcyIsIm5vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9fcm9vdC5zY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9kaXN0L2Nzcy9kaXN0L2Nzcy9ib290c3RyYXAuY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL19yZWJvb3Quc2NzcyIsIm5vZGVfbW9kdWxlcy9ib290c3RyYXAvZGlzdC9jc3MvYm9vdHN0cmFwLmNzcyIsIm5vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2hvdmVyLnNjc3MiLCJub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvX3R5cGUuc2NzcyIsIm5vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2xpc3RzLnNjc3MiLCJub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvX2ltYWdlcy5zY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9faW1hZ2Uuc2NzcyIsIm5vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JvcmRlci1yYWRpdXMuc2NzcyIsIm5vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9fY29kZS5zY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL19ncmlkLnNjc3MiLCJub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19ncmlkLnNjc3MiLCJub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19icmVha3BvaW50cy5zY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fZ3JpZC1mcmFtZXdvcmsuc2NzcyIsIm5vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9fdGFibGVzLnNjc3MiLCJub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL190YWJsZS1yb3cuc2NzcyIsIm5vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9fZm9ybXMuc2NzcyIsIm5vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX3RyYW5zaXRpb24uc2NzcyIsIm5vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2Zvcm1zLnNjc3MiLCJub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19ncmFkaWVudHMuc2NzcyIsIm5vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9fYnV0dG9ucy5zY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYnV0dG9ucy5zY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL190cmFuc2l0aW9ucy5zY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL19kcm9wZG93bi5zY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fY2FyZXQuc2NzcyIsIm5vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX25hdi1kaXZpZGVyLnNjc3MiLCJub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvX2J1dHRvbi1ncm91cC5zY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL19pbnB1dC1ncm91cC5zY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL19jdXN0b20tZm9ybXMuc2NzcyIsIm5vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9fbmF2LnNjc3MiLCJub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvX25hdmJhci5zY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL19jYXJkLnNjc3MiLCJub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvX2JyZWFkY3J1bWIuc2NzcyIsIm5vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9fcGFnaW5hdGlvbi5zY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fcGFnaW5hdGlvbi5zY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL19iYWRnZS5zY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYmFkZ2Uuc2NzcyIsIm5vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9fanVtYm90cm9uLnNjc3MiLCJub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvX2FsZXJ0LnNjc3MiLCJub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19hbGVydC5zY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL19wcm9ncmVzcy5zY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL19tZWRpYS5zY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL19saXN0LWdyb3VwLnNjc3MiLCJub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19saXN0LWdyb3VwLnNjc3MiLCJub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvX2Nsb3NlLnNjc3MiLCJub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvX21vZGFsLnNjc3MiLCJub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvX3Rvb2x0aXAuc2NzcyIsIm5vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX3Jlc2V0LXRleHQuc2NzcyIsIm5vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9fcG9wb3Zlci5zY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL19jYXJvdXNlbC5zY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL3V0aWxpdGllcy9fYWxpZ24uc2NzcyIsIm5vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JhY2tncm91bmQtdmFyaWFudC5zY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL3V0aWxpdGllcy9fYmFja2dyb3VuZC5zY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL3V0aWxpdGllcy9fYm9yZGVycy5zY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fY2xlYXJmaXguc2NzcyIsIm5vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy91dGlsaXRpZXMvX2Rpc3BsYXkuc2NzcyIsIm5vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy91dGlsaXRpZXMvX2VtYmVkLnNjc3MiLCJub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvdXRpbGl0aWVzL19mbGV4LnNjc3MiLCJub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvdXRpbGl0aWVzL19mbG9hdC5zY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fZmxvYXQuc2NzcyIsIm5vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy91dGlsaXRpZXMvX3Bvc2l0aW9uLnNjc3MiLCJub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvdXRpbGl0aWVzL19zY3JlZW5yZWFkZXJzLnNjc3MiLCJub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19zY3JlZW4tcmVhZGVyLnNjc3MiLCJub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvdXRpbGl0aWVzL19zaGFkb3dzLnNjc3MiLCJub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvdXRpbGl0aWVzL19zaXppbmcuc2NzcyIsIm5vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy91dGlsaXRpZXMvX3NwYWNpbmcuc2NzcyIsIm5vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy91dGlsaXRpZXMvX3RleHQuc2NzcyIsIm5vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX3RleHQtdHJ1bmNhdGUuc2NzcyIsIm5vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX3RleHQtZW1waGFzaXMuc2NzcyIsIm5vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX3RleHQtaGlkZS5zY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL3V0aWxpdGllcy9fdmlzaWJpbGl0eS5zY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fdmlzaWJpbGl0eS5zY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL19wcmludC5zY3NzIiwibm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9kaXN0L2Nzcy9ib290c3RyYXAubWluLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7RUNBQSxDQUFBLE1BR0ksY0FBQSxDQUFBLGdCQUFBLENBQUEsZ0JBQUEsQ0FBQSxjQUFBLENBQUEsYUFBQSxDQUFBLGdCQUFBLENBQUEsZ0JBQUEsQ0FBQSxlQUFBLENBQUEsY0FBQSxDQUFBLGNBQUEsQ0FBQSxZQUFBLENBQUEsY0FBQSxDQUFBLG1CQUlBLENBQUEsaUJBQUEsQ0FBQSxtQkFBQSxDQUFBLGlCQUFBLENBQUEsY0FBQSxDQUFBLGlCQUFBLENBQUEsZ0JBQUEsQ0FBQSxlQUFBLENBQUEsY0FJQSxDQUFBLGlCQUFBLENBQUEscUJBQUEsQ0FBQSxxQkFBQSxDQUFBLHFCQUFBLENBQUEsc0JBS0YsQ0FBQSxvS0FDQSxDQUFBLHNHQ3NCRixDQUFBLG1CQ2hCRSxxQkFHRixDQUFBLEtBQ0Usc0JBQ0EsQ0FBQSxnQkFDQSxDQUFBLDZCQUNBLENBQUEseUJBQ0EsQ0FBQSw0QkFDQSxDQUFBLHVDQUtBLENBQUEsY0FDRSxrQkFNSixDQUFBLHNFQUNFLGFBV0YsQ0FBQSxLQUNFLFFBQ0EsQ0FBQSx1SkFDQSxDQUFBLGNBQ0EsQ0FBQSxlQUNBLENBQUEsZUFDQSxDQUFBLGFBQ0EsQ0FBQSxlQUNBLENBQUEscUJDT0YsQ0FBQSxzQkRFRSxtQkFTRixDQUNFLEdBQUEsc0JBQ0EsQ0FBQSxRQUNBLENBQUEsZ0JBYUYsQ0FBQSxrQkFDRSxZQUNBLENBQUEsbUJBU0EsQ0FBQSxFQUFBLFlBQ0EsQ0FBQSxrQkRsQkYsQ0FBQSxzQ0M4QkUseUJBQ0EsQ0FBQSx3Q0FBQSxDQUFBLGdDQUNBLENBQUEsV0FDQSxDQUFBLGVBR0YsQ0FBQSxRQUNFLGtC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LGNBQ0UsdUJqRVVGLENBQUEsMENpRU5JLHVCQUxKLENBQUEsYUFDRSx1QmpFVUYsQ0FBQSx3Q2lFTkksdUJBTEosQ0FBQSxZQUNFLHVCakVVRixDQUFBLHNDaUVOSSx1QkFMSixDQUFBLFdBQ0UsdUJqRVVGLENBQUEsb0NpRU5JLHVCRnFDTixDQUFBLFdBQWEsdUJBQ2IsQ0FBQSxZQUFjLHVCQUVkLENBQUEsZUFBaUIsOEJBQ2pCLENBQUEsZUFBaUIsb0NBSWpCLENBQUEsV0dwREUsVUFDQSxDQUFBLGlCQUNBLENBQUEsZ0JBQ0EsQ0FBQSw0QkFDQSxDQUFBLFFDSEYsQ0FBQSxTQ0NFLDRCREdGLENBQUEsV0NIRSwyQkNNQSxDQUFBLGF4RThyUkEsbUJ3RXhyUkksMEJBRUEsQ0FBQSx5QkFHRixDQUFBLFlBRUkseUJBU0osQ0FBQSxtQkFDRSw0QnZFZ05OLENBQUEsSXVFak1NLDhCeEVzcVJKLENBQUEsZXdFbHFSSSx3QkFDQSxDQUFBLHVCQVFGLENBQUEsTUFDRSwwQnhFZ3FSSixDQUFBLE93RTNwUkksdUJ4RStwUkosQ0FDQSxRd0UxcFJJLFNBQ0EsQ0FBQSxRQUdGLEN4RTJwUkYsTXdFenBSSSxzQkFRRixDQUFBLE1BQ0UsT3ZFakNOLENBQUEsS3VFb0NNLHlCOUR2RkosQ0FBQSxXOEQwRkkseUIxQzlFTixDQUFBLFEwQ21GTSxZckMvRk4sQ0FBQSxPcUNrR00scUIxRG5HTixDQUFBLE8wRHVHTSxrQ0FERixDQUFBLG9CQUtJLCtCeEVvcFJOLENBQUEsc0N3RTdvUk0sa0MxRGNSLENBQUEsWTBEVE0sYXhFaXBSSixDQUFBLDJFd0Uzb1JNLG9CMURmUixDQUFBLHNCMERvQk0sYUFDQSxDQUFBLG9CQUFBLENBQUEsQ0NqSU4sNENBQTRDIiwiZmlsZSI6Im5vZGVfbW9kdWxlcy9ib290c3RyYXAvZGlzdC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEJvb3RzdHJhcCB2NC4xLjEgKGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbS8pXG4gKiBDb3B5cmlnaHQgMjAxMS0yMDE4IFRoZSBCb290c3RyYXAgQXV0aG9yc1xuICogQ29weXJpZ2h0IDIwMTEtMjAxOCBUd2l0dGVyLCBJbmMuXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21hc3Rlci9MSUNFTlNFKVxuICovXG5cbkBpbXBvcnQgXCJmdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcbkBpbXBvcnQgXCJyb290XCI7XG5AaW1wb3J0IFwicmVib290XCI7XG5AaW1wb3J0IFwidHlwZVwiO1xuQGltcG9ydCBcImltYWdlc1wiO1xuQGltcG9ydCBcImNvZGVcIjtcbkBpbXBvcnQgXCJncmlkXCI7XG5AaW1wb3J0IFwidGFibGVzXCI7XG5AaW1wb3J0IFwiZm9ybXNcIjtcbkBpbXBvcnQgXCJidXR0b25zXCI7XG5AaW1wb3J0IFwidHJhbnNpdGlvbnNcIjtcbkBpbXBvcnQgXCJkcm9wZG93blwiO1xuQGltcG9ydCBcImJ1dHRvbi1ncm91cFwiO1xuQGltcG9ydCBcImlucHV0LWdyb3VwXCI7XG5AaW1wb3J0IFwiY3VzdG9tLWZvcm1zXCI7XG5AaW1wb3J0IFwibmF2XCI7XG5AaW1wb3J0IFwibmF2YmFyXCI7XG5AaW1wb3J0IFwiY2FyZFwiO1xuQGltcG9ydCBcImJyZWFkY3J1bWJcIjtcbkBpbXBvcnQgXCJwYWdpbmF0aW9uXCI7XG5AaW1wb3J0IFwiYmFkZ2VcIjtcbkBpbXBvcnQgXCJqdW1ib3Ryb25cIjtcbkBpbXBvcnQgXCJhbGVydFwiO1xuQGltcG9ydCBcInByb2dyZXNzXCI7XG5AaW1wb3J0IFwibWVkaWFcIjtcbkBpbXBvcnQgXCJsaXN0LWdyb3VwXCI7XG5AaW1wb3J0IFwiY2xvc2VcIjtcbkBpbXBvcnQgXCJtb2RhbFwiO1xuQGltcG9ydCBcInRvb2x0aXBcIjtcbkBpbXBvcnQgXCJwb3BvdmVyXCI7XG5AaW1wb3J0IFwiY2Fyb3VzZWxcIjtcbkBpbXBvcnQgXCJ1dGlsaXRpZXNcIjtcbkBpbXBvcnQgXCJwcmludFwiO1xuIiwiOnJvb3Qge1xuICAvLyBDdXN0b20gdmFyaWFibGUgdmFsdWVzIG9ubHkgc3VwcG9ydCBTYXNzU2NyaXB0IGluc2lkZSBgI3t9YC5cbiAgQGVhY2ggJGNvbG9yLCAkdmFsdWUgaW4gJGNvbG9ycyB7XG4gICAgLS0jeyRjb2xvcn06ICN7JHZhbHVlfTtcbiAgfVxuXG4gIEBlYWNoICRjb2xvciwgJHZhbHVlIGluICR0aGVtZS1jb2xvcnMge1xuICAgIC0tI3skY29sb3J9OiAjeyR2YWx1ZX07XG4gIH1cblxuICBAZWFjaCAkYnAsICR2YWx1ZSBpbiAkZ3JpZC1icmVha3BvaW50cyB7XG4gICAgLS1icmVha3BvaW50LSN7JGJwfTogI3skdmFsdWV9O1xuICB9XG5cbiAgLy8gVXNlIGBpbnNwZWN0YCBmb3IgbGlzdHMgc28gdGhhdCBxdW90ZWQgaXRlbXMga2VlcCB0aGUgcXVvdGVzLlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3Mvc2Fzcy9pc3N1ZXMvMjM4MyNpc3N1ZWNvbW1lbnQtMzM2MzQ5MTcyXG4gIC0tZm9udC1mYW1pbHktc2Fucy1zZXJpZjogI3tpbnNwZWN0KCRmb250LWZhbWlseS1zYW5zLXNlcmlmKX07XG4gIC0tZm9udC1mYW1pbHktbW9ub3NwYWNlOiAje2luc3BlY3QoJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSl9O1xufVxuIiwiLyohXG4gKiBCb290c3RyYXAgdjQuMS4xIChodHRwczovL2dldGJvb3RzdHJhcC5jb20vKVxuICogQ29weXJpZ2h0IDIwMTEtMjAxOCBUaGUgQm9vdHN0cmFwIEF1dGhvcnNcbiAqIENvcHlyaWdodCAyMDExLTIwMTggVHdpdHRlciwgSW5jLlxuICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYXN0ZXIvTElDRU5TRSlcbiAqL1xuOnJvb3Qge1xuICAtLWJsdWU6ICMwMDdiZmY7XG4gIC0taW5kaWdvOiAjNjYxMGYyO1xuICAtLXB1cnBsZTogIzZmNDJjMTtcbiAgLS1waW5rOiAjZTgzZThjO1xuICAtLXJlZDogI2RjMzU0NTtcbiAgLS1vcmFuZ2U6ICNmZDdlMTQ7XG4gIC0teWVsbG93OiAjZmZjMTA3O1xuICAtLWdyZWVuOiAjMjhhNzQ1O1xuICAtLXRlYWw6ICMyMGM5OTc7XG4gIC0tY3lhbjogIzE3YTJiODtcbiAgLS13aGl0ZTogI2ZmZjtcbiAgLS1ncmF5OiAjNmM3NTdkO1xuICAtLWdyYXktZGFyazogIzM0M2E0MDtcbiAgLS1wcmltYXJ5OiAjMDA3YmZmO1xuICAtLXNlY29uZGFyeTogIzZjNzU3ZDtcbiAgLS1zdWNjZXNzOiAjMjhhNzQ1O1xuICAtLWluZm86ICMxN2EyYjg7XG4gIC0td2FybmluZzogI2ZmYzEwNztcbiAgLS1kYW5nZXI6ICNkYzM1NDU7XG4gIC0tbGlnaHQ6ICNmOGY5ZmE7XG4gIC0tZGFyazogIzM0M2E0MDtcbiAgLS1icmVha3BvaW50LXhzOiAwO1xuICAtLWJyZWFrcG9pbnQtc206IDU3NnB4O1xuICAtLWJyZWFrcG9pbnQtbWQ6IDc2OHB4O1xuICAtLWJyZWFrcG9pbnQtbGc6IDk5MnB4O1xuICAtLWJyZWFrcG9pbnQteGw6IDEyMDBweDtcbiAgLS1mb250LWZhbWlseS1zYW5zLXNlcmlmOiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIEFyaWFsLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIjtcbiAgLS1mb250LWZhbWlseS1tb25vc3BhY2U6IFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG59XG5cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogc2Nyb2xsYmFyO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG5ALW1zLXZpZXdwb3J0IHtcbiAgd2lkdGg6IGRldmljZS13aWR0aDtcbn1cblxuYXJ0aWNsZSwgYXNpZGUsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWFpbiwgbmF2LCBzZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG4gIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIEFyaWFsLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIjtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzIxMjUyOTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuW3RhYmluZGV4PVwiLTFcIl06Zm9jdXMge1xuICBvdXRsaW5lOiAwICFpbXBvcnRhbnQ7XG59XG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG59XG5cbnAge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG5hYmJyW3RpdGxlXSxcbmFiYnJbZGF0YS1vcmlnaW5hbC10aXRsZV0ge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbiAgY3Vyc29yOiBoZWxwO1xuICBib3JkZXItYm90dG9tOiAwO1xufVxuXG5hZGRyZXNzIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxub2wsXG51bCxcbmRsIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxub2wgb2wsXG51bCB1bCxcbm9sIHVsLFxudWwgb2wge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG5kdCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbmRkIHtcbiAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG5ibG9ja3F1b3RlIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbn1cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuc3ViLFxuc3VwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLS41ZW07XG59XG5cbmEge1xuICBjb2xvcjogIzAwN2JmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0cztcbn1cblxuYTpob3ZlciB7XG4gIGNvbG9yOiAjMDA1NmIzO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuYTpub3QoW2hyZWZdKTpub3QoW3RhYmluZGV4XSkge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5hOm5vdChbaHJlZl0pOm5vdChbdGFiaW5kZXhdKTpob3ZlciwgYTpub3QoW2hyZWZdKTpub3QoW3RhYmluZGV4XSk6Zm9jdXMge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5hOm5vdChbaHJlZl0pOm5vdChbdGFiaW5kZXhdKTpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG5cbnByZSxcbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG5wcmUge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBvdmVyZmxvdzogYXV0bztcbiAgLW1zLW92ZXJmbG93LXN0eWxlOiBzY3JvbGxiYXI7XG59XG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMCAwIDFyZW07XG59XG5cbmltZyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG5cbmNhcHRpb24ge1xuICBwYWRkaW5nLXRvcDogMC43NXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuNzVyZW07XG4gIGNvbG9yOiAjNmM3NTdkO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjYXB0aW9uLXNpZGU6IGJvdHRvbTtcbn1cblxudGgge1xuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xufVxuXG5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG5idXR0b24ge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG5idXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiAxcHggZG90dGVkO1xuICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG59XG5cbmlucHV0LFxuYnV0dG9uLFxuc2VsZWN0LFxub3B0Z3JvdXAsXG50ZXh0YXJlYSB7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cbmJ1dHRvbixcbmlucHV0IHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG5idXR0b24sXG5odG1sIFt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0sXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAwO1xufVxuXG5pbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbmlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuaW5wdXRbdHlwZT1cIm1vbnRoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBsaXN0Ym94O1xufVxuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICByZXNpemU6IHZlcnRpY2FsO1xufVxuXG5maWVsZHNldCB7XG4gIG1pbi13aWR0aDogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDA7XG59XG5cbmxlZ2VuZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cblxucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG5vdXRwdXQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNixcbi5oMSwgLmgyLCAuaDMsIC5oNCwgLmg1LCAuaDYge1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuaDEsIC5oMSB7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xufVxuXG5oMiwgLmgyIHtcbiAgZm9udC1zaXplOiAycmVtO1xufVxuXG5oMywgLmgzIHtcbiAgZm9udC1zaXplOiAxLjc1cmVtO1xufVxuXG5oNCwgLmg0IHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG59XG5cbmg1LCAuaDUge1xuICBmb250LXNpemU6IDEuMjVyZW07XG59XG5cbmg2LCAuaDYge1xuICBmb250LXNpemU6IDFyZW07XG59XG5cbi5sZWFkIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuXG4uZGlzcGxheS0xIHtcbiAgZm9udC1zaXplOiA2cmVtO1xuICBmb250LXdlaWdodDogMzAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG4uZGlzcGxheS0yIHtcbiAgZm9udC1zaXplOiA1LjVyZW07XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5cbi5kaXNwbGF5LTMge1xuICBmb250LXNpemU6IDQuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cblxuLmRpc3BsYXktNCB7XG4gIGZvbnQtc2l6ZTogMy41cmVtO1xuICBmb250LXdlaWdodDogMzAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG5ociB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuc21hbGwsXG4uc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxubWFyayxcbi5tYXJrIHtcbiAgcGFkZGluZzogMC4yZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2Y4ZTM7XG59XG5cbi5saXN0LXVuc3R5bGVkIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4ubGlzdC1pbmxpbmUge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5saXN0LWlubGluZS1pdGVtIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ubGlzdC1pbmxpbmUtaXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG59XG5cbi5pbml0aWFsaXNtIHtcbiAgZm9udC1zaXplOiA5MCU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5ibG9ja3F1b3RlIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xufVxuXG4uYmxvY2txdW90ZS1mb290ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiA4MCU7XG4gIGNvbG9yOiAjNmM3NTdkO1xufVxuXG4uYmxvY2txdW90ZS1mb290ZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyMDE0IFxcMDBBMFwiO1xufVxuXG4uaW1nLWZsdWlkIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi5pbWctdGh1bWJuYWlsIHtcbiAgcGFkZGluZzogMC4yNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RlZTJlNjtcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi5maWd1cmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5maWd1cmUtaW1nIHtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLmZpZ3VyZS1jYXB0aW9uIHtcbiAgZm9udC1zaXplOiA5MCU7XG4gIGNvbG9yOiAjNmM3NTdkO1xufVxuXG5jb2RlIHtcbiAgZm9udC1zaXplOiA4Ny41JTtcbiAgY29sb3I6ICNlODNlOGM7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG5cbmEgPiBjb2RlIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbmtiZCB7XG4gIHBhZGRpbmc6IDAuMnJlbSAwLjRyZW07XG4gIGZvbnQtc2l6ZTogODcuNSU7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyNTI5O1xuICBib3JkZXItcmFkaXVzOiAwLjJyZW07XG59XG5cbmtiZCBrYmQge1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IDEwMCU7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbnByZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDg3LjUlO1xuICBjb2xvcjogIzIxMjUyOTtcbn1cblxucHJlIGNvZGUge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG59XG5cbi5wcmUtc2Nyb2xsYWJsZSB7XG4gIG1heC1oZWlnaHQ6IDM0MHB4O1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG5cbi5jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLmNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1NDBweDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA3MjBweDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA5NjBweDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMTE0MHB4O1xuICB9XG59XG5cbi5jb250YWluZXItZmx1aWQge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4ucm93IHtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC1tcy1mbGV4LXdyYXA6IHdyYXA7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbiAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xufVxuXG4ubm8tZ3V0dGVycyB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5uby1ndXR0ZXJzID4gLmNvbCxcbi5uby1ndXR0ZXJzID4gW2NsYXNzKj1cImNvbC1cIl0ge1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi5jb2wtMSwgLmNvbC0yLCAuY29sLTMsIC5jb2wtNCwgLmNvbC01LCAuY29sLTYsIC5jb2wtNywgLmNvbC04LCAuY29sLTksIC5jb2wtMTAsIC5jb2wtMTEsIC5jb2wtMTIsIC5jb2wsXG4uY29sLWF1dG8sIC5jb2wtc20tMSwgLmNvbC1zbS0yLCAuY29sLXNtLTMsIC5jb2wtc20tNCwgLmNvbC1zbS01LCAuY29sLXNtLTYsIC5jb2wtc20tNywgLmNvbC1zbS04LCAuY29sLXNtLTksIC5jb2wtc20tMTAsIC5jb2wtc20tMTEsIC5jb2wtc20tMTIsIC5jb2wtc20sXG4uY29sLXNtLWF1dG8sIC5jb2wtbWQtMSwgLmNvbC1tZC0yLCAuY29sLW1kLTMsIC5jb2wtbWQtNCwgLmNvbC1tZC01LCAuY29sLW1kLTYsIC5jb2wtbWQtNywgLmNvbC1tZC04LCAuY29sLW1kLTksIC5jb2wtbWQtMTAsIC5jb2wtbWQtMTEsIC5jb2wtbWQtMTIsIC5jb2wtbWQsXG4uY29sLW1kLWF1dG8sIC5jb2wtbGctMSwgLmNvbC1sZy0yLCAuY29sLWxnLTMsIC5jb2wtbGctNCwgLmNvbC1sZy01LCAuY29sLWxnLTYsIC5jb2wtbGctNywgLmNvbC1sZy04LCAuY29sLWxnLTksIC5jb2wtbGctMTAsIC5jb2wtbGctMTEsIC5jb2wtbGctMTIsIC5jb2wtbGcsXG4uY29sLWxnLWF1dG8sIC5jb2wteGwtMSwgLmNvbC14bC0yLCAuY29sLXhsLTMsIC5jb2wteGwtNCwgLmNvbC14bC01LCAuY29sLXhsLTYsIC5jb2wteGwtNywgLmNvbC14bC04LCAuY29sLXhsLTksIC5jb2wteGwtMTAsIC5jb2wteGwtMTEsIC5jb2wteGwtMTIsIC5jb2wteGwsXG4uY29sLXhsLWF1dG8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbn1cblxuLmNvbCB7XG4gIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAwO1xuICBmbGV4LWJhc2lzOiAwO1xuICAtbXMtZmxleC1wb3NpdGl2ZTogMTtcbiAgZmxleC1ncm93OiAxO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5jb2wtYXV0byB7XG4gIC1tcy1mbGV4OiAwIDAgYXV0bztcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG5cbi5jb2wtMSB7XG4gIC1tcy1mbGV4OiAwIDAgOC4zMzMzMzMlO1xuICBmbGV4OiAwIDAgOC4zMzMzMzMlO1xuICBtYXgtd2lkdGg6IDguMzMzMzMzJTtcbn1cblxuLmNvbC0yIHtcbiAgLW1zLWZsZXg6IDAgMCAxNi42NjY2NjclO1xuICBmbGV4OiAwIDAgMTYuNjY2NjY3JTtcbiAgbWF4LXdpZHRoOiAxNi42NjY2NjclO1xufVxuXG4uY29sLTMge1xuICAtbXMtZmxleDogMCAwIDI1JTtcbiAgZmxleDogMCAwIDI1JTtcbiAgbWF4LXdpZHRoOiAyNSU7XG59XG5cbi5jb2wtNCB7XG4gIC1tcy1mbGV4OiAwIDAgMzMuMzMzMzMzJTtcbiAgZmxleDogMCAwIDMzLjMzMzMzMyU7XG4gIG1heC13aWR0aDogMzMuMzMzMzMzJTtcbn1cblxuLmNvbC01IHtcbiAgLW1zLWZsZXg6IDAgMCA0MS42NjY2NjclO1xuICBmbGV4OiAwIDAgNDEuNjY2NjY3JTtcbiAgbWF4LXdpZHRoOiA0MS42NjY2NjclO1xufVxuXG4uY29sLTYge1xuICAtbXMtZmxleDogMCAwIDUwJTtcbiAgZmxleDogMCAwIDUwJTtcbiAgbWF4LXdpZHRoOiA1MCU7XG59XG5cbi5jb2wtNyB7XG4gIC1tcy1mbGV4OiAwIDAgNTguMzMzMzMzJTtcbiAgZmxleDogMCAwIDU4LjMzMzMzMyU7XG4gIG1heC13aWR0aDogNTguMzMzMzMzJTtcbn1cblxuLmNvbC04IHtcbiAgLW1zLWZsZXg6IDAgMCA2Ni42NjY2NjclO1xuICBmbGV4OiAwIDAgNjYuNjY2NjY3JTtcbiAgbWF4LXdpZHRoOiA2Ni42NjY2NjclO1xufVxuXG4uY29sLTkge1xuICAtbXMtZmxleDogMCAwIDc1JTtcbiAgZmxleDogMCAwIDc1JTtcbiAgbWF4LXdpZHRoOiA3NSU7XG59XG5cbi5jb2wtMTAge1xuICAtbXMtZmxleDogMCAwIDgzLjMzMzMzMyU7XG4gIGZsZXg6IDAgMCA4My4zMzMzMzMlO1xuICBtYXgtd2lkdGg6IDgzLjMzMzMzMyU7XG59XG5cbi5jb2wtMTEge1xuICAtbXMtZmxleDogMCAwIDkxLjY2NjY2NyU7XG4gIGZsZXg6IDAgMCA5MS42NjY2NjclO1xuICBtYXgtd2lkdGg6IDkxLjY2NjY2NyU7XG59XG5cbi5jb2wtMTIge1xuICAtbXMtZmxleDogMCAwIDEwMCU7XG4gIGZsZXg6IDAgMCAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5vcmRlci1maXJzdCB7XG4gIC1tcy1mbGV4LW9yZGVyOiAtMTtcbiAgb3JkZXI6IC0xO1xufVxuXG4ub3JkZXItbGFzdCB7XG4gIC1tcy1mbGV4LW9yZGVyOiAxMztcbiAgb3JkZXI6IDEzO1xufVxuXG4ub3JkZXItMCB7XG4gIC1tcy1mbGV4LW9yZGVyOiAwO1xuICBvcmRlcjogMDtcbn1cblxuLm9yZGVyLTEge1xuICAtbXMtZmxleC1vcmRlcjogMTtcbiAgb3JkZXI6IDE7XG59XG5cbi5vcmRlci0yIHtcbiAgLW1zLWZsZXgtb3JkZXI6IDI7XG4gIG9yZGVyOiAyO1xufVxuXG4ub3JkZXItMyB7XG4gIC1tcy1mbGV4LW9yZGVyOiAzO1xuICBvcmRlcjogMztcbn1cblxuLm9yZGVyLTQge1xuICAtbXMtZmxleC1vcmRlcjogNDtcbiAgb3JkZXI6IDQ7XG59XG5cbi5vcmRlci01IHtcbiAgLW1zLWZsZXgtb3JkZXI6IDU7XG4gIG9yZGVyOiA1O1xufVxuXG4ub3JkZXItNiB7XG4gIC1tcy1mbGV4LW9yZGVyOiA2O1xuICBvcmRlcjogNjtcbn1cblxuLm9yZGVyLTcge1xuICAtbXMtZmxleC1vcmRlcjogNztcbiAgb3JkZXI6IDc7XG59XG5cbi5vcmRlci04IHtcbiAgLW1zLWZsZXgtb3JkZXI6IDg7XG4gIG9yZGVyOiA4O1xufVxuXG4ub3JkZXItOSB7XG4gIC1tcy1mbGV4LW9yZGVyOiA5O1xuICBvcmRlcjogOTtcbn1cblxuLm9yZGVyLTEwIHtcbiAgLW1zLWZsZXgtb3JkZXI6IDEwO1xuICBvcmRlcjogMTA7XG59XG5cbi5vcmRlci0xMSB7XG4gIC1tcy1mbGV4LW9yZGVyOiAxMTtcbiAgb3JkZXI6IDExO1xufVxuXG4ub3JkZXItMTIge1xuICAtbXMtZmxleC1vcmRlcjogMTI7XG4gIG9yZGVyOiAxMjtcbn1cblxuLm9mZnNldC0xIHtcbiAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzJTtcbn1cblxuLm9mZnNldC0yIHtcbiAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NyU7XG59XG5cbi5vZmZzZXQtMyB7XG4gIG1hcmdpbi1sZWZ0OiAyNSU7XG59XG5cbi5vZmZzZXQtNCB7XG4gIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMlO1xufVxuXG4ub2Zmc2V0LTUge1xuICBtYXJnaW4tbGVmdDogNDEuNjY2NjY3JTtcbn1cblxuLm9mZnNldC02IHtcbiAgbWFyZ2luLWxlZnQ6IDUwJTtcbn1cblxuLm9mZnNldC03IHtcbiAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMyU7XG59XG5cbi5vZmZzZXQtOCB7XG4gIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjclO1xufVxuXG4ub2Zmc2V0LTkge1xuICBtYXJnaW4tbGVmdDogNzUlO1xufVxuXG4ub2Zmc2V0LTEwIHtcbiAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMyU7XG59XG5cbi5vZmZzZXQtMTEge1xuICBtYXJnaW4tbGVmdDogOTEuNjY2NjY3JTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gIC5jb2wtc20ge1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAwO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICAuY29sLXNtLWF1dG8ge1xuICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cbiAgLmNvbC1zbS0xIHtcbiAgICAtbXMtZmxleDogMCAwIDguMzMzMzMzJTtcbiAgICBmbGV4OiAwIDAgOC4zMzMzMzMlO1xuICAgIG1heC13aWR0aDogOC4zMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tMiB7XG4gICAgLW1zLWZsZXg6IDAgMCAxNi42NjY2NjclO1xuICAgIGZsZXg6IDAgMCAxNi42NjY2NjclO1xuICAgIG1heC13aWR0aDogMTYuNjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLTMge1xuICAgIC1tcy1mbGV4OiAwIDAgMjUlO1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7XG4gIH1cbiAgLmNvbC1zbS00IHtcbiAgICAtbXMtZmxleDogMCAwIDMzLjMzMzMzMyU7XG4gICAgZmxleDogMCAwIDMzLjMzMzMzMyU7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tNSB7XG4gICAgLW1zLWZsZXg6IDAgMCA0MS42NjY2NjclO1xuICAgIGZsZXg6IDAgMCA0MS42NjY2NjclO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLTYge1xuICAgIC1tcy1mbGV4OiAwIDAgNTAlO1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gIH1cbiAgLmNvbC1zbS03IHtcbiAgICAtbXMtZmxleDogMCAwIDU4LjMzMzMzMyU7XG4gICAgZmxleDogMCAwIDU4LjMzMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA1OC4zMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tOCB7XG4gICAgLW1zLWZsZXg6IDAgMCA2Ni42NjY2NjclO1xuICAgIGZsZXg6IDAgMCA2Ni42NjY2NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLTkge1xuICAgIC1tcy1mbGV4OiAwIDAgNzUlO1xuICAgIGZsZXg6IDAgMCA3NSU7XG4gICAgbWF4LXdpZHRoOiA3NSU7XG4gIH1cbiAgLmNvbC1zbS0xMCB7XG4gICAgLW1zLWZsZXg6IDAgMCA4My4zMzMzMzMlO1xuICAgIGZsZXg6IDAgMCA4My4zMzMzMzMlO1xuICAgIG1heC13aWR0aDogODMuMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLTExIHtcbiAgICAtbXMtZmxleDogMCAwIDkxLjY2NjY2NyU7XG4gICAgZmxleDogMCAwIDkxLjY2NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NjclO1xuICB9XG4gIC5jb2wtc20tMTIge1xuICAgIC1tcy1mbGV4OiAwIDAgMTAwJTtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgLm9yZGVyLXNtLWZpcnN0IHtcbiAgICAtbXMtZmxleC1vcmRlcjogLTE7XG4gICAgb3JkZXI6IC0xO1xuICB9XG4gIC5vcmRlci1zbS1sYXN0IHtcbiAgICAtbXMtZmxleC1vcmRlcjogMTM7XG4gICAgb3JkZXI6IDEzO1xuICB9XG4gIC5vcmRlci1zbS0wIHtcbiAgICAtbXMtZmxleC1vcmRlcjogMDtcbiAgICBvcmRlcjogMDtcbiAgfVxuICAub3JkZXItc20tMSB7XG4gICAgLW1zLWZsZXgtb3JkZXI6IDE7XG4gICAgb3JkZXI6IDE7XG4gIH1cbiAgLm9yZGVyLXNtLTIge1xuICAgIC1tcy1mbGV4LW9yZGVyOiAyO1xuICAgIG9yZGVyOiAyO1xuICB9XG4gIC5vcmRlci1zbS0zIHtcbiAgICAtbXMtZmxleC1vcmRlcjogMztcbiAgICBvcmRlcjogMztcbiAgfVxuICAub3JkZXItc20tNCB7XG4gICAgLW1zLWZsZXgtb3JkZXI6IDQ7XG4gICAgb3JkZXI6IDQ7XG4gIH1cbiAgLm9yZGVyLXNtLTUge1xuICAgIC1tcy1mbGV4LW9yZGVyOiA1O1xuICAgIG9yZGVyOiA1O1xuICB9XG4gIC5vcmRlci1zbS02IHtcbiAgICAtbXMtZmxleC1vcmRlcjogNjtcbiAgICBvcmRlcjogNjtcbiAgfVxuICAub3JkZXItc20tNyB7XG4gICAgLW1zLWZsZXgtb3JkZXI6IDc7XG4gICAgb3JkZXI6IDc7XG4gIH1cbiAgLm9yZGVyLXNtLTgge1xuICAgIC1tcy1mbGV4LW9yZGVyOiA4O1xuICAgIG9yZGVyOiA4O1xuICB9XG4gIC5vcmRlci1zbS05IHtcbiAgICAtbXMtZmxleC1vcmRlcjogOTtcbiAgICBvcmRlcjogOTtcbiAgfVxuICAub3JkZXItc20tMTAge1xuICAgIC1tcy1mbGV4LW9yZGVyOiAxMDtcbiAgICBvcmRlcjogMTA7XG4gIH1cbiAgLm9yZGVyLXNtLTExIHtcbiAgICAtbXMtZmxleC1vcmRlcjogMTE7XG4gICAgb3JkZXI6IDExO1xuICB9XG4gIC5vcmRlci1zbS0xMiB7XG4gICAgLW1zLWZsZXgtb3JkZXI6IDEyO1xuICAgIG9yZGVyOiAxMjtcbiAgfVxuICAub2Zmc2V0LXNtLTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIC5vZmZzZXQtc20tMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzJTtcbiAgfVxuICAub2Zmc2V0LXNtLTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjclO1xuICB9XG4gIC5vZmZzZXQtc20tMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgfVxuICAub2Zmc2V0LXNtLTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMlO1xuICB9XG4gIC5vZmZzZXQtc20tNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NyU7XG4gIH1cbiAgLm9mZnNldC1zbS02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xuICB9XG4gIC5vZmZzZXQtc20tNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMyU7XG4gIH1cbiAgLm9mZnNldC1zbS04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY3JTtcbiAgfVxuICAub2Zmc2V0LXNtLTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gIH1cbiAgLm9mZnNldC1zbS0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMyU7XG4gIH1cbiAgLm9mZnNldC1zbS0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NyU7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb2wtbWQge1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAwO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICAuY29sLW1kLWF1dG8ge1xuICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cbiAgLmNvbC1tZC0xIHtcbiAgICAtbXMtZmxleDogMCAwIDguMzMzMzMzJTtcbiAgICBmbGV4OiAwIDAgOC4zMzMzMzMlO1xuICAgIG1heC13aWR0aDogOC4zMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtMiB7XG4gICAgLW1zLWZsZXg6IDAgMCAxNi42NjY2NjclO1xuICAgIGZsZXg6IDAgMCAxNi42NjY2NjclO1xuICAgIG1heC13aWR0aDogMTYuNjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLTMge1xuICAgIC1tcy1mbGV4OiAwIDAgMjUlO1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7XG4gIH1cbiAgLmNvbC1tZC00IHtcbiAgICAtbXMtZmxleDogMCAwIDMzLjMzMzMzMyU7XG4gICAgZmxleDogMCAwIDMzLjMzMzMzMyU7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtNSB7XG4gICAgLW1zLWZsZXg6IDAgMCA0MS42NjY2NjclO1xuICAgIGZsZXg6IDAgMCA0MS42NjY2NjclO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLTYge1xuICAgIC1tcy1mbGV4OiAwIDAgNTAlO1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gIH1cbiAgLmNvbC1tZC03IHtcbiAgICAtbXMtZmxleDogMCAwIDU4LjMzMzMzMyU7XG4gICAgZmxleDogMCAwIDU4LjMzMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA1OC4zMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtOCB7XG4gICAgLW1zLWZsZXg6IDAgMCA2Ni42NjY2NjclO1xuICAgIGZsZXg6IDAgMCA2Ni42NjY2NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLTkge1xuICAgIC1tcy1mbGV4OiAwIDAgNzUlO1xuICAgIGZsZXg6IDAgMCA3NSU7XG4gICAgbWF4LXdpZHRoOiA3NSU7XG4gIH1cbiAgLmNvbC1tZC0xMCB7XG4gICAgLW1zLWZsZXg6IDAgMCA4My4zMzMzMzMlO1xuICAgIGZsZXg6IDAgMCA4My4zMzMzMzMlO1xuICAgIG1heC13aWR0aDogODMuMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLTExIHtcbiAgICAtbXMtZmxleDogMCAwIDkxLjY2NjY2NyU7XG4gICAgZmxleDogMCAwIDkxLjY2NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtMTIge1xuICAgIC1tcy1mbGV4OiAwIDAgMTAwJTtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgLm9yZGVyLW1kLWZpcnN0IHtcbiAgICAtbXMtZmxleC1vcmRlcjogLTE7XG4gICAgb3JkZXI6IC0xO1xuICB9XG4gIC5vcmRlci1tZC1sYXN0IHtcbiAgICAtbXMtZmxleC1vcmRlcjogMTM7XG4gICAgb3JkZXI6IDEzO1xuICB9XG4gIC5vcmRlci1tZC0wIHtcbiAgICAtbXMtZmxleC1vcmRlcjogMDtcbiAgICBvcmRlcjogMDtcbiAgfVxuICAub3JkZXItbWQtMSB7XG4gICAgLW1zLWZsZXgtb3JkZXI6IDE7XG4gICAgb3JkZXI6IDE7XG4gIH1cbiAgLm9yZGVyLW1kLTIge1xuICAgIC1tcy1mbGV4LW9yZGVyOiAyO1xuICAgIG9yZGVyOiAyO1xuICB9XG4gIC5vcmRlci1tZC0zIHtcbiAgICAtbXMtZmxleC1vcmRlcjogMztcbiAgICBvcmRlcjogMztcbiAgfVxuICAub3JkZXItbWQtNCB7XG4gICAgLW1zLWZsZXgtb3JkZXI6IDQ7XG4gICAgb3JkZXI6IDQ7XG4gIH1cbiAgLm9yZGVyLW1kLTUge1xuICAgIC1tcy1mbGV4LW9yZGVyOiA1O1xuICAgIG9yZGVyOiA1O1xuICB9XG4gIC5vcmRlci1tZC02IHtcbiAgICAtbXMtZmxleC1vcmRlcjogNjtcbiAgICBvcmRlcjogNjtcbiAgfVxuICAub3JkZXItbWQtNyB7XG4gICAgLW1zLWZsZXgtb3JkZXI6IDc7XG4gICAgb3JkZXI6IDc7XG4gIH1cbiAgLm9yZGVyLW1kLTgge1xuICAgIC1tcy1mbGV4LW9yZGVyOiA4O1xuICAgIG9yZGVyOiA4O1xuICB9XG4gIC5vcmRlci1tZC05IHtcbiAgICAtbXMtZmxleC1vcmRlcjogOTtcbiAgICBvcmRlcjogOTtcbiAgfVxuICAub3JkZXItbWQtMTAge1xuICAgIC1tcy1mbGV4LW9yZGVyOiAxMDtcbiAgICBvcmRlcjogMTA7XG4gIH1cbiAgLm9yZGVyLW1kLTExIHtcbiAgICAtbXMtZmxleC1vcmRlcjogMTE7XG4gICAgb3JkZXI6IDExO1xuICB9XG4gIC5vcmRlci1tZC0xMiB7XG4gICAgLW1zLWZsZXgtb3JkZXI6IDEyO1xuICAgIG9yZGVyOiAxMjtcbiAgfVxuICAub2Zmc2V0LW1kLTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIC5vZmZzZXQtbWQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzJTtcbiAgfVxuICAub2Zmc2V0LW1kLTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjclO1xuICB9XG4gIC5vZmZzZXQtbWQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgfVxuICAub2Zmc2V0LW1kLTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMlO1xuICB9XG4gIC5vZmZzZXQtbWQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NyU7XG4gIH1cbiAgLm9mZnNldC1tZC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xuICB9XG4gIC5vZmZzZXQtbWQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMyU7XG4gIH1cbiAgLm9mZnNldC1tZC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY3JTtcbiAgfVxuICAub2Zmc2V0LW1kLTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gIH1cbiAgLm9mZnNldC1tZC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMyU7XG4gIH1cbiAgLm9mZnNldC1tZC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NyU7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5jb2wtbGcge1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAwO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICAuY29sLWxnLWF1dG8ge1xuICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cbiAgLmNvbC1sZy0xIHtcbiAgICAtbXMtZmxleDogMCAwIDguMzMzMzMzJTtcbiAgICBmbGV4OiAwIDAgOC4zMzMzMzMlO1xuICAgIG1heC13aWR0aDogOC4zMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctMiB7XG4gICAgLW1zLWZsZXg6IDAgMCAxNi42NjY2NjclO1xuICAgIGZsZXg6IDAgMCAxNi42NjY2NjclO1xuICAgIG1heC13aWR0aDogMTYuNjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLTMge1xuICAgIC1tcy1mbGV4OiAwIDAgMjUlO1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7XG4gIH1cbiAgLmNvbC1sZy00IHtcbiAgICAtbXMtZmxleDogMCAwIDMzLjMzMzMzMyU7XG4gICAgZmxleDogMCAwIDMzLjMzMzMzMyU7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctNSB7XG4gICAgLW1zLWZsZXg6IDAgMCA0MS42NjY2NjclO1xuICAgIGZsZXg6IDAgMCA0MS42NjY2NjclO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLTYge1xuICAgIC1tcy1mbGV4OiAwIDAgNTAlO1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gIH1cbiAgLmNvbC1sZy03IHtcbiAgICAtbXMtZmxleDogMCAwIDU4LjMzMzMzMyU7XG4gICAgZmxleDogMCAwIDU4LjMzMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA1OC4zMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctOCB7XG4gICAgLW1zLWZsZXg6IDAgMCA2Ni42NjY2NjclO1xuICAgIGZsZXg6IDAgMCA2Ni42NjY2NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLTkge1xuICAgIC1tcy1mbGV4OiAwIDAgNzUlO1xuICAgIGZsZXg6IDAgMCA3NSU7XG4gICAgbWF4LXdpZHRoOiA3NSU7XG4gIH1cbiAgLmNvbC1sZy0xMCB7XG4gICAgLW1zLWZsZXg6IDAgMCA4My4zMzMzMzMlO1xuICAgIGZsZXg6IDAgMCA4My4zMzMzMzMlO1xuICAgIG1heC13aWR0aDogODMuMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLTExIHtcbiAgICAtbXMtZmxleDogMCAwIDkxLjY2NjY2NyU7XG4gICAgZmxleDogMCAwIDkxLjY2NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NjclO1xuICB9XG4gIC5jb2wtbGctMTIge1xuICAgIC1tcy1mbGV4OiAwIDAgMTAwJTtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgLm9yZGVyLWxnLWZpcnN0IHtcbiAgICAtbXMtZmxleC1vcmRlcjogLTE7XG4gICAgb3JkZXI6IC0xO1xuICB9XG4gIC5vcmRlci1sZy1sYXN0IHtcbiAgICAtbXMtZmxleC1vcmRlcjogMTM7XG4gICAgb3JkZXI6IDEzO1xuICB9XG4gIC5vcmRlci1sZy0wIHtcbiAgICAtbXMtZmxleC1vcmRlcjogMDtcbiAgICBvcmRlcjogMDtcbiAgfVxuICAub3JkZXItbGctMSB7XG4gICAgLW1zLWZsZXgtb3JkZXI6IDE7XG4gICAgb3JkZXI6IDE7XG4gIH1cbiAgLm9yZGVyLWxnLTIge1xuICAgIC1tcy1mbGV4LW9yZGVyOiAyO1xuICAgIG9yZGVyOiAyO1xuICB9XG4gIC5vcmRlci1sZy0zIHtcbiAgICAtbXMtZmxleC1vcmRlcjogMztcbiAgICBvcmRlcjogMztcbiAgfVxuICAub3JkZXItbGctNCB7XG4gICAgLW1zLWZsZXgtb3JkZXI6IDQ7XG4gICAgb3JkZXI6IDQ7XG4gIH1cbiAgLm9yZGVyLWxnLTUge1xuICAgIC1tcy1mbGV4LW9yZGVyOiA1O1xuICAgIG9yZGVyOiA1O1xuICB9XG4gIC5vcmRlci1sZy02IHtcbiAgICAtbXMtZmxleC1vcmRlcjogNjtcbiAgICBvcmRlcjogNjtcbiAgfVxuICAub3JkZXItbGctNyB7XG4gICAgLW1zLWZsZXgtb3JkZXI6IDc7XG4gICAgb3JkZXI6IDc7XG4gIH1cbiAgLm9yZGVyLWxnLTgge1xuICAgIC1tcy1mbGV4LW9yZGVyOiA4O1xuICAgIG9yZGVyOiA4O1xuICB9XG4gIC5vcmRlci1sZy05IHtcbiAgICAtbXMtZmxleC1vcmRlcjogOTtcbiAgICBvcmRlcjogOTtcbiAgfVxuICAub3JkZXItbGctMTAge1xuICAgIC1tcy1mbGV4LW9yZGVyOiAxMDtcbiAgICBvcmRlcjogMTA7XG4gIH1cbiAgLm9yZGVyLWxnLTExIHtcbiAgICAtbXMtZmxleC1vcmRlcjogMTE7XG4gICAgb3JkZXI6IDExO1xuICB9XG4gIC5vcmRlci1sZy0xMiB7XG4gICAgLW1zLWZsZXgtb3JkZXI6IDEyO1xuICAgIG9yZGVyOiAxMjtcbiAgfVxuICAub2Zmc2V0LWxnLTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIC5vZmZzZXQtbGctMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzJTtcbiAgfVxuICAub2Zmc2V0LWxnLTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjclO1xuICB9XG4gIC5vZmZzZXQtbGctMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgfVxuICAub2Zmc2V0LWxnLTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMlO1xuICB9XG4gIC5vZmZzZXQtbGctNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NyU7XG4gIH1cbiAgLm9mZnNldC1sZy02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xuICB9XG4gIC5vZmZzZXQtbGctNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMyU7XG4gIH1cbiAgLm9mZnNldC1sZy04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY3JTtcbiAgfVxuICAub2Zmc2V0LWxnLTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gIH1cbiAgLm9mZnNldC1sZy0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMyU7XG4gIH1cbiAgLm9mZnNldC1sZy0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NyU7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuY29sLXhsIHtcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMDtcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmNvbC14bC1hdXRvIHtcbiAgICAtbXMtZmxleDogMCAwIGF1dG87XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG4gIC5jb2wteGwtMSB7XG4gICAgLW1zLWZsZXg6IDAgMCA4LjMzMzMzMyU7XG4gICAgZmxleDogMCAwIDguMzMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDguMzMzMzMzJTtcbiAgfVxuICAuY29sLXhsLTIge1xuICAgIC1tcy1mbGV4OiAwIDAgMTYuNjY2NjY3JTtcbiAgICBmbGV4OiAwIDAgMTYuNjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY2NyU7XG4gIH1cbiAgLmNvbC14bC0zIHtcbiAgICAtbXMtZmxleDogMCAwIDI1JTtcbiAgICBmbGV4OiAwIDAgMjUlO1xuICAgIG1heC13aWR0aDogMjUlO1xuICB9XG4gIC5jb2wteGwtNCB7XG4gICAgLW1zLWZsZXg6IDAgMCAzMy4zMzMzMzMlO1xuICAgIGZsZXg6IDAgMCAzMy4zMzMzMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMzJTtcbiAgfVxuICAuY29sLXhsLTUge1xuICAgIC1tcy1mbGV4OiAwIDAgNDEuNjY2NjY3JTtcbiAgICBmbGV4OiAwIDAgNDEuNjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDQxLjY2NjY2NyU7XG4gIH1cbiAgLmNvbC14bC02IHtcbiAgICAtbXMtZmxleDogMCAwIDUwJTtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlO1xuICB9XG4gIC5jb2wteGwtNyB7XG4gICAgLW1zLWZsZXg6IDAgMCA1OC4zMzMzMzMlO1xuICAgIGZsZXg6IDAgMCA1OC4zMzMzMzMlO1xuICAgIG1heC13aWR0aDogNTguMzMzMzMzJTtcbiAgfVxuICAuY29sLXhsLTgge1xuICAgIC1tcy1mbGV4OiAwIDAgNjYuNjY2NjY3JTtcbiAgICBmbGV4OiAwIDAgNjYuNjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY2NyU7XG4gIH1cbiAgLmNvbC14bC05IHtcbiAgICAtbXMtZmxleDogMCAwIDc1JTtcbiAgICBmbGV4OiAwIDAgNzUlO1xuICAgIG1heC13aWR0aDogNzUlO1xuICB9XG4gIC5jb2wteGwtMTAge1xuICAgIC1tcy1mbGV4OiAwIDAgODMuMzMzMzMzJTtcbiAgICBmbGV4OiAwIDAgODMuMzMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDgzLjMzMzMzMyU7XG4gIH1cbiAgLmNvbC14bC0xMSB7XG4gICAgLW1zLWZsZXg6IDAgMCA5MS42NjY2NjclO1xuICAgIGZsZXg6IDAgMCA5MS42NjY2NjclO1xuICAgIG1heC13aWR0aDogOTEuNjY2NjY3JTtcbiAgfVxuICAuY29sLXhsLTEyIHtcbiAgICAtbXMtZmxleDogMCAwIDEwMCU7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIC5vcmRlci14bC1maXJzdCB7XG4gICAgLW1zLWZsZXgtb3JkZXI6IC0xO1xuICAgIG9yZGVyOiAtMTtcbiAgfVxuICAub3JkZXIteGwtbGFzdCB7XG4gICAgLW1zLWZsZXgtb3JkZXI6IDEzO1xuICAgIG9yZGVyOiAxMztcbiAgfVxuICAub3JkZXIteGwtMCB7XG4gICAgLW1zLWZsZXgtb3JkZXI6IDA7XG4gICAgb3JkZXI6IDA7XG4gIH1cbiAgLm9yZGVyLXhsLTEge1xuICAgIC1tcy1mbGV4LW9yZGVyOiAxO1xuICAgIG9yZGVyOiAxO1xuICB9XG4gIC5vcmRlci14bC0yIHtcbiAgICAtbXMtZmxleC1vcmRlcjogMjtcbiAgICBvcmRlcjogMjtcbiAgfVxuICAub3JkZXIteGwtMyB7XG4gICAgLW1zLWZsZXgtb3JkZXI6IDM7XG4gICAgb3JkZXI6IDM7XG4gIH1cbiAgLm9yZGVyLXhsLTQge1xuICAgIC1tcy1mbGV4LW9yZGVyOiA0O1xuICAgIG9yZGVyOiA0O1xuICB9XG4gIC5vcmRlci14bC01IHtcbiAgICAtbXMtZmxleC1vcmRlcjogNTtcbiAgICBvcmRlcjogNTtcbiAgfVxuICAub3JkZXIteGwtNiB7XG4gICAgLW1zLWZsZXgtb3JkZXI6IDY7XG4gICAgb3JkZXI6IDY7XG4gIH1cbiAgLm9yZGVyLXhsLTcge1xuICAgIC1tcy1mbGV4LW9yZGVyOiA3O1xuICAgIG9yZGVyOiA3O1xuICB9XG4gIC5vcmRlci14bC04IHtcbiAgICAtbXMtZmxleC1vcmRlcjogODtcbiAgICBvcmRlcjogODtcbiAgfVxuICAub3JkZXIteGwtOSB7XG4gICAgLW1zLWZsZXgtb3JkZXI6IDk7XG4gICAgb3JkZXI6IDk7XG4gIH1cbiAgLm9yZGVyLXhsLTEwIHtcbiAgICAtbXMtZmxleC1vcmRlcjogMTA7XG4gICAgb3JkZXI6IDEwO1xuICB9XG4gIC5vcmRlci14bC0xMSB7XG4gICAgLW1zLWZsZXgtb3JkZXI6IDExO1xuICAgIG9yZGVyOiAxMTtcbiAgfVxuICAub3JkZXIteGwtMTIge1xuICAgIC1tcy1mbGV4LW9yZGVyOiAxMjtcbiAgICBvcmRlcjogMTI7XG4gIH1cbiAgLm9mZnNldC14bC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuICAub2Zmc2V0LXhsLTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzMyU7XG4gIH1cbiAgLm9mZnNldC14bC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY3JTtcbiAgfVxuICAub2Zmc2V0LXhsLTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gIH1cbiAgLm9mZnNldC14bC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzJTtcbiAgfVxuICAub2Zmc2V0LXhsLTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjclO1xuICB9XG4gIC5vZmZzZXQteGwtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgfVxuICAub2Zmc2V0LXhsLTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMlO1xuICB9XG4gIC5vZmZzZXQteGwtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NyU7XG4gIH1cbiAgLm9mZnNldC14bC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xuICB9XG4gIC5vZmZzZXQteGwtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMzMlO1xuICB9XG4gIC5vZmZzZXQteGwtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjclO1xuICB9XG59XG5cbi50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4udGFibGUgdGgsXG4udGFibGUgdGQge1xuICBwYWRkaW5nOiAwLjc1cmVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RlZTJlNjtcbn1cblxuLnRhYmxlIHRoZWFkIHRoIHtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNkZWUyZTY7XG59XG5cbi50YWJsZSB0Ym9keSArIHRib2R5IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNkZWUyZTY7XG59XG5cbi50YWJsZSAudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4udGFibGUtc20gdGgsXG4udGFibGUtc20gdGQge1xuICBwYWRkaW5nOiAwLjNyZW07XG59XG5cbi50YWJsZS1ib3JkZXJlZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZWUyZTY7XG59XG5cbi50YWJsZS1ib3JkZXJlZCB0aCxcbi50YWJsZS1ib3JkZXJlZCB0ZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZWUyZTY7XG59XG5cbi50YWJsZS1ib3JkZXJlZCB0aGVhZCB0aCxcbi50YWJsZS1ib3JkZXJlZCB0aGVhZCB0ZCB7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDJweDtcbn1cblxuLnRhYmxlLWJvcmRlcmxlc3MgdGgsXG4udGFibGUtYm9yZGVybGVzcyB0ZCxcbi50YWJsZS1ib3JkZXJsZXNzIHRoZWFkIHRoLFxuLnRhYmxlLWJvcmRlcmxlc3MgdGJvZHkgKyB0Ym9keSB7XG4gIGJvcmRlcjogMDtcbn1cblxuLnRhYmxlLXN0cmlwZWQgdGJvZHkgdHI6bnRoLW9mLXR5cGUob2RkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG5cbi50YWJsZS1ob3ZlciB0Ym9keSB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xufVxuXG4udGFibGUtcHJpbWFyeSxcbi50YWJsZS1wcmltYXJ5ID4gdGgsXG4udGFibGUtcHJpbWFyeSA+IHRkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2I4ZGFmZjtcbn1cblxuLnRhYmxlLWhvdmVyIC50YWJsZS1wcmltYXJ5OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzlmY2RmZjtcbn1cblxuLnRhYmxlLWhvdmVyIC50YWJsZS1wcmltYXJ5OmhvdmVyID4gdGQsXG4udGFibGUtaG92ZXIgLnRhYmxlLXByaW1hcnk6aG92ZXIgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5ZmNkZmY7XG59XG5cbi50YWJsZS1zZWNvbmRhcnksXG4udGFibGUtc2Vjb25kYXJ5ID4gdGgsXG4udGFibGUtc2Vjb25kYXJ5ID4gdGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDZkOGRiO1xufVxuXG4udGFibGUtaG92ZXIgLnRhYmxlLXNlY29uZGFyeTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjOGNiY2Y7XG59XG5cbi50YWJsZS1ob3ZlciAudGFibGUtc2Vjb25kYXJ5OmhvdmVyID4gdGQsXG4udGFibGUtaG92ZXIgLnRhYmxlLXNlY29uZGFyeTpob3ZlciA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M4Y2JjZjtcbn1cblxuLnRhYmxlLXN1Y2Nlc3MsXG4udGFibGUtc3VjY2VzcyA+IHRoLFxuLnRhYmxlLXN1Y2Nlc3MgPiB0ZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjM2U2Y2I7XG59XG5cbi50YWJsZS1ob3ZlciAudGFibGUtc3VjY2Vzczpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiMWRmYmI7XG59XG5cbi50YWJsZS1ob3ZlciAudGFibGUtc3VjY2Vzczpob3ZlciA+IHRkLFxuLnRhYmxlLWhvdmVyIC50YWJsZS1zdWNjZXNzOmhvdmVyID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjFkZmJiO1xufVxuXG4udGFibGUtaW5mbyxcbi50YWJsZS1pbmZvID4gdGgsXG4udGFibGUtaW5mbyA+IHRkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JlZTVlYjtcbn1cblxuLnRhYmxlLWhvdmVyIC50YWJsZS1pbmZvOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2FiZGRlNTtcbn1cblxuLnRhYmxlLWhvdmVyIC50YWJsZS1pbmZvOmhvdmVyID4gdGQsXG4udGFibGUtaG92ZXIgLnRhYmxlLWluZm86aG92ZXIgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhYmRkZTU7XG59XG5cbi50YWJsZS13YXJuaW5nLFxuLnRhYmxlLXdhcm5pbmcgPiB0aCxcbi50YWJsZS13YXJuaW5nID4gdGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlZWJhO1xufVxuXG4udGFibGUtaG92ZXIgLnRhYmxlLXdhcm5pbmc6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlOGExO1xufVxuXG4udGFibGUtaG92ZXIgLnRhYmxlLXdhcm5pbmc6aG92ZXIgPiB0ZCxcbi50YWJsZS1ob3ZlciAudGFibGUtd2FybmluZzpob3ZlciA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZThhMTtcbn1cblxuLnRhYmxlLWRhbmdlcixcbi50YWJsZS1kYW5nZXIgPiB0aCxcbi50YWJsZS1kYW5nZXIgPiB0ZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWM2Y2I7XG59XG5cbi50YWJsZS1ob3ZlciAudGFibGUtZGFuZ2VyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxYjBiNztcbn1cblxuLnRhYmxlLWhvdmVyIC50YWJsZS1kYW5nZXI6aG92ZXIgPiB0ZCxcbi50YWJsZS1ob3ZlciAudGFibGUtZGFuZ2VyOmhvdmVyID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFiMGI3O1xufVxuXG4udGFibGUtbGlnaHQsXG4udGFibGUtbGlnaHQgPiB0aCxcbi50YWJsZS1saWdodCA+IHRkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkZmRmZTtcbn1cblxuLnRhYmxlLWhvdmVyIC50YWJsZS1saWdodDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2VjZjY7XG59XG5cbi50YWJsZS1ob3ZlciAudGFibGUtbGlnaHQ6aG92ZXIgPiB0ZCxcbi50YWJsZS1ob3ZlciAudGFibGUtbGlnaHQ6aG92ZXIgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2VjZjY7XG59XG5cbi50YWJsZS1kYXJrLFxuLnRhYmxlLWRhcmsgPiB0aCxcbi50YWJsZS1kYXJrID4gdGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzZjOGNhO1xufVxuXG4udGFibGUtaG92ZXIgLnRhYmxlLWRhcms6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjliYmJlO1xufVxuXG4udGFibGUtaG92ZXIgLnRhYmxlLWRhcms6aG92ZXIgPiB0ZCxcbi50YWJsZS1ob3ZlciAudGFibGUtZGFyazpob3ZlciA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2I5YmJiZTtcbn1cblxuLnRhYmxlLWFjdGl2ZSxcbi50YWJsZS1hY3RpdmUgPiB0aCxcbi50YWJsZS1hY3RpdmUgPiB0ZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xufVxuXG4udGFibGUtaG92ZXIgLnRhYmxlLWFjdGl2ZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xufVxuXG4udGFibGUtaG92ZXIgLnRhYmxlLWFjdGl2ZTpob3ZlciA+IHRkLFxuLnRhYmxlLWhvdmVyIC50YWJsZS1hY3RpdmU6aG92ZXIgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xufVxuXG4udGFibGUgLnRoZWFkLWRhcmsgdGgge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxMjUyOTtcbiAgYm9yZGVyLWNvbG9yOiAjMzIzODNlO1xufVxuXG4udGFibGUgLnRoZWFkLWxpZ2h0IHRoIHtcbiAgY29sb3I6ICM0OTUwNTc7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlOWVjZWY7XG4gIGJvcmRlci1jb2xvcjogI2RlZTJlNjtcbn1cblxuLnRhYmxlLWRhcmsge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxMjUyOTtcbn1cblxuLnRhYmxlLWRhcmsgdGgsXG4udGFibGUtZGFyayB0ZCxcbi50YWJsZS1kYXJrIHRoZWFkIHRoIHtcbiAgYm9yZGVyLWNvbG9yOiAjMzIzODNlO1xufVxuXG4udGFibGUtZGFyay50YWJsZS1ib3JkZXJlZCB7XG4gIGJvcmRlcjogMDtcbn1cblxuLnRhYmxlLWRhcmsudGFibGUtc3RyaXBlZCB0Ym9keSB0cjpudGgtb2YtdHlwZShvZGQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcbn1cblxuLnRhYmxlLWRhcmsudGFibGUtaG92ZXIgdGJvZHkgdHI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDc1KTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NS45OHB4KSB7XG4gIC50YWJsZS1yZXNwb25zaXZlLXNtIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtcbiAgfVxuICAudGFibGUtcmVzcG9uc2l2ZS1zbSA+IC50YWJsZS1ib3JkZXJlZCB7XG4gICAgYm9yZGVyOiAwO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAudGFibGUtcmVzcG9uc2l2ZS1tZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7XG4gIH1cbiAgLnRhYmxlLXJlc3BvbnNpdmUtbWQgPiAudGFibGUtYm9yZGVyZWQge1xuICAgIGJvcmRlcjogMDtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgLnRhYmxlLXJlc3BvbnNpdmUtbGcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyO1xuICB9XG4gIC50YWJsZS1yZXNwb25zaXZlLWxnID4gLnRhYmxlLWJvcmRlcmVkIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDExOTkuOThweCkge1xuICAudGFibGUtcmVzcG9uc2l2ZS14bCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7XG4gIH1cbiAgLnRhYmxlLXJlc3BvbnNpdmUteGwgPiAudGFibGUtYm9yZGVyZWQge1xuICAgIGJvcmRlcjogMDtcbiAgfVxufVxuXG4udGFibGUtcmVzcG9uc2l2ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtcbn1cblxuLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQge1xuICBib3JkZXI6IDA7XG59XG5cbi5mb3JtLWNvbnRyb2wge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAuMzc1cmVtIDAuNzVyZW07XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICM0OTUwNTc7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjZWQ0ZGE7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLWluLW91dCwgYm94LXNoYWRvdyAwLjE1cyBlYXNlLWluLW91dDtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAuZm9ybS1jb250cm9sIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG59XG5cbi5mb3JtLWNvbnRyb2w6Oi1tcy1leHBhbmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xufVxuXG4uZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgY29sb3I6ICM0OTUwNTc7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1jb2xvcjogIzgwYmRmZjtcbiAgb3V0bGluZTogMDtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMCwgMTIzLCAyNTUsIDAuMjUpO1xufVxuXG4uZm9ybS1jb250cm9sOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICM2Yzc1N2Q7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5mb3JtLWNvbnRyb2w6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzZjNzU3ZDtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmZvcm0tY29udHJvbDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzZjNzU3ZDtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmZvcm0tY29udHJvbDo6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICM2Yzc1N2Q7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5mb3JtLWNvbnRyb2w6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICM2Yzc1N2Q7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5mb3JtLWNvbnRyb2w6ZGlzYWJsZWQsIC5mb3JtLWNvbnRyb2xbcmVhZG9ubHldIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U5ZWNlZjtcbiAgb3BhY2l0eTogMTtcbn1cblxuc2VsZWN0LmZvcm0tY29udHJvbDpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSkge1xuICBoZWlnaHQ6IGNhbGMoMi4yNXJlbSArIDJweCk7XG59XG5cbnNlbGVjdC5mb3JtLWNvbnRyb2w6Zm9jdXM6Oi1tcy12YWx1ZSB7XG4gIGNvbG9yOiAjNDk1MDU3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4uZm9ybS1jb250cm9sLWZpbGUsXG4uZm9ybS1jb250cm9sLXJhbmdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uY29sLWZvcm0tbGFiZWwge1xuICBwYWRkaW5nLXRvcDogY2FsYygwLjM3NXJlbSArIDFweCk7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKDAuMzc1cmVtICsgMXB4KTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4uY29sLWZvcm0tbGFiZWwtbGcge1xuICBwYWRkaW5nLXRvcDogY2FsYygwLjVyZW0gKyAxcHgpO1xuICBwYWRkaW5nLWJvdHRvbTogY2FsYygwLjVyZW0gKyAxcHgpO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi5jb2wtZm9ybS1sYWJlbC1zbSB7XG4gIHBhZGRpbmctdG9wOiBjYWxjKDAuMjVyZW0gKyAxcHgpO1xuICBwYWRkaW5nLWJvdHRvbTogY2FsYygwLjI1cmVtICsgMXB4KTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLmZvcm0tY29udHJvbC1wbGFpbnRleHQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctdG9wOiAwLjM3NXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuMzc1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzIxMjUyOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci13aWR0aDogMXB4IDA7XG59XG5cbi5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0LmZvcm0tY29udHJvbC1zbSwgLmlucHV0LWdyb3VwLXNtID4gLmZvcm0tY29udHJvbC1wbGFpbnRleHQuZm9ybS1jb250cm9sLFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLXByZXBlbmQgPiAuZm9ybS1jb250cm9sLXBsYWludGV4dC5pbnB1dC1ncm91cC10ZXh0LFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWFwcGVuZCA+IC5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0LmlucHV0LWdyb3VwLXRleHQsXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtcHJlcGVuZCA+IC5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0LmJ0bixcbi5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1hcHBlbmQgPiAuZm9ybS1jb250cm9sLXBsYWludGV4dC5idG4sIC5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0LmZvcm0tY29udHJvbC1sZywgLmlucHV0LWdyb3VwLWxnID4gLmZvcm0tY29udHJvbC1wbGFpbnRleHQuZm9ybS1jb250cm9sLFxuLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLXByZXBlbmQgPiAuZm9ybS1jb250cm9sLXBsYWludGV4dC5pbnB1dC1ncm91cC10ZXh0LFxuLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWFwcGVuZCA+IC5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0LmlucHV0LWdyb3VwLXRleHQsXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtcHJlcGVuZCA+IC5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0LmJ0bixcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1hcHBlbmQgPiAuZm9ybS1jb250cm9sLXBsYWludGV4dC5idG4ge1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi5mb3JtLWNvbnRyb2wtc20sIC5pbnB1dC1ncm91cC1zbSA+IC5mb3JtLWNvbnRyb2wsXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtcHJlcGVuZCA+IC5pbnB1dC1ncm91cC10ZXh0LFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWFwcGVuZCA+IC5pbnB1dC1ncm91cC10ZXh0LFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLXByZXBlbmQgPiAuYnRuLFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWFwcGVuZCA+IC5idG4ge1xuICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgYm9yZGVyLXJhZGl1czogMC4ycmVtO1xufVxuXG5zZWxlY3QuZm9ybS1jb250cm9sLXNtOm5vdChbc2l6ZV0pOm5vdChbbXVsdGlwbGVdKSwgLmlucHV0LWdyb3VwLXNtID4gc2VsZWN0LmZvcm0tY29udHJvbDpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSksXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtcHJlcGVuZCA+IHNlbGVjdC5pbnB1dC1ncm91cC10ZXh0Om5vdChbc2l6ZV0pOm5vdChbbXVsdGlwbGVdKSxcbi5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1hcHBlbmQgPiBzZWxlY3QuaW5wdXQtZ3JvdXAtdGV4dDpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSksXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtcHJlcGVuZCA+IHNlbGVjdC5idG46bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pLFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWFwcGVuZCA+IHNlbGVjdC5idG46bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pIHtcbiAgaGVpZ2h0OiBjYWxjKDEuODEyNXJlbSArIDJweCk7XG59XG5cbi5mb3JtLWNvbnRyb2wtbGcsIC5pbnB1dC1ncm91cC1sZyA+IC5mb3JtLWNvbnRyb2wsXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtcHJlcGVuZCA+IC5pbnB1dC1ncm91cC10ZXh0LFxuLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWFwcGVuZCA+IC5pbnB1dC1ncm91cC10ZXh0LFxuLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLXByZXBlbmQgPiAuYnRuLFxuLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWFwcGVuZCA+IC5idG4ge1xuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBib3JkZXItcmFkaXVzOiAwLjNyZW07XG59XG5cbnNlbGVjdC5mb3JtLWNvbnRyb2wtbGc6bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pLCAuaW5wdXQtZ3JvdXAtbGcgPiBzZWxlY3QuZm9ybS1jb250cm9sOm5vdChbc2l6ZV0pOm5vdChbbXVsdGlwbGVdKSxcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1wcmVwZW5kID4gc2VsZWN0LmlucHV0LWdyb3VwLXRleHQ6bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pLFxuLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWFwcGVuZCA+IHNlbGVjdC5pbnB1dC1ncm91cC10ZXh0Om5vdChbc2l6ZV0pOm5vdChbbXVsdGlwbGVdKSxcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1wcmVwZW5kID4gc2VsZWN0LmJ0bjpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSksXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYXBwZW5kID4gc2VsZWN0LmJ0bjpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSkge1xuICBoZWlnaHQ6IGNhbGMoMi44NzVyZW0gKyAycHgpO1xufVxuXG4uZm9ybS1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5mb3JtLXRleHQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbn1cblxuLmZvcm0tcm93IHtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC1tcy1mbGV4LXdyYXA6IHdyYXA7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLXJpZ2h0OiAtNXB4O1xuICBtYXJnaW4tbGVmdDogLTVweDtcbn1cblxuLmZvcm0tcm93ID4gLmNvbCxcbi5mb3JtLXJvdyA+IFtjbGFzcyo9XCJjb2wtXCJdIHtcbiAgcGFkZGluZy1yaWdodDogNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cblxuLmZvcm0tY2hlY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07XG59XG5cbi5mb3JtLWNoZWNrLWlucHV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW4tdG9wOiAwLjNyZW07XG4gIG1hcmdpbi1sZWZ0OiAtMS4yNXJlbTtcbn1cblxuLmZvcm0tY2hlY2staW5wdXQ6ZGlzYWJsZWQgfiAuZm9ybS1jaGVjay1sYWJlbCB7XG4gIGNvbG9yOiAjNmM3NTdkO1xufVxuXG4uZm9ybS1jaGVjay1sYWJlbCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5mb3JtLWNoZWNrLWlubGluZSB7XG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xufVxuXG4uZm9ybS1jaGVjay1pbmxpbmUgLmZvcm0tY2hlY2staW5wdXQge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi52YWxpZC1mZWVkYmFjayB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xuICBmb250LXNpemU6IDgwJTtcbiAgY29sb3I6ICMyOGE3NDU7XG59XG5cbi52YWxpZC10b29sdGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwMCU7XG4gIHotaW5kZXg6IDU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZzogLjVyZW07XG4gIG1hcmdpbi10b3A6IC4xcmVtO1xuICBmb250LXNpemU6IC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0MCwgMTY3LCA2OSwgMC44KTtcbiAgYm9yZGVyLXJhZGl1czogLjJyZW07XG59XG5cbi53YXMtdmFsaWRhdGVkIC5mb3JtLWNvbnRyb2w6dmFsaWQsIC5mb3JtLWNvbnRyb2wuaXMtdmFsaWQsIC53YXMtdmFsaWRhdGVkXG4uY3VzdG9tLXNlbGVjdDp2YWxpZCxcbi5jdXN0b20tc2VsZWN0LmlzLXZhbGlkIHtcbiAgYm9yZGVyLWNvbG9yOiAjMjhhNzQ1O1xufVxuXG4ud2FzLXZhbGlkYXRlZCAuZm9ybS1jb250cm9sOnZhbGlkOmZvY3VzLCAuZm9ybS1jb250cm9sLmlzLXZhbGlkOmZvY3VzLCAud2FzLXZhbGlkYXRlZFxuLmN1c3RvbS1zZWxlY3Q6dmFsaWQ6Zm9jdXMsXG4uY3VzdG9tLXNlbGVjdC5pcy12YWxpZDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzI4YTc0NTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoNDAsIDE2NywgNjksIDAuMjUpO1xufVxuXG4ud2FzLXZhbGlkYXRlZCAuZm9ybS1jb250cm9sOnZhbGlkIH4gLnZhbGlkLWZlZWRiYWNrLFxuLndhcy12YWxpZGF0ZWQgLmZvcm0tY29udHJvbDp2YWxpZCB+IC52YWxpZC10b29sdGlwLCAuZm9ybS1jb250cm9sLmlzLXZhbGlkIH4gLnZhbGlkLWZlZWRiYWNrLFxuLmZvcm0tY29udHJvbC5pcy12YWxpZCB+IC52YWxpZC10b29sdGlwLCAud2FzLXZhbGlkYXRlZFxuLmN1c3RvbS1zZWxlY3Q6dmFsaWQgfiAudmFsaWQtZmVlZGJhY2ssXG4ud2FzLXZhbGlkYXRlZFxuLmN1c3RvbS1zZWxlY3Q6dmFsaWQgfiAudmFsaWQtdG9vbHRpcCxcbi5jdXN0b20tc2VsZWN0LmlzLXZhbGlkIH4gLnZhbGlkLWZlZWRiYWNrLFxuLmN1c3RvbS1zZWxlY3QuaXMtdmFsaWQgfiAudmFsaWQtdG9vbHRpcCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ud2FzLXZhbGlkYXRlZCAuZm9ybS1jb250cm9sLWZpbGU6dmFsaWQgfiAudmFsaWQtZmVlZGJhY2ssXG4ud2FzLXZhbGlkYXRlZCAuZm9ybS1jb250cm9sLWZpbGU6dmFsaWQgfiAudmFsaWQtdG9vbHRpcCwgLmZvcm0tY29udHJvbC1maWxlLmlzLXZhbGlkIH4gLnZhbGlkLWZlZWRiYWNrLFxuLmZvcm0tY29udHJvbC1maWxlLmlzLXZhbGlkIH4gLnZhbGlkLXRvb2x0aXAge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLndhcy12YWxpZGF0ZWQgLmZvcm0tY2hlY2staW5wdXQ6dmFsaWQgfiAuZm9ybS1jaGVjay1sYWJlbCwgLmZvcm0tY2hlY2staW5wdXQuaXMtdmFsaWQgfiAuZm9ybS1jaGVjay1sYWJlbCB7XG4gIGNvbG9yOiAjMjhhNzQ1O1xufVxuXG4ud2FzLXZhbGlkYXRlZCAuZm9ybS1jaGVjay1pbnB1dDp2YWxpZCB+IC52YWxpZC1mZWVkYmFjayxcbi53YXMtdmFsaWRhdGVkIC5mb3JtLWNoZWNrLWlucHV0OnZhbGlkIH4gLnZhbGlkLXRvb2x0aXAsIC5mb3JtLWNoZWNrLWlucHV0LmlzLXZhbGlkIH4gLnZhbGlkLWZlZWRiYWNrLFxuLmZvcm0tY2hlY2staW5wdXQuaXMtdmFsaWQgfiAudmFsaWQtdG9vbHRpcCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6dmFsaWQgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWwsIC5jdXN0b20tY29udHJvbC1pbnB1dC5pcy12YWxpZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbCB7XG4gIGNvbG9yOiAjMjhhNzQ1O1xufVxuXG4ud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6dmFsaWQgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSwgLmN1c3RvbS1jb250cm9sLWlucHV0LmlzLXZhbGlkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzFkZDhhO1xufVxuXG4ud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6dmFsaWQgfiAudmFsaWQtZmVlZGJhY2ssXG4ud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6dmFsaWQgfiAudmFsaWQtdG9vbHRpcCwgLmN1c3RvbS1jb250cm9sLWlucHV0LmlzLXZhbGlkIH4gLnZhbGlkLWZlZWRiYWNrLFxuLmN1c3RvbS1jb250cm9sLWlucHV0LmlzLXZhbGlkIH4gLnZhbGlkLXRvb2x0aXAge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1jb250cm9sLWlucHV0OnZhbGlkOmNoZWNrZWQgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSwgLmN1c3RvbS1jb250cm9sLWlucHV0LmlzLXZhbGlkOmNoZWNrZWQgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNGNlNTc7XG59XG5cbi53YXMtdmFsaWRhdGVkIC5jdXN0b20tY29udHJvbC1pbnB1dDp2YWxpZDpmb2N1cyB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlLCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQuaXMtdmFsaWQ6Zm9jdXMgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDFweCAjZmZmLCAwIDAgMCAwLjJyZW0gcmdiYSg0MCwgMTY3LCA2OSwgMC4yNSk7XG59XG5cbi53YXMtdmFsaWRhdGVkIC5jdXN0b20tZmlsZS1pbnB1dDp2YWxpZCB+IC5jdXN0b20tZmlsZS1sYWJlbCwgLmN1c3RvbS1maWxlLWlucHV0LmlzLXZhbGlkIH4gLmN1c3RvbS1maWxlLWxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiAjMjhhNzQ1O1xufVxuXG4ud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWZpbGUtaW5wdXQ6dmFsaWQgfiAuY3VzdG9tLWZpbGUtbGFiZWw6OmJlZm9yZSwgLmN1c3RvbS1maWxlLWlucHV0LmlzLXZhbGlkIH4gLmN1c3RvbS1maWxlLWxhYmVsOjpiZWZvcmUge1xuICBib3JkZXItY29sb3I6IGluaGVyaXQ7XG59XG5cbi53YXMtdmFsaWRhdGVkIC5jdXN0b20tZmlsZS1pbnB1dDp2YWxpZCB+IC52YWxpZC1mZWVkYmFjayxcbi53YXMtdmFsaWRhdGVkIC5jdXN0b20tZmlsZS1pbnB1dDp2YWxpZCB+IC52YWxpZC10b29sdGlwLCAuY3VzdG9tLWZpbGUtaW5wdXQuaXMtdmFsaWQgfiAudmFsaWQtZmVlZGJhY2ssXG4uY3VzdG9tLWZpbGUtaW5wdXQuaXMtdmFsaWQgfiAudmFsaWQtdG9vbHRpcCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWZpbGUtaW5wdXQ6dmFsaWQ6Zm9jdXMgfiAuY3VzdG9tLWZpbGUtbGFiZWwsIC5jdXN0b20tZmlsZS1pbnB1dC5pcy12YWxpZDpmb2N1cyB+IC5jdXN0b20tZmlsZS1sYWJlbCB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDQwLCAxNjcsIDY5LCAwLjI1KTtcbn1cblxuLmludmFsaWQtZmVlZGJhY2sge1xuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbiAgZm9udC1zaXplOiA4MCU7XG4gIGNvbG9yOiAjZGMzNTQ1O1xufVxuXG4uaW52YWxpZC10b29sdGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwMCU7XG4gIHotaW5kZXg6IDU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZzogLjVyZW07XG4gIG1hcmdpbi10b3A6IC4xcmVtO1xuICBmb250LXNpemU6IC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMjAsIDUzLCA2OSwgMC44KTtcbiAgYm9yZGVyLXJhZGl1czogLjJyZW07XG59XG5cbi53YXMtdmFsaWRhdGVkIC5mb3JtLWNvbnRyb2w6aW52YWxpZCwgLmZvcm0tY29udHJvbC5pcy1pbnZhbGlkLCAud2FzLXZhbGlkYXRlZFxuLmN1c3RvbS1zZWxlY3Q6aW52YWxpZCxcbi5jdXN0b20tc2VsZWN0LmlzLWludmFsaWQge1xuICBib3JkZXItY29sb3I6ICNkYzM1NDU7XG59XG5cbi53YXMtdmFsaWRhdGVkIC5mb3JtLWNvbnRyb2w6aW52YWxpZDpmb2N1cywgLmZvcm0tY29udHJvbC5pcy1pbnZhbGlkOmZvY3VzLCAud2FzLXZhbGlkYXRlZFxuLmN1c3RvbS1zZWxlY3Q6aW52YWxpZDpmb2N1cyxcbi5jdXN0b20tc2VsZWN0LmlzLWludmFsaWQ6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICNkYzM1NDU7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDIyMCwgNTMsIDY5LCAwLjI1KTtcbn1cblxuLndhcy12YWxpZGF0ZWQgLmZvcm0tY29udHJvbDppbnZhbGlkIH4gLmludmFsaWQtZmVlZGJhY2ssXG4ud2FzLXZhbGlkYXRlZCAuZm9ybS1jb250cm9sOmludmFsaWQgfiAuaW52YWxpZC10b29sdGlwLCAuZm9ybS1jb250cm9sLmlzLWludmFsaWQgfiAuaW52YWxpZC1mZWVkYmFjayxcbi5mb3JtLWNvbnRyb2wuaXMtaW52YWxpZCB+IC5pbnZhbGlkLXRvb2x0aXAsIC53YXMtdmFsaWRhdGVkXG4uY3VzdG9tLXNlbGVjdDppbnZhbGlkIH4gLmludmFsaWQtZmVlZGJhY2ssXG4ud2FzLXZhbGlkYXRlZFxuLmN1c3RvbS1zZWxlY3Q6aW52YWxpZCB+IC5pbnZhbGlkLXRvb2x0aXAsXG4uY3VzdG9tLXNlbGVjdC5pcy1pbnZhbGlkIH4gLmludmFsaWQtZmVlZGJhY2ssXG4uY3VzdG9tLXNlbGVjdC5pcy1pbnZhbGlkIH4gLmludmFsaWQtdG9vbHRpcCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ud2FzLXZhbGlkYXRlZCAuZm9ybS1jb250cm9sLWZpbGU6aW52YWxpZCB+IC5pbnZhbGlkLWZlZWRiYWNrLFxuLndhcy12YWxpZGF0ZWQgLmZvcm0tY29udHJvbC1maWxlOmludmFsaWQgfiAuaW52YWxpZC10b29sdGlwLCAuZm9ybS1jb250cm9sLWZpbGUuaXMtaW52YWxpZCB+IC5pbnZhbGlkLWZlZWRiYWNrLFxuLmZvcm0tY29udHJvbC1maWxlLmlzLWludmFsaWQgfiAuaW52YWxpZC10b29sdGlwIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi53YXMtdmFsaWRhdGVkIC5mb3JtLWNoZWNrLWlucHV0OmludmFsaWQgfiAuZm9ybS1jaGVjay1sYWJlbCwgLmZvcm0tY2hlY2staW5wdXQuaXMtaW52YWxpZCB+IC5mb3JtLWNoZWNrLWxhYmVsIHtcbiAgY29sb3I6ICNkYzM1NDU7XG59XG5cbi53YXMtdmFsaWRhdGVkIC5mb3JtLWNoZWNrLWlucHV0OmludmFsaWQgfiAuaW52YWxpZC1mZWVkYmFjayxcbi53YXMtdmFsaWRhdGVkIC5mb3JtLWNoZWNrLWlucHV0OmludmFsaWQgfiAuaW52YWxpZC10b29sdGlwLCAuZm9ybS1jaGVjay1pbnB1dC5pcy1pbnZhbGlkIH4gLmludmFsaWQtZmVlZGJhY2ssXG4uZm9ybS1jaGVjay1pbnB1dC5pcy1pbnZhbGlkIH4gLmludmFsaWQtdG9vbHRpcCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6aW52YWxpZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbCwgLmN1c3RvbS1jb250cm9sLWlucHV0LmlzLWludmFsaWQgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWwge1xuICBjb2xvcjogI2RjMzU0NTtcbn1cblxuLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1jb250cm9sLWlucHV0OmludmFsaWQgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSwgLmN1c3RvbS1jb250cm9sLWlucHV0LmlzLWludmFsaWQgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZmEyYTk7XG59XG5cbi53YXMtdmFsaWRhdGVkIC5jdXN0b20tY29udHJvbC1pbnB1dDppbnZhbGlkIH4gLmludmFsaWQtZmVlZGJhY2ssXG4ud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6aW52YWxpZCB+IC5pbnZhbGlkLXRvb2x0aXAsIC5jdXN0b20tY29udHJvbC1pbnB1dC5pcy1pbnZhbGlkIH4gLmludmFsaWQtZmVlZGJhY2ssXG4uY3VzdG9tLWNvbnRyb2wtaW5wdXQuaXMtaW52YWxpZCB+IC5pbnZhbGlkLXRvb2x0aXAge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1jb250cm9sLWlucHV0OmludmFsaWQ6Y2hlY2tlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlLCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQuaXMtaW52YWxpZDpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTQ2MDZkO1xufVxuXG4ud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6aW52YWxpZDpmb2N1cyB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlLCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQuaXMtaW52YWxpZDpmb2N1cyB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICNmZmYsIDAgMCAwIDAuMnJlbSByZ2JhKDIyMCwgNTMsIDY5LCAwLjI1KTtcbn1cblxuLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1maWxlLWlucHV0OmludmFsaWQgfiAuY3VzdG9tLWZpbGUtbGFiZWwsIC5jdXN0b20tZmlsZS1pbnB1dC5pcy1pbnZhbGlkIH4gLmN1c3RvbS1maWxlLWxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiAjZGMzNTQ1O1xufVxuXG4ud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWZpbGUtaW5wdXQ6aW52YWxpZCB+IC5jdXN0b20tZmlsZS1sYWJlbDo6YmVmb3JlLCAuY3VzdG9tLWZpbGUtaW5wdXQuaXMtaW52YWxpZCB+IC5jdXN0b20tZmlsZS1sYWJlbDo6YmVmb3JlIHtcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xufVxuXG4ud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWZpbGUtaW5wdXQ6aW52YWxpZCB+IC5pbnZhbGlkLWZlZWRiYWNrLFxuLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1maWxlLWlucHV0OmludmFsaWQgfiAuaW52YWxpZC10b29sdGlwLCAuY3VzdG9tLWZpbGUtaW5wdXQuaXMtaW52YWxpZCB+IC5pbnZhbGlkLWZlZWRiYWNrLFxuLmN1c3RvbS1maWxlLWlucHV0LmlzLWludmFsaWQgfiAuaW52YWxpZC10b29sdGlwIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi53YXMtdmFsaWRhdGVkIC5jdXN0b20tZmlsZS1pbnB1dDppbnZhbGlkOmZvY3VzIH4gLmN1c3RvbS1maWxlLWxhYmVsLCAuY3VzdG9tLWZpbGUtaW5wdXQuaXMtaW52YWxpZDpmb2N1cyB+IC5jdXN0b20tZmlsZS1sYWJlbCB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDIyMCwgNTMsIDY5LCAwLjI1KTtcbn1cblxuLmZvcm0taW5saW5lIHtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC1tcy1mbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uZm9ybS1pbmxpbmUgLmZvcm0tY2hlY2sge1xuICB3aWR0aDogMTAwJTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gIC5mb3JtLWlubGluZSBsYWJlbCB7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbiAgLmZvcm0taW5saW5lIC5mb3JtLWdyb3VwIHtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAtbXMtZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gIC5mb3JtLWlubGluZSAuZm9ybS1jb250cm9sIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAuZm9ybS1pbmxpbmUgLmZvcm0tY29udHJvbC1wbGFpbnRleHQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuICAuZm9ybS1pbmxpbmUgLmlucHV0LWdyb3VwLFxuICAuZm9ybS1pbmxpbmUgLmN1c3RvbS1zZWxlY3Qge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG4gIC5mb3JtLWlubGluZSAuZm9ybS1jaGVjayB7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuICAuZm9ybS1pbmxpbmUgLmZvcm0tY2hlY2staW5wdXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuICAuZm9ybS1pbmxpbmUgLmN1c3RvbS1jb250cm9sIHtcbiAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG4gIC5mb3JtLWlubGluZSAuY3VzdG9tLWNvbnRyb2wtbGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLmJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogMC4zNzVyZW0gMC43NXJlbTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlLWluLW91dCwgYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlLWluLW91dCwgYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2UtaW4tb3V0LCBib3gtc2hhZG93IDAuMTVzIGVhc2UtaW4tb3V0O1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5idG4ge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbn1cblxuLmJ0bjpob3ZlciwgLmJ0bjpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmJ0bjpmb2N1cywgLmJ0bi5mb2N1cyB7XG4gIG91dGxpbmU6IDA7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDAsIDEyMywgMjU1LCAwLjI1KTtcbn1cblxuLmJ0bi5kaXNhYmxlZCwgLmJ0bjpkaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNjU7XG59XG5cbi5idG46bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5idG46bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLCAuYnRuOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG5cbmEuYnRuLmRpc2FibGVkLFxuZmllbGRzZXQ6ZGlzYWJsZWQgYS5idG4ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmJ0bi1wcmltYXJ5IHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDdiZmY7XG4gIGJvcmRlci1jb2xvcjogIzAwN2JmZjtcbn1cblxuLmJ0bi1wcmltYXJ5OmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDY5ZDk7XG4gIGJvcmRlci1jb2xvcjogIzAwNjJjYztcbn1cblxuLmJ0bi1wcmltYXJ5OmZvY3VzLCAuYnRuLXByaW1hcnkuZm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSgwLCAxMjMsIDI1NSwgMC41KTtcbn1cblxuLmJ0bi1wcmltYXJ5LmRpc2FibGVkLCAuYnRuLXByaW1hcnk6ZGlzYWJsZWQge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2JmZjtcbiAgYm9yZGVyLWNvbG9yOiAjMDA3YmZmO1xufVxuXG4uYnRuLXByaW1hcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLCAuYnRuLXByaW1hcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLFxuLnNob3cgPiAuYnRuLXByaW1hcnkuZHJvcGRvd24tdG9nZ2xlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDYyY2M7XG4gIGJvcmRlci1jb2xvcjogIzAwNWNiZjtcbn1cblxuLmJ0bi1wcmltYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZTpmb2N1cywgLmJ0bi1wcmltYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZTpmb2N1cyxcbi5zaG93ID4gLmJ0bi1wcmltYXJ5LmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDAsIDEyMywgMjU1LCAwLjUpO1xufVxuXG4uYnRuLXNlY29uZGFyeSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNmM3NTdkO1xuICBib3JkZXItY29sb3I6ICM2Yzc1N2Q7XG59XG5cbi5idG4tc2Vjb25kYXJ5OmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1YTYyNjg7XG4gIGJvcmRlci1jb2xvcjogIzU0NWI2Mjtcbn1cblxuLmJ0bi1zZWNvbmRhcnk6Zm9jdXMsIC5idG4tc2Vjb25kYXJ5LmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMTA4LCAxMTcsIDEyNSwgMC41KTtcbn1cblxuLmJ0bi1zZWNvbmRhcnkuZGlzYWJsZWQsIC5idG4tc2Vjb25kYXJ5OmRpc2FibGVkIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2Yzc1N2Q7XG4gIGJvcmRlci1jb2xvcjogIzZjNzU3ZDtcbn1cblxuLmJ0bi1zZWNvbmRhcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLCAuYnRuLXNlY29uZGFyeTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsXG4uc2hvdyA+IC5idG4tc2Vjb25kYXJ5LmRyb3Bkb3duLXRvZ2dsZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ1YjYyO1xuICBib3JkZXItY29sb3I6ICM0ZTU1NWI7XG59XG5cbi5idG4tc2Vjb25kYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZTpmb2N1cywgLmJ0bi1zZWNvbmRhcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlOmZvY3VzLFxuLnNob3cgPiAuYnRuLXNlY29uZGFyeS5kcm9wZG93bi10b2dnbGU6Zm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSgxMDgsIDExNywgMTI1LCAwLjUpO1xufVxuXG4uYnRuLXN1Y2Nlc3Mge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI4YTc0NTtcbiAgYm9yZGVyLWNvbG9yOiAjMjhhNzQ1O1xufVxuXG4uYnRuLXN1Y2Nlc3M6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxODgzODtcbiAgYm9yZGVyLWNvbG9yOiAjMWU3ZTM0O1xufVxuXG4uYnRuLXN1Y2Nlc3M6Zm9jdXMsIC5idG4tc3VjY2Vzcy5mb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDQwLCAxNjcsIDY5LCAwLjUpO1xufVxuXG4uYnRuLXN1Y2Nlc3MuZGlzYWJsZWQsIC5idG4tc3VjY2VzczpkaXNhYmxlZCB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjhhNzQ1O1xuICBib3JkZXItY29sb3I6ICMyOGE3NDU7XG59XG5cbi5idG4tc3VjY2Vzczpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsIC5idG4tc3VjY2Vzczpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsXG4uc2hvdyA+IC5idG4tc3VjY2Vzcy5kcm9wZG93bi10b2dnbGUge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFlN2UzNDtcbiAgYm9yZGVyLWNvbG9yOiAjMWM3NDMwO1xufVxuXG4uYnRuLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlOmZvY3VzLCAuYnRuLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlOmZvY3VzLFxuLnNob3cgPiAuYnRuLXN1Y2Nlc3MuZHJvcGRvd24tdG9nZ2xlOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoNDAsIDE2NywgNjksIDAuNSk7XG59XG5cbi5idG4taW5mbyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTdhMmI4O1xuICBib3JkZXItY29sb3I6ICMxN2EyYjg7XG59XG5cbi5idG4taW5mbzpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTM4NDk2O1xuICBib3JkZXItY29sb3I6ICMxMTdhOGI7XG59XG5cbi5idG4taW5mbzpmb2N1cywgLmJ0bi1pbmZvLmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMjMsIDE2MiwgMTg0LCAwLjUpO1xufVxuXG4uYnRuLWluZm8uZGlzYWJsZWQsIC5idG4taW5mbzpkaXNhYmxlZCB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTdhMmI4O1xuICBib3JkZXItY29sb3I6ICMxN2EyYjg7XG59XG5cbi5idG4taW5mbzpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsIC5idG4taW5mbzpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsXG4uc2hvdyA+IC5idG4taW5mby5kcm9wZG93bi10b2dnbGUge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzExN2E4YjtcbiAgYm9yZGVyLWNvbG9yOiAjMTA3MDdmO1xufVxuXG4uYnRuLWluZm86bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlOmZvY3VzLCAuYnRuLWluZm86bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlOmZvY3VzLFxuLnNob3cgPiAuYnRuLWluZm8uZHJvcGRvd24tdG9nZ2xlOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMjMsIDE2MiwgMTg0LCAwLjUpO1xufVxuXG4uYnRuLXdhcm5pbmcge1xuICBjb2xvcjogIzIxMjUyOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYzEwNztcbiAgYm9yZGVyLWNvbG9yOiAjZmZjMTA3O1xufVxuXG4uYnRuLXdhcm5pbmc6aG92ZXIge1xuICBjb2xvcjogIzIxMjUyOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwYTgwMDtcbiAgYm9yZGVyLWNvbG9yOiAjZDM5ZTAwO1xufVxuXG4uYnRuLXdhcm5pbmc6Zm9jdXMsIC5idG4td2FybmluZy5mb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDI1NSwgMTkzLCA3LCAwLjUpO1xufVxuXG4uYnRuLXdhcm5pbmcuZGlzYWJsZWQsIC5idG4td2FybmluZzpkaXNhYmxlZCB7XG4gIGNvbG9yOiAjMjEyNTI5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjMTA3O1xuICBib3JkZXItY29sb3I6ICNmZmMxMDc7XG59XG5cbi5idG4td2FybmluZzpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsIC5idG4td2FybmluZzpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsXG4uc2hvdyA+IC5idG4td2FybmluZy5kcm9wZG93bi10b2dnbGUge1xuICBjb2xvcjogIzIxMjUyOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QzOWUwMDtcbiAgYm9yZGVyLWNvbG9yOiAjYzY5NTAwO1xufVxuXG4uYnRuLXdhcm5pbmc6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlOmZvY3VzLCAuYnRuLXdhcm5pbmc6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlOmZvY3VzLFxuLnNob3cgPiAuYnRuLXdhcm5pbmcuZHJvcGRvd24tdG9nZ2xlOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMjU1LCAxOTMsIDcsIDAuNSk7XG59XG5cbi5idG4tZGFuZ2VyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkYzM1NDU7XG4gIGJvcmRlci1jb2xvcjogI2RjMzU0NTtcbn1cblxuLmJ0bi1kYW5nZXI6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M4MjMzMztcbiAgYm9yZGVyLWNvbG9yOiAjYmQyMTMwO1xufVxuXG4uYnRuLWRhbmdlcjpmb2N1cywgLmJ0bi1kYW5nZXIuZm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSgyMjAsIDUzLCA2OSwgMC41KTtcbn1cblxuLmJ0bi1kYW5nZXIuZGlzYWJsZWQsIC5idG4tZGFuZ2VyOmRpc2FibGVkIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkYzM1NDU7XG4gIGJvcmRlci1jb2xvcjogI2RjMzU0NTtcbn1cblxuLmJ0bi1kYW5nZXI6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLCAuYnRuLWRhbmdlcjpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsXG4uc2hvdyA+IC5idG4tZGFuZ2VyLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmQyMTMwO1xuICBib3JkZXItY29sb3I6ICNiMjFmMmQ7XG59XG5cbi5idG4tZGFuZ2VyOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZTpmb2N1cywgLmJ0bi1kYW5nZXI6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlOmZvY3VzLFxuLnNob3cgPiAuYnRuLWRhbmdlci5kcm9wZG93bi10b2dnbGU6Zm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSgyMjAsIDUzLCA2OSwgMC41KTtcbn1cblxuLmJ0bi1saWdodCB7XG4gIGNvbG9yOiAjMjEyNTI5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhO1xuICBib3JkZXItY29sb3I6ICNmOGY5ZmE7XG59XG5cbi5idG4tbGlnaHQ6aG92ZXIge1xuICBjb2xvcjogIzIxMjUyOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UyZTZlYTtcbiAgYm9yZGVyLWNvbG9yOiAjZGFlMGU1O1xufVxuXG4uYnRuLWxpZ2h0OmZvY3VzLCAuYnRuLWxpZ2h0LmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMjQ4LCAyNDksIDI1MCwgMC41KTtcbn1cblxuLmJ0bi1saWdodC5kaXNhYmxlZCwgLmJ0bi1saWdodDpkaXNhYmxlZCB7XG4gIGNvbG9yOiAjMjEyNTI5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhO1xuICBib3JkZXItY29sb3I6ICNmOGY5ZmE7XG59XG5cbi5idG4tbGlnaHQ6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLCAuYnRuLWxpZ2h0Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSxcbi5zaG93ID4gLmJ0bi1saWdodC5kcm9wZG93bi10b2dnbGUge1xuICBjb2xvcjogIzIxMjUyOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RhZTBlNTtcbiAgYm9yZGVyLWNvbG9yOiAjZDNkOWRmO1xufVxuXG4uYnRuLWxpZ2h0Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZTpmb2N1cywgLmJ0bi1saWdodDpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmU6Zm9jdXMsXG4uc2hvdyA+IC5idG4tbGlnaHQuZHJvcGRvd24tdG9nZ2xlOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMjQ4LCAyNDksIDI1MCwgMC41KTtcbn1cblxuLmJ0bi1kYXJrIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNDNhNDA7XG4gIGJvcmRlci1jb2xvcjogIzM0M2E0MDtcbn1cblxuLmJ0bi1kYXJrOmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMzI3MmI7XG4gIGJvcmRlci1jb2xvcjogIzFkMjEyNDtcbn1cblxuLmJ0bi1kYXJrOmZvY3VzLCAuYnRuLWRhcmsuZm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSg1MiwgNTgsIDY0LCAwLjUpO1xufVxuXG4uYnRuLWRhcmsuZGlzYWJsZWQsIC5idG4tZGFyazpkaXNhYmxlZCB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQzYTQwO1xuICBib3JkZXItY29sb3I6ICMzNDNhNDA7XG59XG5cbi5idG4tZGFyazpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsIC5idG4tZGFyazpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsXG4uc2hvdyA+IC5idG4tZGFyay5kcm9wZG93bi10b2dnbGUge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFkMjEyNDtcbiAgYm9yZGVyLWNvbG9yOiAjMTcxYTFkO1xufVxuXG4uYnRuLWRhcms6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlOmZvY3VzLCAuYnRuLWRhcms6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlOmZvY3VzLFxuLnNob3cgPiAuYnRuLWRhcmsuZHJvcGRvd24tdG9nZ2xlOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoNTIsIDU4LCA2NCwgMC41KTtcbn1cblxuLmJ0bi1vdXRsaW5lLXByaW1hcnkge1xuICBjb2xvcjogIzAwN2JmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogIzAwN2JmZjtcbn1cblxuLmJ0bi1vdXRsaW5lLXByaW1hcnk6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2JmZjtcbiAgYm9yZGVyLWNvbG9yOiAjMDA3YmZmO1xufVxuXG4uYnRuLW91dGxpbmUtcHJpbWFyeTpmb2N1cywgLmJ0bi1vdXRsaW5lLXByaW1hcnkuZm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSgwLCAxMjMsIDI1NSwgMC41KTtcbn1cblxuLmJ0bi1vdXRsaW5lLXByaW1hcnkuZGlzYWJsZWQsIC5idG4tb3V0bGluZS1wcmltYXJ5OmRpc2FibGVkIHtcbiAgY29sb3I6ICMwMDdiZmY7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uYnRuLW91dGxpbmUtcHJpbWFyeTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsIC5idG4tb3V0bGluZS1wcmltYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSxcbi5zaG93ID4gLmJ0bi1vdXRsaW5lLXByaW1hcnkuZHJvcGRvd24tdG9nZ2xlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDdiZmY7XG4gIGJvcmRlci1jb2xvcjogIzAwN2JmZjtcbn1cblxuLmJ0bi1vdXRsaW5lLXByaW1hcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlOmZvY3VzLCAuYnRuLW91dGxpbmUtcHJpbWFyeTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmU6Zm9jdXMsXG4uc2hvdyA+IC5idG4tb3V0bGluZS1wcmltYXJ5LmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDAsIDEyMywgMjU1LCAwLjUpO1xufVxuXG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IHtcbiAgY29sb3I6ICM2Yzc1N2Q7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3JkZXItY29sb3I6ICM2Yzc1N2Q7XG59XG5cbi5idG4tb3V0bGluZS1zZWNvbmRhcnk6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZjNzU3ZDtcbiAgYm9yZGVyLWNvbG9yOiAjNmM3NTdkO1xufVxuXG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5OmZvY3VzLCAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMTA4LCAxMTcsIDEyNSwgMC41KTtcbn1cblxuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeS5kaXNhYmxlZCwgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpkaXNhYmxlZCB7XG4gIGNvbG9yOiAjNmM3NTdkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsIC5idG4tb3V0bGluZS1zZWNvbmRhcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLFxuLnNob3cgPiAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmRyb3Bkb3duLXRvZ2dsZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNmM3NTdkO1xuICBib3JkZXItY29sb3I6ICM2Yzc1N2Q7XG59XG5cbi5idG4tb3V0bGluZS1zZWNvbmRhcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlOmZvY3VzLCAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZTpmb2N1cyxcbi5zaG93ID4gLmJ0bi1vdXRsaW5lLXNlY29uZGFyeS5kcm9wZG93bi10b2dnbGU6Zm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSgxMDgsIDExNywgMTI1LCAwLjUpO1xufVxuXG4uYnRuLW91dGxpbmUtc3VjY2VzcyB7XG4gIGNvbG9yOiAjMjhhNzQ1O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiAjMjhhNzQ1O1xufVxuXG4uYnRuLW91dGxpbmUtc3VjY2Vzczpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjhhNzQ1O1xuICBib3JkZXItY29sb3I6ICMyOGE3NDU7XG59XG5cbi5idG4tb3V0bGluZS1zdWNjZXNzOmZvY3VzLCAuYnRuLW91dGxpbmUtc3VjY2Vzcy5mb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDQwLCAxNjcsIDY5LCAwLjUpO1xufVxuXG4uYnRuLW91dGxpbmUtc3VjY2Vzcy5kaXNhYmxlZCwgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3M6ZGlzYWJsZWQge1xuICBjb2xvcjogIzI4YTc0NTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5idG4tb3V0bGluZS1zdWNjZXNzOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLFxuLnNob3cgPiAuYnRuLW91dGxpbmUtc3VjY2Vzcy5kcm9wZG93bi10b2dnbGUge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI4YTc0NTtcbiAgYm9yZGVyLWNvbG9yOiAjMjhhNzQ1O1xufVxuXG4uYnRuLW91dGxpbmUtc3VjY2Vzczpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmU6Zm9jdXMsIC5idG4tb3V0bGluZS1zdWNjZXNzOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZTpmb2N1cyxcbi5zaG93ID4gLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuZHJvcGRvd24tdG9nZ2xlOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoNDAsIDE2NywgNjksIDAuNSk7XG59XG5cbi5idG4tb3V0bGluZS1pbmZvIHtcbiAgY29sb3I6ICMxN2EyYjg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3JkZXItY29sb3I6ICMxN2EyYjg7XG59XG5cbi5idG4tb3V0bGluZS1pbmZvOmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxN2EyYjg7XG4gIGJvcmRlci1jb2xvcjogIzE3YTJiODtcbn1cblxuLmJ0bi1vdXRsaW5lLWluZm86Zm9jdXMsIC5idG4tb3V0bGluZS1pbmZvLmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMjMsIDE2MiwgMTg0LCAwLjUpO1xufVxuXG4uYnRuLW91dGxpbmUtaW5mby5kaXNhYmxlZCwgLmJ0bi1vdXRsaW5lLWluZm86ZGlzYWJsZWQge1xuICBjb2xvcjogIzE3YTJiODtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5idG4tb3V0bGluZS1pbmZvOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwgLmJ0bi1vdXRsaW5lLWluZm86bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLFxuLnNob3cgPiAuYnRuLW91dGxpbmUtaW5mby5kcm9wZG93bi10b2dnbGUge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3YTJiODtcbiAgYm9yZGVyLWNvbG9yOiAjMTdhMmI4O1xufVxuXG4uYnRuLW91dGxpbmUtaW5mbzpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmU6Zm9jdXMsIC5idG4tb3V0bGluZS1pbmZvOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZTpmb2N1cyxcbi5zaG93ID4gLmJ0bi1vdXRsaW5lLWluZm8uZHJvcGRvd24tdG9nZ2xlOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMjMsIDE2MiwgMTg0LCAwLjUpO1xufVxuXG4uYnRuLW91dGxpbmUtd2FybmluZyB7XG4gIGNvbG9yOiAjZmZjMTA3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiAjZmZjMTA3O1xufVxuXG4uYnRuLW91dGxpbmUtd2FybmluZzpob3ZlciB7XG4gIGNvbG9yOiAjMjEyNTI5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjMTA3O1xuICBib3JkZXItY29sb3I6ICNmZmMxMDc7XG59XG5cbi5idG4tb3V0bGluZS13YXJuaW5nOmZvY3VzLCAuYnRuLW91dGxpbmUtd2FybmluZy5mb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDI1NSwgMTkzLCA3LCAwLjUpO1xufVxuXG4uYnRuLW91dGxpbmUtd2FybmluZy5kaXNhYmxlZCwgLmJ0bi1vdXRsaW5lLXdhcm5pbmc6ZGlzYWJsZWQge1xuICBjb2xvcjogI2ZmYzEwNztcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5idG4tb3V0bGluZS13YXJuaW5nOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwgLmJ0bi1vdXRsaW5lLXdhcm5pbmc6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLFxuLnNob3cgPiAuYnRuLW91dGxpbmUtd2FybmluZy5kcm9wZG93bi10b2dnbGUge1xuICBjb2xvcjogIzIxMjUyOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYzEwNztcbiAgYm9yZGVyLWNvbG9yOiAjZmZjMTA3O1xufVxuXG4uYnRuLW91dGxpbmUtd2FybmluZzpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmU6Zm9jdXMsIC5idG4tb3V0bGluZS13YXJuaW5nOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZTpmb2N1cyxcbi5zaG93ID4gLmJ0bi1vdXRsaW5lLXdhcm5pbmcuZHJvcGRvd24tdG9nZ2xlOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMjU1LCAxOTMsIDcsIDAuNSk7XG59XG5cbi5idG4tb3V0bGluZS1kYW5nZXIge1xuICBjb2xvcjogI2RjMzU0NTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogI2RjMzU0NTtcbn1cblxuLmJ0bi1vdXRsaW5lLWRhbmdlcjpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGMzNTQ1O1xuICBib3JkZXItY29sb3I6ICNkYzM1NDU7XG59XG5cbi5idG4tb3V0bGluZS1kYW5nZXI6Zm9jdXMsIC5idG4tb3V0bGluZS1kYW5nZXIuZm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSgyMjAsIDUzLCA2OSwgMC41KTtcbn1cblxuLmJ0bi1vdXRsaW5lLWRhbmdlci5kaXNhYmxlZCwgLmJ0bi1vdXRsaW5lLWRhbmdlcjpkaXNhYmxlZCB7XG4gIGNvbG9yOiAjZGMzNTQ1O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmJ0bi1vdXRsaW5lLWRhbmdlcjpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsIC5idG4tb3V0bGluZS1kYW5nZXI6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLFxuLnNob3cgPiAuYnRuLW91dGxpbmUtZGFuZ2VyLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGMzNTQ1O1xuICBib3JkZXItY29sb3I6ICNkYzM1NDU7XG59XG5cbi5idG4tb3V0bGluZS1kYW5nZXI6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlOmZvY3VzLCAuYnRuLW91dGxpbmUtZGFuZ2VyOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZTpmb2N1cyxcbi5zaG93ID4gLmJ0bi1vdXRsaW5lLWRhbmdlci5kcm9wZG93bi10b2dnbGU6Zm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSgyMjAsIDUzLCA2OSwgMC41KTtcbn1cblxuLmJ0bi1vdXRsaW5lLWxpZ2h0IHtcbiAgY29sb3I6ICNmOGY5ZmE7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3JkZXItY29sb3I6ICNmOGY5ZmE7XG59XG5cbi5idG4tb3V0bGluZS1saWdodDpob3ZlciB7XG4gIGNvbG9yOiAjMjEyNTI5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhO1xuICBib3JkZXItY29sb3I6ICNmOGY5ZmE7XG59XG5cbi5idG4tb3V0bGluZS1saWdodDpmb2N1cywgLmJ0bi1vdXRsaW5lLWxpZ2h0LmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMjQ4LCAyNDksIDI1MCwgMC41KTtcbn1cblxuLmJ0bi1vdXRsaW5lLWxpZ2h0LmRpc2FibGVkLCAuYnRuLW91dGxpbmUtbGlnaHQ6ZGlzYWJsZWQge1xuICBjb2xvcjogI2Y4ZjlmYTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5idG4tb3V0bGluZS1saWdodDpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsIC5idG4tb3V0bGluZS1saWdodDpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsXG4uc2hvdyA+IC5idG4tb3V0bGluZS1saWdodC5kcm9wZG93bi10b2dnbGUge1xuICBjb2xvcjogIzIxMjUyOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjlmYTtcbiAgYm9yZGVyLWNvbG9yOiAjZjhmOWZhO1xufVxuXG4uYnRuLW91dGxpbmUtbGlnaHQ6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlOmZvY3VzLCAuYnRuLW91dGxpbmUtbGlnaHQ6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlOmZvY3VzLFxuLnNob3cgPiAuYnRuLW91dGxpbmUtbGlnaHQuZHJvcGRvd24tdG9nZ2xlOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMjQ4LCAyNDksIDI1MCwgMC41KTtcbn1cblxuLmJ0bi1vdXRsaW5lLWRhcmsge1xuICBjb2xvcjogIzM0M2E0MDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogIzM0M2E0MDtcbn1cblxuLmJ0bi1vdXRsaW5lLWRhcms6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM0M2E0MDtcbiAgYm9yZGVyLWNvbG9yOiAjMzQzYTQwO1xufVxuXG4uYnRuLW91dGxpbmUtZGFyazpmb2N1cywgLmJ0bi1vdXRsaW5lLWRhcmsuZm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSg1MiwgNTgsIDY0LCAwLjUpO1xufVxuXG4uYnRuLW91dGxpbmUtZGFyay5kaXNhYmxlZCwgLmJ0bi1vdXRsaW5lLWRhcms6ZGlzYWJsZWQge1xuICBjb2xvcjogIzM0M2E0MDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5idG4tb3V0bGluZS1kYXJrOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwgLmJ0bi1vdXRsaW5lLWRhcms6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLFxuLnNob3cgPiAuYnRuLW91dGxpbmUtZGFyay5kcm9wZG93bi10b2dnbGUge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM0M2E0MDtcbiAgYm9yZGVyLWNvbG9yOiAjMzQzYTQwO1xufVxuXG4uYnRuLW91dGxpbmUtZGFyazpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmU6Zm9jdXMsIC5idG4tb3V0bGluZS1kYXJrOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZTpmb2N1cyxcbi5zaG93ID4gLmJ0bi1vdXRsaW5lLWRhcmsuZHJvcGRvd24tdG9nZ2xlOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoNTIsIDU4LCA2NCwgMC41KTtcbn1cblxuLmJ0bi1saW5rIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgY29sb3I6ICMwMDdiZmY7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uYnRuLWxpbms6aG92ZXIge1xuICBjb2xvcjogIzAwNTZiMztcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uYnRuLWxpbms6Zm9jdXMsIC5idG4tbGluay5mb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4uYnRuLWxpbms6ZGlzYWJsZWQsIC5idG4tbGluay5kaXNhYmxlZCB7XG4gIGNvbG9yOiAjNmM3NTdkO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmJ0bi1sZywgLmJ0bi1ncm91cC1sZyA+IC5idG4ge1xuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBib3JkZXItcmFkaXVzOiAwLjNyZW07XG59XG5cbi5idG4tc20sIC5idG4tZ3JvdXAtc20gPiAuYnRuIHtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGJvcmRlci1yYWRpdXM6IDAuMnJlbTtcbn1cblxuLmJ0bi1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmJ0bi1ibG9jayArIC5idG4tYmxvY2sge1xuICBtYXJnaW4tdG9wOiAwLjVyZW07XG59XG5cbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0uYnRuLWJsb2NrLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLmJ0bi1ibG9jayxcbmlucHV0W3R5cGU9XCJidXR0b25cIl0uYnRuLWJsb2NrIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5mYWRlIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXI7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmZhZGUge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbn1cblxuLmZhZGU6bm90KC5zaG93KSB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5jb2xsYXBzZTpub3QoLnNob3cpIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNvbGxhcHNpbmcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMzVzIGVhc2U7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmNvbGxhcHNpbmcge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbn1cblxuLmRyb3B1cCxcbi5kcm9wcmlnaHQsXG4uZHJvcGRvd24sXG4uZHJvcGxlZnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5kcm9wZG93bi10b2dnbGU6OmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMC4yNTVlbTtcbiAgdmVydGljYWwtYWxpZ246IDAuMjU1ZW07XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJvcmRlci10b3A6IDAuM2VtIHNvbGlkO1xuICBib3JkZXItcmlnaHQ6IDAuM2VtIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAwO1xuICBib3JkZXItbGVmdDogMC4zZW0gc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi5kcm9wZG93bi10b2dnbGU6ZW1wdHk6OmFmdGVyIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5kcm9wZG93bi1tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZsb2F0OiBsZWZ0O1xuICBtaW4td2lkdGg6IDEwcmVtO1xuICBwYWRkaW5nOiAwLjVyZW0gMDtcbiAgbWFyZ2luOiAwLjEyNXJlbSAwIDA7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgY29sb3I6ICMyMTI1Mjk7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG59XG5cbi5kcm9wZG93bi1tZW51LXJpZ2h0IHtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87XG59XG5cbi5kcm9wdXAgLmRyb3Bkb3duLW1lbnUge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMTAwJTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC4xMjVyZW07XG59XG5cbi5kcm9wdXAgLmRyb3Bkb3duLXRvZ2dsZTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwLjI1NWVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogMC4yNTVlbTtcbiAgY29udGVudDogXCJcIjtcbiAgYm9yZGVyLXRvcDogMDtcbiAgYm9yZGVyLXJpZ2h0OiAwLjNlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMC4zZW0gc29saWQ7XG4gIGJvcmRlci1sZWZ0OiAwLjNlbSBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLmRyb3B1cCAuZHJvcGRvd24tdG9nZ2xlOmVtcHR5OjphZnRlciB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4uZHJvcHJpZ2h0IC5kcm9wZG93bi1tZW51IHtcbiAgdG9wOiAwO1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMTAwJTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWxlZnQ6IDAuMTI1cmVtO1xufVxuXG4uZHJvcHJpZ2h0IC5kcm9wZG93bi10b2dnbGU6OmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMC4yNTVlbTtcbiAgdmVydGljYWwtYWxpZ246IDAuMjU1ZW07XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJvcmRlci10b3A6IDAuM2VtIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDA7XG4gIGJvcmRlci1ib3R0b206IDAuM2VtIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdDogMC4zZW0gc29saWQ7XG59XG5cbi5kcm9wcmlnaHQgLmRyb3Bkb3duLXRvZ2dsZTplbXB0eTo6YWZ0ZXIge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLmRyb3ByaWdodCAuZHJvcGRvd24tdG9nZ2xlOjphZnRlciB7XG4gIHZlcnRpY2FsLWFsaWduOiAwO1xufVxuXG4uZHJvcGxlZnQgLmRyb3Bkb3duLW1lbnUge1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAxMDAlO1xuICBsZWZ0OiBhdXRvO1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tcmlnaHQ6IDAuMTI1cmVtO1xufVxuXG4uZHJvcGxlZnQgLmRyb3Bkb3duLXRvZ2dsZTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwLjI1NWVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogMC4yNTVlbTtcbiAgY29udGVudDogXCJcIjtcbn1cblxuLmRyb3BsZWZ0IC5kcm9wZG93bi10b2dnbGU6OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmRyb3BsZWZ0IC5kcm9wZG93bi10b2dnbGU6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwLjI1NWVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogMC4yNTVlbTtcbiAgY29udGVudDogXCJcIjtcbiAgYm9yZGVyLXRvcDogMC4zZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogMC4zZW0gc29saWQ7XG4gIGJvcmRlci1ib3R0b206IDAuM2VtIHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4uZHJvcGxlZnQgLmRyb3Bkb3duLXRvZ2dsZTplbXB0eTo6YWZ0ZXIge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLmRyb3BsZWZ0IC5kcm9wZG93bi10b2dnbGU6OmJlZm9yZSB7XG4gIHZlcnRpY2FsLWFsaWduOiAwO1xufVxuXG4uZHJvcGRvd24tbWVudVt4LXBsYWNlbWVudF49XCJ0b3BcIl0sIC5kcm9wZG93bi1tZW51W3gtcGxhY2VtZW50Xj1cInJpZ2h0XCJdLCAuZHJvcGRvd24tbWVudVt4LXBsYWNlbWVudF49XCJib3R0b21cIl0sIC5kcm9wZG93bi1tZW51W3gtcGxhY2VtZW50Xj1cImxlZnRcIl0ge1xuICByaWdodDogYXV0bztcbiAgYm90dG9tOiBhdXRvO1xufVxuXG4uZHJvcGRvd24tZGl2aWRlciB7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luOiAwLjVyZW0gMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlOWVjZWY7XG59XG5cbi5kcm9wZG93bi1pdGVtIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwLjI1cmVtIDEuNXJlbTtcbiAgY2xlYXI6IGJvdGg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAjMjEyNTI5O1xuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xufVxuXG4uZHJvcGRvd24taXRlbTpob3ZlciwgLmRyb3Bkb3duLWl0ZW06Zm9jdXMge1xuICBjb2xvcjogIzE2MTgxYjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhO1xufVxuXG4uZHJvcGRvd24taXRlbS5hY3RpdmUsIC5kcm9wZG93bi1pdGVtOmFjdGl2ZSB7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDdiZmY7XG59XG5cbi5kcm9wZG93bi1pdGVtLmRpc2FibGVkLCAuZHJvcGRvd24taXRlbTpkaXNhYmxlZCB7XG4gIGNvbG9yOiAjNmM3NTdkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmRyb3Bkb3duLW1lbnUuc2hvdyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZHJvcGRvd24taGVhZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDAuNXJlbSAxLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGNvbG9yOiAjNmM3NTdkO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uZHJvcGRvd24taXRlbS10ZXh0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMS41cmVtO1xuICBjb2xvcjogIzIxMjUyOTtcbn1cblxuLmJ0bi1ncm91cCxcbi5idG4tZ3JvdXAtdmVydGljYWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5idG4tZ3JvdXAgPiAuYnRuLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC1tcy1mbGV4OiAwIDEgYXV0bztcbiAgZmxleDogMCAxIGF1dG87XG59XG5cbi5idG4tZ3JvdXAgPiAuYnRuOmhvdmVyLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG46aG92ZXIge1xuICB6LWluZGV4OiAxO1xufVxuXG4uYnRuLWdyb3VwID4gLmJ0bjpmb2N1cywgLmJ0bi1ncm91cCA+IC5idG46YWN0aXZlLCAuYnRuLWdyb3VwID4gLmJ0bi5hY3RpdmUsXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bjpmb2N1cyxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOmFjdGl2ZSxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLmFjdGl2ZSB7XG4gIHotaW5kZXg6IDE7XG59XG5cbi5idG4tZ3JvdXAgLmJ0biArIC5idG4sXG4uYnRuLWdyb3VwIC5idG4gKyAuYnRuLWdyb3VwLFxuLmJ0bi1ncm91cCAuYnRuLWdyb3VwICsgLmJ0bixcbi5idG4tZ3JvdXAgLmJ0bi1ncm91cCArIC5idG4tZ3JvdXAsXG4uYnRuLWdyb3VwLXZlcnRpY2FsIC5idG4gKyAuYnRuLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCAuYnRuICsgLmJ0bi1ncm91cCxcbi5idG4tZ3JvdXAtdmVydGljYWwgLmJ0bi1ncm91cCArIC5idG4sXG4uYnRuLWdyb3VwLXZlcnRpY2FsIC5idG4tZ3JvdXAgKyAuYnRuLWdyb3VwIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG5cbi5idG4tdG9vbGJhciB7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xuICAtbXMtZmxleC13cmFwOiB3cmFwO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5cbi5idG4tdG9vbGJhciAuaW5wdXQtZ3JvdXAge1xuICB3aWR0aDogYXV0bztcbn1cblxuLmJ0bi1ncm91cCA+IC5idG46Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLmJ0bi1ncm91cCA+IC5idG46bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSksXG4uYnRuLWdyb3VwID4gLmJ0bi1ncm91cDpub3QoOmxhc3QtY2hpbGQpID4gLmJ0biB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbn1cblxuLmJ0bi1ncm91cCA+IC5idG46bm90KDpmaXJzdC1jaGlsZCksXG4uYnRuLWdyb3VwID4gLmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG4ge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xufVxuXG4uZHJvcGRvd24tdG9nZ2xlLXNwbGl0IHtcbiAgcGFkZGluZy1yaWdodDogMC41NjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNTYyNXJlbTtcbn1cblxuLmRyb3Bkb3duLXRvZ2dsZS1zcGxpdDo6YWZ0ZXIsXG4uZHJvcHVwIC5kcm9wZG93bi10b2dnbGUtc3BsaXQ6OmFmdGVyLFxuLmRyb3ByaWdodCAuZHJvcGRvd24tdG9nZ2xlLXNwbGl0OjphZnRlciB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4uZHJvcGxlZnQgLmRyb3Bkb3duLXRvZ2dsZS1zcGxpdDo6YmVmb3JlIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4uYnRuLXNtICsgLmRyb3Bkb3duLXRvZ2dsZS1zcGxpdCwgLmJ0bi1ncm91cC1zbSA+IC5idG4gKyAuZHJvcGRvd24tdG9nZ2xlLXNwbGl0IHtcbiAgcGFkZGluZy1yaWdodDogMC4zNzVyZW07XG4gIHBhZGRpbmctbGVmdDogMC4zNzVyZW07XG59XG5cbi5idG4tbGcgKyAuZHJvcGRvd24tdG9nZ2xlLXNwbGl0LCAuYnRuLWdyb3VwLWxnID4gLmJ0biArIC5kcm9wZG93bi10b2dnbGUtc3BsaXQge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjc1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW07XG59XG5cbi5idG4tZ3JvdXAtdmVydGljYWwge1xuICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmJ0bi1ncm91cC12ZXJ0aWNhbCAuYnRuLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCAuYnRuLWdyb3VwIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuICsgLmJ0bixcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuICsgLmJ0bi1ncm91cCxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwICsgLmJ0bixcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwICsgLmJ0bi1ncm91cCB7XG4gIG1hcmdpbi10b3A6IC0xcHg7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bjpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG59XG5cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOm5vdCg6Zmlyc3QtY2hpbGQpLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG59XG5cbi5idG4tZ3JvdXAtdG9nZ2xlID4gLmJ0bixcbi5idG4tZ3JvdXAtdG9nZ2xlID4gLmJ0bi1ncm91cCA+IC5idG4ge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uYnRuLWdyb3VwLXRvZ2dsZSA+IC5idG4gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuLmJ0bi1ncm91cC10b2dnbGUgPiAuYnRuIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbi5idG4tZ3JvdXAtdG9nZ2xlID4gLmJ0bi1ncm91cCA+IC5idG4gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuLmJ0bi1ncm91cC10b2dnbGUgPiAuYnRuLWdyb3VwID4gLmJ0biBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uaW5wdXQtZ3JvdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xuICAtbXMtZmxleC13cmFwOiB3cmFwO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5pbnB1dC1ncm91cCA+IC5mb3JtLWNvbnRyb2wsXG4uaW5wdXQtZ3JvdXAgPiAuY3VzdG9tLXNlbGVjdCxcbi5pbnB1dC1ncm91cCA+IC5jdXN0b20tZmlsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLW1zLWZsZXg6IDEgMSBhdXRvO1xuICBmbGV4OiAxIDEgYXV0bztcbiAgd2lkdGg6IDElO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uaW5wdXQtZ3JvdXAgPiAuZm9ybS1jb250cm9sOmZvY3VzLFxuLmlucHV0LWdyb3VwID4gLmN1c3RvbS1zZWxlY3Q6Zm9jdXMsXG4uaW5wdXQtZ3JvdXAgPiAuY3VzdG9tLWZpbGU6Zm9jdXMge1xuICB6LWluZGV4OiAzO1xufVxuXG4uaW5wdXQtZ3JvdXAgPiAuZm9ybS1jb250cm9sICsgLmZvcm0tY29udHJvbCxcbi5pbnB1dC1ncm91cCA+IC5mb3JtLWNvbnRyb2wgKyAuY3VzdG9tLXNlbGVjdCxcbi5pbnB1dC1ncm91cCA+IC5mb3JtLWNvbnRyb2wgKyAuY3VzdG9tLWZpbGUsXG4uaW5wdXQtZ3JvdXAgPiAuY3VzdG9tLXNlbGVjdCArIC5mb3JtLWNvbnRyb2wsXG4uaW5wdXQtZ3JvdXAgPiAuY3VzdG9tLXNlbGVjdCArIC5jdXN0b20tc2VsZWN0LFxuLmlucHV0LWdyb3VwID4gLmN1c3RvbS1zZWxlY3QgKyAuY3VzdG9tLWZpbGUsXG4uaW5wdXQtZ3JvdXAgPiAuY3VzdG9tLWZpbGUgKyAuZm9ybS1jb250cm9sLFxuLmlucHV0LWdyb3VwID4gLmN1c3RvbS1maWxlICsgLmN1c3RvbS1zZWxlY3QsXG4uaW5wdXQtZ3JvdXAgPiAuY3VzdG9tLWZpbGUgKyAuY3VzdG9tLWZpbGUge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cblxuLmlucHV0LWdyb3VwID4gLmZvcm0tY29udHJvbDpub3QoOmxhc3QtY2hpbGQpLFxuLmlucHV0LWdyb3VwID4gLmN1c3RvbS1zZWxlY3Q6bm90KDpsYXN0LWNoaWxkKSB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbn1cblxuLmlucHV0LWdyb3VwID4gLmZvcm0tY29udHJvbDpub3QoOmZpcnN0LWNoaWxkKSxcbi5pbnB1dC1ncm91cCA+IC5jdXN0b20tc2VsZWN0Om5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cblxuLmlucHV0LWdyb3VwID4gLmN1c3RvbS1maWxlIHtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5pbnB1dC1ncm91cCA+IC5jdXN0b20tZmlsZTpub3QoOmxhc3QtY2hpbGQpIC5jdXN0b20tZmlsZS1sYWJlbCxcbi5pbnB1dC1ncm91cCA+IC5jdXN0b20tZmlsZTpub3QoOmxhc3QtY2hpbGQpIC5jdXN0b20tZmlsZS1sYWJlbDo6YWZ0ZXIge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG59XG5cbi5pbnB1dC1ncm91cCA+IC5jdXN0b20tZmlsZTpub3QoOmZpcnN0LWNoaWxkKSAuY3VzdG9tLWZpbGUtbGFiZWwge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xufVxuXG4uaW5wdXQtZ3JvdXAtcHJlcGVuZCxcbi5pbnB1dC1ncm91cC1hcHBlbmQge1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLmlucHV0LWdyb3VwLXByZXBlbmQgLmJ0bixcbi5pbnB1dC1ncm91cC1hcHBlbmQgLmJ0biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbn1cblxuLmlucHV0LWdyb3VwLXByZXBlbmQgLmJ0biArIC5idG4sXG4uaW5wdXQtZ3JvdXAtcHJlcGVuZCAuYnRuICsgLmlucHV0LWdyb3VwLXRleHQsXG4uaW5wdXQtZ3JvdXAtcHJlcGVuZCAuaW5wdXQtZ3JvdXAtdGV4dCArIC5pbnB1dC1ncm91cC10ZXh0LFxuLmlucHV0LWdyb3VwLXByZXBlbmQgLmlucHV0LWdyb3VwLXRleHQgKyAuYnRuLFxuLmlucHV0LWdyb3VwLWFwcGVuZCAuYnRuICsgLmJ0bixcbi5pbnB1dC1ncm91cC1hcHBlbmQgLmJ0biArIC5pbnB1dC1ncm91cC10ZXh0LFxuLmlucHV0LWdyb3VwLWFwcGVuZCAuaW5wdXQtZ3JvdXAtdGV4dCArIC5pbnB1dC1ncm91cC10ZXh0LFxuLmlucHV0LWdyb3VwLWFwcGVuZCAuaW5wdXQtZ3JvdXAtdGV4dCArIC5idG4ge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cblxuLmlucHV0LWdyb3VwLXByZXBlbmQge1xuICBtYXJnaW4tcmlnaHQ6IC0xcHg7XG59XG5cbi5pbnB1dC1ncm91cC1hcHBlbmQge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cblxuLmlucHV0LWdyb3VwLXRleHQge1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMC4zNzVyZW0gMC43NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzQ5NTA1NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllY2VmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2VkNGRhO1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xufVxuXG4uaW5wdXQtZ3JvdXAtdGV4dCBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4uaW5wdXQtZ3JvdXAtdGV4dCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4uaW5wdXQtZ3JvdXAgPiAuaW5wdXQtZ3JvdXAtcHJlcGVuZCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAgPiAuaW5wdXQtZ3JvdXAtcHJlcGVuZCA+IC5pbnB1dC1ncm91cC10ZXh0LFxuLmlucHV0LWdyb3VwID4gLmlucHV0LWdyb3VwLWFwcGVuZDpub3QoOmxhc3QtY2hpbGQpID4gLmJ0bixcbi5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1hcHBlbmQ6bm90KDpsYXN0LWNoaWxkKSA+IC5pbnB1dC1ncm91cC10ZXh0LFxuLmlucHV0LWdyb3VwID4gLmlucHV0LWdyb3VwLWFwcGVuZDpsYXN0LWNoaWxkID4gLmJ0bjpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSxcbi5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1hcHBlbmQ6bGFzdC1jaGlsZCA+IC5pbnB1dC1ncm91cC10ZXh0Om5vdCg6bGFzdC1jaGlsZCkge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG59XG5cbi5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1hcHBlbmQgPiAuYnRuLFxuLmlucHV0LWdyb3VwID4gLmlucHV0LWdyb3VwLWFwcGVuZCA+IC5pbnB1dC1ncm91cC10ZXh0LFxuLmlucHV0LWdyb3VwID4gLmlucHV0LWdyb3VwLXByZXBlbmQ6bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuLFxuLmlucHV0LWdyb3VwID4gLmlucHV0LWdyb3VwLXByZXBlbmQ6bm90KDpmaXJzdC1jaGlsZCkgPiAuaW5wdXQtZ3JvdXAtdGV4dCxcbi5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1wcmVwZW5kOmZpcnN0LWNoaWxkID4gLmJ0bjpub3QoOmZpcnN0LWNoaWxkKSxcbi5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1wcmVwZW5kOmZpcnN0LWNoaWxkID4gLmlucHV0LWdyb3VwLXRleHQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xufVxuXG4uY3VzdG9tLWNvbnRyb2wge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtaW4taGVpZ2h0OiAxLjVyZW07XG4gIHBhZGRpbmctbGVmdDogMS41cmVtO1xufVxuXG4uY3VzdG9tLWNvbnRyb2wtaW5saW5lIHtcbiAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xufVxuXG4uY3VzdG9tLWNvbnRyb2wtaW5wdXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IC0xO1xuICBvcGFjaXR5OiAwO1xufVxuXG4uY3VzdG9tLWNvbnRyb2wtaW5wdXQ6Y2hlY2tlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDdiZmY7XG59XG5cbi5jdXN0b20tY29udHJvbC1pbnB1dDpmb2N1cyB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICNmZmYsIDAgMCAwIDAuMnJlbSByZ2JhKDAsIDEyMywgMjU1LCAwLjI1KTtcbn1cblxuLmN1c3RvbS1jb250cm9sLWlucHV0OmFjdGl2ZSB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiM2Q3ZmY7XG59XG5cbi5jdXN0b20tY29udHJvbC1pbnB1dDpkaXNhYmxlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbCB7XG4gIGNvbG9yOiAjNmM3NTdkO1xufVxuXG4uY3VzdG9tLWNvbnRyb2wtaW5wdXQ6ZGlzYWJsZWQgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlOWVjZWY7XG59XG5cbi5jdXN0b20tY29udHJvbC1sYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMC4yNXJlbTtcbiAgbGVmdDogLTEuNXJlbTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxcmVtO1xuICBoZWlnaHQ6IDFyZW07XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb250ZW50OiBcIlwiO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVlMmU2O1xufVxuXG4uY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDAuMjVyZW07XG4gIGxlZnQ6IC0xLjVyZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMXJlbTtcbiAgaGVpZ2h0OiAxcmVtO1xuICBjb250ZW50OiBcIlwiO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDUwJSA1MCU7XG59XG5cbi5jdXN0b20tY2hlY2tib3ggLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xufVxuXG4uY3VzdG9tLWNoZWNrYm94IC5jdXN0b20tY29udHJvbC1pbnB1dDpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3YmZmO1xufVxuXG4uY3VzdG9tLWNoZWNrYm94IC5jdXN0b20tY29udHJvbC1pbnB1dDpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDggOCclM0UlM0NwYXRoIGZpbGw9JyUyM2ZmZicgZD0nTTYuNTY0Ljc1bC0zLjU5IDMuNjEyLTEuNTM4LTEuNTVMMCA0LjI2IDIuOTc0IDcuMjUgOCAyLjE5M3onLyUzRSUzQy9zdmclM0VcIik7XG59XG5cbi5jdXN0b20tY2hlY2tib3ggLmN1c3RvbS1jb250cm9sLWlucHV0OmluZGV0ZXJtaW5hdGUgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDdiZmY7XG59XG5cbi5jdXN0b20tY2hlY2tib3ggLmN1c3RvbS1jb250cm9sLWlucHV0OmluZGV0ZXJtaW5hdGUgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgNCA0JyUzRSUzQ3BhdGggc3Ryb2tlPSclMjNmZmYnIGQ9J00wIDJoNCcvJTNFJTNDL3N2ZyUzRVwiKTtcbn1cblxuLmN1c3RvbS1jaGVja2JveCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6ZGlzYWJsZWQ6Y2hlY2tlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxMjMsIDI1NSwgMC41KTtcbn1cblxuLmN1c3RvbS1jaGVja2JveCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6ZGlzYWJsZWQ6aW5kZXRlcm1pbmF0ZSB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxMjMsIDI1NSwgMC41KTtcbn1cblxuLmN1c3RvbS1yYWRpbyAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuLmN1c3RvbS1yYWRpbyAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6Y2hlY2tlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2JmZjtcbn1cblxuLmN1c3RvbS1yYWRpbyAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6Y2hlY2tlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9Jy00IC00IDggOCclM0UlM0NjaXJjbGUgcj0nMycgZmlsbD0nJTIzZmZmJy8lM0UlM0Mvc3ZnJTNFXCIpO1xufVxuXG4uY3VzdG9tLXJhZGlvIC5jdXN0b20tY29udHJvbC1pbnB1dDpkaXNhYmxlZDpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDEyMywgMjU1LCAwLjUpO1xufVxuXG4uY3VzdG9tLXNlbGVjdCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogY2FsYygyLjI1cmVtICsgMnB4KTtcbiAgcGFkZGluZzogMC4zNzVyZW0gMS43NXJlbSAwLjM3NXJlbSAwLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzQ5NTA1NztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYmFja2dyb3VuZDogI2ZmZiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA0IDUnJTNFJTNDcGF0aCBmaWxsPSclMjMzNDNhNDAnIGQ9J00yIDBMMCAyaDR6bTAgNUwwIDNoNHonLyUzRSUzQy9zdmclM0VcIikgbm8tcmVwZWF0IHJpZ2h0IDAuNzVyZW0gY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDhweCAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2VkNGRhO1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLmN1c3RvbS1zZWxlY3Q6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICM4MGJkZmY7XG4gIG91dGxpbmU6IDA7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwgMCAwIDVweCByZ2JhKDEyOCwgMTg5LCAyNTUsIDAuNSk7XG59XG5cbi5jdXN0b20tc2VsZWN0OmZvY3VzOjotbXMtdmFsdWUge1xuICBjb2xvcjogIzQ5NTA1NztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuLmN1c3RvbS1zZWxlY3RbbXVsdGlwbGVdLCAuY3VzdG9tLXNlbGVjdFtzaXplXTpub3QoW3NpemU9XCIxXCJdKSB7XG4gIGhlaWdodDogYXV0bztcbiAgcGFkZGluZy1yaWdodDogMC43NXJlbTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cblxuLmN1c3RvbS1zZWxlY3Q6ZGlzYWJsZWQge1xuICBjb2xvcjogIzZjNzU3ZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U5ZWNlZjtcbn1cblxuLmN1c3RvbS1zZWxlY3Q6Oi1tcy1leHBhbmQge1xuICBvcGFjaXR5OiAwO1xufVxuXG4uY3VzdG9tLXNlbGVjdC1zbSB7XG4gIGhlaWdodDogY2FsYygxLjgxMjVyZW0gKyAycHgpO1xuICBwYWRkaW5nLXRvcDogMC4zNzVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjM3NXJlbTtcbiAgZm9udC1zaXplOiA3NSU7XG59XG5cbi5jdXN0b20tc2VsZWN0LWxnIHtcbiAgaGVpZ2h0OiBjYWxjKDIuODc1cmVtICsgMnB4KTtcbiAgcGFkZGluZy10b3A6IDAuMzc1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC4zNzVyZW07XG4gIGZvbnQtc2l6ZTogMTI1JTtcbn1cblxuLmN1c3RvbS1maWxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGNhbGMoMi4yNXJlbSArIDJweCk7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5jdXN0b20tZmlsZS1pbnB1dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogY2FsYygyLjI1cmVtICsgMnB4KTtcbiAgbWFyZ2luOiAwO1xuICBvcGFjaXR5OiAwO1xufVxuXG4uY3VzdG9tLWZpbGUtaW5wdXQ6Zm9jdXMgfiAuY3VzdG9tLWZpbGUtbGFiZWwge1xuICBib3JkZXItY29sb3I6ICM4MGJkZmY7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDAsIDEyMywgMjU1LCAwLjI1KTtcbn1cblxuLmN1c3RvbS1maWxlLWlucHV0OmZvY3VzIH4gLmN1c3RvbS1maWxlLWxhYmVsOjphZnRlciB7XG4gIGJvcmRlci1jb2xvcjogIzgwYmRmZjtcbn1cblxuLmN1c3RvbS1maWxlLWlucHV0OmxhbmcoZW4pIH4gLmN1c3RvbS1maWxlLWxhYmVsOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiQnJvd3NlXCI7XG59XG5cbi5jdXN0b20tZmlsZS1sYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTtcbiAgaGVpZ2h0OiBjYWxjKDIuMjVyZW0gKyAycHgpO1xuICBwYWRkaW5nOiAwLjM3NXJlbSAwLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzQ5NTA1NztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NlZDRkYTtcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcbn1cblxuLmN1c3RvbS1maWxlLWxhYmVsOjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB6LWluZGV4OiAzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAyLjI1cmVtO1xuICBwYWRkaW5nOiAwLjM3NXJlbSAwLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzQ5NTA1NztcbiAgY29udGVudDogXCJCcm93c2VcIjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U5ZWNlZjtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2VkNGRhO1xuICBib3JkZXItcmFkaXVzOiAwIDAuMjVyZW0gMC4yNXJlbSAwO1xufVxuXG4uY3VzdG9tLXJhbmdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG4uY3VzdG9tLXJhbmdlOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLmN1c3RvbS1yYW5nZTo6LW1vei1mb2N1cy1vdXRlciB7XG4gIGJvcmRlcjogMDtcbn1cblxuLmN1c3RvbS1yYW5nZTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICB3aWR0aDogMXJlbTtcbiAgaGVpZ2h0OiAxcmVtO1xuICBtYXJnaW4tdG9wOiAtMC4yNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2JmZjtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi5jdXN0b20tcmFuZ2U6Oi13ZWJraXQtc2xpZGVyLXRodW1iOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICNmZmYsIDAgMCAwIDAuMnJlbSByZ2JhKDAsIDEyMywgMjU1LCAwLjI1KTtcbn1cblxuLmN1c3RvbS1yYW5nZTo6LXdlYmtpdC1zbGlkZXItdGh1bWI6YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IzZDdmZjtcbn1cblxuLmN1c3RvbS1yYW5nZTo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAwLjVyZW07XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVlMmU2O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAxcmVtO1xufVxuXG4uY3VzdG9tLXJhbmdlOjotbW96LXJhbmdlLXRodW1iIHtcbiAgd2lkdGg6IDFyZW07XG4gIGhlaWdodDogMXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2JmZjtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi5jdXN0b20tcmFuZ2U6Oi1tb3otcmFuZ2UtdGh1bWI6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OiAwIDAgMCAxcHggI2ZmZiwgMCAwIDAgMC4ycmVtIHJnYmEoMCwgMTIzLCAyNTUsIDAuMjUpO1xufVxuXG4uY3VzdG9tLXJhbmdlOjotbW96LXJhbmdlLXRodW1iOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiM2Q3ZmY7XG59XG5cbi5jdXN0b20tcmFuZ2U6Oi1tb3otcmFuZ2UtdHJhY2sge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAwLjVyZW07XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVlMmU2O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAxcmVtO1xufVxuXG4uY3VzdG9tLXJhbmdlOjotbXMtdGh1bWIge1xuICB3aWR0aDogMXJlbTtcbiAgaGVpZ2h0OiAxcmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3YmZmO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi5jdXN0b20tcmFuZ2U6Oi1tcy10aHVtYjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDFweCAjZmZmLCAwIDAgMCAwLjJyZW0gcmdiYSgwLCAxMjMsIDI1NSwgMC4yNSk7XG59XG5cbi5jdXN0b20tcmFuZ2U6Oi1tcy10aHVtYjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjNkN2ZmO1xufVxuXG4uY3VzdG9tLXJhbmdlOjotbXMtdHJhY2sge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAwLjVyZW07XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XG59XG5cbi5jdXN0b20tcmFuZ2U6Oi1tcy1maWxsLWxvd2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RlZTJlNjtcbiAgYm9yZGVyLXJhZGl1czogMXJlbTtcbn1cblxuLmN1c3RvbS1yYW5nZTo6LW1zLWZpbGwtdXBwZXIge1xuICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZWUyZTY7XG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XG59XG5cbi5uYXYge1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgLW1zLWZsZXgtd3JhcDogd3JhcDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5uYXYtbGluayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbn1cblxuLm5hdi1saW5rOmhvdmVyLCAubmF2LWxpbms6Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5uYXYtbGluay5kaXNhYmxlZCB7XG4gIGNvbG9yOiAjNmM3NTdkO1xufVxuXG4ubmF2LXRhYnMge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RlZTJlNjtcbn1cblxuLm5hdi10YWJzIC5uYXYtaXRlbSB7XG4gIG1hcmdpbi1ib3R0b206IC0xcHg7XG59XG5cbi5uYXYtdGFicyAubmF2LWxpbmsge1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC4yNXJlbTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAuMjVyZW07XG59XG5cbi5uYXYtdGFicyAubmF2LWxpbms6aG92ZXIsIC5uYXYtdGFicyAubmF2LWxpbms6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICNlOWVjZWYgI2U5ZWNlZiAjZGVlMmU2O1xufVxuXG4ubmF2LXRhYnMgLm5hdi1saW5rLmRpc2FibGVkIHtcbiAgY29sb3I6ICM2Yzc1N2Q7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ubmF2LXRhYnMgLm5hdi1saW5rLmFjdGl2ZSxcbi5uYXYtdGFicyAubmF2LWl0ZW0uc2hvdyAubmF2LWxpbmsge1xuICBjb2xvcjogIzQ5NTA1NztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjZGVlMmU2ICNkZWUyZTYgI2ZmZjtcbn1cblxuLm5hdi10YWJzIC5kcm9wZG93bi1tZW51IHtcbiAgbWFyZ2luLXRvcDogLTFweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG59XG5cbi5uYXYtcGlsbHMgLm5hdi1saW5rIHtcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcbn1cblxuLm5hdi1waWxscyAubmF2LWxpbmsuYWN0aXZlLFxuLm5hdi1waWxscyAuc2hvdyA+IC5uYXYtbGluayB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3YmZmO1xufVxuXG4ubmF2LWZpbGwgLm5hdi1pdGVtIHtcbiAgLW1zLWZsZXg6IDEgMSBhdXRvO1xuICBmbGV4OiAxIDEgYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubmF2LWp1c3RpZmllZCAubmF2LWl0ZW0ge1xuICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMDtcbiAgZmxleC1iYXNpczogMDtcbiAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7XG4gIGZsZXgtZ3JvdzogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4udGFiLWNvbnRlbnQgPiAudGFiLXBhbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udGFiLWNvbnRlbnQgPiAuYWN0aXZlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5uYXZiYXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xuICAtbXMtZmxleC13cmFwOiB3cmFwO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMC41cmVtIDFyZW07XG59XG5cbi5uYXZiYXIgPiAuY29udGFpbmVyLFxuLm5hdmJhciA+IC5jb250YWluZXItZmx1aWQge1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgLW1zLWZsZXgtd3JhcDogd3JhcDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi5uYXZiYXItYnJhbmQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctdG9wOiAwLjMxMjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjMxMjVyZW07XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm5hdmJhci1icmFuZDpob3ZlciwgLm5hdmJhci1icmFuZDpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLm5hdmJhci1uYXYge1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLm5hdmJhci1uYXYgLm5hdi1saW5rIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4ubmF2YmFyLW5hdiAuZHJvcGRvd24tbWVudSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGZsb2F0OiBub25lO1xufVxuXG4ubmF2YmFyLXRleHQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG59XG5cbi5uYXZiYXItY29sbGFwc2Uge1xuICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMTAwJTtcbiAgZmxleC1iYXNpczogMTAwJTtcbiAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7XG4gIGZsZXgtZ3JvdzogMTtcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm5hdmJhci10b2dnbGVyIHtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjc1cmVtO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG59XG5cbi5uYXZiYXItdG9nZ2xlcjpob3ZlciwgLm5hdmJhci10b2dnbGVyOmZvY3VzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4ubmF2YmFyLXRvZ2dsZXI6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5uYXZiYXItdG9nZ2xlci1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMS41ZW07XG4gIGhlaWdodDogMS41ZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJhY2tncm91bmQ6IG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NS45OHB4KSB7XG4gIC5uYXZiYXItZXhwYW5kLXNtID4gLmNvbnRhaW5lcixcbiAgLm5hdmJhci1leHBhbmQtc20gPiAuY29udGFpbmVyLWZsdWlkIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLm5hdmJhci1leHBhbmQtc20ge1xuICAgIC1tcy1mbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgfVxuICAubmF2YmFyLWV4cGFuZC1zbSAubmF2YmFyLW5hdiB7XG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxuICAubmF2YmFyLWV4cGFuZC1zbSAubmF2YmFyLW5hdiAuZHJvcGRvd24tbWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLXNtIC5uYXZiYXItbmF2IC5uYXYtbGluayB7XG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC41cmVtO1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLXNtID4gLmNvbnRhaW5lcixcbiAgLm5hdmJhci1leHBhbmQtc20gPiAuY29udGFpbmVyLWZsdWlkIHtcbiAgICAtbXMtZmxleC13cmFwOiBub3dyYXA7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cbiAgLm5hdmJhci1leHBhbmQtc20gLm5hdmJhci1jb2xsYXBzZSB7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3ggIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IGF1dG87XG4gICAgZmxleC1iYXNpczogYXV0bztcbiAgfVxuICAubmF2YmFyLWV4cGFuZC1zbSAubmF2YmFyLXRvZ2dsZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC5uYXZiYXItZXhwYW5kLW1kID4gLmNvbnRhaW5lcixcbiAgLm5hdmJhci1leHBhbmQtbWQgPiAuY29udGFpbmVyLWZsdWlkIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhci1leHBhbmQtbWQge1xuICAgIC1tcy1mbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgfVxuICAubmF2YmFyLWV4cGFuZC1tZCAubmF2YmFyLW5hdiB7XG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxuICAubmF2YmFyLWV4cGFuZC1tZCAubmF2YmFyLW5hdiAuZHJvcGRvd24tbWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLW1kIC5uYXZiYXItbmF2IC5uYXYtbGluayB7XG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC41cmVtO1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLW1kID4gLmNvbnRhaW5lcixcbiAgLm5hdmJhci1leHBhbmQtbWQgPiAuY29udGFpbmVyLWZsdWlkIHtcbiAgICAtbXMtZmxleC13cmFwOiBub3dyYXA7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cbiAgLm5hdmJhci1leHBhbmQtbWQgLm5hdmJhci1jb2xsYXBzZSB7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3ggIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IGF1dG87XG4gICAgZmxleC1iYXNpczogYXV0bztcbiAgfVxuICAubmF2YmFyLWV4cGFuZC1tZCAubmF2YmFyLXRvZ2dsZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gIC5uYXZiYXItZXhwYW5kLWxnID4gLmNvbnRhaW5lcixcbiAgLm5hdmJhci1leHBhbmQtbGcgPiAuY29udGFpbmVyLWZsdWlkIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLm5hdmJhci1leHBhbmQtbGcge1xuICAgIC1tcy1mbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgfVxuICAubmF2YmFyLWV4cGFuZC1sZyAubmF2YmFyLW5hdiB7XG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxuICAubmF2YmFyLWV4cGFuZC1sZyAubmF2YmFyLW5hdiAuZHJvcGRvd24tbWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLWxnIC5uYXZiYXItbmF2IC5uYXYtbGluayB7XG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC41cmVtO1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLWxnID4gLmNvbnRhaW5lcixcbiAgLm5hdmJhci1leHBhbmQtbGcgPiAuY29udGFpbmVyLWZsdWlkIHtcbiAgICAtbXMtZmxleC13cmFwOiBub3dyYXA7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cbiAgLm5hdmJhci1leHBhbmQtbGcgLm5hdmJhci1jb2xsYXBzZSB7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3ggIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IGF1dG87XG4gICAgZmxleC1iYXNpczogYXV0bztcbiAgfVxuICAubmF2YmFyLWV4cGFuZC1sZyAubmF2YmFyLXRvZ2dsZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDExOTkuOThweCkge1xuICAubmF2YmFyLWV4cGFuZC14bCA+IC5jb250YWluZXIsXG4gIC5uYXZiYXItZXhwYW5kLXhsID4gLmNvbnRhaW5lci1mbHVpZCB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAubmF2YmFyLWV4cGFuZC14bCB7XG4gICAgLW1zLWZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLXhsIC5uYXZiYXItbmF2IHtcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLXhsIC5uYXZiYXItbmF2IC5kcm9wZG93bi1tZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cbiAgLm5hdmJhci1leHBhbmQteGwgLm5hdmJhci1uYXYgLm5hdi1saW5rIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XG4gIH1cbiAgLm5hdmJhci1leHBhbmQteGwgPiAuY29udGFpbmVyLFxuICAubmF2YmFyLWV4cGFuZC14bCA+IC5jb250YWluZXItZmx1aWQge1xuICAgIC1tcy1mbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxuICAubmF2YmFyLWV4cGFuZC14bCAubmF2YmFyLWNvbGxhcHNlIHtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveCAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogYXV0bztcbiAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLXhsIC5uYXZiYXItdG9nZ2xlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4ubmF2YmFyLWV4cGFuZCB7XG4gIC1tcy1mbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuLm5hdmJhci1leHBhbmQgPiAuY29udGFpbmVyLFxuLm5hdmJhci1leHBhbmQgPiAuY29udGFpbmVyLWZsdWlkIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4ubmF2YmFyLWV4cGFuZCAubmF2YmFyLW5hdiB7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuXG4ubmF2YmFyLWV4cGFuZCAubmF2YmFyLW5hdiAuZHJvcGRvd24tbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLm5hdmJhci1leHBhbmQgLm5hdmJhci1uYXYgLm5hdi1saW5rIHtcbiAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcbn1cblxuLm5hdmJhci1leHBhbmQgPiAuY29udGFpbmVyLFxuLm5hdmJhci1leHBhbmQgPiAuY29udGFpbmVyLWZsdWlkIHtcbiAgLW1zLWZsZXgtd3JhcDogbm93cmFwO1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbn1cblxuLm5hdmJhci1leHBhbmQgLm5hdmJhci1jb2xsYXBzZSB7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94ICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IGF1dG87XG4gIGZsZXgtYmFzaXM6IGF1dG87XG59XG5cbi5uYXZiYXItZXhwYW5kIC5uYXZiYXItdG9nZ2xlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5uYXZiYXItbGlnaHQgLm5hdmJhci1icmFuZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOSk7XG59XG5cbi5uYXZiYXItbGlnaHQgLm5hdmJhci1icmFuZDpob3ZlciwgLm5hdmJhci1saWdodCAubmF2YmFyLWJyYW5kOmZvY3VzIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45KTtcbn1cblxuLm5hdmJhci1saWdodCAubmF2YmFyLW5hdiAubmF2LWxpbmsge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xufVxuXG4ubmF2YmFyLWxpZ2h0IC5uYXZiYXItbmF2IC5uYXYtbGluazpob3ZlciwgLm5hdmJhci1saWdodCAubmF2YmFyLW5hdiAubmF2LWxpbms6Zm9jdXMge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjcpO1xufVxuXG4ubmF2YmFyLWxpZ2h0IC5uYXZiYXItbmF2IC5uYXYtbGluay5kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG5cbi5uYXZiYXItbGlnaHQgLm5hdmJhci1uYXYgLnNob3cgPiAubmF2LWxpbmssXG4ubmF2YmFyLWxpZ2h0IC5uYXZiYXItbmF2IC5hY3RpdmUgPiAubmF2LWxpbmssXG4ubmF2YmFyLWxpZ2h0IC5uYXZiYXItbmF2IC5uYXYtbGluay5zaG93LFxuLm5hdmJhci1saWdodCAubmF2YmFyLW5hdiAubmF2LWxpbmsuYWN0aXZlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45KTtcbn1cblxuLm5hdmJhci1saWdodCAubmF2YmFyLXRvZ2dsZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuLm5hdmJhci1saWdodCAubmF2YmFyLXRvZ2dsZXItaWNvbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHZpZXdCb3g9JzAgMCAzMCAzMCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggc3Ryb2tlPSdyZ2JhKDAsIDAsIDAsIDAuNSknIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnIGQ9J000IDdoMjJNNCAxNWgyMk00IDIzaDIyJy8lM0UlM0Mvc3ZnJTNFXCIpO1xufVxuXG4ubmF2YmFyLWxpZ2h0IC5uYXZiYXItdGV4dCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG59XG5cbi5uYXZiYXItbGlnaHQgLm5hdmJhci10ZXh0IGEge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjkpO1xufVxuXG4ubmF2YmFyLWxpZ2h0IC5uYXZiYXItdGV4dCBhOmhvdmVyLCAubmF2YmFyLWxpZ2h0IC5uYXZiYXItdGV4dCBhOmZvY3VzIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45KTtcbn1cblxuLm5hdmJhci1kYXJrIC5uYXZiYXItYnJhbmQge1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLm5hdmJhci1kYXJrIC5uYXZiYXItYnJhbmQ6aG92ZXIsIC5uYXZiYXItZGFyayAubmF2YmFyLWJyYW5kOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5uYXZiYXItZGFyayAubmF2YmFyLW5hdiAubmF2LWxpbmsge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuXG4ubmF2YmFyLWRhcmsgLm5hdmJhci1uYXYgLm5hdi1saW5rOmhvdmVyLCAubmF2YmFyLWRhcmsgLm5hdmJhci1uYXYgLm5hdi1saW5rOmZvY3VzIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7XG59XG5cbi5uYXZiYXItZGFyayAubmF2YmFyLW5hdiAubmF2LWxpbmsuZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbn1cblxuLm5hdmJhci1kYXJrIC5uYXZiYXItbmF2IC5zaG93ID4gLm5hdi1saW5rLFxuLm5hdmJhci1kYXJrIC5uYXZiYXItbmF2IC5hY3RpdmUgPiAubmF2LWxpbmssXG4ubmF2YmFyLWRhcmsgLm5hdmJhci1uYXYgLm5hdi1saW5rLnNob3csXG4ubmF2YmFyLWRhcmsgLm5hdmJhci1uYXYgLm5hdi1saW5rLmFjdGl2ZSB7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4ubmF2YmFyLWRhcmsgLm5hdmJhci10b2dnbGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG5cbi5uYXZiYXItZGFyayAubmF2YmFyLXRvZ2dsZXItaWNvbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHZpZXdCb3g9JzAgMCAzMCAzMCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggc3Ryb2tlPSdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSknIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnIGQ9J000IDdoMjJNNCAxNWgyMk00IDIzaDIyJy8lM0UlM0Mvc3ZnJTNFXCIpO1xufVxuXG4ubmF2YmFyLWRhcmsgLm5hdmJhci10ZXh0IHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cblxuLm5hdmJhci1kYXJrIC5uYXZiYXItdGV4dCBhIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5uYXZiYXItZGFyayAubmF2YmFyLXRleHQgYTpob3ZlciwgLm5hdmJhci1kYXJrIC5uYXZiYXItdGV4dCBhOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5jYXJkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1pbi13aWR0aDogMDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNsaXA6IGJvcmRlci1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMjUpO1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xufVxuXG4uY2FyZCA+IGhyIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLmNhcmQgPiAubGlzdC1ncm91cDpmaXJzdC1jaGlsZCAubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC4yNXJlbTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAuMjVyZW07XG59XG5cbi5jYXJkID4gLmxpc3QtZ3JvdXA6bGFzdC1jaGlsZCAubGlzdC1ncm91cC1pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC4yNXJlbTtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMC4yNXJlbTtcbn1cblxuLmNhcmQtYm9keSB7XG4gIC1tcy1mbGV4OiAxIDEgYXV0bztcbiAgZmxleDogMSAxIGF1dG87XG4gIHBhZGRpbmc6IDEuMjVyZW07XG59XG5cbi5jYXJkLXRpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbn1cblxuLmNhcmQtc3VidGl0bGUge1xuICBtYXJnaW4tdG9wOiAtMC4zNzVyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5jYXJkLXRleHQ6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5jYXJkLWxpbms6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5jYXJkLWxpbmsgKyAuY2FyZC1saW5rIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG59XG5cbi5jYXJkLWhlYWRlciB7XG4gIHBhZGRpbmc6IDAuNzVyZW0gMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMjUpO1xufVxuXG4uY2FyZC1oZWFkZXI6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiBjYWxjKDAuMjVyZW0gLSAxcHgpIGNhbGMoMC4yNXJlbSAtIDFweCkgMCAwO1xufVxuXG4uY2FyZC1oZWFkZXIgKyAubGlzdC1ncm91cCAubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcDogMDtcbn1cblxuLmNhcmQtZm9vdGVyIHtcbiAgcGFkZGluZzogMC43NXJlbSAxLjI1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEyNSk7XG59XG5cbi5jYXJkLWZvb3RlcjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMCAwIGNhbGMoMC4yNXJlbSAtIDFweCkgY2FsYygwLjI1cmVtIC0gMXB4KTtcbn1cblxuLmNhcmQtaGVhZGVyLXRhYnMge1xuICBtYXJnaW4tcmlnaHQ6IC0wLjYyNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogLTAuNzVyZW07XG4gIG1hcmdpbi1sZWZ0OiAtMC42MjVyZW07XG4gIGJvcmRlci1ib3R0b206IDA7XG59XG5cbi5jYXJkLWhlYWRlci1waWxscyB7XG4gIG1hcmdpbi1yaWdodDogLTAuNjI1cmVtO1xuICBtYXJnaW4tbGVmdDogLTAuNjI1cmVtO1xufVxuXG4uY2FyZC1pbWctb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBwYWRkaW5nOiAxLjI1cmVtO1xufVxuXG4uY2FyZC1pbWcge1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogY2FsYygwLjI1cmVtIC0gMXB4KTtcbn1cblxuLmNhcmQtaW1nLXRvcCB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBjYWxjKDAuMjVyZW0gLSAxcHgpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogY2FsYygwLjI1cmVtIC0gMXB4KTtcbn1cblxuLmNhcmQtaW1nLWJvdHRvbSB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogY2FsYygwLjI1cmVtIC0gMXB4KTtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogY2FsYygwLjI1cmVtIC0gMXB4KTtcbn1cblxuLmNhcmQtZGVjayB7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xuICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmNhcmQtZGVjayAuY2FyZCB7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xuICAuY2FyZC1kZWNrIHtcbiAgICAtbXMtZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIG1hcmdpbi1yaWdodDogLTE1cHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuICB9XG4gIC5jYXJkLWRlY2sgLmNhcmQge1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLW1zLWZsZXg6IDEgMCAwJTtcbiAgICBmbGV4OiAxIDAgMCU7XG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgfVxufVxuXG4uY2FyZC1ncm91cCB7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xuICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmNhcmQtZ3JvdXAgPiAuY2FyZCB7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xuICAuY2FyZC1ncm91cCB7XG4gICAgLW1zLWZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgfVxuICAuY2FyZC1ncm91cCA+IC5jYXJkIHtcbiAgICAtbXMtZmxleDogMSAwIDAlO1xuICAgIGZsZXg6IDEgMCAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gIC5jYXJkLWdyb3VwID4gLmNhcmQgKyAuY2FyZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gIH1cbiAgLmNhcmQtZ3JvdXAgPiAuY2FyZDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIH1cbiAgLmNhcmQtZ3JvdXAgPiAuY2FyZDpmaXJzdC1jaGlsZCAuY2FyZC1pbWctdG9wLFxuICAuY2FyZC1ncm91cCA+IC5jYXJkOmZpcnN0LWNoaWxkIC5jYXJkLWhlYWRlciB7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIH1cbiAgLmNhcmQtZ3JvdXAgPiAuY2FyZDpmaXJzdC1jaGlsZCAuY2FyZC1pbWctYm90dG9tLFxuICAuY2FyZC1ncm91cCA+IC5jYXJkOmZpcnN0LWNoaWxkIC5jYXJkLWZvb3RlciB7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIH1cbiAgLmNhcmQtZ3JvdXAgPiAuY2FyZDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIH1cbiAgLmNhcmQtZ3JvdXAgPiAuY2FyZDpsYXN0LWNoaWxkIC5jYXJkLWltZy10b3AsXG4gIC5jYXJkLWdyb3VwID4gLmNhcmQ6bGFzdC1jaGlsZCAuY2FyZC1oZWFkZXIge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gIH1cbiAgLmNhcmQtZ3JvdXAgPiAuY2FyZDpsYXN0LWNoaWxkIC5jYXJkLWltZy1ib3R0b20sXG4gIC5jYXJkLWdyb3VwID4gLmNhcmQ6bGFzdC1jaGlsZCAuY2FyZC1mb290ZXIge1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIH1cbiAgLmNhcmQtZ3JvdXAgPiAuY2FyZDpvbmx5LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xuICB9XG4gIC5jYXJkLWdyb3VwID4gLmNhcmQ6b25seS1jaGlsZCAuY2FyZC1pbWctdG9wLFxuICAuY2FyZC1ncm91cCA+IC5jYXJkOm9ubHktY2hpbGQgLmNhcmQtaGVhZGVyIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjI1cmVtO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwLjI1cmVtO1xuICB9XG4gIC5jYXJkLWdyb3VwID4gLmNhcmQ6b25seS1jaGlsZCAuY2FyZC1pbWctYm90dG9tLFxuICAuY2FyZC1ncm91cCA+IC5jYXJkOm9ubHktY2hpbGQgLmNhcmQtZm9vdGVyIHtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC4yNXJlbTtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwLjI1cmVtO1xuICB9XG4gIC5jYXJkLWdyb3VwID4gLmNhcmQ6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKTpub3QoOm9ubHktY2hpbGQpIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG4gIC5jYXJkLWdyb3VwID4gLmNhcmQ6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKTpub3QoOm9ubHktY2hpbGQpIC5jYXJkLWltZy10b3AsXG4gIC5jYXJkLWdyb3VwID4gLmNhcmQ6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKTpub3QoOm9ubHktY2hpbGQpIC5jYXJkLWltZy1ib3R0b20sXG4gIC5jYXJkLWdyb3VwID4gLmNhcmQ6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKTpub3QoOm9ubHktY2hpbGQpIC5jYXJkLWhlYWRlcixcbiAgLmNhcmQtZ3JvdXAgPiAuY2FyZDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpOm5vdCg6b25seS1jaGlsZCkgLmNhcmQtZm9vdGVyIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG5cbi5jYXJkLWNvbHVtbnMgLmNhcmQge1xuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLmNhcmQtY29sdW1ucyB7XG4gICAgLXdlYmtpdC1jb2x1bW4tY291bnQ6IDM7XG4gICAgLW1vei1jb2x1bW4tY291bnQ6IDM7XG4gICAgY29sdW1uLWNvdW50OiAzO1xuICAgIC13ZWJraXQtY29sdW1uLWdhcDogMS4yNXJlbTtcbiAgICAtbW96LWNvbHVtbi1nYXA6IDEuMjVyZW07XG4gICAgY29sdW1uLWdhcDogMS4yNXJlbTtcbiAgICBvcnBoYW5zOiAxO1xuICAgIHdpZG93czogMTtcbiAgfVxuICAuY2FyZC1jb2x1bW5zIC5jYXJkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLmFjY29yZGlvbiAuY2FyZDpub3QoOmZpcnN0LW9mLXR5cGUpOm5vdCg6bGFzdC1vZi10eXBlKSB7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi5hY2NvcmRpb24gLmNhcmQ6bm90KDpmaXJzdC1vZi10eXBlKSAuY2FyZC1oZWFkZXI6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG4uYWNjb3JkaW9uIC5jYXJkOmZpcnN0LW9mLXR5cGUge1xuICBib3JkZXItYm90dG9tOiAwO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cblxuLmFjY29yZGlvbiAuY2FyZDpsYXN0LW9mLXR5cGUge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbn1cblxuLmJyZWFkY3J1bWIge1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgLW1zLWZsZXgtd3JhcDogd3JhcDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlOWVjZWY7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG59XG5cbi5icmVhZGNydW1iLWl0ZW0gKyAuYnJlYWRjcnVtYi1pdGVtIHtcbiAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XG59XG5cbi5icmVhZGNydW1iLWl0ZW0gKyAuYnJlYWRjcnVtYi1pdGVtOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgY29sb3I6ICM2Yzc1N2Q7XG4gIGNvbnRlbnQ6IFwiL1wiO1xufVxuXG4uYnJlYWRjcnVtYi1pdGVtICsgLmJyZWFkY3J1bWItaXRlbTpob3Zlcjo6YmVmb3JlIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5icmVhZGNydW1iLWl0ZW0gKyAuYnJlYWRjcnVtYi1pdGVtOmhvdmVyOjpiZWZvcmUge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5icmVhZGNydW1iLWl0ZW0uYWN0aXZlIHtcbiAgY29sb3I6ICM2Yzc1N2Q7XG59XG5cbi5wYWdpbmF0aW9uIHtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcbn1cblxuLnBhZ2UtbGluayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICBtYXJnaW4tbGVmdDogLTFweDtcbiAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gIGNvbG9yOiAjMDA3YmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGVlMmU2O1xufVxuXG4ucGFnZS1saW5rOmhvdmVyIHtcbiAgei1pbmRleDogMjtcbiAgY29sb3I6ICMwMDU2YjM7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U5ZWNlZjtcbiAgYm9yZGVyLWNvbG9yOiAjZGVlMmU2O1xufVxuXG4ucGFnZS1saW5rOmZvY3VzIHtcbiAgei1pbmRleDogMjtcbiAgb3V0bGluZTogMDtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMCwgMTIzLCAyNTUsIDAuMjUpO1xufVxuXG4ucGFnZS1saW5rOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ucGFnZS1pdGVtOmZpcnN0LWNoaWxkIC5wYWdlLWxpbmsge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC4yNXJlbTtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMC4yNXJlbTtcbn1cblxuLnBhZ2UtaXRlbTpsYXN0LWNoaWxkIC5wYWdlLWxpbmsge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC4yNXJlbTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAuMjVyZW07XG59XG5cbi5wYWdlLWl0ZW0uYWN0aXZlIC5wYWdlLWxpbmsge1xuICB6LWluZGV4OiAxO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2JmZjtcbiAgYm9yZGVyLWNvbG9yOiAjMDA3YmZmO1xufVxuXG4ucGFnZS1pdGVtLmRpc2FibGVkIC5wYWdlLWxpbmsge1xuICBjb2xvcjogIzZjNzU3ZDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGN1cnNvcjogYXV0bztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjZGVlMmU2O1xufVxuXG4ucGFnaW5hdGlvbi1sZyAucGFnZS1saW5rIHtcbiAgcGFkZGluZzogMC43NXJlbSAxLjVyZW07XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLnBhZ2luYXRpb24tbGcgLnBhZ2UtaXRlbTpmaXJzdC1jaGlsZCAucGFnZS1saW5rIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC4zcmVtO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwLjNyZW07XG59XG5cbi5wYWdpbmF0aW9uLWxnIC5wYWdlLWl0ZW06bGFzdC1jaGlsZCAucGFnZS1saW5rIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAuM3JlbTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAuM3JlbTtcbn1cblxuLnBhZ2luYXRpb24tc20gLnBhZ2UtbGluayB7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4ucGFnaW5hdGlvbi1zbSAucGFnZS1pdGVtOmZpcnN0LWNoaWxkIC5wYWdlLWxpbmsge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjJyZW07XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAuMnJlbTtcbn1cblxuLnBhZ2luYXRpb24tc20gLnBhZ2UtaXRlbTpsYXN0LWNoaWxkIC5wYWdlLWxpbmsge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC4ycmVtO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC4ycmVtO1xufVxuXG4uYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAuMjVlbSAwLjRlbTtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcbn1cblxuLmJhZGdlOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmJ0biAuYmFkZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLTFweDtcbn1cblxuLmJhZGdlLXBpbGwge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjZlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjZlbTtcbiAgYm9yZGVyLXJhZGl1czogMTByZW07XG59XG5cbi5iYWRnZS1wcmltYXJ5IHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDdiZmY7XG59XG5cbi5iYWRnZS1wcmltYXJ5W2hyZWZdOmhvdmVyLCAuYmFkZ2UtcHJpbWFyeVtocmVmXTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDYyY2M7XG59XG5cbi5iYWRnZS1zZWNvbmRhcnkge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZjNzU3ZDtcbn1cblxuLmJhZGdlLXNlY29uZGFyeVtocmVmXTpob3ZlciwgLmJhZGdlLXNlY29uZGFyeVtocmVmXTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NDViNjI7XG59XG5cbi5iYWRnZS1zdWNjZXNzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyOGE3NDU7XG59XG5cbi5iYWRnZS1zdWNjZXNzW2hyZWZdOmhvdmVyLCAuYmFkZ2Utc3VjY2Vzc1tocmVmXTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZTdlMzQ7XG59XG5cbi5iYWRnZS1pbmZvIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxN2EyYjg7XG59XG5cbi5iYWRnZS1pbmZvW2hyZWZdOmhvdmVyLCAuYmFkZ2UtaW5mb1tocmVmXTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMTdhOGI7XG59XG5cbi5iYWRnZS13YXJuaW5nIHtcbiAgY29sb3I6ICMyMTI1Mjk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmMxMDc7XG59XG5cbi5iYWRnZS13YXJuaW5nW2hyZWZdOmhvdmVyLCAuYmFkZ2Utd2FybmluZ1tocmVmXTpmb2N1cyB7XG4gIGNvbG9yOiAjMjEyNTI5O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMzllMDA7XG59XG5cbi5iYWRnZS1kYW5nZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RjMzU0NTtcbn1cblxuLmJhZGdlLWRhbmdlcltocmVmXTpob3ZlciwgLmJhZGdlLWRhbmdlcltocmVmXTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiZDIxMzA7XG59XG5cbi5iYWRnZS1saWdodCB7XG4gIGNvbG9yOiAjMjEyNTI5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhO1xufVxuXG4uYmFkZ2UtbGlnaHRbaHJlZl06aG92ZXIsIC5iYWRnZS1saWdodFtocmVmXTpmb2N1cyB7XG4gIGNvbG9yOiAjMjEyNTI5O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkYWUwZTU7XG59XG5cbi5iYWRnZS1kYXJrIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNDNhNDA7XG59XG5cbi5iYWRnZS1kYXJrW2hyZWZdOmhvdmVyLCAuYmFkZ2UtZGFya1tocmVmXTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZDIxMjQ7XG59XG5cbi5qdW1ib3Ryb24ge1xuICBwYWRkaW5nOiAycmVtIDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNlOWVjZWY7XG4gIGJvcmRlci1yYWRpdXM6IDAuM3JlbTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gIC5qdW1ib3Ryb24ge1xuICAgIHBhZGRpbmc6IDRyZW0gMnJlbTtcbiAgfVxufVxuXG4uanVtYm90cm9uLWZsdWlkIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG4uYWxlcnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDAuNzVyZW0gMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG59XG5cbi5hbGVydC1oZWFkaW5nIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5hbGVydC1saW5rIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLmFsZXJ0LWRpc21pc3NpYmxlIHtcbiAgcGFkZGluZy1yaWdodDogNHJlbTtcbn1cblxuLmFsZXJ0LWRpc21pc3NpYmxlIC5jbG9zZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgcGFkZGluZzogMC43NXJlbSAxLjI1cmVtO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLmFsZXJ0LXByaW1hcnkge1xuICBjb2xvcjogIzAwNDA4NTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjZTVmZjtcbiAgYm9yZGVyLWNvbG9yOiAjYjhkYWZmO1xufVxuXG4uYWxlcnQtcHJpbWFyeSBociB7XG4gIGJvcmRlci10b3AtY29sb3I6ICM5ZmNkZmY7XG59XG5cbi5hbGVydC1wcmltYXJ5IC5hbGVydC1saW5rIHtcbiAgY29sb3I6ICMwMDI3NTI7XG59XG5cbi5hbGVydC1zZWNvbmRhcnkge1xuICBjb2xvcjogIzM4M2Q0MTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UyZTNlNTtcbiAgYm9yZGVyLWNvbG9yOiAjZDZkOGRiO1xufVxuXG4uYWxlcnQtc2Vjb25kYXJ5IGhyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2M4Y2JjZjtcbn1cblxuLmFsZXJ0LXNlY29uZGFyeSAuYWxlcnQtbGluayB7XG4gIGNvbG9yOiAjMjAyMzI2O1xufVxuXG4uYWxlcnQtc3VjY2VzcyB7XG4gIGNvbG9yOiAjMTU1NzI0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDRlZGRhO1xuICBib3JkZXItY29sb3I6ICNjM2U2Y2I7XG59XG5cbi5hbGVydC1zdWNjZXNzIGhyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2IxZGZiYjtcbn1cblxuLmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWxpbmsge1xuICBjb2xvcjogIzBiMmUxMztcbn1cblxuLmFsZXJ0LWluZm8ge1xuICBjb2xvcjogIzBjNTQ2MDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QxZWNmMTtcbiAgYm9yZGVyLWNvbG9yOiAjYmVlNWViO1xufVxuXG4uYWxlcnQtaW5mbyBociB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNhYmRkZTU7XG59XG5cbi5hbGVydC1pbmZvIC5hbGVydC1saW5rIHtcbiAgY29sb3I6ICMwNjJjMzM7XG59XG5cbi5hbGVydC13YXJuaW5nIHtcbiAgY29sb3I6ICM4NTY0MDQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmYzY2Q7XG4gIGJvcmRlci1jb2xvcjogI2ZmZWViYTtcbn1cblxuLmFsZXJ0LXdhcm5pbmcgaHIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjZmZlOGExO1xufVxuXG4uYWxlcnQtd2FybmluZyAuYWxlcnQtbGluayB7XG4gIGNvbG9yOiAjNTMzZjAzO1xufVxuXG4uYWxlcnQtZGFuZ2VyIHtcbiAgY29sb3I6ICM3MjFjMjQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGQ3ZGE7XG4gIGJvcmRlci1jb2xvcjogI2Y1YzZjYjtcbn1cblxuLmFsZXJ0LWRhbmdlciBociB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNmMWIwYjc7XG59XG5cbi5hbGVydC1kYW5nZXIgLmFsZXJ0LWxpbmsge1xuICBjb2xvcjogIzQ5MTIxNztcbn1cblxuLmFsZXJ0LWxpZ2h0IHtcbiAgY29sb3I6ICM4MTgxODI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGJvcmRlci1jb2xvcjogI2ZkZmRmZTtcbn1cblxuLmFsZXJ0LWxpZ2h0IGhyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2VjZWNmNjtcbn1cblxuLmFsZXJ0LWxpZ2h0IC5hbGVydC1saW5rIHtcbiAgY29sb3I6ICM2ODY4Njg7XG59XG5cbi5hbGVydC1kYXJrIHtcbiAgY29sb3I6ICMxYjFlMjE7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkNmQ4ZDk7XG4gIGJvcmRlci1jb2xvcjogI2M2YzhjYTtcbn1cblxuLmFsZXJ0LWRhcmsgaHIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjYjliYmJlO1xufVxuXG4uYWxlcnQtZGFyayAuYWxlcnQtbGluayB7XG4gIGNvbG9yOiAjMDQwNTA1O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcHJvZ3Jlc3MtYmFyLXN0cmlwZXMge1xuICBmcm9tIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcmVtIDA7XG4gIH1cbiAgdG8ge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHByb2dyZXNzLWJhci1zdHJpcGVzIHtcbiAgZnJvbSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMXJlbSAwO1xuICB9XG4gIHRvIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XG4gIH1cbn1cblxuLnByb2dyZXNzIHtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGhlaWdodDogMXJlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllY2VmO1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xufVxuXG4ucHJvZ3Jlc3MtYmFyIHtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3YmZmO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGVhc2U7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnByb2dyZXNzLWJhciB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxufVxuXG4ucHJvZ3Jlc3MtYmFyLXN0cmlwZWQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1zaXplOiAxcmVtIDFyZW07XG59XG5cbi5wcm9ncmVzcy1iYXItYW5pbWF0ZWQge1xuICAtd2Via2l0LWFuaW1hdGlvbjogcHJvZ3Jlc3MtYmFyLXN0cmlwZXMgMXMgbGluZWFyIGluZmluaXRlO1xuICBhbmltYXRpb246IHByb2dyZXNzLWJhci1zdHJpcGVzIDFzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuLm1lZGlhIHtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC1tcy1mbGV4LWFsaWduOiBzdGFydDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbi5tZWRpYS1ib2R5IHtcbiAgLW1zLWZsZXg6IDE7XG4gIGZsZXg6IDE7XG59XG5cbi5saXN0LWdyb3VwIHtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGNvbG9yOiAjNDk1MDU3O1xuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xufVxuXG4ubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpob3ZlciwgLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246Zm9jdXMge1xuICBjb2xvcjogIzQ5NTA1NztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhO1xufVxuXG4ubGlzdC1ncm91cC1pdGVtLWFjdGlvbjphY3RpdmUge1xuICBjb2xvcjogIzIxMjUyOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U5ZWNlZjtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDAuNzVyZW0gMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEyNSk7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjI1cmVtO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC4yNXJlbTtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAuMjVyZW07XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAuMjVyZW07XG59XG5cbi5saXN0LWdyb3VwLWl0ZW06aG92ZXIsIC5saXN0LWdyb3VwLWl0ZW06Zm9jdXMge1xuICB6LWluZGV4OiAxO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQsIC5saXN0LWdyb3VwLWl0ZW06ZGlzYWJsZWQge1xuICBjb2xvcjogIzZjNzU3ZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUge1xuICB6LWluZGV4OiAyO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2JmZjtcbiAgYm9yZGVyLWNvbG9yOiAjMDA3YmZmO1xufVxuXG4ubGlzdC1ncm91cC1mbHVzaCAubGlzdC1ncm91cC1pdGVtIHtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xuICBib3JkZXItbGVmdDogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLmxpc3QtZ3JvdXAtZmx1c2g6Zmlyc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IDA7XG59XG5cbi5saXN0LWdyb3VwLWZsdXNoOmxhc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS1wcmltYXJ5IHtcbiAgY29sb3I6ICMwMDQwODU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiOGRhZmY7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW0tcHJpbWFyeS5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmhvdmVyLCAubGlzdC1ncm91cC1pdGVtLXByaW1hcnkubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpmb2N1cyB7XG4gIGNvbG9yOiAjMDA0MDg1O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWZjZGZmO1xufVxuXG4ubGlzdC1ncm91cC1pdGVtLXByaW1hcnkubGlzdC1ncm91cC1pdGVtLWFjdGlvbi5hY3RpdmUge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDA4NTtcbiAgYm9yZGVyLWNvbG9yOiAjMDA0MDg1O1xufVxuXG4ubGlzdC1ncm91cC1pdGVtLXNlY29uZGFyeSB7XG4gIGNvbG9yOiAjMzgzZDQxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDZkOGRiO1xufVxuXG4ubGlzdC1ncm91cC1pdGVtLXNlY29uZGFyeS5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmhvdmVyLCAubGlzdC1ncm91cC1pdGVtLXNlY29uZGFyeS5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmZvY3VzIHtcbiAgY29sb3I6ICMzODNkNDE7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjOGNiY2Y7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW0tc2Vjb25kYXJ5Lmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb24uYWN0aXZlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzODNkNDE7XG4gIGJvcmRlci1jb2xvcjogIzM4M2Q0MTtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzIHtcbiAgY29sb3I6ICMxNTU3MjQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjM2U2Y2I7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzcy5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmhvdmVyLCAubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpmb2N1cyB7XG4gIGNvbG9yOiAjMTU1NzI0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjFkZmJiO1xufVxuXG4ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MubGlzdC1ncm91cC1pdGVtLWFjdGlvbi5hY3RpdmUge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE1NTcyNDtcbiAgYm9yZGVyLWNvbG9yOiAjMTU1NzI0O1xufVxuXG4ubGlzdC1ncm91cC1pdGVtLWluZm8ge1xuICBjb2xvcjogIzBjNTQ2MDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JlZTVlYjtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246aG92ZXIsIC5saXN0LWdyb3VwLWl0ZW0taW5mby5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmZvY3VzIHtcbiAgY29sb3I6ICMwYzU0NjA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhYmRkZTU7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW0taW5mby5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uLmFjdGl2ZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGM1NDYwO1xuICBib3JkZXItY29sb3I6ICMwYzU0NjA7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZyB7XG4gIGNvbG9yOiAjODU2NDA0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlZWJhO1xufVxuXG4ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpob3ZlciwgLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246Zm9jdXMge1xuICBjb2xvcjogIzg1NjQwNDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZThhMTtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb24uYWN0aXZlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4NTY0MDQ7XG4gIGJvcmRlci1jb2xvcjogIzg1NjQwNDtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIge1xuICBjb2xvcjogIzcyMWMyNDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1YzZjYjtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpob3ZlciwgLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpmb2N1cyB7XG4gIGNvbG9yOiAjNzIxYzI0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFiMGI3O1xufVxuXG4ubGlzdC1ncm91cC1pdGVtLWRhbmdlci5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uLmFjdGl2ZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzIxYzI0O1xuICBib3JkZXItY29sb3I6ICM3MjFjMjQ7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW0tbGlnaHQge1xuICBjb2xvcjogIzgxODE4MjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkZmRmZTtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS1saWdodC5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmhvdmVyLCAubGlzdC1ncm91cC1pdGVtLWxpZ2h0Lmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246Zm9jdXMge1xuICBjb2xvcjogIzgxODE4MjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWNmNjtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS1saWdodC5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uLmFjdGl2ZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODE4MTgyO1xuICBib3JkZXItY29sb3I6ICM4MTgxODI7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW0tZGFyayB7XG4gIGNvbG9yOiAjMWIxZTIxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzZjOGNhO1xufVxuXG4ubGlzdC1ncm91cC1pdGVtLWRhcmsubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpob3ZlciwgLmxpc3QtZ3JvdXAtaXRlbS1kYXJrLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246Zm9jdXMge1xuICBjb2xvcjogIzFiMWUyMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2I5YmJiZTtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS1kYXJrLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb24uYWN0aXZlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxYjFlMjE7XG4gIGJvcmRlci1jb2xvcjogIzFiMWUyMTtcbn1cblxuLmNsb3NlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjMDAwO1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMCAjZmZmO1xuICBvcGFjaXR5OiAuNTtcbn1cblxuLmNsb3NlOmhvdmVyLCAuY2xvc2U6Zm9jdXMge1xuICBjb2xvcjogIzAwMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBvcGFjaXR5OiAuNzU7XG59XG5cbi5jbG9zZTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuYnV0dG9uLmNsb3NlIHtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4ubW9kYWwtb3BlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5tb2RhbCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDUwO1xuICBkaXNwbGF5OiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvdXRsaW5lOiAwO1xufVxuXG4ubW9kYWwtb3BlbiAubW9kYWwge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5tb2RhbC1kaWFsb2cge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW46IDAuNXJlbTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5tb2RhbC5mYWRlIC5tb2RhbC1kaWFsb2cge1xuICB0cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLW91dDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQsIC13ZWJraXQtdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTI1JSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0yNSUpO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5tb2RhbC5mYWRlIC5tb2RhbC1kaWFsb2cge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbn1cblxuLm1vZGFsLnNob3cgLm1vZGFsLWRpYWxvZyB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xufVxuXG4ubW9kYWwtZGlhbG9nLWNlbnRlcmVkIHtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1pbi1oZWlnaHQ6IGNhbGMoMTAwJSAtICgwLjVyZW0gKiAyKSk7XG59XG5cbi5tb2RhbC1jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAxMDAlO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBib3JkZXItcmFkaXVzOiAwLjNyZW07XG4gIG91dGxpbmU6IDA7XG59XG5cbi5tb2RhbC1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDQwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xufVxuXG4ubW9kYWwtYmFja2Ryb3AuZmFkZSB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5tb2RhbC1iYWNrZHJvcC5zaG93IHtcbiAgb3BhY2l0eTogMC41O1xufVxuXG4ubW9kYWwtaGVhZGVyIHtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC1tcy1mbGV4LWFsaWduOiBzdGFydDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlOWVjZWY7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAuM3JlbTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAuM3JlbTtcbn1cblxuLm1vZGFsLWhlYWRlciAuY2xvc2Uge1xuICBwYWRkaW5nOiAxcmVtO1xuICBtYXJnaW46IC0xcmVtIC0xcmVtIC0xcmVtIGF1dG87XG59XG5cbi5tb2RhbC10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi5tb2RhbC1ib2R5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAtbXMtZmxleDogMSAxIGF1dG87XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBwYWRkaW5nOiAxcmVtO1xufVxuXG4ubW9kYWwtZm9vdGVyIHtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIC1tcy1mbGV4LXBhY2s6IGVuZDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlOWVjZWY7XG59XG5cbi5tb2RhbC1mb290ZXIgPiA6bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLjI1cmVtO1xufVxuXG4ubW9kYWwtZm9vdGVyID4gOm5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tcmlnaHQ6IC4yNXJlbTtcbn1cblxuLm1vZGFsLXNjcm9sbGJhci1tZWFzdXJlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC05OTk5cHg7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIG92ZXJmbG93OiBzY3JvbGw7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xuICAubW9kYWwtZGlhbG9nIHtcbiAgICBtYXgtd2lkdGg6IDUwMHB4O1xuICAgIG1hcmdpbjogMS43NXJlbSBhdXRvO1xuICB9XG4gIC5tb2RhbC1kaWFsb2ctY2VudGVyZWQge1xuICAgIG1pbi1oZWlnaHQ6IGNhbGMoMTAwJSAtICgxLjc1cmVtICogMikpO1xuICB9XG4gIC5tb2RhbC1zbSB7XG4gICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLm1vZGFsLWxnIHtcbiAgICBtYXgtd2lkdGg6IDgwMHB4O1xuICB9XG59XG5cbi50b29sdGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDcwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBBcmlhbCwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCI7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gIHdvcmQtc3BhY2luZzogbm9ybWFsO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBsaW5lLWJyZWFrOiBhdXRvO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi50b29sdGlwLnNob3cge1xuICBvcGFjaXR5OiAwLjk7XG59XG5cbi50b29sdGlwIC5hcnJvdyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwLjhyZW07XG4gIGhlaWdodDogMC40cmVtO1xufVxuXG4udG9vbHRpcCAuYXJyb3c6OmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogXCJcIjtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbn1cblxuLmJzLXRvb2x0aXAtdG9wLCAuYnMtdG9vbHRpcC1hdXRvW3gtcGxhY2VtZW50Xj1cInRvcFwiXSB7XG4gIHBhZGRpbmc6IDAuNHJlbSAwO1xufVxuXG4uYnMtdG9vbHRpcC10b3AgLmFycm93LCAuYnMtdG9vbHRpcC1hdXRvW3gtcGxhY2VtZW50Xj1cInRvcFwiXSAuYXJyb3cge1xuICBib3R0b206IDA7XG59XG5cbi5icy10b29sdGlwLXRvcCAuYXJyb3c6OmJlZm9yZSwgLmJzLXRvb2x0aXAtYXV0b1t4LXBsYWNlbWVudF49XCJ0b3BcIl0gLmFycm93OjpiZWZvcmUge1xuICB0b3A6IDA7XG4gIGJvcmRlci13aWR0aDogMC40cmVtIDAuNHJlbSAwO1xuICBib3JkZXItdG9wLWNvbG9yOiAjMDAwO1xufVxuXG4uYnMtdG9vbHRpcC1yaWdodCwgLmJzLXRvb2x0aXAtYXV0b1t4LXBsYWNlbWVudF49XCJyaWdodFwiXSB7XG4gIHBhZGRpbmc6IDAgMC40cmVtO1xufVxuXG4uYnMtdG9vbHRpcC1yaWdodCAuYXJyb3csIC5icy10b29sdGlwLWF1dG9beC1wbGFjZW1lbnRePVwicmlnaHRcIl0gLmFycm93IHtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDAuNHJlbTtcbiAgaGVpZ2h0OiAwLjhyZW07XG59XG5cbi5icy10b29sdGlwLXJpZ2h0IC5hcnJvdzo6YmVmb3JlLCAuYnMtdG9vbHRpcC1hdXRvW3gtcGxhY2VtZW50Xj1cInJpZ2h0XCJdIC5hcnJvdzo6YmVmb3JlIHtcbiAgcmlnaHQ6IDA7XG4gIGJvcmRlci13aWR0aDogMC40cmVtIDAuNHJlbSAwLjRyZW0gMDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjMDAwO1xufVxuXG4uYnMtdG9vbHRpcC1ib3R0b20sIC5icy10b29sdGlwLWF1dG9beC1wbGFjZW1lbnRePVwiYm90dG9tXCJdIHtcbiAgcGFkZGluZzogMC40cmVtIDA7XG59XG5cbi5icy10b29sdGlwLWJvdHRvbSAuYXJyb3csIC5icy10b29sdGlwLWF1dG9beC1wbGFjZW1lbnRePVwiYm90dG9tXCJdIC5hcnJvdyB7XG4gIHRvcDogMDtcbn1cblxuLmJzLXRvb2x0aXAtYm90dG9tIC5hcnJvdzo6YmVmb3JlLCAuYnMtdG9vbHRpcC1hdXRvW3gtcGxhY2VtZW50Xj1cImJvdHRvbVwiXSAuYXJyb3c6OmJlZm9yZSB7XG4gIGJvdHRvbTogMDtcbiAgYm9yZGVyLXdpZHRoOiAwIDAuNHJlbSAwLjRyZW07XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICMwMDA7XG59XG5cbi5icy10b29sdGlwLWxlZnQsIC5icy10b29sdGlwLWF1dG9beC1wbGFjZW1lbnRePVwibGVmdFwiXSB7XG4gIHBhZGRpbmc6IDAgMC40cmVtO1xufVxuXG4uYnMtdG9vbHRpcC1sZWZ0IC5hcnJvdywgLmJzLXRvb2x0aXAtYXV0b1t4LXBsYWNlbWVudF49XCJsZWZ0XCJdIC5hcnJvdyB7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMC40cmVtO1xuICBoZWlnaHQ6IDAuOHJlbTtcbn1cblxuLmJzLXRvb2x0aXAtbGVmdCAuYXJyb3c6OmJlZm9yZSwgLmJzLXRvb2x0aXAtYXV0b1t4LXBsYWNlbWVudF49XCJsZWZ0XCJdIC5hcnJvdzo6YmVmb3JlIHtcbiAgbGVmdDogMDtcbiAgYm9yZGVyLXdpZHRoOiAwLjRyZW0gMCAwLjRyZW0gMC40cmVtO1xuICBib3JkZXItbGVmdC1jb2xvcjogIzAwMDtcbn1cblxuLnRvb2x0aXAtaW5uZXIge1xuICBtYXgtd2lkdGg6IDIwMHB4O1xuICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcbn1cblxuLnBvcG92ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTA2MDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC13aWR0aDogMjc2cHg7XG4gIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIEFyaWFsLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS41O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIHdvcmQtYnJlYWs6IG5vcm1hbDtcbiAgd29yZC1zcGFjaW5nOiBub3JtYWw7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIGxpbmUtYnJlYWs6IGF1dG87XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBib3JkZXItcmFkaXVzOiAwLjNyZW07XG59XG5cbi5wb3BvdmVyIC5hcnJvdyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxcmVtO1xuICBoZWlnaHQ6IDAuNXJlbTtcbiAgbWFyZ2luOiAwIDAuM3JlbTtcbn1cblxuLnBvcG92ZXIgLmFycm93OjpiZWZvcmUsIC5wb3BvdmVyIC5hcnJvdzo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb250ZW50OiBcIlwiO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuXG4uYnMtcG9wb3Zlci10b3AsIC5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePVwidG9wXCJdIHtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG4uYnMtcG9wb3Zlci10b3AgLmFycm93LCAuYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1cInRvcFwiXSAuYXJyb3cge1xuICBib3R0b206IGNhbGMoKDAuNXJlbSArIDFweCkgKiAtMSk7XG59XG5cbi5icy1wb3BvdmVyLXRvcCAuYXJyb3c6OmJlZm9yZSwgLmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49XCJ0b3BcIl0gLmFycm93OjpiZWZvcmUsXG4uYnMtcG9wb3Zlci10b3AgLmFycm93OjphZnRlcixcbi5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePVwidG9wXCJdIC5hcnJvdzo6YWZ0ZXIge1xuICBib3JkZXItd2lkdGg6IDAuNXJlbSAwLjVyZW0gMDtcbn1cblxuLmJzLXBvcG92ZXItdG9wIC5hcnJvdzo6YmVmb3JlLCAuYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1cInRvcFwiXSAuYXJyb3c6OmJlZm9yZSB7XG4gIGJvdHRvbTogMDtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI1KTtcbn1cblxuXG4uYnMtcG9wb3Zlci10b3AgLmFycm93OjphZnRlcixcbi5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePVwidG9wXCJdIC5hcnJvdzo6YWZ0ZXIge1xuICBib3R0b206IDFweDtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmZjtcbn1cblxuLmJzLXBvcG92ZXItcmlnaHQsIC5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePVwicmlnaHRcIl0ge1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xufVxuXG4uYnMtcG9wb3Zlci1yaWdodCAuYXJyb3csIC5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePVwicmlnaHRcIl0gLmFycm93IHtcbiAgbGVmdDogY2FsYygoMC41cmVtICsgMXB4KSAqIC0xKTtcbiAgd2lkdGg6IDAuNXJlbTtcbiAgaGVpZ2h0OiAxcmVtO1xuICBtYXJnaW46IDAuM3JlbSAwO1xufVxuXG4uYnMtcG9wb3Zlci1yaWdodCAuYXJyb3c6OmJlZm9yZSwgLmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49XCJyaWdodFwiXSAuYXJyb3c6OmJlZm9yZSxcbi5icy1wb3BvdmVyLXJpZ2h0IC5hcnJvdzo6YWZ0ZXIsXG4uYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1cInJpZ2h0XCJdIC5hcnJvdzo6YWZ0ZXIge1xuICBib3JkZXItd2lkdGg6IDAuNXJlbSAwLjVyZW0gMC41cmVtIDA7XG59XG5cbi5icy1wb3BvdmVyLXJpZ2h0IC5hcnJvdzo6YmVmb3JlLCAuYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1cInJpZ2h0XCJdIC5hcnJvdzo6YmVmb3JlIHtcbiAgbGVmdDogMDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjUpO1xufVxuXG5cbi5icy1wb3BvdmVyLXJpZ2h0IC5hcnJvdzo6YWZ0ZXIsXG4uYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1cInJpZ2h0XCJdIC5hcnJvdzo6YWZ0ZXIge1xuICBsZWZ0OiAxcHg7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogI2ZmZjtcbn1cblxuLmJzLXBvcG92ZXItYm90dG9tLCAuYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1cImJvdHRvbVwiXSB7XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbn1cblxuLmJzLXBvcG92ZXItYm90dG9tIC5hcnJvdywgLmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49XCJib3R0b21cIl0gLmFycm93IHtcbiAgdG9wOiBjYWxjKCgwLjVyZW0gKyAxcHgpICogLTEpO1xufVxuXG4uYnMtcG9wb3Zlci1ib3R0b20gLmFycm93OjpiZWZvcmUsIC5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePVwiYm90dG9tXCJdIC5hcnJvdzo6YmVmb3JlLFxuLmJzLXBvcG92ZXItYm90dG9tIC5hcnJvdzo6YWZ0ZXIsXG4uYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1cImJvdHRvbVwiXSAuYXJyb3c6OmFmdGVyIHtcbiAgYm9yZGVyLXdpZHRoOiAwIDAuNXJlbSAwLjVyZW0gMC41cmVtO1xufVxuXG4uYnMtcG9wb3Zlci1ib3R0b20gLmFycm93OjpiZWZvcmUsIC5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePVwiYm90dG9tXCJdIC5hcnJvdzo6YmVmb3JlIHtcbiAgdG9wOiAwO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjUpO1xufVxuXG5cbi5icy1wb3BvdmVyLWJvdHRvbSAuYXJyb3c6OmFmdGVyLFxuLmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49XCJib3R0b21cIl0gLmFycm93OjphZnRlciB7XG4gIHRvcDogMXB4O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjZmZmO1xufVxuXG4uYnMtcG9wb3Zlci1ib3R0b20gLnBvcG92ZXItaGVhZGVyOjpiZWZvcmUsIC5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePVwiYm90dG9tXCJdIC5wb3BvdmVyLWhlYWRlcjo6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDUwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxcmVtO1xuICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgY29udGVudDogXCJcIjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmN2Y3Zjc7XG59XG5cbi5icy1wb3BvdmVyLWxlZnQsIC5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePVwibGVmdFwiXSB7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xufVxuXG4uYnMtcG9wb3Zlci1sZWZ0IC5hcnJvdywgLmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49XCJsZWZ0XCJdIC5hcnJvdyB7XG4gIHJpZ2h0OiBjYWxjKCgwLjVyZW0gKyAxcHgpICogLTEpO1xuICB3aWR0aDogMC41cmVtO1xuICBoZWlnaHQ6IDFyZW07XG4gIG1hcmdpbjogMC4zcmVtIDA7XG59XG5cbi5icy1wb3BvdmVyLWxlZnQgLmFycm93OjpiZWZvcmUsIC5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePVwibGVmdFwiXSAuYXJyb3c6OmJlZm9yZSxcbi5icy1wb3BvdmVyLWxlZnQgLmFycm93OjphZnRlcixcbi5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePVwibGVmdFwiXSAuYXJyb3c6OmFmdGVyIHtcbiAgYm9yZGVyLXdpZHRoOiAwLjVyZW0gMCAwLjVyZW0gMC41cmVtO1xufVxuXG4uYnMtcG9wb3Zlci1sZWZ0IC5hcnJvdzo6YmVmb3JlLCAuYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1cImxlZnRcIl0gLmFycm93OjpiZWZvcmUge1xuICByaWdodDogMDtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG59XG5cblxuLmJzLXBvcG92ZXItbGVmdCAuYXJyb3c6OmFmdGVyLFxuLmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49XCJsZWZ0XCJdIC5hcnJvdzo6YWZ0ZXIge1xuICByaWdodDogMXB4O1xuICBib3JkZXItbGVmdC1jb2xvcjogI2ZmZjtcbn1cblxuLnBvcG92ZXItaGVhZGVyIHtcbiAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWJlYmViO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBjYWxjKDAuM3JlbSAtIDFweCk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBjYWxjKDAuM3JlbSAtIDFweCk7XG59XG5cbi5wb3BvdmVyLWhlYWRlcjplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5wb3BvdmVyLWJvZHkge1xuICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgY29sb3I6ICMyMTI1Mjk7XG59XG5cbi5jYXJvdXNlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNhcm91c2VsLWlubmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmNhcm91c2VsLWl0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjZzIGVhc2U7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjZzIGVhc2U7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjZzIGVhc2UsIC13ZWJraXQtdHJhbnNmb3JtIDAuNnMgZWFzZTtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLXdlYmtpdC1wZXJzcGVjdGl2ZTogMTAwMHB4O1xuICBwZXJzcGVjdGl2ZTogMTAwMHB4O1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5jYXJvdXNlbC1pdGVtIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG59XG5cbi5jYXJvdXNlbC1pdGVtLmFjdGl2ZSxcbi5jYXJvdXNlbC1pdGVtLW5leHQsXG4uY2Fyb3VzZWwtaXRlbS1wcmV2IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5jYXJvdXNlbC1pdGVtLW5leHQsXG4uY2Fyb3VzZWwtaXRlbS1wcmV2IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG59XG5cbi5jYXJvdXNlbC1pdGVtLW5leHQuY2Fyb3VzZWwtaXRlbS1sZWZ0LFxuLmNhcm91c2VsLWl0ZW0tcHJldi5jYXJvdXNlbC1pdGVtLXJpZ2h0IHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbn1cblxuQHN1cHBvcnRzICgoLXdlYmtpdC10cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkKSBvciAodHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZCkpIHtcbiAgLmNhcm91c2VsLWl0ZW0tbmV4dC5jYXJvdXNlbC1pdGVtLWxlZnQsXG4gIC5jYXJvdXNlbC1pdGVtLXByZXYuY2Fyb3VzZWwtaXRlbS1yaWdodCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuLmNhcm91c2VsLWl0ZW0tbmV4dCxcbi5hY3RpdmUuY2Fyb3VzZWwtaXRlbS1yaWdodCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG59XG5cbkBzdXBwb3J0cyAoKC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZCkgb3IgKHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2QpKSB7XG4gIC5jYXJvdXNlbC1pdGVtLW5leHQsXG4gIC5hY3RpdmUuY2Fyb3VzZWwtaXRlbS1yaWdodCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gIH1cbn1cblxuLmNhcm91c2VsLWl0ZW0tcHJldixcbi5hY3RpdmUuY2Fyb3VzZWwtaXRlbS1sZWZ0IHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xufVxuXG5Ac3VwcG9ydHMgKCgtd2Via2l0LXRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2QpIG9yICh0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkKSkge1xuICAuY2Fyb3VzZWwtaXRlbS1wcmV2LFxuICAuYWN0aXZlLmNhcm91c2VsLWl0ZW0tbGVmdCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgfVxufVxuXG4uY2Fyb3VzZWwtZmFkZSAuY2Fyb3VzZWwtaXRlbSB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IC42cztcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbn1cblxuLmNhcm91c2VsLWZhZGUgLmNhcm91c2VsLWl0ZW0uYWN0aXZlLFxuLmNhcm91c2VsLWZhZGUgLmNhcm91c2VsLWl0ZW0tbmV4dC5jYXJvdXNlbC1pdGVtLWxlZnQsXG4uY2Fyb3VzZWwtZmFkZSAuY2Fyb3VzZWwtaXRlbS1wcmV2LmNhcm91c2VsLWl0ZW0tcmlnaHQge1xuICBvcGFjaXR5OiAxO1xufVxuXG4uY2Fyb3VzZWwtZmFkZSAuYWN0aXZlLmNhcm91c2VsLWl0ZW0tbGVmdCxcbi5jYXJvdXNlbC1mYWRlIC5hY3RpdmUuY2Fyb3VzZWwtaXRlbS1yaWdodCB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5jYXJvdXNlbC1mYWRlIC5jYXJvdXNlbC1pdGVtLW5leHQsXG4uY2Fyb3VzZWwtZmFkZSAuY2Fyb3VzZWwtaXRlbS1wcmV2LFxuLmNhcm91c2VsLWZhZGUgLmNhcm91c2VsLWl0ZW0uYWN0aXZlLFxuLmNhcm91c2VsLWZhZGUgLmFjdGl2ZS5jYXJvdXNlbC1pdGVtLWxlZnQsXG4uY2Fyb3VzZWwtZmFkZSAuYWN0aXZlLmNhcm91c2VsLWl0ZW0tcHJldiB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG59XG5cbkBzdXBwb3J0cyAoKC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZCkgb3IgKHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2QpKSB7XG4gIC5jYXJvdXNlbC1mYWRlIC5jYXJvdXNlbC1pdGVtLW5leHQsXG4gIC5jYXJvdXNlbC1mYWRlIC5jYXJvdXNlbC1pdGVtLXByZXYsXG4gIC5jYXJvdXNlbC1mYWRlIC5jYXJvdXNlbC1pdGVtLmFjdGl2ZSxcbiAgLmNhcm91c2VsLWZhZGUgLmFjdGl2ZS5jYXJvdXNlbC1pdGVtLWxlZnQsXG4gIC5jYXJvdXNlbC1mYWRlIC5hY3RpdmUuY2Fyb3VzZWwtaXRlbS1wcmV2IHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG4uY2Fyb3VzZWwtY29udHJvbC1wcmV2LFxuLmNhcm91c2VsLWNvbnRyb2wtbmV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xuICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTUlO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBvcGFjaXR5OiAwLjU7XG59XG5cbi5jYXJvdXNlbC1jb250cm9sLXByZXY6aG92ZXIsIC5jYXJvdXNlbC1jb250cm9sLXByZXY6Zm9jdXMsXG4uY2Fyb3VzZWwtY29udHJvbC1uZXh0OmhvdmVyLFxuLmNhcm91c2VsLWNvbnRyb2wtbmV4dDpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIG91dGxpbmU6IDA7XG4gIG9wYWNpdHk6IC45O1xufVxuXG4uY2Fyb3VzZWwtY29udHJvbC1wcmV2IHtcbiAgbGVmdDogMDtcbn1cblxuLmNhcm91c2VsLWNvbnRyb2wtbmV4dCB7XG4gIHJpZ2h0OiAwO1xufVxuXG4uY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb24sXG4uY2Fyb3VzZWwtY29udHJvbC1uZXh0LWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTtcbn1cblxuLmNhcm91c2VsLWNvbnRyb2wtcHJldi1pY29uIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBmaWxsPSclMjNmZmYnIHZpZXdCb3g9JzAgMCA4IDgnJTNFJTNDcGF0aCBkPSdNNS4yNSAwbC00IDQgNCA0IDEuNS0xLjUtMi41LTIuNSAyLjUtMi41LTEuNS0xLjV6Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xufVxuXG4uY2Fyb3VzZWwtY29udHJvbC1uZXh0LWljb24ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGZpbGw9JyUyM2ZmZicgdmlld0JveD0nMCAwIDggOCclM0UlM0NwYXRoIGQ9J00yLjc1IDBsLTEuNSAxLjUgMi41IDIuNS0yLjUgMi41IDEuNSAxLjUgNC00LTQtNHonLyUzRSUzQy9zdmclM0VcIik7XG59XG5cbi5jYXJvdXNlbC1pbmRpY2F0b3JzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAxMHB4O1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxNTtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNSU7XG4gIG1hcmdpbi1sZWZ0OiAxNSU7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5jYXJvdXNlbC1pbmRpY2F0b3JzIGxpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAtbXMtZmxleDogMCAxIGF1dG87XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzcHg7XG4gIG1hcmdpbi1yaWdodDogM3B4O1xuICBtYXJnaW4tbGVmdDogM3B4O1xuICB0ZXh0LWluZGVudDogLTk5OXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cblxuLmNhcm91c2VsLWluZGljYXRvcnMgbGk6OmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMTBweDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMHB4O1xuICBjb250ZW50OiBcIlwiO1xufVxuXG4uY2Fyb3VzZWwtaW5kaWNhdG9ycyBsaTo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogLTEwcHg7XG4gIGxlZnQ6IDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTBweDtcbiAgY29udGVudDogXCJcIjtcbn1cblxuLmNhcm91c2VsLWluZGljYXRvcnMgLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5jYXJvdXNlbC1jYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTUlO1xuICBib3R0b206IDIwcHg7XG4gIGxlZnQ6IDE1JTtcbiAgei1pbmRleDogMTA7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmFsaWduLWJhc2VsaW5lIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi10b3Age1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1taWRkbGUge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1ib3R0b20ge1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi10ZXh0LWJvdHRvbSB7XG4gIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbSAhaW1wb3J0YW50O1xufVxuXG4uYWxpZ24tdGV4dC10b3Age1xuICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3AgIWltcG9ydGFudDtcbn1cblxuLmJnLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3YmZmICFpbXBvcnRhbnQ7XG59XG5cbmEuYmctcHJpbWFyeTpob3ZlciwgYS5iZy1wcmltYXJ5OmZvY3VzLFxuYnV0dG9uLmJnLXByaW1hcnk6aG92ZXIsXG5idXR0b24uYmctcHJpbWFyeTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDYyY2MgIWltcG9ydGFudDtcbn1cblxuLmJnLXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2Yzc1N2QgIWltcG9ydGFudDtcbn1cblxuYS5iZy1zZWNvbmRhcnk6aG92ZXIsIGEuYmctc2Vjb25kYXJ5OmZvY3VzLFxuYnV0dG9uLmJnLXNlY29uZGFyeTpob3ZlcixcbmJ1dHRvbi5iZy1zZWNvbmRhcnk6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ1YjYyICFpbXBvcnRhbnQ7XG59XG5cbi5iZy1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI4YTc0NSAhaW1wb3J0YW50O1xufVxuXG5hLmJnLXN1Y2Nlc3M6aG92ZXIsIGEuYmctc3VjY2Vzczpmb2N1cyxcbmJ1dHRvbi5iZy1zdWNjZXNzOmhvdmVyLFxuYnV0dG9uLmJnLXN1Y2Nlc3M6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWU3ZTM0ICFpbXBvcnRhbnQ7XG59XG5cbi5iZy1pbmZvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3YTJiOCAhaW1wb3J0YW50O1xufVxuXG5hLmJnLWluZm86aG92ZXIsIGEuYmctaW5mbzpmb2N1cyxcbmJ1dHRvbi5iZy1pbmZvOmhvdmVyLFxuYnV0dG9uLmJnLWluZm86Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTE3YThiICFpbXBvcnRhbnQ7XG59XG5cbi5iZy13YXJuaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYzEwNyAhaW1wb3J0YW50O1xufVxuXG5hLmJnLXdhcm5pbmc6aG92ZXIsIGEuYmctd2FybmluZzpmb2N1cyxcbmJ1dHRvbi5iZy13YXJuaW5nOmhvdmVyLFxuYnV0dG9uLmJnLXdhcm5pbmc6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDM5ZTAwICFpbXBvcnRhbnQ7XG59XG5cbi5iZy1kYW5nZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGMzNTQ1ICFpbXBvcnRhbnQ7XG59XG5cbmEuYmctZGFuZ2VyOmhvdmVyLCBhLmJnLWRhbmdlcjpmb2N1cyxcbmJ1dHRvbi5iZy1kYW5nZXI6aG92ZXIsXG5idXR0b24uYmctZGFuZ2VyOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JkMjEzMCAhaW1wb3J0YW50O1xufVxuXG4uYmctbGlnaHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhICFpbXBvcnRhbnQ7XG59XG5cbmEuYmctbGlnaHQ6aG92ZXIsIGEuYmctbGlnaHQ6Zm9jdXMsXG5idXR0b24uYmctbGlnaHQ6aG92ZXIsXG5idXR0b24uYmctbGlnaHQ6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGFlMGU1ICFpbXBvcnRhbnQ7XG59XG5cbi5iZy1kYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM0M2E0MCAhaW1wb3J0YW50O1xufVxuXG5hLmJnLWRhcms6aG92ZXIsIGEuYmctZGFyazpmb2N1cyxcbmJ1dHRvbi5iZy1kYXJrOmhvdmVyLFxuYnV0dG9uLmJnLWRhcms6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWQyMTI0ICFpbXBvcnRhbnQ7XG59XG5cbi5iZy13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbn1cblxuLmJnLXRyYW5zcGFyZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuLmJvcmRlciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZWUyZTYgIWltcG9ydGFudDtcbn1cblxuLmJvcmRlci10b3Age1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RlZTJlNiAhaW1wb3J0YW50O1xufVxuXG4uYm9yZGVyLXJpZ2h0IHtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RlZTJlNiAhaW1wb3J0YW50O1xufVxuXG4uYm9yZGVyLWJvdHRvbSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGVlMmU2ICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItbGVmdCB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2RlZTJlNiAhaW1wb3J0YW50O1xufVxuXG4uYm9yZGVyLTAge1xuICBib3JkZXI6IDAgIWltcG9ydGFudDtcbn1cblxuLmJvcmRlci10b3AtMCB7XG4gIGJvcmRlci10b3A6IDAgIWltcG9ydGFudDtcbn1cblxuLmJvcmRlci1yaWdodC0wIHtcbiAgYm9yZGVyLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItYm90dG9tLTAge1xuICBib3JkZXItYm90dG9tOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItbGVmdC0wIHtcbiAgYm9yZGVyLWxlZnQ6IDAgIWltcG9ydGFudDtcbn1cblxuLmJvcmRlci1wcmltYXJ5IHtcbiAgYm9yZGVyLWNvbG9yOiAjMDA3YmZmICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItc2Vjb25kYXJ5IHtcbiAgYm9yZGVyLWNvbG9yOiAjNmM3NTdkICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItc3VjY2VzcyB7XG4gIGJvcmRlci1jb2xvcjogIzI4YTc0NSAhaW1wb3J0YW50O1xufVxuXG4uYm9yZGVyLWluZm8ge1xuICBib3JkZXItY29sb3I6ICMxN2EyYjggIWltcG9ydGFudDtcbn1cblxuLmJvcmRlci13YXJuaW5nIHtcbiAgYm9yZGVyLWNvbG9yOiAjZmZjMTA3ICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItZGFuZ2VyIHtcbiAgYm9yZGVyLWNvbG9yOiAjZGMzNTQ1ICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItbGlnaHQge1xuICBib3JkZXItY29sb3I6ICNmOGY5ZmEgIWltcG9ydGFudDtcbn1cblxuLmJvcmRlci1kYXJrIHtcbiAgYm9yZGVyLWNvbG9yOiAjMzQzYTQwICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItd2hpdGUge1xuICBib3JkZXItY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbn1cblxuLnJvdW5kZWQge1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5yb3VuZGVkLXRvcCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAuMjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnJvdW5kZWQtcmlnaHQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC4yNXJlbSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC4yNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC1ib3R0b20ge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC4yNXJlbSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5yb3VuZGVkLWxlZnQge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAuMjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnJvdW5kZWQtY2lyY2xlIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG59XG5cbi5yb3VuZGVkLTAge1xuICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5jbGVhcmZpeDo6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY2xlYXI6IGJvdGg7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG5cbi5kLW5vbmUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5kLWlubGluZSB7XG4gIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xufVxuXG4uZC1pbmxpbmUtYmxvY2sge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbn1cblxuLmQtYmxvY2sge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xufVxuXG4uZC10YWJsZSB7XG4gIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG59XG5cbi5kLXRhYmxlLXJvdyB7XG4gIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xufVxuXG4uZC10YWJsZS1jZWxsIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50O1xufVxuXG4uZC1mbGV4IHtcbiAgZGlzcGxheTogLW1zLWZsZXhib3ggIWltcG9ydGFudDtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xufVxuXG4uZC1pbmxpbmUtZmxleCB7XG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveCAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLmQtc20tbm9uZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC5kLXNtLWlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtc20taW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAuZC1zbS1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAuZC1zbS10YWJsZSB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbiAgfVxuICAuZC1zbS10YWJsZS1yb3cge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xuICB9XG4gIC5kLXNtLXRhYmxlLWNlbGwge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgfVxuICAuZC1zbS1mbGV4IHtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveCAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgfVxuICAuZC1zbS1pbmxpbmUtZmxleCB7XG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94ICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmQtbWQtbm9uZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC5kLW1kLWlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtbWQtaW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAuZC1tZC1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAuZC1tZC10YWJsZSB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbiAgfVxuICAuZC1tZC10YWJsZS1yb3cge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xuICB9XG4gIC5kLW1kLXRhYmxlLWNlbGwge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgfVxuICAuZC1tZC1mbGV4IHtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveCAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgfVxuICAuZC1tZC1pbmxpbmUtZmxleCB7XG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94ICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmQtbGctbm9uZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC5kLWxnLWlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtbGctaW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAuZC1sZy1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAuZC1sZy10YWJsZSB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbiAgfVxuICAuZC1sZy10YWJsZS1yb3cge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xuICB9XG4gIC5kLWxnLXRhYmxlLWNlbGwge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgfVxuICAuZC1sZy1mbGV4IHtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveCAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgfVxuICAuZC1sZy1pbmxpbmUtZmxleCB7XG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94ICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5kLXhsLW5vbmUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAuZC14bC1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG4gIC5kLXhsLWlubGluZS1ibG9jayB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQteGwtYmxvY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQteGwtdGFibGUge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQteGwtdGFibGUtcm93IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDtcbiAgfVxuICAuZC14bC10YWJsZS1jZWxsIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQteGwtZmxleCB7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3ggIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQteGwtaW5saW5lLWZsZXgge1xuICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveCAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50IHtcbiAgLmQtcHJpbnQtbm9uZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC5kLXByaW50LWlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtcHJpbnQtaW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAuZC1wcmludC1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAuZC1wcmludC10YWJsZSB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbiAgfVxuICAuZC1wcmludC10YWJsZS1yb3cge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xuICB9XG4gIC5kLXByaW50LXRhYmxlLWNlbGwge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgfVxuICAuZC1wcmludC1mbGV4IHtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveCAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgfVxuICAuZC1wcmludC1pbmxpbmUtZmxleCB7XG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94ICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgfVxufVxuXG4uZW1iZWQtcmVzcG9uc2l2ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZW1iZWQtcmVzcG9uc2l2ZTo6YmVmb3JlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG5cbi5lbWJlZC1yZXNwb25zaXZlIC5lbWJlZC1yZXNwb25zaXZlLWl0ZW0sXG4uZW1iZWQtcmVzcG9uc2l2ZSBpZnJhbWUsXG4uZW1iZWQtcmVzcG9uc2l2ZSBlbWJlZCxcbi5lbWJlZC1yZXNwb25zaXZlIG9iamVjdCxcbi5lbWJlZC1yZXNwb25zaXZlIHZpZGVvIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm9yZGVyOiAwO1xufVxuXG4uZW1iZWQtcmVzcG9uc2l2ZS0yMWJ5OTo6YmVmb3JlIHtcbiAgcGFkZGluZy10b3A6IDQyLjg1NzE0MyU7XG59XG5cbi5lbWJlZC1yZXNwb25zaXZlLTE2Ynk5OjpiZWZvcmUge1xuICBwYWRkaW5nLXRvcDogNTYuMjUlO1xufVxuXG4uZW1iZWQtcmVzcG9uc2l2ZS00YnkzOjpiZWZvcmUge1xuICBwYWRkaW5nLXRvcDogNzUlO1xufVxuXG4uZW1iZWQtcmVzcG9uc2l2ZS0xYnkxOjpiZWZvcmUge1xuICBwYWRkaW5nLXRvcDogMTAwJTtcbn1cblxuLmZsZXgtcm93IHtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdyAhaW1wb3J0YW50O1xufVxuXG4uZmxleC1jb2x1bW4ge1xuICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XG59XG5cbi5mbGV4LXJvdy1yZXZlcnNlIHtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZSAhaW1wb3J0YW50O1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2UgIWltcG9ydGFudDtcbn1cblxuLmZsZXgtY29sdW1uLXJldmVyc2Uge1xuICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlICFpbXBvcnRhbnQ7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZSAhaW1wb3J0YW50O1xufVxuXG4uZmxleC13cmFwIHtcbiAgLW1zLWZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50O1xuICBmbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDtcbn1cblxuLmZsZXgtbm93cmFwIHtcbiAgLW1zLWZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7XG4gIGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7XG59XG5cbi5mbGV4LXdyYXAtcmV2ZXJzZSB7XG4gIC1tcy1mbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZSAhaW1wb3J0YW50O1xuICBmbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZSAhaW1wb3J0YW50O1xufVxuXG4uZmxleC1maWxsIHtcbiAgLW1zLWZsZXg6IDEgMSBhdXRvICFpbXBvcnRhbnQ7XG4gIGZsZXg6IDEgMSBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi5mbGV4LWdyb3ctMCB7XG4gIC1tcy1mbGV4LXBvc2l0aXZlOiAwICFpbXBvcnRhbnQ7XG4gIGZsZXgtZ3JvdzogMCAhaW1wb3J0YW50O1xufVxuXG4uZmxleC1ncm93LTEge1xuICAtbXMtZmxleC1wb3NpdGl2ZTogMSAhaW1wb3J0YW50O1xuICBmbGV4LWdyb3c6IDEgIWltcG9ydGFudDtcbn1cblxuLmZsZXgtc2hyaW5rLTAge1xuICAtbXMtZmxleC1uZWdhdGl2ZTogMCAhaW1wb3J0YW50O1xuICBmbGV4LXNocmluazogMCAhaW1wb3J0YW50O1xufVxuXG4uZmxleC1zaHJpbmstMSB7XG4gIC1tcy1mbGV4LW5lZ2F0aXZlOiAxICFpbXBvcnRhbnQ7XG4gIGZsZXgtc2hyaW5rOiAxICFpbXBvcnRhbnQ7XG59XG5cbi5qdXN0aWZ5LWNvbnRlbnQtc3RhcnQge1xuICAtbXMtZmxleC1wYWNrOiBzdGFydCAhaW1wb3J0YW50O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbn1cblxuLmp1c3RpZnktY29udGVudC1lbmQge1xuICAtbXMtZmxleC1wYWNrOiBlbmQgIWltcG9ydGFudDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50O1xufVxuXG4uanVzdGlmeS1jb250ZW50LWNlbnRlciB7XG4gIC1tcy1mbGV4LXBhY2s6IGNlbnRlciAhaW1wb3J0YW50O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xufVxuXG4uanVzdGlmeS1jb250ZW50LWJldHdlZW4ge1xuICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50O1xufVxuXG4uanVzdGlmeS1jb250ZW50LWFyb3VuZCB7XG4gIC1tcy1mbGV4LXBhY2s6IGRpc3RyaWJ1dGUgIWltcG9ydGFudDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDtcbn1cblxuLmFsaWduLWl0ZW1zLXN0YXJ0IHtcbiAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0ICFpbXBvcnRhbnQ7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1pdGVtcy1lbmQge1xuICAtbXMtZmxleC1hbGlnbjogZW5kICFpbXBvcnRhbnQ7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZCAhaW1wb3J0YW50O1xufVxuXG4uYWxpZ24taXRlbXMtY2VudGVyIHtcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1pdGVtcy1iYXNlbGluZSB7XG4gIC1tcy1mbGV4LWFsaWduOiBiYXNlbGluZSAhaW1wb3J0YW50O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmUgIWltcG9ydGFudDtcbn1cblxuLmFsaWduLWl0ZW1zLXN0cmV0Y2gge1xuICAtbXMtZmxleC1hbGlnbjogc3RyZXRjaCAhaW1wb3J0YW50O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaCAhaW1wb3J0YW50O1xufVxuXG4uYWxpZ24tY29udGVudC1zdGFydCB7XG4gIC1tcy1mbGV4LWxpbmUtcGFjazogc3RhcnQgIWltcG9ydGFudDtcbiAgYWxpZ24tY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xufVxuXG4uYWxpZ24tY29udGVudC1lbmQge1xuICAtbXMtZmxleC1saW5lLXBhY2s6IGVuZCAhaW1wb3J0YW50O1xuICBhbGlnbi1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50O1xufVxuXG4uYWxpZ24tY29udGVudC1jZW50ZXIge1xuICAtbXMtZmxleC1saW5lLXBhY2s6IGNlbnRlciAhaW1wb3J0YW50O1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbn1cblxuLmFsaWduLWNvbnRlbnQtYmV0d2VlbiB7XG4gIC1tcy1mbGV4LWxpbmUtcGFjazoganVzdGlmeSAhaW1wb3J0YW50O1xuICBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1jb250ZW50LWFyb3VuZCB7XG4gIC1tcy1mbGV4LWxpbmUtcGFjazogZGlzdHJpYnV0ZSAhaW1wb3J0YW50O1xuICBhbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDtcbn1cblxuLmFsaWduLWNvbnRlbnQtc3RyZXRjaCB7XG4gIC1tcy1mbGV4LWxpbmUtcGFjazogc3RyZXRjaCAhaW1wb3J0YW50O1xuICBhbGlnbi1jb250ZW50OiBzdHJldGNoICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1zZWxmLWF1dG8ge1xuICAtbXMtZmxleC1pdGVtLWFsaWduOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGFsaWduLXNlbGY6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmFsaWduLXNlbGYtc3RhcnQge1xuICAtbXMtZmxleC1pdGVtLWFsaWduOiBzdGFydCAhaW1wb3J0YW50O1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1zZWxmLWVuZCB7XG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGVuZCAhaW1wb3J0YW50O1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZCAhaW1wb3J0YW50O1xufVxuXG4uYWxpZ24tc2VsZi1jZW50ZXIge1xuICAtbXMtZmxleC1pdGVtLWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgYWxpZ24tc2VsZjogY2VudGVyICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1zZWxmLWJhc2VsaW5lIHtcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogYmFzZWxpbmUgIWltcG9ydGFudDtcbiAgYWxpZ24tc2VsZjogYmFzZWxpbmUgIWltcG9ydGFudDtcbn1cblxuLmFsaWduLXNlbGYtc3RyZXRjaCB7XG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246IHN0cmV0Y2ggIWltcG9ydGFudDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLmZsZXgtc20tcm93IHtcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdyAhaW1wb3J0YW50O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1zbS1jb2x1bW4ge1xuICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LXNtLXJvdy1yZXZlcnNlIHtcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtc20tY29sdW1uLXJldmVyc2Uge1xuICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2UgIWltcG9ydGFudDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2UgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1zbS13cmFwIHtcbiAgICAtbXMtZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7XG4gICAgZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtc20tbm93cmFwIHtcbiAgICAtbXMtZmxleC13cmFwOiBub3dyYXAgIWltcG9ydGFudDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LXNtLXdyYXAtcmV2ZXJzZSB7XG4gICAgLW1zLWZsZXgtd3JhcDogd3JhcC1yZXZlcnNlICFpbXBvcnRhbnQ7XG4gICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2UgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1zbS1maWxsIHtcbiAgICAtbXMtZmxleDogMSAxIGF1dG8gIWltcG9ydGFudDtcbiAgICBmbGV4OiAxIDEgYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LXNtLWdyb3ctMCB7XG4gICAgLW1zLWZsZXgtcG9zaXRpdmU6IDAgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDAgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1zbS1ncm93LTEge1xuICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAxICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtc20tc2hyaW5rLTAge1xuICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwICFpbXBvcnRhbnQ7XG4gICAgZmxleC1zaHJpbms6IDAgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1zbS1zaHJpbmstMSB7XG4gICAgLW1zLWZsZXgtbmVnYXRpdmU6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4LXNocmluazogMSAhaW1wb3J0YW50O1xuICB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQtc20tc3RhcnQge1xuICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0ICFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmp1c3RpZnktY29udGVudC1zbS1lbmQge1xuICAgIC1tcy1mbGV4LXBhY2s6IGVuZCAhaW1wb3J0YW50O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDtcbiAgfVxuICAuanVzdGlmeS1jb250ZW50LXNtLWNlbnRlciB7XG4gICAgLW1zLWZsZXgtcGFjazogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxuICAuanVzdGlmeS1jb250ZW50LXNtLWJldHdlZW4ge1xuICAgIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnkgIWltcG9ydGFudDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDtcbiAgfVxuICAuanVzdGlmeS1jb250ZW50LXNtLWFyb3VuZCB7XG4gICAgLW1zLWZsZXgtcGFjazogZGlzdHJpYnV0ZSAhaW1wb3J0YW50O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWl0ZW1zLXNtLXN0YXJ0IHtcbiAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQgIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1pdGVtcy1zbS1lbmQge1xuICAgIC1tcy1mbGV4LWFsaWduOiBlbmQgIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24taXRlbXMtc20tY2VudGVyIHtcbiAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1pdGVtcy1zbS1iYXNlbGluZSB7XG4gICAgLW1zLWZsZXgtYWxpZ246IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWl0ZW1zLXNtLXN0cmV0Y2gge1xuICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2ggIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC1zbS1zdGFydCB7XG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdGFydCAhaW1wb3J0YW50O1xuICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC1zbS1lbmQge1xuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogZW5kICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24tY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC1zbS1jZW50ZXIge1xuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWNvbnRlbnQtc20tYmV0d2VlbiB7XG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1jb250ZW50LXNtLWFyb3VuZCB7XG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBkaXN0cmlidXRlICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWNvbnRlbnQtc20tc3RyZXRjaCB7XG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdHJldGNoICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24tY29udGVudDogc3RyZXRjaCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1zZWxmLXNtLWF1dG8ge1xuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGF1dG8gIWltcG9ydGFudDtcbiAgICBhbGlnbi1zZWxmOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYtc20tc3RhcnQge1xuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IHN0YXJ0ICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1zZWxmLXNtLWVuZCB7XG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogZW5kICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tc2VsZi1zbS1jZW50ZXIge1xuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGFsaWduLXNlbGY6IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1zZWxmLXNtLWJhc2VsaW5lIHtcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBiYXNlbGluZSAhaW1wb3J0YW50O1xuICAgIGFsaWduLXNlbGY6IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYtc20tc3RyZXRjaCB7XG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaCAhaW1wb3J0YW50O1xuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2ggIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmZsZXgtbWQtcm93IHtcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdyAhaW1wb3J0YW50O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1tZC1jb2x1bW4ge1xuICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LW1kLXJvdy1yZXZlcnNlIHtcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtbWQtY29sdW1uLXJldmVyc2Uge1xuICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2UgIWltcG9ydGFudDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2UgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1tZC13cmFwIHtcbiAgICAtbXMtZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7XG4gICAgZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtbWQtbm93cmFwIHtcbiAgICAtbXMtZmxleC13cmFwOiBub3dyYXAgIWltcG9ydGFudDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LW1kLXdyYXAtcmV2ZXJzZSB7XG4gICAgLW1zLWZsZXgtd3JhcDogd3JhcC1yZXZlcnNlICFpbXBvcnRhbnQ7XG4gICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2UgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1tZC1maWxsIHtcbiAgICAtbXMtZmxleDogMSAxIGF1dG8gIWltcG9ydGFudDtcbiAgICBmbGV4OiAxIDEgYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LW1kLWdyb3ctMCB7XG4gICAgLW1zLWZsZXgtcG9zaXRpdmU6IDAgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDAgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1tZC1ncm93LTEge1xuICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAxICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtbWQtc2hyaW5rLTAge1xuICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwICFpbXBvcnRhbnQ7XG4gICAgZmxleC1zaHJpbms6IDAgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1tZC1zaHJpbmstMSB7XG4gICAgLW1zLWZsZXgtbmVnYXRpdmU6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4LXNocmluazogMSAhaW1wb3J0YW50O1xuICB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQtbWQtc3RhcnQge1xuICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0ICFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmp1c3RpZnktY29udGVudC1tZC1lbmQge1xuICAgIC1tcy1mbGV4LXBhY2s6IGVuZCAhaW1wb3J0YW50O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDtcbiAgfVxuICAuanVzdGlmeS1jb250ZW50LW1kLWNlbnRlciB7XG4gICAgLW1zLWZsZXgtcGFjazogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxuICAuanVzdGlmeS1jb250ZW50LW1kLWJldHdlZW4ge1xuICAgIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnkgIWltcG9ydGFudDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDtcbiAgfVxuICAuanVzdGlmeS1jb250ZW50LW1kLWFyb3VuZCB7XG4gICAgLW1zLWZsZXgtcGFjazogZGlzdHJpYnV0ZSAhaW1wb3J0YW50O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWl0ZW1zLW1kLXN0YXJ0IHtcbiAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQgIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1pdGVtcy1tZC1lbmQge1xuICAgIC1tcy1mbGV4LWFsaWduOiBlbmQgIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24taXRlbXMtbWQtY2VudGVyIHtcbiAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1pdGVtcy1tZC1iYXNlbGluZSB7XG4gICAgLW1zLWZsZXgtYWxpZ246IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWl0ZW1zLW1kLXN0cmV0Y2gge1xuICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2ggIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC1tZC1zdGFydCB7XG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdGFydCAhaW1wb3J0YW50O1xuICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC1tZC1lbmQge1xuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogZW5kICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24tY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC1tZC1jZW50ZXIge1xuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWNvbnRlbnQtbWQtYmV0d2VlbiB7XG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1jb250ZW50LW1kLWFyb3VuZCB7XG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBkaXN0cmlidXRlICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWNvbnRlbnQtbWQtc3RyZXRjaCB7XG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdHJldGNoICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24tY29udGVudDogc3RyZXRjaCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1zZWxmLW1kLWF1dG8ge1xuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGF1dG8gIWltcG9ydGFudDtcbiAgICBhbGlnbi1zZWxmOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYtbWQtc3RhcnQge1xuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IHN0YXJ0ICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1zZWxmLW1kLWVuZCB7XG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogZW5kICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tc2VsZi1tZC1jZW50ZXIge1xuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGFsaWduLXNlbGY6IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1zZWxmLW1kLWJhc2VsaW5lIHtcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBiYXNlbGluZSAhaW1wb3J0YW50O1xuICAgIGFsaWduLXNlbGY6IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYtbWQtc3RyZXRjaCB7XG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaCAhaW1wb3J0YW50O1xuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2ggIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmZsZXgtbGctcm93IHtcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdyAhaW1wb3J0YW50O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1sZy1jb2x1bW4ge1xuICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LWxnLXJvdy1yZXZlcnNlIHtcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtbGctY29sdW1uLXJldmVyc2Uge1xuICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2UgIWltcG9ydGFudDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2UgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1sZy13cmFwIHtcbiAgICAtbXMtZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7XG4gICAgZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtbGctbm93cmFwIHtcbiAgICAtbXMtZmxleC13cmFwOiBub3dyYXAgIWltcG9ydGFudDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LWxnLXdyYXAtcmV2ZXJzZSB7XG4gICAgLW1zLWZsZXgtd3JhcDogd3JhcC1yZXZlcnNlICFpbXBvcnRhbnQ7XG4gICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2UgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1sZy1maWxsIHtcbiAgICAtbXMtZmxleDogMSAxIGF1dG8gIWltcG9ydGFudDtcbiAgICBmbGV4OiAxIDEgYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LWxnLWdyb3ctMCB7XG4gICAgLW1zLWZsZXgtcG9zaXRpdmU6IDAgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDAgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1sZy1ncm93LTEge1xuICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAxICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtbGctc2hyaW5rLTAge1xuICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwICFpbXBvcnRhbnQ7XG4gICAgZmxleC1zaHJpbms6IDAgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1sZy1zaHJpbmstMSB7XG4gICAgLW1zLWZsZXgtbmVnYXRpdmU6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4LXNocmluazogMSAhaW1wb3J0YW50O1xuICB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQtbGctc3RhcnQge1xuICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0ICFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmp1c3RpZnktY29udGVudC1sZy1lbmQge1xuICAgIC1tcy1mbGV4LXBhY2s6IGVuZCAhaW1wb3J0YW50O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDtcbiAgfVxuICAuanVzdGlmeS1jb250ZW50LWxnLWNlbnRlciB7XG4gICAgLW1zLWZsZXgtcGFjazogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxuICAuanVzdGlmeS1jb250ZW50LWxnLWJldHdlZW4ge1xuICAgIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnkgIWltcG9ydGFudDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDtcbiAgfVxuICAuanVzdGlmeS1jb250ZW50LWxnLWFyb3VuZCB7XG4gICAgLW1zLWZsZXgtcGFjazogZGlzdHJpYnV0ZSAhaW1wb3J0YW50O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWl0ZW1zLWxnLXN0YXJ0IHtcbiAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQgIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1pdGVtcy1sZy1lbmQge1xuICAgIC1tcy1mbGV4LWFsaWduOiBlbmQgIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24taXRlbXMtbGctY2VudGVyIHtcbiAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1pdGVtcy1sZy1iYXNlbGluZSB7XG4gICAgLW1zLWZsZXgtYWxpZ246IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWl0ZW1zLWxnLXN0cmV0Y2gge1xuICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2ggIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC1sZy1zdGFydCB7XG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdGFydCAhaW1wb3J0YW50O1xuICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC1sZy1lbmQge1xuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogZW5kICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24tY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC1sZy1jZW50ZXIge1xuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWNvbnRlbnQtbGctYmV0d2VlbiB7XG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1jb250ZW50LWxnLWFyb3VuZCB7XG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBkaXN0cmlidXRlICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWNvbnRlbnQtbGctc3RyZXRjaCB7XG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdHJldGNoICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24tY29udGVudDogc3RyZXRjaCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1zZWxmLWxnLWF1dG8ge1xuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGF1dG8gIWltcG9ydGFudDtcbiAgICBhbGlnbi1zZWxmOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYtbGctc3RhcnQge1xuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IHN0YXJ0ICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1zZWxmLWxnLWVuZCB7XG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogZW5kICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tc2VsZi1sZy1jZW50ZXIge1xuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGFsaWduLXNlbGY6IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1zZWxmLWxnLWJhc2VsaW5lIHtcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBiYXNlbGluZSAhaW1wb3J0YW50O1xuICAgIGFsaWduLXNlbGY6IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYtbGctc3RyZXRjaCB7XG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaCAhaW1wb3J0YW50O1xuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2ggIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5mbGV4LXhsLXJvdyB7XG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgteGwtY29sdW1uIHtcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC14bC1yb3ctcmV2ZXJzZSB7XG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZSAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LXhsLWNvbHVtbi1yZXZlcnNlIHtcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgteGwtd3JhcCB7XG4gICAgLW1zLWZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50O1xuICAgIGZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LXhsLW5vd3JhcCB7XG4gICAgLW1zLWZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7XG4gICAgZmxleC13cmFwOiBub3dyYXAgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC14bC13cmFwLXJldmVyc2Uge1xuICAgIC1tcy1mbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZSAhaW1wb3J0YW50O1xuICAgIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgteGwtZmlsbCB7XG4gICAgLW1zLWZsZXg6IDEgMSBhdXRvICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAxIGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC14bC1ncm93LTAge1xuICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAwICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgteGwtZ3Jvdy0xIHtcbiAgICAtbXMtZmxleC1wb3NpdGl2ZTogMSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMSAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LXhsLXNocmluay0wIHtcbiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMCAhaW1wb3J0YW50O1xuICAgIGZsZXgtc2hyaW5rOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgteGwtc2hyaW5rLTEge1xuICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleC1zaHJpbms6IDEgIWltcG9ydGFudDtcbiAgfVxuICAuanVzdGlmeS1jb250ZW50LXhsLXN0YXJ0IHtcbiAgICAtbXMtZmxleC1wYWNrOiBzdGFydCAhaW1wb3J0YW50O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQteGwtZW5kIHtcbiAgICAtbXMtZmxleC1wYWNrOiBlbmQgIWltcG9ydGFudDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmp1c3RpZnktY29udGVudC14bC1jZW50ZXIge1xuICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmp1c3RpZnktY29udGVudC14bC1iZXR3ZWVuIHtcbiAgICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmp1c3RpZnktY29udGVudC14bC1hcm91bmQge1xuICAgIC1tcy1mbGV4LXBhY2s6IGRpc3RyaWJ1dGUgIWltcG9ydGFudDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1pdGVtcy14bC1zdGFydCB7XG4gICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0ICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24taXRlbXMteGwtZW5kIHtcbiAgICAtbXMtZmxleC1hbGlnbjogZW5kICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWl0ZW1zLXhsLWNlbnRlciB7XG4gICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24taXRlbXMteGwtYmFzZWxpbmUge1xuICAgIC1tcy1mbGV4LWFsaWduOiBiYXNlbGluZSAhaW1wb3J0YW50O1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1pdGVtcy14bC1zdHJldGNoIHtcbiAgICAtbXMtZmxleC1hbGlnbjogc3RyZXRjaCAhaW1wb3J0YW50O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWNvbnRlbnQteGwtc3RhcnQge1xuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogc3RhcnQgIWltcG9ydGFudDtcbiAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWNvbnRlbnQteGwtZW5kIHtcbiAgICAtbXMtZmxleC1saW5lLXBhY2s6IGVuZCAhaW1wb3J0YW50O1xuICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWNvbnRlbnQteGwtY2VudGVyIHtcbiAgICAtbXMtZmxleC1saW5lLXBhY2s6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1jb250ZW50LXhsLWJldHdlZW4ge1xuICAgIC1tcy1mbGV4LWxpbmUtcGFjazoganVzdGlmeSAhaW1wb3J0YW50O1xuICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC14bC1hcm91bmQge1xuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogZGlzdHJpYnV0ZSAhaW1wb3J0YW50O1xuICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1jb250ZW50LXhsLXN0cmV0Y2gge1xuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogc3RyZXRjaCAhaW1wb3J0YW50O1xuICAgIGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2ggIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tc2VsZi14bC1hdXRvIHtcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24tc2VsZjogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1zZWxmLXhsLXN0YXJ0IHtcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBzdGFydCAhaW1wb3J0YW50O1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tc2VsZi14bC1lbmQge1xuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGVuZCAhaW1wb3J0YW50O1xuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYteGwtY2VudGVyIHtcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tc2VsZi14bC1iYXNlbGluZSB7XG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogYmFzZWxpbmUgIWltcG9ydGFudDtcbiAgICBhbGlnbi1zZWxmOiBiYXNlbGluZSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1zZWxmLXhsLXN0cmV0Y2gge1xuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IHN0cmV0Y2ggIWltcG9ydGFudDtcbiAgICBhbGlnbi1zZWxmOiBzdHJldGNoICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmZsb2F0LWxlZnQge1xuICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xufVxuXG4uZmxvYXQtcmlnaHQge1xuICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbn1cblxuLmZsb2F0LW5vbmUge1xuICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLmZsb2F0LXNtLWxlZnQge1xuICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsb2F0LXNtLXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuICAuZmxvYXQtc20tbm9uZSB7XG4gICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmZsb2F0LW1kLWxlZnQge1xuICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsb2F0LW1kLXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuICAuZmxvYXQtbWQtbm9uZSB7XG4gICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmZsb2F0LWxnLWxlZnQge1xuICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsb2F0LWxnLXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuICAuZmxvYXQtbGctbm9uZSB7XG4gICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5mbG9hdC14bC1sZWZ0IHtcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICB9XG4gIC5mbG9hdC14bC1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsb2F0LXhsLW5vbmUge1xuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLnBvc2l0aW9uLXN0YXRpYyB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbn1cblxuLnBvc2l0aW9uLXJlbGF0aXZlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG59XG5cbi5wb3NpdGlvbi1hYnNvbHV0ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xufVxuXG4ucG9zaXRpb24tZml4ZWQge1xuICBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDtcbn1cblxuLnBvc2l0aW9uLXN0aWNreSB7XG4gIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreSAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogc3RpY2t5ICFpbXBvcnRhbnQ7XG59XG5cbi5maXhlZC10b3Age1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMzA7XG59XG5cbi5maXhlZC1ib3R0b20ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMzA7XG59XG5cbkBzdXBwb3J0cyAoKHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreSkgb3IgKHBvc2l0aW9uOiBzdGlja3kpKSB7XG4gIC5zdGlja3ktdG9wIHtcbiAgICBwb3NpdGlvbjogLXdlYmtpdC1zdGlja3k7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICB0b3A6IDA7XG4gICAgei1pbmRleDogMTAyMDtcbiAgfVxufVxuXG4uc3Itb25seSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGJvcmRlcjogMDtcbn1cblxuLnNyLW9ubHktZm9jdXNhYmxlOmFjdGl2ZSwgLnNyLW9ubHktZm9jdXNhYmxlOmZvY3VzIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbi5zaGFkb3ctc20ge1xuICBib3gtc2hhZG93OiAwIDAuMTI1cmVtIDAuMjVyZW0gcmdiYSgwLCAwLCAwLCAwLjA3NSkgIWltcG9ydGFudDtcbn1cblxuLnNoYWRvdyB7XG4gIGJveC1zaGFkb3c6IDAgMC41cmVtIDFyZW0gcmdiYSgwLCAwLCAwLCAwLjE1KSAhaW1wb3J0YW50O1xufVxuXG4uc2hhZG93LWxnIHtcbiAgYm94LXNoYWRvdzogMCAxcmVtIDNyZW0gcmdiYSgwLCAwLCAwLCAwLjE3NSkgIWltcG9ydGFudDtcbn1cblxuLnNoYWRvdy1ub25lIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4udy0yNSB7XG4gIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbn1cblxuLnctNTAge1xuICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG59XG5cbi53LTc1IHtcbiAgd2lkdGg6IDc1JSAhaW1wb3J0YW50O1xufVxuXG4udy0xMDAge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4udy1hdXRvIHtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmgtMjUge1xuICBoZWlnaHQ6IDI1JSAhaW1wb3J0YW50O1xufVxuXG4uaC01MCB7XG4gIGhlaWdodDogNTAlICFpbXBvcnRhbnQ7XG59XG5cbi5oLTc1IHtcbiAgaGVpZ2h0OiA3NSUgIWltcG9ydGFudDtcbn1cblxuLmgtMTAwIHtcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbi5oLWF1dG8ge1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLm13LTEwMCB7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4ubWgtMTAwIHtcbiAgbWF4LWhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4ubS0wIHtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5tdC0wLFxuLm15LTAge1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5tci0wLFxuLm14LTAge1xuICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cblxuLm1iLTAsXG4ubXktMCB7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLm1sLTAsXG4ubXgtMCB7XG4gIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi5tLTEge1xuICBtYXJnaW46IDAuMjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm10LTEsXG4ubXktMSB7XG4gIG1hcmdpbi10b3A6IDAuMjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm1yLTEsXG4ubXgtMSB7XG4gIG1hcmdpbi1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubWItMSxcbi5teS0xIHtcbiAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubWwtMSxcbi5teC0xIHtcbiAgbWFyZ2luLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm0tMiB7XG4gIG1hcmdpbjogMC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tdC0yLFxuLm15LTIge1xuICBtYXJnaW4tdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm1yLTIsXG4ubXgtMiB7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tYi0yLFxuLm15LTIge1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm1sLTIsXG4ubXgtMiB7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm0tMyB7XG4gIG1hcmdpbjogMXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubXQtMyxcbi5teS0zIHtcbiAgbWFyZ2luLXRvcDogMXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubXItMyxcbi5teC0zIHtcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tYi0zLFxuLm15LTMge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tbC0zLFxuLm14LTMge1xuICBtYXJnaW4tbGVmdDogMXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubS00IHtcbiAgbWFyZ2luOiAxLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm10LTQsXG4ubXktNCB7XG4gIG1hcmdpbi10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubXItNCxcbi5teC00IHtcbiAgbWFyZ2luLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm1iLTQsXG4ubXktNCB7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubWwtNCxcbi5teC00IHtcbiAgbWFyZ2luLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubS01IHtcbiAgbWFyZ2luOiAzcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tdC01LFxuLm15LTUge1xuICBtYXJnaW4tdG9wOiAzcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tci01LFxuLm14LTUge1xuICBtYXJnaW4tcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcbn1cblxuLm1iLTUsXG4ubXktNSB7XG4gIG1hcmdpbi1ib3R0b206IDNyZW0gIWltcG9ydGFudDtcbn1cblxuLm1sLTUsXG4ubXgtNSB7XG4gIG1hcmdpbi1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wLTAge1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5wdC0wLFxuLnB5LTAge1xuICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xufVxuXG4ucHItMCxcbi5weC0wIHtcbiAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuXG4ucGItMCxcbi5weS0wIHtcbiAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLnBsLTAsXG4ucHgtMCB7XG4gIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xufVxuXG4ucC0xIHtcbiAgcGFkZGluZzogMC4yNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucHQtMSxcbi5weS0xIHtcbiAgcGFkZGluZy10b3A6IDAuMjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnByLTEsXG4ucHgtMSB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnBiLTEsXG4ucHktMSB7XG4gIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wbC0xLFxuLnB4LTEge1xuICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnAtMiB7XG4gIHBhZGRpbmc6IDAuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucHQtMixcbi5weS0yIHtcbiAgcGFkZGluZy10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucHItMixcbi5weC0yIHtcbiAgcGFkZGluZy1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wYi0yLFxuLnB5LTIge1xuICBwYWRkaW5nLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wbC0yLFxuLnB4LTIge1xuICBwYWRkaW5nLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucC0zIHtcbiAgcGFkZGluZzogMXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucHQtMyxcbi5weS0zIHtcbiAgcGFkZGluZy10b3A6IDFyZW0gIWltcG9ydGFudDtcbn1cblxuLnByLTMsXG4ucHgtMyB7XG4gIHBhZGRpbmctcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcbn1cblxuLnBiLTMsXG4ucHktMyB7XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wbC0zLFxuLnB4LTMge1xuICBwYWRkaW5nLWxlZnQ6IDFyZW0gIWltcG9ydGFudDtcbn1cblxuLnAtNCB7XG4gIHBhZGRpbmc6IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucHQtNCxcbi5weS00IHtcbiAgcGFkZGluZy10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucHItNCxcbi5weC00IHtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wYi00LFxuLnB5LTQge1xuICBwYWRkaW5nLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wbC00LFxuLnB4LTQge1xuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucC01IHtcbiAgcGFkZGluZzogM3JlbSAhaW1wb3J0YW50O1xufVxuXG4ucHQtNSxcbi5weS01IHtcbiAgcGFkZGluZy10b3A6IDNyZW0gIWltcG9ydGFudDtcbn1cblxuLnByLTUsXG4ucHgtNSB7XG4gIHBhZGRpbmctcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcbn1cblxuLnBiLTUsXG4ucHktNSB7XG4gIHBhZGRpbmctYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wbC01LFxuLnB4LTUge1xuICBwYWRkaW5nLWxlZnQ6IDNyZW0gIWltcG9ydGFudDtcbn1cblxuLm0tYXV0byB7XG4gIG1hcmdpbjogYXV0byAhaW1wb3J0YW50O1xufVxuXG4ubXQtYXV0byxcbi5teS1hdXRvIHtcbiAgbWFyZ2luLXRvcDogYXV0byAhaW1wb3J0YW50O1xufVxuXG4ubXItYXV0byxcbi5teC1hdXRvIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi5tYi1hdXRvLFxuLm15LWF1dG8ge1xuICBtYXJnaW4tYm90dG9tOiBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi5tbC1hdXRvLFxuLm14LWF1dG8ge1xuICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLm0tc20tMCB7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LXNtLTAsXG4gIC5teS1zbS0wIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1yLXNtLTAsXG4gIC5teC1zbS0wIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxuICAubWItc20tMCxcbiAgLm15LXNtLTAge1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxuICAubWwtc20tMCxcbiAgLm14LXNtLTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm0tc20tMSB7XG4gICAgbWFyZ2luOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LXNtLTEsXG4gIC5teS1zbS0xIHtcbiAgICBtYXJnaW4tdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1yLXNtLTEsXG4gIC5teC1zbS0xIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWItc20tMSxcbiAgLm15LXNtLTEge1xuICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWwtc20tMSxcbiAgLm14LXNtLTEge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm0tc20tMiB7XG4gICAgbWFyZ2luOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXQtc20tMixcbiAgLm15LXNtLTIge1xuICAgIG1hcmdpbi10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tci1zbS0yLFxuICAubXgtc20tMiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWItc20tMixcbiAgLm15LXNtLTIge1xuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tbC1zbS0yLFxuICAubXgtc20tMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tLXNtLTMge1xuICAgIG1hcmdpbjogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC1zbS0zLFxuICAubXktc20tMyB7XG4gICAgbWFyZ2luLXRvcDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tci1zbS0zLFxuICAubXgtc20tMyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLXNtLTMsXG4gIC5teS1zbS0zIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1sLXNtLTMsXG4gIC5teC1zbS0zIHtcbiAgICBtYXJnaW4tbGVmdDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tLXNtLTQge1xuICAgIG1hcmdpbjogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LXNtLTQsXG4gIC5teS1zbS00IHtcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXItc20tNCxcbiAgLm14LXNtLTQge1xuICAgIG1hcmdpbi1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLXNtLTQsXG4gIC5teS1zbS00IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWwtc20tNCxcbiAgLm14LXNtLTQge1xuICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubS1zbS01IHtcbiAgICBtYXJnaW46IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXQtc20tNSxcbiAgLm15LXNtLTUge1xuICAgIG1hcmdpbi10b3A6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXItc20tNSxcbiAgLm14LXNtLTUge1xuICAgIG1hcmdpbi1yaWdodDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi1zbS01LFxuICAubXktc20tNSB7XG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tbC1zbS01LFxuICAubXgtc20tNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucC1zbS0wIHtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB0LXNtLTAsXG4gIC5weS1zbS0wIHtcbiAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5wci1zbS0wLFxuICAucHgtc20tMCB7XG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5wYi1zbS0wLFxuICAucHktc20tMCB7XG4gICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxuICAucGwtc20tMCxcbiAgLnB4LXNtLTAge1xuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5wLXNtLTEge1xuICAgIHBhZGRpbmc6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHQtc20tMSxcbiAgLnB5LXNtLTEge1xuICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnByLXNtLTEsXG4gIC5weC1zbS0xIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBiLXNtLTEsXG4gIC5weS1zbS0xIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wbC1zbS0xLFxuICAucHgtc20tMSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnAtc20tMiB7XG4gICAgcGFkZGluZzogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB0LXNtLTIsXG4gIC5weS1zbS0yIHtcbiAgICBwYWRkaW5nLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnByLXNtLTIsXG4gIC5weC1zbS0yIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGItc20tMixcbiAgLnB5LXNtLTIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGwtc20tMixcbiAgLnB4LXNtLTIge1xuICAgIHBhZGRpbmctbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnAtc20tMyB7XG4gICAgcGFkZGluZzogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wdC1zbS0zLFxuICAucHktc20tMyB7XG4gICAgcGFkZGluZy10b3A6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHItc20tMyxcbiAgLnB4LXNtLTMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGItc20tMyxcbiAgLnB5LXNtLTMge1xuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBsLXNtLTMsXG4gIC5weC1zbS0zIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucC1zbS00IHtcbiAgICBwYWRkaW5nOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHQtc20tNCxcbiAgLnB5LXNtLTQge1xuICAgIHBhZGRpbmctdG9wOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHItc20tNCxcbiAgLnB4LXNtLTQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wYi1zbS00LFxuICAucHktc20tNCB7XG4gICAgcGFkZGluZy1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wbC1zbS00LFxuICAucHgtc20tNCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucC1zbS01IHtcbiAgICBwYWRkaW5nOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB0LXNtLTUsXG4gIC5weS1zbS01IHtcbiAgICBwYWRkaW5nLXRvcDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wci1zbS01LFxuICAucHgtc20tNSB7XG4gICAgcGFkZGluZy1yaWdodDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wYi1zbS01LFxuICAucHktc20tNSB7XG4gICAgcGFkZGluZy1ib3R0b206IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGwtc20tNSxcbiAgLnB4LXNtLTUge1xuICAgIHBhZGRpbmctbGVmdDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tLXNtLWF1dG8ge1xuICAgIG1hcmdpbjogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC1zbS1hdXRvLFxuICAubXktc20tYXV0byB7XG4gICAgbWFyZ2luLXRvcDogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5tci1zbS1hdXRvLFxuICAubXgtc20tYXV0byB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLXNtLWF1dG8sXG4gIC5teS1zbS1hdXRvIHtcbiAgICBtYXJnaW4tYm90dG9tOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1sLXNtLWF1dG8sXG4gIC5teC1zbS1hdXRvIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubS1tZC0wIHtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgfVxuICAubXQtbWQtMCxcbiAgLm15LW1kLTAge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgfVxuICAubXItbWQtMCxcbiAgLm14LW1kLTAge1xuICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi1tZC0wLFxuICAubXktbWQtMCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5tbC1tZC0wLFxuICAubXgtbWQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgfVxuICAubS1tZC0xIHtcbiAgICBtYXJnaW46IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXQtbWQtMSxcbiAgLm15LW1kLTEge1xuICAgIG1hcmdpbi10b3A6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXItbWQtMSxcbiAgLm14LW1kLTEge1xuICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi1tZC0xLFxuICAubXktbWQtMSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tbC1tZC0xLFxuICAubXgtbWQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubS1tZC0yIHtcbiAgICBtYXJnaW46IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC1tZC0yLFxuICAubXktbWQtMiB7XG4gICAgbWFyZ2luLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1yLW1kLTIsXG4gIC5teC1tZC0yIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi1tZC0yLFxuICAubXktbWQtMiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1sLW1kLTIsXG4gIC5teC1tZC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm0tbWQtMyB7XG4gICAgbWFyZ2luOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LW1kLTMsXG4gIC5teS1tZC0zIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1yLW1kLTMsXG4gIC5teC1tZC0zIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWItbWQtMyxcbiAgLm15LW1kLTMge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWwtbWQtMyxcbiAgLm14LW1kLTMge1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm0tbWQtNCB7XG4gICAgbWFyZ2luOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXQtbWQtNCxcbiAgLm15LW1kLTQge1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tci1tZC00LFxuICAubXgtbWQtNCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWItbWQtNCxcbiAgLm15LW1kLTQge1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tbC1tZC00LFxuICAubXgtbWQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tLW1kLTUge1xuICAgIG1hcmdpbjogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC1tZC01LFxuICAubXktbWQtNSB7XG4gICAgbWFyZ2luLXRvcDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tci1tZC01LFxuICAubXgtbWQtNSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLW1kLTUsXG4gIC5teS1tZC01IHtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1sLW1kLTUsXG4gIC5teC1tZC01IHtcbiAgICBtYXJnaW4tbGVmdDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wLW1kLTAge1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgfVxuICAucHQtbWQtMCxcbiAgLnB5LW1kLTAge1xuICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnByLW1kLTAsXG4gIC5weC1tZC0wIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBiLW1kLTAsXG4gIC5weS1tZC0wIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5wbC1tZC0wLFxuICAucHgtbWQtMCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnAtbWQtMSB7XG4gICAgcGFkZGluZzogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wdC1tZC0xLFxuICAucHktbWQtMSB7XG4gICAgcGFkZGluZy10b3A6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHItbWQtMSxcbiAgLnB4LW1kLTEge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGItbWQtMSxcbiAgLnB5LW1kLTEge1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBsLW1kLTEsXG4gIC5weC1tZC0xIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucC1tZC0yIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHQtbWQtMixcbiAgLnB5LW1kLTIge1xuICAgIHBhZGRpbmctdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHItbWQtMixcbiAgLnB4LW1kLTIge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wYi1tZC0yLFxuICAucHktbWQtMiB7XG4gICAgcGFkZGluZy1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wbC1tZC0yLFxuICAucHgtbWQtMiB7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucC1tZC0zIHtcbiAgICBwYWRkaW5nOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB0LW1kLTMsXG4gIC5weS1tZC0zIHtcbiAgICBwYWRkaW5nLXRvcDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wci1tZC0zLFxuICAucHgtbWQtMyB7XG4gICAgcGFkZGluZy1yaWdodDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wYi1tZC0zLFxuICAucHktbWQtMyB7XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGwtbWQtMyxcbiAgLnB4LW1kLTMge1xuICAgIHBhZGRpbmctbGVmdDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wLW1kLTQge1xuICAgIHBhZGRpbmc6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wdC1tZC00LFxuICAucHktbWQtNCB7XG4gICAgcGFkZGluZy10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wci1tZC00LFxuICAucHgtbWQtNCB7XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBiLW1kLTQsXG4gIC5weS1tZC00IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBsLW1kLTQsXG4gIC5weC1tZC00IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wLW1kLTUge1xuICAgIHBhZGRpbmc6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHQtbWQtNSxcbiAgLnB5LW1kLTUge1xuICAgIHBhZGRpbmctdG9wOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnByLW1kLTUsXG4gIC5weC1tZC01IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBiLW1kLTUsXG4gIC5weS1tZC01IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wbC1tZC01LFxuICAucHgtbWQtNSB7XG4gICAgcGFkZGluZy1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm0tbWQtYXV0byB7XG4gICAgbWFyZ2luOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LW1kLWF1dG8sXG4gIC5teS1tZC1hdXRvIHtcbiAgICBtYXJnaW4tdG9wOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1yLW1kLWF1dG8sXG4gIC5teC1tZC1hdXRvIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAubWItbWQtYXV0byxcbiAgLm15LW1kLWF1dG8ge1xuICAgIG1hcmdpbi1ib3R0b206IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAubWwtbWQtYXV0byxcbiAgLm14LW1kLWF1dG8ge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5tLWxnLTAge1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC1sZy0wLFxuICAubXktbGctMCB7XG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5tci1sZy0wLFxuICAubXgtbGctMCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLWxnLTAsXG4gIC5teS1sZy0wIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1sLWxnLTAsXG4gIC5teC1sZy0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5tLWxnLTEge1xuICAgIG1hcmdpbjogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC1sZy0xLFxuICAubXktbGctMSB7XG4gICAgbWFyZ2luLXRvcDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tci1sZy0xLFxuICAubXgtbGctMSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLWxnLTEsXG4gIC5teS1sZy0xIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1sLWxnLTEsXG4gIC5teC1sZy0xIHtcbiAgICBtYXJnaW4tbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tLWxnLTIge1xuICAgIG1hcmdpbjogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LWxnLTIsXG4gIC5teS1sZy0yIHtcbiAgICBtYXJnaW4tdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXItbGctMixcbiAgLm14LWxnLTIge1xuICAgIG1hcmdpbi1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLWxnLTIsXG4gIC5teS1sZy0yIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWwtbGctMixcbiAgLm14LWxnLTIge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubS1sZy0zIHtcbiAgICBtYXJnaW46IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXQtbGctMyxcbiAgLm15LWxnLTMge1xuICAgIG1hcmdpbi10b3A6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXItbGctMyxcbiAgLm14LWxnLTMge1xuICAgIG1hcmdpbi1yaWdodDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi1sZy0zLFxuICAubXktbGctMyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tbC1sZy0zLFxuICAubXgtbGctMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubS1sZy00IHtcbiAgICBtYXJnaW46IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC1sZy00LFxuICAubXktbGctNCB7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1yLWxnLTQsXG4gIC5teC1sZy00IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi1sZy00LFxuICAubXktbGctNCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1sLWxnLTQsXG4gIC5teC1sZy00IHtcbiAgICBtYXJnaW4tbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm0tbGctNSB7XG4gICAgbWFyZ2luOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LWxnLTUsXG4gIC5teS1sZy01IHtcbiAgICBtYXJnaW4tdG9wOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1yLWxnLTUsXG4gIC5teC1sZy01IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWItbGctNSxcbiAgLm15LWxnLTUge1xuICAgIG1hcmdpbi1ib3R0b206IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWwtbGctNSxcbiAgLm14LWxnLTUge1xuICAgIG1hcmdpbi1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnAtbGctMCB7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5wdC1sZy0wLFxuICAucHktbGctMCB7XG4gICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgfVxuICAucHItbGctMCxcbiAgLnB4LWxnLTAge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxuICAucGItbGctMCxcbiAgLnB5LWxnLTAge1xuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBsLWxnLTAsXG4gIC5weC1sZy0wIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgfVxuICAucC1sZy0xIHtcbiAgICBwYWRkaW5nOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB0LWxnLTEsXG4gIC5weS1sZy0xIHtcbiAgICBwYWRkaW5nLXRvcDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wci1sZy0xLFxuICAucHgtbGctMSB7XG4gICAgcGFkZGluZy1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wYi1sZy0xLFxuICAucHktbGctMSB7XG4gICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGwtbGctMSxcbiAgLnB4LWxnLTEge1xuICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wLWxnLTIge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wdC1sZy0yLFxuICAucHktbGctMiB7XG4gICAgcGFkZGluZy10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wci1sZy0yLFxuICAucHgtbGctMiB7XG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBiLWxnLTIsXG4gIC5weS1sZy0yIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBsLWxnLTIsXG4gIC5weC1sZy0yIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wLWxnLTMge1xuICAgIHBhZGRpbmc6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHQtbGctMyxcbiAgLnB5LWxnLTMge1xuICAgIHBhZGRpbmctdG9wOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnByLWxnLTMsXG4gIC5weC1sZy0zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBiLWxnLTMsXG4gIC5weS1sZy0zIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wbC1sZy0zLFxuICAucHgtbGctMyB7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnAtbGctNCB7XG4gICAgcGFkZGluZzogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB0LWxnLTQsXG4gIC5weS1sZy00IHtcbiAgICBwYWRkaW5nLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnByLWxnLTQsXG4gIC5weC1sZy00IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGItbGctNCxcbiAgLnB5LWxnLTQge1xuICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGwtbGctNCxcbiAgLnB4LWxnLTQge1xuICAgIHBhZGRpbmctbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnAtbGctNSB7XG4gICAgcGFkZGluZzogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wdC1sZy01LFxuICAucHktbGctNSB7XG4gICAgcGFkZGluZy10b3A6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHItbGctNSxcbiAgLnB4LWxnLTUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGItbGctNSxcbiAgLnB5LWxnLTUge1xuICAgIHBhZGRpbmctYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBsLWxnLTUsXG4gIC5weC1sZy01IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubS1sZy1hdXRvIHtcbiAgICBtYXJnaW46IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAubXQtbGctYXV0byxcbiAgLm15LWxnLWF1dG8ge1xuICAgIG1hcmdpbi10b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAubXItbGctYXV0byxcbiAgLm14LWxnLWF1dG8ge1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi1sZy1hdXRvLFxuICAubXktbGctYXV0byB7XG4gICAgbWFyZ2luLWJvdHRvbTogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5tbC1sZy1hdXRvLFxuICAubXgtbGctYXV0byB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5tLXhsLTAge1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC14bC0wLFxuICAubXkteGwtMCB7XG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5tci14bC0wLFxuICAubXgteGwtMCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLXhsLTAsXG4gIC5teS14bC0wIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1sLXhsLTAsXG4gIC5teC14bC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5tLXhsLTEge1xuICAgIG1hcmdpbjogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC14bC0xLFxuICAubXkteGwtMSB7XG4gICAgbWFyZ2luLXRvcDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tci14bC0xLFxuICAubXgteGwtMSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLXhsLTEsXG4gIC5teS14bC0xIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1sLXhsLTEsXG4gIC5teC14bC0xIHtcbiAgICBtYXJnaW4tbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tLXhsLTIge1xuICAgIG1hcmdpbjogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LXhsLTIsXG4gIC5teS14bC0yIHtcbiAgICBtYXJnaW4tdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXIteGwtMixcbiAgLm14LXhsLTIge1xuICAgIG1hcmdpbi1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLXhsLTIsXG4gIC5teS14bC0yIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWwteGwtMixcbiAgLm14LXhsLTIge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubS14bC0zIHtcbiAgICBtYXJnaW46IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXQteGwtMyxcbiAgLm15LXhsLTMge1xuICAgIG1hcmdpbi10b3A6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXIteGwtMyxcbiAgLm14LXhsLTMge1xuICAgIG1hcmdpbi1yaWdodDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi14bC0zLFxuICAubXkteGwtMyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tbC14bC0zLFxuICAubXgteGwtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubS14bC00IHtcbiAgICBtYXJnaW46IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC14bC00LFxuICAubXkteGwtNCB7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1yLXhsLTQsXG4gIC5teC14bC00IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi14bC00LFxuICAubXkteGwtNCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1sLXhsLTQsXG4gIC5teC14bC00IHtcbiAgICBtYXJnaW4tbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm0teGwtNSB7XG4gICAgbWFyZ2luOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LXhsLTUsXG4gIC5teS14bC01IHtcbiAgICBtYXJnaW4tdG9wOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1yLXhsLTUsXG4gIC5teC14bC01IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWIteGwtNSxcbiAgLm15LXhsLTUge1xuICAgIG1hcmdpbi1ib3R0b206IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWwteGwtNSxcbiAgLm14LXhsLTUge1xuICAgIG1hcmdpbi1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnAteGwtMCB7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5wdC14bC0wLFxuICAucHkteGwtMCB7XG4gICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgfVxuICAucHIteGwtMCxcbiAgLnB4LXhsLTAge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxuICAucGIteGwtMCxcbiAgLnB5LXhsLTAge1xuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBsLXhsLTAsXG4gIC5weC14bC0wIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgfVxuICAucC14bC0xIHtcbiAgICBwYWRkaW5nOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB0LXhsLTEsXG4gIC5weS14bC0xIHtcbiAgICBwYWRkaW5nLXRvcDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wci14bC0xLFxuICAucHgteGwtMSB7XG4gICAgcGFkZGluZy1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wYi14bC0xLFxuICAucHkteGwtMSB7XG4gICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGwteGwtMSxcbiAgLnB4LXhsLTEge1xuICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wLXhsLTIge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wdC14bC0yLFxuICAucHkteGwtMiB7XG4gICAgcGFkZGluZy10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wci14bC0yLFxuICAucHgteGwtMiB7XG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBiLXhsLTIsXG4gIC5weS14bC0yIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBsLXhsLTIsXG4gIC5weC14bC0yIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wLXhsLTMge1xuICAgIHBhZGRpbmc6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHQteGwtMyxcbiAgLnB5LXhsLTMge1xuICAgIHBhZGRpbmctdG9wOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnByLXhsLTMsXG4gIC5weC14bC0zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBiLXhsLTMsXG4gIC5weS14bC0zIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wbC14bC0zLFxuICAucHgteGwtMyB7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnAteGwtNCB7XG4gICAgcGFkZGluZzogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB0LXhsLTQsXG4gIC5weS14bC00IHtcbiAgICBwYWRkaW5nLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnByLXhsLTQsXG4gIC5weC14bC00IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGIteGwtNCxcbiAgLnB5LXhsLTQge1xuICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGwteGwtNCxcbiAgLnB4LXhsLTQge1xuICAgIHBhZGRpbmctbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnAteGwtNSB7XG4gICAgcGFkZGluZzogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wdC14bC01LFxuICAucHkteGwtNSB7XG4gICAgcGFkZGluZy10b3A6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHIteGwtNSxcbiAgLnB4LXhsLTUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGIteGwtNSxcbiAgLnB5LXhsLTUge1xuICAgIHBhZGRpbmctYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBsLXhsLTUsXG4gIC5weC14bC01IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubS14bC1hdXRvIHtcbiAgICBtYXJnaW46IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAubXQteGwtYXV0byxcbiAgLm15LXhsLWF1dG8ge1xuICAgIG1hcmdpbi10b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAubXIteGwtYXV0byxcbiAgLm14LXhsLWF1dG8ge1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi14bC1hdXRvLFxuICAubXkteGwtYXV0byB7XG4gICAgbWFyZ2luLWJvdHRvbTogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5tbC14bC1hdXRvLFxuICAubXgteGwtYXV0byB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxufVxuXG4udGV4dC1tb25vc3BhY2Uge1xuICBmb250LWZhbWlseTogU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcbn1cblxuLnRleHQtanVzdGlmeSB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnkgIWltcG9ydGFudDtcbn1cblxuLnRleHQtbm93cmFwIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xufVxuXG4udGV4dC10cnVuY2F0ZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4udGV4dC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLnRleHQtc20tbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICB9XG4gIC50ZXh0LXNtLXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50O1xuICB9XG4gIC50ZXh0LXNtLWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC50ZXh0LW1kLWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuICAudGV4dC1tZC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuICAudGV4dC1tZC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAudGV4dC1sZy1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnRleHQtbGctcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnRleHQtbGctY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC50ZXh0LXhsLWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuICAudGV4dC14bC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuICAudGV4dC14bC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG59XG5cbi50ZXh0LWxvd2VyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2UgIWltcG9ydGFudDtcbn1cblxuLnRleHQtdXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1jYXBpdGFsaXplIHtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemUgIWltcG9ydGFudDtcbn1cblxuLmZvbnQtd2VpZ2h0LWxpZ2h0IHtcbiAgZm9udC13ZWlnaHQ6IDMwMCAhaW1wb3J0YW50O1xufVxuXG4uZm9udC13ZWlnaHQtbm9ybWFsIHtcbiAgZm9udC13ZWlnaHQ6IDQwMCAhaW1wb3J0YW50O1xufVxuXG4uZm9udC13ZWlnaHQtYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDtcbn1cblxuLmZvbnQtaXRhbGljIHtcbiAgZm9udC1zdHlsZTogaXRhbGljICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LXdoaXRlIHtcbiAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbn1cblxuLnRleHQtcHJpbWFyeSB7XG4gIGNvbG9yOiAjMDA3YmZmICFpbXBvcnRhbnQ7XG59XG5cbmEudGV4dC1wcmltYXJ5OmhvdmVyLCBhLnRleHQtcHJpbWFyeTpmb2N1cyB7XG4gIGNvbG9yOiAjMDA2MmNjICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LXNlY29uZGFyeSB7XG4gIGNvbG9yOiAjNmM3NTdkICFpbXBvcnRhbnQ7XG59XG5cbmEudGV4dC1zZWNvbmRhcnk6aG92ZXIsIGEudGV4dC1zZWNvbmRhcnk6Zm9jdXMge1xuICBjb2xvcjogIzU0NWI2MiAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1zdWNjZXNzIHtcbiAgY29sb3I6ICMyOGE3NDUgIWltcG9ydGFudDtcbn1cblxuYS50ZXh0LXN1Y2Nlc3M6aG92ZXIsIGEudGV4dC1zdWNjZXNzOmZvY3VzIHtcbiAgY29sb3I6ICMxZTdlMzQgIWltcG9ydGFudDtcbn1cblxuLnRleHQtaW5mbyB7XG4gIGNvbG9yOiAjMTdhMmI4ICFpbXBvcnRhbnQ7XG59XG5cbmEudGV4dC1pbmZvOmhvdmVyLCBhLnRleHQtaW5mbzpmb2N1cyB7XG4gIGNvbG9yOiAjMTE3YThiICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LXdhcm5pbmcge1xuICBjb2xvcjogI2ZmYzEwNyAhaW1wb3J0YW50O1xufVxuXG5hLnRleHQtd2FybmluZzpob3ZlciwgYS50ZXh0LXdhcm5pbmc6Zm9jdXMge1xuICBjb2xvcjogI2QzOWUwMCAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1kYW5nZXIge1xuICBjb2xvcjogI2RjMzU0NSAhaW1wb3J0YW50O1xufVxuXG5hLnRleHQtZGFuZ2VyOmhvdmVyLCBhLnRleHQtZGFuZ2VyOmZvY3VzIHtcbiAgY29sb3I6ICNiZDIxMzAgIWltcG9ydGFudDtcbn1cblxuLnRleHQtbGlnaHQge1xuICBjb2xvcjogI2Y4ZjlmYSAhaW1wb3J0YW50O1xufVxuXG5hLnRleHQtbGlnaHQ6aG92ZXIsIGEudGV4dC1saWdodDpmb2N1cyB7XG4gIGNvbG9yOiAjZGFlMGU1ICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LWRhcmsge1xuICBjb2xvcjogIzM0M2E0MCAhaW1wb3J0YW50O1xufVxuXG5hLnRleHQtZGFyazpob3ZlciwgYS50ZXh0LWRhcms6Zm9jdXMge1xuICBjb2xvcjogIzFkMjEyNCAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1ib2R5IHtcbiAgY29sb3I6ICMyMTI1MjkgIWltcG9ydGFudDtcbn1cblxuLnRleHQtbXV0ZWQge1xuICBjb2xvcjogIzZjNzU3ZCAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1ibGFjay01MCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSkgIWltcG9ydGFudDtcbn1cblxuLnRleHQtd2hpdGUtNTAge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LWhpZGUge1xuICBmb250OiAwLzAgYTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbn1cblxuLnZpc2libGUge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG5cbi5pbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIHByaW50IHtcbiAgKixcbiAgKjo6YmVmb3JlLFxuICAqOjphZnRlciB7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgYTpub3QoLmJ0bikge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG4gIGFiYnJbdGl0bGVdOjphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIodGl0bGUpIFwiKVwiO1xuICB9XG4gIHByZSB7XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwICFpbXBvcnRhbnQ7XG4gIH1cbiAgcHJlLFxuICBibG9ja3F1b3RlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYWRiNWJkO1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgfVxuICB0aGVhZCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwO1xuICB9XG4gIHRyLFxuICBpbWcge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgfVxuICBwLFxuICBoMixcbiAgaDMge1xuICAgIG9ycGhhbnM6IDM7XG4gICAgd2lkb3dzOiAzO1xuICB9XG4gIGgyLFxuICBoMyB7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG4gIH1cbiAgQHBhZ2Uge1xuICAgIHNpemU6IGEzO1xuICB9XG4gIGJvZHkge1xuICAgIG1pbi13aWR0aDogOTkycHggIWltcG9ydGFudDtcbiAgfVxuICAuY29udGFpbmVyIHtcbiAgICBtaW4td2lkdGg6IDk5MnB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm5hdmJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAuYmFkZ2Uge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7XG4gIH1cbiAgLnRhYmxlIHtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnRhYmxlIHRkLFxuICAudGFibGUgdGgge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiAgfVxuICAudGFibGUtYm9yZGVyZWQgdGgsXG4gIC50YWJsZS1ib3JkZXJlZCB0ZCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RlZTJlNiAhaW1wb3J0YW50O1xuICB9XG4gIC50YWJsZS1kYXJrIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuICAudGFibGUtZGFyayB0aCxcbiAgLnRhYmxlLWRhcmsgdGQsXG4gIC50YWJsZS1kYXJrIHRoZWFkIHRoLFxuICAudGFibGUtZGFyayB0Ym9keSArIHRib2R5IHtcbiAgICBib3JkZXItY29sb3I6ICNkZWUyZTY7XG4gIH1cbiAgLnRhYmxlIC50aGVhZC1kYXJrIHRoIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBib3JkZXItY29sb3I6ICNkZWUyZTY7XG4gIH1cbn1cbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWJvb3RzdHJhcC5jc3MubWFwICovIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgYXQtcnVsZS1uby12ZW5kb3ItcHJlZml4LCBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnQsIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZSwgcHJvcGVydHktbm8tdmVuZG9yLXByZWZpeFxuXG4vLyBSZWJvb3Rcbi8vXG4vLyBOb3JtYWxpemF0aW9uIG9mIEhUTUwgZWxlbWVudHMsIG1hbnVhbGx5IGZvcmtlZCBmcm9tIE5vcm1hbGl6ZS5jc3MgdG8gcmVtb3ZlXG4vLyBzdHlsZXMgdGFyZ2V0aW5nIGlycmVsZXZhbnQgYnJvd3NlcnMgd2hpbGUgYXBwbHlpbmcgbmV3IHN0eWxlcy5cbi8vXG4vLyBOb3JtYWxpemUgaXMgbGljZW5zZWQgTUlULiBodHRwczovL2dpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzXG5cblxuLy8gRG9jdW1lbnRcbi8vXG4vLyAxLiBDaGFuZ2UgZnJvbSBgYm94LXNpemluZzogY29udGVudC1ib3hgIHNvIHRoYXQgYHdpZHRoYCBpcyBub3QgYWZmZWN0ZWQgYnkgYHBhZGRpbmdgIG9yIGBib3JkZXJgLlxuLy8gMi4gQ2hhbmdlIHRoZSBkZWZhdWx0IGZvbnQgZmFtaWx5IGluIGFsbCBicm93c2Vycy5cbi8vIDMuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbi8vIDQuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gSUUgb24gV2luZG93cyBQaG9uZSBhbmQgaW4gaU9TLlxuLy8gNS4gU2V0dGluZyBAdmlld3BvcnQgY2F1c2VzIHNjcm9sbGJhcnMgdG8gb3ZlcmxhcCBjb250ZW50IGluIElFMTEgYW5kIEVkZ2UsIHNvXG4vLyAgICB3ZSBmb3JjZSBhIG5vbi1vdmVybGFwcGluZywgbm9uLWF1dG8taGlkaW5nIHNjcm9sbGJhciB0byBjb3VudGVyYWN0LlxuLy8gNi4gQ2hhbmdlIHRoZSBkZWZhdWx0IHRhcCBoaWdobGlnaHQgdG8gYmUgY29tcGxldGVseSB0cmFuc3BhcmVudCBpbiBpT1MuXG5cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8vIDFcbn1cblxuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvLyAyXG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvLyAzXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLy8gNFxuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLy8gNFxuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IHNjcm9sbGJhcjsgLy8gNVxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoJGJsYWNrLCAwKTsgLy8gNlxufVxuXG4vLyBJRTEwKyBkb2Vzbid0IGhvbm9yIGA8bWV0YSBuYW1lPVwidmlld3BvcnRcIj5gIGluIHNvbWUgY2FzZXMuXG5AYXQtcm9vdCB7XG4gIEAtbXMtdmlld3BvcnQge1xuICAgIHdpZHRoOiBkZXZpY2Utd2lkdGg7XG4gIH1cbn1cblxuLy8gc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbGlzdC1jb21tYS1uZXdsaW5lLWFmdGVyXG4vLyBTaGltIGZvciBcIm5ld1wiIEhUTUw1IHN0cnVjdHVyYWwgZWxlbWVudHMgdG8gZGlzcGxheSBjb3JyZWN0bHkgKElFMTAsIG9sZGVyIGJyb3dzZXJzKVxuYXJ0aWNsZSwgYXNpZGUsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWFpbiwgbmF2LCBzZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vLyBzdHlsZWxpbnQtZW5hYmxlIHNlbGVjdG9yLWxpc3QtY29tbWEtbmV3bGluZS1hZnRlclxuXG4vLyBCb2R5XG4vL1xuLy8gMS4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuLy8gMi4gQXMgYSBiZXN0IHByYWN0aWNlLCBhcHBseSBhIGRlZmF1bHQgYGJhY2tncm91bmQtY29sb3JgLlxuLy8gMy4gU2V0IGFuIGV4cGxpY2l0IGluaXRpYWwgdGV4dC1hbGlnbiB2YWx1ZSBzbyB0aGF0IHdlIGNhbiBsYXRlciB1c2UgdGhlXG4vLyAgICB0aGUgYGluaGVyaXRgIHZhbHVlIG9uIHRoaW5ncyBsaWtlIGA8dGg+YCBlbGVtZW50cy5cblxuYm9keSB7XG4gIG1hcmdpbjogMDsgLy8gMVxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWJhc2U7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlO1xuICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJhc2U7XG4gIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYmFzZTtcbiAgY29sb3I6ICRib2R5LWNvbG9yO1xuICB0ZXh0LWFsaWduOiBsZWZ0OyAvLyAzXG4gIGJhY2tncm91bmQtY29sb3I6ICRib2R5LWJnOyAvLyAyXG59XG5cbi8vIFN1cHByZXNzIHRoZSBmb2N1cyBvdXRsaW5lIG9uIGVsZW1lbnRzIHRoYXQgY2Fubm90IGJlIGFjY2Vzc2VkIHZpYSBrZXlib2FyZC5cbi8vIFRoaXMgcHJldmVudHMgYW4gdW53YW50ZWQgZm9jdXMgb3V0bGluZSBmcm9tIGFwcGVhcmluZyBhcm91bmQgZWxlbWVudHMgdGhhdFxuLy8gbWlnaHQgc3RpbGwgcmVzcG9uZCB0byBwb2ludGVyIGV2ZW50cy5cbi8vXG4vLyBDcmVkaXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9zdWl0Y3NzL2Jhc2Vcblt0YWJpbmRleD1cIi0xXCJdOmZvY3VzIHtcbiAgb3V0bGluZTogMCAhaW1wb3J0YW50O1xufVxuXG5cbi8vIENvbnRlbnQgZ3JvdXBpbmdcbi8vXG4vLyAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuLy8gMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8vIDFcbiAgaGVpZ2h0OiAwOyAvLyAxXG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvLyAyXG59XG5cblxuLy9cbi8vIFR5cG9ncmFwaHlcbi8vXG5cbi8vIFJlbW92ZSB0b3AgbWFyZ2lucyBmcm9tIGhlYWRpbmdzXG4vL1xuLy8gQnkgZGVmYXVsdCwgYDxoMT5gLWA8aDY+YCBhbGwgcmVjZWl2ZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zLiBXZSBudWtlIHRoZSB0b3Bcbi8vIG1hcmdpbiBmb3IgZWFzaWVyIGNvbnRyb2wgd2l0aGluIHR5cGUgc2NhbGVzIGFzIGl0IGF2b2lkcyBtYXJnaW4gY29sbGFwc2luZy5cbi8vIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLWxpc3QtY29tbWEtbmV3bGluZS1hZnRlclxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206ICRoZWFkaW5ncy1tYXJnaW4tYm90dG9tO1xufVxuLy8gc3R5bGVsaW50LWVuYWJsZSBzZWxlY3Rvci1saXN0LWNvbW1hLW5ld2xpbmUtYWZ0ZXJcblxuLy8gUmVzZXQgbWFyZ2lucyBvbiBwYXJhZ3JhcGhzXG4vL1xuLy8gU2ltaWxhcmx5LCB0aGUgdG9wIG1hcmdpbiBvbiBgPHA+YHMgZ2V0IHJlc2V0LiBIb3dldmVyLCB3ZSBhbHNvIHJlc2V0IHRoZVxuLy8gYm90dG9tIG1hcmdpbiB0byB1c2UgYHJlbWAgdW5pdHMgaW5zdGVhZCBvZiBgZW1gLlxucCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbn1cblxuLy8gQWJicmV2aWF0aW9uc1xuLy9cbi8vIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBGaXJlZm94IDM5LS5cbi8vIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4vLyAzLiBBZGQgZXhwbGljaXQgY3Vyc29yIHRvIGluZGljYXRlIGNoYW5nZWQgYmVoYXZpb3IuXG4vLyA0LiBEdXBsaWNhdGUgYmVoYXZpb3IgdG8gdGhlIGRhdGEtKiBhdHRyaWJ1dGUgZm9yIG91ciB0b29sdGlwIHBsdWdpblxuXG5hYmJyW3RpdGxlXSxcbmFiYnJbZGF0YS1vcmlnaW5hbC10aXRsZV0geyAvLyA0XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvLyAyXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLy8gMlxuICBjdXJzb3I6IGhlbHA7IC8vIDNcbiAgYm9yZGVyLWJvdHRvbTogMDsgLy8gMVxufVxuXG5hZGRyZXNzIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxub2wsXG51bCxcbmRsIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxub2wgb2wsXG51bCB1bCxcbm9sIHVsLFxudWwgb2wge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG5kdCB7XG4gIGZvbnQtd2VpZ2h0OiAkZHQtZm9udC13ZWlnaHQ7XG59XG5cbmRkIHtcbiAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gIG1hcmdpbi1sZWZ0OiAwOyAvLyBVbmRvIGJyb3dzZXIgZGVmYXVsdFxufVxuXG5ibG9ja3F1b3RlIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbn1cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyAvLyBBZGQgdGhlIGNvcnJlY3QgZm9udCBzdHlsZSBpbiBBbmRyb2lkIDQuMy1cbn1cblxuLy8gc3R5bGVsaW50LWRpc2FibGUgZm9udC13ZWlnaHQtbm90YXRpb25cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyOyAvLyBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpXG59XG4vLyBzdHlsZWxpbnQtZW5hYmxlIGZvbnQtd2VpZ2h0LW5vdGF0aW9uXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7IC8vIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzXG59XG5cbi8vXG4vLyBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbi8vIGFsbCBicm93c2Vycy5cbi8vXG5cbnN1YixcbnN1cCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7IGJvdHRvbTogLS4yNWVtOyB9XG5zdXAgeyB0b3A6IC0uNWVtOyB9XG5cblxuLy9cbi8vIExpbmtzXG4vL1xuXG5hIHtcbiAgY29sb3I6ICRsaW5rLWNvbG9yO1xuICB0ZXh0LWRlY29yYXRpb246ICRsaW5rLWRlY29yYXRpb247XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyAvLyBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7IC8vIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cblxuICBAaW5jbHVkZSBob3ZlciB7XG4gICAgY29sb3I6ICRsaW5rLWhvdmVyLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogJGxpbmstaG92ZXItZGVjb3JhdGlvbjtcbiAgfVxufVxuXG4vLyBBbmQgdW5kbyB0aGVzZSBzdHlsZXMgZm9yIHBsYWNlaG9sZGVyIGxpbmtzL25hbWVkIGFuY2hvcnMgKHdpdGhvdXQgaHJlZilcbi8vIHdoaWNoIGhhdmUgbm90IGJlZW4gbWFkZSBleHBsaWNpdGx5IGtleWJvYXJkLWZvY3VzYWJsZSAod2l0aG91dCB0YWJpbmRleCkuXG4vLyBJdCB3b3VsZCBiZSBtb3JlIHN0cmFpZ2h0Zm9yd2FyZCB0byBqdXN0IHVzZSBhW2hyZWZdIGluIHByZXZpb3VzIGJsb2NrLCBidXQgdGhhdFxuLy8gY2F1c2VzIHNwZWNpZmljaXR5IGlzc3VlcyBpbiBtYW55IG90aGVyIHN0eWxlcyB0aGF0IGFyZSB0b28gY29tcGxleCB0byBmaXguXG4vLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xOTQwMlxuXG5hOm5vdChbaHJlZl0pOm5vdChbdGFiaW5kZXhdKSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgQGluY2x1ZGUgaG92ZXItZm9jdXMge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbn1cblxuXG4vL1xuLy8gQ29kZVxuLy9cblxucHJlLFxuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07IC8vIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbn1cblxucHJlIHtcbiAgLy8gUmVtb3ZlIGJyb3dzZXIgZGVmYXVsdCB0b3AgbWFyZ2luXG4gIG1hcmdpbi10b3A6IDA7XG4gIC8vIFJlc2V0IGJyb3dzZXIgZGVmYXVsdCBvZiBgMWVtYCB0byB1c2UgYHJlbWBzXG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIC8vIERvbid0IGFsbG93IGNvbnRlbnQgdG8gYnJlYWsgb3V0c2lkZVxuICBvdmVyZmxvdzogYXV0bztcbiAgLy8gV2UgaGF2ZSBAdmlld3BvcnQgc2V0IHdoaWNoIGNhdXNlcyBzY3JvbGxiYXJzIHRvIG92ZXJsYXAgY29udGVudCBpbiBJRTExIGFuZCBFZGdlLCBzb1xuICAvLyB3ZSBmb3JjZSBhIG5vbi1vdmVybGFwcGluZywgbm9uLWF1dG8taGlkaW5nIHNjcm9sbGJhciB0byBjb3VudGVyYWN0LlxuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IHNjcm9sbGJhcjtcbn1cblxuXG4vL1xuLy8gRmlndXJlc1xuLy9cblxuZmlndXJlIHtcbiAgLy8gQXBwbHkgYSBjb25zaXN0ZW50IG1hcmdpbiBzdHJhdGVneSAobWF0Y2hlcyBvdXIgdHlwZSBzdHlsZXMpLlxuICBtYXJnaW46IDAgMCAxcmVtO1xufVxuXG5cbi8vXG4vLyBJbWFnZXMgYW5kIGNvbnRlbnRcbi8vXG5cbmltZyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJvcmRlci1zdHlsZTogbm9uZTsgLy8gUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG59XG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgLy8gSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUVcbn1cblxuXG4vL1xuLy8gVGFibGVzXG4vL1xuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IC8vIFByZXZlbnQgZG91YmxlIGJvcmRlcnNcbn1cblxuY2FwdGlvbiB7XG4gIHBhZGRpbmctdG9wOiAkdGFibGUtY2VsbC1wYWRkaW5nO1xuICBwYWRkaW5nLWJvdHRvbTogJHRhYmxlLWNlbGwtcGFkZGluZztcbiAgY29sb3I6ICR0YWJsZS1jYXB0aW9uLWNvbG9yO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjYXB0aW9uLXNpZGU6IGJvdHRvbTtcbn1cblxudGgge1xuICAvLyBNYXRjaGVzIGRlZmF1bHQgYDx0ZD5gIGFsaWdubWVudCBieSBpbmhlcml0aW5nIGZyb20gdGhlIGA8Ym9keT5gLCBvciB0aGVcbiAgLy8gY2xvc2VzdCBwYXJlbnQgd2l0aCBhIHNldCBgdGV4dC1hbGlnbmAuXG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG59XG5cblxuLy9cbi8vIEZvcm1zXG4vL1xuXG5sYWJlbCB7XG4gIC8vIEFsbG93IGxhYmVscyB0byB1c2UgYG1hcmdpbmAgZm9yIHNwYWNpbmcuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogJGxhYmVsLW1hcmdpbi1ib3R0b207XG59XG5cbi8vIFJlbW92ZSB0aGUgZGVmYXVsdCBgYm9yZGVyLXJhZGl1c2AgdGhhdCBtYWNPUyBDaHJvbWUgYWRkcy5cbi8vXG4vLyBEZXRhaWxzIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMjQwOTNcbmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi8vIFdvcmsgYXJvdW5kIGEgRmlyZWZveC9JRSBidWcgd2hlcmUgdGhlIHRyYW5zcGFyZW50IGBidXR0b25gIGJhY2tncm91bmRcbi8vIHJlc3VsdHMgaW4gYSBsb3NzIG9mIHRoZSBkZWZhdWx0IGBidXR0b25gIGZvY3VzIHN0eWxlcy5cbi8vXG4vLyBDcmVkaXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9zdWl0Y3NzL2Jhc2UvXG5idXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiAxcHggZG90dGVkO1xuICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG59XG5cbmlucHV0LFxuYnV0dG9uLFxuc2VsZWN0LFxub3B0Z3JvdXAsXG50ZXh0YXJlYSB7XG4gIG1hcmdpbjogMDsgLy8gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpXG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG5idXR0b24sXG5pbnB1dCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvLyBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlXG59XG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyAvLyBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3hcbn1cblxuLy8gMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4vLyAgICBjb250cm9scyBpbiBBbmRyb2lkIDQuXG4vLyAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuYnV0dG9uLFxuaHRtbCBbdHlwZT1cImJ1dHRvblwiXSwgLy8gMVxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8vIDJcbn1cblxuLy8gUmVtb3ZlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBmcm9tIEZpcmVmb3gsIGJ1dCBkb24ndCByZXN0b3JlIHRoZSBvdXRsaW5lIGxpa2UgTm9ybWFsaXplLlxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbmlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8vIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLVxuICBwYWRkaW5nOiAwOyAvLyAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtXG59XG5cblxuaW5wdXRbdHlwZT1cImRhdGVcIl0sXG5pbnB1dFt0eXBlPVwidGltZVwiXSxcbmlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbmlucHV0W3R5cGU9XCJtb250aFwiXSB7XG4gIC8vIFJlbW92ZSB0aGUgZGVmYXVsdCBhcHBlYXJhbmNlIG9mIHRlbXBvcmFsIGlucHV0cyB0byBhdm9pZCBhIE1vYmlsZSBTYWZhcmlcbiAgLy8gYnVnIHdoZXJlIHNldHRpbmcgYSBjdXN0b20gbGluZS1oZWlnaHQgcHJldmVudHMgdGV4dCBmcm9tIGJlaW5nIHZlcnRpY2FsbHlcbiAgLy8gY2VudGVyZWQgd2l0aGluIHRoZSBpbnB1dC5cbiAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk4NDhcbiAgLy8gYW5kIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTEyNjZcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBsaXN0Ym94O1xufVxuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvOyAvLyBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICAvLyBUZXh0YXJlYXMgc2hvdWxkIHJlYWxseSBvbmx5IHJlc2l6ZSB2ZXJ0aWNhbGx5IHNvIHRoZXkgZG9uJ3QgYnJlYWsgdGhlaXIgKGhvcml6b250YWwpIGNvbnRhaW5lcnMuXG4gIHJlc2l6ZTogdmVydGljYWw7XG59XG5cbmZpZWxkc2V0IHtcbiAgLy8gQnJvd3NlcnMgc2V0IGEgZGVmYXVsdCBgbWluLXdpZHRoOiBtaW4tY29udGVudDtgIG9uIGZpZWxkc2V0cyxcbiAgLy8gdW5saWtlIGUuZy4gYDxkaXY+YHMsIHdoaWNoIGhhdmUgYG1pbi13aWR0aDogMDtgIGJ5IGRlZmF1bHQuXG4gIC8vIFNvIHdlIHJlc2V0IHRoYXQgdG8gZW5zdXJlIGZpZWxkc2V0cyBiZWhhdmUgbW9yZSBsaWtlIGEgc3RhbmRhcmQgYmxvY2sgZWxlbWVudC5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTIzNTlcbiAgLy8gYW5kIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlLyN0aGUtZmllbGRzZXQtYW5kLWxlZ2VuZC1lbGVtZW50c1xuICBtaW4td2lkdGg6IDA7XG4gIC8vIFJlc2V0IHRoZSBkZWZhdWx0IG91dGxpbmUgYmVoYXZpb3Igb2YgZmllbGRzZXRzIHNvIHRoZXkgZG9uJ3QgYWZmZWN0IHBhZ2UgbGF5b3V0LlxuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogMDtcbn1cblxuLy8gMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbi8vIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbmxlZ2VuZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlOyAvLyAxXG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbi1ib3R0b206IC41cmVtO1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0OyAvLyAyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8vIDFcbn1cblxucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8vIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG59XG5cbi8vIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLy8gVGhpcyBvdmVycmlkZXMgdGhlIGV4dHJhIHJvdW5kZWQgY29ybmVycyBvbiBzZWFyY2ggaW5wdXRzIGluIGlPUyBzbyB0aGF0IG91clxuICAvLyBgLmZvcm0tY29udHJvbGAgY2xhc3MgY2FuIHByb3Blcmx5IHN0eWxlIHRoZW0uIE5vdGUgdGhhdCB0aGlzIGNhbm5vdCBzaW1wbHlcbiAgLy8gYmUgYWRkZWQgdG8gYC5mb3JtLWNvbnRyb2xgIGFzIGl0J3Mgbm90IHNwZWNpZmljIGVub3VnaC4gRm9yIGRldGFpbHMsIHNlZVxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzExNTg2LlxuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLy8gMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLy9cbi8vIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4vL1xuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vL1xuLy8gMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbi8vIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbi8vXG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICBmb250OiBpbmhlcml0OyAvLyAyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvLyAxXG59XG5cbi8vXG4vLyBDb3JyZWN0IGVsZW1lbnQgZGlzcGxheXNcbi8vXG5cbm91dHB1dCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTsgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzXG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lOyAvLyBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRVxufVxuXG4vLyBBbHdheXMgaGlkZSBhbiBlbGVtZW50IHdpdGggdGhlIGBoaWRkZW5gIEhUTUwgYXR0cmlidXRlIChmcm9tIFB1cmVDU1MpLlxuLy8gTmVlZGVkIGZvciBwcm9wZXIgZGlzcGxheSBpbiBJRSAxMC0uXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbiIsIi8qIVxuICogQm9vdHN0cmFwIHY0LjEuMSAoaHR0cHM6Ly9nZXRib290c3RyYXAuY29tLylcbiAqIENvcHlyaWdodCAyMDExLTIwMTggVGhlIEJvb3RzdHJhcCBBdXRob3JzXG4gKiBDb3B5cmlnaHQgMjAxMS0yMDE4IFR3aXR0ZXIsIEluYy5cbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpXG4gKi9cbjpyb290IHtcbiAgLS1ibHVlOiAjMDA3YmZmO1xuICAtLWluZGlnbzogIzY2MTBmMjtcbiAgLS1wdXJwbGU6ICM2ZjQyYzE7XG4gIC0tcGluazogI2U4M2U4YztcbiAgLS1yZWQ6ICNkYzM1NDU7XG4gIC0tb3JhbmdlOiAjZmQ3ZTE0O1xuICAtLXllbGxvdzogI2ZmYzEwNztcbiAgLS1ncmVlbjogIzI4YTc0NTtcbiAgLS10ZWFsOiAjMjBjOTk3O1xuICAtLWN5YW46ICMxN2EyYjg7XG4gIC0td2hpdGU6ICNmZmY7XG4gIC0tZ3JheTogIzZjNzU3ZDtcbiAgLS1ncmF5LWRhcms6ICMzNDNhNDA7XG4gIC0tcHJpbWFyeTogIzAwN2JmZjtcbiAgLS1zZWNvbmRhcnk6ICM2Yzc1N2Q7XG4gIC0tc3VjY2VzczogIzI4YTc0NTtcbiAgLS1pbmZvOiAjMTdhMmI4O1xuICAtLXdhcm5pbmc6ICNmZmMxMDc7XG4gIC0tZGFuZ2VyOiAjZGMzNTQ1O1xuICAtLWxpZ2h0OiAjZjhmOWZhO1xuICAtLWRhcms6ICMzNDNhNDA7XG4gIC0tYnJlYWtwb2ludC14czogMDtcbiAgLS1icmVha3BvaW50LXNtOiA1NzZweDtcbiAgLS1icmVha3BvaW50LW1kOiA3NjhweDtcbiAgLS1icmVha3BvaW50LWxnOiA5OTJweDtcbiAgLS1icmVha3BvaW50LXhsOiAxMjAwcHg7XG4gIC0tZm9udC1mYW1pbHktc2Fucy1zZXJpZjogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBBcmlhbCwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCI7XG4gIC0tZm9udC1mYW1pbHktbW9ub3NwYWNlOiBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xufVxuXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IHNjcm9sbGJhcjtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuQC1tcy12aWV3cG9ydCB7XG4gIHdpZHRoOiBkZXZpY2Utd2lkdGg7XG59XG5cbmFydGljbGUsIGFzaWRlLCBmaWdjYXB0aW9uLCBmaWd1cmUsIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1haW4sIG5hdiwgc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBBcmlhbCwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCI7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMyMTI1Mjk7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cblt0YWJpbmRleD1cIi0xXCJdOmZvY3VzIHtcbiAgb3V0bGluZTogMCAhaW1wb3J0YW50O1xufVxuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG5wIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuYWJiclt0aXRsZV0sXG5hYmJyW2RhdGEtb3JpZ2luYWwtdGl0bGVdIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbiAgY3Vyc29yOiBoZWxwO1xuICBib3JkZXItYm90dG9tOiAwO1xufVxuXG5hZGRyZXNzIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxub2wsXG51bCxcbmRsIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxub2wgb2wsXG51bCB1bCxcbm9sIHVsLFxudWwgb2wge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG5kdCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbmRkIHtcbiAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG5ibG9ja3F1b3RlIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbn1cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuc3ViLFxuc3VwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLS41ZW07XG59XG5cbmEge1xuICBjb2xvcjogIzAwN2JmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0cztcbn1cblxuYTpob3ZlciB7XG4gIGNvbG9yOiAjMDA1NmIzO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuYTpub3QoW2hyZWZdKTpub3QoW3RhYmluZGV4XSkge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5hOm5vdChbaHJlZl0pOm5vdChbdGFiaW5kZXhdKTpob3ZlciwgYTpub3QoW2hyZWZdKTpub3QoW3RhYmluZGV4XSk6Zm9jdXMge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5hOm5vdChbaHJlZl0pOm5vdChbdGFiaW5kZXhdKTpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG5cbnByZSxcbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG5wcmUge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBvdmVyZmxvdzogYXV0bztcbiAgLW1zLW92ZXJmbG93LXN0eWxlOiBzY3JvbGxiYXI7XG59XG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMCAwIDFyZW07XG59XG5cbmltZyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG5cbmNhcHRpb24ge1xuICBwYWRkaW5nLXRvcDogMC43NXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuNzVyZW07XG4gIGNvbG9yOiAjNmM3NTdkO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjYXB0aW9uLXNpZGU6IGJvdHRvbTtcbn1cblxudGgge1xuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xufVxuXG5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG5idXR0b24ge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG5idXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiAxcHggZG90dGVkO1xuICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG59XG5cbmlucHV0LFxuYnV0dG9uLFxuc2VsZWN0LFxub3B0Z3JvdXAsXG50ZXh0YXJlYSB7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cbmJ1dHRvbixcbmlucHV0IHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG5idXR0b24sXG5odG1sIFt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0sXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAwO1xufVxuXG5pbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbmlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuaW5wdXRbdHlwZT1cIm1vbnRoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBsaXN0Ym94O1xufVxuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICByZXNpemU6IHZlcnRpY2FsO1xufVxuXG5maWVsZHNldCB7XG4gIG1pbi13aWR0aDogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDA7XG59XG5cbmxlZ2VuZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cblxucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG5vdXRwdXQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNixcbi5oMSwgLmgyLCAuaDMsIC5oNCwgLmg1LCAuaDYge1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuaDEsIC5oMSB7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xufVxuXG5oMiwgLmgyIHtcbiAgZm9udC1zaXplOiAycmVtO1xufVxuXG5oMywgLmgzIHtcbiAgZm9udC1zaXplOiAxLjc1cmVtO1xufVxuXG5oNCwgLmg0IHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG59XG5cbmg1LCAuaDUge1xuICBmb250LXNpemU6IDEuMjVyZW07XG59XG5cbmg2LCAuaDYge1xuICBmb250LXNpemU6IDFyZW07XG59XG5cbi5sZWFkIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuXG4uZGlzcGxheS0xIHtcbiAgZm9udC1zaXplOiA2cmVtO1xuICBmb250LXdlaWdodDogMzAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG4uZGlzcGxheS0yIHtcbiAgZm9udC1zaXplOiA1LjVyZW07XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5cbi5kaXNwbGF5LTMge1xuICBmb250LXNpemU6IDQuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cblxuLmRpc3BsYXktNCB7XG4gIGZvbnQtc2l6ZTogMy41cmVtO1xuICBmb250LXdlaWdodDogMzAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG5ociB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuc21hbGwsXG4uc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxubWFyayxcbi5tYXJrIHtcbiAgcGFkZGluZzogMC4yZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2Y4ZTM7XG59XG5cbi5saXN0LXVuc3R5bGVkIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4ubGlzdC1pbmxpbmUge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5saXN0LWlubGluZS1pdGVtIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ubGlzdC1pbmxpbmUtaXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG59XG5cbi5pbml0aWFsaXNtIHtcbiAgZm9udC1zaXplOiA5MCU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5ibG9ja3F1b3RlIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xufVxuXG4uYmxvY2txdW90ZS1mb290ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiA4MCU7XG4gIGNvbG9yOiAjNmM3NTdkO1xufVxuXG4uYmxvY2txdW90ZS1mb290ZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyMDE0IFxcMDBBMFwiO1xufVxuXG4uaW1nLWZsdWlkIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi5pbWctdGh1bWJuYWlsIHtcbiAgcGFkZGluZzogMC4yNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RlZTJlNjtcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi5maWd1cmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5maWd1cmUtaW1nIHtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLmZpZ3VyZS1jYXB0aW9uIHtcbiAgZm9udC1zaXplOiA5MCU7XG4gIGNvbG9yOiAjNmM3NTdkO1xufVxuXG5jb2RlIHtcbiAgZm9udC1zaXplOiA4Ny41JTtcbiAgY29sb3I6ICNlODNlOGM7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG5cbmEgPiBjb2RlIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbmtiZCB7XG4gIHBhZGRpbmc6IDAuMnJlbSAwLjRyZW07XG4gIGZvbnQtc2l6ZTogODcuNSU7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyNTI5O1xuICBib3JkZXItcmFkaXVzOiAwLjJyZW07XG59XG5cbmtiZCBrYmQge1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IDEwMCU7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbnByZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDg3LjUlO1xuICBjb2xvcjogIzIxMjUyOTtcbn1cblxucHJlIGNvZGUge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG59XG5cbi5wcmUtc2Nyb2xsYWJsZSB7XG4gIG1heC1oZWlnaHQ6IDM0MHB4O1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG5cbi5jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLmNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1NDBweDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA3MjBweDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA5NjBweDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMTE0MHB4O1xuICB9XG59XG5cbi5jb250YWluZXItZmx1aWQge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4ucm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW4tcmlnaHQ6IC0xNXB4O1xuICBtYXJnaW4tbGVmdDogLTE1cHg7XG59XG5cbi5uby1ndXR0ZXJzIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLm5vLWd1dHRlcnMgPiAuY29sLFxuLm5vLWd1dHRlcnMgPiBbY2xhc3MqPVwiY29sLVwiXSB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLmNvbC0xLCAuY29sLTIsIC5jb2wtMywgLmNvbC00LCAuY29sLTUsIC5jb2wtNiwgLmNvbC03LCAuY29sLTgsIC5jb2wtOSwgLmNvbC0xMCwgLmNvbC0xMSwgLmNvbC0xMiwgLmNvbCxcbi5jb2wtYXV0bywgLmNvbC1zbS0xLCAuY29sLXNtLTIsIC5jb2wtc20tMywgLmNvbC1zbS00LCAuY29sLXNtLTUsIC5jb2wtc20tNiwgLmNvbC1zbS03LCAuY29sLXNtLTgsIC5jb2wtc20tOSwgLmNvbC1zbS0xMCwgLmNvbC1zbS0xMSwgLmNvbC1zbS0xMiwgLmNvbC1zbSxcbi5jb2wtc20tYXV0bywgLmNvbC1tZC0xLCAuY29sLW1kLTIsIC5jb2wtbWQtMywgLmNvbC1tZC00LCAuY29sLW1kLTUsIC5jb2wtbWQtNiwgLmNvbC1tZC03LCAuY29sLW1kLTgsIC5jb2wtbWQtOSwgLmNvbC1tZC0xMCwgLmNvbC1tZC0xMSwgLmNvbC1tZC0xMiwgLmNvbC1tZCxcbi5jb2wtbWQtYXV0bywgLmNvbC1sZy0xLCAuY29sLWxnLTIsIC5jb2wtbGctMywgLmNvbC1sZy00LCAuY29sLWxnLTUsIC5jb2wtbGctNiwgLmNvbC1sZy03LCAuY29sLWxnLTgsIC5jb2wtbGctOSwgLmNvbC1sZy0xMCwgLmNvbC1sZy0xMSwgLmNvbC1sZy0xMiwgLmNvbC1sZyxcbi5jb2wtbGctYXV0bywgLmNvbC14bC0xLCAuY29sLXhsLTIsIC5jb2wteGwtMywgLmNvbC14bC00LCAuY29sLXhsLTUsIC5jb2wteGwtNiwgLmNvbC14bC03LCAuY29sLXhsLTgsIC5jb2wteGwtOSwgLmNvbC14bC0xMCwgLmNvbC14bC0xMSwgLmNvbC14bC0xMiwgLmNvbC14bCxcbi5jb2wteGwtYXV0byB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xufVxuXG4uY29sIHtcbiAgZmxleC1iYXNpczogMDtcbiAgZmxleC1ncm93OiAxO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5jb2wtYXV0byB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB3aWR0aDogYXV0bztcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuXG4uY29sLTEge1xuICBmbGV4OiAwIDAgOC4zMzMzMzMlO1xuICBtYXgtd2lkdGg6IDguMzMzMzMzJTtcbn1cblxuLmNvbC0yIHtcbiAgZmxleDogMCAwIDE2LjY2NjY2NyU7XG4gIG1heC13aWR0aDogMTYuNjY2NjY3JTtcbn1cblxuLmNvbC0zIHtcbiAgZmxleDogMCAwIDI1JTtcbiAgbWF4LXdpZHRoOiAyNSU7XG59XG5cbi5jb2wtNCB7XG4gIGZsZXg6IDAgMCAzMy4zMzMzMzMlO1xuICBtYXgtd2lkdGg6IDMzLjMzMzMzMyU7XG59XG5cbi5jb2wtNSB7XG4gIGZsZXg6IDAgMCA0MS42NjY2NjclO1xuICBtYXgtd2lkdGg6IDQxLjY2NjY2NyU7XG59XG5cbi5jb2wtNiB7XG4gIGZsZXg6IDAgMCA1MCU7XG4gIG1heC13aWR0aDogNTAlO1xufVxuXG4uY29sLTcge1xuICBmbGV4OiAwIDAgNTguMzMzMzMzJTtcbiAgbWF4LXdpZHRoOiA1OC4zMzMzMzMlO1xufVxuXG4uY29sLTgge1xuICBmbGV4OiAwIDAgNjYuNjY2NjY3JTtcbiAgbWF4LXdpZHRoOiA2Ni42NjY2NjclO1xufVxuXG4uY29sLTkge1xuICBmbGV4OiAwIDAgNzUlO1xuICBtYXgtd2lkdGg6IDc1JTtcbn1cblxuLmNvbC0xMCB7XG4gIGZsZXg6IDAgMCA4My4zMzMzMzMlO1xuICBtYXgtd2lkdGg6IDgzLjMzMzMzMyU7XG59XG5cbi5jb2wtMTEge1xuICBmbGV4OiAwIDAgOTEuNjY2NjY3JTtcbiAgbWF4LXdpZHRoOiA5MS42NjY2NjclO1xufVxuXG4uY29sLTEyIHtcbiAgZmxleDogMCAwIDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLm9yZGVyLWZpcnN0IHtcbiAgb3JkZXI6IC0xO1xufVxuXG4ub3JkZXItbGFzdCB7XG4gIG9yZGVyOiAxMztcbn1cblxuLm9yZGVyLTAge1xuICBvcmRlcjogMDtcbn1cblxuLm9yZGVyLTEge1xuICBvcmRlcjogMTtcbn1cblxuLm9yZGVyLTIge1xuICBvcmRlcjogMjtcbn1cblxuLm9yZGVyLTMge1xuICBvcmRlcjogMztcbn1cblxuLm9yZGVyLTQge1xuICBvcmRlcjogNDtcbn1cblxuLm9yZGVyLTUge1xuICBvcmRlcjogNTtcbn1cblxuLm9yZGVyLTYge1xuICBvcmRlcjogNjtcbn1cblxuLm9yZGVyLTcge1xuICBvcmRlcjogNztcbn1cblxuLm9yZGVyLTgge1xuICBvcmRlcjogODtcbn1cblxuLm9yZGVyLTkge1xuICBvcmRlcjogOTtcbn1cblxuLm9yZGVyLTEwIHtcbiAgb3JkZXI6IDEwO1xufVxuXG4ub3JkZXItMTEge1xuICBvcmRlcjogMTE7XG59XG5cbi5vcmRlci0xMiB7XG4gIG9yZGVyOiAxMjtcbn1cblxuLm9mZnNldC0xIHtcbiAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzJTtcbn1cblxuLm9mZnNldC0yIHtcbiAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NyU7XG59XG5cbi5vZmZzZXQtMyB7XG4gIG1hcmdpbi1sZWZ0OiAyNSU7XG59XG5cbi5vZmZzZXQtNCB7XG4gIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMlO1xufVxuXG4ub2Zmc2V0LTUge1xuICBtYXJnaW4tbGVmdDogNDEuNjY2NjY3JTtcbn1cblxuLm9mZnNldC02IHtcbiAgbWFyZ2luLWxlZnQ6IDUwJTtcbn1cblxuLm9mZnNldC03IHtcbiAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMyU7XG59XG5cbi5vZmZzZXQtOCB7XG4gIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjclO1xufVxuXG4ub2Zmc2V0LTkge1xuICBtYXJnaW4tbGVmdDogNzUlO1xufVxuXG4ub2Zmc2V0LTEwIHtcbiAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMyU7XG59XG5cbi5vZmZzZXQtMTEge1xuICBtYXJnaW4tbGVmdDogOTEuNjY2NjY3JTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gIC5jb2wtc20ge1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICAuY29sLXNtLWF1dG8ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxuICAuY29sLXNtLTEge1xuICAgIGZsZXg6IDAgMCA4LjMzMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4LjMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS0yIHtcbiAgICBmbGV4OiAwIDAgMTYuNjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS0zIHtcbiAgICBmbGV4OiAwIDAgMjUlO1xuICAgIG1heC13aWR0aDogMjUlO1xuICB9XG4gIC5jb2wtc20tNCB7XG4gICAgZmxleDogMCAwIDMzLjMzMzMzMyU7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tNSB7XG4gICAgZmxleDogMCAwIDQxLjY2NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA0MS42NjY2NjclO1xuICB9XG4gIC5jb2wtc20tNiB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgfVxuICAuY29sLXNtLTcge1xuICAgIGZsZXg6IDAgMCA1OC4zMzMzMzMlO1xuICAgIG1heC13aWR0aDogNTguMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLTgge1xuICAgIGZsZXg6IDAgMCA2Ni42NjY2NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLTkge1xuICAgIGZsZXg6IDAgMCA3NSU7XG4gICAgbWF4LXdpZHRoOiA3NSU7XG4gIH1cbiAgLmNvbC1zbS0xMCB7XG4gICAgZmxleDogMCAwIDgzLjMzMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4My4zMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tMTEge1xuICAgIGZsZXg6IDAgMCA5MS42NjY2NjclO1xuICAgIG1heC13aWR0aDogOTEuNjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLTEyIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgLm9yZGVyLXNtLWZpcnN0IHtcbiAgICBvcmRlcjogLTE7XG4gIH1cbiAgLm9yZGVyLXNtLWxhc3Qge1xuICAgIG9yZGVyOiAxMztcbiAgfVxuICAub3JkZXItc20tMCB7XG4gICAgb3JkZXI6IDA7XG4gIH1cbiAgLm9yZGVyLXNtLTEge1xuICAgIG9yZGVyOiAxO1xuICB9XG4gIC5vcmRlci1zbS0yIHtcbiAgICBvcmRlcjogMjtcbiAgfVxuICAub3JkZXItc20tMyB7XG4gICAgb3JkZXI6IDM7XG4gIH1cbiAgLm9yZGVyLXNtLTQge1xuICAgIG9yZGVyOiA0O1xuICB9XG4gIC5vcmRlci1zbS01IHtcbiAgICBvcmRlcjogNTtcbiAgfVxuICAub3JkZXItc20tNiB7XG4gICAgb3JkZXI6IDY7XG4gIH1cbiAgLm9yZGVyLXNtLTcge1xuICAgIG9yZGVyOiA3O1xuICB9XG4gIC5vcmRlci1zbS04IHtcbiAgICBvcmRlcjogODtcbiAgfVxuICAub3JkZXItc20tOSB7XG4gICAgb3JkZXI6IDk7XG4gIH1cbiAgLm9yZGVyLXNtLTEwIHtcbiAgICBvcmRlcjogMTA7XG4gIH1cbiAgLm9yZGVyLXNtLTExIHtcbiAgICBvcmRlcjogMTE7XG4gIH1cbiAgLm9yZGVyLXNtLTEyIHtcbiAgICBvcmRlcjogMTI7XG4gIH1cbiAgLm9mZnNldC1zbS0wIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuICAub2Zmc2V0LXNtLTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzMyU7XG4gIH1cbiAgLm9mZnNldC1zbS0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY3JTtcbiAgfVxuICAub2Zmc2V0LXNtLTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gIH1cbiAgLm9mZnNldC1zbS00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzJTtcbiAgfVxuICAub2Zmc2V0LXNtLTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjclO1xuICB9XG4gIC5vZmZzZXQtc20tNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgfVxuICAub2Zmc2V0LXNtLTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMlO1xuICB9XG4gIC5vZmZzZXQtc20tOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NyU7XG4gIH1cbiAgLm9mZnNldC1zbS05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xuICB9XG4gIC5vZmZzZXQtc20tMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMzMlO1xuICB9XG4gIC5vZmZzZXQtc20tMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjclO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuY29sLW1kIHtcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmNvbC1tZC1hdXRvIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cbiAgLmNvbC1tZC0xIHtcbiAgICBmbGV4OiAwIDAgOC4zMzMzMzMlO1xuICAgIG1heC13aWR0aDogOC4zMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtMiB7XG4gICAgZmxleDogMCAwIDE2LjY2NjY2NyU7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtMyB7XG4gICAgZmxleDogMCAwIDI1JTtcbiAgICBtYXgtd2lkdGg6IDI1JTtcbiAgfVxuICAuY29sLW1kLTQge1xuICAgIGZsZXg6IDAgMCAzMy4zMzMzMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLTUge1xuICAgIGZsZXg6IDAgMCA0MS42NjY2NjclO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLTYge1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gIH1cbiAgLmNvbC1tZC03IHtcbiAgICBmbGV4OiAwIDAgNTguMzMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC04IHtcbiAgICBmbGV4OiAwIDAgNjYuNjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC05IHtcbiAgICBmbGV4OiAwIDAgNzUlO1xuICAgIG1heC13aWR0aDogNzUlO1xuICB9XG4gIC5jb2wtbWQtMTAge1xuICAgIGZsZXg6IDAgMCA4My4zMzMzMzMlO1xuICAgIG1heC13aWR0aDogODMuMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLTExIHtcbiAgICBmbGV4OiAwIDAgOTEuNjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDkxLjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC0xMiB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIC5vcmRlci1tZC1maXJzdCB7XG4gICAgb3JkZXI6IC0xO1xuICB9XG4gIC5vcmRlci1tZC1sYXN0IHtcbiAgICBvcmRlcjogMTM7XG4gIH1cbiAgLm9yZGVyLW1kLTAge1xuICAgIG9yZGVyOiAwO1xuICB9XG4gIC5vcmRlci1tZC0xIHtcbiAgICBvcmRlcjogMTtcbiAgfVxuICAub3JkZXItbWQtMiB7XG4gICAgb3JkZXI6IDI7XG4gIH1cbiAgLm9yZGVyLW1kLTMge1xuICAgIG9yZGVyOiAzO1xuICB9XG4gIC5vcmRlci1tZC00IHtcbiAgICBvcmRlcjogNDtcbiAgfVxuICAub3JkZXItbWQtNSB7XG4gICAgb3JkZXI6IDU7XG4gIH1cbiAgLm9yZGVyLW1kLTYge1xuICAgIG9yZGVyOiA2O1xuICB9XG4gIC5vcmRlci1tZC03IHtcbiAgICBvcmRlcjogNztcbiAgfVxuICAub3JkZXItbWQtOCB7XG4gICAgb3JkZXI6IDg7XG4gIH1cbiAgLm9yZGVyLW1kLTkge1xuICAgIG9yZGVyOiA5O1xuICB9XG4gIC5vcmRlci1tZC0xMCB7XG4gICAgb3JkZXI6IDEwO1xuICB9XG4gIC5vcmRlci1tZC0xMSB7XG4gICAgb3JkZXI6IDExO1xuICB9XG4gIC5vcmRlci1tZC0xMiB7XG4gICAgb3JkZXI6IDEyO1xuICB9XG4gIC5vZmZzZXQtbWQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgLm9mZnNldC1tZC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMlO1xuICB9XG4gIC5vZmZzZXQtbWQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NyU7XG4gIH1cbiAgLm9mZnNldC1tZC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xuICB9XG4gIC5vZmZzZXQtbWQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMyU7XG4gIH1cbiAgLm9mZnNldC1tZC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY3JTtcbiAgfVxuICAub2Zmc2V0LW1kLTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gIH1cbiAgLm9mZnNldC1tZC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzJTtcbiAgfVxuICAub2Zmc2V0LW1kLTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjclO1xuICB9XG4gIC5vZmZzZXQtbWQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcbiAgfVxuICAub2Zmc2V0LW1kLTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzJTtcbiAgfVxuICAub2Zmc2V0LW1kLTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY3JTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmNvbC1sZyB7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIC5jb2wtbGctYXV0byB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG4gIC5jb2wtbGctMSB7XG4gICAgZmxleDogMCAwIDguMzMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDguMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLTIge1xuICAgIGZsZXg6IDAgMCAxNi42NjY2NjclO1xuICAgIG1heC13aWR0aDogMTYuNjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLTMge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7XG4gIH1cbiAgLmNvbC1sZy00IHtcbiAgICBmbGV4OiAwIDAgMzMuMzMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy01IHtcbiAgICBmbGV4OiAwIDAgNDEuNjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDQxLjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy02IHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlO1xuICB9XG4gIC5jb2wtbGctNyB7XG4gICAgZmxleDogMCAwIDU4LjMzMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA1OC4zMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctOCB7XG4gICAgZmxleDogMCAwIDY2LjY2NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA2Ni42NjY2NjclO1xuICB9XG4gIC5jb2wtbGctOSB7XG4gICAgZmxleDogMCAwIDc1JTtcbiAgICBtYXgtd2lkdGg6IDc1JTtcbiAgfVxuICAuY29sLWxnLTEwIHtcbiAgICBmbGV4OiAwIDAgODMuMzMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDgzLjMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy0xMSB7XG4gICAgZmxleDogMCAwIDkxLjY2NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NjclO1xuICB9XG4gIC5jb2wtbGctMTIge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICAub3JkZXItbGctZmlyc3Qge1xuICAgIG9yZGVyOiAtMTtcbiAgfVxuICAub3JkZXItbGctbGFzdCB7XG4gICAgb3JkZXI6IDEzO1xuICB9XG4gIC5vcmRlci1sZy0wIHtcbiAgICBvcmRlcjogMDtcbiAgfVxuICAub3JkZXItbGctMSB7XG4gICAgb3JkZXI6IDE7XG4gIH1cbiAgLm9yZGVyLWxnLTIge1xuICAgIG9yZGVyOiAyO1xuICB9XG4gIC5vcmRlci1sZy0zIHtcbiAgICBvcmRlcjogMztcbiAgfVxuICAub3JkZXItbGctNCB7XG4gICAgb3JkZXI6IDQ7XG4gIH1cbiAgLm9yZGVyLWxnLTUge1xuICAgIG9yZGVyOiA1O1xuICB9XG4gIC5vcmRlci1sZy02IHtcbiAgICBvcmRlcjogNjtcbiAgfVxuICAub3JkZXItbGctNyB7XG4gICAgb3JkZXI6IDc7XG4gIH1cbiAgLm9yZGVyLWxnLTgge1xuICAgIG9yZGVyOiA4O1xuICB9XG4gIC5vcmRlci1sZy05IHtcbiAgICBvcmRlcjogOTtcbiAgfVxuICAub3JkZXItbGctMTAge1xuICAgIG9yZGVyOiAxMDtcbiAgfVxuICAub3JkZXItbGctMTEge1xuICAgIG9yZGVyOiAxMTtcbiAgfVxuICAub3JkZXItbGctMTIge1xuICAgIG9yZGVyOiAxMjtcbiAgfVxuICAub2Zmc2V0LWxnLTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIC5vZmZzZXQtbGctMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzJTtcbiAgfVxuICAub2Zmc2V0LWxnLTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjclO1xuICB9XG4gIC5vZmZzZXQtbGctMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgfVxuICAub2Zmc2V0LWxnLTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMlO1xuICB9XG4gIC5vZmZzZXQtbGctNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NyU7XG4gIH1cbiAgLm9mZnNldC1sZy02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xuICB9XG4gIC5vZmZzZXQtbGctNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMyU7XG4gIH1cbiAgLm9mZnNldC1sZy04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY3JTtcbiAgfVxuICAub2Zmc2V0LWxnLTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gIH1cbiAgLm9mZnNldC1sZy0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMyU7XG4gIH1cbiAgLm9mZnNldC1sZy0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NyU7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuY29sLXhsIHtcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmNvbC14bC1hdXRvIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cbiAgLmNvbC14bC0xIHtcbiAgICBmbGV4OiAwIDAgOC4zMzMzMzMlO1xuICAgIG1heC13aWR0aDogOC4zMzMzMzMlO1xuICB9XG4gIC5jb2wteGwtMiB7XG4gICAgZmxleDogMCAwIDE2LjY2NjY2NyU7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NjclO1xuICB9XG4gIC5jb2wteGwtMyB7XG4gICAgZmxleDogMCAwIDI1JTtcbiAgICBtYXgtd2lkdGg6IDI1JTtcbiAgfVxuICAuY29sLXhsLTQge1xuICAgIGZsZXg6IDAgMCAzMy4zMzMzMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMzJTtcbiAgfVxuICAuY29sLXhsLTUge1xuICAgIGZsZXg6IDAgMCA0MS42NjY2NjclO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjY3JTtcbiAgfVxuICAuY29sLXhsLTYge1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gIH1cbiAgLmNvbC14bC03IHtcbiAgICBmbGV4OiAwIDAgNTguMzMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzMyU7XG4gIH1cbiAgLmNvbC14bC04IHtcbiAgICBmbGV4OiAwIDAgNjYuNjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY2NyU7XG4gIH1cbiAgLmNvbC14bC05IHtcbiAgICBmbGV4OiAwIDAgNzUlO1xuICAgIG1heC13aWR0aDogNzUlO1xuICB9XG4gIC5jb2wteGwtMTAge1xuICAgIGZsZXg6IDAgMCA4My4zMzMzMzMlO1xuICAgIG1heC13aWR0aDogODMuMzMzMzMzJTtcbiAgfVxuICAuY29sLXhsLTExIHtcbiAgICBmbGV4OiAwIDAgOTEuNjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDkxLjY2NjY2NyU7XG4gIH1cbiAgLmNvbC14bC0xMiB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIC5vcmRlci14bC1maXJzdCB7XG4gICAgb3JkZXI6IC0xO1xuICB9XG4gIC5vcmRlci14bC1sYXN0IHtcbiAgICBvcmRlcjogMTM7XG4gIH1cbiAgLm9yZGVyLXhsLTAge1xuICAgIG9yZGVyOiAwO1xuICB9XG4gIC5vcmRlci14bC0xIHtcbiAgICBvcmRlcjogMTtcbiAgfVxuICAub3JkZXIteGwtMiB7XG4gICAgb3JkZXI6IDI7XG4gIH1cbiAgLm9yZGVyLXhsLTMge1xuICAgIG9yZGVyOiAzO1xuICB9XG4gIC5vcmRlci14bC00IHtcbiAgICBvcmRlcjogNDtcbiAgfVxuICAub3JkZXIteGwtNSB7XG4gICAgb3JkZXI6IDU7XG4gIH1cbiAgLm9yZGVyLXhsLTYge1xuICAgIG9yZGVyOiA2O1xuICB9XG4gIC5vcmRlci14bC03IHtcbiAgICBvcmRlcjogNztcbiAgfVxuICAub3JkZXIteGwtOCB7XG4gICAgb3JkZXI6IDg7XG4gIH1cbiAgLm9yZGVyLXhsLTkge1xuICAgIG9yZGVyOiA5O1xuICB9XG4gIC5vcmRlci14bC0xMCB7XG4gICAgb3JkZXI6IDEwO1xuICB9XG4gIC5vcmRlci14bC0xMSB7XG4gICAgb3JkZXI6IDExO1xuICB9XG4gIC5vcmRlci14bC0xMiB7XG4gICAgb3JkZXI6IDEyO1xuICB9XG4gIC5vZmZzZXQteGwtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgLm9mZnNldC14bC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMlO1xuICB9XG4gIC5vZmZzZXQteGwtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NyU7XG4gIH1cbiAgLm9mZnNldC14bC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xuICB9XG4gIC5vZmZzZXQteGwtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMyU7XG4gIH1cbiAgLm9mZnNldC14bC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY3JTtcbiAgfVxuICAub2Zmc2V0LXhsLTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gIH1cbiAgLm9mZnNldC14bC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzJTtcbiAgfVxuICAub2Zmc2V0LXhsLTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjclO1xuICB9XG4gIC5vZmZzZXQteGwtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcbiAgfVxuICAub2Zmc2V0LXhsLTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzJTtcbiAgfVxuICAub2Zmc2V0LXhsLTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY3JTtcbiAgfVxufVxuXG4udGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnRhYmxlIHRoLFxuLnRhYmxlIHRkIHtcbiAgcGFkZGluZzogMC43NXJlbTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZWUyZTY7XG59XG5cbi50YWJsZSB0aGVhZCB0aCB7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZGVlMmU2O1xufVxuXG4udGFibGUgdGJvZHkgKyB0Ym9keSB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjZGVlMmU2O1xufVxuXG4udGFibGUgLnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuLnRhYmxlLXNtIHRoLFxuLnRhYmxlLXNtIHRkIHtcbiAgcGFkZGluZzogMC4zcmVtO1xufVxuXG4udGFibGUtYm9yZGVyZWQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGVlMmU2O1xufVxuXG4udGFibGUtYm9yZGVyZWQgdGgsXG4udGFibGUtYm9yZGVyZWQgdGQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGVlMmU2O1xufVxuXG4udGFibGUtYm9yZGVyZWQgdGhlYWQgdGgsXG4udGFibGUtYm9yZGVyZWQgdGhlYWQgdGQge1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG59XG5cbi50YWJsZS1ib3JkZXJsZXNzIHRoLFxuLnRhYmxlLWJvcmRlcmxlc3MgdGQsXG4udGFibGUtYm9yZGVybGVzcyB0aGVhZCB0aCxcbi50YWJsZS1ib3JkZXJsZXNzIHRib2R5ICsgdGJvZHkge1xuICBib3JkZXI6IDA7XG59XG5cbi50YWJsZS1zdHJpcGVkIHRib2R5IHRyOm50aC1vZi10eXBlKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuXG4udGFibGUtaG92ZXIgdGJvZHkgdHI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbn1cblxuLnRhYmxlLXByaW1hcnksXG4udGFibGUtcHJpbWFyeSA+IHRoLFxuLnRhYmxlLXByaW1hcnkgPiB0ZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiOGRhZmY7XG59XG5cbi50YWJsZS1ob3ZlciAudGFibGUtcHJpbWFyeTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5ZmNkZmY7XG59XG5cbi50YWJsZS1ob3ZlciAudGFibGUtcHJpbWFyeTpob3ZlciA+IHRkLFxuLnRhYmxlLWhvdmVyIC50YWJsZS1wcmltYXJ5OmhvdmVyID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWZjZGZmO1xufVxuXG4udGFibGUtc2Vjb25kYXJ5LFxuLnRhYmxlLXNlY29uZGFyeSA+IHRoLFxuLnRhYmxlLXNlY29uZGFyeSA+IHRkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q2ZDhkYjtcbn1cblxuLnRhYmxlLWhvdmVyIC50YWJsZS1zZWNvbmRhcnk6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzhjYmNmO1xufVxuXG4udGFibGUtaG92ZXIgLnRhYmxlLXNlY29uZGFyeTpob3ZlciA+IHRkLFxuLnRhYmxlLWhvdmVyIC50YWJsZS1zZWNvbmRhcnk6aG92ZXIgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjOGNiY2Y7XG59XG5cbi50YWJsZS1zdWNjZXNzLFxuLnRhYmxlLXN1Y2Nlc3MgPiB0aCxcbi50YWJsZS1zdWNjZXNzID4gdGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzNlNmNiO1xufVxuXG4udGFibGUtaG92ZXIgLnRhYmxlLXN1Y2Nlc3M6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjFkZmJiO1xufVxuXG4udGFibGUtaG92ZXIgLnRhYmxlLXN1Y2Nlc3M6aG92ZXIgPiB0ZCxcbi50YWJsZS1ob3ZlciAudGFibGUtc3VjY2Vzczpob3ZlciA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IxZGZiYjtcbn1cblxuLnRhYmxlLWluZm8sXG4udGFibGUtaW5mbyA+IHRoLFxuLnRhYmxlLWluZm8gPiB0ZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiZWU1ZWI7XG59XG5cbi50YWJsZS1ob3ZlciAudGFibGUtaW5mbzpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhYmRkZTU7XG59XG5cbi50YWJsZS1ob3ZlciAudGFibGUtaW5mbzpob3ZlciA+IHRkLFxuLnRhYmxlLWhvdmVyIC50YWJsZS1pbmZvOmhvdmVyID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWJkZGU1O1xufVxuXG4udGFibGUtd2FybmluZyxcbi50YWJsZS13YXJuaW5nID4gdGgsXG4udGFibGUtd2FybmluZyA+IHRkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZWViYTtcbn1cblxuLnRhYmxlLWhvdmVyIC50YWJsZS13YXJuaW5nOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZThhMTtcbn1cblxuLnRhYmxlLWhvdmVyIC50YWJsZS13YXJuaW5nOmhvdmVyID4gdGQsXG4udGFibGUtaG92ZXIgLnRhYmxlLXdhcm5pbmc6aG92ZXIgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmU4YTE7XG59XG5cbi50YWJsZS1kYW5nZXIsXG4udGFibGUtZGFuZ2VyID4gdGgsXG4udGFibGUtZGFuZ2VyID4gdGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVjNmNiO1xufVxuXG4udGFibGUtaG92ZXIgLnRhYmxlLWRhbmdlcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWIwYjc7XG59XG5cbi50YWJsZS1ob3ZlciAudGFibGUtZGFuZ2VyOmhvdmVyID4gdGQsXG4udGFibGUtaG92ZXIgLnRhYmxlLWRhbmdlcjpob3ZlciA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxYjBiNztcbn1cblxuLnRhYmxlLWxpZ2h0LFxuLnRhYmxlLWxpZ2h0ID4gdGgsXG4udGFibGUtbGlnaHQgPiB0ZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZGZkZmU7XG59XG5cbi50YWJsZS1ob3ZlciAudGFibGUtbGlnaHQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlY2Y2O1xufVxuXG4udGFibGUtaG92ZXIgLnRhYmxlLWxpZ2h0OmhvdmVyID4gdGQsXG4udGFibGUtaG92ZXIgLnRhYmxlLWxpZ2h0OmhvdmVyID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlY2Y2O1xufVxuXG4udGFibGUtZGFyayxcbi50YWJsZS1kYXJrID4gdGgsXG4udGFibGUtZGFyayA+IHRkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M2YzhjYTtcbn1cblxuLnRhYmxlLWhvdmVyIC50YWJsZS1kYXJrOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2I5YmJiZTtcbn1cblxuLnRhYmxlLWhvdmVyIC50YWJsZS1kYXJrOmhvdmVyID4gdGQsXG4udGFibGUtaG92ZXIgLnRhYmxlLWRhcms6aG92ZXIgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiOWJiYmU7XG59XG5cbi50YWJsZS1hY3RpdmUsXG4udGFibGUtYWN0aXZlID4gdGgsXG4udGFibGUtYWN0aXZlID4gdGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbn1cblxuLnRhYmxlLWhvdmVyIC50YWJsZS1hY3RpdmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbn1cblxuLnRhYmxlLWhvdmVyIC50YWJsZS1hY3RpdmU6aG92ZXIgPiB0ZCxcbi50YWJsZS1ob3ZlciAudGFibGUtYWN0aXZlOmhvdmVyID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbn1cblxuLnRhYmxlIC50aGVhZC1kYXJrIHRoIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTI1Mjk7XG4gIGJvcmRlci1jb2xvcjogIzMyMzgzZTtcbn1cblxuLnRhYmxlIC50aGVhZC1saWdodCB0aCB7XG4gIGNvbG9yOiAjNDk1MDU3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllY2VmO1xuICBib3JkZXItY29sb3I6ICNkZWUyZTY7XG59XG5cbi50YWJsZS1kYXJrIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTI1Mjk7XG59XG5cbi50YWJsZS1kYXJrIHRoLFxuLnRhYmxlLWRhcmsgdGQsXG4udGFibGUtZGFyayB0aGVhZCB0aCB7XG4gIGJvcmRlci1jb2xvcjogIzMyMzgzZTtcbn1cblxuLnRhYmxlLWRhcmsudGFibGUtYm9yZGVyZWQge1xuICBib3JkZXI6IDA7XG59XG5cbi50YWJsZS1kYXJrLnRhYmxlLXN0cmlwZWQgdGJvZHkgdHI6bnRoLW9mLXR5cGUob2RkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XG59XG5cbi50YWJsZS1kYXJrLnRhYmxlLWhvdmVyIHRib2R5IHRyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA3NSk7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzUuOThweCkge1xuICAudGFibGUtcmVzcG9uc2l2ZS1zbSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7XG4gIH1cbiAgLnRhYmxlLXJlc3BvbnNpdmUtc20gPiAudGFibGUtYm9yZGVyZWQge1xuICAgIGJvcmRlcjogMDtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgLnRhYmxlLXJlc3BvbnNpdmUtbWQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyO1xuICB9XG4gIC50YWJsZS1yZXNwb25zaXZlLW1kID4gLnRhYmxlLWJvcmRlcmVkIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gIC50YWJsZS1yZXNwb25zaXZlLWxnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtcbiAgfVxuICAudGFibGUtcmVzcG9uc2l2ZS1sZyA+IC50YWJsZS1ib3JkZXJlZCB7XG4gICAgYm9yZGVyOiAwO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTk5Ljk4cHgpIHtcbiAgLnRhYmxlLXJlc3BvbnNpdmUteGwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyO1xuICB9XG4gIC50YWJsZS1yZXNwb25zaXZlLXhsID4gLnRhYmxlLWJvcmRlcmVkIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cbn1cblxuLnRhYmxlLXJlc3BvbnNpdmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgLW1zLW92ZXJmbG93LXN0eWxlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7XG59XG5cbi50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkIHtcbiAgYm9yZGVyOiAwO1xufVxuXG4uZm9ybS1jb250cm9sIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwLjM3NXJlbSAwLjc1cmVtO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjNDk1MDU3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2VkNGRhO1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZS1pbi1vdXQsIGJveC1zaGFkb3cgMC4xNXMgZWFzZS1pbi1vdXQ7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmZvcm0tY29udHJvbCB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxufVxuXG4uZm9ybS1jb250cm9sOjotbXMtZXhwYW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbn1cblxuLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gIGNvbG9yOiAjNDk1MDU3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICM4MGJkZmY7XG4gIG91dGxpbmU6IDA7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDAsIDEyMywgMjU1LCAwLjI1KTtcbn1cblxuLmZvcm0tY29udHJvbDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzZjNzU3ZDtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmZvcm0tY29udHJvbDpkaXNhYmxlZCwgLmZvcm0tY29udHJvbFtyZWFkb25seV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllY2VmO1xuICBvcGFjaXR5OiAxO1xufVxuXG5zZWxlY3QuZm9ybS1jb250cm9sOm5vdChbc2l6ZV0pOm5vdChbbXVsdGlwbGVdKSB7XG4gIGhlaWdodDogY2FsYygyLjI1cmVtICsgMnB4KTtcbn1cblxuc2VsZWN0LmZvcm0tY29udHJvbDpmb2N1czo6LW1zLXZhbHVlIHtcbiAgY29sb3I6ICM0OTUwNTc7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5mb3JtLWNvbnRyb2wtZmlsZSxcbi5mb3JtLWNvbnRyb2wtcmFuZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jb2wtZm9ybS1sYWJlbCB7XG4gIHBhZGRpbmctdG9wOiBjYWxjKDAuMzc1cmVtICsgMXB4KTtcbiAgcGFkZGluZy1ib3R0b206IGNhbGMoMC4zNzVyZW0gKyAxcHgpO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi5jb2wtZm9ybS1sYWJlbC1sZyB7XG4gIHBhZGRpbmctdG9wOiBjYWxjKDAuNXJlbSArIDFweCk7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKDAuNXJlbSArIDFweCk7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLmNvbC1mb3JtLWxhYmVsLXNtIHtcbiAgcGFkZGluZy10b3A6IGNhbGMoMC4yNXJlbSArIDFweCk7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKDAuMjVyZW0gKyAxcHgpO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4uZm9ybS1jb250cm9sLXBsYWludGV4dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy10b3A6IDAuMzc1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC4zNzVyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjMjEyNTI5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXdpZHRoOiAxcHggMDtcbn1cblxuLmZvcm0tY29udHJvbC1wbGFpbnRleHQuZm9ybS1jb250cm9sLXNtLCAuaW5wdXQtZ3JvdXAtc20gPiAuZm9ybS1jb250cm9sLXBsYWludGV4dC5mb3JtLWNvbnRyb2wsXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtcHJlcGVuZCA+IC5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0LmlucHV0LWdyb3VwLXRleHQsXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYXBwZW5kID4gLmZvcm0tY29udHJvbC1wbGFpbnRleHQuaW5wdXQtZ3JvdXAtdGV4dCxcbi5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1wcmVwZW5kID4gLmZvcm0tY29udHJvbC1wbGFpbnRleHQuYnRuLFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWFwcGVuZCA+IC5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0LmJ0biwgLmZvcm0tY29udHJvbC1wbGFpbnRleHQuZm9ybS1jb250cm9sLWxnLCAuaW5wdXQtZ3JvdXAtbGcgPiAuZm9ybS1jb250cm9sLXBsYWludGV4dC5mb3JtLWNvbnRyb2wsXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtcHJlcGVuZCA+IC5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0LmlucHV0LWdyb3VwLXRleHQsXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYXBwZW5kID4gLmZvcm0tY29udHJvbC1wbGFpbnRleHQuaW5wdXQtZ3JvdXAtdGV4dCxcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1wcmVwZW5kID4gLmZvcm0tY29udHJvbC1wbGFpbnRleHQuYnRuLFxuLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWFwcGVuZCA+IC5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0LmJ0biB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLmZvcm0tY29udHJvbC1zbSwgLmlucHV0LWdyb3VwLXNtID4gLmZvcm0tY29udHJvbCxcbi5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1wcmVwZW5kID4gLmlucHV0LWdyb3VwLXRleHQsXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYXBwZW5kID4gLmlucHV0LWdyb3VwLXRleHQsXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtcHJlcGVuZCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYXBwZW5kID4gLmJ0biB7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBib3JkZXItcmFkaXVzOiAwLjJyZW07XG59XG5cbnNlbGVjdC5mb3JtLWNvbnRyb2wtc206bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pLCAuaW5wdXQtZ3JvdXAtc20gPiBzZWxlY3QuZm9ybS1jb250cm9sOm5vdChbc2l6ZV0pOm5vdChbbXVsdGlwbGVdKSxcbi5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1wcmVwZW5kID4gc2VsZWN0LmlucHV0LWdyb3VwLXRleHQ6bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pLFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWFwcGVuZCA+IHNlbGVjdC5pbnB1dC1ncm91cC10ZXh0Om5vdChbc2l6ZV0pOm5vdChbbXVsdGlwbGVdKSxcbi5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1wcmVwZW5kID4gc2VsZWN0LmJ0bjpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSksXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYXBwZW5kID4gc2VsZWN0LmJ0bjpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSkge1xuICBoZWlnaHQ6IGNhbGMoMS44MTI1cmVtICsgMnB4KTtcbn1cblxuLmZvcm0tY29udHJvbC1sZywgLmlucHV0LWdyb3VwLWxnID4gLmZvcm0tY29udHJvbCxcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1wcmVwZW5kID4gLmlucHV0LWdyb3VwLXRleHQsXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYXBwZW5kID4gLmlucHV0LWdyb3VwLXRleHQsXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtcHJlcGVuZCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYXBwZW5kID4gLmJ0biB7XG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGJvcmRlci1yYWRpdXM6IDAuM3JlbTtcbn1cblxuc2VsZWN0LmZvcm0tY29udHJvbC1sZzpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSksIC5pbnB1dC1ncm91cC1sZyA+IHNlbGVjdC5mb3JtLWNvbnRyb2w6bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pLFxuLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLXByZXBlbmQgPiBzZWxlY3QuaW5wdXQtZ3JvdXAtdGV4dDpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSksXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYXBwZW5kID4gc2VsZWN0LmlucHV0LWdyb3VwLXRleHQ6bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pLFxuLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLXByZXBlbmQgPiBzZWxlY3QuYnRuOm5vdChbc2l6ZV0pOm5vdChbbXVsdGlwbGVdKSxcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1hcHBlbmQgPiBzZWxlY3QuYnRuOm5vdChbc2l6ZV0pOm5vdChbbXVsdGlwbGVdKSB7XG4gIGhlaWdodDogY2FsYygyLjg3NXJlbSArIDJweCk7XG59XG5cbi5mb3JtLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLmZvcm0tdGV4dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xufVxuXG4uZm9ybS1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi1yaWdodDogLTVweDtcbiAgbWFyZ2luLWxlZnQ6IC01cHg7XG59XG5cbi5mb3JtLXJvdyA+IC5jb2wsXG4uZm9ybS1yb3cgPiBbY2xhc3MqPVwiY29sLVwiXSB7XG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi5mb3JtLWNoZWNrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtO1xufVxuXG4uZm9ybS1jaGVjay1pbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLXRvcDogMC4zcmVtO1xuICBtYXJnaW4tbGVmdDogLTEuMjVyZW07XG59XG5cbi5mb3JtLWNoZWNrLWlucHV0OmRpc2FibGVkIH4gLmZvcm0tY2hlY2stbGFiZWwge1xuICBjb2xvcjogIzZjNzU3ZDtcbn1cblxuLmZvcm0tY2hlY2stbGFiZWwge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uZm9ybS1jaGVjay1pbmxpbmUge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG59XG5cbi5mb3JtLWNoZWNrLWlubGluZSAuZm9ybS1jaGVjay1pbnB1dCB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLnZhbGlkLWZlZWRiYWNrIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDAuMjVyZW07XG4gIGZvbnQtc2l6ZTogODAlO1xuICBjb2xvcjogIzI4YTc0NTtcbn1cblxuLnZhbGlkLXRvb2x0aXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgei1pbmRleDogNTtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAuNXJlbTtcbiAgbWFyZ2luLXRvcDogLjFyZW07XG4gIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQwLCAxNjcsIDY5LCAwLjgpO1xuICBib3JkZXItcmFkaXVzOiAuMnJlbTtcbn1cblxuLndhcy12YWxpZGF0ZWQgLmZvcm0tY29udHJvbDp2YWxpZCwgLmZvcm0tY29udHJvbC5pcy12YWxpZCwgLndhcy12YWxpZGF0ZWRcbi5jdXN0b20tc2VsZWN0OnZhbGlkLFxuLmN1c3RvbS1zZWxlY3QuaXMtdmFsaWQge1xuICBib3JkZXItY29sb3I6ICMyOGE3NDU7XG59XG5cbi53YXMtdmFsaWRhdGVkIC5mb3JtLWNvbnRyb2w6dmFsaWQ6Zm9jdXMsIC5mb3JtLWNvbnRyb2wuaXMtdmFsaWQ6Zm9jdXMsIC53YXMtdmFsaWRhdGVkXG4uY3VzdG9tLXNlbGVjdDp2YWxpZDpmb2N1cyxcbi5jdXN0b20tc2VsZWN0LmlzLXZhbGlkOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjMjhhNzQ1O1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSg0MCwgMTY3LCA2OSwgMC4yNSk7XG59XG5cbi53YXMtdmFsaWRhdGVkIC5mb3JtLWNvbnRyb2w6dmFsaWQgfiAudmFsaWQtZmVlZGJhY2ssXG4ud2FzLXZhbGlkYXRlZCAuZm9ybS1jb250cm9sOnZhbGlkIH4gLnZhbGlkLXRvb2x0aXAsIC5mb3JtLWNvbnRyb2wuaXMtdmFsaWQgfiAudmFsaWQtZmVlZGJhY2ssXG4uZm9ybS1jb250cm9sLmlzLXZhbGlkIH4gLnZhbGlkLXRvb2x0aXAsIC53YXMtdmFsaWRhdGVkXG4uY3VzdG9tLXNlbGVjdDp2YWxpZCB+IC52YWxpZC1mZWVkYmFjayxcbi53YXMtdmFsaWRhdGVkXG4uY3VzdG9tLXNlbGVjdDp2YWxpZCB+IC52YWxpZC10b29sdGlwLFxuLmN1c3RvbS1zZWxlY3QuaXMtdmFsaWQgfiAudmFsaWQtZmVlZGJhY2ssXG4uY3VzdG9tLXNlbGVjdC5pcy12YWxpZCB+IC52YWxpZC10b29sdGlwIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi53YXMtdmFsaWRhdGVkIC5mb3JtLWNvbnRyb2wtZmlsZTp2YWxpZCB+IC52YWxpZC1mZWVkYmFjayxcbi53YXMtdmFsaWRhdGVkIC5mb3JtLWNvbnRyb2wtZmlsZTp2YWxpZCB+IC52YWxpZC10b29sdGlwLCAuZm9ybS1jb250cm9sLWZpbGUuaXMtdmFsaWQgfiAudmFsaWQtZmVlZGJhY2ssXG4uZm9ybS1jb250cm9sLWZpbGUuaXMtdmFsaWQgfiAudmFsaWQtdG9vbHRpcCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ud2FzLXZhbGlkYXRlZCAuZm9ybS1jaGVjay1pbnB1dDp2YWxpZCB+IC5mb3JtLWNoZWNrLWxhYmVsLCAuZm9ybS1jaGVjay1pbnB1dC5pcy12YWxpZCB+IC5mb3JtLWNoZWNrLWxhYmVsIHtcbiAgY29sb3I6ICMyOGE3NDU7XG59XG5cbi53YXMtdmFsaWRhdGVkIC5mb3JtLWNoZWNrLWlucHV0OnZhbGlkIH4gLnZhbGlkLWZlZWRiYWNrLFxuLndhcy12YWxpZGF0ZWQgLmZvcm0tY2hlY2staW5wdXQ6dmFsaWQgfiAudmFsaWQtdG9vbHRpcCwgLmZvcm0tY2hlY2staW5wdXQuaXMtdmFsaWQgfiAudmFsaWQtZmVlZGJhY2ssXG4uZm9ybS1jaGVjay1pbnB1dC5pcy12YWxpZCB+IC52YWxpZC10b29sdGlwIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi53YXMtdmFsaWRhdGVkIC5jdXN0b20tY29udHJvbC1pbnB1dDp2YWxpZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbCwgLmN1c3RvbS1jb250cm9sLWlucHV0LmlzLXZhbGlkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsIHtcbiAgY29sb3I6ICMyOGE3NDU7XG59XG5cbi53YXMtdmFsaWRhdGVkIC5jdXN0b20tY29udHJvbC1pbnB1dDp2YWxpZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlLCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQuaXMtdmFsaWQgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3MWRkOGE7XG59XG5cbi53YXMtdmFsaWRhdGVkIC5jdXN0b20tY29udHJvbC1pbnB1dDp2YWxpZCB+IC52YWxpZC1mZWVkYmFjayxcbi53YXMtdmFsaWRhdGVkIC5jdXN0b20tY29udHJvbC1pbnB1dDp2YWxpZCB+IC52YWxpZC10b29sdGlwLCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQuaXMtdmFsaWQgfiAudmFsaWQtZmVlZGJhY2ssXG4uY3VzdG9tLWNvbnRyb2wtaW5wdXQuaXMtdmFsaWQgfiAudmFsaWQtdG9vbHRpcCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6dmFsaWQ6Y2hlY2tlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlLCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQuaXMtdmFsaWQ6Y2hlY2tlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM0Y2U1Nztcbn1cblxuLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1jb250cm9sLWlucHV0OnZhbGlkOmZvY3VzIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUsIC5jdXN0b20tY29udHJvbC1pbnB1dC5pcy12YWxpZDpmb2N1cyB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICNmZmYsIDAgMCAwIDAuMnJlbSByZ2JhKDQwLCAxNjcsIDY5LCAwLjI1KTtcbn1cblxuLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1maWxlLWlucHV0OnZhbGlkIH4gLmN1c3RvbS1maWxlLWxhYmVsLCAuY3VzdG9tLWZpbGUtaW5wdXQuaXMtdmFsaWQgfiAuY3VzdG9tLWZpbGUtbGFiZWwge1xuICBib3JkZXItY29sb3I6ICMyOGE3NDU7XG59XG5cbi53YXMtdmFsaWRhdGVkIC5jdXN0b20tZmlsZS1pbnB1dDp2YWxpZCB+IC5jdXN0b20tZmlsZS1sYWJlbDo6YmVmb3JlLCAuY3VzdG9tLWZpbGUtaW5wdXQuaXMtdmFsaWQgfiAuY3VzdG9tLWZpbGUtbGFiZWw6OmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogaW5oZXJpdDtcbn1cblxuLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1maWxlLWlucHV0OnZhbGlkIH4gLnZhbGlkLWZlZWRiYWNrLFxuLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1maWxlLWlucHV0OnZhbGlkIH4gLnZhbGlkLXRvb2x0aXAsIC5jdXN0b20tZmlsZS1pbnB1dC5pcy12YWxpZCB+IC52YWxpZC1mZWVkYmFjayxcbi5jdXN0b20tZmlsZS1pbnB1dC5pcy12YWxpZCB+IC52YWxpZC10b29sdGlwIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi53YXMtdmFsaWRhdGVkIC5jdXN0b20tZmlsZS1pbnB1dDp2YWxpZDpmb2N1cyB+IC5jdXN0b20tZmlsZS1sYWJlbCwgLmN1c3RvbS1maWxlLWlucHV0LmlzLXZhbGlkOmZvY3VzIH4gLmN1c3RvbS1maWxlLWxhYmVsIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoNDAsIDE2NywgNjksIDAuMjUpO1xufVxuXG4uaW52YWxpZC1mZWVkYmFjayB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xuICBmb250LXNpemU6IDgwJTtcbiAgY29sb3I6ICNkYzM1NDU7XG59XG5cbi5pbnZhbGlkLXRvb2x0aXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgei1pbmRleDogNTtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAuNXJlbTtcbiAgbWFyZ2luLXRvcDogLjFyZW07XG4gIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyMCwgNTMsIDY5LCAwLjgpO1xuICBib3JkZXItcmFkaXVzOiAuMnJlbTtcbn1cblxuLndhcy12YWxpZGF0ZWQgLmZvcm0tY29udHJvbDppbnZhbGlkLCAuZm9ybS1jb250cm9sLmlzLWludmFsaWQsIC53YXMtdmFsaWRhdGVkXG4uY3VzdG9tLXNlbGVjdDppbnZhbGlkLFxuLmN1c3RvbS1zZWxlY3QuaXMtaW52YWxpZCB7XG4gIGJvcmRlci1jb2xvcjogI2RjMzU0NTtcbn1cblxuLndhcy12YWxpZGF0ZWQgLmZvcm0tY29udHJvbDppbnZhbGlkOmZvY3VzLCAuZm9ybS1jb250cm9sLmlzLWludmFsaWQ6Zm9jdXMsIC53YXMtdmFsaWRhdGVkXG4uY3VzdG9tLXNlbGVjdDppbnZhbGlkOmZvY3VzLFxuLmN1c3RvbS1zZWxlY3QuaXMtaW52YWxpZDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogI2RjMzU0NTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMjIwLCA1MywgNjksIDAuMjUpO1xufVxuXG4ud2FzLXZhbGlkYXRlZCAuZm9ybS1jb250cm9sOmludmFsaWQgfiAuaW52YWxpZC1mZWVkYmFjayxcbi53YXMtdmFsaWRhdGVkIC5mb3JtLWNvbnRyb2w6aW52YWxpZCB+IC5pbnZhbGlkLXRvb2x0aXAsIC5mb3JtLWNvbnRyb2wuaXMtaW52YWxpZCB+IC5pbnZhbGlkLWZlZWRiYWNrLFxuLmZvcm0tY29udHJvbC5pcy1pbnZhbGlkIH4gLmludmFsaWQtdG9vbHRpcCwgLndhcy12YWxpZGF0ZWRcbi5jdXN0b20tc2VsZWN0OmludmFsaWQgfiAuaW52YWxpZC1mZWVkYmFjayxcbi53YXMtdmFsaWRhdGVkXG4uY3VzdG9tLXNlbGVjdDppbnZhbGlkIH4gLmludmFsaWQtdG9vbHRpcCxcbi5jdXN0b20tc2VsZWN0LmlzLWludmFsaWQgfiAuaW52YWxpZC1mZWVkYmFjayxcbi5jdXN0b20tc2VsZWN0LmlzLWludmFsaWQgfiAuaW52YWxpZC10b29sdGlwIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi53YXMtdmFsaWRhdGVkIC5mb3JtLWNvbnRyb2wtZmlsZTppbnZhbGlkIH4gLmludmFsaWQtZmVlZGJhY2ssXG4ud2FzLXZhbGlkYXRlZCAuZm9ybS1jb250cm9sLWZpbGU6aW52YWxpZCB+IC5pbnZhbGlkLXRvb2x0aXAsIC5mb3JtLWNvbnRyb2wtZmlsZS5pcy1pbnZhbGlkIH4gLmludmFsaWQtZmVlZGJhY2ssXG4uZm9ybS1jb250cm9sLWZpbGUuaXMtaW52YWxpZCB+IC5pbnZhbGlkLXRvb2x0aXAge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLndhcy12YWxpZGF0ZWQgLmZvcm0tY2hlY2staW5wdXQ6aW52YWxpZCB+IC5mb3JtLWNoZWNrLWxhYmVsLCAuZm9ybS1jaGVjay1pbnB1dC5pcy1pbnZhbGlkIH4gLmZvcm0tY2hlY2stbGFiZWwge1xuICBjb2xvcjogI2RjMzU0NTtcbn1cblxuLndhcy12YWxpZGF0ZWQgLmZvcm0tY2hlY2staW5wdXQ6aW52YWxpZCB+IC5pbnZhbGlkLWZlZWRiYWNrLFxuLndhcy12YWxpZGF0ZWQgLmZvcm0tY2hlY2staW5wdXQ6aW52YWxpZCB+IC5pbnZhbGlkLXRvb2x0aXAsIC5mb3JtLWNoZWNrLWlucHV0LmlzLWludmFsaWQgfiAuaW52YWxpZC1mZWVkYmFjayxcbi5mb3JtLWNoZWNrLWlucHV0LmlzLWludmFsaWQgfiAuaW52YWxpZC10b29sdGlwIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi53YXMtdmFsaWRhdGVkIC5jdXN0b20tY29udHJvbC1pbnB1dDppbnZhbGlkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsLCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQuaXMtaW52YWxpZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbCB7XG4gIGNvbG9yOiAjZGMzNTQ1O1xufVxuXG4ud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6aW52YWxpZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlLCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQuaXMtaW52YWxpZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VmYTJhOTtcbn1cblxuLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1jb250cm9sLWlucHV0OmludmFsaWQgfiAuaW52YWxpZC1mZWVkYmFjayxcbi53YXMtdmFsaWRhdGVkIC5jdXN0b20tY29udHJvbC1pbnB1dDppbnZhbGlkIH4gLmludmFsaWQtdG9vbHRpcCwgLmN1c3RvbS1jb250cm9sLWlucHV0LmlzLWludmFsaWQgfiAuaW52YWxpZC1mZWVkYmFjayxcbi5jdXN0b20tY29udHJvbC1pbnB1dC5pcy1pbnZhbGlkIH4gLmludmFsaWQtdG9vbHRpcCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6aW52YWxpZDpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUsIC5jdXN0b20tY29udHJvbC1pbnB1dC5pcy1pbnZhbGlkOmNoZWNrZWQgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNDYwNmQ7XG59XG5cbi53YXMtdmFsaWRhdGVkIC5jdXN0b20tY29udHJvbC1pbnB1dDppbnZhbGlkOmZvY3VzIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUsIC5jdXN0b20tY29udHJvbC1pbnB1dC5pcy1pbnZhbGlkOmZvY3VzIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICBib3gtc2hhZG93OiAwIDAgMCAxcHggI2ZmZiwgMCAwIDAgMC4ycmVtIHJnYmEoMjIwLCA1MywgNjksIDAuMjUpO1xufVxuXG4ud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWZpbGUtaW5wdXQ6aW52YWxpZCB+IC5jdXN0b20tZmlsZS1sYWJlbCwgLmN1c3RvbS1maWxlLWlucHV0LmlzLWludmFsaWQgfiAuY3VzdG9tLWZpbGUtbGFiZWwge1xuICBib3JkZXItY29sb3I6ICNkYzM1NDU7XG59XG5cbi53YXMtdmFsaWRhdGVkIC5jdXN0b20tZmlsZS1pbnB1dDppbnZhbGlkIH4gLmN1c3RvbS1maWxlLWxhYmVsOjpiZWZvcmUsIC5jdXN0b20tZmlsZS1pbnB1dC5pcy1pbnZhbGlkIH4gLmN1c3RvbS1maWxlLWxhYmVsOjpiZWZvcmUge1xuICBib3JkZXItY29sb3I6IGluaGVyaXQ7XG59XG5cbi53YXMtdmFsaWRhdGVkIC5jdXN0b20tZmlsZS1pbnB1dDppbnZhbGlkIH4gLmludmFsaWQtZmVlZGJhY2ssXG4ud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWZpbGUtaW5wdXQ6aW52YWxpZCB+IC5pbnZhbGlkLXRvb2x0aXAsIC5jdXN0b20tZmlsZS1pbnB1dC5pcy1pbnZhbGlkIH4gLmludmFsaWQtZmVlZGJhY2ssXG4uY3VzdG9tLWZpbGUtaW5wdXQuaXMtaW52YWxpZCB+IC5pbnZhbGlkLXRvb2x0aXAge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1maWxlLWlucHV0OmludmFsaWQ6Zm9jdXMgfiAuY3VzdG9tLWZpbGUtbGFiZWwsIC5jdXN0b20tZmlsZS1pbnB1dC5pcy1pbnZhbGlkOmZvY3VzIH4gLmN1c3RvbS1maWxlLWxhYmVsIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMjIwLCA1MywgNjksIDAuMjUpO1xufVxuXG4uZm9ybS1pbmxpbmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uZm9ybS1pbmxpbmUgLmZvcm0tY2hlY2sge1xuICB3aWR0aDogMTAwJTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gIC5mb3JtLWlubGluZSBsYWJlbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbiAgLmZvcm0taW5saW5lIC5mb3JtLWdyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gIC5mb3JtLWlubGluZSAuZm9ybS1jb250cm9sIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAuZm9ybS1pbmxpbmUgLmZvcm0tY29udHJvbC1wbGFpbnRleHQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuICAuZm9ybS1pbmxpbmUgLmlucHV0LWdyb3VwLFxuICAuZm9ybS1pbmxpbmUgLmN1c3RvbS1zZWxlY3Qge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG4gIC5mb3JtLWlubGluZSAuZm9ybS1jaGVjayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuICAuZm9ybS1pbmxpbmUgLmZvcm0tY2hlY2staW5wdXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuICAuZm9ybS1pbmxpbmUgLmN1c3RvbS1jb250cm9sIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG4gIC5mb3JtLWlubGluZSAuY3VzdG9tLWNvbnRyb2wtbGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLmJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDAuMzc1cmVtIDAuNzVyZW07XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZS1pbi1vdXQsIGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZS1pbi1vdXQsIGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLWluLW91dCwgYm94LXNoYWRvdyAwLjE1cyBlYXNlLWluLW91dDtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAuYnRuIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG59XG5cbi5idG46aG92ZXIsIC5idG46Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5idG46Zm9jdXMsIC5idG4uZm9jdXMge1xuICBvdXRsaW5lOiAwO1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSgwLCAxMjMsIDI1NSwgMC4yNSk7XG59XG5cbi5idG4uZGlzYWJsZWQsIC5idG46ZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjY1O1xufVxuXG4uYnRuOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uYnRuOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwgLmJ0bjpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuXG5hLmJ0bi5kaXNhYmxlZCxcbmZpZWxkc2V0OmRpc2FibGVkIGEuYnRuIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5idG4tcHJpbWFyeSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3YmZmO1xuICBib3JkZXItY29sb3I6ICMwMDdiZmY7XG59XG5cbi5idG4tcHJpbWFyeTpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA2OWQ5O1xuICBib3JkZXItY29sb3I6ICMwMDYyY2M7XG59XG5cbi5idG4tcHJpbWFyeTpmb2N1cywgLmJ0bi1wcmltYXJ5LmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMCwgMTIzLCAyNTUsIDAuNSk7XG59XG5cbi5idG4tcHJpbWFyeS5kaXNhYmxlZCwgLmJ0bi1wcmltYXJ5OmRpc2FibGVkIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDdiZmY7XG4gIGJvcmRlci1jb2xvcjogIzAwN2JmZjtcbn1cblxuLmJ0bi1wcmltYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwgLmJ0bi1wcmltYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSxcbi5zaG93ID4gLmJ0bi1wcmltYXJ5LmRyb3Bkb3duLXRvZ2dsZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA2MmNjO1xuICBib3JkZXItY29sb3I6ICMwMDVjYmY7XG59XG5cbi5idG4tcHJpbWFyeTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmU6Zm9jdXMsIC5idG4tcHJpbWFyeTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmU6Zm9jdXMsXG4uc2hvdyA+IC5idG4tcHJpbWFyeS5kcm9wZG93bi10b2dnbGU6Zm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSgwLCAxMjMsIDI1NSwgMC41KTtcbn1cblxuLmJ0bi1zZWNvbmRhcnkge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZjNzU3ZDtcbiAgYm9yZGVyLWNvbG9yOiAjNmM3NTdkO1xufVxuXG4uYnRuLXNlY29uZGFyeTpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWE2MjY4O1xuICBib3JkZXItY29sb3I6ICM1NDViNjI7XG59XG5cbi5idG4tc2Vjb25kYXJ5OmZvY3VzLCAuYnRuLXNlY29uZGFyeS5mb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDEwOCwgMTE3LCAxMjUsIDAuNSk7XG59XG5cbi5idG4tc2Vjb25kYXJ5LmRpc2FibGVkLCAuYnRuLXNlY29uZGFyeTpkaXNhYmxlZCB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNmM3NTdkO1xuICBib3JkZXItY29sb3I6ICM2Yzc1N2Q7XG59XG5cbi5idG4tc2Vjb25kYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwgLmJ0bi1zZWNvbmRhcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLFxuLnNob3cgPiAuYnRuLXNlY29uZGFyeS5kcm9wZG93bi10b2dnbGUge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU0NWI2MjtcbiAgYm9yZGVyLWNvbG9yOiAjNGU1NTViO1xufVxuXG4uYnRuLXNlY29uZGFyeTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmU6Zm9jdXMsIC5idG4tc2Vjb25kYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZTpmb2N1cyxcbi5zaG93ID4gLmJ0bi1zZWNvbmRhcnkuZHJvcGRvd24tdG9nZ2xlOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMTA4LCAxMTcsIDEyNSwgMC41KTtcbn1cblxuLmJ0bi1zdWNjZXNzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyOGE3NDU7XG4gIGJvcmRlci1jb2xvcjogIzI4YTc0NTtcbn1cblxuLmJ0bi1zdWNjZXNzOmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTg4Mzg7XG4gIGJvcmRlci1jb2xvcjogIzFlN2UzNDtcbn1cblxuLmJ0bi1zdWNjZXNzOmZvY3VzLCAuYnRuLXN1Y2Nlc3MuZm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSg0MCwgMTY3LCA2OSwgMC41KTtcbn1cblxuLmJ0bi1zdWNjZXNzLmRpc2FibGVkLCAuYnRuLXN1Y2Nlc3M6ZGlzYWJsZWQge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI4YTc0NTtcbiAgYm9yZGVyLWNvbG9yOiAjMjhhNzQ1O1xufVxuXG4uYnRuLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLCAuYnRuLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLFxuLnNob3cgPiAuYnRuLXN1Y2Nlc3MuZHJvcGRvd24tdG9nZ2xlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZTdlMzQ7XG4gIGJvcmRlci1jb2xvcjogIzFjNzQzMDtcbn1cblxuLmJ0bi1zdWNjZXNzOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZTpmb2N1cywgLmJ0bi1zdWNjZXNzOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZTpmb2N1cyxcbi5zaG93ID4gLmJ0bi1zdWNjZXNzLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDQwLCAxNjcsIDY5LCAwLjUpO1xufVxuXG4uYnRuLWluZm8ge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3YTJiODtcbiAgYm9yZGVyLWNvbG9yOiAjMTdhMmI4O1xufVxuXG4uYnRuLWluZm86aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEzODQ5NjtcbiAgYm9yZGVyLWNvbG9yOiAjMTE3YThiO1xufVxuXG4uYnRuLWluZm86Zm9jdXMsIC5idG4taW5mby5mb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDIzLCAxNjIsIDE4NCwgMC41KTtcbn1cblxuLmJ0bi1pbmZvLmRpc2FibGVkLCAuYnRuLWluZm86ZGlzYWJsZWQge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3YTJiODtcbiAgYm9yZGVyLWNvbG9yOiAjMTdhMmI4O1xufVxuXG4uYnRuLWluZm86bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLCAuYnRuLWluZm86bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLFxuLnNob3cgPiAuYnRuLWluZm8uZHJvcGRvd24tdG9nZ2xlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMTdhOGI7XG4gIGJvcmRlci1jb2xvcjogIzEwNzA3Zjtcbn1cblxuLmJ0bi1pbmZvOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZTpmb2N1cywgLmJ0bi1pbmZvOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZTpmb2N1cyxcbi5zaG93ID4gLmJ0bi1pbmZvLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDIzLCAxNjIsIDE4NCwgMC41KTtcbn1cblxuLmJ0bi13YXJuaW5nIHtcbiAgY29sb3I6ICMyMTI1Mjk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmMxMDc7XG4gIGJvcmRlci1jb2xvcjogI2ZmYzEwNztcbn1cblxuLmJ0bi13YXJuaW5nOmhvdmVyIHtcbiAgY29sb3I6ICMyMTI1Mjk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMGE4MDA7XG4gIGJvcmRlci1jb2xvcjogI2QzOWUwMDtcbn1cblxuLmJ0bi13YXJuaW5nOmZvY3VzLCAuYnRuLXdhcm5pbmcuZm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSgyNTUsIDE5MywgNywgMC41KTtcbn1cblxuLmJ0bi13YXJuaW5nLmRpc2FibGVkLCAuYnRuLXdhcm5pbmc6ZGlzYWJsZWQge1xuICBjb2xvcjogIzIxMjUyOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYzEwNztcbiAgYm9yZGVyLWNvbG9yOiAjZmZjMTA3O1xufVxuXG4uYnRuLXdhcm5pbmc6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLCAuYnRuLXdhcm5pbmc6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLFxuLnNob3cgPiAuYnRuLXdhcm5pbmcuZHJvcGRvd24tdG9nZ2xlIHtcbiAgY29sb3I6ICMyMTI1Mjk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMzllMDA7XG4gIGJvcmRlci1jb2xvcjogI2M2OTUwMDtcbn1cblxuLmJ0bi13YXJuaW5nOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZTpmb2N1cywgLmJ0bi13YXJuaW5nOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZTpmb2N1cyxcbi5zaG93ID4gLmJ0bi13YXJuaW5nLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDI1NSwgMTkzLCA3LCAwLjUpO1xufVxuXG4uYnRuLWRhbmdlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGMzNTQ1O1xuICBib3JkZXItY29sb3I6ICNkYzM1NDU7XG59XG5cbi5idG4tZGFuZ2VyOmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjODIzMzM7XG4gIGJvcmRlci1jb2xvcjogI2JkMjEzMDtcbn1cblxuLmJ0bi1kYW5nZXI6Zm9jdXMsIC5idG4tZGFuZ2VyLmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMjIwLCA1MywgNjksIDAuNSk7XG59XG5cbi5idG4tZGFuZ2VyLmRpc2FibGVkLCAuYnRuLWRhbmdlcjpkaXNhYmxlZCB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGMzNTQ1O1xuICBib3JkZXItY29sb3I6ICNkYzM1NDU7XG59XG5cbi5idG4tZGFuZ2VyOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwgLmJ0bi1kYW5nZXI6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLFxuLnNob3cgPiAuYnRuLWRhbmdlci5kcm9wZG93bi10b2dnbGUge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JkMjEzMDtcbiAgYm9yZGVyLWNvbG9yOiAjYjIxZjJkO1xufVxuXG4uYnRuLWRhbmdlcjpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmU6Zm9jdXMsIC5idG4tZGFuZ2VyOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZTpmb2N1cyxcbi5zaG93ID4gLmJ0bi1kYW5nZXIuZHJvcGRvd24tdG9nZ2xlOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMjIwLCA1MywgNjksIDAuNSk7XG59XG5cbi5idG4tbGlnaHQge1xuICBjb2xvcjogIzIxMjUyOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjlmYTtcbiAgYm9yZGVyLWNvbG9yOiAjZjhmOWZhO1xufVxuXG4uYnRuLWxpZ2h0OmhvdmVyIHtcbiAgY29sb3I6ICMyMTI1Mjk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMmU2ZWE7XG4gIGJvcmRlci1jb2xvcjogI2RhZTBlNTtcbn1cblxuLmJ0bi1saWdodDpmb2N1cywgLmJ0bi1saWdodC5mb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDI0OCwgMjQ5LCAyNTAsIDAuNSk7XG59XG5cbi5idG4tbGlnaHQuZGlzYWJsZWQsIC5idG4tbGlnaHQ6ZGlzYWJsZWQge1xuICBjb2xvcjogIzIxMjUyOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjlmYTtcbiAgYm9yZGVyLWNvbG9yOiAjZjhmOWZhO1xufVxuXG4uYnRuLWxpZ2h0Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwgLmJ0bi1saWdodDpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsXG4uc2hvdyA+IC5idG4tbGlnaHQuZHJvcGRvd24tdG9nZ2xlIHtcbiAgY29sb3I6ICMyMTI1Mjk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkYWUwZTU7XG4gIGJvcmRlci1jb2xvcjogI2QzZDlkZjtcbn1cblxuLmJ0bi1saWdodDpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmU6Zm9jdXMsIC5idG4tbGlnaHQ6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlOmZvY3VzLFxuLnNob3cgPiAuYnRuLWxpZ2h0LmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDI0OCwgMjQ5LCAyNTAsIDAuNSk7XG59XG5cbi5idG4tZGFyayB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQzYTQwO1xuICBib3JkZXItY29sb3I6ICMzNDNhNDA7XG59XG5cbi5idG4tZGFyazpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjMyNzJiO1xuICBib3JkZXItY29sb3I6ICMxZDIxMjQ7XG59XG5cbi5idG4tZGFyazpmb2N1cywgLmJ0bi1kYXJrLmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoNTIsIDU4LCA2NCwgMC41KTtcbn1cblxuLmJ0bi1kYXJrLmRpc2FibGVkLCAuYnRuLWRhcms6ZGlzYWJsZWQge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM0M2E0MDtcbiAgYm9yZGVyLWNvbG9yOiAjMzQzYTQwO1xufVxuXG4uYnRuLWRhcms6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLCAuYnRuLWRhcms6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLFxuLnNob3cgPiAuYnRuLWRhcmsuZHJvcGRvd24tdG9nZ2xlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZDIxMjQ7XG4gIGJvcmRlci1jb2xvcjogIzE3MWExZDtcbn1cblxuLmJ0bi1kYXJrOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZTpmb2N1cywgLmJ0bi1kYXJrOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZTpmb2N1cyxcbi5zaG93ID4gLmJ0bi1kYXJrLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDUyLCA1OCwgNjQsIDAuNSk7XG59XG5cbi5idG4tb3V0bGluZS1wcmltYXJ5IHtcbiAgY29sb3I6ICMwMDdiZmY7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3JkZXItY29sb3I6ICMwMDdiZmY7XG59XG5cbi5idG4tb3V0bGluZS1wcmltYXJ5OmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDdiZmY7XG4gIGJvcmRlci1jb2xvcjogIzAwN2JmZjtcbn1cblxuLmJ0bi1vdXRsaW5lLXByaW1hcnk6Zm9jdXMsIC5idG4tb3V0bGluZS1wcmltYXJ5LmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMCwgMTIzLCAyNTUsIDAuNSk7XG59XG5cbi5idG4tb3V0bGluZS1wcmltYXJ5LmRpc2FibGVkLCAuYnRuLW91dGxpbmUtcHJpbWFyeTpkaXNhYmxlZCB7XG4gIGNvbG9yOiAjMDA3YmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmJ0bi1vdXRsaW5lLXByaW1hcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLCAuYnRuLW91dGxpbmUtcHJpbWFyeTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsXG4uc2hvdyA+IC5idG4tb3V0bGluZS1wcmltYXJ5LmRyb3Bkb3duLXRvZ2dsZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3YmZmO1xuICBib3JkZXItY29sb3I6ICMwMDdiZmY7XG59XG5cbi5idG4tb3V0bGluZS1wcmltYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZTpmb2N1cywgLmJ0bi1vdXRsaW5lLXByaW1hcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlOmZvY3VzLFxuLnNob3cgPiAuYnRuLW91dGxpbmUtcHJpbWFyeS5kcm9wZG93bi10b2dnbGU6Zm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSgwLCAxMjMsIDI1NSwgMC41KTtcbn1cblxuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSB7XG4gIGNvbG9yOiAjNmM3NTdkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiAjNmM3NTdkO1xufVxuXG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5OmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2Yzc1N2Q7XG4gIGJvcmRlci1jb2xvcjogIzZjNzU3ZDtcbn1cblxuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpmb2N1cywgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeS5mb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDEwOCwgMTE3LCAxMjUsIDAuNSk7XG59XG5cbi5idG4tb3V0bGluZS1zZWNvbmRhcnkuZGlzYWJsZWQsIC5idG4tb3V0bGluZS1zZWNvbmRhcnk6ZGlzYWJsZWQge1xuICBjb2xvcjogIzZjNzU3ZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5idG4tb3V0bGluZS1zZWNvbmRhcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLCAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSxcbi5zaG93ID4gLmJ0bi1vdXRsaW5lLXNlY29uZGFyeS5kcm9wZG93bi10b2dnbGUge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZjNzU3ZDtcbiAgYm9yZGVyLWNvbG9yOiAjNmM3NTdkO1xufVxuXG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZTpmb2N1cywgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmU6Zm9jdXMsXG4uc2hvdyA+IC5idG4tb3V0bGluZS1zZWNvbmRhcnkuZHJvcGRvd24tdG9nZ2xlOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMTA4LCAxMTcsIDEyNSwgMC41KTtcbn1cblxuLmJ0bi1vdXRsaW5lLXN1Y2Nlc3Mge1xuICBjb2xvcjogIzI4YTc0NTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogIzI4YTc0NTtcbn1cblxuLmJ0bi1vdXRsaW5lLXN1Y2Nlc3M6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI4YTc0NTtcbiAgYm9yZGVyLWNvbG9yOiAjMjhhNzQ1O1xufVxuXG4uYnRuLW91dGxpbmUtc3VjY2Vzczpmb2N1cywgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuZm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSg0MCwgMTY3LCA2OSwgMC41KTtcbn1cblxuLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuZGlzYWJsZWQsIC5idG4tb3V0bGluZS1zdWNjZXNzOmRpc2FibGVkIHtcbiAgY29sb3I6ICMyOGE3NDU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uYnRuLW91dGxpbmUtc3VjY2Vzczpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsIC5idG4tb3V0bGluZS1zdWNjZXNzOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSxcbi5zaG93ID4gLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuZHJvcGRvd24tdG9nZ2xlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyOGE3NDU7XG4gIGJvcmRlci1jb2xvcjogIzI4YTc0NTtcbn1cblxuLmJ0bi1vdXRsaW5lLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlOmZvY3VzLCAuYnRuLW91dGxpbmUtc3VjY2Vzczpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmU6Zm9jdXMsXG4uc2hvdyA+IC5idG4tb3V0bGluZS1zdWNjZXNzLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDQwLCAxNjcsIDY5LCAwLjUpO1xufVxuXG4uYnRuLW91dGxpbmUtaW5mbyB7XG4gIGNvbG9yOiAjMTdhMmI4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiAjMTdhMmI4O1xufVxuXG4uYnRuLW91dGxpbmUtaW5mbzpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTdhMmI4O1xuICBib3JkZXItY29sb3I6ICMxN2EyYjg7XG59XG5cbi5idG4tb3V0bGluZS1pbmZvOmZvY3VzLCAuYnRuLW91dGxpbmUtaW5mby5mb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDIzLCAxNjIsIDE4NCwgMC41KTtcbn1cblxuLmJ0bi1vdXRsaW5lLWluZm8uZGlzYWJsZWQsIC5idG4tb3V0bGluZS1pbmZvOmRpc2FibGVkIHtcbiAgY29sb3I6ICMxN2EyYjg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uYnRuLW91dGxpbmUtaW5mbzpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsIC5idG4tb3V0bGluZS1pbmZvOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSxcbi5zaG93ID4gLmJ0bi1vdXRsaW5lLWluZm8uZHJvcGRvd24tdG9nZ2xlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxN2EyYjg7XG4gIGJvcmRlci1jb2xvcjogIzE3YTJiODtcbn1cblxuLmJ0bi1vdXRsaW5lLWluZm86bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlOmZvY3VzLCAuYnRuLW91dGxpbmUtaW5mbzpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmU6Zm9jdXMsXG4uc2hvdyA+IC5idG4tb3V0bGluZS1pbmZvLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDIzLCAxNjIsIDE4NCwgMC41KTtcbn1cblxuLmJ0bi1vdXRsaW5lLXdhcm5pbmcge1xuICBjb2xvcjogI2ZmYzEwNztcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogI2ZmYzEwNztcbn1cblxuLmJ0bi1vdXRsaW5lLXdhcm5pbmc6aG92ZXIge1xuICBjb2xvcjogIzIxMjUyOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYzEwNztcbiAgYm9yZGVyLWNvbG9yOiAjZmZjMTA3O1xufVxuXG4uYnRuLW91dGxpbmUtd2FybmluZzpmb2N1cywgLmJ0bi1vdXRsaW5lLXdhcm5pbmcuZm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSgyNTUsIDE5MywgNywgMC41KTtcbn1cblxuLmJ0bi1vdXRsaW5lLXdhcm5pbmcuZGlzYWJsZWQsIC5idG4tb3V0bGluZS13YXJuaW5nOmRpc2FibGVkIHtcbiAgY29sb3I6ICNmZmMxMDc7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uYnRuLW91dGxpbmUtd2FybmluZzpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsIC5idG4tb3V0bGluZS13YXJuaW5nOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSxcbi5zaG93ID4gLmJ0bi1vdXRsaW5lLXdhcm5pbmcuZHJvcGRvd24tdG9nZ2xlIHtcbiAgY29sb3I6ICMyMTI1Mjk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmMxMDc7XG4gIGJvcmRlci1jb2xvcjogI2ZmYzEwNztcbn1cblxuLmJ0bi1vdXRsaW5lLXdhcm5pbmc6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlOmZvY3VzLCAuYnRuLW91dGxpbmUtd2FybmluZzpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmU6Zm9jdXMsXG4uc2hvdyA+IC5idG4tb3V0bGluZS13YXJuaW5nLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDI1NSwgMTkzLCA3LCAwLjUpO1xufVxuXG4uYnRuLW91dGxpbmUtZGFuZ2VyIHtcbiAgY29sb3I6ICNkYzM1NDU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3JkZXItY29sb3I6ICNkYzM1NDU7XG59XG5cbi5idG4tb3V0bGluZS1kYW5nZXI6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RjMzU0NTtcbiAgYm9yZGVyLWNvbG9yOiAjZGMzNTQ1O1xufVxuXG4uYnRuLW91dGxpbmUtZGFuZ2VyOmZvY3VzLCAuYnRuLW91dGxpbmUtZGFuZ2VyLmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMjIwLCA1MywgNjksIDAuNSk7XG59XG5cbi5idG4tb3V0bGluZS1kYW5nZXIuZGlzYWJsZWQsIC5idG4tb3V0bGluZS1kYW5nZXI6ZGlzYWJsZWQge1xuICBjb2xvcjogI2RjMzU0NTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5idG4tb3V0bGluZS1kYW5nZXI6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLCAuYnRuLW91dGxpbmUtZGFuZ2VyOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSxcbi5zaG93ID4gLmJ0bi1vdXRsaW5lLWRhbmdlci5kcm9wZG93bi10b2dnbGUge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RjMzU0NTtcbiAgYm9yZGVyLWNvbG9yOiAjZGMzNTQ1O1xufVxuXG4uYnRuLW91dGxpbmUtZGFuZ2VyOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZTpmb2N1cywgLmJ0bi1vdXRsaW5lLWRhbmdlcjpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmU6Zm9jdXMsXG4uc2hvdyA+IC5idG4tb3V0bGluZS1kYW5nZXIuZHJvcGRvd24tdG9nZ2xlOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMjIwLCA1MywgNjksIDAuNSk7XG59XG5cbi5idG4tb3V0bGluZS1saWdodCB7XG4gIGNvbG9yOiAjZjhmOWZhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiAjZjhmOWZhO1xufVxuXG4uYnRuLW91dGxpbmUtbGlnaHQ6aG92ZXIge1xuICBjb2xvcjogIzIxMjUyOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjlmYTtcbiAgYm9yZGVyLWNvbG9yOiAjZjhmOWZhO1xufVxuXG4uYnRuLW91dGxpbmUtbGlnaHQ6Zm9jdXMsIC5idG4tb3V0bGluZS1saWdodC5mb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDI0OCwgMjQ5LCAyNTAsIDAuNSk7XG59XG5cbi5idG4tb3V0bGluZS1saWdodC5kaXNhYmxlZCwgLmJ0bi1vdXRsaW5lLWxpZ2h0OmRpc2FibGVkIHtcbiAgY29sb3I6ICNmOGY5ZmE7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uYnRuLW91dGxpbmUtbGlnaHQ6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLCAuYnRuLW91dGxpbmUtbGlnaHQ6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLFxuLnNob3cgPiAuYnRuLW91dGxpbmUtbGlnaHQuZHJvcGRvd24tdG9nZ2xlIHtcbiAgY29sb3I6ICMyMTI1Mjk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGY5ZmE7XG4gIGJvcmRlci1jb2xvcjogI2Y4ZjlmYTtcbn1cblxuLmJ0bi1vdXRsaW5lLWxpZ2h0Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZTpmb2N1cywgLmJ0bi1vdXRsaW5lLWxpZ2h0Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZTpmb2N1cyxcbi5zaG93ID4gLmJ0bi1vdXRsaW5lLWxpZ2h0LmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDI0OCwgMjQ5LCAyNTAsIDAuNSk7XG59XG5cbi5idG4tb3V0bGluZS1kYXJrIHtcbiAgY29sb3I6ICMzNDNhNDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3JkZXItY29sb3I6ICMzNDNhNDA7XG59XG5cbi5idG4tb3V0bGluZS1kYXJrOmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNDNhNDA7XG4gIGJvcmRlci1jb2xvcjogIzM0M2E0MDtcbn1cblxuLmJ0bi1vdXRsaW5lLWRhcms6Zm9jdXMsIC5idG4tb3V0bGluZS1kYXJrLmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoNTIsIDU4LCA2NCwgMC41KTtcbn1cblxuLmJ0bi1vdXRsaW5lLWRhcmsuZGlzYWJsZWQsIC5idG4tb3V0bGluZS1kYXJrOmRpc2FibGVkIHtcbiAgY29sb3I6ICMzNDNhNDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uYnRuLW91dGxpbmUtZGFyazpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsIC5idG4tb3V0bGluZS1kYXJrOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSxcbi5zaG93ID4gLmJ0bi1vdXRsaW5lLWRhcmsuZHJvcGRvd24tdG9nZ2xlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNDNhNDA7XG4gIGJvcmRlci1jb2xvcjogIzM0M2E0MDtcbn1cblxuLmJ0bi1vdXRsaW5lLWRhcms6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlOmZvY3VzLCAuYnRuLW91dGxpbmUtZGFyazpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmU6Zm9jdXMsXG4uc2hvdyA+IC5idG4tb3V0bGluZS1kYXJrLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDUyLCA1OCwgNjQsIDAuNSk7XG59XG5cbi5idG4tbGluayB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAjMDA3YmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmJ0bi1saW5rOmhvdmVyIHtcbiAgY29sb3I6ICMwMDU2YjM7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmJ0bi1saW5rOmZvY3VzLCAuYnRuLWxpbmsuZm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLmJ0bi1saW5rOmRpc2FibGVkLCAuYnRuLWxpbmsuZGlzYWJsZWQge1xuICBjb2xvcjogIzZjNzU3ZDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5idG4tbGcsIC5idG4tZ3JvdXAtbGcgPiAuYnRuIHtcbiAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgYm9yZGVyLXJhZGl1czogMC4zcmVtO1xufVxuXG4uYnRuLXNtLCAuYnRuLWdyb3VwLXNtID4gLmJ0biB7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBib3JkZXItcmFkaXVzOiAwLjJyZW07XG59XG5cbi5idG4tYmxvY2sge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5idG4tYmxvY2sgKyAuYnRuLWJsb2NrIHtcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xufVxuXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdLmJ0bi1ibG9jayxcbmlucHV0W3R5cGU9XCJyZXNldFwiXS5idG4tYmxvY2ssXG5pbnB1dFt0eXBlPVwiYnV0dG9uXCJdLmJ0bi1ibG9jayB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uZmFkZSB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgbGluZWFyO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5mYWRlIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG59XG5cbi5mYWRlOm5vdCguc2hvdykge1xuICBvcGFjaXR5OiAwO1xufVxuXG4uY29sbGFwc2U6bm90KC5zaG93KSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jb2xsYXBzaW5nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IGhlaWdodCAwLjM1cyBlYXNlO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5jb2xsYXBzaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG59XG5cbi5kcm9wdXAsXG4uZHJvcHJpZ2h0LFxuLmRyb3Bkb3duLFxuLmRyb3BsZWZ0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZHJvcGRvd24tdG9nZ2xlOjphZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDAuMjU1ZW07XG4gIHZlcnRpY2FsLWFsaWduOiAwLjI1NWVtO1xuICBjb250ZW50OiBcIlwiO1xuICBib3JkZXItdG9wOiAwLjNlbSBzb2xpZDtcbiAgYm9yZGVyLXJpZ2h0OiAwLjNlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYm9yZGVyLWxlZnQ6IDAuM2VtIHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4uZHJvcGRvd24tdG9nZ2xlOmVtcHR5OjphZnRlciB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4uZHJvcGRvd24tbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDAwO1xuICBkaXNwbGF5OiBub25lO1xuICBmbG9hdDogbGVmdDtcbiAgbWluLXdpZHRoOiAxMHJlbTtcbiAgcGFkZGluZzogMC41cmVtIDA7XG4gIG1hcmdpbjogMC4xMjVyZW0gMCAwO1xuICBmb250LXNpemU6IDFyZW07XG4gIGNvbG9yOiAjMjEyNTI5O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xufVxuXG4uZHJvcGRvd24tbWVudS1yaWdodCB7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvO1xufVxuXG4uZHJvcHVwIC5kcm9wZG93bi1tZW51IHtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IDEwMCU7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuMTI1cmVtO1xufVxuXG4uZHJvcHVwIC5kcm9wZG93bi10b2dnbGU6OmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMC4yNTVlbTtcbiAgdmVydGljYWwtYWxpZ246IDAuMjU1ZW07XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci1yaWdodDogMC4zZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDAuM2VtIHNvbGlkO1xuICBib3JkZXItbGVmdDogMC4zZW0gc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi5kcm9wdXAgLmRyb3Bkb3duLXRvZ2dsZTplbXB0eTo6YWZ0ZXIge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLmRyb3ByaWdodCAuZHJvcGRvd24tbWVudSB7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwLjEyNXJlbTtcbn1cblxuLmRyb3ByaWdodCAuZHJvcGRvd24tdG9nZ2xlOjphZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDAuMjU1ZW07XG4gIHZlcnRpY2FsLWFsaWduOiAwLjI1NWVtO1xuICBjb250ZW50OiBcIlwiO1xuICBib3JkZXItdG9wOiAwLjNlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xuICBib3JkZXItYm90dG9tOiAwLjNlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQ6IDAuM2VtIHNvbGlkO1xufVxuXG4uZHJvcHJpZ2h0IC5kcm9wZG93bi10b2dnbGU6ZW1wdHk6OmFmdGVyIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5kcm9wcmlnaHQgLmRyb3Bkb3duLXRvZ2dsZTo6YWZ0ZXIge1xuICB2ZXJ0aWNhbC1hbGlnbjogMDtcbn1cblxuLmRyb3BsZWZ0IC5kcm9wZG93bi1tZW51IHtcbiAgdG9wOiAwO1xuICByaWdodDogMTAwJTtcbiAgbGVmdDogYXV0bztcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwLjEyNXJlbTtcbn1cblxuLmRyb3BsZWZ0IC5kcm9wZG93bi10b2dnbGU6OmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMC4yNTVlbTtcbiAgdmVydGljYWwtYWxpZ246IDAuMjU1ZW07XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG5cbi5kcm9wbGVmdCAuZHJvcGRvd24tdG9nZ2xlOjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kcm9wbGVmdCAuZHJvcGRvd24tdG9nZ2xlOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMC4yNTVlbTtcbiAgdmVydGljYWwtYWxpZ246IDAuMjU1ZW07XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJvcmRlci10b3A6IDAuM2VtIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDAuM2VtIHNvbGlkO1xuICBib3JkZXItYm90dG9tOiAwLjNlbSBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLmRyb3BsZWZ0IC5kcm9wZG93bi10b2dnbGU6ZW1wdHk6OmFmdGVyIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5kcm9wbGVmdCAuZHJvcGRvd24tdG9nZ2xlOjpiZWZvcmUge1xuICB2ZXJ0aWNhbC1hbGlnbjogMDtcbn1cblxuLmRyb3Bkb3duLW1lbnVbeC1wbGFjZW1lbnRePVwidG9wXCJdLCAuZHJvcGRvd24tbWVudVt4LXBsYWNlbWVudF49XCJyaWdodFwiXSwgLmRyb3Bkb3duLW1lbnVbeC1wbGFjZW1lbnRePVwiYm90dG9tXCJdLCAuZHJvcGRvd24tbWVudVt4LXBsYWNlbWVudF49XCJsZWZ0XCJdIHtcbiAgcmlnaHQ6IGF1dG87XG4gIGJvdHRvbTogYXV0bztcbn1cblxuLmRyb3Bkb3duLWRpdmlkZXIge1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbjogMC41cmVtIDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTllY2VmO1xufVxuXG4uZHJvcGRvd24taXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMC4yNXJlbSAxLjVyZW07XG4gIGNsZWFyOiBib3RoO1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogIzIxMjUyOTtcbiAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbn1cblxuLmRyb3Bkb3duLWl0ZW06aG92ZXIsIC5kcm9wZG93bi1pdGVtOmZvY3VzIHtcbiAgY29sb3I6ICMxNjE4MWI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjlmYTtcbn1cblxuLmRyb3Bkb3duLWl0ZW0uYWN0aXZlLCAuZHJvcGRvd24taXRlbTphY3RpdmUge1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3YmZmO1xufVxuXG4uZHJvcGRvd24taXRlbS5kaXNhYmxlZCwgLmRyb3Bkb3duLWl0ZW06ZGlzYWJsZWQge1xuICBjb2xvcjogIzZjNzU3ZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5kcm9wZG93bi1tZW51LnNob3cge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmRyb3Bkb3duLWhlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAwLjVyZW0gMS41cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBjb2xvcjogIzZjNzU3ZDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmRyb3Bkb3duLWl0ZW0tdGV4dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAwLjI1cmVtIDEuNXJlbTtcbiAgY29sb3I6ICMyMTI1Mjk7XG59XG5cbi5idG4tZ3JvdXAsXG4uYnRuLWdyb3VwLXZlcnRpY2FsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmJ0bi1ncm91cCA+IC5idG4sXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleDogMCAxIGF1dG87XG59XG5cbi5idG4tZ3JvdXAgPiAuYnRuOmhvdmVyLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG46aG92ZXIge1xuICB6LWluZGV4OiAxO1xufVxuXG4uYnRuLWdyb3VwID4gLmJ0bjpmb2N1cywgLmJ0bi1ncm91cCA+IC5idG46YWN0aXZlLCAuYnRuLWdyb3VwID4gLmJ0bi5hY3RpdmUsXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bjpmb2N1cyxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOmFjdGl2ZSxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLmFjdGl2ZSB7XG4gIHotaW5kZXg6IDE7XG59XG5cbi5idG4tZ3JvdXAgLmJ0biArIC5idG4sXG4uYnRuLWdyb3VwIC5idG4gKyAuYnRuLWdyb3VwLFxuLmJ0bi1ncm91cCAuYnRuLWdyb3VwICsgLmJ0bixcbi5idG4tZ3JvdXAgLmJ0bi1ncm91cCArIC5idG4tZ3JvdXAsXG4uYnRuLWdyb3VwLXZlcnRpY2FsIC5idG4gKyAuYnRuLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCAuYnRuICsgLmJ0bi1ncm91cCxcbi5idG4tZ3JvdXAtdmVydGljYWwgLmJ0bi1ncm91cCArIC5idG4sXG4uYnRuLWdyb3VwLXZlcnRpY2FsIC5idG4tZ3JvdXAgKyAuYnRuLWdyb3VwIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG5cbi5idG4tdG9vbGJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuXG4uYnRuLXRvb2xiYXIgLmlucHV0LWdyb3VwIHtcbiAgd2lkdGg6IGF1dG87XG59XG5cbi5idG4tZ3JvdXAgPiAuYnRuOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5idG4tZ3JvdXAgPiAuYnRuOm5vdCg6bGFzdC1jaGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpLFxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXA6bm90KDpsYXN0LWNoaWxkKSA+IC5idG4ge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG59XG5cbi5idG4tZ3JvdXAgPiAuYnRuOm5vdCg6Zmlyc3QtY2hpbGQpLFxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cblxuLmRyb3Bkb3duLXRvZ2dsZS1zcGxpdCB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNTYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjU2MjVyZW07XG59XG5cbi5kcm9wZG93bi10b2dnbGUtc3BsaXQ6OmFmdGVyLFxuLmRyb3B1cCAuZHJvcGRvd24tdG9nZ2xlLXNwbGl0OjphZnRlcixcbi5kcm9wcmlnaHQgLmRyb3Bkb3duLXRvZ2dsZS1zcGxpdDo6YWZ0ZXIge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLmRyb3BsZWZ0IC5kcm9wZG93bi10b2dnbGUtc3BsaXQ6OmJlZm9yZSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbn1cblxuLmJ0bi1zbSArIC5kcm9wZG93bi10b2dnbGUtc3BsaXQsIC5idG4tZ3JvdXAtc20gPiAuYnRuICsgLmRyb3Bkb3duLXRvZ2dsZS1zcGxpdCB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuMzc1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuMzc1cmVtO1xufVxuXG4uYnRuLWxnICsgLmRyb3Bkb3duLXRvZ2dsZS1zcGxpdCwgLmJ0bi1ncm91cC1sZyA+IC5idG4gKyAuZHJvcGRvd24tdG9nZ2xlLXNwbGl0IHtcbiAgcGFkZGluZy1yaWdodDogMC43NXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjc1cmVtO1xufVxuXG4uYnRuLWdyb3VwLXZlcnRpY2FsIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uYnRuLWdyb3VwLXZlcnRpY2FsIC5idG4sXG4uYnRuLWdyb3VwLXZlcnRpY2FsIC5idG4tZ3JvdXAge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4gKyAuYnRuLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4gKyAuYnRuLWdyb3VwLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXAgKyAuYnRuLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXAgKyAuYnRuLWdyb3VwIHtcbiAgbWFyZ2luLXRvcDogLTFweDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOm5vdCg6bGFzdC1jaGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6bm90KDpsYXN0LWNoaWxkKSA+IC5idG4ge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cblxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG46bm90KDpmaXJzdC1jaGlsZCksXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG4ge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbn1cblxuLmJ0bi1ncm91cC10b2dnbGUgPiAuYnRuLFxuLmJ0bi1ncm91cC10b2dnbGUgPiAuYnRuLWdyb3VwID4gLmJ0biB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5idG4tZ3JvdXAtdG9nZ2xlID4gLmJ0biBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4uYnRuLWdyb3VwLXRvZ2dsZSA+IC5idG4gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuLmJ0bi1ncm91cC10b2dnbGUgPiAuYnRuLWdyb3VwID4gLmJ0biBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4uYnRuLWdyb3VwLXRvZ2dsZSA+IC5idG4tZ3JvdXAgPiAuYnRuIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5pbnB1dC1ncm91cCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5pbnB1dC1ncm91cCA+IC5mb3JtLWNvbnRyb2wsXG4uaW5wdXQtZ3JvdXAgPiAuY3VzdG9tLXNlbGVjdCxcbi5pbnB1dC1ncm91cCA+IC5jdXN0b20tZmlsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleDogMSAxIGF1dG87XG4gIHdpZHRoOiAxJTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmlucHV0LWdyb3VwID4gLmZvcm0tY29udHJvbDpmb2N1cyxcbi5pbnB1dC1ncm91cCA+IC5jdXN0b20tc2VsZWN0OmZvY3VzLFxuLmlucHV0LWdyb3VwID4gLmN1c3RvbS1maWxlOmZvY3VzIHtcbiAgei1pbmRleDogMztcbn1cblxuLmlucHV0LWdyb3VwID4gLmZvcm0tY29udHJvbCArIC5mb3JtLWNvbnRyb2wsXG4uaW5wdXQtZ3JvdXAgPiAuZm9ybS1jb250cm9sICsgLmN1c3RvbS1zZWxlY3QsXG4uaW5wdXQtZ3JvdXAgPiAuZm9ybS1jb250cm9sICsgLmN1c3RvbS1maWxlLFxuLmlucHV0LWdyb3VwID4gLmN1c3RvbS1zZWxlY3QgKyAuZm9ybS1jb250cm9sLFxuLmlucHV0LWdyb3VwID4gLmN1c3RvbS1zZWxlY3QgKyAuY3VzdG9tLXNlbGVjdCxcbi5pbnB1dC1ncm91cCA+IC5jdXN0b20tc2VsZWN0ICsgLmN1c3RvbS1maWxlLFxuLmlucHV0LWdyb3VwID4gLmN1c3RvbS1maWxlICsgLmZvcm0tY29udHJvbCxcbi5pbnB1dC1ncm91cCA+IC5jdXN0b20tZmlsZSArIC5jdXN0b20tc2VsZWN0LFxuLmlucHV0LWdyb3VwID4gLmN1c3RvbS1maWxlICsgLmN1c3RvbS1maWxlIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG5cbi5pbnB1dC1ncm91cCA+IC5mb3JtLWNvbnRyb2w6bm90KDpsYXN0LWNoaWxkKSxcbi5pbnB1dC1ncm91cCA+IC5jdXN0b20tc2VsZWN0Om5vdCg6bGFzdC1jaGlsZCkge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG59XG5cbi5pbnB1dC1ncm91cCA+IC5mb3JtLWNvbnRyb2w6bm90KDpmaXJzdC1jaGlsZCksXG4uaW5wdXQtZ3JvdXAgPiAuY3VzdG9tLXNlbGVjdDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG59XG5cbi5pbnB1dC1ncm91cCA+IC5jdXN0b20tZmlsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5pbnB1dC1ncm91cCA+IC5jdXN0b20tZmlsZTpub3QoOmxhc3QtY2hpbGQpIC5jdXN0b20tZmlsZS1sYWJlbCxcbi5pbnB1dC1ncm91cCA+IC5jdXN0b20tZmlsZTpub3QoOmxhc3QtY2hpbGQpIC5jdXN0b20tZmlsZS1sYWJlbDo6YWZ0ZXIge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG59XG5cbi5pbnB1dC1ncm91cCA+IC5jdXN0b20tZmlsZTpub3QoOmZpcnN0LWNoaWxkKSAuY3VzdG9tLWZpbGUtbGFiZWwge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xufVxuXG4uaW5wdXQtZ3JvdXAtcHJlcGVuZCxcbi5pbnB1dC1ncm91cC1hcHBlbmQge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uaW5wdXQtZ3JvdXAtcHJlcGVuZCAuYnRuLFxuLmlucHV0LWdyb3VwLWFwcGVuZCAuYnRuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xufVxuXG4uaW5wdXQtZ3JvdXAtcHJlcGVuZCAuYnRuICsgLmJ0bixcbi5pbnB1dC1ncm91cC1wcmVwZW5kIC5idG4gKyAuaW5wdXQtZ3JvdXAtdGV4dCxcbi5pbnB1dC1ncm91cC1wcmVwZW5kIC5pbnB1dC1ncm91cC10ZXh0ICsgLmlucHV0LWdyb3VwLXRleHQsXG4uaW5wdXQtZ3JvdXAtcHJlcGVuZCAuaW5wdXQtZ3JvdXAtdGV4dCArIC5idG4sXG4uaW5wdXQtZ3JvdXAtYXBwZW5kIC5idG4gKyAuYnRuLFxuLmlucHV0LWdyb3VwLWFwcGVuZCAuYnRuICsgLmlucHV0LWdyb3VwLXRleHQsXG4uaW5wdXQtZ3JvdXAtYXBwZW5kIC5pbnB1dC1ncm91cC10ZXh0ICsgLmlucHV0LWdyb3VwLXRleHQsXG4uaW5wdXQtZ3JvdXAtYXBwZW5kIC5pbnB1dC1ncm91cC10ZXh0ICsgLmJ0biB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuXG4uaW5wdXQtZ3JvdXAtcHJlcGVuZCB7XG4gIG1hcmdpbi1yaWdodDogLTFweDtcbn1cblxuLmlucHV0LWdyb3VwLWFwcGVuZCB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuXG4uaW5wdXQtZ3JvdXAtdGV4dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuMzc1cmVtIDAuNzVyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICM0OTUwNTc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U5ZWNlZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NlZDRkYTtcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcbn1cblxuLmlucHV0LWdyb3VwLXRleHQgaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuLmlucHV0LWdyb3VwLXRleHQgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLmlucHV0LWdyb3VwID4gLmlucHV0LWdyb3VwLXByZXBlbmQgPiAuYnRuLFxuLmlucHV0LWdyb3VwID4gLmlucHV0LWdyb3VwLXByZXBlbmQgPiAuaW5wdXQtZ3JvdXAtdGV4dCxcbi5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1hcHBlbmQ6bm90KDpsYXN0LWNoaWxkKSA+IC5idG4sXG4uaW5wdXQtZ3JvdXAgPiAuaW5wdXQtZ3JvdXAtYXBwZW5kOm5vdCg6bGFzdC1jaGlsZCkgPiAuaW5wdXQtZ3JvdXAtdGV4dCxcbi5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1hcHBlbmQ6bGFzdC1jaGlsZCA+IC5idG46bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSksXG4uaW5wdXQtZ3JvdXAgPiAuaW5wdXQtZ3JvdXAtYXBwZW5kOmxhc3QtY2hpbGQgPiAuaW5wdXQtZ3JvdXAtdGV4dDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xufVxuXG4uaW5wdXQtZ3JvdXAgPiAuaW5wdXQtZ3JvdXAtYXBwZW5kID4gLmJ0bixcbi5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1hcHBlbmQgPiAuaW5wdXQtZ3JvdXAtdGV4dCxcbi5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1wcmVwZW5kOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0bixcbi5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1wcmVwZW5kOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmlucHV0LWdyb3VwLXRleHQsXG4uaW5wdXQtZ3JvdXAgPiAuaW5wdXQtZ3JvdXAtcHJlcGVuZDpmaXJzdC1jaGlsZCA+IC5idG46bm90KDpmaXJzdC1jaGlsZCksXG4uaW5wdXQtZ3JvdXAgPiAuaW5wdXQtZ3JvdXAtcHJlcGVuZDpmaXJzdC1jaGlsZCA+IC5pbnB1dC1ncm91cC10ZXh0Om5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cblxuLmN1c3RvbS1jb250cm9sIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWluLWhlaWdodDogMS41cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbn1cblxuLmN1c3RvbS1jb250cm9sLWlubGluZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBtYXJnaW4tcmlnaHQ6IDFyZW07XG59XG5cbi5jdXN0b20tY29udHJvbC1pbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogLTE7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5jdXN0b20tY29udHJvbC1pbnB1dDpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2JmZjtcbn1cblxuLmN1c3RvbS1jb250cm9sLWlucHV0OmZvY3VzIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICBib3gtc2hhZG93OiAwIDAgMCAxcHggI2ZmZiwgMCAwIDAgMC4ycmVtIHJnYmEoMCwgMTIzLCAyNTUsIDAuMjUpO1xufVxuXG4uY3VzdG9tLWNvbnRyb2wtaW5wdXQ6YWN0aXZlIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IzZDdmZjtcbn1cblxuLmN1c3RvbS1jb250cm9sLWlucHV0OmRpc2FibGVkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsIHtcbiAgY29sb3I6ICM2Yzc1N2Q7XG59XG5cbi5jdXN0b20tY29udHJvbC1pbnB1dDpkaXNhYmxlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U5ZWNlZjtcbn1cblxuLmN1c3RvbS1jb250cm9sLWxhYmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwLjI1cmVtO1xuICBsZWZ0OiAtMS41cmVtO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDFyZW07XG4gIGhlaWdodDogMXJlbTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVlMmU2O1xufVxuXG4uY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDAuMjVyZW07XG4gIGxlZnQ6IC0xLjVyZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMXJlbTtcbiAgaGVpZ2h0OiAxcmVtO1xuICBjb250ZW50OiBcIlwiO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDUwJSA1MCU7XG59XG5cbi5jdXN0b20tY2hlY2tib3ggLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xufVxuXG4uY3VzdG9tLWNoZWNrYm94IC5jdXN0b20tY29udHJvbC1pbnB1dDpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3YmZmO1xufVxuXG4uY3VzdG9tLWNoZWNrYm94IC5jdXN0b20tY29udHJvbC1pbnB1dDpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDggOCclM0UlM0NwYXRoIGZpbGw9JyUyM2ZmZicgZD0nTTYuNTY0Ljc1bC0zLjU5IDMuNjEyLTEuNTM4LTEuNTVMMCA0LjI2IDIuOTc0IDcuMjUgOCAyLjE5M3onLyUzRSUzQy9zdmclM0VcIik7XG59XG5cbi5jdXN0b20tY2hlY2tib3ggLmN1c3RvbS1jb250cm9sLWlucHV0OmluZGV0ZXJtaW5hdGUgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDdiZmY7XG59XG5cbi5jdXN0b20tY2hlY2tib3ggLmN1c3RvbS1jb250cm9sLWlucHV0OmluZGV0ZXJtaW5hdGUgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgNCA0JyUzRSUzQ3BhdGggc3Ryb2tlPSclMjNmZmYnIGQ9J00wIDJoNCcvJTNFJTNDL3N2ZyUzRVwiKTtcbn1cblxuLmN1c3RvbS1jaGVja2JveCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6ZGlzYWJsZWQ6Y2hlY2tlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxMjMsIDI1NSwgMC41KTtcbn1cblxuLmN1c3RvbS1jaGVja2JveCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6ZGlzYWJsZWQ6aW5kZXRlcm1pbmF0ZSB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxMjMsIDI1NSwgMC41KTtcbn1cblxuLmN1c3RvbS1yYWRpbyAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuLmN1c3RvbS1yYWRpbyAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6Y2hlY2tlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2JmZjtcbn1cblxuLmN1c3RvbS1yYWRpbyAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6Y2hlY2tlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9Jy00IC00IDggOCclM0UlM0NjaXJjbGUgcj0nMycgZmlsbD0nJTIzZmZmJy8lM0UlM0Mvc3ZnJTNFXCIpO1xufVxuXG4uY3VzdG9tLXJhZGlvIC5jdXN0b20tY29udHJvbC1pbnB1dDpkaXNhYmxlZDpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDEyMywgMjU1LCAwLjUpO1xufVxuXG4uY3VzdG9tLXNlbGVjdCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogY2FsYygyLjI1cmVtICsgMnB4KTtcbiAgcGFkZGluZzogMC4zNzVyZW0gMS43NXJlbSAwLjM3NXJlbSAwLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzQ5NTA1NztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYmFja2dyb3VuZDogI2ZmZiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA0IDUnJTNFJTNDcGF0aCBmaWxsPSclMjMzNDNhNDAnIGQ9J00yIDBMMCAyaDR6bTAgNUwwIDNoNHonLyUzRSUzQy9zdmclM0VcIikgbm8tcmVwZWF0IHJpZ2h0IDAuNzVyZW0gY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDhweCAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2VkNGRhO1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG4uY3VzdG9tLXNlbGVjdDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzgwYmRmZjtcbiAgb3V0bGluZTogMDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgNXB4IHJnYmEoMTI4LCAxODksIDI1NSwgMC41KTtcbn1cblxuLmN1c3RvbS1zZWxlY3Q6Zm9jdXM6Oi1tcy12YWx1ZSB7XG4gIGNvbG9yOiAjNDk1MDU3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4uY3VzdG9tLXNlbGVjdFttdWx0aXBsZV0sIC5jdXN0b20tc2VsZWN0W3NpemVdOm5vdChbc2l6ZT1cIjFcIl0pIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjc1cmVtO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuXG4uY3VzdG9tLXNlbGVjdDpkaXNhYmxlZCB7XG4gIGNvbG9yOiAjNmM3NTdkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllY2VmO1xufVxuXG4uY3VzdG9tLXNlbGVjdDo6LW1zLWV4cGFuZCB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5jdXN0b20tc2VsZWN0LXNtIHtcbiAgaGVpZ2h0OiBjYWxjKDEuODEyNXJlbSArIDJweCk7XG4gIHBhZGRpbmctdG9wOiAwLjM3NXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuMzc1cmVtO1xuICBmb250LXNpemU6IDc1JTtcbn1cblxuLmN1c3RvbS1zZWxlY3QtbGcge1xuICBoZWlnaHQ6IGNhbGMoMi44NzVyZW0gKyAycHgpO1xuICBwYWRkaW5nLXRvcDogMC4zNzVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjM3NXJlbTtcbiAgZm9udC1zaXplOiAxMjUlO1xufVxuXG4uY3VzdG9tLWZpbGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogY2FsYygyLjI1cmVtICsgMnB4KTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmN1c3RvbS1maWxlLWlucHV0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBjYWxjKDIuMjVyZW0gKyAycHgpO1xuICBtYXJnaW46IDA7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5jdXN0b20tZmlsZS1pbnB1dDpmb2N1cyB+IC5jdXN0b20tZmlsZS1sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogIzgwYmRmZjtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMCwgMTIzLCAyNTUsIDAuMjUpO1xufVxuXG4uY3VzdG9tLWZpbGUtaW5wdXQ6Zm9jdXMgfiAuY3VzdG9tLWZpbGUtbGFiZWw6OmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjODBiZGZmO1xufVxuXG4uY3VzdG9tLWZpbGUtaW5wdXQ6bGFuZyhlbikgfiAuY3VzdG9tLWZpbGUtbGFiZWw6OmFmdGVyIHtcbiAgY29udGVudDogXCJCcm93c2VcIjtcbn1cblxuLmN1c3RvbS1maWxlLWxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xuICBoZWlnaHQ6IGNhbGMoMi4yNXJlbSArIDJweCk7XG4gIHBhZGRpbmc6IDAuMzc1cmVtIDAuNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjNDk1MDU3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2VkNGRhO1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xufVxuXG4uY3VzdG9tLWZpbGUtbGFiZWw6OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHotaW5kZXg6IDM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDIuMjVyZW07XG4gIHBhZGRpbmc6IDAuMzc1cmVtIDAuNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjNDk1MDU3O1xuICBjb250ZW50OiBcIkJyb3dzZVwiO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllY2VmO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNjZWQ0ZGE7XG4gIGJvcmRlci1yYWRpdXM6IDAgMC4yNXJlbSAwLjI1cmVtIDA7XG59XG5cbi5jdXN0b20tcmFuZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLmN1c3RvbS1yYW5nZTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5jdXN0b20tcmFuZ2U6Oi1tb3otZm9jdXMtb3V0ZXIge1xuICBib3JkZXI6IDA7XG59XG5cbi5jdXN0b20tcmFuZ2U6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgd2lkdGg6IDFyZW07XG4gIGhlaWdodDogMXJlbTtcbiAgbWFyZ2luLXRvcDogLTAuMjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDdiZmY7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLmN1c3RvbS1yYW5nZTo6LXdlYmtpdC1zbGlkZXItdGh1bWI6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OiAwIDAgMCAxcHggI2ZmZiwgMCAwIDAgMC4ycmVtIHJnYmEoMCwgMTIzLCAyNTUsIDAuMjUpO1xufVxuXG4uY3VzdG9tLXJhbmdlOjotd2Via2l0LXNsaWRlci10aHVtYjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjNkN2ZmO1xufVxuXG4uY3VzdG9tLXJhbmdlOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDAuNXJlbTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZWUyZTY7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XG59XG5cbi5jdXN0b20tcmFuZ2U6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICB3aWR0aDogMXJlbTtcbiAgaGVpZ2h0OiAxcmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3YmZmO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi5jdXN0b20tcmFuZ2U6Oi1tb3otcmFuZ2UtdGh1bWI6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OiAwIDAgMCAxcHggI2ZmZiwgMCAwIDAgMC4ycmVtIHJnYmEoMCwgMTIzLCAyNTUsIDAuMjUpO1xufVxuXG4uY3VzdG9tLXJhbmdlOjotbW96LXJhbmdlLXRodW1iOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiM2Q3ZmY7XG59XG5cbi5jdXN0b20tcmFuZ2U6Oi1tb3otcmFuZ2UtdHJhY2sge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAwLjVyZW07XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVlMmU2O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAxcmVtO1xufVxuXG4uY3VzdG9tLXJhbmdlOjotbXMtdGh1bWIge1xuICB3aWR0aDogMXJlbTtcbiAgaGVpZ2h0OiAxcmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3YmZmO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi5jdXN0b20tcmFuZ2U6Oi1tcy10aHVtYjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDFweCAjZmZmLCAwIDAgMCAwLjJyZW0gcmdiYSgwLCAxMjMsIDI1NSwgMC4yNSk7XG59XG5cbi5jdXN0b20tcmFuZ2U6Oi1tcy10aHVtYjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjNkN2ZmO1xufVxuXG4uY3VzdG9tLXJhbmdlOjotbXMtdHJhY2sge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAwLjVyZW07XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XG59XG5cbi5jdXN0b20tcmFuZ2U6Oi1tcy1maWxsLWxvd2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RlZTJlNjtcbiAgYm9yZGVyLXJhZGl1czogMXJlbTtcbn1cblxuLmN1c3RvbS1yYW5nZTo6LW1zLWZpbGwtdXBwZXIge1xuICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZWUyZTY7XG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XG59XG5cbi5uYXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLm5hdi1saW5rIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xufVxuXG4ubmF2LWxpbms6aG92ZXIsIC5uYXYtbGluazpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLm5hdi1saW5rLmRpc2FibGVkIHtcbiAgY29sb3I6ICM2Yzc1N2Q7XG59XG5cbi5uYXYtdGFicyB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGVlMmU2O1xufVxuXG4ubmF2LXRhYnMgLm5hdi1pdGVtIHtcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcbn1cblxuLm5hdi10YWJzIC5uYXYtbGluayB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjI1cmVtO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC4yNXJlbTtcbn1cblxuLm5hdi10YWJzIC5uYXYtbGluazpob3ZlciwgLm5hdi10YWJzIC5uYXYtbGluazpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogI2U5ZWNlZiAjZTllY2VmICNkZWUyZTY7XG59XG5cbi5uYXYtdGFicyAubmF2LWxpbmsuZGlzYWJsZWQge1xuICBjb2xvcjogIzZjNzU3ZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5uYXYtdGFicyAubmF2LWxpbmsuYWN0aXZlLFxuLm5hdi10YWJzIC5uYXYtaXRlbS5zaG93IC5uYXYtbGluayB7XG4gIGNvbG9yOiAjNDk1MDU3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICNkZWUyZTYgI2RlZTJlNiAjZmZmO1xufVxuXG4ubmF2LXRhYnMgLmRyb3Bkb3duLW1lbnUge1xuICBtYXJnaW4tdG9wOiAtMXB4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbn1cblxuLm5hdi1waWxscyAubmF2LWxpbmsge1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xufVxuXG4ubmF2LXBpbGxzIC5uYXYtbGluay5hY3RpdmUsXG4ubmF2LXBpbGxzIC5zaG93ID4gLm5hdi1saW5rIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDdiZmY7XG59XG5cbi5uYXYtZmlsbCAubmF2LWl0ZW0ge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubmF2LWp1c3RpZmllZCAubmF2LWl0ZW0ge1xuICBmbGV4LWJhc2lzOiAwO1xuICBmbGV4LWdyb3c6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnRhYi1jb250ZW50ID4gLnRhYi1wYW5lIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnRhYi1jb250ZW50ID4gLmFjdGl2ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubmF2YmFyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMC41cmVtIDFyZW07XG59XG5cbi5uYXZiYXIgPiAuY29udGFpbmVyLFxuLm5hdmJhciA+IC5jb250YWluZXItZmx1aWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLm5hdmJhci1icmFuZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy10b3A6IDAuMzEyNXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuMzEyNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ubmF2YmFyLWJyYW5kOmhvdmVyLCAubmF2YmFyLWJyYW5kOmZvY3VzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4ubmF2YmFyLW5hdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLm5hdmJhci1uYXYgLm5hdi1saW5rIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4ubmF2YmFyLW5hdiAuZHJvcGRvd24tbWVudSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGZsb2F0OiBub25lO1xufVxuXG4ubmF2YmFyLXRleHQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG59XG5cbi5uYXZiYXItY29sbGFwc2Uge1xuICBmbGV4LWJhc2lzOiAxMDAlO1xuICBmbGV4LWdyb3c6IDE7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5uYXZiYXItdG9nZ2xlciB7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC43NXJlbTtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xufVxuXG4ubmF2YmFyLXRvZ2dsZXI6aG92ZXIsIC5uYXZiYXItdG9nZ2xlcjpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLm5hdmJhci10b2dnbGVyOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubmF2YmFyLXRvZ2dsZXItaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEuNWVtO1xuICBoZWlnaHQ6IDEuNWVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBjb250ZW50OiBcIlwiO1xuICBiYWNrZ3JvdW5kOiBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzUuOThweCkge1xuICAubmF2YmFyLWV4cGFuZC1zbSA+IC5jb250YWluZXIsXG4gIC5uYXZiYXItZXhwYW5kLXNtID4gLmNvbnRhaW5lci1mbHVpZCB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gIC5uYXZiYXItZXhwYW5kLXNtIHtcbiAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLXNtIC5uYXZiYXItbmF2IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLXNtIC5uYXZiYXItbmF2IC5kcm9wZG93bi1tZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cbiAgLm5hdmJhci1leHBhbmQtc20gLm5hdmJhci1uYXYgLm5hdi1saW5rIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XG4gIH1cbiAgLm5hdmJhci1leHBhbmQtc20gPiAuY29udGFpbmVyLFxuICAubmF2YmFyLWV4cGFuZC1zbSA+IC5jb250YWluZXItZmx1aWQge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLXNtIC5uYXZiYXItY29sbGFwc2Uge1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLXNtIC5uYXZiYXItdG9nZ2xlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgLm5hdmJhci1leHBhbmQtbWQgPiAuY29udGFpbmVyLFxuICAubmF2YmFyLWV4cGFuZC1tZCA+IC5jb250YWluZXItZmx1aWQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLWV4cGFuZC1tZCB7XG4gICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgfVxuICAubmF2YmFyLWV4cGFuZC1tZCAubmF2YmFyLW5hdiB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxuICAubmF2YmFyLWV4cGFuZC1tZCAubmF2YmFyLW5hdiAuZHJvcGRvd24tbWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLW1kIC5uYXZiYXItbmF2IC5uYXYtbGluayB7XG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC41cmVtO1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLW1kID4gLmNvbnRhaW5lcixcbiAgLm5hdmJhci1leHBhbmQtbWQgPiAuY29udGFpbmVyLWZsdWlkIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxuICAubmF2YmFyLWV4cGFuZC1tZCAubmF2YmFyLWNvbGxhcHNlIHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgZmxleC1iYXNpczogYXV0bztcbiAgfVxuICAubmF2YmFyLWV4cGFuZC1tZCAubmF2YmFyLXRvZ2dsZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gIC5uYXZiYXItZXhwYW5kLWxnID4gLmNvbnRhaW5lcixcbiAgLm5hdmJhci1leHBhbmQtbGcgPiAuY29udGFpbmVyLWZsdWlkIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLm5hdmJhci1leHBhbmQtbGcge1xuICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIH1cbiAgLm5hdmJhci1leHBhbmQtbGcgLm5hdmJhci1uYXYge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIH1cbiAgLm5hdmJhci1leHBhbmQtbGcgLm5hdmJhci1uYXYgLmRyb3Bkb3duLW1lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuICAubmF2YmFyLWV4cGFuZC1sZyAubmF2YmFyLW5hdiAubmF2LWxpbmsge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcbiAgfVxuICAubmF2YmFyLWV4cGFuZC1sZyA+IC5jb250YWluZXIsXG4gIC5uYXZiYXItZXhwYW5kLWxnID4gLmNvbnRhaW5lci1mbHVpZCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cbiAgLm5hdmJhci1leHBhbmQtbGcgLm5hdmJhci1jb2xsYXBzZSB7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gIH1cbiAgLm5hdmJhci1leHBhbmQtbGcgLm5hdmJhci10b2dnbGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTk5Ljk4cHgpIHtcbiAgLm5hdmJhci1leHBhbmQteGwgPiAuY29udGFpbmVyLFxuICAubmF2YmFyLWV4cGFuZC14bCA+IC5jb250YWluZXItZmx1aWQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLm5hdmJhci1leHBhbmQteGwge1xuICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIH1cbiAgLm5hdmJhci1leHBhbmQteGwgLm5hdmJhci1uYXYge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIH1cbiAgLm5hdmJhci1leHBhbmQteGwgLm5hdmJhci1uYXYgLmRyb3Bkb3duLW1lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuICAubmF2YmFyLWV4cGFuZC14bCAubmF2YmFyLW5hdiAubmF2LWxpbmsge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcbiAgfVxuICAubmF2YmFyLWV4cGFuZC14bCA+IC5jb250YWluZXIsXG4gIC5uYXZiYXItZXhwYW5kLXhsID4gLmNvbnRhaW5lci1mbHVpZCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cbiAgLm5hdmJhci1leHBhbmQteGwgLm5hdmJhci1jb2xsYXBzZSB7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gIH1cbiAgLm5hdmJhci1leHBhbmQteGwgLm5hdmJhci10b2dnbGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5uYXZiYXItZXhwYW5kIHtcbiAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5cbi5uYXZiYXItZXhwYW5kID4gLmNvbnRhaW5lcixcbi5uYXZiYXItZXhwYW5kID4gLmNvbnRhaW5lci1mbHVpZCB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLm5hdmJhci1leHBhbmQgLm5hdmJhci1uYXYge1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuXG4ubmF2YmFyLWV4cGFuZCAubmF2YmFyLW5hdiAuZHJvcGRvd24tbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLm5hdmJhci1leHBhbmQgLm5hdmJhci1uYXYgLm5hdi1saW5rIHtcbiAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcbn1cblxuLm5hdmJhci1leHBhbmQgPiAuY29udGFpbmVyLFxuLm5hdmJhci1leHBhbmQgPiAuY29udGFpbmVyLWZsdWlkIHtcbiAgZmxleC13cmFwOiBub3dyYXA7XG59XG5cbi5uYXZiYXItZXhwYW5kIC5uYXZiYXItY29sbGFwc2Uge1xuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIGZsZXgtYmFzaXM6IGF1dG87XG59XG5cbi5uYXZiYXItZXhwYW5kIC5uYXZiYXItdG9nZ2xlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5uYXZiYXItbGlnaHQgLm5hdmJhci1icmFuZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOSk7XG59XG5cbi5uYXZiYXItbGlnaHQgLm5hdmJhci1icmFuZDpob3ZlciwgLm5hdmJhci1saWdodCAubmF2YmFyLWJyYW5kOmZvY3VzIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45KTtcbn1cblxuLm5hdmJhci1saWdodCAubmF2YmFyLW5hdiAubmF2LWxpbmsge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xufVxuXG4ubmF2YmFyLWxpZ2h0IC5uYXZiYXItbmF2IC5uYXYtbGluazpob3ZlciwgLm5hdmJhci1saWdodCAubmF2YmFyLW5hdiAubmF2LWxpbms6Zm9jdXMge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjcpO1xufVxuXG4ubmF2YmFyLWxpZ2h0IC5uYXZiYXItbmF2IC5uYXYtbGluay5kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG5cbi5uYXZiYXItbGlnaHQgLm5hdmJhci1uYXYgLnNob3cgPiAubmF2LWxpbmssXG4ubmF2YmFyLWxpZ2h0IC5uYXZiYXItbmF2IC5hY3RpdmUgPiAubmF2LWxpbmssXG4ubmF2YmFyLWxpZ2h0IC5uYXZiYXItbmF2IC5uYXYtbGluay5zaG93LFxuLm5hdmJhci1saWdodCAubmF2YmFyLW5hdiAubmF2LWxpbmsuYWN0aXZlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45KTtcbn1cblxuLm5hdmJhci1saWdodCAubmF2YmFyLXRvZ2dsZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuLm5hdmJhci1saWdodCAubmF2YmFyLXRvZ2dsZXItaWNvbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHZpZXdCb3g9JzAgMCAzMCAzMCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggc3Ryb2tlPSdyZ2JhKDAsIDAsIDAsIDAuNSknIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnIGQ9J000IDdoMjJNNCAxNWgyMk00IDIzaDIyJy8lM0UlM0Mvc3ZnJTNFXCIpO1xufVxuXG4ubmF2YmFyLWxpZ2h0IC5uYXZiYXItdGV4dCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG59XG5cbi5uYXZiYXItbGlnaHQgLm5hdmJhci10ZXh0IGEge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjkpO1xufVxuXG4ubmF2YmFyLWxpZ2h0IC5uYXZiYXItdGV4dCBhOmhvdmVyLCAubmF2YmFyLWxpZ2h0IC5uYXZiYXItdGV4dCBhOmZvY3VzIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45KTtcbn1cblxuLm5hdmJhci1kYXJrIC5uYXZiYXItYnJhbmQge1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLm5hdmJhci1kYXJrIC5uYXZiYXItYnJhbmQ6aG92ZXIsIC5uYXZiYXItZGFyayAubmF2YmFyLWJyYW5kOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5uYXZiYXItZGFyayAubmF2YmFyLW5hdiAubmF2LWxpbmsge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuXG4ubmF2YmFyLWRhcmsgLm5hdmJhci1uYXYgLm5hdi1saW5rOmhvdmVyLCAubmF2YmFyLWRhcmsgLm5hdmJhci1uYXYgLm5hdi1saW5rOmZvY3VzIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7XG59XG5cbi5uYXZiYXItZGFyayAubmF2YmFyLW5hdiAubmF2LWxpbmsuZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbn1cblxuLm5hdmJhci1kYXJrIC5uYXZiYXItbmF2IC5zaG93ID4gLm5hdi1saW5rLFxuLm5hdmJhci1kYXJrIC5uYXZiYXItbmF2IC5hY3RpdmUgPiAubmF2LWxpbmssXG4ubmF2YmFyLWRhcmsgLm5hdmJhci1uYXYgLm5hdi1saW5rLnNob3csXG4ubmF2YmFyLWRhcmsgLm5hdmJhci1uYXYgLm5hdi1saW5rLmFjdGl2ZSB7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4ubmF2YmFyLWRhcmsgLm5hdmJhci10b2dnbGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG5cbi5uYXZiYXItZGFyayAubmF2YmFyLXRvZ2dsZXItaWNvbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHZpZXdCb3g9JzAgMCAzMCAzMCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggc3Ryb2tlPSdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSknIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnIGQ9J000IDdoMjJNNCAxNWgyMk00IDIzaDIyJy8lM0UlM0Mvc3ZnJTNFXCIpO1xufVxuXG4ubmF2YmFyLWRhcmsgLm5hdmJhci10ZXh0IHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cblxuLm5hdmJhci1kYXJrIC5uYXZiYXItdGV4dCBhIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5uYXZiYXItZGFyayAubmF2YmFyLXRleHQgYTpob3ZlciwgLm5hdmJhci1kYXJrIC5uYXZiYXItdGV4dCBhOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5jYXJkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtaW4td2lkdGg6IDA7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jbGlwOiBib3JkZXItYm94O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTI1KTtcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcbn1cblxuLmNhcmQgPiBociB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5jYXJkID4gLmxpc3QtZ3JvdXA6Zmlyc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAuMjVyZW07XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwLjI1cmVtO1xufVxuXG4uY2FyZCA+IC5saXN0LWdyb3VwOmxhc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAuMjVyZW07XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAuMjVyZW07XG59XG5cbi5jYXJkLWJvZHkge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgcGFkZGluZzogMS4yNXJlbTtcbn1cblxuLmNhcmQtdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xufVxuXG4uY2FyZC1zdWJ0aXRsZSB7XG4gIG1hcmdpbi10b3A6IC0wLjM3NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmNhcmQtdGV4dDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmNhcmQtbGluazpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmNhcmQtbGluayArIC5jYXJkLWxpbmsge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbn1cblxuLmNhcmQtaGVhZGVyIHtcbiAgcGFkZGluZzogMC43NXJlbSAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEyNSk7XG59XG5cbi5jYXJkLWhlYWRlcjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IGNhbGMoMC4yNXJlbSAtIDFweCkgY2FsYygwLjI1cmVtIC0gMXB4KSAwIDA7XG59XG5cbi5jYXJkLWhlYWRlciArIC5saXN0LWdyb3VwIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiAwO1xufVxuXG4uY2FyZC1mb290ZXIge1xuICBwYWRkaW5nOiAwLjc1cmVtIDEuMjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTI1KTtcbn1cblxuLmNhcmQtZm9vdGVyOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwIDAgY2FsYygwLjI1cmVtIC0gMXB4KSBjYWxjKDAuMjVyZW0gLSAxcHgpO1xufVxuXG4uY2FyZC1oZWFkZXItdGFicyB7XG4gIG1hcmdpbi1yaWdodDogLTAuNjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAtMC43NXJlbTtcbiAgbWFyZ2luLWxlZnQ6IC0wLjYyNXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cblxuLmNhcmQtaGVhZGVyLXBpbGxzIHtcbiAgbWFyZ2luLXJpZ2h0OiAtMC42MjVyZW07XG4gIG1hcmdpbi1sZWZ0OiAtMC42MjVyZW07XG59XG5cbi5jYXJkLWltZy1vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHBhZGRpbmc6IDEuMjVyZW07XG59XG5cbi5jYXJkLWltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiBjYWxjKDAuMjVyZW0gLSAxcHgpO1xufVxuXG4uY2FyZC1pbWctdG9wIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGNhbGMoMC4yNXJlbSAtIDFweCk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBjYWxjKDAuMjVyZW0gLSAxcHgpO1xufVxuXG4uY2FyZC1pbWctYm90dG9tIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBjYWxjKDAuMjVyZW0gLSAxcHgpO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBjYWxjKDAuMjVyZW0gLSAxcHgpO1xufVxuXG4uY2FyZC1kZWNrIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmNhcmQtZGVjayAuY2FyZCB7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xuICAuY2FyZC1kZWNrIHtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIG1hcmdpbi1yaWdodDogLTE1cHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuICB9XG4gIC5jYXJkLWRlY2sgLmNhcmQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAwIDAlO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gIH1cbn1cblxuLmNhcmQtZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uY2FyZC1ncm91cCA+IC5jYXJkIHtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gIC5jYXJkLWdyb3VwIHtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICB9XG4gIC5jYXJkLWdyb3VwID4gLmNhcmQge1xuICAgIGZsZXg6IDEgMCAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gIC5jYXJkLWdyb3VwID4gLmNhcmQgKyAuY2FyZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gIH1cbiAgLmNhcmQtZ3JvdXAgPiAuY2FyZDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIH1cbiAgLmNhcmQtZ3JvdXAgPiAuY2FyZDpmaXJzdC1jaGlsZCAuY2FyZC1pbWctdG9wLFxuICAuY2FyZC1ncm91cCA+IC5jYXJkOmZpcnN0LWNoaWxkIC5jYXJkLWhlYWRlciB7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIH1cbiAgLmNhcmQtZ3JvdXAgPiAuY2FyZDpmaXJzdC1jaGlsZCAuY2FyZC1pbWctYm90dG9tLFxuICAuY2FyZC1ncm91cCA+IC5jYXJkOmZpcnN0LWNoaWxkIC5jYXJkLWZvb3RlciB7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIH1cbiAgLmNhcmQtZ3JvdXAgPiAuY2FyZDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIH1cbiAgLmNhcmQtZ3JvdXAgPiAuY2FyZDpsYXN0LWNoaWxkIC5jYXJkLWltZy10b3AsXG4gIC5jYXJkLWdyb3VwID4gLmNhcmQ6bGFzdC1jaGlsZCAuY2FyZC1oZWFkZXIge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gIH1cbiAgLmNhcmQtZ3JvdXAgPiAuY2FyZDpsYXN0LWNoaWxkIC5jYXJkLWltZy1ib3R0b20sXG4gIC5jYXJkLWdyb3VwID4gLmNhcmQ6bGFzdC1jaGlsZCAuY2FyZC1mb290ZXIge1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIH1cbiAgLmNhcmQtZ3JvdXAgPiAuY2FyZDpvbmx5LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xuICB9XG4gIC5jYXJkLWdyb3VwID4gLmNhcmQ6b25seS1jaGlsZCAuY2FyZC1pbWctdG9wLFxuICAuY2FyZC1ncm91cCA+IC5jYXJkOm9ubHktY2hpbGQgLmNhcmQtaGVhZGVyIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjI1cmVtO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwLjI1cmVtO1xuICB9XG4gIC5jYXJkLWdyb3VwID4gLmNhcmQ6b25seS1jaGlsZCAuY2FyZC1pbWctYm90dG9tLFxuICAuY2FyZC1ncm91cCA+IC5jYXJkOm9ubHktY2hpbGQgLmNhcmQtZm9vdGVyIHtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC4yNXJlbTtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwLjI1cmVtO1xuICB9XG4gIC5jYXJkLWdyb3VwID4gLmNhcmQ6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKTpub3QoOm9ubHktY2hpbGQpIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG4gIC5jYXJkLWdyb3VwID4gLmNhcmQ6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKTpub3QoOm9ubHktY2hpbGQpIC5jYXJkLWltZy10b3AsXG4gIC5jYXJkLWdyb3VwID4gLmNhcmQ6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKTpub3QoOm9ubHktY2hpbGQpIC5jYXJkLWltZy1ib3R0b20sXG4gIC5jYXJkLWdyb3VwID4gLmNhcmQ6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKTpub3QoOm9ubHktY2hpbGQpIC5jYXJkLWhlYWRlcixcbiAgLmNhcmQtZ3JvdXAgPiAuY2FyZDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpOm5vdCg6b25seS1jaGlsZCkgLmNhcmQtZm9vdGVyIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG5cbi5jYXJkLWNvbHVtbnMgLmNhcmQge1xuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLmNhcmQtY29sdW1ucyB7XG4gICAgY29sdW1uLWNvdW50OiAzO1xuICAgIGNvbHVtbi1nYXA6IDEuMjVyZW07XG4gICAgb3JwaGFuczogMTtcbiAgICB3aWRvd3M6IDE7XG4gIH1cbiAgLmNhcmQtY29sdW1ucyAuY2FyZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi5hY2NvcmRpb24gLmNhcmQ6bm90KDpmaXJzdC1vZi10eXBlKTpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICBib3JkZXItYm90dG9tOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG4uYWNjb3JkaW9uIC5jYXJkOm5vdCg6Zmlyc3Qtb2YtdHlwZSkgLmNhcmQtaGVhZGVyOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLmFjY29yZGlvbiAuY2FyZDpmaXJzdC1vZi10eXBlIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG59XG5cbi5hY2NvcmRpb24gLmNhcmQ6bGFzdC1vZi10eXBlIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG59XG5cbi5icmVhZGNydW1iIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlOWVjZWY7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG59XG5cbi5icmVhZGNydW1iLWl0ZW0gKyAuYnJlYWRjcnVtYi1pdGVtIHtcbiAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XG59XG5cbi5icmVhZGNydW1iLWl0ZW0gKyAuYnJlYWRjcnVtYi1pdGVtOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgY29sb3I6ICM2Yzc1N2Q7XG4gIGNvbnRlbnQ6IFwiL1wiO1xufVxuXG4uYnJlYWRjcnVtYi1pdGVtICsgLmJyZWFkY3J1bWItaXRlbTpob3Zlcjo6YmVmb3JlIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5icmVhZGNydW1iLWl0ZW0gKyAuYnJlYWRjcnVtYi1pdGVtOmhvdmVyOjpiZWZvcmUge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5icmVhZGNydW1iLWl0ZW0uYWN0aXZlIHtcbiAgY29sb3I6ICM2Yzc1N2Q7XG59XG5cbi5wYWdpbmF0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xufVxuXG4ucGFnZS1saW5rIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICBsaW5lLWhlaWdodDogMS4yNTtcbiAgY29sb3I6ICMwMDdiZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZWUyZTY7XG59XG5cbi5wYWdlLWxpbms6aG92ZXIge1xuICB6LWluZGV4OiAyO1xuICBjb2xvcjogIzAwNTZiMztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllY2VmO1xuICBib3JkZXItY29sb3I6ICNkZWUyZTY7XG59XG5cbi5wYWdlLWxpbms6Zm9jdXMge1xuICB6LWluZGV4OiAyO1xuICBvdXRsaW5lOiAwO1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSgwLCAxMjMsIDI1NSwgMC4yNSk7XG59XG5cbi5wYWdlLWxpbms6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5wYWdlLWl0ZW06Zmlyc3QtY2hpbGQgLnBhZ2UtbGluayB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjI1cmVtO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwLjI1cmVtO1xufVxuXG4ucGFnZS1pdGVtOmxhc3QtY2hpbGQgLnBhZ2UtbGluayB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwLjI1cmVtO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC4yNXJlbTtcbn1cblxuLnBhZ2UtaXRlbS5hY3RpdmUgLnBhZ2UtbGluayB7XG4gIHotaW5kZXg6IDE7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3YmZmO1xuICBib3JkZXItY29sb3I6ICMwMDdiZmY7XG59XG5cbi5wYWdlLWl0ZW0uZGlzYWJsZWQgLnBhZ2UtbGluayB7XG4gIGNvbG9yOiAjNmM3NTdkO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY3Vyc29yOiBhdXRvO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICNkZWUyZTY7XG59XG5cbi5wYWdpbmF0aW9uLWxnIC5wYWdlLWxpbmsge1xuICBwYWRkaW5nOiAwLjc1cmVtIDEuNXJlbTtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4ucGFnaW5hdGlvbi1sZyAucGFnZS1pdGVtOmZpcnN0LWNoaWxkIC5wYWdlLWxpbmsge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjNyZW07XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAuM3JlbTtcbn1cblxuLnBhZ2luYXRpb24tbGcgLnBhZ2UtaXRlbTpsYXN0LWNoaWxkIC5wYWdlLWxpbmsge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC4zcmVtO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC4zcmVtO1xufVxuXG4ucGFnaW5hdGlvbi1zbSAucGFnZS1saW5rIHtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi5wYWdpbmF0aW9uLXNtIC5wYWdlLWl0ZW06Zmlyc3QtY2hpbGQgLnBhZ2UtbGluayB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAuMnJlbTtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMC4ycmVtO1xufVxuXG4ucGFnaW5hdGlvbi1zbSAucGFnZS1pdGVtOmxhc3QtY2hpbGQgLnBhZ2UtbGluayB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwLjJyZW07XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwLjJyZW07XG59XG5cbi5iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMC4yNWVtIDAuNGVtO1xuICBmb250LXNpemU6IDc1JTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xufVxuXG4uYmFkZ2U6ZW1wdHkge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uYnRuIC5iYWRnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMXB4O1xufVxuXG4uYmFkZ2UtcGlsbCB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNmVtO1xuICBib3JkZXItcmFkaXVzOiAxMHJlbTtcbn1cblxuLmJhZGdlLXByaW1hcnkge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2JmZjtcbn1cblxuLmJhZGdlLXByaW1hcnlbaHJlZl06aG92ZXIsIC5iYWRnZS1wcmltYXJ5W2hyZWZdOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNjJjYztcbn1cblxuLmJhZGdlLXNlY29uZGFyeSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNmM3NTdkO1xufVxuXG4uYmFkZ2Utc2Vjb25kYXJ5W2hyZWZdOmhvdmVyLCAuYmFkZ2Utc2Vjb25kYXJ5W2hyZWZdOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU0NWI2Mjtcbn1cblxuLmJhZGdlLXN1Y2Nlc3Mge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI4YTc0NTtcbn1cblxuLmJhZGdlLXN1Y2Nlc3NbaHJlZl06aG92ZXIsIC5iYWRnZS1zdWNjZXNzW2hyZWZdOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFlN2UzNDtcbn1cblxuLmJhZGdlLWluZm8ge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3YTJiODtcbn1cblxuLmJhZGdlLWluZm9baHJlZl06aG92ZXIsIC5iYWRnZS1pbmZvW2hyZWZdOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzExN2E4Yjtcbn1cblxuLmJhZGdlLXdhcm5pbmcge1xuICBjb2xvcjogIzIxMjUyOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYzEwNztcbn1cblxuLmJhZGdlLXdhcm5pbmdbaHJlZl06aG92ZXIsIC5iYWRnZS13YXJuaW5nW2hyZWZdOmZvY3VzIHtcbiAgY29sb3I6ICMyMTI1Mjk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QzOWUwMDtcbn1cblxuLmJhZGdlLWRhbmdlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGMzNTQ1O1xufVxuXG4uYmFkZ2UtZGFuZ2VyW2hyZWZdOmhvdmVyLCAuYmFkZ2UtZGFuZ2VyW2hyZWZdOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JkMjEzMDtcbn1cblxuLmJhZGdlLWxpZ2h0IHtcbiAgY29sb3I6ICMyMTI1Mjk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGY5ZmE7XG59XG5cbi5iYWRnZS1saWdodFtocmVmXTpob3ZlciwgLmJhZGdlLWxpZ2h0W2hyZWZdOmZvY3VzIHtcbiAgY29sb3I6ICMyMTI1Mjk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RhZTBlNTtcbn1cblxuLmJhZGdlLWRhcmsge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM0M2E0MDtcbn1cblxuLmJhZGdlLWRhcmtbaHJlZl06aG92ZXIsIC5iYWRnZS1kYXJrW2hyZWZdOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFkMjEyNDtcbn1cblxuLmp1bWJvdHJvbiB7XG4gIHBhZGRpbmc6IDJyZW0gMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U5ZWNlZjtcbiAgYm9yZGVyLXJhZGl1czogMC4zcmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLmp1bWJvdHJvbiB7XG4gICAgcGFkZGluZzogNHJlbSAycmVtO1xuICB9XG59XG5cbi5qdW1ib3Ryb24tZmx1aWQge1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi5hbGVydCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMC43NXJlbSAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcbn1cblxuLmFsZXJ0LWhlYWRpbmcge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLmFsZXJ0LWxpbmsge1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4uYWxlcnQtZGlzbWlzc2libGUge1xuICBwYWRkaW5nLXJpZ2h0OiA0cmVtO1xufVxuXG4uYWxlcnQtZGlzbWlzc2libGUgLmNsb3NlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBwYWRkaW5nOiAwLjc1cmVtIDEuMjVyZW07XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG4uYWxlcnQtcHJpbWFyeSB7XG4gIGNvbG9yOiAjMDA0MDg1O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NlNWZmO1xuICBib3JkZXItY29sb3I6ICNiOGRhZmY7XG59XG5cbi5hbGVydC1wcmltYXJ5IGhyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzlmY2RmZjtcbn1cblxuLmFsZXJ0LXByaW1hcnkgLmFsZXJ0LWxpbmsge1xuICBjb2xvcjogIzAwMjc1Mjtcbn1cblxuLmFsZXJ0LXNlY29uZGFyeSB7XG4gIGNvbG9yOiAjMzgzZDQxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTJlM2U1O1xuICBib3JkZXItY29sb3I6ICNkNmQ4ZGI7XG59XG5cbi5hbGVydC1zZWNvbmRhcnkgaHIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjYzhjYmNmO1xufVxuXG4uYWxlcnQtc2Vjb25kYXJ5IC5hbGVydC1saW5rIHtcbiAgY29sb3I6ICMyMDIzMjY7XG59XG5cbi5hbGVydC1zdWNjZXNzIHtcbiAgY29sb3I6ICMxNTU3MjQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkNGVkZGE7XG4gIGJvcmRlci1jb2xvcjogI2MzZTZjYjtcbn1cblxuLmFsZXJ0LXN1Y2Nlc3MgaHIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjYjFkZmJiO1xufVxuXG4uYWxlcnQtc3VjY2VzcyAuYWxlcnQtbGluayB7XG4gIGNvbG9yOiAjMGIyZTEzO1xufVxuXG4uYWxlcnQtaW5mbyB7XG4gIGNvbG9yOiAjMGM1NDYwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDFlY2YxO1xuICBib3JkZXItY29sb3I6ICNiZWU1ZWI7XG59XG5cbi5hbGVydC1pbmZvIGhyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2FiZGRlNTtcbn1cblxuLmFsZXJ0LWluZm8gLmFsZXJ0LWxpbmsge1xuICBjb2xvcjogIzA2MmMzMztcbn1cblxuLmFsZXJ0LXdhcm5pbmcge1xuICBjb2xvcjogIzg1NjQwNDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjNjZDtcbiAgYm9yZGVyLWNvbG9yOiAjZmZlZWJhO1xufVxuXG4uYWxlcnQtd2FybmluZyBociB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNmZmU4YTE7XG59XG5cbi5hbGVydC13YXJuaW5nIC5hbGVydC1saW5rIHtcbiAgY29sb3I6ICM1MzNmMDM7XG59XG5cbi5hbGVydC1kYW5nZXIge1xuICBjb2xvcjogIzcyMWMyNDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZDdkYTtcbiAgYm9yZGVyLWNvbG9yOiAjZjVjNmNiO1xufVxuXG4uYWxlcnQtZGFuZ2VyIGhyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2YxYjBiNztcbn1cblxuLmFsZXJ0LWRhbmdlciAuYWxlcnQtbGluayB7XG4gIGNvbG9yOiAjNDkxMjE3O1xufVxuXG4uYWxlcnQtbGlnaHQge1xuICBjb2xvcjogIzgxODE4MjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgYm9yZGVyLWNvbG9yOiAjZmRmZGZlO1xufVxuXG4uYWxlcnQtbGlnaHQgaHIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjZWNlY2Y2O1xufVxuXG4uYWxlcnQtbGlnaHQgLmFsZXJ0LWxpbmsge1xuICBjb2xvcjogIzY4Njg2ODtcbn1cblxuLmFsZXJ0LWRhcmsge1xuICBjb2xvcjogIzFiMWUyMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q2ZDhkOTtcbiAgYm9yZGVyLWNvbG9yOiAjYzZjOGNhO1xufVxuXG4uYWxlcnQtZGFyayBociB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNiOWJiYmU7XG59XG5cbi5hbGVydC1kYXJrIC5hbGVydC1saW5rIHtcbiAgY29sb3I6ICMwNDA1MDU7XG59XG5cbkBrZXlmcmFtZXMgcHJvZ3Jlc3MtYmFyLXN0cmlwZXMge1xuICBmcm9tIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcmVtIDA7XG4gIH1cbiAgdG8ge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcbiAgfVxufVxuXG4ucHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IDFyZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U5ZWNlZjtcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcbn1cblxuLnByb2dyZXNzLWJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3YmZmO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGVhc2U7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnByb2dyZXNzLWJhciB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxufVxuXG4ucHJvZ3Jlc3MtYmFyLXN0cmlwZWQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1zaXplOiAxcmVtIDFyZW07XG59XG5cbi5wcm9ncmVzcy1iYXItYW5pbWF0ZWQge1xuICBhbmltYXRpb246IHByb2dyZXNzLWJhci1zdHJpcGVzIDFzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuLm1lZGlhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbi5tZWRpYS1ib2R5IHtcbiAgZmxleDogMTtcbn1cblxuLmxpc3QtZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGNvbG9yOiAjNDk1MDU3O1xuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xufVxuXG4ubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpob3ZlciwgLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246Zm9jdXMge1xuICBjb2xvcjogIzQ5NTA1NztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhO1xufVxuXG4ubGlzdC1ncm91cC1pdGVtLWFjdGlvbjphY3RpdmUge1xuICBjb2xvcjogIzIxMjUyOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U5ZWNlZjtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDAuNzVyZW0gMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEyNSk7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjI1cmVtO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC4yNXJlbTtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAuMjVyZW07XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAuMjVyZW07XG59XG5cbi5saXN0LWdyb3VwLWl0ZW06aG92ZXIsIC5saXN0LWdyb3VwLWl0ZW06Zm9jdXMge1xuICB6LWluZGV4OiAxO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQsIC5saXN0LWdyb3VwLWl0ZW06ZGlzYWJsZWQge1xuICBjb2xvcjogIzZjNzU3ZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUge1xuICB6LWluZGV4OiAyO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2JmZjtcbiAgYm9yZGVyLWNvbG9yOiAjMDA3YmZmO1xufVxuXG4ubGlzdC1ncm91cC1mbHVzaCAubGlzdC1ncm91cC1pdGVtIHtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xuICBib3JkZXItbGVmdDogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLmxpc3QtZ3JvdXAtZmx1c2g6Zmlyc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IDA7XG59XG5cbi5saXN0LWdyb3VwLWZsdXNoOmxhc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS1wcmltYXJ5IHtcbiAgY29sb3I6ICMwMDQwODU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiOGRhZmY7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW0tcHJpbWFyeS5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmhvdmVyLCAubGlzdC1ncm91cC1pdGVtLXByaW1hcnkubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpmb2N1cyB7XG4gIGNvbG9yOiAjMDA0MDg1O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWZjZGZmO1xufVxuXG4ubGlzdC1ncm91cC1pdGVtLXByaW1hcnkubGlzdC1ncm91cC1pdGVtLWFjdGlvbi5hY3RpdmUge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDA4NTtcbiAgYm9yZGVyLWNvbG9yOiAjMDA0MDg1O1xufVxuXG4ubGlzdC1ncm91cC1pdGVtLXNlY29uZGFyeSB7XG4gIGNvbG9yOiAjMzgzZDQxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDZkOGRiO1xufVxuXG4ubGlzdC1ncm91cC1pdGVtLXNlY29uZGFyeS5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmhvdmVyLCAubGlzdC1ncm91cC1pdGVtLXNlY29uZGFyeS5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmZvY3VzIHtcbiAgY29sb3I6ICMzODNkNDE7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjOGNiY2Y7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW0tc2Vjb25kYXJ5Lmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb24uYWN0aXZlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzODNkNDE7XG4gIGJvcmRlci1jb2xvcjogIzM4M2Q0MTtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzIHtcbiAgY29sb3I6ICMxNTU3MjQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjM2U2Y2I7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzcy5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmhvdmVyLCAubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpmb2N1cyB7XG4gIGNvbG9yOiAjMTU1NzI0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjFkZmJiO1xufVxuXG4ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MubGlzdC1ncm91cC1pdGVtLWFjdGlvbi5hY3RpdmUge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE1NTcyNDtcbiAgYm9yZGVyLWNvbG9yOiAjMTU1NzI0O1xufVxuXG4ubGlzdC1ncm91cC1pdGVtLWluZm8ge1xuICBjb2xvcjogIzBjNTQ2MDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JlZTVlYjtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246aG92ZXIsIC5saXN0LWdyb3VwLWl0ZW0taW5mby5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmZvY3VzIHtcbiAgY29sb3I6ICMwYzU0NjA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhYmRkZTU7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW0taW5mby5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uLmFjdGl2ZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGM1NDYwO1xuICBib3JkZXItY29sb3I6ICMwYzU0NjA7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZyB7XG4gIGNvbG9yOiAjODU2NDA0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlZWJhO1xufVxuXG4ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpob3ZlciwgLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246Zm9jdXMge1xuICBjb2xvcjogIzg1NjQwNDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZThhMTtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb24uYWN0aXZlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4NTY0MDQ7XG4gIGJvcmRlci1jb2xvcjogIzg1NjQwNDtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIge1xuICBjb2xvcjogIzcyMWMyNDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1YzZjYjtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpob3ZlciwgLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpmb2N1cyB7XG4gIGNvbG9yOiAjNzIxYzI0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFiMGI3O1xufVxuXG4ubGlzdC1ncm91cC1pdGVtLWRhbmdlci5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uLmFjdGl2ZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzIxYzI0O1xuICBib3JkZXItY29sb3I6ICM3MjFjMjQ7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW0tbGlnaHQge1xuICBjb2xvcjogIzgxODE4MjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkZmRmZTtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS1saWdodC5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmhvdmVyLCAubGlzdC1ncm91cC1pdGVtLWxpZ2h0Lmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246Zm9jdXMge1xuICBjb2xvcjogIzgxODE4MjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWNmNjtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS1saWdodC5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uLmFjdGl2ZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODE4MTgyO1xuICBib3JkZXItY29sb3I6ICM4MTgxODI7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW0tZGFyayB7XG4gIGNvbG9yOiAjMWIxZTIxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzZjOGNhO1xufVxuXG4ubGlzdC1ncm91cC1pdGVtLWRhcmsubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpob3ZlciwgLmxpc3QtZ3JvdXAtaXRlbS1kYXJrLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246Zm9jdXMge1xuICBjb2xvcjogIzFiMWUyMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2I5YmJiZTtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS1kYXJrLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb24uYWN0aXZlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxYjFlMjE7XG4gIGJvcmRlci1jb2xvcjogIzFiMWUyMTtcbn1cblxuLmNsb3NlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjMDAwO1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMCAjZmZmO1xuICBvcGFjaXR5OiAuNTtcbn1cblxuLmNsb3NlOmhvdmVyLCAuY2xvc2U6Zm9jdXMge1xuICBjb2xvcjogIzAwMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBvcGFjaXR5OiAuNzU7XG59XG5cbi5jbG9zZTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuYnV0dG9uLmNsb3NlIHtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4ubW9kYWwtb3BlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5tb2RhbCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDUwO1xuICBkaXNwbGF5OiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvdXRsaW5lOiAwO1xufVxuXG4ubW9kYWwtb3BlbiAubW9kYWwge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5tb2RhbC1kaWFsb2cge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW46IDAuNXJlbTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5tb2RhbC5mYWRlIC5tb2RhbC1kaWFsb2cge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLW91dDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTI1JSk7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLm1vZGFsLmZhZGUgLm1vZGFsLWRpYWxvZyB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxufVxuXG4ubW9kYWwuc2hvdyAubW9kYWwtZGlhbG9nIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG59XG5cbi5tb2RhbC1kaWFsb2ctY2VudGVyZWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtaW4taGVpZ2h0OiBjYWxjKDEwMCUgLSAoMC41cmVtICogMikpO1xufVxuXG4ubW9kYWwtY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGJvcmRlci1yYWRpdXM6IDAuM3JlbTtcbiAgb3V0bGluZTogMDtcbn1cblxuLm1vZGFsLWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwNDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG59XG5cbi5tb2RhbC1iYWNrZHJvcC5mYWRlIHtcbiAgb3BhY2l0eTogMDtcbn1cblxuLm1vZGFsLWJhY2tkcm9wLnNob3cge1xuICBvcGFjaXR5OiAwLjU7XG59XG5cbi5tb2RhbC1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAxcmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U5ZWNlZjtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC4zcmVtO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC4zcmVtO1xufVxuXG4ubW9kYWwtaGVhZGVyIC5jbG9zZSB7XG4gIHBhZGRpbmc6IDFyZW07XG4gIG1hcmdpbjogLTFyZW0gLTFyZW0gLTFyZW0gYXV0bztcbn1cblxuLm1vZGFsLXRpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLm1vZGFsLWJvZHkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBwYWRkaW5nOiAxcmVtO1xufVxuXG4ubW9kYWwtZm9vdGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlOWVjZWY7XG59XG5cbi5tb2RhbC1mb290ZXIgPiA6bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLjI1cmVtO1xufVxuXG4ubW9kYWwtZm9vdGVyID4gOm5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tcmlnaHQ6IC4yNXJlbTtcbn1cblxuLm1vZGFsLXNjcm9sbGJhci1tZWFzdXJlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC05OTk5cHg7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIG92ZXJmbG93OiBzY3JvbGw7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xuICAubW9kYWwtZGlhbG9nIHtcbiAgICBtYXgtd2lkdGg6IDUwMHB4O1xuICAgIG1hcmdpbjogMS43NXJlbSBhdXRvO1xuICB9XG4gIC5tb2RhbC1kaWFsb2ctY2VudGVyZWQge1xuICAgIG1pbi1oZWlnaHQ6IGNhbGMoMTAwJSAtICgxLjc1cmVtICogMikpO1xuICB9XG4gIC5tb2RhbC1zbSB7XG4gICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLm1vZGFsLWxnIHtcbiAgICBtYXgtd2lkdGg6IDgwMHB4O1xuICB9XG59XG5cbi50b29sdGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDcwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBBcmlhbCwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCI7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gIHdvcmQtc3BhY2luZzogbm9ybWFsO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBsaW5lLWJyZWFrOiBhdXRvO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi50b29sdGlwLnNob3cge1xuICBvcGFjaXR5OiAwLjk7XG59XG5cbi50b29sdGlwIC5hcnJvdyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwLjhyZW07XG4gIGhlaWdodDogMC40cmVtO1xufVxuXG4udG9vbHRpcCAuYXJyb3c6OmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogXCJcIjtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbn1cblxuLmJzLXRvb2x0aXAtdG9wLCAuYnMtdG9vbHRpcC1hdXRvW3gtcGxhY2VtZW50Xj1cInRvcFwiXSB7XG4gIHBhZGRpbmc6IDAuNHJlbSAwO1xufVxuXG4uYnMtdG9vbHRpcC10b3AgLmFycm93LCAuYnMtdG9vbHRpcC1hdXRvW3gtcGxhY2VtZW50Xj1cInRvcFwiXSAuYXJyb3cge1xuICBib3R0b206IDA7XG59XG5cbi5icy10b29sdGlwLXRvcCAuYXJyb3c6OmJlZm9yZSwgLmJzLXRvb2x0aXAtYXV0b1t4LXBsYWNlbWVudF49XCJ0b3BcIl0gLmFycm93OjpiZWZvcmUge1xuICB0b3A6IDA7XG4gIGJvcmRlci13aWR0aDogMC40cmVtIDAuNHJlbSAwO1xuICBib3JkZXItdG9wLWNvbG9yOiAjMDAwO1xufVxuXG4uYnMtdG9vbHRpcC1yaWdodCwgLmJzLXRvb2x0aXAtYXV0b1t4LXBsYWNlbWVudF49XCJyaWdodFwiXSB7XG4gIHBhZGRpbmc6IDAgMC40cmVtO1xufVxuXG4uYnMtdG9vbHRpcC1yaWdodCAuYXJyb3csIC5icy10b29sdGlwLWF1dG9beC1wbGFjZW1lbnRePVwicmlnaHRcIl0gLmFycm93IHtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDAuNHJlbTtcbiAgaGVpZ2h0OiAwLjhyZW07XG59XG5cbi5icy10b29sdGlwLXJpZ2h0IC5hcnJvdzo6YmVmb3JlLCAuYnMtdG9vbHRpcC1hdXRvW3gtcGxhY2VtZW50Xj1cInJpZ2h0XCJdIC5hcnJvdzo6YmVmb3JlIHtcbiAgcmlnaHQ6IDA7XG4gIGJvcmRlci13aWR0aDogMC40cmVtIDAuNHJlbSAwLjRyZW0gMDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjMDAwO1xufVxuXG4uYnMtdG9vbHRpcC1ib3R0b20sIC5icy10b29sdGlwLWF1dG9beC1wbGFjZW1lbnRePVwiYm90dG9tXCJdIHtcbiAgcGFkZGluZzogMC40cmVtIDA7XG59XG5cbi5icy10b29sdGlwLWJvdHRvbSAuYXJyb3csIC5icy10b29sdGlwLWF1dG9beC1wbGFjZW1lbnRePVwiYm90dG9tXCJdIC5hcnJvdyB7XG4gIHRvcDogMDtcbn1cblxuLmJzLXRvb2x0aXAtYm90dG9tIC5hcnJvdzo6YmVmb3JlLCAuYnMtdG9vbHRpcC1hdXRvW3gtcGxhY2VtZW50Xj1cImJvdHRvbVwiXSAuYXJyb3c6OmJlZm9yZSB7XG4gIGJvdHRvbTogMDtcbiAgYm9yZGVyLXdpZHRoOiAwIDAuNHJlbSAwLjRyZW07XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICMwMDA7XG59XG5cbi5icy10b29sdGlwLWxlZnQsIC5icy10b29sdGlwLWF1dG9beC1wbGFjZW1lbnRePVwibGVmdFwiXSB7XG4gIHBhZGRpbmc6IDAgMC40cmVtO1xufVxuXG4uYnMtdG9vbHRpcC1sZWZ0IC5hcnJvdywgLmJzLXRvb2x0aXAtYXV0b1t4LXBsYWNlbWVudF49XCJsZWZ0XCJdIC5hcnJvdyB7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMC40cmVtO1xuICBoZWlnaHQ6IDAuOHJlbTtcbn1cblxuLmJzLXRvb2x0aXAtbGVmdCAuYXJyb3c6OmJlZm9yZSwgLmJzLXRvb2x0aXAtYXV0b1t4LXBsYWNlbWVudF49XCJsZWZ0XCJdIC5hcnJvdzo6YmVmb3JlIHtcbiAgbGVmdDogMDtcbiAgYm9yZGVyLXdpZHRoOiAwLjRyZW0gMCAwLjRyZW0gMC40cmVtO1xuICBib3JkZXItbGVmdC1jb2xvcjogIzAwMDtcbn1cblxuLnRvb2x0aXAtaW5uZXIge1xuICBtYXgtd2lkdGg6IDIwMHB4O1xuICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcbn1cblxuLnBvcG92ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTA2MDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC13aWR0aDogMjc2cHg7XG4gIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIEFyaWFsLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS41O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIHdvcmQtYnJlYWs6IG5vcm1hbDtcbiAgd29yZC1zcGFjaW5nOiBub3JtYWw7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIGxpbmUtYnJlYWs6IGF1dG87XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBib3JkZXItcmFkaXVzOiAwLjNyZW07XG59XG5cbi5wb3BvdmVyIC5hcnJvdyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxcmVtO1xuICBoZWlnaHQ6IDAuNXJlbTtcbiAgbWFyZ2luOiAwIDAuM3JlbTtcbn1cblxuLnBvcG92ZXIgLmFycm93OjpiZWZvcmUsIC5wb3BvdmVyIC5hcnJvdzo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb250ZW50OiBcIlwiO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuXG4uYnMtcG9wb3Zlci10b3AsIC5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePVwidG9wXCJdIHtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG4uYnMtcG9wb3Zlci10b3AgLmFycm93LCAuYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1cInRvcFwiXSAuYXJyb3cge1xuICBib3R0b206IGNhbGMoKDAuNXJlbSArIDFweCkgKiAtMSk7XG59XG5cbi5icy1wb3BvdmVyLXRvcCAuYXJyb3c6OmJlZm9yZSwgLmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49XCJ0b3BcIl0gLmFycm93OjpiZWZvcmUsXG4uYnMtcG9wb3Zlci10b3AgLmFycm93OjphZnRlcixcbi5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePVwidG9wXCJdIC5hcnJvdzo6YWZ0ZXIge1xuICBib3JkZXItd2lkdGg6IDAuNXJlbSAwLjVyZW0gMDtcbn1cblxuLmJzLXBvcG92ZXItdG9wIC5hcnJvdzo6YmVmb3JlLCAuYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1cInRvcFwiXSAuYXJyb3c6OmJlZm9yZSB7XG4gIGJvdHRvbTogMDtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI1KTtcbn1cblxuXG4uYnMtcG9wb3Zlci10b3AgLmFycm93OjphZnRlcixcbi5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePVwidG9wXCJdIC5hcnJvdzo6YWZ0ZXIge1xuICBib3R0b206IDFweDtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmZjtcbn1cblxuLmJzLXBvcG92ZXItcmlnaHQsIC5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePVwicmlnaHRcIl0ge1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xufVxuXG4uYnMtcG9wb3Zlci1yaWdodCAuYXJyb3csIC5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePVwicmlnaHRcIl0gLmFycm93IHtcbiAgbGVmdDogY2FsYygoMC41cmVtICsgMXB4KSAqIC0xKTtcbiAgd2lkdGg6IDAuNXJlbTtcbiAgaGVpZ2h0OiAxcmVtO1xuICBtYXJnaW46IDAuM3JlbSAwO1xufVxuXG4uYnMtcG9wb3Zlci1yaWdodCAuYXJyb3c6OmJlZm9yZSwgLmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49XCJyaWdodFwiXSAuYXJyb3c6OmJlZm9yZSxcbi5icy1wb3BvdmVyLXJpZ2h0IC5hcnJvdzo6YWZ0ZXIsXG4uYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1cInJpZ2h0XCJdIC5hcnJvdzo6YWZ0ZXIge1xuICBib3JkZXItd2lkdGg6IDAuNXJlbSAwLjVyZW0gMC41cmVtIDA7XG59XG5cbi5icy1wb3BvdmVyLXJpZ2h0IC5hcnJvdzo6YmVmb3JlLCAuYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1cInJpZ2h0XCJdIC5hcnJvdzo6YmVmb3JlIHtcbiAgbGVmdDogMDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjUpO1xufVxuXG5cbi5icy1wb3BvdmVyLXJpZ2h0IC5hcnJvdzo6YWZ0ZXIsXG4uYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1cInJpZ2h0XCJdIC5hcnJvdzo6YWZ0ZXIge1xuICBsZWZ0OiAxcHg7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogI2ZmZjtcbn1cblxuLmJzLXBvcG92ZXItYm90dG9tLCAuYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1cImJvdHRvbVwiXSB7XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbn1cblxuLmJzLXBvcG92ZXItYm90dG9tIC5hcnJvdywgLmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49XCJib3R0b21cIl0gLmFycm93IHtcbiAgdG9wOiBjYWxjKCgwLjVyZW0gKyAxcHgpICogLTEpO1xufVxuXG4uYnMtcG9wb3Zlci1ib3R0b20gLmFycm93OjpiZWZvcmUsIC5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePVwiYm90dG9tXCJdIC5hcnJvdzo6YmVmb3JlLFxuLmJzLXBvcG92ZXItYm90dG9tIC5hcnJvdzo6YWZ0ZXIsXG4uYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1cImJvdHRvbVwiXSAuYXJyb3c6OmFmdGVyIHtcbiAgYm9yZGVyLXdpZHRoOiAwIDAuNXJlbSAwLjVyZW0gMC41cmVtO1xufVxuXG4uYnMtcG9wb3Zlci1ib3R0b20gLmFycm93OjpiZWZvcmUsIC5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePVwiYm90dG9tXCJdIC5hcnJvdzo6YmVmb3JlIHtcbiAgdG9wOiAwO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjUpO1xufVxuXG5cbi5icy1wb3BvdmVyLWJvdHRvbSAuYXJyb3c6OmFmdGVyLFxuLmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49XCJib3R0b21cIl0gLmFycm93OjphZnRlciB7XG4gIHRvcDogMXB4O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjZmZmO1xufVxuXG4uYnMtcG9wb3Zlci1ib3R0b20gLnBvcG92ZXItaGVhZGVyOjpiZWZvcmUsIC5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePVwiYm90dG9tXCJdIC5wb3BvdmVyLWhlYWRlcjo6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDUwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxcmVtO1xuICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgY29udGVudDogXCJcIjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmN2Y3Zjc7XG59XG5cbi5icy1wb3BvdmVyLWxlZnQsIC5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePVwibGVmdFwiXSB7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xufVxuXG4uYnMtcG9wb3Zlci1sZWZ0IC5hcnJvdywgLmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49XCJsZWZ0XCJdIC5hcnJvdyB7XG4gIHJpZ2h0OiBjYWxjKCgwLjVyZW0gKyAxcHgpICogLTEpO1xuICB3aWR0aDogMC41cmVtO1xuICBoZWlnaHQ6IDFyZW07XG4gIG1hcmdpbjogMC4zcmVtIDA7XG59XG5cbi5icy1wb3BvdmVyLWxlZnQgLmFycm93OjpiZWZvcmUsIC5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePVwibGVmdFwiXSAuYXJyb3c6OmJlZm9yZSxcbi5icy1wb3BvdmVyLWxlZnQgLmFycm93OjphZnRlcixcbi5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePVwibGVmdFwiXSAuYXJyb3c6OmFmdGVyIHtcbiAgYm9yZGVyLXdpZHRoOiAwLjVyZW0gMCAwLjVyZW0gMC41cmVtO1xufVxuXG4uYnMtcG9wb3Zlci1sZWZ0IC5hcnJvdzo6YmVmb3JlLCAuYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1cImxlZnRcIl0gLmFycm93OjpiZWZvcmUge1xuICByaWdodDogMDtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG59XG5cblxuLmJzLXBvcG92ZXItbGVmdCAuYXJyb3c6OmFmdGVyLFxuLmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49XCJsZWZ0XCJdIC5hcnJvdzo6YWZ0ZXIge1xuICByaWdodDogMXB4O1xuICBib3JkZXItbGVmdC1jb2xvcjogI2ZmZjtcbn1cblxuLnBvcG92ZXItaGVhZGVyIHtcbiAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWJlYmViO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBjYWxjKDAuM3JlbSAtIDFweCk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBjYWxjKDAuM3JlbSAtIDFweCk7XG59XG5cbi5wb3BvdmVyLWhlYWRlcjplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5wb3BvdmVyLWJvZHkge1xuICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgY29sb3I6ICMyMTI1Mjk7XG59XG5cbi5jYXJvdXNlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNhcm91c2VsLWlubmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmNhcm91c2VsLWl0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC42cyBlYXNlO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIHBlcnNwZWN0aXZlOiAxMDAwcHg7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmNhcm91c2VsLWl0ZW0ge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbn1cblxuLmNhcm91c2VsLWl0ZW0uYWN0aXZlLFxuLmNhcm91c2VsLWl0ZW0tbmV4dCxcbi5jYXJvdXNlbC1pdGVtLXByZXYge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmNhcm91c2VsLWl0ZW0tbmV4dCxcbi5jYXJvdXNlbC1pdGVtLXByZXYge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbn1cblxuLmNhcm91c2VsLWl0ZW0tbmV4dC5jYXJvdXNlbC1pdGVtLWxlZnQsXG4uY2Fyb3VzZWwtaXRlbS1wcmV2LmNhcm91c2VsLWl0ZW0tcmlnaHQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG59XG5cbkBzdXBwb3J0cyAodHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZCkge1xuICAuY2Fyb3VzZWwtaXRlbS1uZXh0LmNhcm91c2VsLWl0ZW0tbGVmdCxcbiAgLmNhcm91c2VsLWl0ZW0tcHJldi5jYXJvdXNlbC1pdGVtLXJpZ2h0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbi5jYXJvdXNlbC1pdGVtLW5leHQsXG4uYWN0aXZlLmNhcm91c2VsLWl0ZW0tcmlnaHQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG59XG5cbkBzdXBwb3J0cyAodHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZCkge1xuICAuY2Fyb3VzZWwtaXRlbS1uZXh0LFxuICAuYWN0aXZlLmNhcm91c2VsLWl0ZW0tcmlnaHQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gIH1cbn1cblxuLmNhcm91c2VsLWl0ZW0tcHJldixcbi5hY3RpdmUuY2Fyb3VzZWwtaXRlbS1sZWZ0IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbn1cblxuQHN1cHBvcnRzICh0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkKSB7XG4gIC5jYXJvdXNlbC1pdGVtLXByZXYsXG4gIC5hY3RpdmUuY2Fyb3VzZWwtaXRlbS1sZWZ0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgfVxufVxuXG4uY2Fyb3VzZWwtZmFkZSAuY2Fyb3VzZWwtaXRlbSB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IC42cztcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbn1cblxuLmNhcm91c2VsLWZhZGUgLmNhcm91c2VsLWl0ZW0uYWN0aXZlLFxuLmNhcm91c2VsLWZhZGUgLmNhcm91c2VsLWl0ZW0tbmV4dC5jYXJvdXNlbC1pdGVtLWxlZnQsXG4uY2Fyb3VzZWwtZmFkZSAuY2Fyb3VzZWwtaXRlbS1wcmV2LmNhcm91c2VsLWl0ZW0tcmlnaHQge1xuICBvcGFjaXR5OiAxO1xufVxuXG4uY2Fyb3VzZWwtZmFkZSAuYWN0aXZlLmNhcm91c2VsLWl0ZW0tbGVmdCxcbi5jYXJvdXNlbC1mYWRlIC5hY3RpdmUuY2Fyb3VzZWwtaXRlbS1yaWdodCB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5jYXJvdXNlbC1mYWRlIC5jYXJvdXNlbC1pdGVtLW5leHQsXG4uY2Fyb3VzZWwtZmFkZSAuY2Fyb3VzZWwtaXRlbS1wcmV2LFxuLmNhcm91c2VsLWZhZGUgLmNhcm91c2VsLWl0ZW0uYWN0aXZlLFxuLmNhcm91c2VsLWZhZGUgLmFjdGl2ZS5jYXJvdXNlbC1pdGVtLWxlZnQsXG4uY2Fyb3VzZWwtZmFkZSAuYWN0aXZlLmNhcm91c2VsLWl0ZW0tcHJldiB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbn1cblxuQHN1cHBvcnRzICh0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkKSB7XG4gIC5jYXJvdXNlbC1mYWRlIC5jYXJvdXNlbC1pdGVtLW5leHQsXG4gIC5jYXJvdXNlbC1mYWRlIC5jYXJvdXNlbC1pdGVtLXByZXYsXG4gIC5jYXJvdXNlbC1mYWRlIC5jYXJvdXNlbC1pdGVtLmFjdGl2ZSxcbiAgLmNhcm91c2VsLWZhZGUgLmFjdGl2ZS5jYXJvdXNlbC1pdGVtLWxlZnQsXG4gIC5jYXJvdXNlbC1mYWRlIC5hY3RpdmUuY2Fyb3VzZWwtaXRlbS1wcmV2IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbi5jYXJvdXNlbC1jb250cm9sLXByZXYsXG4uY2Fyb3VzZWwtY29udHJvbC1uZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxNSU7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG9wYWNpdHk6IDAuNTtcbn1cblxuLmNhcm91c2VsLWNvbnRyb2wtcHJldjpob3ZlciwgLmNhcm91c2VsLWNvbnRyb2wtcHJldjpmb2N1cyxcbi5jYXJvdXNlbC1jb250cm9sLW5leHQ6aG92ZXIsXG4uY2Fyb3VzZWwtY29udHJvbC1uZXh0OmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgb3V0bGluZTogMDtcbiAgb3BhY2l0eTogLjk7XG59XG5cbi5jYXJvdXNlbC1jb250cm9sLXByZXYge1xuICBsZWZ0OiAwO1xufVxuXG4uY2Fyb3VzZWwtY29udHJvbC1uZXh0IHtcbiAgcmlnaHQ6IDA7XG59XG5cbi5jYXJvdXNlbC1jb250cm9sLXByZXYtaWNvbixcbi5jYXJvdXNlbC1jb250cm9sLW5leHQtaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xufVxuXG4uY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb24ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGZpbGw9JyUyM2ZmZicgdmlld0JveD0nMCAwIDggOCclM0UlM0NwYXRoIGQ9J001LjI1IDBsLTQgNCA0IDQgMS41LTEuNS0yLjUtMi41IDIuNS0yLjUtMS41LTEuNXonLyUzRSUzQy9zdmclM0VcIik7XG59XG5cbi5jYXJvdXNlbC1jb250cm9sLW5leHQtaWNvbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgZmlsbD0nJTIzZmZmJyB2aWV3Qm94PScwIDAgOCA4JyUzRSUzQ3BhdGggZD0nTTIuNzUgMGwtMS41IDEuNSAyLjUgMi41LTIuNSAyLjUgMS41IDEuNSA0LTQtNC00eicvJTNFJTNDL3N2ZyUzRVwiKTtcbn1cblxuLmNhcm91c2VsLWluZGljYXRvcnMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDEwcHg7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDE1O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDE1JTtcbiAgbWFyZ2luLWxlZnQ6IDE1JTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLmNhcm91c2VsLWluZGljYXRvcnMgbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzcHg7XG4gIG1hcmdpbi1yaWdodDogM3B4O1xuICBtYXJnaW4tbGVmdDogM3B4O1xuICB0ZXh0LWluZGVudDogLTk5OXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cblxuLmNhcm91c2VsLWluZGljYXRvcnMgbGk6OmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMTBweDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMHB4O1xuICBjb250ZW50OiBcIlwiO1xufVxuXG4uY2Fyb3VzZWwtaW5kaWNhdG9ycyBsaTo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogLTEwcHg7XG4gIGxlZnQ6IDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTBweDtcbiAgY29udGVudDogXCJcIjtcbn1cblxuLmNhcm91c2VsLWluZGljYXRvcnMgLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5jYXJvdXNlbC1jYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTUlO1xuICBib3R0b206IDIwcHg7XG4gIGxlZnQ6IDE1JTtcbiAgei1pbmRleDogMTA7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmFsaWduLWJhc2VsaW5lIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi10b3Age1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1taWRkbGUge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1ib3R0b20ge1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi10ZXh0LWJvdHRvbSB7XG4gIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbSAhaW1wb3J0YW50O1xufVxuXG4uYWxpZ24tdGV4dC10b3Age1xuICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3AgIWltcG9ydGFudDtcbn1cblxuLmJnLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3YmZmICFpbXBvcnRhbnQ7XG59XG5cbmEuYmctcHJpbWFyeTpob3ZlciwgYS5iZy1wcmltYXJ5OmZvY3VzLFxuYnV0dG9uLmJnLXByaW1hcnk6aG92ZXIsXG5idXR0b24uYmctcHJpbWFyeTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDYyY2MgIWltcG9ydGFudDtcbn1cblxuLmJnLXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2Yzc1N2QgIWltcG9ydGFudDtcbn1cblxuYS5iZy1zZWNvbmRhcnk6aG92ZXIsIGEuYmctc2Vjb25kYXJ5OmZvY3VzLFxuYnV0dG9uLmJnLXNlY29uZGFyeTpob3ZlcixcbmJ1dHRvbi5iZy1zZWNvbmRhcnk6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ1YjYyICFpbXBvcnRhbnQ7XG59XG5cbi5iZy1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI4YTc0NSAhaW1wb3J0YW50O1xufVxuXG5hLmJnLXN1Y2Nlc3M6aG92ZXIsIGEuYmctc3VjY2Vzczpmb2N1cyxcbmJ1dHRvbi5iZy1zdWNjZXNzOmhvdmVyLFxuYnV0dG9uLmJnLXN1Y2Nlc3M6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWU3ZTM0ICFpbXBvcnRhbnQ7XG59XG5cbi5iZy1pbmZvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3YTJiOCAhaW1wb3J0YW50O1xufVxuXG5hLmJnLWluZm86aG92ZXIsIGEuYmctaW5mbzpmb2N1cyxcbmJ1dHRvbi5iZy1pbmZvOmhvdmVyLFxuYnV0dG9uLmJnLWluZm86Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTE3YThiICFpbXBvcnRhbnQ7XG59XG5cbi5iZy13YXJuaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYzEwNyAhaW1wb3J0YW50O1xufVxuXG5hLmJnLXdhcm5pbmc6aG92ZXIsIGEuYmctd2FybmluZzpmb2N1cyxcbmJ1dHRvbi5iZy13YXJuaW5nOmhvdmVyLFxuYnV0dG9uLmJnLXdhcm5pbmc6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDM5ZTAwICFpbXBvcnRhbnQ7XG59XG5cbi5iZy1kYW5nZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGMzNTQ1ICFpbXBvcnRhbnQ7XG59XG5cbmEuYmctZGFuZ2VyOmhvdmVyLCBhLmJnLWRhbmdlcjpmb2N1cyxcbmJ1dHRvbi5iZy1kYW5nZXI6aG92ZXIsXG5idXR0b24uYmctZGFuZ2VyOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JkMjEzMCAhaW1wb3J0YW50O1xufVxuXG4uYmctbGlnaHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhICFpbXBvcnRhbnQ7XG59XG5cbmEuYmctbGlnaHQ6aG92ZXIsIGEuYmctbGlnaHQ6Zm9jdXMsXG5idXR0b24uYmctbGlnaHQ6aG92ZXIsXG5idXR0b24uYmctbGlnaHQ6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGFlMGU1ICFpbXBvcnRhbnQ7XG59XG5cbi5iZy1kYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM0M2E0MCAhaW1wb3J0YW50O1xufVxuXG5hLmJnLWRhcms6aG92ZXIsIGEuYmctZGFyazpmb2N1cyxcbmJ1dHRvbi5iZy1kYXJrOmhvdmVyLFxuYnV0dG9uLmJnLWRhcms6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWQyMTI0ICFpbXBvcnRhbnQ7XG59XG5cbi5iZy13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbn1cblxuLmJnLXRyYW5zcGFyZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuLmJvcmRlciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZWUyZTYgIWltcG9ydGFudDtcbn1cblxuLmJvcmRlci10b3Age1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RlZTJlNiAhaW1wb3J0YW50O1xufVxuXG4uYm9yZGVyLXJpZ2h0IHtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RlZTJlNiAhaW1wb3J0YW50O1xufVxuXG4uYm9yZGVyLWJvdHRvbSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGVlMmU2ICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItbGVmdCB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2RlZTJlNiAhaW1wb3J0YW50O1xufVxuXG4uYm9yZGVyLTAge1xuICBib3JkZXI6IDAgIWltcG9ydGFudDtcbn1cblxuLmJvcmRlci10b3AtMCB7XG4gIGJvcmRlci10b3A6IDAgIWltcG9ydGFudDtcbn1cblxuLmJvcmRlci1yaWdodC0wIHtcbiAgYm9yZGVyLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItYm90dG9tLTAge1xuICBib3JkZXItYm90dG9tOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItbGVmdC0wIHtcbiAgYm9yZGVyLWxlZnQ6IDAgIWltcG9ydGFudDtcbn1cblxuLmJvcmRlci1wcmltYXJ5IHtcbiAgYm9yZGVyLWNvbG9yOiAjMDA3YmZmICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItc2Vjb25kYXJ5IHtcbiAgYm9yZGVyLWNvbG9yOiAjNmM3NTdkICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItc3VjY2VzcyB7XG4gIGJvcmRlci1jb2xvcjogIzI4YTc0NSAhaW1wb3J0YW50O1xufVxuXG4uYm9yZGVyLWluZm8ge1xuICBib3JkZXItY29sb3I6ICMxN2EyYjggIWltcG9ydGFudDtcbn1cblxuLmJvcmRlci13YXJuaW5nIHtcbiAgYm9yZGVyLWNvbG9yOiAjZmZjMTA3ICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItZGFuZ2VyIHtcbiAgYm9yZGVyLWNvbG9yOiAjZGMzNTQ1ICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItbGlnaHQge1xuICBib3JkZXItY29sb3I6ICNmOGY5ZmEgIWltcG9ydGFudDtcbn1cblxuLmJvcmRlci1kYXJrIHtcbiAgYm9yZGVyLWNvbG9yOiAjMzQzYTQwICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItd2hpdGUge1xuICBib3JkZXItY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbn1cblxuLnJvdW5kZWQge1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5yb3VuZGVkLXRvcCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAuMjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnJvdW5kZWQtcmlnaHQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC4yNXJlbSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC4yNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC1ib3R0b20ge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC4yNXJlbSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5yb3VuZGVkLWxlZnQge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAuMjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnJvdW5kZWQtY2lyY2xlIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG59XG5cbi5yb3VuZGVkLTAge1xuICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5jbGVhcmZpeDo6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY2xlYXI6IGJvdGg7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG5cbi5kLW5vbmUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5kLWlubGluZSB7XG4gIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xufVxuXG4uZC1pbmxpbmUtYmxvY2sge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbn1cblxuLmQtYmxvY2sge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xufVxuXG4uZC10YWJsZSB7XG4gIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG59XG5cbi5kLXRhYmxlLXJvdyB7XG4gIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xufVxuXG4uZC10YWJsZS1jZWxsIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50O1xufVxuXG4uZC1mbGV4IHtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xufVxuXG4uZC1pbmxpbmUtZmxleCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xuICAuZC1zbS1ub25lIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtc20taW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxuICAuZC1zbS1pbmxpbmUtYmxvY2sge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIC5kLXNtLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIC5kLXNtLXRhYmxlIHtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50O1xuICB9XG4gIC5kLXNtLXRhYmxlLXJvdyB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtc20tdGFibGUtY2VsbCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50O1xuICB9XG4gIC5kLXNtLWZsZXgge1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgfVxuICAuZC1zbS1pbmxpbmUtZmxleCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmQtbWQtbm9uZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC5kLW1kLWlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtbWQtaW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAuZC1tZC1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAuZC1tZC10YWJsZSB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbiAgfVxuICAuZC1tZC10YWJsZS1yb3cge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xuICB9XG4gIC5kLW1kLXRhYmxlLWNlbGwge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgfVxuICAuZC1tZC1mbGV4IHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtbWQtaW5saW5lLWZsZXgge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5kLWxnLW5vbmUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAuZC1sZy1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG4gIC5kLWxnLWlubGluZS1ibG9jayB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtbGctYmxvY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtbGctdGFibGUge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtbGctdGFibGUtcm93IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDtcbiAgfVxuICAuZC1sZy10YWJsZS1jZWxsIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtbGctZmxleCB7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICB9XG4gIC5kLWxnLWlubGluZS1mbGV4IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmQteGwtbm9uZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC5kLXhsLWlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQteGwtaW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAuZC14bC1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAuZC14bC10YWJsZSB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbiAgfVxuICAuZC14bC10YWJsZS1yb3cge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xuICB9XG4gIC5kLXhsLXRhYmxlLWNlbGwge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgfVxuICAuZC14bC1mbGV4IHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQteGwtaW5saW5lLWZsZXgge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50IHtcbiAgLmQtcHJpbnQtbm9uZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC5kLXByaW50LWlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtcHJpbnQtaW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAuZC1wcmludC1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAuZC1wcmludC10YWJsZSB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbiAgfVxuICAuZC1wcmludC10YWJsZS1yb3cge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xuICB9XG4gIC5kLXByaW50LXRhYmxlLWNlbGwge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgfVxuICAuZC1wcmludC1mbGV4IHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtcHJpbnQtaW5saW5lLWZsZXgge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmVtYmVkLXJlc3BvbnNpdmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmVtYmVkLXJlc3BvbnNpdmU6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb250ZW50OiBcIlwiO1xufVxuXG4uZW1iZWQtcmVzcG9uc2l2ZSAuZW1iZWQtcmVzcG9uc2l2ZS1pdGVtLFxuLmVtYmVkLXJlc3BvbnNpdmUgaWZyYW1lLFxuLmVtYmVkLXJlc3BvbnNpdmUgZW1iZWQsXG4uZW1iZWQtcmVzcG9uc2l2ZSBvYmplY3QsXG4uZW1iZWQtcmVzcG9uc2l2ZSB2aWRlbyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlcjogMDtcbn1cblxuLmVtYmVkLXJlc3BvbnNpdmUtMjFieTk6OmJlZm9yZSB7XG4gIHBhZGRpbmctdG9wOiA0Mi44NTcxNDMlO1xufVxuXG4uZW1iZWQtcmVzcG9uc2l2ZS0xNmJ5OTo6YmVmb3JlIHtcbiAgcGFkZGluZy10b3A6IDU2LjI1JTtcbn1cblxuLmVtYmVkLXJlc3BvbnNpdmUtNGJ5Mzo6YmVmb3JlIHtcbiAgcGFkZGluZy10b3A6IDc1JTtcbn1cblxuLmVtYmVkLXJlc3BvbnNpdmUtMWJ5MTo6YmVmb3JlIHtcbiAgcGFkZGluZy10b3A6IDEwMCU7XG59XG5cbi5mbGV4LXJvdyB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDtcbn1cblxuLmZsZXgtY29sdW1uIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xufVxuXG4uZmxleC1yb3ctcmV2ZXJzZSB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZSAhaW1wb3J0YW50O1xufVxuXG4uZmxleC1jb2x1bW4tcmV2ZXJzZSB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZSAhaW1wb3J0YW50O1xufVxuXG4uZmxleC13cmFwIHtcbiAgZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7XG59XG5cbi5mbGV4LW5vd3JhcCB7XG4gIGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7XG59XG5cbi5mbGV4LXdyYXAtcmV2ZXJzZSB7XG4gIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlICFpbXBvcnRhbnQ7XG59XG5cbi5mbGV4LWZpbGwge1xuICBmbGV4OiAxIDEgYXV0byAhaW1wb3J0YW50O1xufVxuXG4uZmxleC1ncm93LTAge1xuICBmbGV4LWdyb3c6IDAgIWltcG9ydGFudDtcbn1cblxuLmZsZXgtZ3Jvdy0xIHtcbiAgZmxleC1ncm93OiAxICFpbXBvcnRhbnQ7XG59XG5cbi5mbGV4LXNocmluay0wIHtcbiAgZmxleC1zaHJpbms6IDAgIWltcG9ydGFudDtcbn1cblxuLmZsZXgtc2hyaW5rLTEge1xuICBmbGV4LXNocmluazogMSAhaW1wb3J0YW50O1xufVxuXG4uanVzdGlmeS1jb250ZW50LXN0YXJ0IHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG59XG5cbi5qdXN0aWZ5LWNvbnRlbnQtZW5kIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50O1xufVxuXG4uanVzdGlmeS1jb250ZW50LWNlbnRlciB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG59XG5cbi5qdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50O1xufVxuXG4uanVzdGlmeS1jb250ZW50LWFyb3VuZCB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1pdGVtcy1zdGFydCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1pdGVtcy1lbmQge1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQgIWltcG9ydGFudDtcbn1cblxuLmFsaWduLWl0ZW1zLWNlbnRlciB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbn1cblxuLmFsaWduLWl0ZW1zLWJhc2VsaW5lIHtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1pdGVtcy1zdHJldGNoIHtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2ggIWltcG9ydGFudDtcbn1cblxuLmFsaWduLWNvbnRlbnQtc3RhcnQge1xuICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1jb250ZW50LWVuZCB7XG4gIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1jb250ZW50LWNlbnRlciB7XG4gIGFsaWduLWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xufVxuXG4uYWxpZ24tY29udGVudC1iZXR3ZWVuIHtcbiAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50O1xufVxuXG4uYWxpZ24tY29udGVudC1hcm91bmQge1xuICBhbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDtcbn1cblxuLmFsaWduLWNvbnRlbnQtc3RyZXRjaCB7XG4gIGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2ggIWltcG9ydGFudDtcbn1cblxuLmFsaWduLXNlbGYtYXV0byB7XG4gIGFsaWduLXNlbGY6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmFsaWduLXNlbGYtc3RhcnQge1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1zZWxmLWVuZCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1zZWxmLWNlbnRlciB7XG4gIGFsaWduLXNlbGY6IGNlbnRlciAhaW1wb3J0YW50O1xufVxuXG4uYWxpZ24tc2VsZi1iYXNlbGluZSB7XG4gIGFsaWduLXNlbGY6IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1zZWxmLXN0cmV0Y2gge1xuICBhbGlnbi1zZWxmOiBzdHJldGNoICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xuICAuZmxleC1zbS1yb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1zbS1jb2x1bW4ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1zbS1yb3ctcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtc20tY29sdW1uLXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZSAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LXNtLXdyYXAge1xuICAgIGZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LXNtLW5vd3JhcCB7XG4gICAgZmxleC13cmFwOiBub3dyYXAgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1zbS13cmFwLXJldmVyc2Uge1xuICAgIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtc20tZmlsbCB7XG4gICAgZmxleDogMSAxIGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1zbS1ncm93LTAge1xuICAgIGZsZXgtZ3JvdzogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LXNtLWdyb3ctMSB7XG4gICAgZmxleC1ncm93OiAxICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtc20tc2hyaW5rLTAge1xuICAgIGZsZXgtc2hyaW5rOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtc20tc2hyaW5rLTEge1xuICAgIGZsZXgtc2hyaW5rOiAxICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmp1c3RpZnktY29udGVudC1zbS1zdGFydCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmp1c3RpZnktY29udGVudC1zbS1lbmQge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDtcbiAgfVxuICAuanVzdGlmeS1jb250ZW50LXNtLWNlbnRlciB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxuICAuanVzdGlmeS1jb250ZW50LXNtLWJldHdlZW4ge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50O1xuICB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQtc20tYXJvdW5kIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1pdGVtcy1zbS1zdGFydCB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24taXRlbXMtc20tZW5kIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24taXRlbXMtc20tY2VudGVyIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWl0ZW1zLXNtLWJhc2VsaW5lIHtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmUgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24taXRlbXMtc20tc3RyZXRjaCB7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2ggIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC1zbS1zdGFydCB7XG4gICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1jb250ZW50LXNtLWVuZCB7XG4gICAgYWxpZ24tY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC1zbS1jZW50ZXIge1xuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1jb250ZW50LXNtLWJldHdlZW4ge1xuICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC1zbS1hcm91bmQge1xuICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1jb250ZW50LXNtLXN0cmV0Y2gge1xuICAgIGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2ggIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tc2VsZi1zbS1hdXRvIHtcbiAgICBhbGlnbi1zZWxmOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYtc20tc3RhcnQge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tc2VsZi1zbS1lbmQge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYtc20tY2VudGVyIHtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tc2VsZi1zbS1iYXNlbGluZSB7XG4gICAgYWxpZ24tc2VsZjogYmFzZWxpbmUgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tc2VsZi1zbS1zdHJldGNoIHtcbiAgICBhbGlnbi1zZWxmOiBzdHJldGNoICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5mbGV4LW1kLXJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdyAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LW1kLWNvbHVtbiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LW1kLXJvdy1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2UgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1tZC1jb2x1bW4tcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtbWQtd3JhcCB7XG4gICAgZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtbWQtbm93cmFwIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LW1kLXdyYXAtcmV2ZXJzZSB7XG4gICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2UgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1tZC1maWxsIHtcbiAgICBmbGV4OiAxIDEgYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LW1kLWdyb3ctMCB7XG4gICAgZmxleC1ncm93OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtbWQtZ3Jvdy0xIHtcbiAgICBmbGV4LWdyb3c6IDEgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1tZC1zaHJpbmstMCB7XG4gICAgZmxleC1zaHJpbms6IDAgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1tZC1zaHJpbmstMSB7XG4gICAgZmxleC1zaHJpbms6IDEgIWltcG9ydGFudDtcbiAgfVxuICAuanVzdGlmeS1jb250ZW50LW1kLXN0YXJ0IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbiAgfVxuICAuanVzdGlmeS1jb250ZW50LW1kLWVuZCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50O1xuICB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQtbWQtY2VudGVyIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQtbWQtYmV0d2VlbiB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmp1c3RpZnktY29udGVudC1tZC1hcm91bmQge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWl0ZW1zLW1kLXN0YXJ0IHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1pdGVtcy1tZC1lbmQge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1pdGVtcy1tZC1jZW50ZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24taXRlbXMtbWQtYmFzZWxpbmUge1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1pdGVtcy1tZC1zdHJldGNoIHtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1jb250ZW50LW1kLXN0YXJ0IHtcbiAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWNvbnRlbnQtbWQtZW5kIHtcbiAgICBhbGlnbi1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1jb250ZW50LW1kLWNlbnRlciB7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWNvbnRlbnQtbWQtYmV0d2VlbiB7XG4gICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1jb250ZW50LW1kLWFyb3VuZCB7XG4gICAgYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWNvbnRlbnQtbWQtc3RyZXRjaCB7XG4gICAgYWxpZ24tY29udGVudDogc3RyZXRjaCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1zZWxmLW1kLWF1dG8ge1xuICAgIGFsaWduLXNlbGY6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tc2VsZi1tZC1zdGFydCB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1zZWxmLW1kLWVuZCB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tc2VsZi1tZC1jZW50ZXIge1xuICAgIGFsaWduLXNlbGY6IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1zZWxmLW1kLWJhc2VsaW5lIHtcbiAgICBhbGlnbi1zZWxmOiBiYXNlbGluZSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1zZWxmLW1kLXN0cmV0Y2gge1xuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2ggIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmZsZXgtbGctcm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtbGctY29sdW1uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtbGctcm93LXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZSAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LWxnLWNvbHVtbi1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2UgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1sZy13cmFwIHtcbiAgICBmbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1sZy1ub3dyYXAge1xuICAgIGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtbGctd3JhcC1yZXZlcnNlIHtcbiAgICBmbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZSAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LWxnLWZpbGwge1xuICAgIGZsZXg6IDEgMSBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtbGctZ3Jvdy0wIHtcbiAgICBmbGV4LWdyb3c6IDAgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1sZy1ncm93LTEge1xuICAgIGZsZXgtZ3JvdzogMSAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LWxnLXNocmluay0wIHtcbiAgICBmbGV4LXNocmluazogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LWxnLXNocmluay0xIHtcbiAgICBmbGV4LXNocmluazogMSAhaW1wb3J0YW50O1xuICB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQtbGctc3RhcnQge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQtbGctZW5kIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmp1c3RpZnktY29udGVudC1sZy1jZW50ZXIge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmp1c3RpZnktY29udGVudC1sZy1iZXR3ZWVuIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDtcbiAgfVxuICAuanVzdGlmeS1jb250ZW50LWxnLWFyb3VuZCB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24taXRlbXMtbGctc3RhcnQge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWl0ZW1zLWxnLWVuZCB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWl0ZW1zLWxnLWNlbnRlciB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1pdGVtcy1sZy1iYXNlbGluZSB7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWl0ZW1zLWxnLXN0cmV0Y2gge1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWNvbnRlbnQtbGctc3RhcnQge1xuICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC1sZy1lbmQge1xuICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWNvbnRlbnQtbGctY2VudGVyIHtcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC1sZy1iZXR3ZWVuIHtcbiAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWNvbnRlbnQtbGctYXJvdW5kIHtcbiAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC1sZy1zdHJldGNoIHtcbiAgICBhbGlnbi1jb250ZW50OiBzdHJldGNoICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYtbGctYXV0byB7XG4gICAgYWxpZ24tc2VsZjogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1zZWxmLWxnLXN0YXJ0IHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYtbGctZW5kIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1zZWxmLWxnLWNlbnRlciB7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYtbGctYmFzZWxpbmUge1xuICAgIGFsaWduLXNlbGY6IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYtbGctc3RyZXRjaCB7XG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaCAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmZsZXgteGwtcm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgteGwtY29sdW1uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgteGwtcm93LXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZSAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LXhsLWNvbHVtbi1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2UgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC14bC13cmFwIHtcbiAgICBmbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC14bC1ub3dyYXAge1xuICAgIGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgteGwtd3JhcC1yZXZlcnNlIHtcbiAgICBmbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZSAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LXhsLWZpbGwge1xuICAgIGZsZXg6IDEgMSBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgteGwtZ3Jvdy0wIHtcbiAgICBmbGV4LWdyb3c6IDAgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC14bC1ncm93LTEge1xuICAgIGZsZXgtZ3JvdzogMSAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LXhsLXNocmluay0wIHtcbiAgICBmbGV4LXNocmluazogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LXhsLXNocmluay0xIHtcbiAgICBmbGV4LXNocmluazogMSAhaW1wb3J0YW50O1xuICB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQteGwtc3RhcnQge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQteGwtZW5kIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmp1c3RpZnktY29udGVudC14bC1jZW50ZXIge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmp1c3RpZnktY29udGVudC14bC1iZXR3ZWVuIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDtcbiAgfVxuICAuanVzdGlmeS1jb250ZW50LXhsLWFyb3VuZCB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24taXRlbXMteGwtc3RhcnQge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWl0ZW1zLXhsLWVuZCB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWl0ZW1zLXhsLWNlbnRlciB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1pdGVtcy14bC1iYXNlbGluZSB7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWl0ZW1zLXhsLXN0cmV0Y2gge1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWNvbnRlbnQteGwtc3RhcnQge1xuICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC14bC1lbmQge1xuICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWNvbnRlbnQteGwtY2VudGVyIHtcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC14bC1iZXR3ZWVuIHtcbiAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWNvbnRlbnQteGwtYXJvdW5kIHtcbiAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC14bC1zdHJldGNoIHtcbiAgICBhbGlnbi1jb250ZW50OiBzdHJldGNoICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYteGwtYXV0byB7XG4gICAgYWxpZ24tc2VsZjogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1zZWxmLXhsLXN0YXJ0IHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYteGwtZW5kIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1zZWxmLXhsLWNlbnRlciB7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYteGwtYmFzZWxpbmUge1xuICAgIGFsaWduLXNlbGY6IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYteGwtc3RyZXRjaCB7XG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5mbG9hdC1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbn1cblxuLmZsb2F0LXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG59XG5cbi5mbG9hdC1ub25lIHtcbiAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gIC5mbG9hdC1zbS1sZWZ0IHtcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICB9XG4gIC5mbG9hdC1zbS1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsb2F0LXNtLW5vbmUge1xuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5mbG9hdC1tZC1sZWZ0IHtcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICB9XG4gIC5mbG9hdC1tZC1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsb2F0LW1kLW5vbmUge1xuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5mbG9hdC1sZy1sZWZ0IHtcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICB9XG4gIC5mbG9hdC1sZy1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsb2F0LWxnLW5vbmUge1xuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuZmxvYXQteGwtbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuICAuZmxvYXQteGwtcmlnaHQge1xuICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xuICB9XG4gIC5mbG9hdC14bC1ub25lIHtcbiAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5wb3NpdGlvbi1zdGF0aWMge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG59XG5cbi5wb3NpdGlvbi1yZWxhdGl2ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xufVxuXG4ucG9zaXRpb24tYWJzb2x1dGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbn1cblxuLnBvc2l0aW9uLWZpeGVkIHtcbiAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XG59XG5cbi5wb3NpdGlvbi1zdGlja3kge1xuICBwb3NpdGlvbjogc3RpY2t5ICFpbXBvcnRhbnQ7XG59XG5cbi5maXhlZC10b3Age1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMzA7XG59XG5cbi5maXhlZC1ib3R0b20ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMzA7XG59XG5cbkBzdXBwb3J0cyAocG9zaXRpb246IHN0aWNreSkge1xuICAuc3RpY2t5LXRvcCB7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICB0b3A6IDA7XG4gICAgei1pbmRleDogMTAyMDtcbiAgfVxufVxuXG4uc3Itb25seSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGJvcmRlcjogMDtcbn1cblxuLnNyLW9ubHktZm9jdXNhYmxlOmFjdGl2ZSwgLnNyLW9ubHktZm9jdXNhYmxlOmZvY3VzIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbi5zaGFkb3ctc20ge1xuICBib3gtc2hhZG93OiAwIDAuMTI1cmVtIDAuMjVyZW0gcmdiYSgwLCAwLCAwLCAwLjA3NSkgIWltcG9ydGFudDtcbn1cblxuLnNoYWRvdyB7XG4gIGJveC1zaGFkb3c6IDAgMC41cmVtIDFyZW0gcmdiYSgwLCAwLCAwLCAwLjE1KSAhaW1wb3J0YW50O1xufVxuXG4uc2hhZG93LWxnIHtcbiAgYm94LXNoYWRvdzogMCAxcmVtIDNyZW0gcmdiYSgwLCAwLCAwLCAwLjE3NSkgIWltcG9ydGFudDtcbn1cblxuLnNoYWRvdy1ub25lIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4udy0yNSB7XG4gIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbn1cblxuLnctNTAge1xuICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG59XG5cbi53LTc1IHtcbiAgd2lkdGg6IDc1JSAhaW1wb3J0YW50O1xufVxuXG4udy0xMDAge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4udy1hdXRvIHtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmgtMjUge1xuICBoZWlnaHQ6IDI1JSAhaW1wb3J0YW50O1xufVxuXG4uaC01MCB7XG4gIGhlaWdodDogNTAlICFpbXBvcnRhbnQ7XG59XG5cbi5oLTc1IHtcbiAgaGVpZ2h0OiA3NSUgIWltcG9ydGFudDtcbn1cblxuLmgtMTAwIHtcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbi5oLWF1dG8ge1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLm13LTEwMCB7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4ubWgtMTAwIHtcbiAgbWF4LWhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4ubS0wIHtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5tdC0wLFxuLm15LTAge1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5tci0wLFxuLm14LTAge1xuICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cblxuLm1iLTAsXG4ubXktMCB7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLm1sLTAsXG4ubXgtMCB7XG4gIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi5tLTEge1xuICBtYXJnaW46IDAuMjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm10LTEsXG4ubXktMSB7XG4gIG1hcmdpbi10b3A6IDAuMjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm1yLTEsXG4ubXgtMSB7XG4gIG1hcmdpbi1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubWItMSxcbi5teS0xIHtcbiAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubWwtMSxcbi5teC0xIHtcbiAgbWFyZ2luLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm0tMiB7XG4gIG1hcmdpbjogMC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tdC0yLFxuLm15LTIge1xuICBtYXJnaW4tdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm1yLTIsXG4ubXgtMiB7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tYi0yLFxuLm15LTIge1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm1sLTIsXG4ubXgtMiB7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm0tMyB7XG4gIG1hcmdpbjogMXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubXQtMyxcbi5teS0zIHtcbiAgbWFyZ2luLXRvcDogMXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubXItMyxcbi5teC0zIHtcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tYi0zLFxuLm15LTMge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tbC0zLFxuLm14LTMge1xuICBtYXJnaW4tbGVmdDogMXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubS00IHtcbiAgbWFyZ2luOiAxLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm10LTQsXG4ubXktNCB7XG4gIG1hcmdpbi10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubXItNCxcbi5teC00IHtcbiAgbWFyZ2luLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm1iLTQsXG4ubXktNCB7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubWwtNCxcbi5teC00IHtcbiAgbWFyZ2luLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubS01IHtcbiAgbWFyZ2luOiAzcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tdC01LFxuLm15LTUge1xuICBtYXJnaW4tdG9wOiAzcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tci01LFxuLm14LTUge1xuICBtYXJnaW4tcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcbn1cblxuLm1iLTUsXG4ubXktNSB7XG4gIG1hcmdpbi1ib3R0b206IDNyZW0gIWltcG9ydGFudDtcbn1cblxuLm1sLTUsXG4ubXgtNSB7XG4gIG1hcmdpbi1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wLTAge1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5wdC0wLFxuLnB5LTAge1xuICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xufVxuXG4ucHItMCxcbi5weC0wIHtcbiAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuXG4ucGItMCxcbi5weS0wIHtcbiAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLnBsLTAsXG4ucHgtMCB7XG4gIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xufVxuXG4ucC0xIHtcbiAgcGFkZGluZzogMC4yNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucHQtMSxcbi5weS0xIHtcbiAgcGFkZGluZy10b3A6IDAuMjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnByLTEsXG4ucHgtMSB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnBiLTEsXG4ucHktMSB7XG4gIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wbC0xLFxuLnB4LTEge1xuICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnAtMiB7XG4gIHBhZGRpbmc6IDAuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucHQtMixcbi5weS0yIHtcbiAgcGFkZGluZy10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucHItMixcbi5weC0yIHtcbiAgcGFkZGluZy1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wYi0yLFxuLnB5LTIge1xuICBwYWRkaW5nLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wbC0yLFxuLnB4LTIge1xuICBwYWRkaW5nLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucC0zIHtcbiAgcGFkZGluZzogMXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucHQtMyxcbi5weS0zIHtcbiAgcGFkZGluZy10b3A6IDFyZW0gIWltcG9ydGFudDtcbn1cblxuLnByLTMsXG4ucHgtMyB7XG4gIHBhZGRpbmctcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcbn1cblxuLnBiLTMsXG4ucHktMyB7XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wbC0zLFxuLnB4LTMge1xuICBwYWRkaW5nLWxlZnQ6IDFyZW0gIWltcG9ydGFudDtcbn1cblxuLnAtNCB7XG4gIHBhZGRpbmc6IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucHQtNCxcbi5weS00IHtcbiAgcGFkZGluZy10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucHItNCxcbi5weC00IHtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wYi00LFxuLnB5LTQge1xuICBwYWRkaW5nLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wbC00LFxuLnB4LTQge1xuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucC01IHtcbiAgcGFkZGluZzogM3JlbSAhaW1wb3J0YW50O1xufVxuXG4ucHQtNSxcbi5weS01IHtcbiAgcGFkZGluZy10b3A6IDNyZW0gIWltcG9ydGFudDtcbn1cblxuLnByLTUsXG4ucHgtNSB7XG4gIHBhZGRpbmctcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcbn1cblxuLnBiLTUsXG4ucHktNSB7XG4gIHBhZGRpbmctYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wbC01LFxuLnB4LTUge1xuICBwYWRkaW5nLWxlZnQ6IDNyZW0gIWltcG9ydGFudDtcbn1cblxuLm0tYXV0byB7XG4gIG1hcmdpbjogYXV0byAhaW1wb3J0YW50O1xufVxuXG4ubXQtYXV0byxcbi5teS1hdXRvIHtcbiAgbWFyZ2luLXRvcDogYXV0byAhaW1wb3J0YW50O1xufVxuXG4ubXItYXV0byxcbi5teC1hdXRvIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi5tYi1hdXRvLFxuLm15LWF1dG8ge1xuICBtYXJnaW4tYm90dG9tOiBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi5tbC1hdXRvLFxuLm14LWF1dG8ge1xuICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLm0tc20tMCB7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LXNtLTAsXG4gIC5teS1zbS0wIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1yLXNtLTAsXG4gIC5teC1zbS0wIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxuICAubWItc20tMCxcbiAgLm15LXNtLTAge1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxuICAubWwtc20tMCxcbiAgLm14LXNtLTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm0tc20tMSB7XG4gICAgbWFyZ2luOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LXNtLTEsXG4gIC5teS1zbS0xIHtcbiAgICBtYXJnaW4tdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1yLXNtLTEsXG4gIC5teC1zbS0xIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWItc20tMSxcbiAgLm15LXNtLTEge1xuICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWwtc20tMSxcbiAgLm14LXNtLTEge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm0tc20tMiB7XG4gICAgbWFyZ2luOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXQtc20tMixcbiAgLm15LXNtLTIge1xuICAgIG1hcmdpbi10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tci1zbS0yLFxuICAubXgtc20tMiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWItc20tMixcbiAgLm15LXNtLTIge1xuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tbC1zbS0yLFxuICAubXgtc20tMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tLXNtLTMge1xuICAgIG1hcmdpbjogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC1zbS0zLFxuICAubXktc20tMyB7XG4gICAgbWFyZ2luLXRvcDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tci1zbS0zLFxuICAubXgtc20tMyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLXNtLTMsXG4gIC5teS1zbS0zIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1sLXNtLTMsXG4gIC5teC1zbS0zIHtcbiAgICBtYXJnaW4tbGVmdDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tLXNtLTQge1xuICAgIG1hcmdpbjogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LXNtLTQsXG4gIC5teS1zbS00IHtcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXItc20tNCxcbiAgLm14LXNtLTQge1xuICAgIG1hcmdpbi1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLXNtLTQsXG4gIC5teS1zbS00IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWwtc20tNCxcbiAgLm14LXNtLTQge1xuICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubS1zbS01IHtcbiAgICBtYXJnaW46IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXQtc20tNSxcbiAgLm15LXNtLTUge1xuICAgIG1hcmdpbi10b3A6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXItc20tNSxcbiAgLm14LXNtLTUge1xuICAgIG1hcmdpbi1yaWdodDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi1zbS01LFxuICAubXktc20tNSB7XG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tbC1zbS01LFxuICAubXgtc20tNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucC1zbS0wIHtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB0LXNtLTAsXG4gIC5weS1zbS0wIHtcbiAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5wci1zbS0wLFxuICAucHgtc20tMCB7XG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5wYi1zbS0wLFxuICAucHktc20tMCB7XG4gICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxuICAucGwtc20tMCxcbiAgLnB4LXNtLTAge1xuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5wLXNtLTEge1xuICAgIHBhZGRpbmc6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHQtc20tMSxcbiAgLnB5LXNtLTEge1xuICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnByLXNtLTEsXG4gIC5weC1zbS0xIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBiLXNtLTEsXG4gIC5weS1zbS0xIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wbC1zbS0xLFxuICAucHgtc20tMSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnAtc20tMiB7XG4gICAgcGFkZGluZzogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB0LXNtLTIsXG4gIC5weS1zbS0yIHtcbiAgICBwYWRkaW5nLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnByLXNtLTIsXG4gIC5weC1zbS0yIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGItc20tMixcbiAgLnB5LXNtLTIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGwtc20tMixcbiAgLnB4LXNtLTIge1xuICAgIHBhZGRpbmctbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnAtc20tMyB7XG4gICAgcGFkZGluZzogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wdC1zbS0zLFxuICAucHktc20tMyB7XG4gICAgcGFkZGluZy10b3A6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHItc20tMyxcbiAgLnB4LXNtLTMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGItc20tMyxcbiAgLnB5LXNtLTMge1xuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBsLXNtLTMsXG4gIC5weC1zbS0zIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucC1zbS00IHtcbiAgICBwYWRkaW5nOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHQtc20tNCxcbiAgLnB5LXNtLTQge1xuICAgIHBhZGRpbmctdG9wOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHItc20tNCxcbiAgLnB4LXNtLTQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wYi1zbS00LFxuICAucHktc20tNCB7XG4gICAgcGFkZGluZy1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wbC1zbS00LFxuICAucHgtc20tNCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucC1zbS01IHtcbiAgICBwYWRkaW5nOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB0LXNtLTUsXG4gIC5weS1zbS01IHtcbiAgICBwYWRkaW5nLXRvcDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wci1zbS01LFxuICAucHgtc20tNSB7XG4gICAgcGFkZGluZy1yaWdodDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wYi1zbS01LFxuICAucHktc20tNSB7XG4gICAgcGFkZGluZy1ib3R0b206IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGwtc20tNSxcbiAgLnB4LXNtLTUge1xuICAgIHBhZGRpbmctbGVmdDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tLXNtLWF1dG8ge1xuICAgIG1hcmdpbjogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC1zbS1hdXRvLFxuICAubXktc20tYXV0byB7XG4gICAgbWFyZ2luLXRvcDogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5tci1zbS1hdXRvLFxuICAubXgtc20tYXV0byB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLXNtLWF1dG8sXG4gIC5teS1zbS1hdXRvIHtcbiAgICBtYXJnaW4tYm90dG9tOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1sLXNtLWF1dG8sXG4gIC5teC1zbS1hdXRvIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubS1tZC0wIHtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgfVxuICAubXQtbWQtMCxcbiAgLm15LW1kLTAge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgfVxuICAubXItbWQtMCxcbiAgLm14LW1kLTAge1xuICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi1tZC0wLFxuICAubXktbWQtMCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5tbC1tZC0wLFxuICAubXgtbWQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgfVxuICAubS1tZC0xIHtcbiAgICBtYXJnaW46IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXQtbWQtMSxcbiAgLm15LW1kLTEge1xuICAgIG1hcmdpbi10b3A6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXItbWQtMSxcbiAgLm14LW1kLTEge1xuICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi1tZC0xLFxuICAubXktbWQtMSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tbC1tZC0xLFxuICAubXgtbWQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubS1tZC0yIHtcbiAgICBtYXJnaW46IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC1tZC0yLFxuICAubXktbWQtMiB7XG4gICAgbWFyZ2luLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1yLW1kLTIsXG4gIC5teC1tZC0yIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi1tZC0yLFxuICAubXktbWQtMiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1sLW1kLTIsXG4gIC5teC1tZC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm0tbWQtMyB7XG4gICAgbWFyZ2luOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LW1kLTMsXG4gIC5teS1tZC0zIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1yLW1kLTMsXG4gIC5teC1tZC0zIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWItbWQtMyxcbiAgLm15LW1kLTMge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWwtbWQtMyxcbiAgLm14LW1kLTMge1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm0tbWQtNCB7XG4gICAgbWFyZ2luOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXQtbWQtNCxcbiAgLm15LW1kLTQge1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tci1tZC00LFxuICAubXgtbWQtNCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWItbWQtNCxcbiAgLm15LW1kLTQge1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tbC1tZC00LFxuICAubXgtbWQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tLW1kLTUge1xuICAgIG1hcmdpbjogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC1tZC01LFxuICAubXktbWQtNSB7XG4gICAgbWFyZ2luLXRvcDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tci1tZC01LFxuICAubXgtbWQtNSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLW1kLTUsXG4gIC5teS1tZC01IHtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1sLW1kLTUsXG4gIC5teC1tZC01IHtcbiAgICBtYXJnaW4tbGVmdDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wLW1kLTAge1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgfVxuICAucHQtbWQtMCxcbiAgLnB5LW1kLTAge1xuICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnByLW1kLTAsXG4gIC5weC1tZC0wIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBiLW1kLTAsXG4gIC5weS1tZC0wIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5wbC1tZC0wLFxuICAucHgtbWQtMCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnAtbWQtMSB7XG4gICAgcGFkZGluZzogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wdC1tZC0xLFxuICAucHktbWQtMSB7XG4gICAgcGFkZGluZy10b3A6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHItbWQtMSxcbiAgLnB4LW1kLTEge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGItbWQtMSxcbiAgLnB5LW1kLTEge1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBsLW1kLTEsXG4gIC5weC1tZC0xIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucC1tZC0yIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHQtbWQtMixcbiAgLnB5LW1kLTIge1xuICAgIHBhZGRpbmctdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHItbWQtMixcbiAgLnB4LW1kLTIge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wYi1tZC0yLFxuICAucHktbWQtMiB7XG4gICAgcGFkZGluZy1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wbC1tZC0yLFxuICAucHgtbWQtMiB7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucC1tZC0zIHtcbiAgICBwYWRkaW5nOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB0LW1kLTMsXG4gIC5weS1tZC0zIHtcbiAgICBwYWRkaW5nLXRvcDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wci1tZC0zLFxuICAucHgtbWQtMyB7XG4gICAgcGFkZGluZy1yaWdodDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wYi1tZC0zLFxuICAucHktbWQtMyB7XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGwtbWQtMyxcbiAgLnB4LW1kLTMge1xuICAgIHBhZGRpbmctbGVmdDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wLW1kLTQge1xuICAgIHBhZGRpbmc6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wdC1tZC00LFxuICAucHktbWQtNCB7XG4gICAgcGFkZGluZy10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wci1tZC00LFxuICAucHgtbWQtNCB7XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBiLW1kLTQsXG4gIC5weS1tZC00IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBsLW1kLTQsXG4gIC5weC1tZC00IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wLW1kLTUge1xuICAgIHBhZGRpbmc6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHQtbWQtNSxcbiAgLnB5LW1kLTUge1xuICAgIHBhZGRpbmctdG9wOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnByLW1kLTUsXG4gIC5weC1tZC01IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBiLW1kLTUsXG4gIC5weS1tZC01IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wbC1tZC01LFxuICAucHgtbWQtNSB7XG4gICAgcGFkZGluZy1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm0tbWQtYXV0byB7XG4gICAgbWFyZ2luOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LW1kLWF1dG8sXG4gIC5teS1tZC1hdXRvIHtcbiAgICBtYXJnaW4tdG9wOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1yLW1kLWF1dG8sXG4gIC5teC1tZC1hdXRvIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAubWItbWQtYXV0byxcbiAgLm15LW1kLWF1dG8ge1xuICAgIG1hcmdpbi1ib3R0b206IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAubWwtbWQtYXV0byxcbiAgLm14LW1kLWF1dG8ge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5tLWxnLTAge1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC1sZy0wLFxuICAubXktbGctMCB7XG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5tci1sZy0wLFxuICAubXgtbGctMCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLWxnLTAsXG4gIC5teS1sZy0wIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1sLWxnLTAsXG4gIC5teC1sZy0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5tLWxnLTEge1xuICAgIG1hcmdpbjogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC1sZy0xLFxuICAubXktbGctMSB7XG4gICAgbWFyZ2luLXRvcDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tci1sZy0xLFxuICAubXgtbGctMSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLWxnLTEsXG4gIC5teS1sZy0xIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1sLWxnLTEsXG4gIC5teC1sZy0xIHtcbiAgICBtYXJnaW4tbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tLWxnLTIge1xuICAgIG1hcmdpbjogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LWxnLTIsXG4gIC5teS1sZy0yIHtcbiAgICBtYXJnaW4tdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXItbGctMixcbiAgLm14LWxnLTIge1xuICAgIG1hcmdpbi1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLWxnLTIsXG4gIC5teS1sZy0yIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWwtbGctMixcbiAgLm14LWxnLTIge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubS1sZy0zIHtcbiAgICBtYXJnaW46IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXQtbGctMyxcbiAgLm15LWxnLTMge1xuICAgIG1hcmdpbi10b3A6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXItbGctMyxcbiAgLm14LWxnLTMge1xuICAgIG1hcmdpbi1yaWdodDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi1sZy0zLFxuICAubXktbGctMyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tbC1sZy0zLFxuICAubXgtbGctMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubS1sZy00IHtcbiAgICBtYXJnaW46IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC1sZy00LFxuICAubXktbGctNCB7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1yLWxnLTQsXG4gIC5teC1sZy00IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi1sZy00LFxuICAubXktbGctNCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1sLWxnLTQsXG4gIC5teC1sZy00IHtcbiAgICBtYXJnaW4tbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm0tbGctNSB7XG4gICAgbWFyZ2luOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LWxnLTUsXG4gIC5teS1sZy01IHtcbiAgICBtYXJnaW4tdG9wOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1yLWxnLTUsXG4gIC5teC1sZy01IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWItbGctNSxcbiAgLm15LWxnLTUge1xuICAgIG1hcmdpbi1ib3R0b206IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWwtbGctNSxcbiAgLm14LWxnLTUge1xuICAgIG1hcmdpbi1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnAtbGctMCB7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5wdC1sZy0wLFxuICAucHktbGctMCB7XG4gICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgfVxuICAucHItbGctMCxcbiAgLnB4LWxnLTAge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxuICAucGItbGctMCxcbiAgLnB5LWxnLTAge1xuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBsLWxnLTAsXG4gIC5weC1sZy0wIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgfVxuICAucC1sZy0xIHtcbiAgICBwYWRkaW5nOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB0LWxnLTEsXG4gIC5weS1sZy0xIHtcbiAgICBwYWRkaW5nLXRvcDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wci1sZy0xLFxuICAucHgtbGctMSB7XG4gICAgcGFkZGluZy1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wYi1sZy0xLFxuICAucHktbGctMSB7XG4gICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGwtbGctMSxcbiAgLnB4LWxnLTEge1xuICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wLWxnLTIge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wdC1sZy0yLFxuICAucHktbGctMiB7XG4gICAgcGFkZGluZy10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wci1sZy0yLFxuICAucHgtbGctMiB7XG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBiLWxnLTIsXG4gIC5weS1sZy0yIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBsLWxnLTIsXG4gIC5weC1sZy0yIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wLWxnLTMge1xuICAgIHBhZGRpbmc6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHQtbGctMyxcbiAgLnB5LWxnLTMge1xuICAgIHBhZGRpbmctdG9wOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnByLWxnLTMsXG4gIC5weC1sZy0zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBiLWxnLTMsXG4gIC5weS1sZy0zIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wbC1sZy0zLFxuICAucHgtbGctMyB7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnAtbGctNCB7XG4gICAgcGFkZGluZzogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB0LWxnLTQsXG4gIC5weS1sZy00IHtcbiAgICBwYWRkaW5nLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnByLWxnLTQsXG4gIC5weC1sZy00IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGItbGctNCxcbiAgLnB5LWxnLTQge1xuICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGwtbGctNCxcbiAgLnB4LWxnLTQge1xuICAgIHBhZGRpbmctbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnAtbGctNSB7XG4gICAgcGFkZGluZzogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wdC1sZy01LFxuICAucHktbGctNSB7XG4gICAgcGFkZGluZy10b3A6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHItbGctNSxcbiAgLnB4LWxnLTUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGItbGctNSxcbiAgLnB5LWxnLTUge1xuICAgIHBhZGRpbmctYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBsLWxnLTUsXG4gIC5weC1sZy01IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubS1sZy1hdXRvIHtcbiAgICBtYXJnaW46IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAubXQtbGctYXV0byxcbiAgLm15LWxnLWF1dG8ge1xuICAgIG1hcmdpbi10b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAubXItbGctYXV0byxcbiAgLm14LWxnLWF1dG8ge1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi1sZy1hdXRvLFxuICAubXktbGctYXV0byB7XG4gICAgbWFyZ2luLWJvdHRvbTogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5tbC1sZy1hdXRvLFxuICAubXgtbGctYXV0byB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5tLXhsLTAge1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC14bC0wLFxuICAubXkteGwtMCB7XG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5tci14bC0wLFxuICAubXgteGwtMCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLXhsLTAsXG4gIC5teS14bC0wIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1sLXhsLTAsXG4gIC5teC14bC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5tLXhsLTEge1xuICAgIG1hcmdpbjogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC14bC0xLFxuICAubXkteGwtMSB7XG4gICAgbWFyZ2luLXRvcDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tci14bC0xLFxuICAubXgteGwtMSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLXhsLTEsXG4gIC5teS14bC0xIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1sLXhsLTEsXG4gIC5teC14bC0xIHtcbiAgICBtYXJnaW4tbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tLXhsLTIge1xuICAgIG1hcmdpbjogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LXhsLTIsXG4gIC5teS14bC0yIHtcbiAgICBtYXJnaW4tdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXIteGwtMixcbiAgLm14LXhsLTIge1xuICAgIG1hcmdpbi1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLXhsLTIsXG4gIC5teS14bC0yIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWwteGwtMixcbiAgLm14LXhsLTIge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubS14bC0zIHtcbiAgICBtYXJnaW46IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXQteGwtMyxcbiAgLm15LXhsLTMge1xuICAgIG1hcmdpbi10b3A6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXIteGwtMyxcbiAgLm14LXhsLTMge1xuICAgIG1hcmdpbi1yaWdodDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi14bC0zLFxuICAubXkteGwtMyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tbC14bC0zLFxuICAubXgteGwtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubS14bC00IHtcbiAgICBtYXJnaW46IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC14bC00LFxuICAubXkteGwtNCB7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1yLXhsLTQsXG4gIC5teC14bC00IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi14bC00LFxuICAubXkteGwtNCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1sLXhsLTQsXG4gIC5teC14bC00IHtcbiAgICBtYXJnaW4tbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm0teGwtNSB7XG4gICAgbWFyZ2luOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LXhsLTUsXG4gIC5teS14bC01IHtcbiAgICBtYXJnaW4tdG9wOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1yLXhsLTUsXG4gIC5teC14bC01IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWIteGwtNSxcbiAgLm15LXhsLTUge1xuICAgIG1hcmdpbi1ib3R0b206IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWwteGwtNSxcbiAgLm14LXhsLTUge1xuICAgIG1hcmdpbi1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnAteGwtMCB7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5wdC14bC0wLFxuICAucHkteGwtMCB7XG4gICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgfVxuICAucHIteGwtMCxcbiAgLnB4LXhsLTAge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxuICAucGIteGwtMCxcbiAgLnB5LXhsLTAge1xuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBsLXhsLTAsXG4gIC5weC14bC0wIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgfVxuICAucC14bC0xIHtcbiAgICBwYWRkaW5nOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB0LXhsLTEsXG4gIC5weS14bC0xIHtcbiAgICBwYWRkaW5nLXRvcDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wci14bC0xLFxuICAucHgteGwtMSB7XG4gICAgcGFkZGluZy1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wYi14bC0xLFxuICAucHkteGwtMSB7XG4gICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGwteGwtMSxcbiAgLnB4LXhsLTEge1xuICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wLXhsLTIge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wdC14bC0yLFxuICAucHkteGwtMiB7XG4gICAgcGFkZGluZy10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wci14bC0yLFxuICAucHgteGwtMiB7XG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBiLXhsLTIsXG4gIC5weS14bC0yIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBsLXhsLTIsXG4gIC5weC14bC0yIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wLXhsLTMge1xuICAgIHBhZGRpbmc6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHQteGwtMyxcbiAgLnB5LXhsLTMge1xuICAgIHBhZGRpbmctdG9wOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnByLXhsLTMsXG4gIC5weC14bC0zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBiLXhsLTMsXG4gIC5weS14bC0zIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wbC14bC0zLFxuICAucHgteGwtMyB7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnAteGwtNCB7XG4gICAgcGFkZGluZzogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB0LXhsLTQsXG4gIC5weS14bC00IHtcbiAgICBwYWRkaW5nLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnByLXhsLTQsXG4gIC5weC14bC00IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGIteGwtNCxcbiAgLnB5LXhsLTQge1xuICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGwteGwtNCxcbiAgLnB4LXhsLTQge1xuICAgIHBhZGRpbmctbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnAteGwtNSB7XG4gICAgcGFkZGluZzogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wdC14bC01LFxuICAucHkteGwtNSB7XG4gICAgcGFkZGluZy10b3A6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHIteGwtNSxcbiAgLnB4LXhsLTUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGIteGwtNSxcbiAgLnB5LXhsLTUge1xuICAgIHBhZGRpbmctYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBsLXhsLTUsXG4gIC5weC14bC01IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubS14bC1hdXRvIHtcbiAgICBtYXJnaW46IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAubXQteGwtYXV0byxcbiAgLm15LXhsLWF1dG8ge1xuICAgIG1hcmdpbi10b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAubXIteGwtYXV0byxcbiAgLm14LXhsLWF1dG8ge1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi14bC1hdXRvLFxuICAubXkteGwtYXV0byB7XG4gICAgbWFyZ2luLWJvdHRvbTogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5tbC14bC1hdXRvLFxuICAubXgteGwtYXV0byB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxufVxuXG4udGV4dC1tb25vc3BhY2Uge1xuICBmb250LWZhbWlseTogU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcbn1cblxuLnRleHQtanVzdGlmeSB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnkgIWltcG9ydGFudDtcbn1cblxuLnRleHQtbm93cmFwIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xufVxuXG4udGV4dC10cnVuY2F0ZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4udGV4dC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLnRleHQtc20tbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICB9XG4gIC50ZXh0LXNtLXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50O1xuICB9XG4gIC50ZXh0LXNtLWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC50ZXh0LW1kLWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuICAudGV4dC1tZC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuICAudGV4dC1tZC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAudGV4dC1sZy1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnRleHQtbGctcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnRleHQtbGctY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC50ZXh0LXhsLWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuICAudGV4dC14bC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuICAudGV4dC14bC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG59XG5cbi50ZXh0LWxvd2VyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2UgIWltcG9ydGFudDtcbn1cblxuLnRleHQtdXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1jYXBpdGFsaXplIHtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemUgIWltcG9ydGFudDtcbn1cblxuLmZvbnQtd2VpZ2h0LWxpZ2h0IHtcbiAgZm9udC13ZWlnaHQ6IDMwMCAhaW1wb3J0YW50O1xufVxuXG4uZm9udC13ZWlnaHQtbm9ybWFsIHtcbiAgZm9udC13ZWlnaHQ6IDQwMCAhaW1wb3J0YW50O1xufVxuXG4uZm9udC13ZWlnaHQtYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDtcbn1cblxuLmZvbnQtaXRhbGljIHtcbiAgZm9udC1zdHlsZTogaXRhbGljICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LXdoaXRlIHtcbiAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbn1cblxuLnRleHQtcHJpbWFyeSB7XG4gIGNvbG9yOiAjMDA3YmZmICFpbXBvcnRhbnQ7XG59XG5cbmEudGV4dC1wcmltYXJ5OmhvdmVyLCBhLnRleHQtcHJpbWFyeTpmb2N1cyB7XG4gIGNvbG9yOiAjMDA2MmNjICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LXNlY29uZGFyeSB7XG4gIGNvbG9yOiAjNmM3NTdkICFpbXBvcnRhbnQ7XG59XG5cbmEudGV4dC1zZWNvbmRhcnk6aG92ZXIsIGEudGV4dC1zZWNvbmRhcnk6Zm9jdXMge1xuICBjb2xvcjogIzU0NWI2MiAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1zdWNjZXNzIHtcbiAgY29sb3I6ICMyOGE3NDUgIWltcG9ydGFudDtcbn1cblxuYS50ZXh0LXN1Y2Nlc3M6aG92ZXIsIGEudGV4dC1zdWNjZXNzOmZvY3VzIHtcbiAgY29sb3I6ICMxZTdlMzQgIWltcG9ydGFudDtcbn1cblxuLnRleHQtaW5mbyB7XG4gIGNvbG9yOiAjMTdhMmI4ICFpbXBvcnRhbnQ7XG59XG5cbmEudGV4dC1pbmZvOmhvdmVyLCBhLnRleHQtaW5mbzpmb2N1cyB7XG4gIGNvbG9yOiAjMTE3YThiICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LXdhcm5pbmcge1xuICBjb2xvcjogI2ZmYzEwNyAhaW1wb3J0YW50O1xufVxuXG5hLnRleHQtd2FybmluZzpob3ZlciwgYS50ZXh0LXdhcm5pbmc6Zm9jdXMge1xuICBjb2xvcjogI2QzOWUwMCAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1kYW5nZXIge1xuICBjb2xvcjogI2RjMzU0NSAhaW1wb3J0YW50O1xufVxuXG5hLnRleHQtZGFuZ2VyOmhvdmVyLCBhLnRleHQtZGFuZ2VyOmZvY3VzIHtcbiAgY29sb3I6ICNiZDIxMzAgIWltcG9ydGFudDtcbn1cblxuLnRleHQtbGlnaHQge1xuICBjb2xvcjogI2Y4ZjlmYSAhaW1wb3J0YW50O1xufVxuXG5hLnRleHQtbGlnaHQ6aG92ZXIsIGEudGV4dC1saWdodDpmb2N1cyB7XG4gIGNvbG9yOiAjZGFlMGU1ICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LWRhcmsge1xuICBjb2xvcjogIzM0M2E0MCAhaW1wb3J0YW50O1xufVxuXG5hLnRleHQtZGFyazpob3ZlciwgYS50ZXh0LWRhcms6Zm9jdXMge1xuICBjb2xvcjogIzFkMjEyNCAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1ib2R5IHtcbiAgY29sb3I6ICMyMTI1MjkgIWltcG9ydGFudDtcbn1cblxuLnRleHQtbXV0ZWQge1xuICBjb2xvcjogIzZjNzU3ZCAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1ibGFjay01MCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSkgIWltcG9ydGFudDtcbn1cblxuLnRleHQtd2hpdGUtNTAge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LWhpZGUge1xuICBmb250OiAwLzAgYTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbn1cblxuLnZpc2libGUge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG5cbi5pbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIHByaW50IHtcbiAgKixcbiAgKjo6YmVmb3JlLFxuICAqOjphZnRlciB7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgYTpub3QoLmJ0bikge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG4gIGFiYnJbdGl0bGVdOjphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIodGl0bGUpIFwiKVwiO1xuICB9XG4gIHByZSB7XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwICFpbXBvcnRhbnQ7XG4gIH1cbiAgcHJlLFxuICBibG9ja3F1b3RlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYWRiNWJkO1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgfVxuICB0aGVhZCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwO1xuICB9XG4gIHRyLFxuICBpbWcge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgfVxuICBwLFxuICBoMixcbiAgaDMge1xuICAgIG9ycGhhbnM6IDM7XG4gICAgd2lkb3dzOiAzO1xuICB9XG4gIGgyLFxuICBoMyB7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG4gIH1cbiAgQHBhZ2Uge1xuICAgIHNpemU6IGEzO1xuICB9XG4gIGJvZHkge1xuICAgIG1pbi13aWR0aDogOTkycHggIWltcG9ydGFudDtcbiAgfVxuICAuY29udGFpbmVyIHtcbiAgICBtaW4td2lkdGg6IDk5MnB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm5hdmJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAuYmFkZ2Uge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7XG4gIH1cbiAgLnRhYmxlIHtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnRhYmxlIHRkLFxuICAudGFibGUgdGgge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiAgfVxuICAudGFibGUtYm9yZGVyZWQgdGgsXG4gIC50YWJsZS1ib3JkZXJlZCB0ZCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RlZTJlNiAhaW1wb3J0YW50O1xuICB9XG4gIC50YWJsZS1kYXJrIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuICAudGFibGUtZGFyayB0aCxcbiAgLnRhYmxlLWRhcmsgdGQsXG4gIC50YWJsZS1kYXJrIHRoZWFkIHRoLFxuICAudGFibGUtZGFyayB0Ym9keSArIHRib2R5IHtcbiAgICBib3JkZXItY29sb3I6ICNkZWUyZTY7XG4gIH1cbiAgLnRhYmxlIC50aGVhZC1kYXJrIHRoIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBib3JkZXItY29sb3I6ICNkZWUyZTY7XG4gIH1cbn1cblxuLyojIHNvdXJjZU1hcHBpbmdVUkw9Ym9vdHN0cmFwLmNzcy5tYXAgKi8iLCIvLyBIb3ZlciBtaXhpbiBhbmQgYCRlbmFibGUtaG92ZXItbWVkaWEtcXVlcnlgIGFyZSBkZXByZWNhdGVkLlxuLy9cbi8vIE9yaWdhbGx5IGFkZGVkIGR1cmluZyBvdXIgYWxwaGFzIGFuZCBtYWludGFpbmVkIGR1cmluZyBiZXRhcywgdGhpcyBtaXhpbiB3YXNcbi8vIGRlc2lnbmVkIHRvIHByZXZlbnQgYDpob3ZlcmAgc3RpY2tpbmVzcyBvbiBpT1MtYW4gaXNzdWUgd2hlcmUgaG92ZXIgc3R5bGVzXG4vLyB3b3VsZCBwZXJzaXN0IGFmdGVyIGluaXRpYWwgdG91Y2guXG4vL1xuLy8gRm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIHdlJ3ZlIGtlcHQgdGhlc2UgbWl4aW5zIGFuZCB1cGRhdGVkIHRoZW0gdG9cbi8vIGFsd2F5cyByZXR1cm4gdGhlaXIgcmVndWxhciBwc2V1ZG8tY2xhc3NlcyBpbnN0ZWFkIG9mIGEgc2hpbW1lZCBtZWRpYSBxdWVyeS5cbi8vXG4vLyBJc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8yNTE5NVxuXG5AbWl4aW4gaG92ZXIge1xuICAmOmhvdmVyIHsgQGNvbnRlbnQ7IH1cbn1cblxuQG1peGluIGhvdmVyLWZvY3VzIHtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIHBsYWluLWhvdmVyLWZvY3VzIHtcbiAgJixcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGhvdmVyLWZvY3VzLWFjdGl2ZSB7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50LCBzZWxlY3Rvci1saXN0LWNvbW1hLW5ld2xpbmUtYWZ0ZXJcblxuLy9cbi8vIEhlYWRpbmdzXG4vL1xuXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2LFxuLmgxLCAuaDIsIC5oMywgLmg0LCAuaDUsIC5oNiB7XG4gIG1hcmdpbi1ib3R0b206ICRoZWFkaW5ncy1tYXJnaW4tYm90dG9tO1xuICBmb250LWZhbWlseTogJGhlYWRpbmdzLWZvbnQtZmFtaWx5O1xuICBmb250LXdlaWdodDogJGhlYWRpbmdzLWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGhlYWRpbmdzLWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGhlYWRpbmdzLWNvbG9yO1xufVxuXG5oMSwgLmgxIHsgZm9udC1zaXplOiAkaDEtZm9udC1zaXplOyB9XG5oMiwgLmgyIHsgZm9udC1zaXplOiAkaDItZm9udC1zaXplOyB9XG5oMywgLmgzIHsgZm9udC1zaXplOiAkaDMtZm9udC1zaXplOyB9XG5oNCwgLmg0IHsgZm9udC1zaXplOiAkaDQtZm9udC1zaXplOyB9XG5oNSwgLmg1IHsgZm9udC1zaXplOiAkaDUtZm9udC1zaXplOyB9XG5oNiwgLmg2IHsgZm9udC1zaXplOiAkaDYtZm9udC1zaXplOyB9XG5cbi5sZWFkIHtcbiAgZm9udC1zaXplOiAkbGVhZC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkbGVhZC1mb250LXdlaWdodDtcbn1cblxuLy8gVHlwZSBkaXNwbGF5IGNsYXNzZXNcbi5kaXNwbGF5LTEge1xuICBmb250LXNpemU6ICRkaXNwbGF5MS1zaXplO1xuICBmb250LXdlaWdodDogJGRpc3BsYXkxLXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRkaXNwbGF5LWxpbmUtaGVpZ2h0O1xufVxuLmRpc3BsYXktMiB7XG4gIGZvbnQtc2l6ZTogJGRpc3BsYXkyLXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkZGlzcGxheTItd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGRpc3BsYXktbGluZS1oZWlnaHQ7XG59XG4uZGlzcGxheS0zIHtcbiAgZm9udC1zaXplOiAkZGlzcGxheTMtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRkaXNwbGF5My13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkZGlzcGxheS1saW5lLWhlaWdodDtcbn1cbi5kaXNwbGF5LTQge1xuICBmb250LXNpemU6ICRkaXNwbGF5NC1zaXplO1xuICBmb250LXdlaWdodDogJGRpc3BsYXk0LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRkaXNwbGF5LWxpbmUtaGVpZ2h0O1xufVxuXG5cbi8vXG4vLyBIb3Jpem9udGFsIHJ1bGVzXG4vL1xuXG5ociB7XG4gIG1hcmdpbi10b3A6ICRoci1tYXJnaW4teTtcbiAgbWFyZ2luLWJvdHRvbTogJGhyLW1hcmdpbi15O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci10b3A6ICRoci1ib3JkZXItd2lkdGggc29saWQgJGhyLWJvcmRlci1jb2xvcjtcbn1cblxuXG4vL1xuLy8gRW1waGFzaXNcbi8vXG5cbnNtYWxsLFxuLnNtYWxsIHtcbiAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbn1cblxubWFyayxcbi5tYXJrIHtcbiAgcGFkZGluZzogJG1hcmstcGFkZGluZztcbiAgYmFja2dyb3VuZC1jb2xvcjogJG1hcmstYmc7XG59XG5cblxuLy9cbi8vIExpc3RzXG4vL1xuXG4ubGlzdC11bnN0eWxlZCB7XG4gIEBpbmNsdWRlIGxpc3QtdW5zdHlsZWQ7XG59XG5cbi8vIElubGluZSB0dXJucyBsaXN0IGl0ZW1zIGludG8gaW5saW5lLWJsb2NrXG4ubGlzdC1pbmxpbmUge1xuICBAaW5jbHVkZSBsaXN0LXVuc3R5bGVkO1xufVxuLmxpc3QtaW5saW5lLWl0ZW0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBtYXJnaW4tcmlnaHQ6ICRsaXN0LWlubGluZS1wYWRkaW5nO1xuICB9XG59XG5cblxuLy9cbi8vIE1pc2Ncbi8vXG5cbi8vIEJ1aWxkcyBvbiBgYWJicmBcbi5pbml0aWFsaXNtIHtcbiAgZm9udC1zaXplOiA5MCU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi8vIEJsb2NrcXVvdGVzXG4uYmxvY2txdW90ZSB7XG4gIG1hcmdpbi1ib3R0b206ICRzcGFjZXI7XG4gIGZvbnQtc2l6ZTogJGJsb2NrcXVvdGUtZm9udC1zaXplO1xufVxuXG4uYmxvY2txdW90ZS1mb290ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiA4MCU7IC8vIGJhY2sgdG8gZGVmYXVsdCBmb250LXNpemVcbiAgY29sb3I6ICRibG9ja3F1b3RlLXNtYWxsLWNvbG9yO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXDIwMTQgXFwwMEEwXCI7IC8vIGVtIGRhc2gsIG5ic3BcbiAgfVxufVxuIiwiLy8gTGlzdHNcblxuLy8gVW5zdHlsZWQga2VlcHMgbGlzdCBpdGVtcyBibG9jayBsZXZlbCwganVzdCByZW1vdmVzIGRlZmF1bHQgYnJvd3NlciBwYWRkaW5nIGFuZCBsaXN0LXN0eWxlXG5AbWl4aW4gbGlzdC11bnN0eWxlZCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbiIsIi8vIFJlc3BvbnNpdmUgaW1hZ2VzIChlbnN1cmUgaW1hZ2VzIGRvbid0IHNjYWxlIGJleW9uZCB0aGVpciBwYXJlbnRzKVxuLy9cbi8vIFRoaXMgaXMgcHVycG9zZWZ1bGx5IG9wdC1pbiB2aWEgYW4gZXhwbGljaXQgY2xhc3MgcmF0aGVyIHRoYW4gYmVpbmcgdGhlIGRlZmF1bHQgZm9yIGFsbCBgPGltZz5gcy5cbi8vIFdlIHByZXZpb3VzbHkgdHJpZWQgdGhlIFwiaW1hZ2VzIGFyZSByZXNwb25zaXZlIGJ5IGRlZmF1bHRcIiBhcHByb2FjaCBpbiBCb290c3RyYXAgdjIsXG4vLyBhbmQgYWJhbmRvbmVkIGl0IGluIEJvb3RzdHJhcCB2MyBiZWNhdXNlIGl0IGJyZWFrcyBsb3RzIG9mIHRoaXJkLXBhcnR5IHdpZGdldHMgKGluY2x1ZGluZyBHb29nbGUgTWFwcylcbi8vIHdoaWNoIHdlcmVuJ3QgZXhwZWN0aW5nIHRoZSBpbWFnZXMgd2l0aGluIHRoZW1zZWx2ZXMgdG8gYmUgaW52b2x1bnRhcmlseSByZXNpemVkLlxuLy8gU2VlIGFsc28gaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xODE3OFxuLmltZy1mbHVpZCB7XG4gIEBpbmNsdWRlIGltZy1mbHVpZDtcbn1cblxuXG4vLyBJbWFnZSB0aHVtYm5haWxzXG4uaW1nLXRodW1ibmFpbCB7XG4gIHBhZGRpbmc6ICR0aHVtYm5haWwtcGFkZGluZztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHRodW1ibmFpbC1iZztcbiAgYm9yZGVyOiAkdGh1bWJuYWlsLWJvcmRlci13aWR0aCBzb2xpZCAkdGh1bWJuYWlsLWJvcmRlci1jb2xvcjtcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkdGh1bWJuYWlsLWJvcmRlci1yYWRpdXMpO1xuICBAaW5jbHVkZSBib3gtc2hhZG93KCR0aHVtYm5haWwtYm94LXNoYWRvdyk7XG5cbiAgLy8gS2VlcCB0aGVtIGF0IG1vc3QgMTAwJSB3aWRlXG4gIEBpbmNsdWRlIGltZy1mbHVpZDtcbn1cblxuLy9cbi8vIEZpZ3VyZXNcbi8vXG5cbi5maWd1cmUge1xuICAvLyBFbnN1cmVzIHRoZSBjYXB0aW9uJ3MgdGV4dCBhbGlnbnMgd2l0aCB0aGUgaW1hZ2UuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmZpZ3VyZS1pbWcge1xuICBtYXJnaW4tYm90dG9tOiAoJHNwYWNlciAvIDIpO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLmZpZ3VyZS1jYXB0aW9uIHtcbiAgZm9udC1zaXplOiAkZmlndXJlLWNhcHRpb24tZm9udC1zaXplO1xuICBjb2xvcjogJGZpZ3VyZS1jYXB0aW9uLWNvbG9yO1xufVxuIiwiLy8gSW1hZ2UgTWl4aW5zXG4vLyAtIFJlc3BvbnNpdmUgaW1hZ2Vcbi8vIC0gUmV0aW5hIGltYWdlXG5cblxuLy8gUmVzcG9uc2l2ZSBpbWFnZVxuLy9cbi8vIEtlZXAgaW1hZ2VzIGZyb20gc2NhbGluZyBiZXlvbmQgdGhlIHdpZHRoIG9mIHRoZWlyIHBhcmVudHMuXG5cbkBtaXhpbiBpbWctZmx1aWQge1xuICAvLyBQYXJ0IDE6IFNldCBhIG1heGltdW0gcmVsYXRpdmUgdG8gdGhlIHBhcmVudFxuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8vIFBhcnQgMjogT3ZlcnJpZGUgdGhlIGhlaWdodCB0byBhdXRvLCBvdGhlcndpc2UgaW1hZ2VzIHdpbGwgYmUgc3RyZXRjaGVkXG4gIC8vIHdoZW4gc2V0dGluZyBhIHdpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlIG9uIHRoZSBpbWcgZWxlbWVudC5cbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5cbi8vIFJldGluYSBpbWFnZVxuLy9cbi8vIFNob3J0IHJldGluYSBtaXhpbiBmb3Igc2V0dGluZyBiYWNrZ3JvdW5kLWltYWdlIGFuZCAtc2l6ZS5cblxuLy8gc3R5bGVsaW50LWRpc2FibGUgaW5kZW50YXRpb24sIG1lZGlhLXF1ZXJ5LWxpc3QtY29tbWEtbmV3bGluZS1hZnRlclxuQG1peGluIGltZy1yZXRpbmEoJGZpbGUtMXgsICRmaWxlLTJ4LCAkd2lkdGgtMXgsICRoZWlnaHQtMXgpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCRmaWxlLTF4KTtcblxuICAvLyBBdXRvcHJlZml4ZXIgdGFrZXMgY2FyZSBvZiBhZGRpbmcgLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvIGFuZCAtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvLFxuICAvLyBidXQgZG9lc24ndCBjb252ZXJ0IGRwcHg9PmRwaS5cbiAgLy8gVGhlcmUncyBubyBzdWNoIHRoaW5nIGFzIHVucHJlZml4ZWQgbWluLWRldmljZS1waXhlbC1yYXRpbyBzaW5jZSBpdCdzIG5vbnN0YW5kYXJkLlxuICAvLyBDb21wYXRpYmlsaXR5IGluZm86IGh0dHBzOi8vY2FuaXVzZS5jb20vI2ZlYXQ9Y3NzLW1lZGlhLXJlc29sdXRpb25cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIC8vIElFOS0xMSBkb24ndCBzdXBwb3J0IGRwcHhcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpIHsgLy8gU3RhbmRhcmRpemVkXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCRmaWxlLTJ4KTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICR3aWR0aC0xeCAkaGVpZ2h0LTF4O1xuICB9XG59XG4iLCIvLyBTaW5nbGUgc2lkZSBib3JkZXItcmFkaXVzXG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGl1cztcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJhZGl1cygkcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGl1cztcbiAgfVxufVxuIiwiLy8gSW5saW5lIGNvZGVcbmNvZGUge1xuICBmb250LXNpemU6ICRjb2RlLWZvbnQtc2l6ZTtcbiAgY29sb3I6ICRjb2RlLWNvbG9yO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuXG4gIC8vIFN0cmVhbWxpbmUgdGhlIHN0eWxlIHdoZW4gaW5zaWRlIGFuY2hvcnMgdG8gYXZvaWQgYnJva2VuIHVuZGVybGluZSBhbmQgbW9yZVxuICBhID4gJiB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cbn1cblxuLy8gVXNlciBpbnB1dCB0eXBpY2FsbHkgZW50ZXJlZCB2aWEga2V5Ym9hcmRcbmtiZCB7XG4gIHBhZGRpbmc6ICRrYmQtcGFkZGluZy15ICRrYmQtcGFkZGluZy14O1xuICBmb250LXNpemU6ICRrYmQtZm9udC1zaXplO1xuICBjb2xvcjogJGtiZC1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGtiZC1iZztcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy1zbSk7XG4gIEBpbmNsdWRlIGJveC1zaGFkb3coJGtiZC1ib3gtc2hhZG93KTtcblxuICBrYmQge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZm9udC1zaXplOiAxMDAlO1xuICAgIGZvbnQtd2VpZ2h0OiAkbmVzdGVkLWtiZC1mb250LXdlaWdodDtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KG5vbmUpO1xuICB9XG59XG5cbi8vIEJsb2NrcyBvZiBjb2RlXG5wcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAkY29kZS1mb250LXNpemU7XG4gIGNvbG9yOiAkcHJlLWNvbG9yO1xuXG4gIC8vIEFjY291bnQgZm9yIHNvbWUgY29kZSBvdXRwdXRzIHRoYXQgcGxhY2UgY29kZSB0YWdzIGluIHByZSB0YWdzXG4gIGNvZGUge1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gIH1cbn1cblxuLy8gRW5hYmxlIHNjcm9sbGFibGUgYmxvY2tzIG9mIGNvZGVcbi5wcmUtc2Nyb2xsYWJsZSB7XG4gIG1heC1oZWlnaHQ6ICRwcmUtc2Nyb2xsYWJsZS1tYXgtaGVpZ2h0O1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG4iLCIvLyBDb250YWluZXIgd2lkdGhzXG4vL1xuLy8gU2V0IHRoZSBjb250YWluZXIgd2lkdGgsIGFuZCBvdmVycmlkZSBpdCBmb3IgZml4ZWQgbmF2YmFycyBpbiBtZWRpYSBxdWVyaWVzLlxuXG5AaWYgJGVuYWJsZS1ncmlkLWNsYXNzZXMge1xuICAuY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBtYWtlLWNvbnRhaW5lcigpO1xuICAgIEBpbmNsdWRlIG1ha2UtY29udGFpbmVyLW1heC13aWR0aHMoKTtcbiAgfVxufVxuXG4vLyBGbHVpZCBjb250YWluZXJcbi8vXG4vLyBVdGlsaXplcyB0aGUgbWl4aW4gbWVhbnQgZm9yIGZpeGVkIHdpZHRoIGNvbnRhaW5lcnMsIGJ1dCB3aXRoIDEwMCUgd2lkdGggZm9yXG4vLyBmbHVpZCwgZnVsbCB3aWR0aCBsYXlvdXRzLlxuXG5AaWYgJGVuYWJsZS1ncmlkLWNsYXNzZXMge1xuICAuY29udGFpbmVyLWZsdWlkIHtcbiAgICBAaW5jbHVkZSBtYWtlLWNvbnRhaW5lcigpO1xuICB9XG59XG5cbi8vIFJvd1xuLy9cbi8vIFJvd3MgY29udGFpbiBhbmQgY2xlYXIgdGhlIGZsb2F0cyBvZiB5b3VyIGNvbHVtbnMuXG5cbkBpZiAkZW5hYmxlLWdyaWQtY2xhc3NlcyB7XG4gIC5yb3cge1xuICAgIEBpbmNsdWRlIG1ha2Utcm93KCk7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIG5lZ2F0aXZlIG1hcmdpbiBmcm9tIGRlZmF1bHQgLnJvdywgdGhlbiB0aGUgaG9yaXpvbnRhbCBwYWRkaW5nXG4gIC8vIGZyb20gYWxsIGltbWVkaWF0ZSBjaGlsZHJlbiBjb2x1bW5zICh0byBwcmV2ZW50IHJ1bmF3YXkgc3R5bGUgaW5oZXJpdGFuY2UpLlxuICAubm8tZ3V0dGVycyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuXG4gICAgPiAuY29sLFxuICAgID4gW2NsYXNzKj1cImNvbC1cIl0ge1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG4gIH1cbn1cblxuLy8gQ29sdW1uc1xuLy9cbi8vIENvbW1vbiBzdHlsZXMgZm9yIHNtYWxsIGFuZCBsYXJnZSBncmlkIGNvbHVtbnNcblxuQGlmICRlbmFibGUtZ3JpZC1jbGFzc2VzIHtcbiAgQGluY2x1ZGUgbWFrZS1ncmlkLWNvbHVtbnMoKTtcbn1cbiIsIi8vLyBHcmlkIHN5c3RlbVxuLy9cbi8vIEdlbmVyYXRlIHNlbWFudGljIGdyaWQgY29sdW1ucyB3aXRoIHRoZXNlIG1peGlucy5cblxuQG1peGluIG1ha2UtY29udGFpbmVyKCkge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogKCRncmlkLWd1dHRlci13aWR0aCAvIDIpO1xuICBwYWRkaW5nLWxlZnQ6ICgkZ3JpZC1ndXR0ZXItd2lkdGggLyAyKTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cblxuXG4vLyBGb3IgZWFjaCBicmVha3BvaW50LCBkZWZpbmUgdGhlIG1heGltdW0gd2lkdGggb2YgdGhlIGNvbnRhaW5lciBpbiBhIG1lZGlhIHF1ZXJ5XG5AbWl4aW4gbWFrZS1jb250YWluZXItbWF4LXdpZHRocygkbWF4LXdpZHRoczogJGNvbnRhaW5lci1tYXgtd2lkdGhzLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEBlYWNoICRicmVha3BvaW50LCAkY29udGFpbmVyLW1heC13aWR0aCBpbiAkbWF4LXdpZHRocyB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBtYXgtd2lkdGg6ICRjb250YWluZXItbWF4LXdpZHRoO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWFrZS1yb3coKSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLXJpZ2h0OiAoJGdyaWQtZ3V0dGVyLXdpZHRoIC8gLTIpO1xuICBtYXJnaW4tbGVmdDogKCRncmlkLWd1dHRlci13aWR0aCAvIC0yKTtcbn1cblxuQG1peGluIG1ha2UtY29sLXJlYWR5KCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8vIFByZXZlbnQgY29sdW1ucyBmcm9tIGJlY29taW5nIHRvbyBuYXJyb3cgd2hlbiBhdCBzbWFsbGVyIGdyaWQgdGllcnMgYnlcbiAgLy8gYWx3YXlzIHNldHRpbmcgYHdpZHRoOiAxMDAlO2AuIFRoaXMgd29ya3MgYmVjYXVzZSB3ZSB1c2UgYGZsZXhgIHZhbHVlc1xuICAvLyBsYXRlciBvbiB0byBvdmVycmlkZSB0aGlzIGluaXRpYWwgd2lkdGguXG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxcHg7IC8vIFByZXZlbnQgY29sbGFwc2luZ1xuICBwYWRkaW5nLXJpZ2h0OiAoJGdyaWQtZ3V0dGVyLXdpZHRoIC8gMik7XG4gIHBhZGRpbmctbGVmdDogKCRncmlkLWd1dHRlci13aWR0aCAvIDIpO1xufVxuXG5AbWl4aW4gbWFrZS1jb2woJHNpemUsICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gIGZsZXg6IDAgMCBwZXJjZW50YWdlKCRzaXplIC8gJGNvbHVtbnMpO1xuICAvLyBBZGQgYSBgbWF4LXdpZHRoYCB0byBlbnN1cmUgY29udGVudCB3aXRoaW4gZWFjaCBjb2x1bW4gZG9lcyBub3QgYmxvdyBvdXRcbiAgLy8gdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4uIEFwcGxpZXMgdG8gSUUxMCsgYW5kIEZpcmVmb3guIENocm9tZSBhbmQgU2FmYXJpXG4gIC8vIGRvIG5vdCBhcHBlYXIgdG8gcmVxdWlyZSB0aGlzLlxuICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoJHNpemUgLyAkY29sdW1ucyk7XG59XG5cbkBtaXhpbiBtYWtlLWNvbC1vZmZzZXQoJHNpemUsICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gICRudW06ICRzaXplIC8gJGNvbHVtbnM7XG4gIG1hcmdpbi1sZWZ0OiBpZigkbnVtID09IDAsIDAsIHBlcmNlbnRhZ2UoJG51bSkpO1xufVxuIiwiLy8gQnJlYWtwb2ludCB2aWV3cG9ydCBzaXplcyBhbmQgbWVkaWEgcXVlcmllcy5cbi8vXG4vLyBCcmVha3BvaW50cyBhcmUgZGVmaW5lZCBhcyBhIG1hcCBvZiAobmFtZTogbWluaW11bSB3aWR0aCksIG9yZGVyIGZyb20gc21hbGwgdG8gbGFyZ2U6XG4vL1xuLy8gICAgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KVxuLy9cbi8vIFRoZSBtYXAgZGVmaW5lZCBpbiB0aGUgYCRncmlkLWJyZWFrcG9pbnRzYCBnbG9iYWwgdmFyaWFibGUgaXMgdXNlZCBhcyB0aGUgYCRicmVha3BvaW50c2AgYXJndW1lbnQgYnkgZGVmYXVsdC5cblxuLy8gTmFtZSBvZiB0aGUgbmV4dCBicmVha3BvaW50LCBvciBudWxsIGZvciB0aGUgbGFzdCBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAkYnJlYWtwb2ludC1uYW1lczogKHhzIHNtIG1kIGxnIHhsKSlcbi8vICAgIG1kXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC1uYW1lczogbWFwLWtleXMoJGJyZWFrcG9pbnRzKSkge1xuICAkbjogaW5kZXgoJGJyZWFrcG9pbnQtbmFtZXMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbiA8IGxlbmd0aCgkYnJlYWtwb2ludC1uYW1lcyksIG50aCgkYnJlYWtwb2ludC1uYW1lcywgJG4gKyAxKSwgbnVsbCk7XG59XG5cbi8vIE1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIHNtYWxsZXN0IChmaXJzdCkgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1pbihzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIDU3NnB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbWluICE9IDAsICRtaW4sIG51bGwpO1xufVxuXG4vLyBNYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBsYXJnZXN0IChsYXN0KSBicmVha3BvaW50LlxuLy8gVGhlIG1heGltdW0gdmFsdWUgaXMgY2FsY3VsYXRlZCBhcyB0aGUgbWluaW11bSBvZiB0aGUgbmV4dCBvbmUgbGVzcyAwLjAycHhcbi8vIHRvIHdvcmsgYXJvdW5kIHRoZSBsaW1pdGF0aW9ucyBvZiBgbWluLWAgYW5kIGBtYXgtYCBwcmVmaXhlcyBhbmQgdmlld3BvcnRzIHdpdGggZnJhY3Rpb25hbCB3aWR0aHMuXG4vLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL21lZGlhcXVlcmllcy00LyNtcS1taW4tbWF4XG4vLyBVc2VzIDAuMDJweCByYXRoZXIgdGhhbiAwLjAxcHggdG8gd29yayBhcm91bmQgYSBjdXJyZW50IHJvdW5kaW5nIGJ1ZyBpbiBTYWZhcmkuXG4vLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODI2MVxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWF4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgNzY3Ljk4cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbmV4dDogYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAcmV0dXJuIGlmKCRuZXh0LCBicmVha3BvaW50LW1pbigkbmV4dCwgJGJyZWFrcG9pbnRzKSAtIC4wMnB4LCBudWxsKTtcbn1cblxuLy8gUmV0dXJucyBhIGJsYW5rIHN0cmluZyBpZiBzbWFsbGVzdCBicmVha3BvaW50LCBvdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSB3aXRoIGEgZGFzaCBpbmZyb250LlxuLy8gVXNlZnVsIGZvciBtYWtpbmcgcmVzcG9uc2l2ZSB1dGlsaXRpZXMuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeCh4cywgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiXCIgIChSZXR1cm5zIGEgYmxhbmsgc3RyaW5nKVxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiLXNtXCJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEByZXR1cm4gaWYoYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cykgPT0gbnVsbCwgXCJcIiwgXCItI3skbmFtZX1cIik7XG59XG5cbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtaW4ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtYXgge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHNcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oJGxvd2VyLCAkdXBwZXIsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkdXBwZXIsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGxvd2VyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cbi8vIE5vIG1pbmltdW0gZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LCBhbmQgbm8gbWF4aW11bSBmb3IgdGhlIGxhcmdlc3Qgb25lLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRnJhbWV3b3JrIGdyaWQgZ2VuZXJhdGlvblxuLy9cbi8vIFVzZWQgb25seSBieSBCb290c3RyYXAgdG8gZ2VuZXJhdGUgdGhlIGNvcnJlY3QgbnVtYmVyIG9mIGdyaWQgY2xhc3NlcyBnaXZlblxuLy8gYW55IHZhbHVlIG9mIGAkZ3JpZC1jb2x1bW5zYC5cblxuQG1peGluIG1ha2UtZ3JpZC1jb2x1bW5zKCRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zLCAkZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGgsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgLy8gQ29tbW9uIHByb3BlcnRpZXMgZm9yIGFsbCBicmVha3BvaW50c1xuICAlZ3JpZC1jb2x1bW4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxcHg7IC8vIFByZXZlbnQgY29sdW1ucyBmcm9tIGNvbGxhcHNpbmcgd2hlbiBlbXB0eVxuICAgIHBhZGRpbmctcmlnaHQ6ICgkZ3V0dGVyIC8gMik7XG4gICAgcGFkZGluZy1sZWZ0OiAoJGd1dHRlciAvIDIpO1xuICB9XG5cbiAgQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwLWtleXMoJGJyZWFrcG9pbnRzKSB7XG4gICAgJGluZml4OiBicmVha3BvaW50LWluZml4KCRicmVha3BvaW50LCAkYnJlYWtwb2ludHMpO1xuXG4gICAgLy8gQWxsb3cgY29sdW1ucyB0byBzdHJldGNoIGZ1bGwgd2lkdGggYmVsb3cgdGhlaXIgYnJlYWtwb2ludHNcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb2x1bW5zIHtcbiAgICAgIC5jb2wjeyRpbmZpeH0tI3skaX0ge1xuICAgICAgICBAZXh0ZW5kICVncmlkLWNvbHVtbjtcbiAgICAgIH1cbiAgICB9XG4gICAgLmNvbCN7JGluZml4fSxcbiAgICAuY29sI3skaW5maXh9LWF1dG8ge1xuICAgICAgQGV4dGVuZCAlZ3JpZC1jb2x1bW47XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICAvLyBQcm92aWRlIGJhc2ljIGAuY29sLXticH1gIGNsYXNzZXMgZm9yIGVxdWFsLXdpZHRoIGZsZXhib3ggY29sdW1uc1xuICAgICAgLmNvbCN7JGluZml4fSB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgICAgLmNvbCN7JGluZml4fS1hdXRvIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7IC8vIFJlc2V0IGVhcmxpZXIgZ3JpZCB0aWVyc1xuICAgICAgfVxuXG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb2x1bW5zIHtcbiAgICAgICAgLmNvbCN7JGluZml4fS0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgbWFrZS1jb2woJGksICRjb2x1bW5zKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAub3JkZXIjeyRpbmZpeH0tZmlyc3QgeyBvcmRlcjogLTE7IH1cblxuICAgICAgLm9yZGVyI3skaW5maXh9LWxhc3QgeyBvcmRlcjogJGNvbHVtbnMgKyAxOyB9XG5cbiAgICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJGNvbHVtbnMge1xuICAgICAgICAub3JkZXIjeyRpbmZpeH0tI3skaX0geyBvcmRlcjogJGk7IH1cbiAgICAgIH1cblxuICAgICAgLy8gYCRjb2x1bW5zIC0gMWAgYmVjYXVzZSBvZmZzZXR0aW5nIGJ5IHRoZSB3aWR0aCBvZiBhbiBlbnRpcmUgcm93IGlzbid0IHBvc3NpYmxlXG4gICAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICgkY29sdW1ucyAtIDEpIHtcbiAgICAgICAgQGlmIG5vdCAoJGluZml4ID09IFwiXCIgYW5kICRpID09IDApIHsgLy8gQXZvaWQgZW1pdHRpbmcgdXNlbGVzcyAub2Zmc2V0LTBcbiAgICAgICAgICAub2Zmc2V0I3skaW5maXh9LSN7JGl9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1ha2UtY29sLW9mZnNldCgkaSwgJGNvbHVtbnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIEJhc2ljIEJvb3RzdHJhcCB0YWJsZVxuLy9cblxuLnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogJHNwYWNlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJnOyAvLyBSZXNldCBmb3IgbmVzdGluZyB3aXRoaW4gcGFyZW50cyB3aXRoIGBiYWNrZ3JvdW5kLWNvbG9yYC5cblxuICB0aCxcbiAgdGQge1xuICAgIHBhZGRpbmc6ICR0YWJsZS1jZWxsLXBhZGRpbmc7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBib3JkZXItdG9wOiAkdGFibGUtYm9yZGVyLXdpZHRoIHNvbGlkICR0YWJsZS1ib3JkZXItY29sb3I7XG4gIH1cblxuICB0aGVhZCB0aCB7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICBib3JkZXItYm90dG9tOiAoMiAqICR0YWJsZS1ib3JkZXItd2lkdGgpIHNvbGlkICR0YWJsZS1ib3JkZXItY29sb3I7XG4gIH1cblxuICB0Ym9keSArIHRib2R5IHtcbiAgICBib3JkZXItdG9wOiAoMiAqICR0YWJsZS1ib3JkZXItd2lkdGgpIHNvbGlkICR0YWJsZS1ib3JkZXItY29sb3I7XG4gIH1cblxuICAudGFibGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRib2R5LWJnO1xuICB9XG59XG5cblxuLy9cbi8vIENvbmRlbnNlZCB0YWJsZSB3LyBoYWxmIHBhZGRpbmdcbi8vXG5cbi50YWJsZS1zbSB7XG4gIHRoLFxuICB0ZCB7XG4gICAgcGFkZGluZzogJHRhYmxlLWNlbGwtcGFkZGluZy1zbTtcbiAgfVxufVxuXG5cbi8vIEJvcmRlciB2ZXJzaW9uc1xuLy9cbi8vIEFkZCBvciByZW1vdmUgYm9yZGVycyBhbGwgYXJvdW5kIHRoZSB0YWJsZSBhbmQgYmV0d2VlbiBhbGwgdGhlIGNvbHVtbnMuXG5cbi50YWJsZS1ib3JkZXJlZCB7XG4gIGJvcmRlcjogJHRhYmxlLWJvcmRlci13aWR0aCBzb2xpZCAkdGFibGUtYm9yZGVyLWNvbG9yO1xuXG4gIHRoLFxuICB0ZCB7XG4gICAgYm9yZGVyOiAkdGFibGUtYm9yZGVyLXdpZHRoIHNvbGlkICR0YWJsZS1ib3JkZXItY29sb3I7XG4gIH1cblxuICB0aGVhZCB7XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogKDIgKiAkdGFibGUtYm9yZGVyLXdpZHRoKTtcbiAgICB9XG4gIH1cbn1cblxuLnRhYmxlLWJvcmRlcmxlc3Mge1xuICB0aCxcbiAgdGQsXG4gIHRoZWFkIHRoLFxuICB0Ym9keSArIHRib2R5IHtcbiAgICBib3JkZXI6IDA7XG4gIH1cbn1cblxuLy8gWmVicmEtc3RyaXBpbmdcbi8vXG4vLyBEZWZhdWx0IHplYnJhLXN0cmlwZSBzdHlsZXMgKGFsdGVybmF0aW5nIGdyYXkgYW5kIHRyYW5zcGFyZW50IGJhY2tncm91bmRzKVxuXG4udGFibGUtc3RyaXBlZCB7XG4gIHRib2R5IHRyOm50aC1vZi10eXBlKCN7JHRhYmxlLXN0cmlwZWQtb3JkZXJ9KSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWFjY2VudC1iZztcbiAgfVxufVxuXG5cbi8vIEhvdmVyIGVmZmVjdFxuLy9cbi8vIFBsYWNlZCBoZXJlIHNpbmNlIGl0IGhhcyB0byBjb21lIGFmdGVyIHRoZSBwb3RlbnRpYWwgemVicmEgc3RyaXBpbmdcblxuLnRhYmxlLWhvdmVyIHtcbiAgdGJvZHkgdHIge1xuICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1ob3Zlci1iZztcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBUYWJsZSBiYWNrZ3JvdW5kc1xuLy9cbi8vIEV4YWN0IHNlbGVjdG9ycyBiZWxvdyByZXF1aXJlZCB0byBvdmVycmlkZSBgLnRhYmxlLXN0cmlwZWRgIGFuZCBwcmV2ZW50XG4vLyBpbmhlcml0YW5jZSB0byBuZXN0ZWQgdGFibGVzLlxuXG5AZWFjaCAkY29sb3IsICR2YWx1ZSBpbiAkdGhlbWUtY29sb3JzIHtcbiAgQGluY2x1ZGUgdGFibGUtcm93LXZhcmlhbnQoJGNvbG9yLCB0aGVtZS1jb2xvci1sZXZlbCgkY29sb3IsIC05KSk7XG59XG5cbkBpbmNsdWRlIHRhYmxlLXJvdy12YXJpYW50KGFjdGl2ZSwgJHRhYmxlLWFjdGl2ZS1iZyk7XG5cblxuLy8gRGFyayBzdHlsZXNcbi8vXG4vLyBTYW1lIHRhYmxlIG1hcmt1cCwgYnV0IGludmVydGVkIGNvbG9yIHNjaGVtZTogZGFyayBiYWNrZ3JvdW5kIGFuZCBsaWdodCB0ZXh0LlxuXG4vLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZHVwbGljYXRlLXNlbGVjdG9yc1xuLnRhYmxlIHtcbiAgLnRoZWFkLWRhcmsge1xuICAgIHRoIHtcbiAgICAgIGNvbG9yOiAkdGFibGUtZGFyay1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1kYXJrLWJnO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkdGFibGUtZGFyay1ib3JkZXItY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLnRoZWFkLWxpZ2h0IHtcbiAgICB0aCB7XG4gICAgICBjb2xvcjogJHRhYmxlLWhlYWQtY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtaGVhZC1iZztcbiAgICAgIGJvcmRlci1jb2xvcjogJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuLnRhYmxlLWRhcmsge1xuICBjb2xvcjogJHRhYmxlLWRhcmstY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1kYXJrLWJnO1xuXG4gIHRoLFxuICB0ZCxcbiAgdGhlYWQgdGgge1xuICAgIGJvcmRlci1jb2xvcjogJHRhYmxlLWRhcmstYm9yZGVyLWNvbG9yO1xuICB9XG5cbiAgJi50YWJsZS1ib3JkZXJlZCB7XG4gICAgYm9yZGVyOiAwO1xuICB9XG5cbiAgJi50YWJsZS1zdHJpcGVkIHtcbiAgICB0Ym9keSB0cjpudGgtb2YtdHlwZShvZGQpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1kYXJrLWFjY2VudC1iZztcbiAgICB9XG4gIH1cblxuICAmLnRhYmxlLWhvdmVyIHtcbiAgICB0Ym9keSB0ciB7XG4gICAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1kYXJrLWhvdmVyLWJnO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8vIFJlc3BvbnNpdmUgdGFibGVzXG4vL1xuLy8gR2VuZXJhdGUgc2VyaWVzIG9mIGAudGFibGUtcmVzcG9uc2l2ZS0qYCBjbGFzc2VzIGZvciBjb25maWd1cmluZyB0aGUgc2NyZWVuXG4vLyBzaXplIG9mIHdoZXJlIHlvdXIgdGFibGUgd2lsbCBvdmVyZmxvdy5cblxuLnRhYmxlLXJlc3BvbnNpdmUge1xuICBAZWFjaCAkYnJlYWtwb2ludCBpbiBtYXAta2V5cygkZ3JpZC1icmVha3BvaW50cykge1xuICAgICRuZXh0OiBicmVha3BvaW50LW5leHQoJGJyZWFrcG9pbnQsICRncmlkLWJyZWFrcG9pbnRzKTtcbiAgICAkaW5maXg6IGJyZWFrcG9pbnQtaW5maXgoJG5leHQsICRncmlkLWJyZWFrcG9pbnRzKTtcblxuICAgICYjeyRpbmZpeH0ge1xuICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRicmVha3BvaW50KSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgICAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjsgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9wdWxsLzEwMDU3XG5cbiAgICAgICAgLy8gUHJldmVudCBkb3VibGUgYm9yZGVyIG9uIGhvcml6b250YWwgc2Nyb2xsIGR1ZSB0byB1c2Ugb2YgYGRpc3BsYXk6IGJsb2NrO2BcbiAgICAgICAgPiAudGFibGUtYm9yZGVyZWQge1xuICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gVGFibGVzXG5cbkBtaXhpbiB0YWJsZS1yb3ctdmFyaWFudCgkc3RhdGUsICRiYWNrZ3JvdW5kKSB7XG4gIC8vIEV4YWN0IHNlbGVjdG9ycyBiZWxvdyByZXF1aXJlZCB0byBvdmVycmlkZSBgLnRhYmxlLXN0cmlwZWRgIGFuZCBwcmV2ZW50XG4gIC8vIGluaGVyaXRhbmNlIHRvIG5lc3RlZCB0YWJsZXMuXG4gIC50YWJsZS0jeyRzdGF0ZX0ge1xuICAgICYsXG4gICAgPiB0aCxcbiAgICA+IHRkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhvdmVyIHN0YXRlcyBmb3IgYC50YWJsZS1ob3ZlcmBcbiAgLy8gTm90ZTogdGhpcyBpcyBub3QgYXZhaWxhYmxlIGZvciBjZWxscyBvciByb3dzIHdpdGhpbiBgdGhlYWRgIG9yIGB0Zm9vdGAuXG4gIC50YWJsZS1ob3ZlciB7XG4gICAgJGhvdmVyLWJhY2tncm91bmQ6IGRhcmtlbigkYmFja2dyb3VuZCwgNSUpO1xuXG4gICAgLnRhYmxlLSN7JHN0YXRlfSB7XG4gICAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRob3Zlci1iYWNrZ3JvdW5kO1xuXG4gICAgICAgID4gdGQsXG4gICAgICAgID4gdGgge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRob3Zlci1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGVcblxuLy9cbi8vIFRleHR1YWwgZm9ybSBjb250cm9sc1xuLy9cblxuLmZvcm0tY29udHJvbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogJGlucHV0LXBhZGRpbmcteSAkaW5wdXQtcGFkZGluZy14O1xuICBmb250LXNpemU6ICRmb250LXNpemUtYmFzZTtcbiAgbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJnO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBib3JkZXI6ICRpbnB1dC1ib3JkZXItd2lkdGggc29saWQgJGlucHV0LWJvcmRlci1jb2xvcjtcblxuICAvLyBOb3RlOiBUaGlzIGhhcyBubyBlZmZlY3Qgb24gPHNlbGVjdD5zIGluIHNvbWUgYnJvd3NlcnMsIGR1ZSB0byB0aGUgbGltaXRlZCBzdHlsYWJpbGl0eSBvZiBgPHNlbGVjdD5gcyBpbiBDU1MuXG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIC8vIE1hbnVhbGx5IHVzZSB0aGUgaWYvZWxzZSBpbnN0ZWFkIG9mIHRoZSBtaXhpbiB0byBhY2NvdW50IGZvciBpT1Mgb3ZlcnJpZGVcbiAgICBib3JkZXItcmFkaXVzOiAkaW5wdXQtYm9yZGVyLXJhZGl1cztcbiAgfSBAZWxzZSB7XG4gICAgLy8gT3RoZXJ3aXNlIHVuZG8gdGhlIGlPUyBkZWZhdWx0XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIGJveC1zaGFkb3coJGlucHV0LWJveC1zaGFkb3cpO1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKCRpbnB1dC10cmFuc2l0aW9uKTtcblxuICAvLyBVbnN0eWxlIHRoZSBjYXJldCBvbiBgPHNlbGVjdD5gcyBpbiBJRTEwKy5cbiAgJjo6LW1zLWV4cGFuZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwO1xuICB9XG5cbiAgLy8gQ3VzdG9taXplIHRoZSBgOmZvY3VzYCBzdGF0ZSB0byBpbWl0YXRlIG5hdGl2ZSBXZWJLaXQgc3R5bGVzLlxuICBAaW5jbHVkZSBmb3JtLWNvbnRyb2wtZm9jdXMoKTtcblxuICAvLyBQbGFjZWhvbGRlclxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjtcbiAgICAvLyBPdmVycmlkZSBGaXJlZm94J3MgdW51c3VhbCBkZWZhdWx0IG9wYWNpdHk7IHNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvcHVsbC8xMTUyNi5cbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgLy8gRGlzYWJsZWQgYW5kIHJlYWQtb25seSBpbnB1dHNcbiAgLy9cbiAgLy8gSFRNTDUgc2F5cyB0aGF0IGNvbnRyb2xzIHVuZGVyIGEgZmllbGRzZXQgPiBsZWdlbmQ6Zmlyc3QtY2hpbGQgd29uJ3QgYmVcbiAgLy8gZGlzYWJsZWQgaWYgdGhlIGZpZWxkc2V0IGlzIGRpc2FibGVkLiBEdWUgdG8gaW1wbGVtZW50YXRpb24gZGlmZmljdWx0eSwgd2VcbiAgLy8gZG9uJ3QgaG9ub3IgdGhhdCBlZGdlIGNhc2U7IHdlIHN0eWxlIHRoZW0gYXMgZGlzYWJsZWQgYW55d2F5LlxuICAmOmRpc2FibGVkLFxuICAmW3JlYWRvbmx5XSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWRpc2FibGVkLWJnO1xuICAgIC8vIGlPUyBmaXggZm9yIHVucmVhZGFibGUgZGlzYWJsZWQgY29udGVudDsgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTE2NTUuXG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5zZWxlY3QuZm9ybS1jb250cm9sIHtcbiAgJjpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSkge1xuICAgIGhlaWdodDogJGlucHV0LWhlaWdodDtcbiAgfVxuXG4gICY6Zm9jdXM6Oi1tcy12YWx1ZSB7XG4gICAgLy8gU3VwcHJlc3MgdGhlIG5lc3RlZCBkZWZhdWx0IHdoaXRlIHRleHQgb24gYmx1ZSBiYWNrZ3JvdW5kIGhpZ2hsaWdodCBnaXZlbiB0b1xuICAgIC8vIHRoZSBzZWxlY3RlZCBvcHRpb24gdGV4dCB3aGVuIHRoZSAoc3RpbGwgY2xvc2VkKSA8c2VsZWN0PiByZWNlaXZlcyBmb2N1c1xuICAgIC8vIGluIElFIGFuZCAodW5kZXIgY2VydGFpbiBjb25kaXRpb25zKSBFZGdlLCBhcyBpdCBsb29rcyBiYWQgYW5kIGNhbm5vdCBiZSBtYWRlIHRvXG4gICAgLy8gbWF0Y2ggdGhlIGFwcGVhcmFuY2Ugb2YgdGhlIG5hdGl2ZSB3aWRnZXQuXG4gICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTkzOTguXG4gICAgY29sb3I6ICRpbnB1dC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmc7XG4gIH1cbn1cblxuLy8gTWFrZSBmaWxlIGlucHV0cyBiZXR0ZXIgbWF0Y2ggdGV4dCBpbnB1dHMgYnkgZm9yY2luZyB0aGVtIHRvIG5ldyBsaW5lcy5cbi5mb3JtLWNvbnRyb2wtZmlsZSxcbi5mb3JtLWNvbnRyb2wtcmFuZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG5cblxuLy9cbi8vIExhYmVsc1xuLy9cblxuLy8gRm9yIHVzZSB3aXRoIGhvcml6b250YWwgYW5kIGlubGluZSBmb3Jtcywgd2hlbiB5b3UgbmVlZCB0aGUgbGFiZWwgKG9yIGxlZ2VuZClcbi8vIHRleHQgdG8gYWxpZ24gd2l0aCB0aGUgZm9ybSBjb250cm9scy5cbi5jb2wtZm9ybS1sYWJlbCB7XG4gIHBhZGRpbmctdG9wOiBjYWxjKCN7JGlucHV0LXBhZGRpbmcteX0gKyAjeyRpbnB1dC1ib3JkZXItd2lkdGh9KTtcbiAgcGFkZGluZy1ib3R0b206IGNhbGMoI3skaW5wdXQtcGFkZGluZy15fSArICN7JGlucHV0LWJvcmRlci13aWR0aH0pO1xuICBtYXJnaW4tYm90dG9tOiAwOyAvLyBPdmVycmlkZSB0aGUgYDxsYWJlbD4vPGxlZ2VuZD5gIGRlZmF1bHRcbiAgZm9udC1zaXplOiBpbmhlcml0OyAvLyBPdmVycmlkZSB0aGUgYDxsZWdlbmQ+YCBkZWZhdWx0XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG59XG5cbi5jb2wtZm9ybS1sYWJlbC1sZyB7XG4gIHBhZGRpbmctdG9wOiBjYWxjKCN7JGlucHV0LXBhZGRpbmcteS1sZ30gKyAjeyRpbnB1dC1ib3JkZXItd2lkdGh9KTtcbiAgcGFkZGluZy1ib3R0b206IGNhbGMoI3skaW5wdXQtcGFkZGluZy15LWxnfSArICN7JGlucHV0LWJvcmRlci13aWR0aH0pO1xuICBmb250LXNpemU6ICRmb250LXNpemUtbGc7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQtbGc7XG59XG5cbi5jb2wtZm9ybS1sYWJlbC1zbSB7XG4gIHBhZGRpbmctdG9wOiBjYWxjKCN7JGlucHV0LXBhZGRpbmcteS1zbX0gKyAjeyRpbnB1dC1ib3JkZXItd2lkdGh9KTtcbiAgcGFkZGluZy1ib3R0b206IGNhbGMoI3skaW5wdXQtcGFkZGluZy15LXNtfSArICN7JGlucHV0LWJvcmRlci13aWR0aH0pO1xuICBmb250LXNpemU6ICRmb250LXNpemUtc207XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQtc207XG59XG5cblxuLy8gUmVhZG9ubHkgY29udHJvbHMgYXMgcGxhaW4gdGV4dFxuLy9cbi8vIEFwcGx5IGNsYXNzIHRvIGEgcmVhZG9ubHkgaW5wdXQgdG8gbWFrZSBpdCBhcHBlYXIgbGlrZSByZWd1bGFyIHBsYWluXG4vLyB0ZXh0ICh3aXRob3V0IGFueSBib3JkZXIsIGJhY2tncm91bmQgY29sb3IsIGZvY3VzIGluZGljYXRvcilcblxuLmZvcm0tY29udHJvbC1wbGFpbnRleHQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctdG9wOiAkaW5wdXQtcGFkZGluZy15O1xuICBwYWRkaW5nLWJvdHRvbTogJGlucHV0LXBhZGRpbmcteTtcbiAgbWFyZ2luLWJvdHRvbTogMDsgLy8gbWF0Y2ggaW5wdXRzIGlmIHRoaXMgY2xhc3MgY29tZXMgb24gaW5wdXRzIHdpdGggZGVmYXVsdCBtYXJnaW5zXG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtcGxhaW50ZXh0LWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXdpZHRoOiAkaW5wdXQtYm9yZGVyLXdpZHRoIDA7XG5cbiAgJi5mb3JtLWNvbnRyb2wtc20sXG4gICYuZm9ybS1jb250cm9sLWxnIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxufVxuXG5cbi8vIEZvcm0gY29udHJvbCBzaXppbmdcbi8vXG4vLyBCdWlsZCBvbiBgLmZvcm0tY29udHJvbGAgd2l0aCBtb2RpZmllciBjbGFzc2VzIHRvIGRlY3JlYXNlIG9yIGluY3JlYXNlIHRoZVxuLy8gaGVpZ2h0IGFuZCBmb250LXNpemUgb2YgZm9ybSBjb250cm9scy5cbi8vXG4vLyBUaGUgYC5mb3JtLWdyb3VwLSogZm9ybS1jb250cm9sYCB2YXJpYXRpb25zIGFyZSBzYWRseSBkdXBsaWNhdGVkIHRvIGF2b2lkIHRoZVxuLy8gaXNzdWUgZG9jdW1lbnRlZCBpbiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzE1MDc0LlxuXG4uZm9ybS1jb250cm9sLXNtIHtcbiAgcGFkZGluZzogJGlucHV0LXBhZGRpbmcteS1zbSAkaW5wdXQtcGFkZGluZy14LXNtO1xuICBmb250LXNpemU6ICRmb250LXNpemUtc207XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQtc207XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGlucHV0LWJvcmRlci1yYWRpdXMtc20pO1xufVxuXG5zZWxlY3QuZm9ybS1jb250cm9sLXNtIHtcbiAgJjpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSkge1xuICAgIGhlaWdodDogJGlucHV0LWhlaWdodC1zbTtcbiAgfVxufVxuXG4uZm9ybS1jb250cm9sLWxnIHtcbiAgcGFkZGluZzogJGlucHV0LXBhZGRpbmcteS1sZyAkaW5wdXQtcGFkZGluZy14LWxnO1xuICBmb250LXNpemU6ICRmb250LXNpemUtbGc7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQtbGc7XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGlucHV0LWJvcmRlci1yYWRpdXMtbGcpO1xufVxuXG5zZWxlY3QuZm9ybS1jb250cm9sLWxnIHtcbiAgJjpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSkge1xuICAgIGhlaWdodDogJGlucHV0LWhlaWdodC1sZztcbiAgfVxufVxuXG5cbi8vIEZvcm0gZ3JvdXBzXG4vL1xuLy8gRGVzaWduZWQgdG8gaGVscCB3aXRoIHRoZSBvcmdhbml6YXRpb24gYW5kIHNwYWNpbmcgb2YgdmVydGljYWwgZm9ybXMuIEZvclxuLy8gaG9yaXpvbnRhbCBmb3JtcywgdXNlIHRoZSBwcmVkZWZpbmVkIGdyaWQgY2xhc3Nlcy5cblxuLmZvcm0tZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAkZm9ybS1ncm91cC1tYXJnaW4tYm90dG9tO1xufVxuXG4uZm9ybS10ZXh0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6ICRmb3JtLXRleHQtbWFyZ2luLXRvcDtcbn1cblxuXG4vLyBGb3JtIGdyaWRcbi8vXG4vLyBTcGVjaWFsIHJlcGxhY2VtZW50IGZvciBvdXIgZ3JpZCBzeXN0ZW0ncyBgLnJvd2AgZm9yIHRpZ2h0ZXIgZm9ybSBsYXlvdXRzLlxuXG4uZm9ybS1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi1yaWdodDogLTVweDtcbiAgbWFyZ2luLWxlZnQ6IC01cHg7XG5cbiAgPiAuY29sLFxuICA+IFtjbGFzcyo9XCJjb2wtXCJdIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIH1cbn1cblxuXG4vLyBDaGVja2JveGVzIGFuZCByYWRpb3Ncbi8vXG4vLyBJbmRlbnQgdGhlIGxhYmVscyB0byBwb3NpdGlvbiByYWRpb3MvY2hlY2tib3hlcyBhcyBoYW5naW5nIGNvbnRyb2xzLlxuXG4uZm9ybS1jaGVjayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogJGZvcm0tY2hlY2staW5wdXQtZ3V0dGVyO1xufVxuXG4uZm9ybS1jaGVjay1pbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLXRvcDogJGZvcm0tY2hlY2staW5wdXQtbWFyZ2luLXk7XG4gIG1hcmdpbi1sZWZ0OiAtJGZvcm0tY2hlY2staW5wdXQtZ3V0dGVyO1xuXG4gICY6ZGlzYWJsZWQgfiAuZm9ybS1jaGVjay1sYWJlbCB7XG4gICAgY29sb3I6ICR0ZXh0LW11dGVkO1xuICB9XG59XG5cbi5mb3JtLWNoZWNrLWxhYmVsIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgLy8gT3ZlcnJpZGUgZGVmYXVsdCBgPGxhYmVsPmAgYm90dG9tIG1hcmdpblxufVxuXG4uZm9ybS1jaGVjay1pbmxpbmUge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZy1sZWZ0OiAwOyAvLyBPdmVycmlkZSBiYXNlIC5mb3JtLWNoZWNrXG4gIG1hcmdpbi1yaWdodDogJGZvcm0tY2hlY2staW5saW5lLW1hcmdpbi14O1xuXG4gIC8vIFVuZG8gLmZvcm0tY2hlY2staW5wdXQgZGVmYXVsdHMgYW5kIGFkZCBzb21lIGBtYXJnaW4tcmlnaHRgLlxuICAuZm9ybS1jaGVjay1pbnB1dCB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1yaWdodDogJGZvcm0tY2hlY2staW5saW5lLWlucHV0LW1hcmdpbi14O1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG5cblxuLy8gRm9ybSB2YWxpZGF0aW9uXG4vL1xuLy8gUHJvdmlkZSBmZWVkYmFjayB0byB1c2VycyB3aGVuIGZvcm0gZmllbGQgdmFsdWVzIGFyZSB2YWxpZCBvciBpbnZhbGlkLiBXb3Jrc1xuLy8gcHJpbWFyaWx5IGZvciBjbGllbnQtc2lkZSB2YWxpZGF0aW9uIHZpYSBzY29wZWQgYDppbnZhbGlkYCBhbmQgYDp2YWxpZGBcbi8vIHBzZXVkby1jbGFzc2VzIGJ1dCBhbHNvIGluY2x1ZGVzIGAuaXMtaW52YWxpZGAgYW5kIGAuaXMtdmFsaWRgIGNsYXNzZXMgZm9yXG4vLyBzZXJ2ZXIgc2lkZSB2YWxpZGF0aW9uLlxuXG5AaW5jbHVkZSBmb3JtLXZhbGlkYXRpb24tc3RhdGUoXCJ2YWxpZFwiLCAkZm9ybS1mZWVkYmFjay12YWxpZC1jb2xvcik7XG5AaW5jbHVkZSBmb3JtLXZhbGlkYXRpb24tc3RhdGUoXCJpbnZhbGlkXCIsICRmb3JtLWZlZWRiYWNrLWludmFsaWQtY29sb3IpO1xuXG4vLyBJbmxpbmUgZm9ybXNcbi8vXG4vLyBNYWtlIGZvcm1zIGFwcGVhciBpbmxpbmUoLWJsb2NrKSBieSBhZGRpbmcgdGhlIGAuZm9ybS1pbmxpbmVgIGNsYXNzLiBJbmxpbmVcbi8vIGZvcm1zIGJlZ2luIHN0YWNrZWQgb24gZXh0cmEgc21hbGwgKG1vYmlsZSkgZGV2aWNlcyBhbmQgdGhlbiBnbyBpbmxpbmUgd2hlblxuLy8gdmlld3BvcnRzIHJlYWNoIDw3NjhweC5cbi8vXG4vLyBSZXF1aXJlcyB3cmFwcGluZyBpbnB1dHMgYW5kIGxhYmVscyB3aXRoIGAuZm9ybS1ncm91cGAgZm9yIHByb3BlciBkaXNwbGF5IG9mXG4vLyBkZWZhdWx0IEhUTUwgZm9ybSBjb250cm9scyBhbmQgb3VyIGN1c3RvbSBmb3JtIGNvbnRyb2xzIChlLmcuLCBpbnB1dCBncm91cHMpLlxuXG4uZm9ybS1pbmxpbmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyAvLyBQcmV2ZW50IHNob3J0ZXIgZWxlbWVudHMgZnJvbSBncm93aW5nIHRvIHNhbWUgaGVpZ2h0IGFzIG90aGVycyAoZS5nLiwgc21hbGwgYnV0dG9ucyBncm93aW5nIHRvIG5vcm1hbCBzaXplZCBidXR0b24gaGVpZ2h0KVxuXG4gIC8vIEJlY2F1c2Ugd2UgdXNlIGZsZXgsIHRoZSBpbml0aWFsIHNpemluZyBvZiBjaGVja2JveGVzIGlzIGNvbGxhcHNlZCBhbmRcbiAgLy8gZG9lc24ndCBvY2N1cHkgdGhlIGZ1bGwtd2lkdGggKHdoaWNoIGlzIHdoYXQgd2Ugd2FudCBmb3IgeHMgZ3JpZCB0aWVyKSxcbiAgLy8gc28gd2UgZm9yY2UgdGhhdCBoZXJlLlxuICAuZm9ybS1jaGVjayB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAvLyBLaWNrIGluIHRoZSBpbmxpbmVcbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChzbSkge1xuICAgIGxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC8vIElubGluZS1ibG9jayBhbGwgdGhlIHRoaW5ncyBmb3IgXCJpbmxpbmVcIlxuICAgIC5mb3JtLWdyb3VwIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAvLyBBbGxvdyBmb2xrcyB0byAqbm90KiB1c2UgYC5mb3JtLWdyb3VwYFxuICAgIC5mb3JtLWNvbnRyb2wge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IGF1dG87IC8vIFByZXZlbnQgbGFiZWxzIGZyb20gc3RhY2tpbmcgYWJvdmUgaW5wdXRzIGluIGAuZm9ybS1ncm91cGBcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLy8gTWFrZSBzdGF0aWMgY29udHJvbHMgYmVoYXZlIGxpa2UgcmVndWxhciBvbmVzXG4gICAgLmZvcm0tY29udHJvbC1wbGFpbnRleHQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC5pbnB1dC1ncm91cCxcbiAgICAuY3VzdG9tLXNlbGVjdCB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgZGVmYXVsdCBtYXJnaW4gb24gcmFkaW9zL2NoZWNrYm94ZXMgdGhhdCB3ZXJlIHVzZWQgZm9yIHN0YWNraW5nLCBhbmRcbiAgICAvLyB0aGVuIHVuZG8gdGhlIGZsb2F0aW5nIG9mIHJhZGlvcyBhbmQgY2hlY2tib3hlcyB0byBtYXRjaC5cbiAgICAuZm9ybS1jaGVjayB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgfVxuICAgIC5mb3JtLWNoZWNrLWlucHV0IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICRmb3JtLWNoZWNrLWlucHV0LW1hcmdpbi14O1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLmN1c3RvbS1jb250cm9sIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG4gICAgLmN1c3RvbS1jb250cm9sLWxhYmVsIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gdHJhbnNpdGlvbigkdHJhbnNpdGlvbi4uLikge1xuICBAaWYgJGVuYWJsZS10cmFuc2l0aW9ucyB7XG4gICAgQGlmIGxlbmd0aCgkdHJhbnNpdGlvbikgPT0gMCB7XG4gICAgICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbi1iYXNlO1xuICAgIH0gQGVsc2Uge1xuICAgICAgdHJhbnNpdGlvbjogJHRyYW5zaXRpb247XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbn1cbiIsIi8vIEZvcm0gY29udHJvbCBmb2N1cyBzdGF0ZVxuLy9cbi8vIEdlbmVyYXRlIGEgY3VzdG9taXplZCBmb2N1cyBzdGF0ZSBhbmQgZm9yIGFueSBpbnB1dCB3aXRoIHRoZSBzcGVjaWZpZWQgY29sb3IsXG4vLyB3aGljaCBkZWZhdWx0cyB0byB0aGUgYCRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3JgIHZhcmlhYmxlLlxuLy9cbi8vIFdlIGhpZ2hseSBlbmNvdXJhZ2UgeW91IHRvIG5vdCBjdXN0b21pemUgdGhlIGRlZmF1bHQgdmFsdWUsIGJ1dCBpbnN0ZWFkIHVzZVxuLy8gdGhpcyB0byB0d2VhayBjb2xvcnMgb24gYW4gYXMtbmVlZGVkIGJhc2lzLiBUaGlzIGFlc3RoZXRpYyBjaGFuZ2UgaXMgYmFzZWQgb25cbi8vIFdlYktpdCdzIGRlZmF1bHQgc3R5bGVzLCBidXQgYXBwbGljYWJsZSB0byBhIHdpZGVyIHJhbmdlIG9mIGJyb3dzZXJzLiBJdHNcbi8vIHVzYWJpbGl0eSBhbmQgYWNjZXNzaWJpbGl0eSBzaG91bGQgYmUgdGFrZW4gaW50byBhY2NvdW50IHdpdGggYW55IGNoYW5nZS5cbi8vXG4vLyBFeGFtcGxlIHVzYWdlOiBjaGFuZ2UgdGhlIGRlZmF1bHQgYmx1ZSBib3JkZXIgYW5kIHNoYWRvdyB0byB3aGl0ZSBmb3IgYmV0dGVyXG4vLyBjb250cmFzdCBhZ2FpbnN0IGEgZGFyayBncmF5IGJhY2tncm91bmQuXG5AbWl4aW4gZm9ybS1jb250cm9sLWZvY3VzKCkge1xuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGlucHV0LWZvY3VzLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1mb2N1cy1iZztcbiAgICBib3JkZXItY29sb3I6ICRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I7XG4gICAgb3V0bGluZTogMDtcbiAgICAvLyBBdm9pZCB1c2luZyBtaXhpbiBzbyB3ZSBjYW4gcGFzcyBjdXN0b20gZm9jdXMgc2hhZG93IHByb3Blcmx5XG4gICAgQGlmICRlbmFibGUtc2hhZG93cyB7XG4gICAgICBib3gtc2hhZG93OiAkaW5wdXQtYm94LXNoYWRvdywgJGlucHV0LWZvY3VzLWJveC1zaGFkb3c7XG4gICAgfSBAZWxzZSB7XG4gICAgICBib3gtc2hhZG93OiAkaW5wdXQtZm9jdXMtYm94LXNoYWRvdztcbiAgICB9XG4gIH1cbn1cblxuXG5AbWl4aW4gZm9ybS12YWxpZGF0aW9uLXN0YXRlKCRzdGF0ZSwgJGNvbG9yKSB7XG4gIC4jeyRzdGF0ZX0tZmVlZGJhY2sge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogJGZvcm0tZmVlZGJhY2stbWFyZ2luLXRvcDtcbiAgICBmb250LXNpemU6ICRmb3JtLWZlZWRiYWNrLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG5cbiAgLiN7JHN0YXRlfS10b29sdGlwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IC8vIENvbnRhaW4gdG8gcGFyZW50IHdoZW4gcG9zc2libGVcbiAgICBwYWRkaW5nOiAuNXJlbTtcbiAgICBtYXJnaW4tdG9wOiAuMXJlbTtcbiAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRjb2xvciwgLjgpO1xuICAgIGJvcmRlci1yYWRpdXM6IC4ycmVtO1xuICB9XG5cbiAgLmZvcm0tY29udHJvbCxcbiAgLmN1c3RvbS1zZWxlY3Qge1xuICAgIC53YXMtdmFsaWRhdGVkICY6I3skc3RhdGV9LFxuICAgICYuaXMtI3skc3RhdGV9IHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRpbnB1dC1mb2N1cy13aWR0aCByZ2JhKCRjb2xvciwgLjI1KTtcbiAgICAgIH1cblxuICAgICAgfiAuI3skc3RhdGV9LWZlZWRiYWNrLFxuICAgICAgfiAuI3skc3RhdGV9LXRvb2x0aXAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZm9ybS1jb250cm9sLWZpbGUge1xuICAgIC53YXMtdmFsaWRhdGVkICY6I3skc3RhdGV9LFxuICAgICYuaXMtI3skc3RhdGV9IHtcbiAgICAgIH4gLiN7JHN0YXRlfS1mZWVkYmFjayxcbiAgICAgIH4gLiN7JHN0YXRlfS10b29sdGlwIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmZvcm0tY2hlY2staW5wdXQge1xuICAgIC53YXMtdmFsaWRhdGVkICY6I3skc3RhdGV9LFxuICAgICYuaXMtI3skc3RhdGV9IHtcbiAgICAgIH4gLmZvcm0tY2hlY2stbGFiZWwge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgfVxuXG4gICAgICB+IC4jeyRzdGF0ZX0tZmVlZGJhY2ssXG4gICAgICB+IC4jeyRzdGF0ZX0tdG9vbHRpcCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jdXN0b20tY29udHJvbC1pbnB1dCB7XG4gICAgLndhcy12YWxpZGF0ZWQgJjojeyRzdGF0ZX0sXG4gICAgJi5pcy0jeyRzdGF0ZX0ge1xuICAgICAgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWwge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkY29sb3IsIDI1JSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgfiAuI3skc3RhdGV9LWZlZWRiYWNrLFxuICAgICAgfiAuI3skc3RhdGV9LXRvb2x0aXAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JhZGllbnQtYmcobGlnaHRlbigkY29sb3IsIDEwJSkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJGJvZHktYmcsIDAgMCAwICRpbnB1dC1mb2N1cy13aWR0aCByZ2JhKCRjb2xvciwgLjI1KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIGN1c3RvbSBmaWxlXG4gIC5jdXN0b20tZmlsZS1pbnB1dCB7XG4gICAgLndhcy12YWxpZGF0ZWQgJjojeyRzdGF0ZX0sXG4gICAgJi5pcy0jeyRzdGF0ZX0ge1xuICAgICAgfiAuY3VzdG9tLWZpbGUtbGFiZWwge1xuICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAmOjpiZWZvcmUgeyBib3JkZXItY29sb3I6IGluaGVyaXQ7IH1cbiAgICAgIH1cblxuICAgICAgfiAuI3skc3RhdGV9LWZlZWRiYWNrLFxuICAgICAgfiAuI3skc3RhdGV9LXRvb2x0aXAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIH4gLmN1c3RvbS1maWxlLWxhYmVsIHtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAkaW5wdXQtZm9jdXMtd2lkdGggcmdiYSgkY29sb3IsIC4yNSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEdyYWRpZW50c1xuXG5AbWl4aW4gZ3JhZGllbnQtYmcoJGNvbG9yKSB7XG4gIEBpZiAkZW5hYmxlLWdyYWRpZW50cyB7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIG1peCgkYm9keS1iZywgJGNvbG9yLCAxNSUpLCAkY29sb3IpIHJlcGVhdC14O1xuICB9IEBlbHNlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuLy8gSG9yaXpvbnRhbCBncmFkaWVudCwgZnJvbSBsZWZ0IHRvIHJpZ2h0XG4vL1xuLy8gQ3JlYXRlcyB0d28gY29sb3Igc3RvcHMsIHN0YXJ0IGFuZCBlbmQsIGJ5IHNwZWNpZnlpbmcgYSBjb2xvciBhbmQgcG9zaXRpb24gZm9yIGVhY2ggY29sb3Igc3RvcC5cbkBtaXhpbiBncmFkaWVudC14KCRzdGFydC1jb2xvcjogJGdyYXktNzAwLCAkZW5kLWNvbG9yOiAkZ3JheS04MDAsICRzdGFydC1wZXJjZW50OiAwJSwgJGVuZC1wZXJjZW50OiAxMDAlKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cblxuLy8gVmVydGljYWwgZ3JhZGllbnQsIGZyb20gdG9wIHRvIGJvdHRvbVxuLy9cbi8vIENyZWF0ZXMgdHdvIGNvbG9yIHN0b3BzLCBzdGFydCBhbmQgZW5kLCBieSBzcGVjaWZ5aW5nIGEgY29sb3IgYW5kIHBvc2l0aW9uIGZvciBlYWNoIGNvbG9yIHN0b3AuXG5AbWl4aW4gZ3JhZGllbnQteSgkc3RhcnQtY29sb3I6ICRncmF5LTcwMCwgJGVuZC1jb2xvcjogJGdyYXktODAwLCAkc3RhcnQtcGVyY2VudDogMCUsICRlbmQtcGVyY2VudDogMTAwJSkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAkc3RhcnQtY29sb3IgJHN0YXJ0LXBlcmNlbnQsICRlbmQtY29sb3IgJGVuZC1wZXJjZW50KTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuXG5AbWl4aW4gZ3JhZGllbnQtZGlyZWN0aW9uYWwoJHN0YXJ0LWNvbG9yOiAkZ3JheS03MDAsICRlbmQtY29sb3I6ICRncmF5LTgwMCwgJGRlZzogNDVkZWcpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRkZWcsICRzdGFydC1jb2xvciwgJGVuZC1jb2xvcik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cbkBtaXhpbiBncmFkaWVudC14LXRocmVlLWNvbG9ycygkc3RhcnQtY29sb3I6ICRibHVlLCAkbWlkLWNvbG9yOiAkcHVycGxlLCAkY29sb3Itc3RvcDogNTAlLCAkZW5kLWNvbG9yOiAkcmVkKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHN0YXJ0LWNvbG9yLCAkbWlkLWNvbG9yICRjb2xvci1zdG9wLCAkZW5kLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cbkBtaXhpbiBncmFkaWVudC15LXRocmVlLWNvbG9ycygkc3RhcnQtY29sb3I6ICRibHVlLCAkbWlkLWNvbG9yOiAkcHVycGxlLCAkY29sb3Itc3RvcDogNTAlLCAkZW5kLWNvbG9yOiAkcmVkKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkc3RhcnQtY29sb3IsICRtaWQtY29sb3IgJGNvbG9yLXN0b3AsICRlbmQtY29sb3IpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuQG1peGluIGdyYWRpZW50LXJhZGlhbCgkaW5uZXItY29sb3I6ICRncmF5LTcwMCwgJG91dGVyLWNvbG9yOiAkZ3JheS04MDApIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgJGlubmVyLWNvbG9yLCAkb3V0ZXItY29sb3IpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuQG1peGluIGdyYWRpZW50LXN0cmlwZWQoJGNvbG9yOiByZ2JhKCR3aGl0ZSwgLjE1KSwgJGFuZ2xlOiA0NWRlZykge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJGFuZ2xlLCAkY29sb3IgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgJGNvbG9yIDUwJSwgJGNvbG9yIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGVcblxuLy9cbi8vIEJhc2Ugc3R5bGVzXG4vL1xuXG4uYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXdlaWdodDogJGJ0bi1mb250LXdlaWdodDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgYm9yZGVyOiAkYnRuLWJvcmRlci13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgQGluY2x1ZGUgYnV0dG9uLXNpemUoJGJ0bi1wYWRkaW5nLXksICRidG4tcGFkZGluZy14LCAkZm9udC1zaXplLWJhc2UsICRidG4tbGluZS1oZWlnaHQsICRidG4tYm9yZGVyLXJhZGl1cyk7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24oJGJ0bi10cmFuc2l0aW9uKTtcblxuICAvLyBTaGFyZSBob3ZlciBhbmQgZm9jdXMgc3R5bGVzXG4gIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAmOmZvY3VzLFxuICAmLmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGJveC1zaGFkb3c6ICRidG4tZm9jdXMtYm94LXNoYWRvdztcbiAgfVxuXG4gIC8vIERpc2FibGVkIGNvbWVzIGZpcnN0IHNvIGFjdGl2ZSBjYW4gcHJvcGVybHkgcmVzdHlsZVxuICAmLmRpc2FibGVkLFxuICAmOmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAkYnRuLWRpc2FibGVkLW9wYWNpdHk7XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdyhub25lKTtcbiAgfVxuXG4gIC8vIE9waW5pb25hdGVkOiBhZGQgXCJoYW5kXCIgY3Vyc29yIHRvIG5vbi1kaXNhYmxlZCAuYnRuIGVsZW1lbnRzXG4gICY6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLFxuICAmOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KCRidG4tYWN0aXZlLWJveC1zaGFkb3cpO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBib3gtc2hhZG93KCRidG4tZm9jdXMtYm94LXNoYWRvdywgJGJ0bi1hY3RpdmUtYm94LXNoYWRvdyk7XG4gICAgfVxuICB9XG59XG5cbi8vIEZ1dHVyZS1wcm9vZiBkaXNhYmxpbmcgb2YgY2xpY2tzIG9uIGA8YT5gIGVsZW1lbnRzXG5hLmJ0bi5kaXNhYmxlZCxcbmZpZWxkc2V0OmRpc2FibGVkIGEuYnRuIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cblxuLy9cbi8vIEFsdGVybmF0ZSBidXR0b25zXG4vL1xuXG5AZWFjaCAkY29sb3IsICR2YWx1ZSBpbiAkdGhlbWUtY29sb3JzIHtcbiAgLmJ0bi0jeyRjb2xvcn0ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi12YXJpYW50KCR2YWx1ZSwgJHZhbHVlKTtcbiAgfVxufVxuXG5AZWFjaCAkY29sb3IsICR2YWx1ZSBpbiAkdGhlbWUtY29sb3JzIHtcbiAgLmJ0bi1vdXRsaW5lLSN7JGNvbG9yfSB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLW91dGxpbmUtdmFyaWFudCgkdmFsdWUpO1xuICB9XG59XG5cblxuLy9cbi8vIExpbmsgYnV0dG9uc1xuLy9cblxuLy8gTWFrZSBhIGJ1dHRvbiBsb29rIGFuZCBiZWhhdmUgbGlrZSBhIGxpbmtcbi5idG4tbGluayB7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsO1xuICBjb2xvcjogJGxpbmstY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gIEBpbmNsdWRlIGhvdmVyIHtcbiAgICBjb2xvcjogJGxpbmstaG92ZXItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiAkbGluay1ob3Zlci1kZWNvcmF0aW9uO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAmOmZvY3VzLFxuICAmLmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246ICRsaW5rLWhvdmVyLWRlY29yYXRpb247XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG5cbiAgJjpkaXNhYmxlZCxcbiAgJi5kaXNhYmxlZCB7XG4gICAgY29sb3I6ICRidG4tbGluay1kaXNhYmxlZC1jb2xvcjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuXG4gIC8vIE5vIG5lZWQgZm9yIGFuIGFjdGl2ZSBzdGF0ZSBoZXJlXG59XG5cblxuLy9cbi8vIEJ1dHRvbiBTaXplc1xuLy9cblxuLmJ0bi1sZyB7XG4gIEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRidG4tcGFkZGluZy15LWxnLCAkYnRuLXBhZGRpbmcteC1sZywgJGZvbnQtc2l6ZS1sZywgJGJ0bi1saW5lLWhlaWdodC1sZywgJGJ0bi1ib3JkZXItcmFkaXVzLWxnKTtcbn1cblxuLmJ0bi1zbSB7XG4gIEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRidG4tcGFkZGluZy15LXNtLCAkYnRuLXBhZGRpbmcteC1zbSwgJGZvbnQtc2l6ZS1zbSwgJGJ0bi1saW5lLWhlaWdodC1zbSwgJGJ0bi1ib3JkZXItcmFkaXVzLXNtKTtcbn1cblxuXG4vL1xuLy8gQmxvY2sgYnV0dG9uXG4vL1xuXG4uYnRuLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIC8vIFZlcnRpY2FsbHkgc3BhY2Ugb3V0IG11bHRpcGxlIGJsb2NrIGJ1dHRvbnNcbiAgKyAuYnRuLWJsb2NrIHtcbiAgICBtYXJnaW4tdG9wOiAkYnRuLWJsb2NrLXNwYWNpbmcteTtcbiAgfVxufVxuXG4vLyBTcGVjaWZpY2l0eSBvdmVycmlkZXNcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwiYnV0dG9uXCJdIHtcbiAgJi5idG4tYmxvY2sge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvLyBCdXR0b24gdmFyaWFudHNcbi8vXG4vLyBFYXNpbHkgcHVtcCBvdXQgZGVmYXVsdCBzdHlsZXMsIGFzIHdlbGwgYXMgOmhvdmVyLCA6Zm9jdXMsIDphY3RpdmUsXG4vLyBhbmQgZGlzYWJsZWQgb3B0aW9ucyBmb3IgYWxsIGJ1dHRvbnNcblxuQG1peGluIGJ1dHRvbi12YXJpYW50KCRiYWNrZ3JvdW5kLCAkYm9yZGVyLCAkaG92ZXItYmFja2dyb3VuZDogZGFya2VuKCRiYWNrZ3JvdW5kLCA3LjUlKSwgJGhvdmVyLWJvcmRlcjogZGFya2VuKCRib3JkZXIsIDEwJSksICRhY3RpdmUtYmFja2dyb3VuZDogZGFya2VuKCRiYWNrZ3JvdW5kLCAxMCUpLCAkYWN0aXZlLWJvcmRlcjogZGFya2VuKCRib3JkZXIsIDEyLjUlKSkge1xuICBjb2xvcjogY29sb3IteWlxKCRiYWNrZ3JvdW5kKTtcbiAgQGluY2x1ZGUgZ3JhZGllbnQtYmcoJGJhY2tncm91bmQpO1xuICBib3JkZXItY29sb3I6ICRib3JkZXI7XG4gIEBpbmNsdWRlIGJveC1zaGFkb3coJGJ0bi1ib3gtc2hhZG93KTtcblxuICBAaW5jbHVkZSBob3ZlciB7XG4gICAgY29sb3I6IGNvbG9yLXlpcSgkaG92ZXItYmFja2dyb3VuZCk7XG4gICAgQGluY2x1ZGUgZ3JhZGllbnQtYmcoJGhvdmVyLWJhY2tncm91bmQpO1xuICAgIGJvcmRlci1jb2xvcjogJGhvdmVyLWJvcmRlcjtcbiAgfVxuXG4gICY6Zm9jdXMsXG4gICYuZm9jdXMge1xuICAgIC8vIEF2b2lkIHVzaW5nIG1peGluIHNvIHdlIGNhbiBwYXNzIGN1c3RvbSBmb2N1cyBzaGFkb3cgcHJvcGVybHlcbiAgICBAaWYgJGVuYWJsZS1zaGFkb3dzIHtcbiAgICAgIGJveC1zaGFkb3c6ICRidG4tYm94LXNoYWRvdywgMCAwIDAgJGJ0bi1mb2N1cy13aWR0aCByZ2JhKCRib3JkZXIsIC41KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRidG4tZm9jdXMtd2lkdGggcmdiYSgkYm9yZGVyLCAuNSk7XG4gICAgfVxuICB9XG5cbiAgLy8gRGlzYWJsZWQgY29tZXMgZmlyc3Qgc28gYWN0aXZlIGNhbiBwcm9wZXJseSByZXN0eWxlXG4gICYuZGlzYWJsZWQsXG4gICY6ZGlzYWJsZWQge1xuICAgIGNvbG9yOiBjb2xvci15aXEoJGJhY2tncm91bmQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcbiAgfVxuXG4gICY6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLFxuICAmOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSxcbiAgLnNob3cgPiAmLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgY29sb3I6IGNvbG9yLXlpcSgkYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhY3RpdmUtYmFja2dyb3VuZDtcbiAgICBAaWYgJGVuYWJsZS1ncmFkaWVudHMge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLy8gUmVtb3ZlIHRoZSBncmFkaWVudCBmb3IgdGhlIHByZXNzZWQvYWN0aXZlIHN0YXRlXG4gICAgfVxuICAgIGJvcmRlci1jb2xvcjogJGFjdGl2ZS1ib3JkZXI7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIC8vIEF2b2lkIHVzaW5nIG1peGluIHNvIHdlIGNhbiBwYXNzIGN1c3RvbSBmb2N1cyBzaGFkb3cgcHJvcGVybHlcbiAgICAgIEBpZiAkZW5hYmxlLXNoYWRvd3Mge1xuICAgICAgICBib3gtc2hhZG93OiAkYnRuLWFjdGl2ZS1ib3gtc2hhZG93LCAwIDAgMCAkYnRuLWZvY3VzLXdpZHRoIHJnYmEoJGJvcmRlciwgLjUpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRidG4tZm9jdXMtd2lkdGggcmdiYSgkYm9yZGVyLCAuNSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBidXR0b24tb3V0bGluZS12YXJpYW50KCRjb2xvciwgJGNvbG9yLWhvdmVyOiBjb2xvci15aXEoJGNvbG9yKSwgJGFjdGl2ZS1iYWNrZ3JvdW5kOiAkY29sb3IsICRhY3RpdmUtYm9yZGVyOiAkY29sb3IpIHtcbiAgY29sb3I6ICRjb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFjdGl2ZS1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1jb2xvcjogJGFjdGl2ZS1ib3JkZXI7XG4gIH1cblxuICAmOmZvY3VzLFxuICAmLmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAkYnRuLWZvY3VzLXdpZHRoIHJnYmEoJGNvbG9yLCAuNSk7XG4gIH1cblxuICAmLmRpc2FibGVkLFxuICAmOmRpc2FibGVkIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgJjpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsXG4gICY6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLFxuICAuc2hvdyA+ICYuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBjb2xvcjogY29sb3IteWlxKCRhY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFjdGl2ZS1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1jb2xvcjogJGFjdGl2ZS1ib3JkZXI7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIC8vIEF2b2lkIHVzaW5nIG1peGluIHNvIHdlIGNhbiBwYXNzIGN1c3RvbSBmb2N1cyBzaGFkb3cgcHJvcGVybHlcbiAgICAgIEBpZiAkZW5hYmxlLXNoYWRvd3MgYW5kICRidG4tYWN0aXZlLWJveC1zaGFkb3cgIT0gbm9uZSB7XG4gICAgICAgIGJveC1zaGFkb3c6ICRidG4tYWN0aXZlLWJveC1zaGFkb3csIDAgMCAwICRidG4tZm9jdXMtd2lkdGggcmdiYSgkY29sb3IsIC41KTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAkYnRuLWZvY3VzLXdpZHRoIHJnYmEoJGNvbG9yLCAuNSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIEJ1dHRvbiBzaXplc1xuQG1peGluIGJ1dHRvbi1zaXplKCRwYWRkaW5nLXksICRwYWRkaW5nLXgsICRmb250LXNpemUsICRsaW5lLWhlaWdodCwgJGJvcmRlci1yYWRpdXMpIHtcbiAgcGFkZGluZzogJHBhZGRpbmcteSAkcGFkZGluZy14O1xuICBmb250LXNpemU6ICRmb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gIC8vIE1hbnVhbGx5IGRlY2xhcmUgdG8gcHJvdmlkZSBhbiBvdmVycmlkZSB0byB0aGUgYnJvd3NlciBkZWZhdWx0XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICB9IEBlbHNlIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGVcblxuLmZhZGUge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKCR0cmFuc2l0aW9uLWZhZGUpO1xuXG4gICY6bm90KC5zaG93KSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4uY29sbGFwc2Uge1xuICAmOm5vdCguc2hvdykge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmNvbGxhcHNpbmcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbigkdHJhbnNpdGlvbi1jb2xsYXBzZSk7XG59XG4iLCIvLyBUaGUgZHJvcGRvd24gd3JhcHBlciAoYDxkaXY+YClcbi5kcm9wdXAsXG4uZHJvcHJpZ2h0LFxuLmRyb3Bkb3duLFxuLmRyb3BsZWZ0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZHJvcGRvd24tdG9nZ2xlIHtcbiAgLy8gR2VuZXJhdGUgdGhlIGNhcmV0IGF1dG9tYXRpY2FsbHlcbiAgQGluY2x1ZGUgY2FyZXQ7XG59XG5cbi8vIFRoZSBkcm9wZG93biBtZW51XG4uZHJvcGRvd24tbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAkemluZGV4LWRyb3Bkb3duO1xuICBkaXNwbGF5OiBub25lOyAvLyBub25lIGJ5IGRlZmF1bHQsIGJ1dCBibG9jayBvbiBcIm9wZW5cIiBvZiB0aGUgbWVudVxuICBmbG9hdDogbGVmdDtcbiAgbWluLXdpZHRoOiAkZHJvcGRvd24tbWluLXdpZHRoO1xuICBwYWRkaW5nOiAkZHJvcGRvd24tcGFkZGluZy15IDA7XG4gIG1hcmdpbjogJGRyb3Bkb3duLXNwYWNlciAwIDA7IC8vIG92ZXJyaWRlIGRlZmF1bHQgdWxcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7IC8vIFJlZGVjbGFyZSBiZWNhdXNlIG5lc3RpbmcgY2FuIGNhdXNlIGluaGVyaXRhbmNlIGlzc3Vlc1xuICBjb2xvcjogJGJvZHktY29sb3I7XG4gIHRleHQtYWxpZ246IGxlZnQ7IC8vIEVuc3VyZXMgcHJvcGVyIGFsaWdubWVudCBpZiBwYXJlbnQgaGFzIGl0IGNoYW5nZWQgKGUuZy4sIG1vZGFsIGZvb3RlcilcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRyb3Bkb3duLWJnO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBib3JkZXI6ICRkcm9wZG93bi1ib3JkZXItd2lkdGggc29saWQgJGRyb3Bkb3duLWJvcmRlci1jb2xvcjtcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkZHJvcGRvd24tYm9yZGVyLXJhZGl1cyk7XG4gIEBpbmNsdWRlIGJveC1zaGFkb3coJGRyb3Bkb3duLWJveC1zaGFkb3cpO1xufVxuXG4uZHJvcGRvd24tbWVudS1yaWdodCB7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvO1xufVxuXG4vLyBBbGxvdyBmb3IgZHJvcGRvd25zIHRvIGdvIGJvdHRvbSB1cCAoYWthLCBkcm9wdXAtbWVudSlcbi8vIEp1c3QgYWRkIC5kcm9wdXAgYWZ0ZXIgdGhlIHN0YW5kYXJkIC5kcm9wZG93biBjbGFzcyBhbmQgeW91J3JlIHNldC5cbi5kcm9wdXAge1xuICAuZHJvcGRvd24tbWVudSB7XG4gICAgdG9wOiBhdXRvO1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206ICRkcm9wZG93bi1zcGFjZXI7XG4gIH1cblxuICAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBAaW5jbHVkZSBjYXJldCh1cCk7XG4gIH1cbn1cblxuLmRyb3ByaWdodCB7XG4gIC5kcm9wZG93bi1tZW51IHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAkZHJvcGRvd24tc3BhY2VyO1xuICB9XG5cbiAgLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgQGluY2x1ZGUgY2FyZXQocmlnaHQpO1xuICAgICY6OmFmdGVyIHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiAwO1xuICAgIH1cbiAgfVxufVxuXG4uZHJvcGxlZnQge1xuICAuZHJvcGRvd24tbWVudSB7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6ICRkcm9wZG93bi1zcGFjZXI7XG4gIH1cblxuICAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBAaW5jbHVkZSBjYXJldChsZWZ0KTtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgdmVydGljYWwtYWxpZ246IDA7XG4gICAgfVxuICB9XG59XG5cbi8vIFdoZW4gZW5hYmxlZCBQb3BwZXIuanMsIHJlc2V0IGJhc2ljIGRyb3Bkb3duIHBvc2l0aW9uXG4vLyBzdHlsZWxpbnQtZGlzYWJsZSBuby1kdXBsaWNhdGUtc2VsZWN0b3JzXG4uZHJvcGRvd24tbWVudSB7XG4gICZbeC1wbGFjZW1lbnRePVwidG9wXCJdLFxuICAmW3gtcGxhY2VtZW50Xj1cInJpZ2h0XCJdLFxuICAmW3gtcGxhY2VtZW50Xj1cImJvdHRvbVwiXSxcbiAgJlt4LXBsYWNlbWVudF49XCJsZWZ0XCJdIHtcbiAgICByaWdodDogYXV0bztcbiAgICBib3R0b206IGF1dG87XG4gIH1cbn1cbi8vIHN0eWxlbGludC1lbmFibGUgbm8tZHVwbGljYXRlLXNlbGVjdG9yc1xuXG4vLyBEaXZpZGVycyAoYmFzaWNhbGx5IGFuIGA8aHI+YCkgd2l0aGluIHRoZSBkcm9wZG93blxuLmRyb3Bkb3duLWRpdmlkZXIge1xuICBAaW5jbHVkZSBuYXYtZGl2aWRlcigkZHJvcGRvd24tZGl2aWRlci1iZyk7XG59XG5cbi8vIExpbmtzLCBidXR0b25zLCBhbmQgbW9yZSB3aXRoaW4gdGhlIGRyb3Bkb3duIG1lbnVcbi8vXG4vLyBgPGJ1dHRvbj5gLXNwZWNpZmljIHN0eWxlcyBhcmUgZGVub3RlZCB3aXRoIGAvLyBGb3IgPGJ1dHRvbj5zYFxuLmRyb3Bkb3duLWl0ZW0ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7IC8vIEZvciBgPGJ1dHRvbj5gc1xuICBwYWRkaW5nOiAkZHJvcGRvd24taXRlbS1wYWRkaW5nLXkgJGRyb3Bkb3duLWl0ZW0tcGFkZGluZy14O1xuICBjbGVhcjogYm90aDtcbiAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWw7XG4gIGNvbG9yOiAkZHJvcGRvd24tbGluay1jb2xvcjtcbiAgdGV4dC1hbGlnbjogaW5oZXJpdDsgLy8gRm9yIGA8YnV0dG9uPmBzXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IC8vIHByZXZlbnQgbGlua3MgZnJvbSByYW5kb21seSBicmVha2luZyBvbnRvIG5ldyBsaW5lc1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLy8gRm9yIGA8YnV0dG9uPmBzXG4gIGJvcmRlcjogMDsgLy8gRm9yIGA8YnV0dG9uPmBzXG5cbiAgQGluY2x1ZGUgaG92ZXItZm9jdXMge1xuICAgIGNvbG9yOiAkZHJvcGRvd24tbGluay1ob3Zlci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgQGluY2x1ZGUgZ3JhZGllbnQtYmcoJGRyb3Bkb3duLWxpbmstaG92ZXItYmcpO1xuICB9XG5cbiAgJi5hY3RpdmUsXG4gICY6YWN0aXZlIHtcbiAgICBjb2xvcjogJGRyb3Bkb3duLWxpbmstYWN0aXZlLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBAaW5jbHVkZSBncmFkaWVudC1iZygkZHJvcGRvd24tbGluay1hY3RpdmUtYmcpO1xuICB9XG5cbiAgJi5kaXNhYmxlZCxcbiAgJjpkaXNhYmxlZCB7XG4gICAgY29sb3I6ICRkcm9wZG93bi1saW5rLWRpc2FibGVkLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIC8vIFJlbW92ZSBDU1MgZ3JhZGllbnRzIGlmIHRoZXkncmUgZW5hYmxlZFxuICAgIEBpZiAkZW5hYmxlLWdyYWRpZW50cyB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4uZHJvcGRvd24tbWVudS5zaG93IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vIERyb3Bkb3duIHNlY3Rpb24gaGVhZGVyc1xuLmRyb3Bkb3duLWhlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAkZHJvcGRvd24tcGFkZGluZy15ICRkcm9wZG93bi1pdGVtLXBhZGRpbmcteDtcbiAgbWFyZ2luLWJvdHRvbTogMDsgLy8gZm9yIHVzZSB3aXRoIGhlYWRpbmcgZWxlbWVudHNcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtO1xuICBjb2xvcjogJGRyb3Bkb3duLWhlYWRlci1jb2xvcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgLy8gYXMgd2l0aCA+IGxpID4gYVxufVxuXG4vLyBEcm9wZG93biB0ZXh0XG4uZHJvcGRvd24taXRlbS10ZXh0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6ICRkcm9wZG93bi1pdGVtLXBhZGRpbmcteSAkZHJvcGRvd24taXRlbS1wYWRkaW5nLXg7XG4gIGNvbG9yOiAkZHJvcGRvd24tbGluay1jb2xvcjtcbn1cbiIsIkBtaXhpbiBjYXJldC1kb3duIHtcbiAgYm9yZGVyLXRvcDogJGNhcmV0LXdpZHRoIHNvbGlkO1xuICBib3JkZXItcmlnaHQ6ICRjYXJldC13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYm9yZGVyLWxlZnQ6ICRjYXJldC13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuQG1peGluIGNhcmV0LXVwIHtcbiAgYm9yZGVyLXRvcDogMDtcbiAgYm9yZGVyLXJpZ2h0OiAkY2FyZXQtd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206ICRjYXJldC13aWR0aCBzb2xpZDtcbiAgYm9yZGVyLWxlZnQ6ICRjYXJldC13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuQG1peGluIGNhcmV0LXJpZ2h0IHtcbiAgYm9yZGVyLXRvcDogJGNhcmV0LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDA7XG4gIGJvcmRlci1ib3R0b206ICRjYXJldC13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQ6ICRjYXJldC13aWR0aCBzb2xpZDtcbn1cblxuQG1peGluIGNhcmV0LWxlZnQge1xuICBib3JkZXItdG9wOiAkY2FyZXQtd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogJGNhcmV0LXdpZHRoIHNvbGlkO1xuICBib3JkZXItYm90dG9tOiAkY2FyZXQtd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbkBtaXhpbiBjYXJldCgkZGlyZWN0aW9uOiBkb3duKSB7XG4gIEBpZiAkZW5hYmxlLWNhcmV0IHtcbiAgICAmOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAkY2FyZXQtd2lkdGggKiAuODU7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogJGNhcmV0LXdpZHRoICogLjg1O1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIEBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xuICAgICAgICBAaW5jbHVkZSBjYXJldC1kb3duO1xuICAgICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHVwIHtcbiAgICAgICAgQGluY2x1ZGUgY2FyZXQtdXA7XG4gICAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xuICAgICAgICBAaW5jbHVkZSBjYXJldC1yaWdodDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBsZWZ0IHtcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRjYXJldC13aWR0aCAqIC44NTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246ICRjYXJldC13aWR0aCAqIC44NTtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgQGluY2x1ZGUgY2FyZXQtbGVmdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmVtcHR5OjphZnRlciB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEhvcml6b250YWwgZGl2aWRlcnNcbi8vXG4vLyBEaXZpZGVycyAoYmFzaWNhbGx5IGFuIGhyKSB3aXRoaW4gZHJvcGRvd25zIGFuZCBuYXYgbGlzdHNcblxuQG1peGluIG5hdi1kaXZpZGVyKCRjb2xvcjogJG5hdi1kaXZpZGVyLWNvbG9yLCAkbWFyZ2luLXk6ICRuYXYtZGl2aWRlci1tYXJnaW4teSkge1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbjogJG1hcmdpbi15IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY29sb3I7XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGVcblxuLy8gTWFrZSB0aGUgZGl2IGJlaGF2ZSBsaWtlIGEgYnV0dG9uXG4uYnRuLWdyb3VwLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IC8vIG1hdGNoIC5idG4gYWxpZ25tZW50IGdpdmVuIGZvbnQtc2l6ZSBoYWNrIGFib3ZlXG5cbiAgPiAuYnRuIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleDogMCAxIGF1dG87XG5cbiAgICAvLyBCcmluZyB0aGUgaG92ZXIsIGZvY3VzZWQsIGFuZCBcImFjdGl2ZVwiIGJ1dHRvbnMgdG8gdGhlIGZyb250IHRvIG92ZXJsYXlcbiAgICAvLyB0aGUgYm9yZGVycyBwcm9wZXJseVxuICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUsXG4gICAgJi5hY3RpdmUge1xuICAgICAgei1pbmRleDogMTtcbiAgICB9XG4gIH1cblxuICAvLyBQcmV2ZW50IGRvdWJsZSBib3JkZXJzIHdoZW4gYnV0dG9ucyBhcmUgbmV4dCB0byBlYWNoIG90aGVyXG4gIC5idG4gKyAuYnRuLFxuICAuYnRuICsgLmJ0bi1ncm91cCxcbiAgLmJ0bi1ncm91cCArIC5idG4sXG4gIC5idG4tZ3JvdXAgKyAuYnRuLWdyb3VwIHtcbiAgICBtYXJnaW4tbGVmdDogLSRidG4tYm9yZGVyLXdpZHRoO1xuICB9XG59XG5cbi8vIE9wdGlvbmFsOiBHcm91cCBtdWx0aXBsZSBidXR0b24gZ3JvdXBzIHRvZ2V0aGVyIGZvciBhIHRvb2xiYXJcbi5idG4tdG9vbGJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXG4gIC5pbnB1dC1ncm91cCB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLmJ0bi1ncm91cCB7XG4gID4gLmJ0bjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICAvLyBSZXNldCByb3VuZGVkIGNvcm5lcnNcbiAgPiAuYnRuOm5vdCg6bGFzdC1jaGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpLFxuICA+IC5idG4tZ3JvdXA6bm90KDpsYXN0LWNoaWxkKSA+IC5idG4ge1xuICAgIEBpbmNsdWRlIGJvcmRlci1yaWdodC1yYWRpdXMoMCk7XG4gIH1cblxuICA+IC5idG46bm90KDpmaXJzdC1jaGlsZCksXG4gID4gLmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG4ge1xuICAgIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygwKTtcbiAgfVxufVxuXG4vLyBTaXppbmdcbi8vXG4vLyBSZW1peCB0aGUgZGVmYXVsdCBidXR0b24gc2l6aW5nIGNsYXNzZXMgaW50byBuZXcgb25lcyBmb3IgZWFzaWVyIG1hbmlwdWxhdGlvbi5cblxuLmJ0bi1ncm91cC1zbSA+IC5idG4geyBAZXh0ZW5kIC5idG4tc207IH1cbi5idG4tZ3JvdXAtbGcgPiAuYnRuIHsgQGV4dGVuZCAuYnRuLWxnOyB9XG5cblxuLy9cbi8vIFNwbGl0IGJ1dHRvbiBkcm9wZG93bnNcbi8vXG5cbi5kcm9wZG93bi10b2dnbGUtc3BsaXQge1xuICBwYWRkaW5nLXJpZ2h0OiAkYnRuLXBhZGRpbmcteCAqIC43NTtcbiAgcGFkZGluZy1sZWZ0OiAkYnRuLXBhZGRpbmcteCAqIC43NTtcblxuICAmOjphZnRlcixcbiAgLmRyb3B1cCAmOjphZnRlcixcbiAgLmRyb3ByaWdodCAmOjphZnRlciB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICAuZHJvcGxlZnQgJjo6YmVmb3JlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbn1cblxuLmJ0bi1zbSArIC5kcm9wZG93bi10b2dnbGUtc3BsaXQge1xuICBwYWRkaW5nLXJpZ2h0OiAkYnRuLXBhZGRpbmcteC1zbSAqIC43NTtcbiAgcGFkZGluZy1sZWZ0OiAkYnRuLXBhZGRpbmcteC1zbSAqIC43NTtcbn1cblxuLmJ0bi1sZyArIC5kcm9wZG93bi10b2dnbGUtc3BsaXQge1xuICBwYWRkaW5nLXJpZ2h0OiAkYnRuLXBhZGRpbmcteC1sZyAqIC43NTtcbiAgcGFkZGluZy1sZWZ0OiAkYnRuLXBhZGRpbmcteC1sZyAqIC43NTtcbn1cblxuXG4vLyBUaGUgY2xpY2thYmxlIGJ1dHRvbiBmb3IgdG9nZ2xpbmcgdGhlIG1lbnVcbi8vIFNldCB0aGUgc2FtZSBpbnNldCBzaGFkb3cgYXMgdGhlIDphY3RpdmUgc3RhdGVcbi5idG4tZ3JvdXAuc2hvdyAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgQGluY2x1ZGUgYm94LXNoYWRvdygkYnRuLWFjdGl2ZS1ib3gtc2hhZG93KTtcblxuICAvLyBTaG93IG5vIHNoYWRvdyBmb3IgYC5idG4tbGlua2Agc2luY2UgaXQgaGFzIG5vIG90aGVyIGJ1dHRvbiBzdHlsZXMuXG4gICYuYnRuLWxpbmsge1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3cobm9uZSk7XG4gIH1cbn1cblxuXG4vL1xuLy8gVmVydGljYWwgYnV0dG9uIGdyb3Vwc1xuLy9cblxuLmJ0bi1ncm91cC12ZXJ0aWNhbCB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAuYnRuLFxuICAuYnRuLWdyb3VwIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gID4gLmJ0biArIC5idG4sXG4gID4gLmJ0biArIC5idG4tZ3JvdXAsXG4gID4gLmJ0bi1ncm91cCArIC5idG4sXG4gID4gLmJ0bi1ncm91cCArIC5idG4tZ3JvdXAge1xuICAgIG1hcmdpbi10b3A6IC0kYnRuLWJvcmRlci13aWR0aDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gIC8vIFJlc2V0IHJvdW5kZWQgY29ybmVyc1xuICA+IC5idG46bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSksXG4gID4gLmJ0bi1ncm91cDpub3QoOmxhc3QtY2hpbGQpID4gLmJ0biB7XG4gICAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1yYWRpdXMoMCk7XG4gIH1cblxuICA+IC5idG46bm90KDpmaXJzdC1jaGlsZCksXG4gID4gLmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG4ge1xuICAgIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKDApO1xuICB9XG59XG5cblxuLy8gQ2hlY2tib3ggYW5kIHJhZGlvIG9wdGlvbnNcbi8vXG4vLyBJbiBvcmRlciB0byBzdXBwb3J0IHRoZSBicm93c2VyJ3MgZm9ybSB2YWxpZGF0aW9uIGZlZWRiYWNrLCBwb3dlcmVkIGJ5IHRoZVxuLy8gYHJlcXVpcmVkYCBhdHRyaWJ1dGUsIHdlIGhhdmUgdG8gXCJoaWRlXCIgdGhlIGlucHV0cyB2aWEgYGNsaXBgLiBXZSBjYW5ub3QgdXNlXG4vLyBgZGlzcGxheTogbm9uZTtgIG9yIGB2aXNpYmlsaXR5OiBoaWRkZW47YCBhcyB0aGF0IGFsc28gaGlkZXMgdGhlIHBvcG92ZXIuXG4vLyBTaW1wbHkgdmlzdWFsbHkgaGlkaW5nIHRoZSBpbnB1dHMgdmlhIGBvcGFjaXR5YCB3b3VsZCBsZWF2ZSB0aGVtIGNsaWNrYWJsZSBpblxuLy8gY2VydGFpbiBjYXNlcyB3aGljaCBpcyBwcmV2ZW50ZWQgYnkgdXNpbmcgYGNsaXBgIGFuZCBgcG9pbnRlci1ldmVudHNgLlxuLy8gVGhpcyB3YXksIHdlIGVuc3VyZSBhIERPTSBlbGVtZW50IGlzIHZpc2libGUgdG8gcG9zaXRpb24gdGhlIHBvcG92ZXIgZnJvbS5cbi8vXG4vLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL3B1bGwvMTI3OTQgYW5kXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvcHVsbC8xNDU1OSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cblxuLmJ0bi1ncm91cC10b2dnbGUge1xuICA+IC5idG4sXG4gID4gLmJ0bi1ncm91cCA+IC5idG4ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IC8vIE92ZXJyaWRlIGRlZmF1bHQgYDxsYWJlbD5gIHZhbHVlXG5cbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZVxuXG4vL1xuLy8gQmFzZSBzdHlsZXNcbi8vXG5cbi5pbnB1dC1ncm91cCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwOyAvLyBGb3IgZm9ybSB2YWxpZGF0aW9uIGZlZWRiYWNrXG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICB3aWR0aDogMTAwJTtcblxuICA+IC5mb3JtLWNvbnRyb2wsXG4gID4gLmN1c3RvbS1zZWxlY3QsXG4gID4gLmN1c3RvbS1maWxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIEZvciBmb2N1cyBzdGF0ZSdzIHotaW5kZXhcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAvLyBBZGQgd2lkdGggMSUgYW5kIGZsZXgtYmFzaXMgYXV0byB0byBlbnN1cmUgdGhhdCBidXR0b24gd2lsbCBub3Qgd3JhcCBvdXRcbiAgICAvLyB0aGUgY29sdW1uLiBBcHBsaWVzIHRvIElFIEVkZ2UrIGFuZCBGaXJlZm94LiBDaHJvbWUgZG9lcyBub3QgcmVxdWlyZSB0aGlzLlxuICAgIHdpZHRoOiAxJTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgLy8gQnJpbmcgdGhlIFwiYWN0aXZlXCIgZm9ybSBjb250cm9sIHRvIHRoZSB0b3Agb2Ygc3Vycm91bmRpbmcgZWxlbWVudHNcbiAgICAmOmZvY3VzIHtcbiAgICAgIHotaW5kZXg6IDM7XG4gICAgfVxuXG4gICAgKyAuZm9ybS1jb250cm9sLFxuICAgICsgLmN1c3RvbS1zZWxlY3QsXG4gICAgKyAuY3VzdG9tLWZpbGUge1xuICAgICAgbWFyZ2luLWxlZnQ6IC0kaW5wdXQtYm9yZGVyLXdpZHRoO1xuICAgIH1cbiAgfVxuXG4gID4gLmZvcm0tY29udHJvbCxcbiAgPiAuY3VzdG9tLXNlbGVjdCB7XG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHsgQGluY2x1ZGUgYm9yZGVyLXJpZ2h0LXJhZGl1cygwKTsgfVxuICAgICY6bm90KDpmaXJzdC1jaGlsZCkgeyBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoMCk7IH1cbiAgfVxuXG4gIC8vIEN1c3RvbSBmaWxlIGlucHV0cyBoYXZlIG1vcmUgY29tcGxleCBtYXJrdXAsIHRodXMgcmVxdWlyaW5nIGRpZmZlcmVudFxuICAvLyBib3JkZXItcmFkaXVzIG92ZXJyaWRlcy5cbiAgPiAuY3VzdG9tLWZpbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICY6bm90KDpsYXN0LWNoaWxkKSAuY3VzdG9tLWZpbGUtbGFiZWwsXG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIC5jdXN0b20tZmlsZS1sYWJlbDo6YWZ0ZXIgeyBAaW5jbHVkZSBib3JkZXItcmlnaHQtcmFkaXVzKDApOyB9XG4gICAgJjpub3QoOmZpcnN0LWNoaWxkKSAuY3VzdG9tLWZpbGUtbGFiZWwgeyBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoMCk7IH1cbiAgfVxufVxuXG5cbi8vIFByZXBlbmQgYW5kIGFwcGVuZFxuLy9cbi8vIFdoaWxlIGl0IHJlcXVpcmVzIG9uZSBleHRyYSBsYXllciBvZiBIVE1MIGZvciBlYWNoLCBkZWRpY2F0ZWQgcHJlcGVuZCBhbmRcbi8vIGFwcGVuZCBlbGVtZW50cyBhbGxvdyB1cyB0byAxKSBiZSBsZXNzIGNsZXZlciwgMikgc2ltcGxpZnkgb3VyIHNlbGVjdG9ycywgYW5kXG4vLyAzKSBzdXBwb3J0IEhUTUw1IGZvcm0gdmFsaWRhdGlvbi5cblxuLmlucHV0LWdyb3VwLXByZXBlbmQsXG4uaW5wdXQtZ3JvdXAtYXBwZW5kIHtcbiAgZGlzcGxheTogZmxleDtcblxuICAvLyBFbnN1cmUgYnV0dG9ucyBhcmUgYWx3YXlzIGFib3ZlIGlucHV0cyBmb3IgbW9yZSB2aXN1YWxseSBwbGVhc2luZyBib3JkZXJzLlxuICAvLyBUaGlzIGlzbid0IG5lZWRlZCBmb3IgYC5pbnB1dC1ncm91cC10ZXh0YCBzaW5jZSBpdCBzaGFyZXMgdGhlIHNhbWUgYm9yZGVyLWNvbG9yXG4gIC8vIGFzIG91ciBpbnB1dHMuXG4gIC5idG4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICB9XG5cbiAgLmJ0biArIC5idG4sXG4gIC5idG4gKyAuaW5wdXQtZ3JvdXAtdGV4dCxcbiAgLmlucHV0LWdyb3VwLXRleHQgKyAuaW5wdXQtZ3JvdXAtdGV4dCxcbiAgLmlucHV0LWdyb3VwLXRleHQgKyAuYnRuIHtcbiAgICBtYXJnaW4tbGVmdDogLSRpbnB1dC1ib3JkZXItd2lkdGg7XG4gIH1cbn1cblxuLmlucHV0LWdyb3VwLXByZXBlbmQgeyBtYXJnaW4tcmlnaHQ6IC0kaW5wdXQtYm9yZGVyLXdpZHRoOyB9XG4uaW5wdXQtZ3JvdXAtYXBwZW5kIHsgbWFyZ2luLWxlZnQ6IC0kaW5wdXQtYm9yZGVyLXdpZHRoOyB9XG5cblxuLy8gVGV4dHVhbCBhZGRvbnNcbi8vXG4vLyBTZXJ2ZXMgYXMgYSBjYXRjaC1hbGwgZWxlbWVudCBmb3IgYW55IHRleHQgb3IgcmFkaW8vY2hlY2tib3ggaW5wdXQgeW91IHdpc2hcbi8vIHRvIHByZXBlbmQgb3IgYXBwZW5kIHRvIGFuIGlucHV0LlxuXG4uaW5wdXQtZ3JvdXAtdGV4dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nLXkgJGlucHV0LXBhZGRpbmcteDtcbiAgbWFyZ2luLWJvdHRvbTogMDsgLy8gQWxsb3cgdXNlIG9mIDxsYWJlbD4gZWxlbWVudHMgYnkgb3ZlcnJpZGluZyBvdXIgZGVmYXVsdCBtYXJnaW4tYm90dG9tXG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlOyAvLyBNYXRjaCBpbnB1dHNcbiAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtZ3JvdXAtYWRkb24tY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWdyb3VwLWFkZG9uLWJnO1xuICBib3JkZXI6ICRpbnB1dC1ib3JkZXItd2lkdGggc29saWQgJGlucHV0LWdyb3VwLWFkZG9uLWJvcmRlci1jb2xvcjtcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkaW5wdXQtYm9yZGVyLXJhZGl1cyk7XG5cbiAgLy8gTnVrZSBkZWZhdWx0IG1hcmdpbnMgZnJvbSBjaGVja2JveGVzIGFuZCByYWRpb3MgdG8gdmVydGljYWxseSBjZW50ZXIgd2l0aGluLlxuICBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4gIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuXG5cbi8vIFNpemluZ1xuLy9cbi8vIFJlbWl4IHRoZSBkZWZhdWx0IGZvcm0gY29udHJvbCBzaXppbmcgY2xhc3NlcyBpbnRvIG5ldyBvbmVzIGZvciBlYXNpZXJcbi8vIG1hbmlwdWxhdGlvbi5cblxuLmlucHV0LWdyb3VwLWxnID4gLmZvcm0tY29udHJvbCxcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1wcmVwZW5kID4gLmlucHV0LWdyb3VwLXRleHQsXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYXBwZW5kID4gLmlucHV0LWdyb3VwLXRleHQsXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtcHJlcGVuZCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYXBwZW5kID4gLmJ0biB7XG4gIEBleHRlbmQgLmZvcm0tY29udHJvbC1sZztcbn1cblxuLmlucHV0LWdyb3VwLXNtID4gLmZvcm0tY29udHJvbCxcbi5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1wcmVwZW5kID4gLmlucHV0LWdyb3VwLXRleHQsXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYXBwZW5kID4gLmlucHV0LWdyb3VwLXRleHQsXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtcHJlcGVuZCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYXBwZW5kID4gLmJ0biB7XG4gIEBleHRlbmQgLmZvcm0tY29udHJvbC1zbTtcbn1cblxuXG4vLyBQcmVwZW5kIGFuZCBhcHBlbmQgcm91bmRlZCBjb3JuZXJzXG4vL1xuLy8gVGhlc2UgcnVsZXNldHMgbXVzdCBjb21lIGFmdGVyIHRoZSBzaXppbmcgb25lcyB0byBwcm9wZXJseSBvdmVycmlkZSBzbSBhbmQgbGdcbi8vIGJvcmRlci1yYWRpdXMgdmFsdWVzIHdoZW4gZXh0ZW5kaW5nLiBUaGV5J3JlIG1vcmUgc3BlY2lmaWMgdGhhbiB3ZSdkIGxpa2Vcbi8vIHdpdGggdGhlIGAuaW5wdXQtZ3JvdXAgPmAgcGFydCwgYnV0IHdpdGhvdXQgaXQsIHdlIGNhbm5vdCBvdmVycmlkZSB0aGUgc2l6aW5nLlxuXG5cbi5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1wcmVwZW5kID4gLmJ0bixcbi5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1wcmVwZW5kID4gLmlucHV0LWdyb3VwLXRleHQsXG4uaW5wdXQtZ3JvdXAgPiAuaW5wdXQtZ3JvdXAtYXBwZW5kOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuLFxuLmlucHV0LWdyb3VwID4gLmlucHV0LWdyb3VwLWFwcGVuZDpub3QoOmxhc3QtY2hpbGQpID4gLmlucHV0LWdyb3VwLXRleHQsXG4uaW5wdXQtZ3JvdXAgPiAuaW5wdXQtZ3JvdXAtYXBwZW5kOmxhc3QtY2hpbGQgPiAuYnRuOm5vdCg6bGFzdC1jaGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpLFxuLmlucHV0LWdyb3VwID4gLmlucHV0LWdyb3VwLWFwcGVuZDpsYXN0LWNoaWxkID4gLmlucHV0LWdyb3VwLXRleHQ6bm90KDpsYXN0LWNoaWxkKSB7XG4gIEBpbmNsdWRlIGJvcmRlci1yaWdodC1yYWRpdXMoMCk7XG59XG5cbi5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1hcHBlbmQgPiAuYnRuLFxuLmlucHV0LWdyb3VwID4gLmlucHV0LWdyb3VwLWFwcGVuZCA+IC5pbnB1dC1ncm91cC10ZXh0LFxuLmlucHV0LWdyb3VwID4gLmlucHV0LWdyb3VwLXByZXBlbmQ6bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuLFxuLmlucHV0LWdyb3VwID4gLmlucHV0LWdyb3VwLXByZXBlbmQ6bm90KDpmaXJzdC1jaGlsZCkgPiAuaW5wdXQtZ3JvdXAtdGV4dCxcbi5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1wcmVwZW5kOmZpcnN0LWNoaWxkID4gLmJ0bjpub3QoOmZpcnN0LWNoaWxkKSxcbi5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1wcmVwZW5kOmZpcnN0LWNoaWxkID4gLmlucHV0LWdyb3VwLXRleHQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoMCk7XG59XG4iLCIvLyBFbWJlZGRlZCBpY29ucyBmcm9tIE9wZW4gSWNvbmljLlxuLy8gUmVsZWFzZWQgdW5kZXIgTUlUIGFuZCBjb3B5cmlnaHQgMjAxNCBXYXlidXJ5LlxuLy8gaHR0cHM6Ly91c2VpY29uaWMuY29tL29wZW5cblxuXG4vLyBDaGVja2JveGVzIGFuZCByYWRpb3Ncbi8vXG4vLyBCYXNlIGNsYXNzIHRha2VzIGNhcmUgb2YgYWxsIHRoZSBrZXkgYmVoYXZpb3JhbCBhc3BlY3RzLlxuXG4uY3VzdG9tLWNvbnRyb2wge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtaW4taGVpZ2h0OiAoMXJlbSAqICRsaW5lLWhlaWdodC1iYXNlKTtcbiAgcGFkZGluZy1sZWZ0OiAkY3VzdG9tLWNvbnRyb2wtZ3V0dGVyO1xufVxuXG4uY3VzdG9tLWNvbnRyb2wtaW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIG1hcmdpbi1yaWdodDogJGN1c3RvbS1jb250cm9sLXNwYWNlci14O1xufVxuXG4uY3VzdG9tLWNvbnRyb2wtaW5wdXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IC0xOyAvLyBQdXQgdGhlIGlucHV0IGJlaGluZCB0aGUgbGFiZWwgc28gaXQgZG9lc24ndCBvdmVybGF5IHRleHRcbiAgb3BhY2l0eTogMDtcblxuICAmOmNoZWNrZWQgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gICAgY29sb3I6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItY2hlY2tlZC1jb2xvcjtcbiAgICBAaW5jbHVkZSBncmFkaWVudC1iZygkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWNoZWNrZWQtYmcpO1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1jaGVja2VkLWJveC1zaGFkb3cpO1xuICB9XG5cbiAgJjpmb2N1cyB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAvLyB0aGUgbWl4aW4gaXMgbm90IHVzZWQgaGVyZSB0byBtYWtlIHN1cmUgdGhlcmUgaXMgZmVlZGJhY2tcbiAgICBib3gtc2hhZG93OiAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWZvY3VzLWJveC1zaGFkb3c7XG4gIH1cblxuICAmOmFjdGl2ZSB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICBjb2xvcjogJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1hY3RpdmUtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1hY3RpdmUtYmc7XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdygkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWFjdGl2ZS1ib3gtc2hhZG93KTtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAkY3VzdG9tLWNvbnRyb2wtbGFiZWwtZGlzYWJsZWQtY29sb3I7XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItZGlzYWJsZWQtYmc7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIEN1c3RvbSBjb250cm9sIGluZGljYXRvcnNcbi8vXG4vLyBCdWlsZCB0aGUgY3VzdG9tIGNvbnRyb2xzIG91dCBvZiBwc2V1ZG8tZWxlbWVudHMuXG5cbi5jdXN0b20tY29udHJvbC1sYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAvLyBCYWNrZ3JvdW5kLWNvbG9yIGFuZCAod2hlbiBlbmFibGVkKSBncmFkaWVudFxuICAmOjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6ICgoJGxpbmUtaGVpZ2h0LWJhc2UgLSAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLXNpemUpIC8gMik7XG4gICAgbGVmdDogLSRjdXN0b20tY29udHJvbC1ndXR0ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3Itc2l6ZTtcbiAgICBoZWlnaHQ6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3Itc2l6ZTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYmc7XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdygkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWJveC1zaGFkb3cpO1xuICB9XG5cbiAgLy8gRm9yZWdyb3VuZCAoaWNvbilcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6ICgoJGxpbmUtaGVpZ2h0LWJhc2UgLSAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLXNpemUpIC8gMik7XG4gICAgbGVmdDogLSRjdXN0b20tY29udHJvbC1ndXR0ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3Itc2l6ZTtcbiAgICBoZWlnaHQ6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3Itc2l6ZTtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYmctc2l6ZTtcbiAgfVxufVxuXG5cbi8vIENoZWNrYm94ZXNcbi8vXG4vLyBUd2VhayBqdXN0IGEgZmV3IHRoaW5ncyBmb3IgY2hlY2tib3hlcy5cblxuLmN1c3RvbS1jaGVja2JveCB7XG4gIC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRjdXN0b20tY2hlY2tib3gtaW5kaWNhdG9yLWJvcmRlci1yYWRpdXMpO1xuICB9XG5cbiAgLmN1c3RvbS1jb250cm9sLWlucHV0OmNoZWNrZWQgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWwge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBncmFkaWVudC1iZygkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWNoZWNrZWQtYmcpO1xuICAgIH1cbiAgICAmOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkY3VzdG9tLWNoZWNrYm94LWluZGljYXRvci1pY29uLWNoZWNrZWQ7XG4gICAgfVxuICB9XG5cbiAgLmN1c3RvbS1jb250cm9sLWlucHV0OmluZGV0ZXJtaW5hdGUgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWwge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBncmFkaWVudC1iZygkY3VzdG9tLWNoZWNrYm94LWluZGljYXRvci1pbmRldGVybWluYXRlLWJnKTtcbiAgICAgIEBpbmNsdWRlIGJveC1zaGFkb3coJGN1c3RvbS1jaGVja2JveC1pbmRpY2F0b3ItaW5kZXRlcm1pbmF0ZS1ib3gtc2hhZG93KTtcbiAgICB9XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogJGN1c3RvbS1jaGVja2JveC1pbmRpY2F0b3ItaWNvbi1pbmRldGVybWluYXRlO1xuICAgIH1cbiAgfVxuXG4gIC5jdXN0b20tY29udHJvbC1pbnB1dDpkaXNhYmxlZCB7XG4gICAgJjpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1jaGVja2VkLWRpc2FibGVkLWJnO1xuICAgIH1cbiAgICAmOmluZGV0ZXJtaW5hdGUgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWNoZWNrZWQtZGlzYWJsZWQtYmc7XG4gICAgfVxuICB9XG59XG5cbi8vIFJhZGlvc1xuLy9cbi8vIFR3ZWFrIGp1c3QgYSBmZXcgdGhpbmdzIGZvciByYWRpb3MuXG5cbi5jdXN0b20tcmFkaW8ge1xuICAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gICAgYm9yZGVyLXJhZGl1czogJGN1c3RvbS1yYWRpby1pbmRpY2F0b3ItYm9yZGVyLXJhZGl1cztcbiAgfVxuXG4gIC5jdXN0b20tY29udHJvbC1pbnB1dDpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgZ3JhZGllbnQtYmcoJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1jaGVja2VkLWJnKTtcbiAgICB9XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogJGN1c3RvbS1yYWRpby1pbmRpY2F0b3ItaWNvbi1jaGVja2VkO1xuICAgIH1cbiAgfVxuXG4gIC5jdXN0b20tY29udHJvbC1pbnB1dDpkaXNhYmxlZCB7XG4gICAgJjpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1jaGVja2VkLWRpc2FibGVkLWJnO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIFNlbGVjdFxuLy9cbi8vIFJlcGxhY2VzIHRoZSBicm93c2VyIGRlZmF1bHQgc2VsZWN0IHdpdGggYSBjdXN0b20gb25lLCBtb3N0bHkgcHVsbGVkIGZyb21cbi8vIGh0dHBzOi8vcHJpbWVyLmdpdGh1Yi5pby8uXG4vL1xuXG4uY3VzdG9tLXNlbGVjdCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJGN1c3RvbS1zZWxlY3QtaGVpZ2h0O1xuICBwYWRkaW5nOiAkY3VzdG9tLXNlbGVjdC1wYWRkaW5nLXkgKCRjdXN0b20tc2VsZWN0LXBhZGRpbmcteCArICRjdXN0b20tc2VsZWN0LWluZGljYXRvci1wYWRkaW5nKSAkY3VzdG9tLXNlbGVjdC1wYWRkaW5nLXkgJGN1c3RvbS1zZWxlY3QtcGFkZGluZy14O1xuICBsaW5lLWhlaWdodDogJGN1c3RvbS1zZWxlY3QtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkY3VzdG9tLXNlbGVjdC1jb2xvcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYmFja2dyb3VuZDogJGN1c3RvbS1zZWxlY3QtYmcgJGN1c3RvbS1zZWxlY3QtaW5kaWNhdG9yIG5vLXJlcGVhdCByaWdodCAkY3VzdG9tLXNlbGVjdC1wYWRkaW5nLXggY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6ICRjdXN0b20tc2VsZWN0LWJnLXNpemU7XG4gIGJvcmRlcjogJGN1c3RvbS1zZWxlY3QtYm9yZGVyLXdpZHRoIHNvbGlkICRjdXN0b20tc2VsZWN0LWJvcmRlci1jb2xvcjtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXJhZGl1czogJGN1c3RvbS1zZWxlY3QtYm9yZGVyLXJhZGl1cztcbiAgfSBAZWxzZSB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxuICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogJGN1c3RvbS1zZWxlY3QtZm9jdXMtYm9yZGVyLWNvbG9yO1xuICAgIG91dGxpbmU6IDA7XG4gICAgYm94LXNoYWRvdzogJGN1c3RvbS1zZWxlY3QtZm9jdXMtYm94LXNoYWRvdztcblxuICAgICY6Oi1tcy12YWx1ZSB7XG4gICAgICAvLyBGb3IgdmlzdWFsIGNvbnNpc3RlbmN5IHdpdGggb3RoZXIgcGxhdGZvcm1zL2Jyb3dzZXJzLFxuICAgICAgLy8gc3VwcHJlc3MgdGhlIGRlZmF1bHQgd2hpdGUgdGV4dCBvbiBibHVlIGJhY2tncm91bmQgaGlnaGxpZ2h0IGdpdmVuIHRvXG4gICAgICAvLyB0aGUgc2VsZWN0ZWQgb3B0aW9uIHRleHQgd2hlbiB0aGUgKHN0aWxsIGNsb3NlZCkgPHNlbGVjdD4gcmVjZWl2ZXMgZm9jdXNcbiAgICAgIC8vIGluIElFIGFuZCAodW5kZXIgY2VydGFpbiBjb25kaXRpb25zKSBFZGdlLlxuICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTkzOTguXG4gICAgICBjb2xvcjogJGlucHV0LWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJnO1xuICAgIH1cbiAgfVxuXG4gICZbbXVsdGlwbGVdLFxuICAmW3NpemVdOm5vdChbc2l6ZT1cIjFcIl0pIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZy1yaWdodDogJGN1c3RvbS1zZWxlY3QtcGFkZGluZy14O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBjb2xvcjogJGN1c3RvbS1zZWxlY3QtZGlzYWJsZWQtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGN1c3RvbS1zZWxlY3QtZGlzYWJsZWQtYmc7XG4gIH1cblxuICAvLyBIaWRlcyB0aGUgZGVmYXVsdCBjYXJldCBpbiBJRTExXG4gICY6Oi1tcy1leHBhbmQge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLmN1c3RvbS1zZWxlY3Qtc20ge1xuICBoZWlnaHQ6ICRjdXN0b20tc2VsZWN0LWhlaWdodC1zbTtcbiAgcGFkZGluZy10b3A6ICRjdXN0b20tc2VsZWN0LXBhZGRpbmcteTtcbiAgcGFkZGluZy1ib3R0b206ICRjdXN0b20tc2VsZWN0LXBhZGRpbmcteTtcbiAgZm9udC1zaXplOiAkY3VzdG9tLXNlbGVjdC1mb250LXNpemUtc207XG59XG5cbi5jdXN0b20tc2VsZWN0LWxnIHtcbiAgaGVpZ2h0OiAkY3VzdG9tLXNlbGVjdC1oZWlnaHQtbGc7XG4gIHBhZGRpbmctdG9wOiAkY3VzdG9tLXNlbGVjdC1wYWRkaW5nLXk7XG4gIHBhZGRpbmctYm90dG9tOiAkY3VzdG9tLXNlbGVjdC1wYWRkaW5nLXk7XG4gIGZvbnQtc2l6ZTogJGN1c3RvbS1zZWxlY3QtZm9udC1zaXplLWxnO1xufVxuXG5cbi8vIEZpbGVcbi8vXG4vLyBDdXN0b20gZmlsZSBpbnB1dC5cblxuLmN1c3RvbS1maWxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRjdXN0b20tZmlsZS1oZWlnaHQ7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5jdXN0b20tZmlsZS1pbnB1dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJGN1c3RvbS1maWxlLWhlaWdodDtcbiAgbWFyZ2luOiAwO1xuICBvcGFjaXR5OiAwO1xuXG4gICY6Zm9jdXMgfiAuY3VzdG9tLWZpbGUtbGFiZWwge1xuICAgIGJvcmRlci1jb2xvcjogJGN1c3RvbS1maWxlLWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgICBib3gtc2hhZG93OiAkY3VzdG9tLWZpbGUtZm9jdXMtYm94LXNoYWRvdztcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGN1c3RvbS1maWxlLWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgICB9XG4gIH1cblxuICBAZWFjaCAkbGFuZywgJHZhbHVlIGluICRjdXN0b20tZmlsZS10ZXh0IHtcbiAgICAmOmxhbmcoI3skbGFuZ30pIH4gLmN1c3RvbS1maWxlLWxhYmVsOjphZnRlciB7XG4gICAgICBjb250ZW50OiAkdmFsdWU7XG4gICAgfVxuICB9XG59XG5cbi5jdXN0b20tZmlsZS1sYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTtcbiAgaGVpZ2h0OiAkY3VzdG9tLWZpbGUtaGVpZ2h0O1xuICBwYWRkaW5nOiAkY3VzdG9tLWZpbGUtcGFkZGluZy15ICRjdXN0b20tZmlsZS1wYWRkaW5nLXg7XG4gIGxpbmUtaGVpZ2h0OiAkY3VzdG9tLWZpbGUtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkY3VzdG9tLWZpbGUtY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20tZmlsZS1iZztcbiAgYm9yZGVyOiAkY3VzdG9tLWZpbGUtYm9yZGVyLXdpZHRoIHNvbGlkICRjdXN0b20tZmlsZS1ib3JkZXItY29sb3I7XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGN1c3RvbS1maWxlLWJvcmRlci1yYWRpdXMpO1xuICBAaW5jbHVkZSBib3gtc2hhZG93KCRjdXN0b20tZmlsZS1ib3gtc2hhZG93KTtcblxuICAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgei1pbmRleDogMztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6ICRjdXN0b20tZmlsZS1oZWlnaHQtaW5uZXI7XG4gICAgcGFkZGluZzogJGN1c3RvbS1maWxlLXBhZGRpbmcteSAkY3VzdG9tLWZpbGUtcGFkZGluZy14O1xuICAgIGxpbmUtaGVpZ2h0OiAkY3VzdG9tLWZpbGUtbGluZS1oZWlnaHQ7XG4gICAgY29sb3I6ICRjdXN0b20tZmlsZS1idXR0b24tY29sb3I7XG4gICAgY29udGVudDogXCJCcm93c2VcIjtcbiAgICBAaW5jbHVkZSBncmFkaWVudC1iZygkY3VzdG9tLWZpbGUtYnV0dG9uLWJnKTtcbiAgICBib3JkZXItbGVmdDogJGN1c3RvbS1maWxlLWJvcmRlci13aWR0aCBzb2xpZCAkY3VzdG9tLWZpbGUtYm9yZGVyLWNvbG9yO1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMCAkY3VzdG9tLWZpbGUtYm9yZGVyLXJhZGl1cyAkY3VzdG9tLWZpbGUtYm9yZGVyLXJhZGl1cyAwKTtcbiAgfVxufVxuXG4vLyBSYW5nZVxuLy9cbi8vIFN0eWxlIHJhbmdlIGlucHV0cyB0aGUgc2FtZSBhY3Jvc3MgYnJvd3NlcnMuIFZlbmRvci1zcGVjaWZpYyBydWxlcyBmb3IgcHNldWRvXG4vLyBlbGVtZW50cyBjYW5ub3QgYmUgbWl4ZWQuIEFzIHN1Y2gsIHRoZXJlIGFyZSBubyBzaGFyZWQgc3R5bGVzIGZvciBmb2N1cyBvclxuLy8gYWN0aXZlIHN0YXRlcyBvbiBwcmVmaXhlZCBzZWxlY3RvcnMuXG5cbi5jdXN0b20tcmFuZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1sZWZ0OiAwOyAvLyBGaXJlZm94IHNwZWNpZmljXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cblxuICAmOjotbW96LWZvY3VzLW91dGVyIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cblxuICAmOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gICAgd2lkdGg6ICRjdXN0b20tcmFuZ2UtdGh1bWItd2lkdGg7XG4gICAgaGVpZ2h0OiAkY3VzdG9tLXJhbmdlLXRodW1iLWhlaWdodDtcbiAgICBtYXJnaW4tdG9wOiAtKCRjdXN0b20tcmFuZ2UtdGh1bWItd2lkdGggKiAuMjUpOyAvLyBXZWJraXQgc3BlY2lmaWM/XG4gICAgQGluY2x1ZGUgZ3JhZGllbnQtYmcoJGN1c3RvbS1yYW5nZS10aHVtYi1iZyk7XG4gICAgYm9yZGVyOiAkY3VzdG9tLXJhbmdlLXRodW1iLWJvcmRlcjtcbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRjdXN0b20tcmFuZ2UtdGh1bWItYm9yZGVyLXJhZGl1cyk7XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdygkY3VzdG9tLXJhbmdlLXRodW1iLWJveC1zaGFkb3cpO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiAkY3VzdG9tLXJhbmdlLXRodW1iLWZvY3VzLWJveC1zaGFkb3c7IC8vIE5vIG1peGluIGZvciBmb2N1cyBhY2Nlc3NpYmlsaXR5XG4gICAgfVxuXG4gICAgJjphY3RpdmUge1xuICAgICAgQGluY2x1ZGUgZ3JhZGllbnQtYmcoJGN1c3RvbS1yYW5nZS10aHVtYi1hY3RpdmUtYmcpO1xuICAgIH1cbiAgfVxuXG4gICY6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgICB3aWR0aDogJGN1c3RvbS1yYW5nZS10cmFjay13aWR0aDtcbiAgICBoZWlnaHQ6ICRjdXN0b20tcmFuZ2UtdHJhY2staGVpZ2h0O1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDsgLy8gV2h5P1xuICAgIGN1cnNvcjogJGN1c3RvbS1yYW5nZS10cmFjay1jdXJzb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGN1c3RvbS1yYW5nZS10cmFjay1iZztcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGN1c3RvbS1yYW5nZS10cmFjay1ib3JkZXItcmFkaXVzKTtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KCRjdXN0b20tcmFuZ2UtdHJhY2stYm94LXNoYWRvdyk7XG4gIH1cblxuICAmOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICB3aWR0aDogJGN1c3RvbS1yYW5nZS10aHVtYi13aWR0aDtcbiAgICBoZWlnaHQ6ICRjdXN0b20tcmFuZ2UtdGh1bWItaGVpZ2h0O1xuICAgIEBpbmNsdWRlIGdyYWRpZW50LWJnKCRjdXN0b20tcmFuZ2UtdGh1bWItYmcpO1xuICAgIGJvcmRlcjogJGN1c3RvbS1yYW5nZS10aHVtYi1ib3JkZXI7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkY3VzdG9tLXJhbmdlLXRodW1iLWJvcmRlci1yYWRpdXMpO1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coJGN1c3RvbS1yYW5nZS10aHVtYi1ib3gtc2hhZG93KTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogJGN1c3RvbS1yYW5nZS10aHVtYi1mb2N1cy1ib3gtc2hhZG93OyAvLyBObyBtaXhpbiBmb3IgZm9jdXMgYWNjZXNzaWJpbGl0eVxuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgIEBpbmNsdWRlIGdyYWRpZW50LWJnKCRjdXN0b20tcmFuZ2UtdGh1bWItYWN0aXZlLWJnKTtcbiAgICB9XG4gIH1cblxuICAmOjotbW96LXJhbmdlLXRyYWNrIHtcbiAgICB3aWR0aDogJGN1c3RvbS1yYW5nZS10cmFjay13aWR0aDtcbiAgICBoZWlnaHQ6ICRjdXN0b20tcmFuZ2UtdHJhY2staGVpZ2h0O1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjdXJzb3I6ICRjdXN0b20tcmFuZ2UtdHJhY2stY3Vyc29yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20tcmFuZ2UtdHJhY2stYmc7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgLy8gRmlyZWZveCBzcGVjaWZpYz9cbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRjdXN0b20tcmFuZ2UtdHJhY2stYm9yZGVyLXJhZGl1cyk7XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdygkY3VzdG9tLXJhbmdlLXRyYWNrLWJveC1zaGFkb3cpO1xuICB9XG5cbiAgJjo6LW1zLXRodW1iIHtcbiAgICB3aWR0aDogJGN1c3RvbS1yYW5nZS10aHVtYi13aWR0aDtcbiAgICBoZWlnaHQ6ICRjdXN0b20tcmFuZ2UtdGh1bWItaGVpZ2h0O1xuICAgIEBpbmNsdWRlIGdyYWRpZW50LWJnKCRjdXN0b20tcmFuZ2UtdGh1bWItYmcpO1xuICAgIGJvcmRlcjogJGN1c3RvbS1yYW5nZS10aHVtYi1ib3JkZXI7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkY3VzdG9tLXJhbmdlLXRodW1iLWJvcmRlci1yYWRpdXMpO1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coJGN1c3RvbS1yYW5nZS10aHVtYi1ib3gtc2hhZG93KTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogJGN1c3RvbS1yYW5nZS10aHVtYi1mb2N1cy1ib3gtc2hhZG93OyAvLyBObyBtaXhpbiBmb3IgZm9jdXMgYWNjZXNzaWJpbGl0eVxuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgIEBpbmNsdWRlIGdyYWRpZW50LWJnKCRjdXN0b20tcmFuZ2UtdGh1bWItYWN0aXZlLWJnKTtcbiAgICB9XG4gIH1cblxuICAmOjotbXMtdHJhY2sge1xuICAgIHdpZHRoOiAkY3VzdG9tLXJhbmdlLXRyYWNrLXdpZHRoO1xuICAgIGhlaWdodDogJGN1c3RvbS1yYW5nZS10cmFjay1oZWlnaHQ7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGN1cnNvcjogJGN1c3RvbS1yYW5nZS10cmFjay1jdXJzb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItd2lkdGg6ICgkY3VzdG9tLXJhbmdlLXRodW1iLWhlaWdodCAqIC41KTtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KCRjdXN0b20tcmFuZ2UtdHJhY2stYm94LXNoYWRvdyk7XG4gIH1cblxuICAmOjotbXMtZmlsbC1sb3dlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGN1c3RvbS1yYW5nZS10cmFjay1iZztcbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRjdXN0b20tcmFuZ2UtdHJhY2stYm9yZGVyLXJhZGl1cyk7XG4gIH1cblxuICAmOjotbXMtZmlsbC11cHBlciB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNXB4OyAvLyBhcmJpdHJhcnk/XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGN1c3RvbS1yYW5nZS10cmFjay1iZztcbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRjdXN0b20tcmFuZ2UtdHJhY2stYm9yZGVyLXJhZGl1cyk7XG4gIH1cbn1cbiIsIi8vIEJhc2UgY2xhc3Ncbi8vXG4vLyBLaWNrc3RhcnQgYW55IG5hdmlnYXRpb24gY29tcG9uZW50IHdpdGggYSBzZXQgb2Ygc3R5bGUgcmVzZXRzLiBXb3JrcyB3aXRoXG4vLyBgPG5hdj5gcyBvciBgPHVsPmBzLlxuXG4ubmF2IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5uYXYtbGluayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAkbmF2LWxpbmstcGFkZGluZy15ICRuYXYtbGluay1wYWRkaW5nLXg7XG5cbiAgQGluY2x1ZGUgaG92ZXItZm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8vIERpc2FibGVkIHN0YXRlIGxpZ2h0ZW5zIHRleHRcbiAgJi5kaXNhYmxlZCB7XG4gICAgY29sb3I6ICRuYXYtbGluay1kaXNhYmxlZC1jb2xvcjtcbiAgfVxufVxuXG4vL1xuLy8gVGFic1xuLy9cblxuLm5hdi10YWJzIHtcbiAgYm9yZGVyLWJvdHRvbTogJG5hdi10YWJzLWJvcmRlci13aWR0aCBzb2xpZCAkbmF2LXRhYnMtYm9yZGVyLWNvbG9yO1xuXG4gIC5uYXYtaXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogLSRuYXYtdGFicy1ib3JkZXItd2lkdGg7XG4gIH1cblxuICAubmF2LWxpbmsge1xuICAgIGJvcmRlcjogJG5hdi10YWJzLWJvcmRlci13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cygkbmF2LXRhYnMtYm9yZGVyLXJhZGl1cyk7XG5cbiAgICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6ICRuYXYtdGFicy1saW5rLWhvdmVyLWJvcmRlci1jb2xvcjtcbiAgICB9XG5cbiAgICAmLmRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiAkbmF2LWxpbmstZGlzYWJsZWQtY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG5cbiAgLm5hdi1saW5rLmFjdGl2ZSxcbiAgLm5hdi1pdGVtLnNob3cgLm5hdi1saW5rIHtcbiAgICBjb2xvcjogJG5hdi10YWJzLWxpbmstYWN0aXZlLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXYtdGFicy1saW5rLWFjdGl2ZS1iZztcbiAgICBib3JkZXItY29sb3I6ICRuYXYtdGFicy1saW5rLWFjdGl2ZS1ib3JkZXItY29sb3I7XG4gIH1cblxuICAuZHJvcGRvd24tbWVudSB7XG4gICAgLy8gTWFrZSBkcm9wZG93biBib3JkZXIgb3ZlcmxhcCB0YWIgYm9yZGVyXG4gICAgbWFyZ2luLXRvcDogLSRuYXYtdGFicy1ib3JkZXItd2lkdGg7XG4gICAgLy8gUmVtb3ZlIHRoZSB0b3Agcm91bmRlZCBjb3JuZXJzIGhlcmUgc2luY2UgdGhlcmUgaXMgYSBoYXJkIGVkZ2UgYWJvdmUgdGhlIG1lbnVcbiAgICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cygwKTtcbiAgfVxufVxuXG5cbi8vXG4vLyBQaWxsc1xuLy9cblxuLm5hdi1waWxscyB7XG4gIC5uYXYtbGluayB7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkbmF2LXBpbGxzLWJvcmRlci1yYWRpdXMpO1xuICB9XG5cbiAgLm5hdi1saW5rLmFjdGl2ZSxcbiAgLnNob3cgPiAubmF2LWxpbmsge1xuICAgIGNvbG9yOiAkbmF2LXBpbGxzLWxpbmstYWN0aXZlLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXYtcGlsbHMtbGluay1hY3RpdmUtYmc7XG4gIH1cbn1cblxuXG4vL1xuLy8gSnVzdGlmaWVkIHZhcmlhbnRzXG4vL1xuXG4ubmF2LWZpbGwge1xuICAubmF2LWl0ZW0ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuXG4ubmF2LWp1c3RpZmllZCB7XG4gIC5uYXYtaXRlbSB7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5cblxuLy8gVGFiYmFibGUgdGFic1xuLy9cbi8vIEhpZGUgdGFiYmFibGUgcGFuZXMgdG8gc3RhcnQsIHNob3cgdGhlbSB3aGVuIGAuYWN0aXZlYFxuXG4udGFiLWNvbnRlbnQge1xuICA+IC50YWItcGFuZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICA+IC5hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4iLCIvLyBDb250ZW50c1xuLy9cbi8vIE5hdmJhclxuLy8gTmF2YmFyIGJyYW5kXG4vLyBOYXZiYXIgbmF2XG4vLyBOYXZiYXIgdGV4dFxuLy8gTmF2YmFyIGRpdmlkZXJcbi8vIFJlc3BvbnNpdmUgbmF2YmFyXG4vLyBOYXZiYXIgcG9zaXRpb25cbi8vIE5hdmJhciB0aGVtZXNcblxuXG4vLyBOYXZiYXJcbi8vXG4vLyBQcm92aWRlIGEgc3RhdGljIG5hdmJhciBmcm9tIHdoaWNoIHdlIGV4cGFuZCB0byBjcmVhdGUgZnVsbC13aWR0aCwgZml4ZWQsIGFuZFxuLy8gb3RoZXIgbmF2YmFyIHZhcmlhdGlvbnMuXG5cbi5uYXZiYXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDsgLy8gYWxsb3cgdXMgdG8gZG8gdGhlIGxpbmUgYnJlYWsgZm9yIGNvbGxhcHNpbmcgY29udGVudFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IC8vIHNwYWNlIG91dCBicmFuZCBmcm9tIGxvZ29cbiAgcGFkZGluZzogJG5hdmJhci1wYWRkaW5nLXkgJG5hdmJhci1wYWRkaW5nLXg7XG5cbiAgLy8gQmVjYXVzZSBmbGV4IHByb3BlcnRpZXMgYXJlbid0IGluaGVyaXRlZCwgd2UgbmVlZCB0byByZWRlY2xhcmUgdGhlc2UgZmlyc3RcbiAgLy8gZmV3IHByb3Blcml0aWVzIHNvIHRoYXQgY29udGVudCBuZXN0ZWQgd2l0aGluIGJlaGF2ZSBwcm9wZXJseS5cbiAgPiAuY29udGFpbmVyLFxuICA+IC5jb250YWluZXItZmx1aWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB9XG59XG5cblxuLy8gTmF2YmFyIGJyYW5kXG4vL1xuLy8gVXNlZCBmb3IgYnJhbmQsIHByb2plY3QsIG9yIHNpdGUgbmFtZXMuXG5cbi5uYXZiYXItYnJhbmQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctdG9wOiAkbmF2YmFyLWJyYW5kLXBhZGRpbmcteTtcbiAgcGFkZGluZy1ib3R0b206ICRuYXZiYXItYnJhbmQtcGFkZGluZy15O1xuICBtYXJnaW4tcmlnaHQ6ICRuYXZiYXItcGFkZGluZy14O1xuICBmb250LXNpemU6ICRuYXZiYXItYnJhbmQtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG5cblxuLy8gTmF2YmFyIG5hdlxuLy9cbi8vIEN1c3RvbSBuYXZiYXIgbmF2aWdhdGlvbiAoZG9lc24ndCByZXF1aXJlIGAubmF2YCwgYnV0IGRvZXMgbWFrZSB1c2Ugb2YgYC5uYXYtbGlua2ApLlxuXG4ubmF2YmFyLW5hdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IC8vIGNhbm5vdCB1c2UgYGluaGVyaXRgIHRvIGdldCB0aGUgYC5uYXZiYXJgcyB2YWx1ZVxuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgLm5hdi1saW5rIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuXG4gIC5kcm9wZG93bi1tZW51IHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGZsb2F0OiBub25lO1xuICB9XG59XG5cblxuLy8gTmF2YmFyIHRleHRcbi8vXG4vL1xuXG4ubmF2YmFyLXRleHQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctdG9wOiAkbmF2LWxpbmstcGFkZGluZy15O1xuICBwYWRkaW5nLWJvdHRvbTogJG5hdi1saW5rLXBhZGRpbmcteTtcbn1cblxuXG4vLyBSZXNwb25zaXZlIG5hdmJhclxuLy9cbi8vIEN1c3RvbSBzdHlsZXMgZm9yIHJlc3BvbnNpdmUgY29sbGFwc2luZyBhbmQgdG9nZ2xpbmcgb2YgbmF2YmFyIGNvbnRlbnRzLlxuLy8gUG93ZXJlZCBieSB0aGUgY29sbGFwc2UgQm9vdHN0cmFwIEphdmFTY3JpcHQgcGx1Z2luLlxuXG4vLyBXaGVuIGNvbGxhcHNlZCwgcHJldmVudCB0aGUgdG9nZ2xlYWJsZSBuYXZiYXIgY29udGVudHMgZnJvbSBhcHBlYXJpbmcgaW5cbi8vIHRoZSBkZWZhdWx0IGZsZXhib3ggcm93IG9yaWVuYXRpb24uIFJlcXVpcmVzIHRoZSB1c2Ugb2YgYGZsZXgtd3JhcDogd3JhcGBcbi8vIG9uIHRoZSBgLm5hdmJhcmAgcGFyZW50LlxuLm5hdmJhci1jb2xsYXBzZSB7XG4gIGZsZXgtYmFzaXM6IDEwMCU7XG4gIGZsZXgtZ3JvdzogMTtcbiAgLy8gRm9yIGFsd2F5cyBleHBhbmRlZCBvciBleHRyYSBmdWxsIG5hdmJhcnMsIGVuc3VyZSBjb250ZW50IGFsaWducyBpdHNlbGZcbiAgLy8gcHJvcGVybHkgdmVydGljYWxseS4gQ2FuIGJlIGVhc2lseSBvdmVycmlkZGVuIHdpdGggZmxleCB1dGlsaXRpZXMuXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi8vIEJ1dHRvbiBmb3IgdG9nZ2xpbmcgdGhlIG5hdmJhciB3aGVuIGluIGl0cyBjb2xsYXBzZWQgc3RhdGVcbi5uYXZiYXItdG9nZ2xlciB7XG4gIHBhZGRpbmc6ICRuYXZiYXItdG9nZ2xlci1wYWRkaW5nLXkgJG5hdmJhci10b2dnbGVyLXBhZGRpbmcteDtcbiAgZm9udC1zaXplOiAkbmF2YmFyLXRvZ2dsZXItZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8vIHJlbW92ZSBkZWZhdWx0IGJ1dHRvbiBzdHlsZVxuICBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7IC8vIHJlbW92ZSBkZWZhdWx0IGJ1dHRvbiBzdHlsZVxuICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRuYXZiYXItdG9nZ2xlci1ib3JkZXItcmFkaXVzKTtcblxuICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLy8gT3BpbmlvbmF0ZWQ6IGFkZCBcImhhbmRcIiBjdXJzb3IgdG8gbm9uLWRpc2FibGVkIC5uYXZiYXItdG9nZ2xlciBlbGVtZW50c1xuICAmOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cblxuLy8gS2VlcCBhcyBhIHNlcGFyYXRlIGVsZW1lbnQgc28gZm9sa3MgY2FuIGVhc2lseSBvdmVycmlkZSBpdCB3aXRoIGFub3RoZXIgaWNvblxuLy8gb3IgaW1hZ2UgZmlsZSBhcyBuZWVkZWQuXG4ubmF2YmFyLXRvZ2dsZXItaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEuNWVtO1xuICBoZWlnaHQ6IDEuNWVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBjb250ZW50OiBcIlwiO1xuICBiYWNrZ3JvdW5kOiBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XG59XG5cbi8vIEdlbmVyYXRlIHNlcmllcyBvZiBgLm5hdmJhci1leHBhbmQtKmAgcmVzcG9uc2l2ZSBjbGFzc2VzIGZvciBjb25maWd1cmluZ1xuLy8gd2hlcmUgeW91ciBuYXZiYXIgY29sbGFwc2VzLlxuLm5hdmJhci1leHBhbmQge1xuICBAZWFjaCAkYnJlYWtwb2ludCBpbiBtYXAta2V5cygkZ3JpZC1icmVha3BvaW50cykge1xuICAgICRuZXh0OiBicmVha3BvaW50LW5leHQoJGJyZWFrcG9pbnQsICRncmlkLWJyZWFrcG9pbnRzKTtcbiAgICAkaW5maXg6IGJyZWFrcG9pbnQtaW5maXgoJG5leHQsICRncmlkLWJyZWFrcG9pbnRzKTtcblxuICAgICYjeyRpbmZpeH0ge1xuICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRicmVha3BvaW50KSB7XG4gICAgICAgID4gLmNvbnRhaW5lcixcbiAgICAgICAgPiAuY29udGFpbmVyLWZsdWlkIHtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRuZXh0KSB7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXG4gICAgICAgIC5uYXZiYXItbmF2IHtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICAgLmRyb3Bkb3duLW1lbnUge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC5uYXYtbGluayB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkbmF2YmFyLW5hdi1saW5rLXBhZGRpbmcteDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJG5hdmJhci1uYXYtbGluay1wYWRkaW5nLXg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gRm9yIG5lc3RpbmcgY29udGFpbmVycywgaGF2ZSB0byByZWRlY2xhcmUgZm9yIGFsaWdubWVudCBwdXJwb3Nlc1xuICAgICAgICA+IC5jb250YWluZXIsXG4gICAgICAgID4gLmNvbnRhaW5lci1mbHVpZCB7XG4gICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAubmF2YmFyLWNvbGxhcHNlIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7ICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuXG4gICAgICAgICAgLy8gQ2hhbmdlcyBmbGV4LWJhc2VzIHRvIGF1dG8gYmVjYXVzZSBvZiBhbiBJRTEwIGJ1Z1xuICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAubmF2YmFyLXRvZ2dsZXIge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG4vLyBOYXZiYXIgdGhlbWVzXG4vL1xuLy8gU3R5bGVzIGZvciBzd2l0Y2hpbmcgYmV0d2VlbiBuYXZiYXJzIHdpdGggbGlnaHQgb3IgZGFyayBiYWNrZ3JvdW5kLlxuXG4vLyBEYXJrIGxpbmtzIGFnYWluc3QgYSBsaWdodCBiYWNrZ3JvdW5kXG4ubmF2YmFyLWxpZ2h0IHtcbiAgLm5hdmJhci1icmFuZCB7XG4gICAgY29sb3I6ICRuYXZiYXItbGlnaHQtYWN0aXZlLWNvbG9yO1xuXG4gICAgQGluY2x1ZGUgaG92ZXItZm9jdXMge1xuICAgICAgY29sb3I6ICRuYXZiYXItbGlnaHQtYWN0aXZlLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5uYXZiYXItbmF2IHtcbiAgICAubmF2LWxpbmsge1xuICAgICAgY29sb3I6ICRuYXZiYXItbGlnaHQtY29sb3I7XG5cbiAgICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRuYXZiYXItbGlnaHQtaG92ZXItY29sb3I7XG4gICAgICB9XG5cbiAgICAgICYuZGlzYWJsZWQge1xuICAgICAgICBjb2xvcjogJG5hdmJhci1saWdodC1kaXNhYmxlZC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc2hvdyA+IC5uYXYtbGluayxcbiAgICAuYWN0aXZlID4gLm5hdi1saW5rLFxuICAgIC5uYXYtbGluay5zaG93LFxuICAgIC5uYXYtbGluay5hY3RpdmUge1xuICAgICAgY29sb3I6ICRuYXZiYXItbGlnaHQtYWN0aXZlLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5uYXZiYXItdG9nZ2xlciB7XG4gICAgY29sb3I6ICRuYXZiYXItbGlnaHQtY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkbmF2YmFyLWxpZ2h0LXRvZ2dsZXItYm9yZGVyLWNvbG9yO1xuICB9XG5cbiAgLm5hdmJhci10b2dnbGVyLWljb24ge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6ICRuYXZiYXItbGlnaHQtdG9nZ2xlci1pY29uLWJnO1xuICB9XG5cbiAgLm5hdmJhci10ZXh0IHtcbiAgICBjb2xvcjogJG5hdmJhci1saWdodC1jb2xvcjtcbiAgICBhIHtcbiAgICAgIGNvbG9yOiAkbmF2YmFyLWxpZ2h0LWFjdGl2ZS1jb2xvcjtcblxuICAgICAgQGluY2x1ZGUgaG92ZXItZm9jdXMge1xuICAgICAgICBjb2xvcjogJG5hdmJhci1saWdodC1hY3RpdmUtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFdoaXRlIGxpbmtzIGFnYWluc3QgYSBkYXJrIGJhY2tncm91bmRcbi5uYXZiYXItZGFyayB7XG4gIC5uYXZiYXItYnJhbmQge1xuICAgIGNvbG9yOiAkbmF2YmFyLWRhcmstYWN0aXZlLWNvbG9yO1xuXG4gICAgQGluY2x1ZGUgaG92ZXItZm9jdXMge1xuICAgICAgY29sb3I6ICRuYXZiYXItZGFyay1hY3RpdmUtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm5hdmJhci1uYXYge1xuICAgIC5uYXYtbGluayB7XG4gICAgICBjb2xvcjogJG5hdmJhci1kYXJrLWNvbG9yO1xuXG4gICAgICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkbmF2YmFyLWRhcmstaG92ZXItY29sb3I7XG4gICAgICB9XG5cbiAgICAgICYuZGlzYWJsZWQge1xuICAgICAgICBjb2xvcjogJG5hdmJhci1kYXJrLWRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5zaG93ID4gLm5hdi1saW5rLFxuICAgIC5hY3RpdmUgPiAubmF2LWxpbmssXG4gICAgLm5hdi1saW5rLnNob3csXG4gICAgLm5hdi1saW5rLmFjdGl2ZSB7XG4gICAgICBjb2xvcjogJG5hdmJhci1kYXJrLWFjdGl2ZS1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubmF2YmFyLXRvZ2dsZXIge1xuICAgIGNvbG9yOiAkbmF2YmFyLWRhcmstY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkbmF2YmFyLWRhcmstdG9nZ2xlci1ib3JkZXItY29sb3I7XG4gIH1cblxuICAubmF2YmFyLXRvZ2dsZXItaWNvbiB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogJG5hdmJhci1kYXJrLXRvZ2dsZXItaWNvbi1iZztcbiAgfVxuXG4gIC5uYXZiYXItdGV4dCB7XG4gICAgY29sb3I6ICRuYXZiYXItZGFyay1jb2xvcjtcbiAgICBhIHtcbiAgICAgIGNvbG9yOiAkbmF2YmFyLWRhcmstYWN0aXZlLWNvbG9yO1xuXG4gICAgICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkbmF2YmFyLWRhcmstYWN0aXZlLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIEJhc2Ugc3R5bGVzXG4vL1xuXG4uY2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLXdpZHRoOiAwO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjYXJkLWJnO1xuICBiYWNrZ3JvdW5kLWNsaXA6IGJvcmRlci1ib3g7XG4gIGJvcmRlcjogJGNhcmQtYm9yZGVyLXdpZHRoIHNvbGlkICRjYXJkLWJvcmRlci1jb2xvcjtcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkY2FyZC1ib3JkZXItcmFkaXVzKTtcblxuICA+IGhyIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICA+IC5saXN0LWdyb3VwOmZpcnN0LWNoaWxkIHtcbiAgICAubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgICAgIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKCRjYXJkLWJvcmRlci1yYWRpdXMpO1xuICAgIH1cbiAgfVxuXG4gID4gLmxpc3QtZ3JvdXA6bGFzdC1jaGlsZCB7XG4gICAgLmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgIEBpbmNsdWRlIGJvcmRlci1ib3R0b20tcmFkaXVzKCRjYXJkLWJvcmRlci1yYWRpdXMpO1xuICAgIH1cbiAgfVxufVxuXG4uY2FyZC1ib2R5IHtcbiAgLy8gRW5hYmxlIGBmbGV4LWdyb3c6IDFgIGZvciBkZWNrcyBhbmQgZ3JvdXBzIHNvIHRoYXQgY2FyZCBibG9ja3MgdGFrZSB1cFxuICAvLyBhcyBtdWNoIHNwYWNlIGFzIHBvc3NpYmxlLCBlbnN1cmluZyBmb290ZXJzIGFyZSBhbGlnbmVkIHRvIHRoZSBib3R0b20uXG4gIGZsZXg6IDEgMSBhdXRvO1xuICBwYWRkaW5nOiAkY2FyZC1zcGFjZXIteDtcbn1cblxuLmNhcmQtdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAkY2FyZC1zcGFjZXIteTtcbn1cblxuLmNhcmQtc3VidGl0bGUge1xuICBtYXJnaW4tdG9wOiAtKCRjYXJkLXNwYWNlci15IC8gMik7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5jYXJkLXRleHQ6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5jYXJkLWxpbmsge1xuICBAaW5jbHVkZSBob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgKyAuY2FyZC1saW5rIHtcbiAgICBtYXJnaW4tbGVmdDogJGNhcmQtc3BhY2VyLXg7XG4gIH1cbn1cblxuLy9cbi8vIE9wdGlvbmFsIHRleHR1YWwgY2Fwc1xuLy9cblxuLmNhcmQtaGVhZGVyIHtcbiAgcGFkZGluZzogJGNhcmQtc3BhY2VyLXkgJGNhcmQtc3BhY2VyLXg7XG4gIG1hcmdpbi1ib3R0b206IDA7IC8vIFJlbW92ZXMgdGhlIGRlZmF1bHQgbWFyZ2luLWJvdHRvbSBvZiA8aE4+XG4gIGJhY2tncm91bmQtY29sb3I6ICRjYXJkLWNhcC1iZztcbiAgYm9yZGVyLWJvdHRvbTogJGNhcmQtYm9yZGVyLXdpZHRoIHNvbGlkICRjYXJkLWJvcmRlci1jb2xvcjtcblxuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRjYXJkLWlubmVyLWJvcmRlci1yYWRpdXMgJGNhcmQtaW5uZXItYm9yZGVyLXJhZGl1cyAwIDApO1xuICB9XG5cbiAgKyAubGlzdC1ncm91cCB7XG4gICAgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wOiAwO1xuICAgIH1cbiAgfVxufVxuXG4uY2FyZC1mb290ZXIge1xuICBwYWRkaW5nOiAkY2FyZC1zcGFjZXIteSAkY2FyZC1zcGFjZXIteDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNhcmQtY2FwLWJnO1xuICBib3JkZXItdG9wOiAkY2FyZC1ib3JkZXItd2lkdGggc29saWQgJGNhcmQtYm9yZGVyLWNvbG9yO1xuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygwIDAgJGNhcmQtaW5uZXItYm9yZGVyLXJhZGl1cyAkY2FyZC1pbm5lci1ib3JkZXItcmFkaXVzKTtcbiAgfVxufVxuXG5cbi8vXG4vLyBIZWFkZXIgbmF2c1xuLy9cblxuLmNhcmQtaGVhZGVyLXRhYnMge1xuICBtYXJnaW4tcmlnaHQ6IC0oJGNhcmQtc3BhY2VyLXggLyAyKTtcbiAgbWFyZ2luLWJvdHRvbTogLSRjYXJkLXNwYWNlci15O1xuICBtYXJnaW4tbGVmdDogLSgkY2FyZC1zcGFjZXIteCAvIDIpO1xuICBib3JkZXItYm90dG9tOiAwO1xufVxuXG4uY2FyZC1oZWFkZXItcGlsbHMge1xuICBtYXJnaW4tcmlnaHQ6IC0oJGNhcmQtc3BhY2VyLXggLyAyKTtcbiAgbWFyZ2luLWxlZnQ6IC0oJGNhcmQtc3BhY2VyLXggLyAyKTtcbn1cblxuLy8gQ2FyZCBpbWFnZVxuLmNhcmQtaW1nLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcGFkZGluZzogJGNhcmQtaW1nLW92ZXJsYXktcGFkZGluZztcbn1cblxuLmNhcmQtaW1nIHtcbiAgd2lkdGg6IDEwMCU7IC8vIFJlcXVpcmVkIGJlY2F1c2Ugd2UgdXNlIGZsZXhib3ggYW5kIHRoaXMgaW5oZXJlbnRseSBhcHBsaWVzIGFsaWduLXNlbGY6IHN0cmV0Y2hcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkY2FyZC1pbm5lci1ib3JkZXItcmFkaXVzKTtcbn1cblxuLy8gQ2FyZCBpbWFnZSBjYXBzXG4uY2FyZC1pbWctdG9wIHtcbiAgd2lkdGg6IDEwMCU7IC8vIFJlcXVpcmVkIGJlY2F1c2Ugd2UgdXNlIGZsZXhib3ggYW5kIHRoaXMgaW5oZXJlbnRseSBhcHBsaWVzIGFsaWduLXNlbGY6IHN0cmV0Y2hcbiAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoJGNhcmQtaW5uZXItYm9yZGVyLXJhZGl1cyk7XG59XG5cbi5jYXJkLWltZy1ib3R0b20ge1xuICB3aWR0aDogMTAwJTsgLy8gUmVxdWlyZWQgYmVjYXVzZSB3ZSB1c2UgZmxleGJveCBhbmQgdGhpcyBpbmhlcmVudGx5IGFwcGxpZXMgYWxpZ24tc2VsZjogc3RyZXRjaFxuICBAaW5jbHVkZSBib3JkZXItYm90dG9tLXJhZGl1cygkY2FyZC1pbm5lci1ib3JkZXItcmFkaXVzKTtcbn1cblxuXG4vLyBDYXJkIGRlY2tcblxuLmNhcmQtZGVjayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgLmNhcmQge1xuICAgIG1hcmdpbi1ib3R0b206ICRjYXJkLWRlY2stbWFyZ2luO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChzbSkge1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgbWFyZ2luLXJpZ2h0OiAtJGNhcmQtZGVjay1tYXJnaW47XG4gICAgbWFyZ2luLWxlZnQ6IC0kY2FyZC1kZWNrLW1hcmdpbjtcblxuICAgIC5jYXJkIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAvLyBGbGV4YnVncyAjNDogaHR0cHM6Ly9naXRodWIuY29tL3BoaWxpcHdhbHRvbi9mbGV4YnVncyNmbGV4YnVnLTRcbiAgICAgIGZsZXg6IDEgMCAwJTtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBtYXJnaW4tcmlnaHQ6ICRjYXJkLWRlY2stbWFyZ2luO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgLy8gT3ZlcnJpZGUgdGhlIGRlZmF1bHRcbiAgICAgIG1hcmdpbi1sZWZ0OiAkY2FyZC1kZWNrLW1hcmdpbjtcbiAgICB9XG4gIH1cbn1cblxuXG4vL1xuLy8gQ2FyZCBncm91cHNcbi8vXG5cbi5jYXJkLWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAvLyBUaGUgY2hpbGQgc2VsZWN0b3IgYWxsb3dzIG5lc3RlZCBgLmNhcmRgIHdpdGhpbiBgLmNhcmQtZ3JvdXBgXG4gIC8vIHRvIGRpc3BsYXkgcHJvcGVybHkuXG4gID4gLmNhcmQge1xuICAgIG1hcmdpbi1ib3R0b206ICRjYXJkLWdyb3VwLW1hcmdpbjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoc20pIHtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIC8vIFRoZSBjaGlsZCBzZWxlY3RvciBhbGxvd3MgbmVzdGVkIGAuY2FyZGAgd2l0aGluIGAuY2FyZC1ncm91cGBcbiAgICAvLyB0byBkaXNwbGF5IHByb3Blcmx5LlxuICAgID4gLmNhcmQge1xuICAgICAgLy8gRmxleGJ1Z3MgIzQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9waGlsaXB3YWx0b24vZmxleGJ1Z3MjZmxleGJ1Zy00XG4gICAgICBmbGV4OiAxIDAgMCU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICArIC5jYXJkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgfVxuXG4gICAgICAvLyBIYW5kbGUgcm91bmRlZCBjb3JuZXJzXG4gICAgICBAaWYgJGVuYWJsZS1yb3VuZGVkIHtcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJpZ2h0LXJhZGl1cygwKTtcblxuICAgICAgICAgIC5jYXJkLWltZy10b3AsXG4gICAgICAgICAgLmNhcmQtaGVhZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuY2FyZC1pbWctYm90dG9tLFxuICAgICAgICAgIC5jYXJkLWZvb3RlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygwKTtcblxuICAgICAgICAgIC5jYXJkLWltZy10b3AsXG4gICAgICAgICAgLmNhcmQtaGVhZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIC5jYXJkLWltZy1ib3R0b20sXG4gICAgICAgICAgLmNhcmQtZm9vdGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpvbmx5LWNoaWxkIHtcbiAgICAgICAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRjYXJkLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgICAgICAgLmNhcmQtaW1nLXRvcCxcbiAgICAgICAgICAuY2FyZC1oZWFkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoJGNhcmQtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC5jYXJkLWltZy1ib3R0b20sXG4gICAgICAgICAgLmNhcmQtZm9vdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1ib3R0b20tcmFkaXVzKCRjYXJkLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKTpub3QoOm9ubHktY2hpbGQpIHtcbiAgICAgICAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKDApO1xuXG4gICAgICAgICAgLmNhcmQtaW1nLXRvcCxcbiAgICAgICAgICAuY2FyZC1pbWctYm90dG9tLFxuICAgICAgICAgIC5jYXJkLWhlYWRlcixcbiAgICAgICAgICAuY2FyZC1mb290ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG4vL1xuLy8gQ29sdW1uc1xuLy9cblxuLmNhcmQtY29sdW1ucyB7XG4gIC5jYXJkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkY2FyZC1jb2x1bW5zLW1hcmdpbjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoc20pIHtcbiAgICBjb2x1bW4tY291bnQ6ICRjYXJkLWNvbHVtbnMtY291bnQ7XG4gICAgY29sdW1uLWdhcDogJGNhcmQtY29sdW1ucy1nYXA7XG4gICAgb3JwaGFuczogMTtcbiAgICB3aWRvd3M6IDE7XG5cbiAgICAuY2FyZCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8vIERvbid0IGxldCB0aGVtIHZlcnRpY2FsbHkgc3BhbiBtdWx0aXBsZSBjb2x1bW5zXG4gICAgICB3aWR0aDogMTAwJTsgLy8gRG9uJ3QgbGV0IHRoZWlyIHdpZHRoIGNoYW5nZVxuICAgIH1cbiAgfVxufVxuXG5cbi8vXG4vLyBBY2NvcmRpb25cbi8vXG5cbi5hY2NvcmRpb24ge1xuICAuY2FyZDpub3QoOmZpcnN0LW9mLXR5cGUpOm5vdCg6bGFzdC1vZi10eXBlKSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG5cbiAgLmNhcmQ6bm90KDpmaXJzdC1vZi10eXBlKSB7XG4gICAgLmNhcmQtaGVhZGVyOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgfVxuICB9XG5cbiAgLmNhcmQ6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICB9XG5cbiAgLmNhcmQ6bGFzdC1vZi10eXBlIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICB9XG59XG4iLCIuYnJlYWRjcnVtYiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgcGFkZGluZzogJGJyZWFkY3J1bWItcGFkZGluZy15ICRicmVhZGNydW1iLXBhZGRpbmcteDtcbiAgbWFyZ2luLWJvdHRvbTogJGJyZWFkY3J1bWItbWFyZ2luLWJvdHRvbTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJyZWFkY3J1bWItYmc7XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGJyZWFkY3J1bWItYm9yZGVyLXJhZGl1cyk7XG59XG5cbi5icmVhZGNydW1iLWl0ZW0ge1xuICAvLyBUaGUgc2VwYXJhdG9yIGJldHdlZW4gYnJlYWRjcnVtYnMgKGJ5IGRlZmF1bHQsIGEgZm9yd2FyZC1zbGFzaDogXCIvXCIpXG4gICsgLmJyZWFkY3J1bWItaXRlbSB7XG4gICAgcGFkZGluZy1sZWZ0OiAkYnJlYWRjcnVtYi1pdGVtLXBhZGRpbmc7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvLyBTdXBwcmVzcyB1bmRlcmxpbmluZyBvZiB0aGUgc2VwYXJhdG9yIGluIG1vZGVybiBicm93c2Vyc1xuICAgICAgcGFkZGluZy1yaWdodDogJGJyZWFkY3J1bWItaXRlbS1wYWRkaW5nO1xuICAgICAgY29sb3I6ICRicmVhZGNydW1iLWRpdmlkZXItY29sb3I7XG4gICAgICBjb250ZW50OiAkYnJlYWRjcnVtYi1kaXZpZGVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIElFOS0xMSBoYWNrIHRvIHByb3Blcmx5IGhhbmRsZSBoeXBlcmxpbmsgdW5kZXJsaW5lcyBmb3IgYnJlYWRjcnVtYnMgYnVpbHRcbiAgLy8gd2l0aG91dCBgPHVsPmBzLiBUaGUgYDo6YmVmb3JlYCBwc2V1ZG8tZWxlbWVudCBnZW5lcmF0ZXMgYW4gZWxlbWVudFxuICAvLyAqd2l0aGluKiB0aGUgLmJyZWFkY3J1bWItaXRlbSBhbmQgdGhlcmVieSBpbmhlcml0cyB0aGUgYHRleHQtZGVjb3JhdGlvbmAuXG4gIC8vXG4gIC8vIFRvIHRyaWNrIElFIGludG8gc3VwcHJlc3NpbmcgdGhlIHVuZGVybGluZSwgd2UgZ2l2ZSB0aGUgcHNldWRvLWVsZW1lbnQgYW5cbiAgLy8gdW5kZXJsaW5lIGFuZCB0aGVuIGltbWVkaWF0ZWx5IHJlbW92ZSBpdC5cbiAgKyAuYnJlYWRjcnVtYi1pdGVtOmhvdmVyOjpiZWZvcmUge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kdXBsaWNhdGUtc2VsZWN0b3JzXG4gICsgLmJyZWFkY3J1bWItaXRlbTpob3Zlcjo6YmVmb3JlIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAmLmFjdGl2ZSB7XG4gICAgY29sb3I6ICRicmVhZGNydW1iLWFjdGl2ZS1jb2xvcjtcbiAgfVxufVxuIiwiLnBhZ2luYXRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBAaW5jbHVkZSBsaXN0LXVuc3R5bGVkKCk7XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoKTtcbn1cblxuLnBhZ2UtbGluayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6ICRwYWdpbmF0aW9uLXBhZGRpbmcteSAkcGFnaW5hdGlvbi1wYWRkaW5nLXg7XG4gIG1hcmdpbi1sZWZ0OiAtJHBhZ2luYXRpb24tYm9yZGVyLXdpZHRoO1xuICBsaW5lLWhlaWdodDogJHBhZ2luYXRpb24tbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkcGFnaW5hdGlvbi1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHBhZ2luYXRpb24tYmc7XG4gIGJvcmRlcjogJHBhZ2luYXRpb24tYm9yZGVyLXdpZHRoIHNvbGlkICRwYWdpbmF0aW9uLWJvcmRlci1jb2xvcjtcblxuICAmOmhvdmVyIHtcbiAgICB6LWluZGV4OiAyO1xuICAgIGNvbG9yOiAkcGFnaW5hdGlvbi1ob3Zlci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHBhZ2luYXRpb24taG92ZXItYmc7XG4gICAgYm9yZGVyLWNvbG9yOiAkcGFnaW5hdGlvbi1ob3Zlci1ib3JkZXItY29sb3I7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICB6LWluZGV4OiAyO1xuICAgIG91dGxpbmU6ICRwYWdpbmF0aW9uLWZvY3VzLW91dGxpbmU7XG4gICAgYm94LXNoYWRvdzogJHBhZ2luYXRpb24tZm9jdXMtYm94LXNoYWRvdztcbiAgfVxuXG4gIC8vIE9waW5pb25hdGVkOiBhZGQgXCJoYW5kXCIgY3Vyc29yIHRvIG5vbi1kaXNhYmxlZCAucGFnZS1saW5rIGVsZW1lbnRzXG4gICY6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuXG4ucGFnZS1pdGVtIHtcbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgLnBhZ2UtbGluayB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygkYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuICB9XG4gICY6bGFzdC1jaGlsZCB7XG4gICAgLnBhZ2UtbGluayB7XG4gICAgICBAaW5jbHVkZSBib3JkZXItcmlnaHQtcmFkaXVzKCRib3JkZXItcmFkaXVzKTtcbiAgICB9XG4gIH1cblxuICAmLmFjdGl2ZSAucGFnZS1saW5rIHtcbiAgICB6LWluZGV4OiAxO1xuICAgIGNvbG9yOiAkcGFnaW5hdGlvbi1hY3RpdmUtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHBhZ2luYXRpb24tYWN0aXZlLWJnO1xuICAgIGJvcmRlci1jb2xvcjogJHBhZ2luYXRpb24tYWN0aXZlLWJvcmRlci1jb2xvcjtcbiAgfVxuXG4gICYuZGlzYWJsZWQgLnBhZ2UtbGluayB7XG4gICAgY29sb3I6ICRwYWdpbmF0aW9uLWRpc2FibGVkLWNvbG9yO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIC8vIE9waW5pb25hdGVkOiByZW1vdmUgdGhlIFwiaGFuZFwiIGN1cnNvciBzZXQgcHJldmlvdXNseSBmb3IgLnBhZ2UtbGlua1xuICAgIGN1cnNvcjogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFnaW5hdGlvbi1kaXNhYmxlZC1iZztcbiAgICBib3JkZXItY29sb3I6ICRwYWdpbmF0aW9uLWRpc2FibGVkLWJvcmRlci1jb2xvcjtcbiAgfVxufVxuXG5cbi8vXG4vLyBTaXppbmdcbi8vXG5cbi5wYWdpbmF0aW9uLWxnIHtcbiAgQGluY2x1ZGUgcGFnaW5hdGlvbi1zaXplKCRwYWdpbmF0aW9uLXBhZGRpbmcteS1sZywgJHBhZ2luYXRpb24tcGFkZGluZy14LWxnLCAkZm9udC1zaXplLWxnLCAkbGluZS1oZWlnaHQtbGcsICRib3JkZXItcmFkaXVzLWxnKTtcbn1cblxuLnBhZ2luYXRpb24tc20ge1xuICBAaW5jbHVkZSBwYWdpbmF0aW9uLXNpemUoJHBhZ2luYXRpb24tcGFkZGluZy15LXNtLCAkcGFnaW5hdGlvbi1wYWRkaW5nLXgtc20sICRmb250LXNpemUtc20sICRsaW5lLWhlaWdodC1zbSwgJGJvcmRlci1yYWRpdXMtc20pO1xufVxuIiwiLy8gUGFnaW5hdGlvblxuXG5AbWl4aW4gcGFnaW5hdGlvbi1zaXplKCRwYWRkaW5nLXksICRwYWRkaW5nLXgsICRmb250LXNpemUsICRsaW5lLWhlaWdodCwgJGJvcmRlci1yYWRpdXMpIHtcbiAgLnBhZ2UtbGluayB7XG4gICAgcGFkZGluZzogJHBhZGRpbmcteSAkcGFkZGluZy14O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuICB9XG5cbiAgLnBhZ2UtaXRlbSB7XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAucGFnZS1saW5rIHtcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKCRib3JkZXItcmFkaXVzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIC5wYWdlLWxpbmsge1xuICAgICAgICBAaW5jbHVkZSBib3JkZXItcmlnaHQtcmFkaXVzKCRib3JkZXItcmFkaXVzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEJhc2UgY2xhc3Ncbi8vXG4vLyBSZXF1aXJlcyBvbmUgb2YgdGhlIGNvbnRleHR1YWwsIGNvbG9yIG1vZGlmaWVyIGNsYXNzZXMgZm9yIGBjb2xvcmAgYW5kXG4vLyBgYmFja2dyb3VuZC1jb2xvcmAuXG5cbi5iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogJGJhZGdlLXBhZGRpbmcteSAkYmFkZ2UtcGFkZGluZy14O1xuICBmb250LXNpemU6ICRiYWRnZS1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkYmFkZ2UtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkYmFkZ2UtYm9yZGVyLXJhZGl1cyk7XG5cbiAgLy8gRW1wdHkgYmFkZ2VzIGNvbGxhcHNlIGF1dG9tYXRpY2FsbHlcbiAgJjplbXB0eSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vLyBRdWljayBmaXggZm9yIGJhZGdlcyBpbiBidXR0b25zXG4uYnRuIC5iYWRnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMXB4O1xufVxuXG4vLyBQaWxsIGJhZGdlc1xuLy9cbi8vIE1ha2UgdGhlbSBleHRyYSByb3VuZGVkIHdpdGggYSBtb2RpZmllciB0byByZXBsYWNlIHYzJ3MgYmFkZ2VzLlxuXG4uYmFkZ2UtcGlsbCB7XG4gIHBhZGRpbmctcmlnaHQ6ICRiYWRnZS1waWxsLXBhZGRpbmcteDtcbiAgcGFkZGluZy1sZWZ0OiAkYmFkZ2UtcGlsbC1wYWRkaW5nLXg7XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGJhZGdlLXBpbGwtYm9yZGVyLXJhZGl1cyk7XG59XG5cbi8vIENvbG9yc1xuLy9cbi8vIENvbnRleHR1YWwgdmFyaWF0aW9ucyAobGlua2VkIGJhZGdlcyBnZXQgZGFya2VyIG9uIDpob3ZlcikuXG5cbkBlYWNoICRjb2xvciwgJHZhbHVlIGluICR0aGVtZS1jb2xvcnMge1xuICAuYmFkZ2UtI3skY29sb3J9IHtcbiAgICBAaW5jbHVkZSBiYWRnZS12YXJpYW50KCR2YWx1ZSk7XG4gIH1cbn1cbiIsIkBtaXhpbiBiYWRnZS12YXJpYW50KCRiZykge1xuICBjb2xvcjogY29sb3IteWlxKCRiZyk7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiZztcblxuICAmW2hyZWZdIHtcbiAgICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgICBjb2xvcjogY29sb3IteWlxKCRiZyk7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGJnLCAxMCUpO1xuICAgIH1cbiAgfVxufVxuIiwiLmp1bWJvdHJvbiB7XG4gIHBhZGRpbmc6ICRqdW1ib3Ryb24tcGFkZGluZyAoJGp1bWJvdHJvbi1wYWRkaW5nIC8gMik7XG4gIG1hcmdpbi1ib3R0b206ICRqdW1ib3Ryb24tcGFkZGluZztcbiAgYmFja2dyb3VuZC1jb2xvcjogJGp1bWJvdHJvbi1iZztcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy1sZyk7XG5cbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChzbSkge1xuICAgIHBhZGRpbmc6ICgkanVtYm90cm9uLXBhZGRpbmcgKiAyKSAkanVtYm90cm9uLXBhZGRpbmc7XG4gIH1cbn1cblxuLmp1bWJvdHJvbi1mbHVpZCB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygwKTtcbn1cbiIsIi8vXG4vLyBCYXNlIHN0eWxlc1xuLy9cblxuLmFsZXJ0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAkYWxlcnQtcGFkZGluZy15ICRhbGVydC1wYWRkaW5nLXg7XG4gIG1hcmdpbi1ib3R0b206ICRhbGVydC1tYXJnaW4tYm90dG9tO1xuICBib3JkZXI6ICRhbGVydC1ib3JkZXItd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGFsZXJ0LWJvcmRlci1yYWRpdXMpO1xufVxuXG4vLyBIZWFkaW5ncyBmb3IgbGFyZ2VyIGFsZXJ0c1xuLmFsZXJ0LWhlYWRpbmcge1xuICAvLyBTcGVjaWZpZWQgdG8gcHJldmVudCBjb25mbGljdHMgb2YgY2hhbmdpbmcgJGhlYWRpbmdzLWNvbG9yXG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG4vLyBQcm92aWRlIGNsYXNzIGZvciBsaW5rcyB0aGF0IG1hdGNoIGFsZXJ0c1xuLmFsZXJ0LWxpbmsge1xuICBmb250LXdlaWdodDogJGFsZXJ0LWxpbmstZm9udC13ZWlnaHQ7XG59XG5cblxuLy8gRGlzbWlzc2libGUgYWxlcnRzXG4vL1xuLy8gRXhwYW5kIHRoZSByaWdodCBwYWRkaW5nIGFuZCBhY2NvdW50IGZvciB0aGUgY2xvc2UgYnV0dG9uJ3MgcG9zaXRpb25pbmcuXG5cbi5hbGVydC1kaXNtaXNzaWJsZSB7XG4gIHBhZGRpbmctcmlnaHQ6ICgkY2xvc2UtZm9udC1zaXplICsgJGFsZXJ0LXBhZGRpbmcteCAqIDIpO1xuXG4gIC8vIEFkanVzdCBjbG9zZSBsaW5rIHBvc2l0aW9uXG4gIC5jbG9zZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBwYWRkaW5nOiAkYWxlcnQtcGFkZGluZy15ICRhbGVydC1wYWRkaW5nLXg7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cbn1cblxuXG4vLyBBbHRlcm5hdGUgc3R5bGVzXG4vL1xuLy8gR2VuZXJhdGUgY29udGV4dHVhbCBtb2RpZmllciBjbGFzc2VzIGZvciBjb2xvcml6aW5nIHRoZSBhbGVydC5cblxuQGVhY2ggJGNvbG9yLCAkdmFsdWUgaW4gJHRoZW1lLWNvbG9ycyB7XG4gIC5hbGVydC0jeyRjb2xvcn0ge1xuICAgIEBpbmNsdWRlIGFsZXJ0LXZhcmlhbnQodGhlbWUtY29sb3ItbGV2ZWwoJGNvbG9yLCAkYWxlcnQtYmctbGV2ZWwpLCB0aGVtZS1jb2xvci1sZXZlbCgkY29sb3IsICRhbGVydC1ib3JkZXItbGV2ZWwpLCB0aGVtZS1jb2xvci1sZXZlbCgkY29sb3IsICRhbGVydC1jb2xvci1sZXZlbCkpO1xuICB9XG59XG4iLCJAbWl4aW4gYWxlcnQtdmFyaWFudCgkYmFja2dyb3VuZCwgJGJvcmRlciwgJGNvbG9yKSB7XG4gIGNvbG9yOiAkY29sb3I7XG4gIEBpbmNsdWRlIGdyYWRpZW50LWJnKCRiYWNrZ3JvdW5kKTtcbiAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyO1xuXG4gIGhyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBkYXJrZW4oJGJvcmRlciwgNSUpO1xuICB9XG5cbiAgLmFsZXJ0LWxpbmsge1xuICAgIGNvbG9yOiBkYXJrZW4oJGNvbG9yLCAxMCUpO1xuICB9XG59XG4iLCJAa2V5ZnJhbWVzIHByb2dyZXNzLWJhci1zdHJpcGVzIHtcbiAgZnJvbSB7IGJhY2tncm91bmQtcG9zaXRpb246ICRwcm9ncmVzcy1oZWlnaHQgMDsgfVxuICB0byB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgMDsgfVxufVxuXG4ucHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6ICRwcm9ncmVzcy1oZWlnaHQ7XG4gIG92ZXJmbG93OiBoaWRkZW47IC8vIGZvcmNlIHJvdW5kZWQgY29ybmVycyBieSBjcm9wcGluZyBpdFxuICBmb250LXNpemU6ICRwcm9ncmVzcy1mb250LXNpemU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcm9ncmVzcy1iZztcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkcHJvZ3Jlc3MtYm9yZGVyLXJhZGl1cyk7XG4gIEBpbmNsdWRlIGJveC1zaGFkb3coJHByb2dyZXNzLWJveC1zaGFkb3cpO1xufVxuXG4ucHJvZ3Jlc3MtYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbG9yOiAkcHJvZ3Jlc3MtYmFyLWNvbG9yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcm9ncmVzcy1iYXItYmc7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24oJHByb2dyZXNzLWJhci10cmFuc2l0aW9uKTtcbn1cblxuLnByb2dyZXNzLWJhci1zdHJpcGVkIHtcbiAgQGluY2x1ZGUgZ3JhZGllbnQtc3RyaXBlZCgpO1xuICBiYWNrZ3JvdW5kLXNpemU6ICRwcm9ncmVzcy1oZWlnaHQgJHByb2dyZXNzLWhlaWdodDtcbn1cblxuLnByb2dyZXNzLWJhci1hbmltYXRlZCB7XG4gIGFuaW1hdGlvbjogcHJvZ3Jlc3MtYmFyLXN0cmlwZXMgJHByb2dyZXNzLWJhci1hbmltYXRpb24tdGltaW5nO1xufVxuIiwiLm1lZGlhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbi5tZWRpYS1ib2R5IHtcbiAgZmxleDogMTtcbn1cbiIsIi8vIEJhc2UgY2xhc3Ncbi8vXG4vLyBFYXNpbHkgdXNhYmxlIG9uIDx1bD4sIDxvbD4sIG9yIDxkaXY+LlxuXG4ubGlzdC1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgLy8gTm8gbmVlZCB0byBzZXQgbGlzdC1zdHlsZTogbm9uZTsgc2luY2UgLmxpc3QtZ3JvdXAtaXRlbSBpcyBibG9jayBsZXZlbFxuICBwYWRkaW5nLWxlZnQ6IDA7IC8vIHJlc2V0IHBhZGRpbmcgYmVjYXVzZSB1bCBhbmQgb2xcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuXG4vLyBJbnRlcmFjdGl2ZSBsaXN0IGl0ZW1zXG4vL1xuLy8gVXNlIGFuY2hvciBvciBidXR0b24gZWxlbWVudHMgaW5zdGVhZCBvZiBgbGlgcyBvciBgZGl2YHMgdG8gY3JlYXRlIGludGVyYWN0aXZlXG4vLyBsaXN0IGl0ZW1zLiBJbmNsdWRlcyBhbiBleHRyYSBgLmFjdGl2ZWAgbW9kaWZpZXIgY2xhc3MgZm9yIHNlbGVjdGVkIGl0ZW1zLlxuXG4ubGlzdC1ncm91cC1pdGVtLWFjdGlvbiB7XG4gIHdpZHRoOiAxMDAlOyAvLyBGb3IgYDxidXR0b24+YHMgKGFuY2hvcnMgYmVjb21lIDEwMCUgYnkgZGVmYXVsdCB0aG91Z2gpXG4gIGNvbG9yOiAkbGlzdC1ncm91cC1hY3Rpb24tY29sb3I7XG4gIHRleHQtYWxpZ246IGluaGVyaXQ7IC8vIEZvciBgPGJ1dHRvbj5gcyAoYW5jaG9ycyBpbmhlcml0KVxuXG4gIC8vIEhvdmVyIHN0YXRlXG4gIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICBjb2xvcjogJGxpc3QtZ3JvdXAtYWN0aW9uLWhvdmVyLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlzdC1ncm91cC1ob3Zlci1iZztcbiAgfVxuXG4gICY6YWN0aXZlIHtcbiAgICBjb2xvcjogJGxpc3QtZ3JvdXAtYWN0aW9uLWFjdGl2ZS1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlzdC1ncm91cC1hY3Rpb24tYWN0aXZlLWJnO1xuICB9XG59XG5cblxuLy8gSW5kaXZpZHVhbCBsaXN0IGl0ZW1zXG4vL1xuLy8gVXNlIG9uIGBsaWBzIG9yIGBkaXZgcyB3aXRoaW4gdGhlIGAubGlzdC1ncm91cGAgcGFyZW50LlxuXG4ubGlzdC1ncm91cC1pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogJGxpc3QtZ3JvdXAtaXRlbS1wYWRkaW5nLXkgJGxpc3QtZ3JvdXAtaXRlbS1wYWRkaW5nLXg7XG4gIC8vIFBsYWNlIHRoZSBib3JkZXIgb24gdGhlIGxpc3QgaXRlbXMgYW5kIG5lZ2F0aXZlIG1hcmdpbiB1cCBmb3IgYmV0dGVyIHN0eWxpbmdcbiAgbWFyZ2luLWJvdHRvbTogLSRsaXN0LWdyb3VwLWJvcmRlci13aWR0aDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGxpc3QtZ3JvdXAtYmc7XG4gIGJvcmRlcjogJGxpc3QtZ3JvdXAtYm9yZGVyLXdpZHRoIHNvbGlkICRsaXN0LWdyb3VwLWJvcmRlci1jb2xvcjtcblxuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cygkbGlzdC1ncm91cC1ib3JkZXItcmFkaXVzKTtcbiAgfVxuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBAaW5jbHVkZSBib3JkZXItYm90dG9tLXJhZGl1cygkbGlzdC1ncm91cC1ib3JkZXItcmFkaXVzKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICB6LWluZGV4OiAxOyAvLyBQbGFjZSBob3Zlci9hY3RpdmUgaXRlbXMgYWJvdmUgdGhlaXIgc2libGluZ3MgZm9yIHByb3BlciBib3JkZXIgc3R5bGluZ1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gICYuZGlzYWJsZWQsXG4gICY6ZGlzYWJsZWQge1xuICAgIGNvbG9yOiAkbGlzdC1ncm91cC1kaXNhYmxlZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlzdC1ncm91cC1kaXNhYmxlZC1iZztcbiAgfVxuXG4gIC8vIEluY2x1ZGUgYm90aCBoZXJlIGZvciBgPGE+YHMgYW5kIGA8YnV0dG9uPmBzXG4gICYuYWN0aXZlIHtcbiAgICB6LWluZGV4OiAyOyAvLyBQbGFjZSBhY3RpdmUgaXRlbXMgYWJvdmUgdGhlaXIgc2libGluZ3MgZm9yIHByb3BlciBib3JkZXIgc3R5bGluZ1xuICAgIGNvbG9yOiAkbGlzdC1ncm91cC1hY3RpdmUtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGxpc3QtZ3JvdXAtYWN0aXZlLWJnO1xuICAgIGJvcmRlci1jb2xvcjogJGxpc3QtZ3JvdXAtYWN0aXZlLWJvcmRlci1jb2xvcjtcbiAgfVxufVxuXG5cbi8vIEZsdXNoIGxpc3QgaXRlbXNcbi8vXG4vLyBSZW1vdmUgYm9yZGVycyBhbmQgYm9yZGVyLXJhZGl1cyB0byBrZWVwIGxpc3QgZ3JvdXAgaXRlbXMgZWRnZS10by1lZGdlLiBNb3N0XG4vLyB1c2VmdWwgd2l0aGluIG90aGVyIGNvbXBvbmVudHMgKGUuZy4sIGNhcmRzKS5cblxuLmxpc3QtZ3JvdXAtZmx1c2gge1xuICAubGlzdC1ncm91cC1pdGVtIHtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygwKTtcbiAgfVxuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICB9XG4gIH1cblxuICAmOmxhc3QtY2hpbGQge1xuICAgIC5saXN0LWdyb3VwLWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIENvbnRleHR1YWwgdmFyaWFudHNcbi8vXG4vLyBBZGQgbW9kaWZpZXIgY2xhc3NlcyB0byBjaGFuZ2UgdGV4dCBhbmQgYmFja2dyb3VuZCBjb2xvciBvbiBpbmRpdmlkdWFsIGl0ZW1zLlxuLy8gT3JnYW5pemF0aW9uYWxseSwgdGhpcyBtdXN0IGNvbWUgYWZ0ZXIgdGhlIGA6aG92ZXJgIHN0YXRlcy5cblxuQGVhY2ggJGNvbG9yLCAkdmFsdWUgaW4gJHRoZW1lLWNvbG9ycyB7XG4gIEBpbmNsdWRlIGxpc3QtZ3JvdXAtaXRlbS12YXJpYW50KCRjb2xvciwgdGhlbWUtY29sb3ItbGV2ZWwoJGNvbG9yLCAtOSksIHRoZW1lLWNvbG9yLWxldmVsKCRjb2xvciwgNikpO1xufVxuIiwiLy8gTGlzdCBHcm91cHNcblxuQG1peGluIGxpc3QtZ3JvdXAtaXRlbS12YXJpYW50KCRzdGF0ZSwgJGJhY2tncm91bmQsICRjb2xvcikge1xuICAubGlzdC1ncm91cC1pdGVtLSN7JHN0YXRlfSB7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcblxuICAgICYubGlzdC1ncm91cC1pdGVtLWFjdGlvbiB7XG4gICAgICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkYmFja2dyb3VuZCwgNSUpO1xuICAgICAgfVxuXG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuY2xvc2Uge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogJGNsb3NlLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRjbG9zZS1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAkY2xvc2UtY29sb3I7XG4gIHRleHQtc2hhZG93OiAkY2xvc2UtdGV4dC1zaGFkb3c7XG4gIG9wYWNpdHk6IC41O1xuXG4gIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICBjb2xvcjogJGNsb3NlLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBvcGFjaXR5OiAuNzU7XG4gIH1cblxuICAvLyBPcGluaW9uYXRlZDogYWRkIFwiaGFuZFwiIGN1cnNvciB0byBub24tZGlzYWJsZWQgLmNsb3NlIGVsZW1lbnRzXG4gICY6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuXG4vLyBBZGRpdGlvbmFsIHByb3BlcnRpZXMgZm9yIGJ1dHRvbiB2ZXJzaW9uXG4vLyBpT1MgcmVxdWlyZXMgdGhlIGJ1dHRvbiBlbGVtZW50IGluc3RlYWQgb2YgYW4gYW5jaG9yIHRhZy5cbi8vIElmIHlvdSB3YW50IHRoZSBhbmNob3IgdmVyc2lvbiwgaXQgcmVxdWlyZXMgYGhyZWY9XCIjXCJgLlxuLy8gU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0V2ZW50cy9jbGljayNTYWZhcmlfTW9iaWxlXG5cbi8vIHN0eWxlbGludC1kaXNhYmxlIHByb3BlcnR5LW5vLXZlbmRvci1wcmVmaXgsIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZVxuYnV0dG9uLmNsb3NlIHtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuLy8gc3R5bGVsaW50LWVuYWJsZVxuIiwiLy8gLm1vZGFsLW9wZW4gICAgICAtIGJvZHkgY2xhc3MgZm9yIGtpbGxpbmcgdGhlIHNjcm9sbFxuLy8gLm1vZGFsICAgICAgICAgICAtIGNvbnRhaW5lciB0byBzY3JvbGwgd2l0aGluXG4vLyAubW9kYWwtZGlhbG9nICAgIC0gcG9zaXRpb25pbmcgc2hlbGwgZm9yIHRoZSBhY3R1YWwgbW9kYWxcbi8vIC5tb2RhbC1jb250ZW50ICAgLSBhY3R1YWwgbW9kYWwgdy8gYmcgYW5kIGNvcm5lcnMgYW5kIHN0dWZmXG5cblxuLy8gS2lsbCB0aGUgc2Nyb2xsIG9uIHRoZSBib2R5XG4ubW9kYWwtb3BlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vIENvbnRhaW5lciB0aGF0IHRoZSBtb2RhbCBzY3JvbGxzIHdpdGhpblxuLm1vZGFsIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6ICR6aW5kZXgtbW9kYWw7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC8vIFByZXZlbnQgQ2hyb21lIG9uIFdpbmRvd3MgZnJvbSBhZGRpbmcgYSBmb2N1cyBvdXRsaW5lLiBGb3IgZGV0YWlscywgc2VlXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9wdWxsLzEwOTUxLlxuICBvdXRsaW5lOiAwO1xuICAvLyBXZSBkZWxpYmVyYXRlbHkgZG9uJ3QgdXNlIGAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7YCBkdWUgdG8gYVxuICAvLyBnbmFybHkgaU9TIFNhZmFyaSBidWc6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgzNDJcbiAgLy8gU2VlIGFsc28gaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xNzY5NVxuXG4gIC5tb2RhbC1vcGVuICYge1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICB9XG59XG5cbi8vIFNoZWxsIGRpdiB0byBwb3NpdGlvbiB0aGUgbW9kYWwgd2l0aCBib3R0b20gcGFkZGluZ1xuLm1vZGFsLWRpYWxvZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbjogJG1vZGFsLWRpYWxvZy1tYXJnaW47XG4gIC8vIGFsbG93IGNsaWNrcyB0byBwYXNzIHRocm91Z2ggZm9yIGN1c3RvbSBjbGljayBoYW5kbGluZyB0byBjbG9zZSBtb2RhbFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAvLyBXaGVuIGZhZGluZyBpbiB0aGUgbW9kYWwsIGFuaW1hdGUgaXQgdG8gc2xpZGUgZG93blxuICAubW9kYWwuZmFkZSAmIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCRtb2RhbC10cmFuc2l0aW9uKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMjUlKTtcbiAgfVxuICAubW9kYWwuc2hvdyAmIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxufVxuXG4ubW9kYWwtZGlhbG9nLWNlbnRlcmVkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWluLWhlaWdodDogY2FsYygxMDAlIC0gKCN7JG1vZGFsLWRpYWxvZy1tYXJnaW59ICogMikpO1xufVxuXG4vLyBBY3R1YWwgbW9kYWxcbi5tb2RhbC1jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB3aWR0aDogMTAwJTsgLy8gRW5zdXJlIGAubW9kYWwtY29udGVudGAgZXh0ZW5kcyB0aGUgZnVsbCB3aWR0aCBvZiB0aGUgcGFyZW50IGAubW9kYWwtZGlhbG9nYFxuICAvLyBjb3VudGVyYWN0IHRoZSBwb2ludGVyLWV2ZW50czogbm9uZTsgaW4gdGhlIC5tb2RhbC1kaWFsb2dcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIGJhY2tncm91bmQtY29sb3I6ICRtb2RhbC1jb250ZW50LWJnO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBib3JkZXI6ICRtb2RhbC1jb250ZW50LWJvcmRlci13aWR0aCBzb2xpZCAkbW9kYWwtY29udGVudC1ib3JkZXItY29sb3I7XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJG1vZGFsLWNvbnRlbnQtYm9yZGVyLXJhZGl1cyk7XG4gIEBpbmNsdWRlIGJveC1zaGFkb3coJG1vZGFsLWNvbnRlbnQtYm94LXNoYWRvdy14cyk7XG4gIC8vIFJlbW92ZSBmb2N1cyBvdXRsaW5lIGZyb20gb3BlbmVkIG1vZGFsXG4gIG91dGxpbmU6IDA7XG59XG5cbi8vIE1vZGFsIGJhY2tncm91bmRcbi5tb2RhbC1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAkemluZGV4LW1vZGFsLWJhY2tkcm9wO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbW9kYWwtYmFja2Ryb3AtYmc7XG5cbiAgLy8gRmFkZSBmb3IgYmFja2Ryb3BcbiAgJi5mYWRlIHsgb3BhY2l0eTogMDsgfVxuICAmLnNob3cgeyBvcGFjaXR5OiAkbW9kYWwtYmFja2Ryb3Atb3BhY2l0eTsgfVxufVxuXG4vLyBNb2RhbCBoZWFkZXJcbi8vIFRvcCBzZWN0aW9uIG9mIHRoZSBtb2RhbCB3LyB0aXRsZSBhbmQgZGlzbWlzc1xuLm1vZGFsLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyAvLyBzbyB0aGUgY2xvc2UgYnRuIGFsd2F5cyBzdGF5cyBvbiB0aGUgdXBwZXIgcmlnaHQgY29ybmVyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgLy8gUHV0IG1vZGFsIGhlYWRlciBlbGVtZW50cyAodGl0bGUgYW5kIGRpc21pc3MpIG9uIG9wcG9zaXRlIGVuZHNcbiAgcGFkZGluZzogJG1vZGFsLWhlYWRlci1wYWRkaW5nO1xuICBib3JkZXItYm90dG9tOiAkbW9kYWwtaGVhZGVyLWJvcmRlci13aWR0aCBzb2xpZCAkbW9kYWwtaGVhZGVyLWJvcmRlci1jb2xvcjtcbiAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoJG1vZGFsLWNvbnRlbnQtYm9yZGVyLXJhZGl1cyk7XG5cbiAgLmNsb3NlIHtcbiAgICBwYWRkaW5nOiAkbW9kYWwtaGVhZGVyLXBhZGRpbmc7XG4gICAgLy8gYXV0byBvbiB0aGUgbGVmdCBmb3JjZSBpY29uIHRvIHRoZSByaWdodCBldmVuIHdoZW4gdGhlcmUgaXMgbm8gLm1vZGFsLXRpdGxlXG4gICAgbWFyZ2luOiAoLSRtb2RhbC1oZWFkZXItcGFkZGluZykgKC0kbW9kYWwtaGVhZGVyLXBhZGRpbmcpICgtJG1vZGFsLWhlYWRlci1wYWRkaW5nKSBhdXRvO1xuICB9XG59XG5cbi8vIFRpdGxlIHRleHQgd2l0aGluIGhlYWRlclxuLm1vZGFsLXRpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbGluZS1oZWlnaHQ6ICRtb2RhbC10aXRsZS1saW5lLWhlaWdodDtcbn1cblxuLy8gTW9kYWwgYm9keVxuLy8gV2hlcmUgYWxsIG1vZGFsIGNvbnRlbnQgcmVzaWRlcyAoc2libGluZyBvZiAubW9kYWwtaGVhZGVyIGFuZCAubW9kYWwtZm9vdGVyKVxuLm1vZGFsLWJvZHkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8vIEVuYWJsZSBgZmxleC1ncm93OiAxYCBzbyB0aGF0IHRoZSBib2R5IHRha2UgdXAgYXMgbXVjaCBzcGFjZSBhcyBwb3NzaWJsZVxuICAvLyB3aGVuIHNob3VsZCB0aGVyZSBiZSBhIGZpeGVkIGhlaWdodCBvbiBgLm1vZGFsLWRpYWxvZ2AuXG4gIGZsZXg6IDEgMSBhdXRvO1xuICBwYWRkaW5nOiAkbW9kYWwtaW5uZXItcGFkZGluZztcbn1cblxuLy8gRm9vdGVyIChmb3IgYWN0aW9ucylcbi5tb2RhbC1mb290ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyOyAvLyB2ZXJ0aWNhbGx5IGNlbnRlclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyAvLyBSaWdodCBhbGlnbiBidXR0b25zIHdpdGggZmxleCBwcm9wZXJ0eSBiZWNhdXNlIHRleHQtYWxpZ24gZG9lc24ndCB3b3JrIG9uIGZsZXggaXRlbXNcbiAgcGFkZGluZzogJG1vZGFsLWlubmVyLXBhZGRpbmc7XG4gIGJvcmRlci10b3A6ICRtb2RhbC1mb290ZXItYm9yZGVyLXdpZHRoIHNvbGlkICRtb2RhbC1mb290ZXItYm9yZGVyLWNvbG9yO1xuXG4gIC8vIEVhc2lseSBwbGFjZSBtYXJnaW4gYmV0d2VlbiBmb290ZXIgZWxlbWVudHNcbiAgPiA6bm90KDpmaXJzdC1jaGlsZCkgeyBtYXJnaW4tbGVmdDogLjI1cmVtOyB9XG4gID4gOm5vdCg6bGFzdC1jaGlsZCkgeyBtYXJnaW4tcmlnaHQ6IC4yNXJlbTsgfVxufVxuXG4vLyBNZWFzdXJlIHNjcm9sbGJhciB3aWR0aCBmb3IgcGFkZGluZyBib2R5IGR1cmluZyBtb2RhbCBzaG93L2hpZGVcbi5tb2RhbC1zY3JvbGxiYXItbWVhc3VyZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtOTk5OXB4O1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBvdmVyZmxvdzogc2Nyb2xsO1xufVxuXG4vLyBTY2FsZSB1cCB0aGUgbW9kYWxcbkBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoc20pIHtcbiAgLy8gQXV0b21hdGljYWxseSBzZXQgbW9kYWwncyB3aWR0aCBmb3IgbGFyZ2VyIHZpZXdwb3J0c1xuICAubW9kYWwtZGlhbG9nIHtcbiAgICBtYXgtd2lkdGg6ICRtb2RhbC1tZDtcbiAgICBtYXJnaW46ICRtb2RhbC1kaWFsb2ctbWFyZ2luLXktc20tdXAgYXV0bztcbiAgfVxuXG4gIC5tb2RhbC1kaWFsb2ctY2VudGVyZWQge1xuICAgIG1pbi1oZWlnaHQ6IGNhbGMoMTAwJSAtICgjeyRtb2RhbC1kaWFsb2ctbWFyZ2luLXktc20tdXB9ICogMikpO1xuICB9XG5cbiAgLm1vZGFsLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coJG1vZGFsLWNvbnRlbnQtYm94LXNoYWRvdy1zbS11cCk7XG4gIH1cblxuICAubW9kYWwtc20geyBtYXgtd2lkdGg6ICRtb2RhbC1zbTsgfVxuXG59XG5cbkBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobGcpIHtcbiAgLm1vZGFsLWxnIHsgbWF4LXdpZHRoOiAkbW9kYWwtbGc7IH1cbn1cbiIsIi8vIEJhc2UgY2xhc3Ncbi50b29sdGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAkemluZGV4LXRvb2x0aXA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46ICR0b29sdGlwLW1hcmdpbjtcbiAgLy8gT3VyIHBhcmVudCBlbGVtZW50IGNhbiBiZSBhcmJpdHJhcnkgc2luY2UgdG9vbHRpcHMgYXJlIGJ5IGRlZmF1bHQgaW5zZXJ0ZWQgYXMgYSBzaWJsaW5nIG9mIHRoZWlyIHRhcmdldCBlbGVtZW50LlxuICAvLyBTbyByZXNldCBvdXIgZm9udCBhbmQgdGV4dCBwcm9wZXJ0aWVzIHRvIGF2b2lkIGluaGVyaXRpbmcgd2VpcmQgdmFsdWVzLlxuICBAaW5jbHVkZSByZXNldC10ZXh0KCk7XG4gIGZvbnQtc2l6ZTogJHRvb2x0aXAtZm9udC1zaXplO1xuICAvLyBBbGxvdyBicmVha2luZyB2ZXJ5IGxvbmcgd29yZHMgc28gdGhleSBkb24ndCBvdmVyZmxvdyB0aGUgdG9vbHRpcCdzIGJvdW5kc1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIG9wYWNpdHk6IDA7XG5cbiAgJi5zaG93IHsgb3BhY2l0eTogJHRvb2x0aXAtb3BhY2l0eTsgfVxuXG4gIC5hcnJvdyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAkdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBoZWlnaHQ6ICR0b29sdGlwLWFycm93LWhlaWdodDtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgfVxuICB9XG59XG5cbi5icy10b29sdGlwLXRvcCB7XG4gIHBhZGRpbmc6ICR0b29sdGlwLWFycm93LWhlaWdodCAwO1xuXG4gIC5hcnJvdyB7XG4gICAgYm90dG9tOiAwO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIHRvcDogMDtcbiAgICAgIGJvcmRlci13aWR0aDogJHRvb2x0aXAtYXJyb3ctaGVpZ2h0ICgkdG9vbHRpcC1hcnJvdy13aWR0aCAvIDIpIDA7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiAkdG9vbHRpcC1hcnJvdy1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuLmJzLXRvb2x0aXAtcmlnaHQge1xuICBwYWRkaW5nOiAwICR0b29sdGlwLWFycm93LWhlaWdodDtcblxuICAuYXJyb3cge1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6ICR0b29sdGlwLWFycm93LWhlaWdodDtcbiAgICBoZWlnaHQ6ICR0b29sdGlwLWFycm93LXdpZHRoO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYm9yZGVyLXdpZHRoOiAoJHRvb2x0aXAtYXJyb3ctd2lkdGggLyAyKSAkdG9vbHRpcC1hcnJvdy1oZWlnaHQgKCR0b29sdGlwLWFycm93LXdpZHRoIC8gMikgMDtcbiAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHRvb2x0aXAtYXJyb3ctY29sb3I7XG4gICAgfVxuICB9XG59XG5cbi5icy10b29sdGlwLWJvdHRvbSB7XG4gIHBhZGRpbmc6ICR0b29sdGlwLWFycm93LWhlaWdodCAwO1xuXG4gIC5hcnJvdyB7XG4gICAgdG9wOiAwO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGJvcmRlci13aWR0aDogMCAoJHRvb2x0aXAtYXJyb3ctd2lkdGggLyAyKSAkdG9vbHRpcC1hcnJvdy1oZWlnaHQ7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkdG9vbHRpcC1hcnJvdy1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuLmJzLXRvb2x0aXAtbGVmdCB7XG4gIHBhZGRpbmc6IDAgJHRvb2x0aXAtYXJyb3ctaGVpZ2h0O1xuXG4gIC5hcnJvdyB7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6ICR0b29sdGlwLWFycm93LWhlaWdodDtcbiAgICBoZWlnaHQ6ICR0b29sdGlwLWFycm93LXdpZHRoO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBib3JkZXItd2lkdGg6ICgkdG9vbHRpcC1hcnJvdy13aWR0aCAvIDIpIDAgKCR0b29sdGlwLWFycm93LXdpZHRoIC8gMikgJHRvb2x0aXAtYXJyb3ctaGVpZ2h0O1xuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICR0b29sdGlwLWFycm93LWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG4uYnMtdG9vbHRpcC1hdXRvIHtcbiAgJlt4LXBsYWNlbWVudF49XCJ0b3BcIl0ge1xuICAgIEBleHRlbmQgLmJzLXRvb2x0aXAtdG9wO1xuICB9XG4gICZbeC1wbGFjZW1lbnRePVwicmlnaHRcIl0ge1xuICAgIEBleHRlbmQgLmJzLXRvb2x0aXAtcmlnaHQ7XG4gIH1cbiAgJlt4LXBsYWNlbWVudF49XCJib3R0b21cIl0ge1xuICAgIEBleHRlbmQgLmJzLXRvb2x0aXAtYm90dG9tO1xuICB9XG4gICZbeC1wbGFjZW1lbnRePVwibGVmdFwiXSB7XG4gICAgQGV4dGVuZCAuYnMtdG9vbHRpcC1sZWZ0O1xuICB9XG59XG5cbi8vIFdyYXBwZXIgZm9yIHRoZSB0b29sdGlwIGNvbnRlbnRcbi50b29sdGlwLWlubmVyIHtcbiAgbWF4LXdpZHRoOiAkdG9vbHRpcC1tYXgtd2lkdGg7XG4gIHBhZGRpbmc6ICR0b29sdGlwLXBhZGRpbmcteSAkdG9vbHRpcC1wYWRkaW5nLXg7XG4gIGNvbG9yOiAkdG9vbHRpcC1jb2xvcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9vbHRpcC1iZztcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkdG9vbHRpcC1ib3JkZXItcmFkaXVzKTtcbn1cbiIsIkBtaXhpbiByZXNldC10ZXh0IHtcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1iYXNlO1xuICAvLyBXZSBkZWxpYmVyYXRlbHkgZG8gTk9UIHJlc2V0IGZvbnQtc2l6ZSBvciB3b3JkLXdyYXAuXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYmFzZTtcbiAgdGV4dC1hbGlnbjogbGVmdDsgLy8gRmFsbGJhY2sgZm9yIHdoZXJlIGBzdGFydGAgaXMgbm90IHN1cHBvcnRlZFxuICB0ZXh0LWFsaWduOiBzdGFydDsgLy8gc3R5bGVsaW50LWRpc2FibGUtbGluZSBkZWNsYXJhdGlvbi1ibG9jay1uby1kdXBsaWNhdGUtcHJvcGVydGllc1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgd29yZC1icmVhazogbm9ybWFsO1xuICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgbGluZS1icmVhazogYXV0bztcbn1cbiIsIi5wb3BvdmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6ICR6aW5kZXgtcG9wb3ZlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC13aWR0aDogJHBvcG92ZXItbWF4LXdpZHRoO1xuICAvLyBPdXIgcGFyZW50IGVsZW1lbnQgY2FuIGJlIGFyYml0cmFyeSBzaW5jZSB0b29sdGlwcyBhcmUgYnkgZGVmYXVsdCBpbnNlcnRlZCBhcyBhIHNpYmxpbmcgb2YgdGhlaXIgdGFyZ2V0IGVsZW1lbnQuXG4gIC8vIFNvIHJlc2V0IG91ciBmb250IGFuZCB0ZXh0IHByb3BlcnRpZXMgdG8gYXZvaWQgaW5oZXJpdGluZyB3ZWlyZCB2YWx1ZXMuXG4gIEBpbmNsdWRlIHJlc2V0LXRleHQoKTtcbiAgZm9udC1zaXplOiAkcG9wb3Zlci1mb250LXNpemU7XG4gIC8vIEFsbG93IGJyZWFraW5nIHZlcnkgbG9uZyB3b3JkcyBzbyB0aGV5IGRvbid0IG92ZXJmbG93IHRoZSBwb3BvdmVyJ3MgYm91bmRzXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHBvcG92ZXItYmc7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJvcmRlcjogJHBvcG92ZXItYm9yZGVyLXdpZHRoIHNvbGlkICRwb3BvdmVyLWJvcmRlci1jb2xvcjtcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkcG9wb3Zlci1ib3JkZXItcmFkaXVzKTtcbiAgQGluY2x1ZGUgYm94LXNoYWRvdygkcG9wb3Zlci1ib3gtc2hhZG93KTtcblxuICAuYXJyb3cge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogJHBvcG92ZXItYXJyb3ctd2lkdGg7XG4gICAgaGVpZ2h0OiAkcG9wb3Zlci1hcnJvdy1oZWlnaHQ7XG4gICAgbWFyZ2luOiAwICRib3JkZXItcmFkaXVzLWxnO1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIH1cbiAgfVxufVxuXG4uYnMtcG9wb3Zlci10b3Age1xuICBtYXJnaW4tYm90dG9tOiAkcG9wb3Zlci1hcnJvdy1oZWlnaHQ7XG5cbiAgLmFycm93IHtcbiAgICBib3R0b206IGNhbGMoKCN7JHBvcG92ZXItYXJyb3ctaGVpZ2h0fSArICN7JHBvcG92ZXItYm9yZGVyLXdpZHRofSkgKiAtMSk7XG4gIH1cblxuICAuYXJyb3c6OmJlZm9yZSxcbiAgLmFycm93OjphZnRlciB7XG4gICAgYm9yZGVyLXdpZHRoOiAkcG9wb3Zlci1hcnJvdy1oZWlnaHQgKCRwb3BvdmVyLWFycm93LXdpZHRoIC8gMikgMDtcbiAgfVxuXG4gIC5hcnJvdzo6YmVmb3JlIHtcbiAgICBib3R0b206IDA7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogJHBvcG92ZXItYXJyb3ctb3V0ZXItY29sb3I7XG4gIH1cblxuICAuYXJyb3c6OmFmdGVyIHtcbiAgICBib3R0b206ICRwb3BvdmVyLWJvcmRlci13aWR0aDtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAkcG9wb3Zlci1hcnJvdy1jb2xvcjtcbiAgfVxufVxuXG4uYnMtcG9wb3Zlci1yaWdodCB7XG4gIG1hcmdpbi1sZWZ0OiAkcG9wb3Zlci1hcnJvdy1oZWlnaHQ7XG5cbiAgLmFycm93IHtcbiAgICBsZWZ0OiBjYWxjKCgjeyRwb3BvdmVyLWFycm93LWhlaWdodH0gKyAjeyRwb3BvdmVyLWJvcmRlci13aWR0aH0pICogLTEpO1xuICAgIHdpZHRoOiAkcG9wb3Zlci1hcnJvdy1oZWlnaHQ7XG4gICAgaGVpZ2h0OiAkcG9wb3Zlci1hcnJvdy13aWR0aDtcbiAgICBtYXJnaW46ICRib3JkZXItcmFkaXVzLWxnIDA7IC8vIG1ha2Ugc3VyZSB0aGUgYXJyb3cgZG9lcyBub3QgdG91Y2ggdGhlIHBvcG92ZXIncyByb3VuZGVkIGNvcm5lcnNcbiAgfVxuXG4gIC5hcnJvdzo6YmVmb3JlLFxuICAuYXJyb3c6OmFmdGVyIHtcbiAgICBib3JkZXItd2lkdGg6ICgkcG9wb3Zlci1hcnJvdy13aWR0aCAvIDIpICRwb3BvdmVyLWFycm93LWhlaWdodCAoJHBvcG92ZXItYXJyb3ctd2lkdGggLyAyKSAwO1xuICB9XG5cbiAgLmFycm93OjpiZWZvcmUge1xuICAgIGxlZnQ6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkcG9wb3Zlci1hcnJvdy1vdXRlci1jb2xvcjtcbiAgfVxuXG4gIC5hcnJvdzo6YWZ0ZXIge1xuICAgIGxlZnQ6ICRwb3BvdmVyLWJvcmRlci13aWR0aDtcbiAgICBib3JkZXItcmlnaHQtY29sb3I6ICRwb3BvdmVyLWFycm93LWNvbG9yO1xuICB9XG59XG5cbi5icy1wb3BvdmVyLWJvdHRvbSB7XG4gIG1hcmdpbi10b3A6ICRwb3BvdmVyLWFycm93LWhlaWdodDtcblxuICAuYXJyb3cge1xuICAgIHRvcDogY2FsYygoI3skcG9wb3Zlci1hcnJvdy1oZWlnaHR9ICsgI3skcG9wb3Zlci1ib3JkZXItd2lkdGh9KSAqIC0xKTtcbiAgfVxuXG4gIC5hcnJvdzo6YmVmb3JlLFxuICAuYXJyb3c6OmFmdGVyIHtcbiAgICBib3JkZXItd2lkdGg6IDAgKCRwb3BvdmVyLWFycm93LXdpZHRoIC8gMikgJHBvcG92ZXItYXJyb3ctaGVpZ2h0ICgkcG9wb3Zlci1hcnJvdy13aWR0aCAvIDIpO1xuICB9XG5cbiAgLmFycm93OjpiZWZvcmUge1xuICAgIHRvcDogMDtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkcG9wb3Zlci1hcnJvdy1vdXRlci1jb2xvcjtcbiAgfVxuXG4gIC5hcnJvdzo6YWZ0ZXIge1xuICAgIHRvcDogJHBvcG92ZXItYm9yZGVyLXdpZHRoO1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRwb3BvdmVyLWFycm93LWNvbG9yO1xuICB9XG5cbiAgLy8gVGhpcyB3aWxsIHJlbW92ZSB0aGUgcG9wb3Zlci1oZWFkZXIncyBib3JkZXIganVzdCBiZWxvdyB0aGUgYXJyb3dcbiAgLnBvcG92ZXItaGVhZGVyOjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAkcG9wb3Zlci1hcnJvdy13aWR0aDtcbiAgICBtYXJnaW4tbGVmdDogKCRwb3BvdmVyLWFycm93LXdpZHRoIC8gLTIpO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgYm9yZGVyLWJvdHRvbTogJHBvcG92ZXItYm9yZGVyLXdpZHRoIHNvbGlkICRwb3BvdmVyLWhlYWRlci1iZztcbiAgfVxufVxuXG4uYnMtcG9wb3Zlci1sZWZ0IHtcbiAgbWFyZ2luLXJpZ2h0OiAkcG9wb3Zlci1hcnJvdy1oZWlnaHQ7XG5cbiAgLmFycm93IHtcbiAgICByaWdodDogY2FsYygoI3skcG9wb3Zlci1hcnJvdy1oZWlnaHR9ICsgI3skcG9wb3Zlci1ib3JkZXItd2lkdGh9KSAqIC0xKTtcbiAgICB3aWR0aDogJHBvcG92ZXItYXJyb3ctaGVpZ2h0O1xuICAgIGhlaWdodDogJHBvcG92ZXItYXJyb3ctd2lkdGg7XG4gICAgbWFyZ2luOiAkYm9yZGVyLXJhZGl1cy1sZyAwOyAvLyBtYWtlIHN1cmUgdGhlIGFycm93IGRvZXMgbm90IHRvdWNoIHRoZSBwb3BvdmVyJ3Mgcm91bmRlZCBjb3JuZXJzXG4gIH1cblxuICAuYXJyb3c6OmJlZm9yZSxcbiAgLmFycm93OjphZnRlciB7XG4gICAgYm9yZGVyLXdpZHRoOiAoJHBvcG92ZXItYXJyb3ctd2lkdGggLyAyKSAwICgkcG9wb3Zlci1hcnJvdy13aWR0aCAvIDIpICRwb3BvdmVyLWFycm93LWhlaWdodDtcbiAgfVxuXG4gIC5hcnJvdzo6YmVmb3JlIHtcbiAgICByaWdodDogMDtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogJHBvcG92ZXItYXJyb3ctb3V0ZXItY29sb3I7XG4gIH1cblxuICAuYXJyb3c6OmFmdGVyIHtcbiAgICByaWdodDogJHBvcG92ZXItYm9yZGVyLXdpZHRoO1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkcG9wb3Zlci1hcnJvdy1jb2xvcjtcbiAgfVxufVxuXG4uYnMtcG9wb3Zlci1hdXRvIHtcbiAgJlt4LXBsYWNlbWVudF49XCJ0b3BcIl0ge1xuICAgIEBleHRlbmQgLmJzLXBvcG92ZXItdG9wO1xuICB9XG4gICZbeC1wbGFjZW1lbnRePVwicmlnaHRcIl0ge1xuICAgIEBleHRlbmQgLmJzLXBvcG92ZXItcmlnaHQ7XG4gIH1cbiAgJlt4LXBsYWNlbWVudF49XCJib3R0b21cIl0ge1xuICAgIEBleHRlbmQgLmJzLXBvcG92ZXItYm90dG9tO1xuICB9XG4gICZbeC1wbGFjZW1lbnRePVwibGVmdFwiXSB7XG4gICAgQGV4dGVuZCAuYnMtcG9wb3Zlci1sZWZ0O1xuICB9XG59XG5cblxuLy8gT2Zmc2V0IHRoZSBwb3BvdmVyIHRvIGFjY291bnQgZm9yIHRoZSBwb3BvdmVyIGFycm93XG4ucG9wb3Zlci1oZWFkZXIge1xuICBwYWRkaW5nOiAkcG9wb3Zlci1oZWFkZXItcGFkZGluZy15ICRwb3BvdmVyLWhlYWRlci1wYWRkaW5nLXg7XG4gIG1hcmdpbi1ib3R0b206IDA7IC8vIFJlc2V0IHRoZSBkZWZhdWx0IGZyb20gUmVib290XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlO1xuICBjb2xvcjogJHBvcG92ZXItaGVhZGVyLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcG9wb3Zlci1oZWFkZXItYmc7XG4gIGJvcmRlci1ib3R0b206ICRwb3BvdmVyLWJvcmRlci13aWR0aCBzb2xpZCBkYXJrZW4oJHBvcG92ZXItaGVhZGVyLWJnLCA1JSk7XG4gICRvZmZzZXQtYm9yZGVyLXdpZHRoOiBjYWxjKCN7JGJvcmRlci1yYWRpdXMtbGd9IC0gI3skcG9wb3Zlci1ib3JkZXItd2lkdGh9KTtcbiAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoJG9mZnNldC1ib3JkZXItd2lkdGgpO1xuXG4gICY6ZW1wdHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnBvcG92ZXItYm9keSB7XG4gIHBhZGRpbmc6ICRwb3BvdmVyLWJvZHktcGFkZGluZy15ICRwb3BvdmVyLWJvZHktcGFkZGluZy14O1xuICBjb2xvcjogJHBvcG92ZXItYm9keS1jb2xvcjtcbn1cbiIsIi8vIE5vdGVzIG9uIHRoZSBjbGFzc2VzOlxuLy9cbi8vIDEuIFRoZSAuY2Fyb3VzZWwtaXRlbS1sZWZ0IGFuZCAuY2Fyb3VzZWwtaXRlbS1yaWdodCBpcyB1c2VkIHRvIGluZGljYXRlIHdoZXJlXG4vLyAgICB0aGUgYWN0aXZlIHNsaWRlIGlzIGhlYWRpbmcuXG4vLyAyLiAuYWN0aXZlLmNhcm91c2VsLWl0ZW0gaXMgdGhlIGN1cnJlbnQgc2xpZGUuXG4vLyAzLiAuYWN0aXZlLmNhcm91c2VsLWl0ZW0tbGVmdCBhbmQgLmFjdGl2ZS5jYXJvdXNlbC1pdGVtLXJpZ2h0IGlzIHRoZSBjdXJyZW50XG4vLyAgICBzbGlkZSBpbiBpdHMgaW4tdHJhbnNpdGlvbiBzdGF0ZS4gT25seSBvbmUgb2YgdGhlc2Ugb2NjdXJzIGF0IGEgdGltZS5cbi8vIDQuIC5jYXJvdXNlbC1pdGVtLW5leHQuY2Fyb3VzZWwtaXRlbS1sZWZ0IGFuZCAuY2Fyb3VzZWwtaXRlbS1wcmV2LmNhcm91c2VsLWl0ZW0tcmlnaHRcbi8vICAgIGlzIHRoZSB1cGNvbWluZyBzbGlkZSBpbiB0cmFuc2l0aW9uLlxuXG4uY2Fyb3VzZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jYXJvdXNlbC1pbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5jYXJvdXNlbC1pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBub25lO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbigkY2Fyb3VzZWwtdHJhbnNpdGlvbik7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgcGVyc3BlY3RpdmU6IDEwMDBweDtcbn1cblxuLmNhcm91c2VsLWl0ZW0uYWN0aXZlLFxuLmNhcm91c2VsLWl0ZW0tbmV4dCxcbi5jYXJvdXNlbC1pdGVtLXByZXYge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmNhcm91c2VsLWl0ZW0tbmV4dCxcbi5jYXJvdXNlbC1pdGVtLXByZXYge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbn1cblxuLmNhcm91c2VsLWl0ZW0tbmV4dC5jYXJvdXNlbC1pdGVtLWxlZnQsXG4uY2Fyb3VzZWwtaXRlbS1wcmV2LmNhcm91c2VsLWl0ZW0tcmlnaHQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG5cbiAgQHN1cHBvcnRzICh0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkKSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG4uY2Fyb3VzZWwtaXRlbS1uZXh0LFxuLmFjdGl2ZS5jYXJvdXNlbC1pdGVtLXJpZ2h0IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuXG4gIEBzdXBwb3J0cyAodHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZCkge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gIH1cbn1cblxuLmNhcm91c2VsLWl0ZW0tcHJldixcbi5hY3RpdmUuY2Fyb3VzZWwtaXRlbS1sZWZ0IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcblxuICBAc3VwcG9ydHMgKHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2QpIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgfVxufVxuXG5cbi8vXG4vLyBBbHRlcm5hdGUgdHJhbnNpdGlvbnNcbi8vXG5cbi5jYXJvdXNlbC1mYWRlIHtcbiAgLmNhcm91c2VsLWl0ZW0ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogLjZzO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG4gIH1cblxuICAuY2Fyb3VzZWwtaXRlbS5hY3RpdmUsXG4gIC5jYXJvdXNlbC1pdGVtLW5leHQuY2Fyb3VzZWwtaXRlbS1sZWZ0LFxuICAuY2Fyb3VzZWwtaXRlbS1wcmV2LmNhcm91c2VsLWl0ZW0tcmlnaHQge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAuYWN0aXZlLmNhcm91c2VsLWl0ZW0tbGVmdCxcbiAgLmFjdGl2ZS5jYXJvdXNlbC1pdGVtLXJpZ2h0IHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgLmNhcm91c2VsLWl0ZW0tbmV4dCxcbiAgLmNhcm91c2VsLWl0ZW0tcHJldixcbiAgLmNhcm91c2VsLWl0ZW0uYWN0aXZlLFxuICAuYWN0aXZlLmNhcm91c2VsLWl0ZW0tbGVmdCxcbiAgLmFjdGl2ZS5jYXJvdXNlbC1pdGVtLXByZXYge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcblxuICAgIEBzdXBwb3J0cyAodHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZCkge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB9XG4gIH1cbn1cblxuXG4vL1xuLy8gTGVmdC9yaWdodCBjb250cm9scyBmb3IgbmF2XG4vL1xuXG4uY2Fyb3VzZWwtY29udHJvbC1wcmV2LFxuLmNhcm91c2VsLWNvbnRyb2wtbmV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIC8vIFVzZSBmbGV4IGZvciBhbGlnbm1lbnQgKDEtMylcbiAgZGlzcGxheTogZmxleDsgLy8gMS4gYWxsb3cgZmxleCBzdHlsZXNcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLy8gMi4gdmVydGljYWxseSBjZW50ZXIgY29udGVudHNcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IC8vIDMuIGhvcml6b250YWxseSBjZW50ZXIgY29udGVudHNcbiAgd2lkdGg6ICRjYXJvdXNlbC1jb250cm9sLXdpZHRoO1xuICBjb2xvcjogJGNhcm91c2VsLWNvbnRyb2wtY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgb3BhY2l0eTogJGNhcm91c2VsLWNvbnRyb2wtb3BhY2l0eTtcbiAgLy8gV2UgY2FuJ3QgaGF2ZSBhIHRyYW5zaXRpb24gaGVyZSBiZWNhdXNlIFdlYktpdCBjYW5jZWxzIHRoZSBjYXJvdXNlbFxuICAvLyBhbmltYXRpb24gaWYgeW91IHRyaXAgdGhpcyB3aGlsZSBpbiB0aGUgbWlkZGxlIG9mIGFub3RoZXIgYW5pbWF0aW9uLlxuXG4gIC8vIEhvdmVyL2ZvY3VzIHN0YXRlXG4gIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICBjb2xvcjogJGNhcm91c2VsLWNvbnRyb2wtY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIG91dGxpbmU6IDA7XG4gICAgb3BhY2l0eTogLjk7XG4gIH1cbn1cbi5jYXJvdXNlbC1jb250cm9sLXByZXYge1xuICBsZWZ0OiAwO1xuICBAaWYgJGVuYWJsZS1ncmFkaWVudHMge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgkYmxhY2ssIC4yNSksIHJnYmEoJGJsYWNrLCAuMDAxKSk7XG4gIH1cbn1cbi5jYXJvdXNlbC1jb250cm9sLW5leHQge1xuICByaWdodDogMDtcbiAgQGlmICRlbmFibGUtZ3JhZGllbnRzIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMjcwZGVnLCByZ2JhKCRibGFjaywgLjI1KSwgcmdiYSgkYmxhY2ssIC4wMDEpKTtcbiAgfVxufVxuXG4vLyBJY29ucyBmb3Igd2l0aGluXG4uY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb24sXG4uY2Fyb3VzZWwtY29udHJvbC1uZXh0LWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAkY2Fyb3VzZWwtY29udHJvbC1pY29uLXdpZHRoO1xuICBoZWlnaHQ6ICRjYXJvdXNlbC1jb250cm9sLWljb24td2lkdGg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTtcbn1cbi5jYXJvdXNlbC1jb250cm9sLXByZXYtaWNvbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6ICRjYXJvdXNlbC1jb250cm9sLXByZXYtaWNvbi1iZztcbn1cbi5jYXJvdXNlbC1jb250cm9sLW5leHQtaWNvbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6ICRjYXJvdXNlbC1jb250cm9sLW5leHQtaWNvbi1iZztcbn1cblxuXG4vLyBPcHRpb25hbCBpbmRpY2F0b3IgcGlwc1xuLy9cbi8vIEFkZCBhbiBvcmRlcmVkIGxpc3Qgd2l0aCB0aGUgZm9sbG93aW5nIGNsYXNzIGFuZCBhZGQgYSBsaXN0IGl0ZW0gZm9yIGVhY2hcbi8vIHNsaWRlIHlvdXIgY2Fyb3VzZWwgaG9sZHMuXG5cbi5jYXJvdXNlbC1pbmRpY2F0b3JzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAxMHB4O1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxNTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmctbGVmdDogMDsgLy8gb3ZlcnJpZGUgPG9sPiBkZWZhdWx0XG4gIC8vIFVzZSB0aGUgLmNhcm91c2VsLWNvbnRyb2wncyB3aWR0aCBhcyBtYXJnaW4gc28gd2UgZG9uJ3Qgb3ZlcmxheSB0aG9zZVxuICBtYXJnaW4tcmlnaHQ6ICRjYXJvdXNlbC1jb250cm9sLXdpZHRoO1xuICBtYXJnaW4tbGVmdDogJGNhcm91c2VsLWNvbnRyb2wtd2lkdGg7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogJGNhcm91c2VsLWluZGljYXRvci13aWR0aDtcbiAgICBoZWlnaHQ6ICRjYXJvdXNlbC1pbmRpY2F0b3ItaGVpZ2h0O1xuICAgIG1hcmdpbi1yaWdodDogJGNhcm91c2VsLWluZGljYXRvci1zcGFjZXI7XG4gICAgbWFyZ2luLWxlZnQ6ICRjYXJvdXNlbC1pbmRpY2F0b3Itc3BhY2VyO1xuICAgIHRleHQtaW5kZW50OiAtOTk5cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGNhcm91c2VsLWluZGljYXRvci1hY3RpdmUtYmcsIC41KTtcblxuICAgIC8vIFVzZSBwc2V1ZG8gY2xhc3NlcyB0byBpbmNyZWFzZSB0aGUgaGl0IGFyZWEgYnkgMTBweCBvbiB0b3AgYW5kIGJvdHRvbS5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAtMTBweDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTBweDtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgfVxuICAgICY6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogLTEwcHg7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgIH1cbiAgfVxuXG4gIC5hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjYXJvdXNlbC1pbmRpY2F0b3ItYWN0aXZlLWJnO1xuICB9XG59XG5cblxuLy8gT3B0aW9uYWwgY2FwdGlvbnNcbi8vXG4vL1xuXG4uY2Fyb3VzZWwtY2FwdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6ICgoMTAwJSAtICRjYXJvdXNlbC1jYXB0aW9uLXdpZHRoKSAvIDIpO1xuICBib3R0b206IDIwcHg7XG4gIGxlZnQ6ICgoMTAwJSAtICRjYXJvdXNlbC1jYXB0aW9uLXdpZHRoKSAvIDIpO1xuICB6LWluZGV4OiAxMDtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICBjb2xvcjogJGNhcm91c2VsLWNhcHRpb24tY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuXG4uYWxpZ24tYmFzZWxpbmUgICAgeyB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmUgIWltcG9ydGFudDsgfSAvLyBCcm93c2VyIGRlZmF1bHRcbi5hbGlnbi10b3AgICAgICAgICB7IHZlcnRpY2FsLWFsaWduOiB0b3AgIWltcG9ydGFudDsgfVxuLmFsaWduLW1pZGRsZSAgICAgIHsgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50OyB9XG4uYWxpZ24tYm90dG9tICAgICAgeyB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tICFpbXBvcnRhbnQ7IH1cbi5hbGlnbi10ZXh0LWJvdHRvbSB7IHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbSAhaW1wb3J0YW50OyB9XG4uYWxpZ24tdGV4dC10b3AgICAgeyB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3AgIWltcG9ydGFudDsgfVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5cbi8vIENvbnRleHR1YWwgYmFja2dyb3VuZHNcblxuQG1peGluIGJnLXZhcmlhbnQoJHBhcmVudCwgJGNvbG9yKSB7XG4gICN7JHBhcmVudH0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvciAhaW1wb3J0YW50O1xuICB9XG4gIGEjeyRwYXJlbnR9LFxuICBidXR0b24jeyRwYXJlbnR9IHtcbiAgICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGNvbG9yLCAxMCUpICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBiZy1ncmFkaWVudC12YXJpYW50KCRwYXJlbnQsICRjb2xvcikge1xuICAjeyRwYXJlbnR9IHtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3IgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgbWl4KCRib2R5LWJnLCAkY29sb3IsIDE1JSksICRjb2xvcikgcmVwZWF0LXggIWltcG9ydGFudDtcbiAgfVxufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5cbkBlYWNoICRjb2xvciwgJHZhbHVlIGluICR0aGVtZS1jb2xvcnMge1xuICBAaW5jbHVkZSBiZy12YXJpYW50KFwiLmJnLSN7JGNvbG9yfVwiLCAkdmFsdWUpO1xufVxuXG5AaWYgJGVuYWJsZS1ncmFkaWVudHMge1xuICBAZWFjaCAkY29sb3IsICR2YWx1ZSBpbiAkdGhlbWUtY29sb3JzIHtcbiAgICBAaW5jbHVkZSBiZy1ncmFkaWVudC12YXJpYW50KFwiLmJnLWdyYWRpZW50LSN7JGNvbG9yfVwiLCAkdmFsdWUpO1xuICB9XG59XG5cbi5iZy13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG4uYmctdHJhbnNwYXJlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5cbi8vXG4vLyBCb3JkZXJcbi8vXG5cbi5ib3JkZXIgICAgICAgICB7IGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCAkYm9yZGVyLWNvbG9yICFpbXBvcnRhbnQ7IH1cbi5ib3JkZXItdG9wICAgICB7IGJvcmRlci10b3A6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvciAhaW1wb3J0YW50OyB9XG4uYm9yZGVyLXJpZ2h0ICAgeyBib3JkZXItcmlnaHQ6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvciAhaW1wb3J0YW50OyB9XG4uYm9yZGVyLWJvdHRvbSAgeyBib3JkZXItYm90dG9tOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRib3JkZXItY29sb3IgIWltcG9ydGFudDsgfVxuLmJvcmRlci1sZWZ0ICAgIHsgYm9yZGVyLWxlZnQ6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvciAhaW1wb3J0YW50OyB9XG5cbi5ib3JkZXItMCAgICAgICAgeyBib3JkZXI6IDAgIWltcG9ydGFudDsgfVxuLmJvcmRlci10b3AtMCAgICB7IGJvcmRlci10b3A6IDAgIWltcG9ydGFudDsgfVxuLmJvcmRlci1yaWdodC0wICB7IGJvcmRlci1yaWdodDogMCAhaW1wb3J0YW50OyB9XG4uYm9yZGVyLWJvdHRvbS0wIHsgYm9yZGVyLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG4uYm9yZGVyLWxlZnQtMCAgIHsgYm9yZGVyLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxuXG5AZWFjaCAkY29sb3IsICR2YWx1ZSBpbiAkdGhlbWUtY29sb3JzIHtcbiAgLmJvcmRlci0jeyRjb2xvcn0ge1xuICAgIGJvcmRlci1jb2xvcjogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmJvcmRlci13aGl0ZSB7XG4gIGJvcmRlci1jb2xvcjogJHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi8vXG4vLyBCb3JkZXItcmFkaXVzXG4vL1xuXG4ucm91bmRlZCB7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzICFpbXBvcnRhbnQ7XG59XG4ucm91bmRlZC10b3Age1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cyAhaW1wb3J0YW50O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJGJvcmRlci1yYWRpdXMgIWltcG9ydGFudDtcbn1cbi5yb3VuZGVkLXJpZ2h0IHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cyAhaW1wb3J0YW50O1xufVxuLnJvdW5kZWQtYm90dG9tIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzICFpbXBvcnRhbnQ7XG59XG4ucm91bmRlZC1sZWZ0IHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJGJvcmRlci1yYWRpdXMgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJGJvcmRlci1yYWRpdXMgIWltcG9ydGFudDtcbn1cblxuLnJvdW5kZWQtY2lyY2xlIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG59XG5cbi5yb3VuZGVkLTAge1xuICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG59XG4iLCJAbWl4aW4gY2xlYXJmaXgoKSB7XG4gICY6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiBcIlwiO1xuICB9XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnRcblxuLy9cbi8vIFV0aWxpdGllcyBmb3IgY29tbW9uIGBkaXNwbGF5YCB2YWx1ZXNcbi8vXG5cbkBlYWNoICRicmVha3BvaW50IGluIG1hcC1rZXlzKCRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQpIHtcbiAgICAkaW5maXg6IGJyZWFrcG9pbnQtaW5maXgoJGJyZWFrcG9pbnQsICRncmlkLWJyZWFrcG9pbnRzKTtcblxuICAgIC5kI3skaW5maXh9LW5vbmUgICAgICAgICB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAgIC5kI3skaW5maXh9LWlubGluZSAgICAgICB7IGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyB9XG4gICAgLmQjeyRpbmZpeH0taW5saW5lLWJsb2NrIHsgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgICAuZCN7JGluZml4fS1ibG9jayAgICAgICAgeyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgLmQjeyRpbmZpeH0tdGFibGUgICAgICAgIHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgIC5kI3skaW5maXh9LXRhYmxlLXJvdyAgICB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgLmQjeyRpbmZpeH0tdGFibGUtY2VsbCAgIHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgLmQjeyRpbmZpeH0tZmxleCAgICAgICAgIHsgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OyB9XG4gICAgLmQjeyRpbmZpeH0taW5saW5lLWZsZXggIHsgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDsgfVxuICB9XG59XG5cblxuLy9cbi8vIFV0aWxpdGllcyBmb3IgdG9nZ2xpbmcgYGRpc3BsYXlgIGluIHByaW50XG4vL1xuXG5AbWVkaWEgcHJpbnQge1xuICAuZC1wcmludC1ub25lICAgICAgICAgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLmQtcHJpbnQtaW5saW5lICAgICAgIHsgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7IH1cbiAgLmQtcHJpbnQtaW5saW5lLWJsb2NrIHsgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgLmQtcHJpbnQtYmxvY2sgICAgICAgIHsgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAuZC1wcmludC10YWJsZSAgICAgICAgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gIC5kLXByaW50LXRhYmxlLXJvdyAgICB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gIC5kLXByaW50LXRhYmxlLWNlbGwgICB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAuZC1wcmludC1mbGV4ICAgICAgICAgeyBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7IH1cbiAgLmQtcHJpbnQtaW5saW5lLWZsZXggIHsgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDsgfVxufVxuIiwiLy8gQ3JlZGl0OiBOaWNvbGFzIEdhbGxhZ2hlciBhbmQgU1VJVCBDU1MuXG5cbi5lbWJlZC1yZXNwb25zaXZlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb250ZW50OiBcIlwiO1xuICB9XG5cbiAgLmVtYmVkLXJlc3BvbnNpdmUtaXRlbSxcbiAgaWZyYW1lLFxuICBlbWJlZCxcbiAgb2JqZWN0LFxuICB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyOiAwO1xuICB9XG59XG5cbi5lbWJlZC1yZXNwb25zaXZlLTIxYnk5IHtcbiAgJjo6YmVmb3JlIHtcbiAgICBwYWRkaW5nLXRvcDogcGVyY2VudGFnZSg5IC8gMjEpO1xuICB9XG59XG5cbi5lbWJlZC1yZXNwb25zaXZlLTE2Ynk5IHtcbiAgJjo6YmVmb3JlIHtcbiAgICBwYWRkaW5nLXRvcDogcGVyY2VudGFnZSg5IC8gMTYpO1xuICB9XG59XG5cbi5lbWJlZC1yZXNwb25zaXZlLTRieTMge1xuICAmOjpiZWZvcmUge1xuICAgIHBhZGRpbmctdG9wOiBwZXJjZW50YWdlKDMgLyA0KTtcbiAgfVxufVxuXG4uZW1iZWQtcmVzcG9uc2l2ZS0xYnkxIHtcbiAgJjo6YmVmb3JlIHtcbiAgICBwYWRkaW5nLXRvcDogcGVyY2VudGFnZSgxIC8gMSk7XG4gIH1cbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuXG4vLyBGbGV4IHZhcmlhdGlvblxuLy9cbi8vIEN1c3RvbSBzdHlsZXMgZm9yIGFkZGl0aW9uYWwgZmxleCBhbGlnbm1lbnQgb3B0aW9ucy5cblxuQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwLWtleXMoJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCkge1xuICAgICRpbmZpeDogYnJlYWtwb2ludC1pbmZpeCgkYnJlYWtwb2ludCwgJGdyaWQtYnJlYWtwb2ludHMpO1xuXG4gICAgLmZsZXgjeyRpbmZpeH0tcm93ICAgICAgICAgICAgeyBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7IH1cbiAgICAuZmxleCN7JGluZml4fS1jb2x1bW4gICAgICAgICB7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDsgfVxuICAgIC5mbGV4I3skaW5maXh9LXJvdy1yZXZlcnNlICAgIHsgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlICFpbXBvcnRhbnQ7IH1cbiAgICAuZmxleCN7JGluZml4fS1jb2x1bW4tcmV2ZXJzZSB7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZSAhaW1wb3J0YW50OyB9XG5cbiAgICAuZmxleCN7JGluZml4fS13cmFwICAgICAgICAgeyBmbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDsgfVxuICAgIC5mbGV4I3skaW5maXh9LW5vd3JhcCAgICAgICB7IGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7IH1cbiAgICAuZmxleCN7JGluZml4fS13cmFwLXJldmVyc2UgeyBmbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZSAhaW1wb3J0YW50OyB9XG4gICAgLmZsZXgjeyRpbmZpeH0tZmlsbCAgICAgICAgIHsgZmxleDogMSAxIGF1dG8gIWltcG9ydGFudDsgfVxuICAgIC5mbGV4I3skaW5maXh9LWdyb3ctMCAgICAgICB7IGZsZXgtZ3JvdzogMCAhaW1wb3J0YW50OyB9XG4gICAgLmZsZXgjeyRpbmZpeH0tZ3Jvdy0xICAgICAgIHsgZmxleC1ncm93OiAxICFpbXBvcnRhbnQ7IH1cbiAgICAuZmxleCN7JGluZml4fS1zaHJpbmstMCAgICAgeyBmbGV4LXNocmluazogMCAhaW1wb3J0YW50OyB9XG4gICAgLmZsZXgjeyRpbmZpeH0tc2hyaW5rLTEgICAgIHsgZmxleC1zaHJpbms6IDEgIWltcG9ydGFudDsgfVxuXG4gICAgLmp1c3RpZnktY29udGVudCN7JGluZml4fS1zdGFydCAgIHsganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cbiAgICAuanVzdGlmeS1jb250ZW50I3skaW5maXh9LWVuZCAgICAgeyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7IH1cbiAgICAuanVzdGlmeS1jb250ZW50I3skaW5maXh9LWNlbnRlciAgeyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OyB9XG4gICAgLmp1c3RpZnktY29udGVudCN7JGluZml4fS1iZXR3ZWVuIHsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7IH1cbiAgICAuanVzdGlmeS1jb250ZW50I3skaW5maXh9LWFyb3VuZCAgeyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50OyB9XG5cbiAgICAuYWxpZ24taXRlbXMjeyRpbmZpeH0tc3RhcnQgICAgeyBhbGlnbi1pdGVtczogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XG4gICAgLmFsaWduLWl0ZW1zI3skaW5maXh9LWVuZCAgICAgIHsgYWxpZ24taXRlbXM6IGZsZXgtZW5kICFpbXBvcnRhbnQ7IH1cbiAgICAuYWxpZ24taXRlbXMjeyRpbmZpeH0tY2VudGVyICAgeyBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7IH1cbiAgICAuYWxpZ24taXRlbXMjeyRpbmZpeH0tYmFzZWxpbmUgeyBhbGlnbi1pdGVtczogYmFzZWxpbmUgIWltcG9ydGFudDsgfVxuICAgIC5hbGlnbi1pdGVtcyN7JGluZml4fS1zdHJldGNoICB7IGFsaWduLWl0ZW1zOiBzdHJldGNoICFpbXBvcnRhbnQ7IH1cblxuICAgIC5hbGlnbi1jb250ZW50I3skaW5maXh9LXN0YXJ0ICAgeyBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cbiAgICAuYWxpZ24tY29udGVudCN7JGluZml4fS1lbmQgICAgIHsgYWxpZ24tY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDsgfVxuICAgIC5hbGlnbi1jb250ZW50I3skaW5maXh9LWNlbnRlciAgeyBhbGlnbi1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDsgfVxuICAgIC5hbGlnbi1jb250ZW50I3skaW5maXh9LWJldHdlZW4geyBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7IH1cbiAgICAuYWxpZ24tY29udGVudCN7JGluZml4fS1hcm91bmQgIHsgYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7IH1cbiAgICAuYWxpZ24tY29udGVudCN7JGluZml4fS1zdHJldGNoIHsgYWxpZ24tY29udGVudDogc3RyZXRjaCAhaW1wb3J0YW50OyB9XG5cbiAgICAuYWxpZ24tc2VsZiN7JGluZml4fS1hdXRvICAgICB7IGFsaWduLXNlbGY6IGF1dG8gIWltcG9ydGFudDsgfVxuICAgIC5hbGlnbi1zZWxmI3skaW5maXh9LXN0YXJ0ICAgIHsgYWxpZ24tc2VsZjogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XG4gICAgLmFsaWduLXNlbGYjeyRpbmZpeH0tZW5kICAgICAgeyBhbGlnbi1zZWxmOiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XG4gICAgLmFsaWduLXNlbGYjeyRpbmZpeH0tY2VudGVyICAgeyBhbGlnbi1zZWxmOiBjZW50ZXIgIWltcG9ydGFudDsgfVxuICAgIC5hbGlnbi1zZWxmI3skaW5maXh9LWJhc2VsaW5lIHsgYWxpZ24tc2VsZjogYmFzZWxpbmUgIWltcG9ydGFudDsgfVxuICAgIC5hbGlnbi1zZWxmI3skaW5maXh9LXN0cmV0Y2ggIHsgYWxpZ24tc2VsZjogc3RyZXRjaCAhaW1wb3J0YW50OyB9XG4gIH1cbn1cbiIsIkBlYWNoICRicmVha3BvaW50IGluIG1hcC1rZXlzKCRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQpIHtcbiAgICAkaW5maXg6IGJyZWFrcG9pbnQtaW5maXgoJGJyZWFrcG9pbnQsICRncmlkLWJyZWFrcG9pbnRzKTtcblxuICAgIC5mbG9hdCN7JGluZml4fS1sZWZ0ICB7IEBpbmNsdWRlIGZsb2F0LWxlZnQ7IH1cbiAgICAuZmxvYXQjeyRpbmZpeH0tcmlnaHQgeyBAaW5jbHVkZSBmbG9hdC1yaWdodDsgfVxuICAgIC5mbG9hdCN7JGluZml4fS1ub25lICB7IEBpbmNsdWRlIGZsb2F0LW5vbmU7IH1cbiAgfVxufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5cbkBtaXhpbiBmbG9hdC1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbn1cbkBtaXhpbiBmbG9hdC1yaWdodCB7XG4gIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xufVxuQG1peGluIGZsb2F0LW5vbmUge1xuICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5cbi8vIENvbW1vbiB2YWx1ZXNcblxuLy8gU2FzcyBsaXN0IG5vdCBpbiB2YXJpYWJsZXMgc2luY2UgaXQncyBub3QgaW50ZW5kZWQgZm9yIGN1c3RvbWl6YXRpb24uXG4vLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtZGVmYXVsdFxuJHBvc2l0aW9uczogc3RhdGljLCByZWxhdGl2ZSwgYWJzb2x1dGUsIGZpeGVkLCBzdGlja3k7XG5cbkBlYWNoICRwb3NpdGlvbiBpbiAkcG9zaXRpb25zIHtcbiAgLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7IHBvc2l0aW9uOiAkcG9zaXRpb24gIWltcG9ydGFudDsgfVxufVxuXG4vLyBTaG9ydGhhbmRcblxuLmZpeGVkLXRvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogJHppbmRleC1maXhlZDtcbn1cblxuLmZpeGVkLWJvdHRvbSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogJHppbmRleC1maXhlZDtcbn1cblxuLnN0aWNreS10b3Age1xuICBAc3VwcG9ydHMgKHBvc2l0aW9uOiBzdGlja3kpIHtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHRvcDogMDtcbiAgICB6LWluZGV4OiAkemluZGV4LXN0aWNreTtcbiAgfVxufVxuIiwiLy9cbi8vIFNjcmVlbnJlYWRlcnNcbi8vXG5cbi5zci1vbmx5IHtcbiAgQGluY2x1ZGUgc3Itb25seSgpO1xufVxuXG4uc3Itb25seS1mb2N1c2FibGUge1xuICBAaW5jbHVkZSBzci1vbmx5LWZvY3VzYWJsZSgpO1xufVxuIiwiLy8gT25seSBkaXNwbGF5IGNvbnRlbnQgdG8gc2NyZWVuIHJlYWRlcnNcbi8vXG4vLyBTZWU6IGh0dHBzOi8vYTExeXByb2plY3QuY29tL3Bvc3RzL2hvdy10by1oaWRlLWNvbnRlbnQvXG4vLyBTZWU6IGh0dHBzOi8vaHVnb2dpcmF1ZGVsLmNvbS8yMDE2LzEwLzEzL2Nzcy1oaWRlLWFuZC1zZWVrL1xuXG5AbWl4aW4gc3Itb25seSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGJvcmRlcjogMDtcbn1cblxuLy8gVXNlIGluIGNvbmp1bmN0aW9uIHdpdGggLnNyLW9ubHkgdG8gb25seSBkaXNwbGF5IGNvbnRlbnQgd2hlbiBpdCdzIGZvY3VzZWQuXG4vL1xuLy8gVXNlZnVsIGZvciBcIlNraXAgdG8gbWFpbiBjb250ZW50XCIgbGlua3M7IHNlZSBodHRwczovL3d3dy53My5vcmcvVFIvMjAxMy9OT1RFLVdDQUcyMC1URUNIUy0yMDEzMDkwNS9HMVxuLy9cbi8vIENyZWRpdDogSFRNTDUgQm9pbGVycGxhdGVcblxuQG1peGluIHNyLW9ubHktZm9jdXNhYmxlIHtcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIGNsaXA6IGF1dG87XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgfVxufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5cbi5zaGFkb3ctc20geyBib3gtc2hhZG93OiAkYm94LXNoYWRvdy1zbSAhaW1wb3J0YW50OyB9XG4uc2hhZG93IHsgYm94LXNoYWRvdzogJGJveC1zaGFkb3cgIWltcG9ydGFudDsgfVxuLnNoYWRvdy1sZyB7IGJveC1zaGFkb3c6ICRib3gtc2hhZG93LWxnICFpbXBvcnRhbnQ7IH1cbi5zaGFkb3ctbm9uZSB7IGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsgfVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5cbi8vIFdpZHRoIGFuZCBoZWlnaHRcblxuQGVhY2ggJHByb3AsICRhYmJyZXYgaW4gKHdpZHRoOiB3LCBoZWlnaHQ6IGgpIHtcbiAgQGVhY2ggJHNpemUsICRsZW5ndGggaW4gJHNpemVzIHtcbiAgICAuI3skYWJicmV2fS0jeyRzaXplfSB7ICN7JHByb3B9OiAkbGVuZ3RoICFpbXBvcnRhbnQ7IH1cbiAgfVxufVxuXG4ubXctMTAwIHsgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbi5taC0xMDAgeyBtYXgtaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7IH1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuXG4vLyBNYXJnaW4gYW5kIFBhZGRpbmdcblxuQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwLWtleXMoJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCkge1xuICAgICRpbmZpeDogYnJlYWtwb2ludC1pbmZpeCgkYnJlYWtwb2ludCwgJGdyaWQtYnJlYWtwb2ludHMpO1xuXG4gICAgQGVhY2ggJHByb3AsICRhYmJyZXYgaW4gKG1hcmdpbjogbSwgcGFkZGluZzogcCkge1xuICAgICAgQGVhY2ggJHNpemUsICRsZW5ndGggaW4gJHNwYWNlcnMge1xuXG4gICAgICAgIC4jeyRhYmJyZXZ9I3skaW5maXh9LSN7JHNpemV9IHsgI3skcHJvcH06ICRsZW5ndGggIWltcG9ydGFudDsgfVxuICAgICAgICAuI3skYWJicmV2fXQjeyRpbmZpeH0tI3skc2l6ZX0sXG4gICAgICAgIC4jeyRhYmJyZXZ9eSN7JGluZml4fS0jeyRzaXplfSB7XG4gICAgICAgICAgI3skcHJvcH0tdG9wOiAkbGVuZ3RoICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLiN7JGFiYnJldn1yI3skaW5maXh9LSN7JHNpemV9LFxuICAgICAgICAuI3skYWJicmV2fXgjeyRpbmZpeH0tI3skc2l6ZX0ge1xuICAgICAgICAgICN7JHByb3B9LXJpZ2h0OiAkbGVuZ3RoICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLiN7JGFiYnJldn1iI3skaW5maXh9LSN7JHNpemV9LFxuICAgICAgICAuI3skYWJicmV2fXkjeyRpbmZpeH0tI3skc2l6ZX0ge1xuICAgICAgICAgICN7JHByb3B9LWJvdHRvbTogJGxlbmd0aCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIC4jeyRhYmJyZXZ9bCN7JGluZml4fS0jeyRzaXplfSxcbiAgICAgICAgLiN7JGFiYnJldn14I3skaW5maXh9LSN7JHNpemV9IHtcbiAgICAgICAgICAjeyRwcm9wfS1sZWZ0OiAkbGVuZ3RoICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTb21lIHNwZWNpYWwgbWFyZ2luIHV0aWxzXG4gICAgLm0jeyRpbmZpeH0tYXV0byB7IG1hcmdpbjogYXV0byAhaW1wb3J0YW50OyB9XG4gICAgLm10I3skaW5maXh9LWF1dG8sXG4gICAgLm15I3skaW5maXh9LWF1dG8ge1xuICAgICAgbWFyZ2luLXRvcDogYXV0byAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAubXIjeyRpbmZpeH0tYXV0byxcbiAgICAubXgjeyRpbmZpeH0tYXV0byB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICB9XG4gICAgLm1iI3skaW5maXh9LWF1dG8sXG4gICAgLm15I3skaW5maXh9LWF1dG8ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogYXV0byAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAubWwjeyRpbmZpeH0tYXV0byxcbiAgICAubXgjeyRpbmZpeH0tYXV0byB7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5cbi8vXG4vLyBUZXh0XG4vL1xuXG4udGV4dC1tb25vc3BhY2UgeyBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTsgfVxuXG4vLyBBbGlnbm1lbnRcblxuLnRleHQtanVzdGlmeSAgeyB0ZXh0LWFsaWduOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7IH1cbi50ZXh0LW5vd3JhcCAgIHsgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50OyB9XG4udGV4dC10cnVuY2F0ZSB7IEBpbmNsdWRlIHRleHQtdHJ1bmNhdGU7IH1cblxuLy8gUmVzcG9uc2l2ZSBhbGlnbm1lbnRcblxuQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwLWtleXMoJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCkge1xuICAgICRpbmZpeDogYnJlYWtwb2ludC1pbmZpeCgkYnJlYWtwb2ludCwgJGdyaWQtYnJlYWtwb2ludHMpO1xuXG4gICAgLnRleHQjeyRpbmZpeH0tbGVmdCAgIHsgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9XG4gICAgLnRleHQjeyRpbmZpeH0tcmlnaHQgIHsgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxuICAgIC50ZXh0I3skaW5maXh9LWNlbnRlciB7IHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OyB9XG4gIH1cbn1cblxuLy8gVHJhbnNmb3JtYXRpb25cblxuLnRleHQtbG93ZXJjYXNlICB7IHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2UgIWltcG9ydGFudDsgfVxuLnRleHQtdXBwZXJjYXNlICB7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWltcG9ydGFudDsgfVxuLnRleHQtY2FwaXRhbGl6ZSB7IHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplICFpbXBvcnRhbnQ7IH1cblxuLy8gV2VpZ2h0IGFuZCBpdGFsaWNzXG5cbi5mb250LXdlaWdodC1saWdodCAgeyBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWxpZ2h0ICFpbXBvcnRhbnQ7IH1cbi5mb250LXdlaWdodC1ub3JtYWwgeyBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhaW1wb3J0YW50OyB9XG4uZm9udC13ZWlnaHQtYm9sZCAgIHsgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFpbXBvcnRhbnQ7IH1cbi5mb250LWl0YWxpYyAgICAgICAgeyBmb250LXN0eWxlOiBpdGFsaWMgIWltcG9ydGFudDsgfVxuXG4vLyBDb250ZXh0dWFsIGNvbG9yc1xuXG4udGV4dC13aGl0ZSB7IGNvbG9yOiAkd2hpdGUgIWltcG9ydGFudDsgfVxuXG5AZWFjaCAkY29sb3IsICR2YWx1ZSBpbiAkdGhlbWUtY29sb3JzIHtcbiAgQGluY2x1ZGUgdGV4dC1lbXBoYXNpcy12YXJpYW50KFwiLnRleHQtI3skY29sb3J9XCIsICR2YWx1ZSk7XG59XG5cbi50ZXh0LWJvZHkgeyBjb2xvcjogJGJvZHktY29sb3IgIWltcG9ydGFudDsgfVxuLnRleHQtbXV0ZWQgeyBjb2xvcjogJHRleHQtbXV0ZWQgIWltcG9ydGFudDsgfVxuXG4udGV4dC1ibGFjay01MCB7IGNvbG9yOiByZ2JhKCRibGFjaywgLjUpICFpbXBvcnRhbnQ7IH1cbi50ZXh0LXdoaXRlLTUwIHsgY29sb3I6IHJnYmEoJHdoaXRlLCAuNSkgIWltcG9ydGFudDsgfVxuXG4vLyBNaXNjXG5cbi50ZXh0LWhpZGUge1xuICBAaW5jbHVkZSB0ZXh0LWhpZGUoJGlnbm9yZS13YXJuaW5nOiB0cnVlKTtcbn1cbiIsIi8vIFRleHQgdHJ1bmNhdGVcbi8vIFJlcXVpcmVzIGlubGluZS1ibG9jayBvciBibG9jayBmb3IgcHJvcGVyIHN0eWxpbmdcblxuQG1peGluIHRleHQtdHJ1bmNhdGUoKSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5cbi8vIFR5cG9ncmFwaHlcblxuQG1peGluIHRleHQtZW1waGFzaXMtdmFyaWFudCgkcGFyZW50LCAkY29sb3IpIHtcbiAgI3skcGFyZW50fSB7XG4gICAgY29sb3I6ICRjb2xvciAhaW1wb3J0YW50O1xuICB9XG4gIGEjeyRwYXJlbnR9IHtcbiAgICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgICBjb2xvcjogZGFya2VuKCRjb2xvciwgMTAlKSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gQ1NTIGltYWdlIHJlcGxhY2VtZW50XG5AbWl4aW4gdGV4dC1oaWRlKCRpZ25vcmUtd2FybmluZzogZmFsc2UpIHtcbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGZvbnQtZmFtaWx5LW5vLW1pc3NpbmctZ2VuZXJpYy1mYW1pbHkta2V5d29yZFxuICBmb250OiAwLzAgYTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcblxuICBAaWYgKCRpZ25vcmUtd2FybmluZyAhPSB0cnVlKSB7XG4gICAgQHdhcm4gXCJUaGUgYHRleHQtaGlkZSgpYCBtaXhpbiBoYXMgYmVlbiBkZXByZWNhdGVkIGFzIG9mIHY0LjEuMS4gSXQgd2lsbCBiZSByZW1vdmVkIGVudGlyZWx5IGluIHY1LlwiO1xuICB9XG59XG4iLCIvL1xuLy8gVmlzaWJpbGl0eSB1dGlsaXRpZXNcbi8vXG5cbi52aXNpYmxlIHtcbiAgQGluY2x1ZGUgaW52aXNpYmxlKHZpc2libGUpO1xufVxuXG4uaW52aXNpYmxlIHtcbiAgQGluY2x1ZGUgaW52aXNpYmxlKGhpZGRlbik7XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnRcblxuLy8gVmlzaWJpbGl0eVxuXG5AbWl4aW4gaW52aXNpYmxlKCR2aXNpYmlsaXR5KSB7XG4gIHZpc2liaWxpdHk6ICR2aXNpYmlsaXR5ICFpbXBvcnRhbnQ7XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnQsIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZVxuXG4vLyBTb3VyY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3NcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFByaW50IHN0eWxlcy5cbi8vIElubGluZWQgdG8gYXZvaWQgdGhlIGFkZGl0aW9uYWwgSFRUUCByZXF1ZXN0OlxuLy8gaHR0cHM6Ly93d3cucGhwaWVkLmNvbS9kZWxheS1sb2FkaW5nLXlvdXItcHJpbnQtY3NzL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGlmICRlbmFibGUtcHJpbnQtc3R5bGVzIHtcbiAgQG1lZGlhIHByaW50IHtcbiAgICAqLFxuICAgICo6OmJlZm9yZSxcbiAgICAqOjphZnRlciB7XG4gICAgICAvLyBCb290c3RyYXAgc3BlY2lmaWM7IGNvbW1lbnQgb3V0IGBjb2xvcmAgYW5kIGBiYWNrZ3JvdW5kYFxuICAgICAgLy9jb2xvcjogJGJsYWNrICFpbXBvcnRhbnQ7IC8vIEJsYWNrIHByaW50cyBmYXN0ZXJcbiAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAvL2JhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAmOm5vdCguYnRuKSB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJvb3RzdHJhcCBzcGVjaWZpYzsgY29tbWVudCB0aGUgZm9sbG93aW5nIHNlbGVjdG9yIG91dFxuICAgIC8vYVtocmVmXTo6YWZ0ZXIge1xuICAgIC8vICBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjtcbiAgICAvL31cblxuICAgIGFiYnJbdGl0bGVdOjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7XG4gICAgfVxuXG4gICAgLy8gQm9vdHN0cmFwIHNwZWNpZmljOyBjb21tZW50IHRoZSBmb2xsb3dpbmcgc2VsZWN0b3Igb3V0XG4gICAgLy9cbiAgICAvLyBEb24ndCBzaG93IGxpbmtzIHRoYXQgYXJlIGZyYWdtZW50IGlkZW50aWZpZXJzLFxuICAgIC8vIG9yIHVzZSB0aGUgYGphdmFzY3JpcHQ6YCBwc2V1ZG8gcHJvdG9jb2xcbiAgICAvL1xuXG4gICAgLy9hW2hyZWZePVwiI1wiXTo6YWZ0ZXIsXG4gICAgLy9hW2hyZWZePVwiamF2YXNjcmlwdDpcIl06OmFmdGVyIHtcbiAgICAvLyBjb250ZW50OiBcIlwiO1xuICAgIC8vfVxuXG4gICAgcHJlIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBwcmUsXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQgJGdyYXktNTAwOyAgIC8vIEJvb3RzdHJhcCBjdXN0b20gY29kZTsgdXNpbmcgYCRib3JkZXItd2lkdGhgIGluc3RlYWQgb2YgMXB4XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBQcmludGluZyBUYWJsZXM6XG4gICAgLy8gaHR0cDovL2Nzcy1kaXNjdXNzLmluY3V0aW8uY29tL3dpa2kvUHJpbnRpbmdfVGFibGVzXG4gICAgLy9cblxuICAgIHRoZWFkIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDtcbiAgICB9XG5cbiAgICB0cixcbiAgICBpbWcge1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgIHAsXG4gICAgaDIsXG4gICAgaDMge1xuICAgICAgb3JwaGFuczogMztcbiAgICAgIHdpZG93czogMztcbiAgICB9XG5cbiAgICBoMixcbiAgICBoMyB7XG4gICAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDtcbiAgICB9XG5cbiAgICAvLyBCb290c3RyYXAgc3BlY2lmaWMgY2hhbmdlcyBzdGFydFxuXG4gICAgLy8gU3BlY2lmeSBhIHNpemUgYW5kIG1pbi13aWR0aCB0byBtYWtlIHByaW50aW5nIGNsb3NlciBhY3Jvc3MgYnJvd3NlcnMuXG4gICAgLy8gV2UgZG9uJ3Qgc2V0IG1hcmdpbiBoZXJlIGJlY2F1c2UgaXQgYnJlYWtzIGBzaXplYCBpbiBDaHJvbWUuIFdlIGFsc29cbiAgICAvLyBkb24ndCB1c2UgYCFpbXBvcnRhbnRgIG9uIGBzaXplYCBhcyBpdCBicmVha3MgaW4gQ2hyb21lLlxuICAgIEBwYWdlIHtcbiAgICAgIHNpemU6ICRwcmludC1wYWdlLXNpemU7XG4gICAgfVxuICAgIGJvZHkge1xuICAgICAgbWluLXdpZHRoOiAkcHJpbnQtYm9keS1taW4td2lkdGggIWltcG9ydGFudDtcbiAgICB9XG4gICAgLmNvbnRhaW5lciB7XG4gICAgICBtaW4td2lkdGg6ICRwcmludC1ib2R5LW1pbi13aWR0aCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC8vIEJvb3RzdHJhcCBjb21wb25lbnRzXG4gICAgLm5hdmJhciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAuYmFkZ2Uge1xuICAgICAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRibGFjaztcbiAgICB9XG5cbiAgICAudGFibGUge1xuICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSAhaW1wb3J0YW50O1xuXG4gICAgICB0ZCxcbiAgICAgIHRoIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRhYmxlLWJvcmRlcmVkIHtcbiAgICAgIHRoLFxuICAgICAgdGQge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JheS0zMDAgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudGFibGUtZGFyayB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcblxuICAgICAgdGgsXG4gICAgICB0ZCxcbiAgICAgIHRoZWFkIHRoLFxuICAgICAgdGJvZHkgKyB0Ym9keSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudGFibGUgLnRoZWFkLWRhcmsgdGgge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICBib3JkZXItY29sb3I6ICR0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgfVxuXG4gICAgLy8gQm9vdHN0cmFwIHNwZWNpZmljIGNoYW5nZXMgZW5kXG4gIH1cbn1cbiIsIi8qIVxuICogQm9vdHN0cmFwIHY0LjEuMSAoaHR0cHM6Ly9nZXRib290c3RyYXAuY29tLylcbiAqIENvcHlyaWdodCAyMDExLTIwMTggVGhlIEJvb3RzdHJhcCBBdXRob3JzXG4gKiBDb3B5cmlnaHQgMjAxMS0yMDE4IFR3aXR0ZXIsIEluYy5cbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpXG4gKi86cm9vdHstLWJsdWU6IzAwN2JmZjstLWluZGlnbzojNjYxMGYyOy0tcHVycGxlOiM2ZjQyYzE7LS1waW5rOiNlODNlOGM7LS1yZWQ6I2RjMzU0NTstLW9yYW5nZTojZmQ3ZTE0Oy0teWVsbG93OiNmZmMxMDc7LS1ncmVlbjojMjhhNzQ1Oy0tdGVhbDojMjBjOTk3Oy0tY3lhbjojMTdhMmI4Oy0td2hpdGU6I2ZmZjstLWdyYXk6IzZjNzU3ZDstLWdyYXktZGFyazojMzQzYTQwOy0tcHJpbWFyeTojMDA3YmZmOy0tc2Vjb25kYXJ5OiM2Yzc1N2Q7LS1zdWNjZXNzOiMyOGE3NDU7LS1pbmZvOiMxN2EyYjg7LS13YXJuaW5nOiNmZmMxMDc7LS1kYW5nZXI6I2RjMzU0NTstLWxpZ2h0OiNmOGY5ZmE7LS1kYXJrOiMzNDNhNDA7LS1icmVha3BvaW50LXhzOjA7LS1icmVha3BvaW50LXNtOjU3NnB4Oy0tYnJlYWtwb2ludC1tZDo3NjhweDstLWJyZWFrcG9pbnQtbGc6OTkycHg7LS1icmVha3BvaW50LXhsOjEyMDBweDstLWZvbnQtZmFtaWx5LXNhbnMtc2VyaWY6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsXCJTZWdvZSBVSVwiLFJvYm90byxcIkhlbHZldGljYSBOZXVlXCIsQXJpYWwsc2Fucy1zZXJpZixcIkFwcGxlIENvbG9yIEVtb2ppXCIsXCJTZWdvZSBVSSBFbW9qaVwiLFwiU2Vnb2UgVUkgU3ltYm9sXCI7LS1mb250LWZhbWlseS1tb25vc3BhY2U6U0ZNb25vLVJlZ3VsYXIsTWVubG8sTW9uYWNvLENvbnNvbGFzLFwiTGliZXJhdGlvbiBNb25vXCIsXCJDb3VyaWVyIE5ld1wiLG1vbm9zcGFjZX0qLDo6YWZ0ZXIsOjpiZWZvcmV7Ym94LXNpemluZzpib3JkZXItYm94fWh0bWx7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtsaW5lLWhlaWdodDoxLjE1Oy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDoxMDAlOy1tcy10ZXh0LXNpemUtYWRqdXN0OjEwMCU7LW1zLW92ZXJmbG93LXN0eWxlOnNjcm9sbGJhcjstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnR9QC1tcy12aWV3cG9ydHt3aWR0aDpkZXZpY2Utd2lkdGh9YXJ0aWNsZSxhc2lkZSxmaWdjYXB0aW9uLGZpZ3VyZSxmb290ZXIsaGVhZGVyLGhncm91cCxtYWluLG5hdixzZWN0aW9ue2Rpc3BsYXk6YmxvY2t9Ym9keXttYXJnaW46MDtmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxcIlNlZ29lIFVJXCIsUm9ib3RvLFwiSGVsdmV0aWNhIE5ldWVcIixBcmlhbCxzYW5zLXNlcmlmLFwiQXBwbGUgQ29sb3IgRW1vamlcIixcIlNlZ29lIFVJIEVtb2ppXCIsXCJTZWdvZSBVSSBTeW1ib2xcIjtmb250LXNpemU6MXJlbTtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS41O2NvbG9yOiMyMTI1Mjk7dGV4dC1hbGlnbjpsZWZ0O2JhY2tncm91bmQtY29sb3I6I2ZmZn1bdGFiaW5kZXg9XCItMVwiXTpmb2N1c3tvdXRsaW5lOjAhaW1wb3J0YW50fWhye2JveC1zaXppbmc6Y29udGVudC1ib3g7aGVpZ2h0OjA7b3ZlcmZsb3c6dmlzaWJsZX1oMSxoMixoMyxoNCxoNSxoNnttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTouNXJlbX1we21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjFyZW19YWJicltkYXRhLW9yaWdpbmFsLXRpdGxlXSxhYmJyW3RpdGxlXXt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOy13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWQ7Y3Vyc29yOmhlbHA7Ym9yZGVyLWJvdHRvbTowfWFkZHJlc3N7bWFyZ2luLWJvdHRvbToxcmVtO2ZvbnQtc3R5bGU6bm9ybWFsO2xpbmUtaGVpZ2h0OmluaGVyaXR9ZGwsb2wsdWx7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MXJlbX1vbCBvbCxvbCB1bCx1bCBvbCx1bCB1bHttYXJnaW4tYm90dG9tOjB9ZHR7Zm9udC13ZWlnaHQ6NzAwfWRke21hcmdpbi1ib3R0b206LjVyZW07bWFyZ2luLWxlZnQ6MH1ibG9ja3F1b3Rle21hcmdpbjowIDAgMXJlbX1kZm57Zm9udC1zdHlsZTppdGFsaWN9YixzdHJvbmd7Zm9udC13ZWlnaHQ6Ym9sZGVyfXNtYWxse2ZvbnQtc2l6ZTo4MCV9c3ViLHN1cHtwb3NpdGlvbjpyZWxhdGl2ZTtmb250LXNpemU6NzUlO2xpbmUtaGVpZ2h0OjA7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9c3Vie2JvdHRvbTotLjI1ZW19c3Vwe3RvcDotLjVlbX1he2NvbG9yOiMwMDdiZmY7dGV4dC1kZWNvcmF0aW9uOm5vbmU7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDstd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOm9iamVjdHN9YTpob3Zlcntjb2xvcjojMDA1NmIzO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9YTpub3QoW2hyZWZdKTpub3QoW3RhYmluZGV4XSl7Y29sb3I6aW5oZXJpdDt0ZXh0LWRlY29yYXRpb246bm9uZX1hOm5vdChbaHJlZl0pOm5vdChbdGFiaW5kZXhdKTpmb2N1cyxhOm5vdChbaHJlZl0pOm5vdChbdGFiaW5kZXhdKTpob3Zlcntjb2xvcjppbmhlcml0O3RleHQtZGVjb3JhdGlvbjpub25lfWE6bm90KFtocmVmXSk6bm90KFt0YWJpbmRleF0pOmZvY3Vze291dGxpbmU6MH1jb2RlLGtiZCxwcmUsc2FtcHtmb250LWZhbWlseTpTRk1vbm8tUmVndWxhcixNZW5sbyxNb25hY28sQ29uc29sYXMsXCJMaWJlcmF0aW9uIE1vbm9cIixcIkNvdXJpZXIgTmV3XCIsbW9ub3NwYWNlO2ZvbnQtc2l6ZToxZW19cHJle21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjFyZW07b3ZlcmZsb3c6YXV0bzstbXMtb3ZlcmZsb3ctc3R5bGU6c2Nyb2xsYmFyfWZpZ3VyZXttYXJnaW46MCAwIDFyZW19aW1ne3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtib3JkZXItc3R5bGU6bm9uZX1zdmc6bm90KDpyb290KXtvdmVyZmxvdzpoaWRkZW59dGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlfWNhcHRpb257cGFkZGluZy10b3A6Ljc1cmVtO3BhZGRpbmctYm90dG9tOi43NXJlbTtjb2xvcjojNmM3NTdkO3RleHQtYWxpZ246bGVmdDtjYXB0aW9uLXNpZGU6Ym90dG9tfXRoe3RleHQtYWxpZ246aW5oZXJpdH1sYWJlbHtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tYm90dG9tOi41cmVtfWJ1dHRvbntib3JkZXItcmFkaXVzOjB9YnV0dG9uOmZvY3Vze291dGxpbmU6MXB4IGRvdHRlZDtvdXRsaW5lOjVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcn1idXR0b24saW5wdXQsb3B0Z3JvdXAsc2VsZWN0LHRleHRhcmVhe21hcmdpbjowO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7bGluZS1oZWlnaHQ6aW5oZXJpdH1idXR0b24saW5wdXR7b3ZlcmZsb3c6dmlzaWJsZX1idXR0b24sc2VsZWN0e3RleHQtdHJhbnNmb3JtOm5vbmV9W3R5cGU9cmVzZXRdLFt0eXBlPXN1Ym1pdF0sYnV0dG9uLGh0bWwgW3R5cGU9YnV0dG9uXXstd2Via2l0LWFwcGVhcmFuY2U6YnV0dG9ufVt0eXBlPWJ1dHRvbl06Oi1tb3otZm9jdXMtaW5uZXIsW3R5cGU9cmVzZXRdOjotbW96LWZvY3VzLWlubmVyLFt0eXBlPXN1Ym1pdF06Oi1tb3otZm9jdXMtaW5uZXIsYnV0dG9uOjotbW96LWZvY3VzLWlubmVye3BhZGRpbmc6MDtib3JkZXItc3R5bGU6bm9uZX1pbnB1dFt0eXBlPWNoZWNrYm94XSxpbnB1dFt0eXBlPXJhZGlvXXtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzowfWlucHV0W3R5cGU9ZGF0ZV0saW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF0saW5wdXRbdHlwZT1tb250aF0saW5wdXRbdHlwZT10aW1lXXstd2Via2l0LWFwcGVhcmFuY2U6bGlzdGJveH10ZXh0YXJlYXtvdmVyZmxvdzphdXRvO3Jlc2l6ZTp2ZXJ0aWNhbH1maWVsZHNldHttaW4td2lkdGg6MDtwYWRkaW5nOjA7bWFyZ2luOjA7Ym9yZGVyOjB9bGVnZW5ke2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJTtwYWRkaW5nOjA7bWFyZ2luLWJvdHRvbTouNXJlbTtmb250LXNpemU6MS41cmVtO2xpbmUtaGVpZ2h0OmluaGVyaXQ7Y29sb3I6aW5oZXJpdDt3aGl0ZS1zcGFjZTpub3JtYWx9cHJvZ3Jlc3N7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixbdHlwZT1udW1iZXJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9ue2hlaWdodDphdXRvfVt0eXBlPXNlYXJjaF17b3V0bGluZS1vZmZzZXQ6LTJweDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX1bdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9Ojotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbntmb250OmluaGVyaXQ7LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbn1vdXRwdXR7ZGlzcGxheTppbmxpbmUtYmxvY2t9c3VtbWFyeXtkaXNwbGF5Omxpc3QtaXRlbTtjdXJzb3I6cG9pbnRlcn10ZW1wbGF0ZXtkaXNwbGF5Om5vbmV9W2hpZGRlbl17ZGlzcGxheTpub25lIWltcG9ydGFudH0uaDEsLmgyLC5oMywuaDQsLmg1LC5oNixoMSxoMixoMyxoNCxoNSxoNnttYXJnaW4tYm90dG9tOi41cmVtO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjEuMjtjb2xvcjppbmhlcml0fS5oMSxoMXtmb250LXNpemU6Mi41cmVtfS5oMixoMntmb250LXNpemU6MnJlbX0uaDMsaDN7Zm9udC1zaXplOjEuNzVyZW19Lmg0LGg0e2ZvbnQtc2l6ZToxLjVyZW19Lmg1LGg1e2ZvbnQtc2l6ZToxLjI1cmVtfS5oNixoNntmb250LXNpemU6MXJlbX0ubGVhZHtmb250LXNpemU6MS4yNXJlbTtmb250LXdlaWdodDozMDB9LmRpc3BsYXktMXtmb250LXNpemU6NnJlbTtmb250LXdlaWdodDozMDA7bGluZS1oZWlnaHQ6MS4yfS5kaXNwbGF5LTJ7Zm9udC1zaXplOjUuNXJlbTtmb250LXdlaWdodDozMDA7bGluZS1oZWlnaHQ6MS4yfS5kaXNwbGF5LTN7Zm9udC1zaXplOjQuNXJlbTtmb250LXdlaWdodDozMDA7bGluZS1oZWlnaHQ6MS4yfS5kaXNwbGF5LTR7Zm9udC1zaXplOjMuNXJlbTtmb250LXdlaWdodDozMDA7bGluZS1oZWlnaHQ6MS4yfWhye21hcmdpbi10b3A6MXJlbTttYXJnaW4tYm90dG9tOjFyZW07Ym9yZGVyOjA7Ym9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgwLDAsMCwuMSl9LnNtYWxsLHNtYWxse2ZvbnQtc2l6ZTo4MCU7Zm9udC13ZWlnaHQ6NDAwfS5tYXJrLG1hcmt7cGFkZGluZzouMmVtO2JhY2tncm91bmQtY29sb3I6I2ZjZjhlM30ubGlzdC11bnN0eWxlZHtwYWRkaW5nLWxlZnQ6MDtsaXN0LXN0eWxlOm5vbmV9Lmxpc3QtaW5saW5le3BhZGRpbmctbGVmdDowO2xpc3Qtc3R5bGU6bm9uZX0ubGlzdC1pbmxpbmUtaXRlbXtkaXNwbGF5OmlubGluZS1ibG9ja30ubGlzdC1pbmxpbmUtaXRlbTpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1yaWdodDouNXJlbX0uaW5pdGlhbGlzbXtmb250LXNpemU6OTAlO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0uYmxvY2txdW90ZXttYXJnaW4tYm90dG9tOjFyZW07Zm9udC1zaXplOjEuMjVyZW19LmJsb2NrcXVvdGUtZm9vdGVye2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjgwJTtjb2xvcjojNmM3NTdkfS5ibG9ja3F1b3RlLWZvb3Rlcjo6YmVmb3Jle2NvbnRlbnQ6XCJcXDIwMTQgXFwwMEEwXCJ9LmltZy1mbHVpZHttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6YXV0b30uaW1nLXRodW1ibmFpbHtwYWRkaW5nOi4yNXJlbTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZGVlMmU2O2JvcmRlci1yYWRpdXM6LjI1cmVtO21heC13aWR0aDoxMDAlO2hlaWdodDphdXRvfS5maWd1cmV7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmZpZ3VyZS1pbWd7bWFyZ2luLWJvdHRvbTouNXJlbTtsaW5lLWhlaWdodDoxfS5maWd1cmUtY2FwdGlvbntmb250LXNpemU6OTAlO2NvbG9yOiM2Yzc1N2R9Y29kZXtmb250LXNpemU6ODcuNSU7Y29sb3I6I2U4M2U4Yzt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9YT5jb2Rle2NvbG9yOmluaGVyaXR9a2Jke3BhZGRpbmc6LjJyZW0gLjRyZW07Zm9udC1zaXplOjg3LjUlO2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMjEyNTI5O2JvcmRlci1yYWRpdXM6LjJyZW19a2JkIGtiZHtwYWRkaW5nOjA7Zm9udC1zaXplOjEwMCU7Zm9udC13ZWlnaHQ6NzAwfXByZXtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZTo4Ny41JTtjb2xvcjojMjEyNTI5fXByZSBjb2Rle2ZvbnQtc2l6ZTppbmhlcml0O2NvbG9yOmluaGVyaXQ7d29yZC1icmVhazpub3JtYWx9LnByZS1zY3JvbGxhYmxle21heC1oZWlnaHQ6MzQwcHg7b3ZlcmZsb3cteTpzY3JvbGx9LmNvbnRhaW5lcnt3aWR0aDoxMDAlO3BhZGRpbmctcmlnaHQ6MTVweDtwYWRkaW5nLWxlZnQ6MTVweDttYXJnaW4tcmlnaHQ6YXV0bzttYXJnaW4tbGVmdDphdXRvfUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsuY29udGFpbmVye21heC13aWR0aDo1NDBweH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5jb250YWluZXJ7bWF4LXdpZHRoOjcyMHB4fX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7LmNvbnRhaW5lcnttYXgtd2lkdGg6OTYwcHh9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7LmNvbnRhaW5lcnttYXgtd2lkdGg6MTE0MHB4fX0uY29udGFpbmVyLWZsdWlke3dpZHRoOjEwMCU7cGFkZGluZy1yaWdodDoxNXB4O3BhZGRpbmctbGVmdDoxNXB4O21hcmdpbi1yaWdodDphdXRvO21hcmdpbi1sZWZ0OmF1dG99LnJvd3tkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstbXMtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXA7bWFyZ2luLXJpZ2h0Oi0xNXB4O21hcmdpbi1sZWZ0Oi0xNXB4fS5uby1ndXR0ZXJze21hcmdpbi1yaWdodDowO21hcmdpbi1sZWZ0OjB9Lm5vLWd1dHRlcnM+LmNvbCwubm8tZ3V0dGVycz5bY2xhc3MqPWNvbC1de3BhZGRpbmctcmlnaHQ6MDtwYWRkaW5nLWxlZnQ6MH0uY29sLC5jb2wtMSwuY29sLTEwLC5jb2wtMTEsLmNvbC0xMiwuY29sLTIsLmNvbC0zLC5jb2wtNCwuY29sLTUsLmNvbC02LC5jb2wtNywuY29sLTgsLmNvbC05LC5jb2wtYXV0bywuY29sLWxnLC5jb2wtbGctMSwuY29sLWxnLTEwLC5jb2wtbGctMTEsLmNvbC1sZy0xMiwuY29sLWxnLTIsLmNvbC1sZy0zLC5jb2wtbGctNCwuY29sLWxnLTUsLmNvbC1sZy02LC5jb2wtbGctNywuY29sLWxnLTgsLmNvbC1sZy05LC5jb2wtbGctYXV0bywuY29sLW1kLC5jb2wtbWQtMSwuY29sLW1kLTEwLC5jb2wtbWQtMTEsLmNvbC1tZC0xMiwuY29sLW1kLTIsLmNvbC1tZC0zLC5jb2wtbWQtNCwuY29sLW1kLTUsLmNvbC1tZC02LC5jb2wtbWQtNywuY29sLW1kLTgsLmNvbC1tZC05LC5jb2wtbWQtYXV0bywuY29sLXNtLC5jb2wtc20tMSwuY29sLXNtLTEwLC5jb2wtc20tMTEsLmNvbC1zbS0xMiwuY29sLXNtLTIsLmNvbC1zbS0zLC5jb2wtc20tNCwuY29sLXNtLTUsLmNvbC1zbS02LC5jb2wtc20tNywuY29sLXNtLTgsLmNvbC1zbS05LC5jb2wtc20tYXV0bywuY29sLXhsLC5jb2wteGwtMSwuY29sLXhsLTEwLC5jb2wteGwtMTEsLmNvbC14bC0xMiwuY29sLXhsLTIsLmNvbC14bC0zLC5jb2wteGwtNCwuY29sLXhsLTUsLmNvbC14bC02LC5jb2wteGwtNywuY29sLXhsLTgsLmNvbC14bC05LC5jb2wteGwtYXV0b3twb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO21pbi1oZWlnaHQ6MXB4O3BhZGRpbmctcmlnaHQ6MTVweDtwYWRkaW5nLWxlZnQ6MTVweH0uY29sey1tcy1mbGV4LXByZWZlcnJlZC1zaXplOjA7ZmxleC1iYXNpczowOy1tcy1mbGV4LXBvc2l0aXZlOjE7ZmxleC1ncm93OjE7bWF4LXdpZHRoOjEwMCV9LmNvbC1hdXRvey1tcy1mbGV4OjAgMCBhdXRvO2ZsZXg6MCAwIGF1dG87d2lkdGg6YXV0bzttYXgtd2lkdGg6bm9uZX0uY29sLTF7LW1zLWZsZXg6MCAwIDguMzMzMzMzJTtmbGV4OjAgMCA4LjMzMzMzMyU7bWF4LXdpZHRoOjguMzMzMzMzJX0uY29sLTJ7LW1zLWZsZXg6MCAwIDE2LjY2NjY2NyU7ZmxleDowIDAgMTYuNjY2NjY3JTttYXgtd2lkdGg6MTYuNjY2NjY3JX0uY29sLTN7LW1zLWZsZXg6MCAwIDI1JTtmbGV4OjAgMCAyNSU7bWF4LXdpZHRoOjI1JX0uY29sLTR7LW1zLWZsZXg6MCAwIDMzLjMzMzMzMyU7ZmxleDowIDAgMzMuMzMzMzMzJTttYXgtd2lkdGg6MzMuMzMzMzMzJX0uY29sLTV7LW1zLWZsZXg6MCAwIDQxLjY2NjY2NyU7ZmxleDowIDAgNDEuNjY2NjY3JTttYXgtd2lkdGg6NDEuNjY2NjY3JX0uY29sLTZ7LW1zLWZsZXg6MCAwIDUwJTtmbGV4OjAgMCA1MCU7bWF4LXdpZHRoOjUwJX0uY29sLTd7LW1zLWZsZXg6MCAwIDU4LjMzMzMzMyU7ZmxleDowIDAgNTguMzMzMzMzJTttYXgtd2lkdGg6NTguMzMzMzMzJX0uY29sLTh7LW1zLWZsZXg6MCAwIDY2LjY2NjY2NyU7ZmxleDowIDAgNjYuNjY2NjY3JTttYXgtd2lkdGg6NjYuNjY2NjY3JX0uY29sLTl7LW1zLWZsZXg6MCAwIDc1JTtmbGV4OjAgMCA3NSU7bWF4LXdpZHRoOjc1JX0uY29sLTEwey1tcy1mbGV4OjAgMCA4My4zMzMzMzMlO2ZsZXg6MCAwIDgzLjMzMzMzMyU7bWF4LXdpZHRoOjgzLjMzMzMzMyV9LmNvbC0xMXstbXMtZmxleDowIDAgOTEuNjY2NjY3JTtmbGV4OjAgMCA5MS42NjY2NjclO21heC13aWR0aDo5MS42NjY2NjclfS5jb2wtMTJ7LW1zLWZsZXg6MCAwIDEwMCU7ZmxleDowIDAgMTAwJTttYXgtd2lkdGg6MTAwJX0ub3JkZXItZmlyc3R7LW1zLWZsZXgtb3JkZXI6LTE7b3JkZXI6LTF9Lm9yZGVyLWxhc3R7LW1zLWZsZXgtb3JkZXI6MTM7b3JkZXI6MTN9Lm9yZGVyLTB7LW1zLWZsZXgtb3JkZXI6MDtvcmRlcjowfS5vcmRlci0xey1tcy1mbGV4LW9yZGVyOjE7b3JkZXI6MX0ub3JkZXItMnstbXMtZmxleC1vcmRlcjoyO29yZGVyOjJ9Lm9yZGVyLTN7LW1zLWZsZXgtb3JkZXI6MztvcmRlcjozfS5vcmRlci00ey1tcy1mbGV4LW9yZGVyOjQ7b3JkZXI6NH0ub3JkZXItNXstbXMtZmxleC1vcmRlcjo1O29yZGVyOjV9Lm9yZGVyLTZ7LW1zLWZsZXgtb3JkZXI6NjtvcmRlcjo2fS5vcmRlci03ey1tcy1mbGV4LW9yZGVyOjc7b3JkZXI6N30ub3JkZXItOHstbXMtZmxleC1vcmRlcjo4O29yZGVyOjh9Lm9yZGVyLTl7LW1zLWZsZXgtb3JkZXI6OTtvcmRlcjo5fS5vcmRlci0xMHstbXMtZmxleC1vcmRlcjoxMDtvcmRlcjoxMH0ub3JkZXItMTF7LW1zLWZsZXgtb3JkZXI6MTE7b3JkZXI6MTF9Lm9yZGVyLTEyey1tcy1mbGV4LW9yZGVyOjEyO29yZGVyOjEyfS5vZmZzZXQtMXttYXJnaW4tbGVmdDo4LjMzMzMzMyV9Lm9mZnNldC0ye21hcmdpbi1sZWZ0OjE2LjY2NjY2NyV9Lm9mZnNldC0ze21hcmdpbi1sZWZ0OjI1JX0ub2Zmc2V0LTR7bWFyZ2luLWxlZnQ6MzMuMzMzMzMzJX0ub2Zmc2V0LTV7bWFyZ2luLWxlZnQ6NDEuNjY2NjY3JX0ub2Zmc2V0LTZ7bWFyZ2luLWxlZnQ6NTAlfS5vZmZzZXQtN3ttYXJnaW4tbGVmdDo1OC4zMzMzMzMlfS5vZmZzZXQtOHttYXJnaW4tbGVmdDo2Ni42NjY2NjclfS5vZmZzZXQtOXttYXJnaW4tbGVmdDo3NSV9Lm9mZnNldC0xMHttYXJnaW4tbGVmdDo4My4zMzMzMzMlfS5vZmZzZXQtMTF7bWFyZ2luLWxlZnQ6OTEuNjY2NjY3JX1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7LmNvbC1zbXstbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTowO2ZsZXgtYmFzaXM6MDstbXMtZmxleC1wb3NpdGl2ZToxO2ZsZXgtZ3JvdzoxO21heC13aWR0aDoxMDAlfS5jb2wtc20tYXV0b3stbXMtZmxleDowIDAgYXV0bztmbGV4OjAgMCBhdXRvO3dpZHRoOmF1dG87bWF4LXdpZHRoOm5vbmV9LmNvbC1zbS0xey1tcy1mbGV4OjAgMCA4LjMzMzMzMyU7ZmxleDowIDAgOC4zMzMzMzMlO21heC13aWR0aDo4LjMzMzMzMyV9LmNvbC1zbS0yey1tcy1mbGV4OjAgMCAxNi42NjY2NjclO2ZsZXg6MCAwIDE2LjY2NjY2NyU7bWF4LXdpZHRoOjE2LjY2NjY2NyV9LmNvbC1zbS0zey1tcy1mbGV4OjAgMCAyNSU7ZmxleDowIDAgMjUlO21heC13aWR0aDoyNSV9LmNvbC1zbS00ey1tcy1mbGV4OjAgMCAzMy4zMzMzMzMlO2ZsZXg6MCAwIDMzLjMzMzMzMyU7bWF4LXdpZHRoOjMzLjMzMzMzMyV9LmNvbC1zbS01ey1tcy1mbGV4OjAgMCA0MS42NjY2NjclO2ZsZXg6MCAwIDQxLjY2NjY2NyU7bWF4LXdpZHRoOjQxLjY2NjY2NyV9LmNvbC1zbS02ey1tcy1mbGV4OjAgMCA1MCU7ZmxleDowIDAgNTAlO21heC13aWR0aDo1MCV9LmNvbC1zbS03ey1tcy1mbGV4OjAgMCA1OC4zMzMzMzMlO2ZsZXg6MCAwIDU4LjMzMzMzMyU7bWF4LXdpZHRoOjU4LjMzMzMzMyV9LmNvbC1zbS04ey1tcy1mbGV4OjAgMCA2Ni42NjY2NjclO2ZsZXg6MCAwIDY2LjY2NjY2NyU7bWF4LXdpZHRoOjY2LjY2NjY2NyV9LmNvbC1zbS05ey1tcy1mbGV4OjAgMCA3NSU7ZmxleDowIDAgNzUlO21heC13aWR0aDo3NSV9LmNvbC1zbS0xMHstbXMtZmxleDowIDAgODMuMzMzMzMzJTtmbGV4OjAgMCA4My4zMzMzMzMlO21heC13aWR0aDo4My4zMzMzMzMlfS5jb2wtc20tMTF7LW1zLWZsZXg6MCAwIDkxLjY2NjY2NyU7ZmxleDowIDAgOTEuNjY2NjY3JTttYXgtd2lkdGg6OTEuNjY2NjY3JX0uY29sLXNtLTEyey1tcy1mbGV4OjAgMCAxMDAlO2ZsZXg6MCAwIDEwMCU7bWF4LXdpZHRoOjEwMCV9Lm9yZGVyLXNtLWZpcnN0ey1tcy1mbGV4LW9yZGVyOi0xO29yZGVyOi0xfS5vcmRlci1zbS1sYXN0ey1tcy1mbGV4LW9yZGVyOjEzO29yZGVyOjEzfS5vcmRlci1zbS0wey1tcy1mbGV4LW9yZGVyOjA7b3JkZXI6MH0ub3JkZXItc20tMXstbXMtZmxleC1vcmRlcjoxO29yZGVyOjF9Lm9yZGVyLXNtLTJ7LW1zLWZsZXgtb3JkZXI6MjtvcmRlcjoyfS5vcmRlci1zbS0zey1tcy1mbGV4LW9yZGVyOjM7b3JkZXI6M30ub3JkZXItc20tNHstbXMtZmxleC1vcmRlcjo0O29yZGVyOjR9Lm9yZGVyLXNtLTV7LW1zLWZsZXgtb3JkZXI6NTtvcmRlcjo1fS5vcmRlci1zbS02ey1tcy1mbGV4LW9yZGVyOjY7b3JkZXI6Nn0ub3JkZXItc20tN3stbXMtZmxleC1vcmRlcjo3O29yZGVyOjd9Lm9yZGVyLXNtLTh7LW1zLWZsZXgtb3JkZXI6ODtvcmRlcjo4fS5vcmRlci1zbS05ey1tcy1mbGV4LW9yZGVyOjk7b3JkZXI6OX0ub3JkZXItc20tMTB7LW1zLWZsZXgtb3JkZXI6MTA7b3JkZXI6MTB9Lm9yZGVyLXNtLTExey1tcy1mbGV4LW9yZGVyOjExO29yZGVyOjExfS5vcmRlci1zbS0xMnstbXMtZmxleC1vcmRlcjoxMjtvcmRlcjoxMn0ub2Zmc2V0LXNtLTB7bWFyZ2luLWxlZnQ6MH0ub2Zmc2V0LXNtLTF7bWFyZ2luLWxlZnQ6OC4zMzMzMzMlfS5vZmZzZXQtc20tMnttYXJnaW4tbGVmdDoxNi42NjY2NjclfS5vZmZzZXQtc20tM3ttYXJnaW4tbGVmdDoyNSV9Lm9mZnNldC1zbS00e21hcmdpbi1sZWZ0OjMzLjMzMzMzMyV9Lm9mZnNldC1zbS01e21hcmdpbi1sZWZ0OjQxLjY2NjY2NyV9Lm9mZnNldC1zbS02e21hcmdpbi1sZWZ0OjUwJX0ub2Zmc2V0LXNtLTd7bWFyZ2luLWxlZnQ6NTguMzMzMzMzJX0ub2Zmc2V0LXNtLTh7bWFyZ2luLWxlZnQ6NjYuNjY2NjY3JX0ub2Zmc2V0LXNtLTl7bWFyZ2luLWxlZnQ6NzUlfS5vZmZzZXQtc20tMTB7bWFyZ2luLWxlZnQ6ODMuMzMzMzMzJX0ub2Zmc2V0LXNtLTExe21hcmdpbi1sZWZ0OjkxLjY2NjY2NyV9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsuY29sLW1key1tcy1mbGV4LXByZWZlcnJlZC1zaXplOjA7ZmxleC1iYXNpczowOy1tcy1mbGV4LXBvc2l0aXZlOjE7ZmxleC1ncm93OjE7bWF4LXdpZHRoOjEwMCV9LmNvbC1tZC1hdXRvey1tcy1mbGV4OjAgMCBhdXRvO2ZsZXg6MCAwIGF1dG87d2lkdGg6YXV0bzttYXgtd2lkdGg6bm9uZX0uY29sLW1kLTF7LW1zLWZsZXg6MCAwIDguMzMzMzMzJTtmbGV4OjAgMCA4LjMzMzMzMyU7bWF4LXdpZHRoOjguMzMzMzMzJX0uY29sLW1kLTJ7LW1zLWZsZXg6MCAwIDE2LjY2NjY2NyU7ZmxleDowIDAgMTYuNjY2NjY3JTttYXgtd2lkdGg6MTYuNjY2NjY3JX0uY29sLW1kLTN7LW1zLWZsZXg6MCAwIDI1JTtmbGV4OjAgMCAyNSU7bWF4LXdpZHRoOjI1JX0uY29sLW1kLTR7LW1zLWZsZXg6MCAwIDMzLjMzMzMzMyU7ZmxleDowIDAgMzMuMzMzMzMzJTttYXgtd2lkdGg6MzMuMzMzMzMzJX0uY29sLW1kLTV7LW1zLWZsZXg6MCAwIDQxLjY2NjY2NyU7ZmxleDowIDAgNDEuNjY2NjY3JTttYXgtd2lkdGg6NDEuNjY2NjY3JX0uY29sLW1kLTZ7LW1zLWZsZXg6MCAwIDUwJTtmbGV4OjAgMCA1MCU7bWF4LXdpZHRoOjUwJX0uY29sLW1kLTd7LW1zLWZsZXg6MCAwIDU4LjMzMzMzMyU7ZmxleDowIDAgNTguMzMzMzMzJTttYXgtd2lkdGg6NTguMzMzMzMzJX0uY29sLW1kLTh7LW1zLWZsZXg6MCAwIDY2LjY2NjY2NyU7ZmxleDowIDAgNjYuNjY2NjY3JTttYXgtd2lkdGg6NjYuNjY2NjY3JX0uY29sLW1kLTl7LW1zLWZsZXg6MCAwIDc1JTtmbGV4OjAgMCA3NSU7bWF4LXdpZHRoOjc1JX0uY29sLW1kLTEwey1tcy1mbGV4OjAgMCA4My4zMzMzMzMlO2ZsZXg6MCAwIDgzLjMzMzMzMyU7bWF4LXdpZHRoOjgzLjMzMzMzMyV9LmNvbC1tZC0xMXstbXMtZmxleDowIDAgOTEuNjY2NjY3JTtmbGV4OjAgMCA5MS42NjY2NjclO21heC13aWR0aDo5MS42NjY2NjclfS5jb2wtbWQtMTJ7LW1zLWZsZXg6MCAwIDEwMCU7ZmxleDowIDAgMTAwJTttYXgtd2lkdGg6MTAwJX0ub3JkZXItbWQtZmlyc3R7LW1zLWZsZXgtb3JkZXI6LTE7b3JkZXI6LTF9Lm9yZGVyLW1kLWxhc3R7LW1zLWZsZXgtb3JkZXI6MTM7b3JkZXI6MTN9Lm9yZGVyLW1kLTB7LW1zLWZsZXgtb3JkZXI6MDtvcmRlcjowfS5vcmRlci1tZC0xey1tcy1mbGV4LW9yZGVyOjE7b3JkZXI6MX0ub3JkZXItbWQtMnstbXMtZmxleC1vcmRlcjoyO29yZGVyOjJ9Lm9yZGVyLW1kLTN7LW1zLWZsZXgtb3JkZXI6MztvcmRlcjozfS5vcmRlci1tZC00ey1tcy1mbGV4LW9yZGVyOjQ7b3JkZXI6NH0ub3JkZXItbWQtNXstbXMtZmxleC1vcmRlcjo1O29yZGVyOjV9Lm9yZGVyLW1kLTZ7LW1zLWZsZXgtb3JkZXI6NjtvcmRlcjo2fS5vcmRlci1tZC03ey1tcy1mbGV4LW9yZGVyOjc7b3JkZXI6N30ub3JkZXItbWQtOHstbXMtZmxleC1vcmRlcjo4O29yZGVyOjh9Lm9yZGVyLW1kLTl7LW1zLWZsZXgtb3JkZXI6OTtvcmRlcjo5fS5vcmRlci1tZC0xMHstbXMtZmxleC1vcmRlcjoxMDtvcmRlcjoxMH0ub3JkZXItbWQtMTF7LW1zLWZsZXgtb3JkZXI6MTE7b3JkZXI6MTF9Lm9yZGVyLW1kLTEyey1tcy1mbGV4LW9yZGVyOjEyO29yZGVyOjEyfS5vZmZzZXQtbWQtMHttYXJnaW4tbGVmdDowfS5vZmZzZXQtbWQtMXttYXJnaW4tbGVmdDo4LjMzMzMzMyV9Lm9mZnNldC1tZC0ye21hcmdpbi1sZWZ0OjE2LjY2NjY2NyV9Lm9mZnNldC1tZC0ze21hcmdpbi1sZWZ0OjI1JX0ub2Zmc2V0LW1kLTR7bWFyZ2luLWxlZnQ6MzMuMzMzMzMzJX0ub2Zmc2V0LW1kLTV7bWFyZ2luLWxlZnQ6NDEuNjY2NjY3JX0ub2Zmc2V0LW1kLTZ7bWFyZ2luLWxlZnQ6NTAlfS5vZmZzZXQtbWQtN3ttYXJnaW4tbGVmdDo1OC4zMzMzMzMlfS5vZmZzZXQtbWQtOHttYXJnaW4tbGVmdDo2Ni42NjY2NjclfS5vZmZzZXQtbWQtOXttYXJnaW4tbGVmdDo3NSV9Lm9mZnNldC1tZC0xMHttYXJnaW4tbGVmdDo4My4zMzMzMzMlfS5vZmZzZXQtbWQtMTF7bWFyZ2luLWxlZnQ6OTEuNjY2NjY3JX19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpey5jb2wtbGd7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6MDtmbGV4LWJhc2lzOjA7LW1zLWZsZXgtcG9zaXRpdmU6MTtmbGV4LWdyb3c6MTttYXgtd2lkdGg6MTAwJX0uY29sLWxnLWF1dG97LW1zLWZsZXg6MCAwIGF1dG87ZmxleDowIDAgYXV0bzt3aWR0aDphdXRvO21heC13aWR0aDpub25lfS5jb2wtbGctMXstbXMtZmxleDowIDAgOC4zMzMzMzMlO2ZsZXg6MCAwIDguMzMzMzMzJTttYXgtd2lkdGg6OC4zMzMzMzMlfS5jb2wtbGctMnstbXMtZmxleDowIDAgMTYuNjY2NjY3JTtmbGV4OjAgMCAxNi42NjY2NjclO21heC13aWR0aDoxNi42NjY2NjclfS5jb2wtbGctM3stbXMtZmxleDowIDAgMjUlO2ZsZXg6MCAwIDI1JTttYXgtd2lkdGg6MjUlfS5jb2wtbGctNHstbXMtZmxleDowIDAgMzMuMzMzMzMzJTtmbGV4OjAgMCAzMy4zMzMzMzMlO21heC13aWR0aDozMy4zMzMzMzMlfS5jb2wtbGctNXstbXMtZmxleDowIDAgNDEuNjY2NjY3JTtmbGV4OjAgMCA0MS42NjY2NjclO21heC13aWR0aDo0MS42NjY2NjclfS5jb2wtbGctNnstbXMtZmxleDowIDAgNTAlO2ZsZXg6MCAwIDUwJTttYXgtd2lkdGg6NTAlfS5jb2wtbGctN3stbXMtZmxleDowIDAgNTguMzMzMzMzJTtmbGV4OjAgMCA1OC4zMzMzMzMlO21heC13aWR0aDo1OC4zMzMzMzMlfS5jb2wtbGctOHstbXMtZmxleDowIDAgNjYuNjY2NjY3JTtmbGV4OjAgMCA2Ni42NjY2NjclO21heC13aWR0aDo2Ni42NjY2NjclfS5jb2wtbGctOXstbXMtZmxleDowIDAgNzUlO2ZsZXg6MCAwIDc1JTttYXgtd2lkdGg6NzUlfS5jb2wtbGctMTB7LW1zLWZsZXg6MCAwIDgzLjMzMzMzMyU7ZmxleDowIDAgODMuMzMzMzMzJTttYXgtd2lkdGg6ODMuMzMzMzMzJX0uY29sLWxnLTExey1tcy1mbGV4OjAgMCA5MS42NjY2NjclO2ZsZXg6MCAwIDkxLjY2NjY2NyU7bWF4LXdpZHRoOjkxLjY2NjY2NyV9LmNvbC1sZy0xMnstbXMtZmxleDowIDAgMTAwJTtmbGV4OjAgMCAxMDAlO21heC13aWR0aDoxMDAlfS5vcmRlci1sZy1maXJzdHstbXMtZmxleC1vcmRlcjotMTtvcmRlcjotMX0ub3JkZXItbGctbGFzdHstbXMtZmxleC1vcmRlcjoxMztvcmRlcjoxM30ub3JkZXItbGctMHstbXMtZmxleC1vcmRlcjowO29yZGVyOjB9Lm9yZGVyLWxnLTF7LW1zLWZsZXgtb3JkZXI6MTtvcmRlcjoxfS5vcmRlci1sZy0yey1tcy1mbGV4LW9yZGVyOjI7b3JkZXI6Mn0ub3JkZXItbGctM3stbXMtZmxleC1vcmRlcjozO29yZGVyOjN9Lm9yZGVyLWxnLTR7LW1zLWZsZXgtb3JkZXI6NDtvcmRlcjo0fS5vcmRlci1sZy01ey1tcy1mbGV4LW9yZGVyOjU7b3JkZXI6NX0ub3JkZXItbGctNnstbXMtZmxleC1vcmRlcjo2O29yZGVyOjZ9Lm9yZGVyLWxnLTd7LW1zLWZsZXgtb3JkZXI6NztvcmRlcjo3fS5vcmRlci1sZy04ey1tcy1mbGV4LW9yZGVyOjg7b3JkZXI6OH0ub3JkZXItbGctOXstbXMtZmxleC1vcmRlcjo5O29yZGVyOjl9Lm9yZGVyLWxnLTEwey1tcy1mbGV4LW9yZGVyOjEwO29yZGVyOjEwfS5vcmRlci1sZy0xMXstbXMtZmxleC1vcmRlcjoxMTtvcmRlcjoxMX0ub3JkZXItbGctMTJ7LW1zLWZsZXgtb3JkZXI6MTI7b3JkZXI6MTJ9Lm9mZnNldC1sZy0we21hcmdpbi1sZWZ0OjB9Lm9mZnNldC1sZy0xe21hcmdpbi1sZWZ0OjguMzMzMzMzJX0ub2Zmc2V0LWxnLTJ7bWFyZ2luLWxlZnQ6MTYuNjY2NjY3JX0ub2Zmc2V0LWxnLTN7bWFyZ2luLWxlZnQ6MjUlfS5vZmZzZXQtbGctNHttYXJnaW4tbGVmdDozMy4zMzMzMzMlfS5vZmZzZXQtbGctNXttYXJnaW4tbGVmdDo0MS42NjY2NjclfS5vZmZzZXQtbGctNnttYXJnaW4tbGVmdDo1MCV9Lm9mZnNldC1sZy03e21hcmdpbi1sZWZ0OjU4LjMzMzMzMyV9Lm9mZnNldC1sZy04e21hcmdpbi1sZWZ0OjY2LjY2NjY2NyV9Lm9mZnNldC1sZy05e21hcmdpbi1sZWZ0Ojc1JX0ub2Zmc2V0LWxnLTEwe21hcmdpbi1sZWZ0OjgzLjMzMzMzMyV9Lm9mZnNldC1sZy0xMXttYXJnaW4tbGVmdDo5MS42NjY2NjclfX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5jb2wteGx7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6MDtmbGV4LWJhc2lzOjA7LW1zLWZsZXgtcG9zaXRpdmU6MTtmbGV4LWdyb3c6MTttYXgtd2lkdGg6MTAwJX0uY29sLXhsLWF1dG97LW1zLWZsZXg6MCAwIGF1dG87ZmxleDowIDAgYXV0bzt3aWR0aDphdXRvO21heC13aWR0aDpub25lfS5jb2wteGwtMXstbXMtZmxleDowIDAgOC4zMzMzMzMlO2ZsZXg6MCAwIDguMzMzMzMzJTttYXgtd2lkdGg6OC4zMzMzMzMlfS5jb2wteGwtMnstbXMtZmxleDowIDAgMTYuNjY2NjY3JTtmbGV4OjAgMCAxNi42NjY2NjclO21heC13aWR0aDoxNi42NjY2NjclfS5jb2wteGwtM3stbXMtZmxleDowIDAgMjUlO2ZsZXg6MCAwIDI1JTttYXgtd2lkdGg6MjUlfS5jb2wteGwtNHstbXMtZmxleDowIDAgMzMuMzMzMzMzJTtmbGV4OjAgMCAzMy4zMzMzMzMlO21heC13aWR0aDozMy4zMzMzMzMlfS5jb2wteGwtNXstbXMtZmxleDowIDAgNDEuNjY2NjY3JTtmbGV4OjAgMCA0MS42NjY2NjclO21heC13aWR0aDo0MS42NjY2NjclfS5jb2wteGwtNnstbXMtZmxleDowIDAgNTAlO2ZsZXg6MCAwIDUwJTttYXgtd2lkdGg6NTAlfS5jb2wteGwtN3stbXMtZmxleDowIDAgNTguMzMzMzMzJTtmbGV4OjAgMCA1OC4zMzMzMzMlO21heC13aWR0aDo1OC4zMzMzMzMlfS5jb2wteGwtOHstbXMtZmxleDowIDAgNjYuNjY2NjY3JTtmbGV4OjAgMCA2Ni42NjY2NjclO21heC13aWR0aDo2Ni42NjY2NjclfS5jb2wteGwtOXstbXMtZmxleDowIDAgNzUlO2ZsZXg6MCAwIDc1JTttYXgtd2lkdGg6NzUlfS5jb2wteGwtMTB7LW1zLWZsZXg6MCAwIDgzLjMzMzMzMyU7ZmxleDowIDAgODMuMzMzMzMzJTttYXgtd2lkdGg6ODMuMzMzMzMzJX0uY29sLXhsLTExey1tcy1mbGV4OjAgMCA5MS42NjY2NjclO2ZsZXg6MCAwIDkxLjY2NjY2NyU7bWF4LXdpZHRoOjkxLjY2NjY2NyV9LmNvbC14bC0xMnstbXMtZmxleDowIDAgMTAwJTtmbGV4OjAgMCAxMDAlO21heC13aWR0aDoxMDAlfS5vcmRlci14bC1maXJzdHstbXMtZmxleC1vcmRlcjotMTtvcmRlcjotMX0ub3JkZXIteGwtbGFzdHstbXMtZmxleC1vcmRlcjoxMztvcmRlcjoxM30ub3JkZXIteGwtMHstbXMtZmxleC1vcmRlcjowO29yZGVyOjB9Lm9yZGVyLXhsLTF7LW1zLWZsZXgtb3JkZXI6MTtvcmRlcjoxfS5vcmRlci14bC0yey1tcy1mbGV4LW9yZGVyOjI7b3JkZXI6Mn0ub3JkZXIteGwtM3stbXMtZmxleC1vcmRlcjozO29yZGVyOjN9Lm9yZGVyLXhsLTR7LW1zLWZsZXgtb3JkZXI6NDtvcmRlcjo0fS5vcmRlci14bC01ey1tcy1mbGV4LW9yZGVyOjU7b3JkZXI6NX0ub3JkZXIteGwtNnstbXMtZmxleC1vcmRlcjo2O29yZGVyOjZ9Lm9yZGVyLXhsLTd7LW1zLWZsZXgtb3JkZXI6NztvcmRlcjo3fS5vcmRlci14bC04ey1tcy1mbGV4LW9yZGVyOjg7b3JkZXI6OH0ub3JkZXIteGwtOXstbXMtZmxleC1vcmRlcjo5O29yZGVyOjl9Lm9yZGVyLXhsLTEwey1tcy1mbGV4LW9yZGVyOjEwO29yZGVyOjEwfS5vcmRlci14bC0xMXstbXMtZmxleC1vcmRlcjoxMTtvcmRlcjoxMX0ub3JkZXIteGwtMTJ7LW1zLWZsZXgtb3JkZXI6MTI7b3JkZXI6MTJ9Lm9mZnNldC14bC0we21hcmdpbi1sZWZ0OjB9Lm9mZnNldC14bC0xe21hcmdpbi1sZWZ0OjguMzMzMzMzJX0ub2Zmc2V0LXhsLTJ7bWFyZ2luLWxlZnQ6MTYuNjY2NjY3JX0ub2Zmc2V0LXhsLTN7bWFyZ2luLWxlZnQ6MjUlfS5vZmZzZXQteGwtNHttYXJnaW4tbGVmdDozMy4zMzMzMzMlfS5vZmZzZXQteGwtNXttYXJnaW4tbGVmdDo0MS42NjY2NjclfS5vZmZzZXQteGwtNnttYXJnaW4tbGVmdDo1MCV9Lm9mZnNldC14bC03e21hcmdpbi1sZWZ0OjU4LjMzMzMzMyV9Lm9mZnNldC14bC04e21hcmdpbi1sZWZ0OjY2LjY2NjY2NyV9Lm9mZnNldC14bC05e21hcmdpbi1sZWZ0Ojc1JX0ub2Zmc2V0LXhsLTEwe21hcmdpbi1sZWZ0OjgzLjMzMzMzMyV9Lm9mZnNldC14bC0xMXttYXJnaW4tbGVmdDo5MS42NjY2NjclfX0udGFibGV7d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJTttYXJnaW4tYm90dG9tOjFyZW07YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0udGFibGUgdGQsLnRhYmxlIHRoe3BhZGRpbmc6Ljc1cmVtO3ZlcnRpY2FsLWFsaWduOnRvcDtib3JkZXItdG9wOjFweCBzb2xpZCAjZGVlMmU2fS50YWJsZSB0aGVhZCB0aHt2ZXJ0aWNhbC1hbGlnbjpib3R0b207Ym9yZGVyLWJvdHRvbToycHggc29saWQgI2RlZTJlNn0udGFibGUgdGJvZHkrdGJvZHl7Ym9yZGVyLXRvcDoycHggc29saWQgI2RlZTJlNn0udGFibGUgLnRhYmxle2JhY2tncm91bmQtY29sb3I6I2ZmZn0udGFibGUtc20gdGQsLnRhYmxlLXNtIHRoe3BhZGRpbmc6LjNyZW19LnRhYmxlLWJvcmRlcmVke2JvcmRlcjoxcHggc29saWQgI2RlZTJlNn0udGFibGUtYm9yZGVyZWQgdGQsLnRhYmxlLWJvcmRlcmVkIHRoe2JvcmRlcjoxcHggc29saWQgI2RlZTJlNn0udGFibGUtYm9yZGVyZWQgdGhlYWQgdGQsLnRhYmxlLWJvcmRlcmVkIHRoZWFkIHRoe2JvcmRlci1ib3R0b20td2lkdGg6MnB4fS50YWJsZS1ib3JkZXJsZXNzIHRib2R5K3Rib2R5LC50YWJsZS1ib3JkZXJsZXNzIHRkLC50YWJsZS1ib3JkZXJsZXNzIHRoLC50YWJsZS1ib3JkZXJsZXNzIHRoZWFkIHRoe2JvcmRlcjowfS50YWJsZS1zdHJpcGVkIHRib2R5IHRyOm50aC1vZi10eXBlKG9kZCl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4wNSl9LnRhYmxlLWhvdmVyIHRib2R5IHRyOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMDc1KX0udGFibGUtcHJpbWFyeSwudGFibGUtcHJpbWFyeT50ZCwudGFibGUtcHJpbWFyeT50aHtiYWNrZ3JvdW5kLWNvbG9yOiNiOGRhZmZ9LnRhYmxlLWhvdmVyIC50YWJsZS1wcmltYXJ5OmhvdmVye2JhY2tncm91bmQtY29sb3I6IzlmY2RmZn0udGFibGUtaG92ZXIgLnRhYmxlLXByaW1hcnk6aG92ZXI+dGQsLnRhYmxlLWhvdmVyIC50YWJsZS1wcmltYXJ5OmhvdmVyPnRoe2JhY2tncm91bmQtY29sb3I6IzlmY2RmZn0udGFibGUtc2Vjb25kYXJ5LC50YWJsZS1zZWNvbmRhcnk+dGQsLnRhYmxlLXNlY29uZGFyeT50aHtiYWNrZ3JvdW5kLWNvbG9yOiNkNmQ4ZGJ9LnRhYmxlLWhvdmVyIC50YWJsZS1zZWNvbmRhcnk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojYzhjYmNmfS50YWJsZS1ob3ZlciAudGFibGUtc2Vjb25kYXJ5OmhvdmVyPnRkLC50YWJsZS1ob3ZlciAudGFibGUtc2Vjb25kYXJ5OmhvdmVyPnRoe2JhY2tncm91bmQtY29sb3I6I2M4Y2JjZn0udGFibGUtc3VjY2VzcywudGFibGUtc3VjY2Vzcz50ZCwudGFibGUtc3VjY2Vzcz50aHtiYWNrZ3JvdW5kLWNvbG9yOiNjM2U2Y2J9LnRhYmxlLWhvdmVyIC50YWJsZS1zdWNjZXNzOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2IxZGZiYn0udGFibGUtaG92ZXIgLnRhYmxlLXN1Y2Nlc3M6aG92ZXI+dGQsLnRhYmxlLWhvdmVyIC50YWJsZS1zdWNjZXNzOmhvdmVyPnRoe2JhY2tncm91bmQtY29sb3I6I2IxZGZiYn0udGFibGUtaW5mbywudGFibGUtaW5mbz50ZCwudGFibGUtaW5mbz50aHtiYWNrZ3JvdW5kLWNvbG9yOiNiZWU1ZWJ9LnRhYmxlLWhvdmVyIC50YWJsZS1pbmZvOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2FiZGRlNX0udGFibGUtaG92ZXIgLnRhYmxlLWluZm86aG92ZXI+dGQsLnRhYmxlLWhvdmVyIC50YWJsZS1pbmZvOmhvdmVyPnRoe2JhY2tncm91bmQtY29sb3I6I2FiZGRlNX0udGFibGUtd2FybmluZywudGFibGUtd2FybmluZz50ZCwudGFibGUtd2FybmluZz50aHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmVlYmF9LnRhYmxlLWhvdmVyIC50YWJsZS13YXJuaW5nOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2ZmZThhMX0udGFibGUtaG92ZXIgLnRhYmxlLXdhcm5pbmc6aG92ZXI+dGQsLnRhYmxlLWhvdmVyIC50YWJsZS13YXJuaW5nOmhvdmVyPnRoe2JhY2tncm91bmQtY29sb3I6I2ZmZThhMX0udGFibGUtZGFuZ2VyLC50YWJsZS1kYW5nZXI+dGQsLnRhYmxlLWRhbmdlcj50aHtiYWNrZ3JvdW5kLWNvbG9yOiNmNWM2Y2J9LnRhYmxlLWhvdmVyIC50YWJsZS1kYW5nZXI6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZjFiMGI3fS50YWJsZS1ob3ZlciAudGFibGUtZGFuZ2VyOmhvdmVyPnRkLC50YWJsZS1ob3ZlciAudGFibGUtZGFuZ2VyOmhvdmVyPnRoe2JhY2tncm91bmQtY29sb3I6I2YxYjBiN30udGFibGUtbGlnaHQsLnRhYmxlLWxpZ2h0PnRkLC50YWJsZS1saWdodD50aHtiYWNrZ3JvdW5kLWNvbG9yOiNmZGZkZmV9LnRhYmxlLWhvdmVyIC50YWJsZS1saWdodDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlY2VjZjZ9LnRhYmxlLWhvdmVyIC50YWJsZS1saWdodDpob3Zlcj50ZCwudGFibGUtaG92ZXIgLnRhYmxlLWxpZ2h0OmhvdmVyPnRoe2JhY2tncm91bmQtY29sb3I6I2VjZWNmNn0udGFibGUtZGFyaywudGFibGUtZGFyaz50ZCwudGFibGUtZGFyaz50aHtiYWNrZ3JvdW5kLWNvbG9yOiNjNmM4Y2F9LnRhYmxlLWhvdmVyIC50YWJsZS1kYXJrOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2I5YmJiZX0udGFibGUtaG92ZXIgLnRhYmxlLWRhcms6aG92ZXI+dGQsLnRhYmxlLWhvdmVyIC50YWJsZS1kYXJrOmhvdmVyPnRoe2JhY2tncm91bmQtY29sb3I6I2I5YmJiZX0udGFibGUtYWN0aXZlLC50YWJsZS1hY3RpdmU+dGQsLnRhYmxlLWFjdGl2ZT50aHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjA3NSl9LnRhYmxlLWhvdmVyIC50YWJsZS1hY3RpdmU6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4wNzUpfS50YWJsZS1ob3ZlciAudGFibGUtYWN0aXZlOmhvdmVyPnRkLC50YWJsZS1ob3ZlciAudGFibGUtYWN0aXZlOmhvdmVyPnRoe2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMDc1KX0udGFibGUgLnRoZWFkLWRhcmsgdGh7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMyMTI1Mjk7Ym9yZGVyLWNvbG9yOiMzMjM4M2V9LnRhYmxlIC50aGVhZC1saWdodCB0aHtjb2xvcjojNDk1MDU3O2JhY2tncm91bmQtY29sb3I6I2U5ZWNlZjtib3JkZXItY29sb3I6I2RlZTJlNn0udGFibGUtZGFya3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzIxMjUyOX0udGFibGUtZGFyayB0ZCwudGFibGUtZGFyayB0aCwudGFibGUtZGFyayB0aGVhZCB0aHtib3JkZXItY29sb3I6IzMyMzgzZX0udGFibGUtZGFyay50YWJsZS1ib3JkZXJlZHtib3JkZXI6MH0udGFibGUtZGFyay50YWJsZS1zdHJpcGVkIHRib2R5IHRyOm50aC1vZi10eXBlKG9kZCl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4wNSl9LnRhYmxlLWRhcmsudGFibGUtaG92ZXIgdGJvZHkgdHI6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4wNzUpfUBtZWRpYSAobWF4LXdpZHRoOjU3NS45OHB4KXsudGFibGUtcmVzcG9uc2l2ZS1zbXtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7b3ZlcmZsb3cteDphdXRvOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoOy1tcy1vdmVyZmxvdy1zdHlsZTotbXMtYXV0b2hpZGluZy1zY3JvbGxiYXJ9LnRhYmxlLXJlc3BvbnNpdmUtc20+LnRhYmxlLWJvcmRlcmVke2JvcmRlcjowfX1AbWVkaWEgKG1heC13aWR0aDo3NjcuOThweCl7LnRhYmxlLXJlc3BvbnNpdmUtbWR7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO292ZXJmbG93LXg6YXV0bzstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDstbXMtb3ZlcmZsb3ctc3R5bGU6LW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyfS50YWJsZS1yZXNwb25zaXZlLW1kPi50YWJsZS1ib3JkZXJlZHtib3JkZXI6MH19QG1lZGlhIChtYXgtd2lkdGg6OTkxLjk4cHgpey50YWJsZS1yZXNwb25zaXZlLWxne2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtvdmVyZmxvdy14OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7LW1zLW92ZXJmbG93LXN0eWxlOi1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcn0udGFibGUtcmVzcG9uc2l2ZS1sZz4udGFibGUtYm9yZGVyZWR7Ym9yZGVyOjB9fUBtZWRpYSAobWF4LXdpZHRoOjExOTkuOThweCl7LnRhYmxlLXJlc3BvbnNpdmUteGx7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO292ZXJmbG93LXg6YXV0bzstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDstbXMtb3ZlcmZsb3ctc3R5bGU6LW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyfS50YWJsZS1yZXNwb25zaXZlLXhsPi50YWJsZS1ib3JkZXJlZHtib3JkZXI6MH19LnRhYmxlLXJlc3BvbnNpdmV7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO292ZXJmbG93LXg6YXV0bzstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDstbXMtb3ZlcmZsb3ctc3R5bGU6LW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyfS50YWJsZS1yZXNwb25zaXZlPi50YWJsZS1ib3JkZXJlZHtib3JkZXI6MH0uZm9ybS1jb250cm9se2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtwYWRkaW5nOi4zNzVyZW0gLjc1cmVtO2ZvbnQtc2l6ZToxcmVtO2xpbmUtaGVpZ2h0OjEuNTtjb2xvcjojNDk1MDU3O2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNsaXA6cGFkZGluZy1ib3g7Ym9yZGVyOjFweCBzb2xpZCAjY2VkNGRhO2JvcmRlci1yYWRpdXM6LjI1cmVtO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsYm94LXNoYWRvdyAuMTVzIGVhc2UtaW4tb3V0fUBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7LmZvcm0tY29udHJvbHt0cmFuc2l0aW9uOm5vbmV9fS5mb3JtLWNvbnRyb2w6Oi1tcy1leHBhbmR7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6MH0uZm9ybS1jb250cm9sOmZvY3Vze2NvbG9yOiM0OTUwNTc7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjojODBiZGZmO291dGxpbmU6MDtib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoMCwxMjMsMjU1LC4yNSl9LmZvcm0tY29udHJvbDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcntjb2xvcjojNmM3NTdkO29wYWNpdHk6MX0uZm9ybS1jb250cm9sOjotbW96LXBsYWNlaG9sZGVye2NvbG9yOiM2Yzc1N2Q7b3BhY2l0eToxfS5mb3JtLWNvbnRyb2w6LW1zLWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOiM2Yzc1N2Q7b3BhY2l0eToxfS5mb3JtLWNvbnRyb2w6Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcntjb2xvcjojNmM3NTdkO29wYWNpdHk6MX0uZm9ybS1jb250cm9sOjpwbGFjZWhvbGRlcntjb2xvcjojNmM3NTdkO29wYWNpdHk6MX0uZm9ybS1jb250cm9sOmRpc2FibGVkLC5mb3JtLWNvbnRyb2xbcmVhZG9ubHlde2JhY2tncm91bmQtY29sb3I6I2U5ZWNlZjtvcGFjaXR5OjF9c2VsZWN0LmZvcm0tY29udHJvbDpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSl7aGVpZ2h0OmNhbGMoMi4yNXJlbSArIDJweCl9c2VsZWN0LmZvcm0tY29udHJvbDpmb2N1czo6LW1zLXZhbHVle2NvbG9yOiM0OTUwNTc7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5mb3JtLWNvbnRyb2wtZmlsZSwuZm9ybS1jb250cm9sLXJhbmdle2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJX0uY29sLWZvcm0tbGFiZWx7cGFkZGluZy10b3A6Y2FsYyguMzc1cmVtICsgMXB4KTtwYWRkaW5nLWJvdHRvbTpjYWxjKC4zNzVyZW0gKyAxcHgpO21hcmdpbi1ib3R0b206MDtmb250LXNpemU6aW5oZXJpdDtsaW5lLWhlaWdodDoxLjV9LmNvbC1mb3JtLWxhYmVsLWxne3BhZGRpbmctdG9wOmNhbGMoLjVyZW0gKyAxcHgpO3BhZGRpbmctYm90dG9tOmNhbGMoLjVyZW0gKyAxcHgpO2ZvbnQtc2l6ZToxLjI1cmVtO2xpbmUtaGVpZ2h0OjEuNX0uY29sLWZvcm0tbGFiZWwtc217cGFkZGluZy10b3A6Y2FsYyguMjVyZW0gKyAxcHgpO3BhZGRpbmctYm90dG9tOmNhbGMoLjI1cmVtICsgMXB4KTtmb250LXNpemU6Ljg3NXJlbTtsaW5lLWhlaWdodDoxLjV9LmZvcm0tY29udHJvbC1wbGFpbnRleHR7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO3BhZGRpbmctdG9wOi4zNzVyZW07cGFkZGluZy1ib3R0b206LjM3NXJlbTttYXJnaW4tYm90dG9tOjA7bGluZS1oZWlnaHQ6MS41O2NvbG9yOiMyMTI1Mjk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6c29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXdpZHRoOjFweCAwfS5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0LmZvcm0tY29udHJvbC1sZywuZm9ybS1jb250cm9sLXBsYWludGV4dC5mb3JtLWNvbnRyb2wtc20sLmlucHV0LWdyb3VwLWxnPi5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0LmZvcm0tY29udHJvbCwuaW5wdXQtZ3JvdXAtbGc+LmlucHV0LWdyb3VwLWFwcGVuZD4uZm9ybS1jb250cm9sLXBsYWludGV4dC5idG4sLmlucHV0LWdyb3VwLWxnPi5pbnB1dC1ncm91cC1hcHBlbmQ+LmZvcm0tY29udHJvbC1wbGFpbnRleHQuaW5wdXQtZ3JvdXAtdGV4dCwuaW5wdXQtZ3JvdXAtbGc+LmlucHV0LWdyb3VwLXByZXBlbmQ+LmZvcm0tY29udHJvbC1wbGFpbnRleHQuYnRuLC5pbnB1dC1ncm91cC1sZz4uaW5wdXQtZ3JvdXAtcHJlcGVuZD4uZm9ybS1jb250cm9sLXBsYWludGV4dC5pbnB1dC1ncm91cC10ZXh0LC5pbnB1dC1ncm91cC1zbT4uZm9ybS1jb250cm9sLXBsYWludGV4dC5mb3JtLWNvbnRyb2wsLmlucHV0LWdyb3VwLXNtPi5pbnB1dC1ncm91cC1hcHBlbmQ+LmZvcm0tY29udHJvbC1wbGFpbnRleHQuYnRuLC5pbnB1dC1ncm91cC1zbT4uaW5wdXQtZ3JvdXAtYXBwZW5kPi5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0LmlucHV0LWdyb3VwLXRleHQsLmlucHV0LWdyb3VwLXNtPi5pbnB1dC1ncm91cC1wcmVwZW5kPi5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0LmJ0biwuaW5wdXQtZ3JvdXAtc20+LmlucHV0LWdyb3VwLXByZXBlbmQ+LmZvcm0tY29udHJvbC1wbGFpbnRleHQuaW5wdXQtZ3JvdXAtdGV4dHtwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1sZWZ0OjB9LmZvcm0tY29udHJvbC1zbSwuaW5wdXQtZ3JvdXAtc20+LmZvcm0tY29udHJvbCwuaW5wdXQtZ3JvdXAtc20+LmlucHV0LWdyb3VwLWFwcGVuZD4uYnRuLC5pbnB1dC1ncm91cC1zbT4uaW5wdXQtZ3JvdXAtYXBwZW5kPi5pbnB1dC1ncm91cC10ZXh0LC5pbnB1dC1ncm91cC1zbT4uaW5wdXQtZ3JvdXAtcHJlcGVuZD4uYnRuLC5pbnB1dC1ncm91cC1zbT4uaW5wdXQtZ3JvdXAtcHJlcGVuZD4uaW5wdXQtZ3JvdXAtdGV4dHtwYWRkaW5nOi4yNXJlbSAuNXJlbTtmb250LXNpemU6Ljg3NXJlbTtsaW5lLWhlaWdodDoxLjU7Ym9yZGVyLXJhZGl1czouMnJlbX0uaW5wdXQtZ3JvdXAtc20+LmlucHV0LWdyb3VwLWFwcGVuZD5zZWxlY3QuYnRuOm5vdChbc2l6ZV0pOm5vdChbbXVsdGlwbGVdKSwuaW5wdXQtZ3JvdXAtc20+LmlucHV0LWdyb3VwLWFwcGVuZD5zZWxlY3QuaW5wdXQtZ3JvdXAtdGV4dDpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSksLmlucHV0LWdyb3VwLXNtPi5pbnB1dC1ncm91cC1wcmVwZW5kPnNlbGVjdC5idG46bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pLC5pbnB1dC1ncm91cC1zbT4uaW5wdXQtZ3JvdXAtcHJlcGVuZD5zZWxlY3QuaW5wdXQtZ3JvdXAtdGV4dDpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSksLmlucHV0LWdyb3VwLXNtPnNlbGVjdC5mb3JtLWNvbnRyb2w6bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pLHNlbGVjdC5mb3JtLWNvbnRyb2wtc206bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pe2hlaWdodDpjYWxjKDEuODEyNXJlbSArIDJweCl9LmZvcm0tY29udHJvbC1sZywuaW5wdXQtZ3JvdXAtbGc+LmZvcm0tY29udHJvbCwuaW5wdXQtZ3JvdXAtbGc+LmlucHV0LWdyb3VwLWFwcGVuZD4uYnRuLC5pbnB1dC1ncm91cC1sZz4uaW5wdXQtZ3JvdXAtYXBwZW5kPi5pbnB1dC1ncm91cC10ZXh0LC5pbnB1dC1ncm91cC1sZz4uaW5wdXQtZ3JvdXAtcHJlcGVuZD4uYnRuLC5pbnB1dC1ncm91cC1sZz4uaW5wdXQtZ3JvdXAtcHJlcGVuZD4uaW5wdXQtZ3JvdXAtdGV4dHtwYWRkaW5nOi41cmVtIDFyZW07Zm9udC1zaXplOjEuMjVyZW07bGluZS1oZWlnaHQ6MS41O2JvcmRlci1yYWRpdXM6LjNyZW19LmlucHV0LWdyb3VwLWxnPi5pbnB1dC1ncm91cC1hcHBlbmQ+c2VsZWN0LmJ0bjpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSksLmlucHV0LWdyb3VwLWxnPi5pbnB1dC1ncm91cC1hcHBlbmQ+c2VsZWN0LmlucHV0LWdyb3VwLXRleHQ6bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pLC5pbnB1dC1ncm91cC1sZz4uaW5wdXQtZ3JvdXAtcHJlcGVuZD5zZWxlY3QuYnRuOm5vdChbc2l6ZV0pOm5vdChbbXVsdGlwbGVdKSwuaW5wdXQtZ3JvdXAtbGc+LmlucHV0LWdyb3VwLXByZXBlbmQ+c2VsZWN0LmlucHV0LWdyb3VwLXRleHQ6bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pLC5pbnB1dC1ncm91cC1sZz5zZWxlY3QuZm9ybS1jb250cm9sOm5vdChbc2l6ZV0pOm5vdChbbXVsdGlwbGVdKSxzZWxlY3QuZm9ybS1jb250cm9sLWxnOm5vdChbc2l6ZV0pOm5vdChbbXVsdGlwbGVdKXtoZWlnaHQ6Y2FsYygyLjg3NXJlbSArIDJweCl9LmZvcm0tZ3JvdXB7bWFyZ2luLWJvdHRvbToxcmVtfS5mb3JtLXRleHR7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOi4yNXJlbX0uZm9ybS1yb3d7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LW1zLWZsZXgtd3JhcDp3cmFwO2ZsZXgtd3JhcDp3cmFwO21hcmdpbi1yaWdodDotNXB4O21hcmdpbi1sZWZ0Oi01cHh9LmZvcm0tcm93Pi5jb2wsLmZvcm0tcm93PltjbGFzcyo9Y29sLV17cGFkZGluZy1yaWdodDo1cHg7cGFkZGluZy1sZWZ0OjVweH0uZm9ybS1jaGVja3twb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO3BhZGRpbmctbGVmdDoxLjI1cmVtfS5mb3JtLWNoZWNrLWlucHV0e3Bvc2l0aW9uOmFic29sdXRlO21hcmdpbi10b3A6LjNyZW07bWFyZ2luLWxlZnQ6LTEuMjVyZW19LmZvcm0tY2hlY2staW5wdXQ6ZGlzYWJsZWR+LmZvcm0tY2hlY2stbGFiZWx7Y29sb3I6IzZjNzU3ZH0uZm9ybS1jaGVjay1sYWJlbHttYXJnaW4tYm90dG9tOjB9LmZvcm0tY2hlY2staW5saW5le2Rpc3BsYXk6LW1zLWlubGluZS1mbGV4Ym94O2Rpc3BsYXk6aW5saW5lLWZsZXg7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nLWxlZnQ6MDttYXJnaW4tcmlnaHQ6Ljc1cmVtfS5mb3JtLWNoZWNrLWlubGluZSAuZm9ybS1jaGVjay1pbnB1dHtwb3NpdGlvbjpzdGF0aWM7bWFyZ2luLXRvcDowO21hcmdpbi1yaWdodDouMzEyNXJlbTttYXJnaW4tbGVmdDowfS52YWxpZC1mZWVkYmFja3tkaXNwbGF5Om5vbmU7d2lkdGg6MTAwJTttYXJnaW4tdG9wOi4yNXJlbTtmb250LXNpemU6ODAlO2NvbG9yOiMyOGE3NDV9LnZhbGlkLXRvb2x0aXB7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEwMCU7ei1pbmRleDo1O2Rpc3BsYXk6bm9uZTttYXgtd2lkdGg6MTAwJTtwYWRkaW5nOi41cmVtO21hcmdpbi10b3A6LjFyZW07Zm9udC1zaXplOi44NzVyZW07bGluZS1oZWlnaHQ6MTtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6cmdiYSg0MCwxNjcsNjksLjgpO2JvcmRlci1yYWRpdXM6LjJyZW19LmN1c3RvbS1zZWxlY3QuaXMtdmFsaWQsLmZvcm0tY29udHJvbC5pcy12YWxpZCwud2FzLXZhbGlkYXRlZCAuY3VzdG9tLXNlbGVjdDp2YWxpZCwud2FzLXZhbGlkYXRlZCAuZm9ybS1jb250cm9sOnZhbGlke2JvcmRlci1jb2xvcjojMjhhNzQ1fS5jdXN0b20tc2VsZWN0LmlzLXZhbGlkOmZvY3VzLC5mb3JtLWNvbnRyb2wuaXMtdmFsaWQ6Zm9jdXMsLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1zZWxlY3Q6dmFsaWQ6Zm9jdXMsLndhcy12YWxpZGF0ZWQgLmZvcm0tY29udHJvbDp2YWxpZDpmb2N1c3tib3JkZXItY29sb3I6IzI4YTc0NTtib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoNDAsMTY3LDY5LC4yNSl9LmN1c3RvbS1zZWxlY3QuaXMtdmFsaWR+LnZhbGlkLWZlZWRiYWNrLC5jdXN0b20tc2VsZWN0LmlzLXZhbGlkfi52YWxpZC10b29sdGlwLC5mb3JtLWNvbnRyb2wuaXMtdmFsaWR+LnZhbGlkLWZlZWRiYWNrLC5mb3JtLWNvbnRyb2wuaXMtdmFsaWR+LnZhbGlkLXRvb2x0aXAsLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1zZWxlY3Q6dmFsaWR+LnZhbGlkLWZlZWRiYWNrLC53YXMtdmFsaWRhdGVkIC5jdXN0b20tc2VsZWN0OnZhbGlkfi52YWxpZC10b29sdGlwLC53YXMtdmFsaWRhdGVkIC5mb3JtLWNvbnRyb2w6dmFsaWR+LnZhbGlkLWZlZWRiYWNrLC53YXMtdmFsaWRhdGVkIC5mb3JtLWNvbnRyb2w6dmFsaWR+LnZhbGlkLXRvb2x0aXB7ZGlzcGxheTpibG9ja30uZm9ybS1jb250cm9sLWZpbGUuaXMtdmFsaWR+LnZhbGlkLWZlZWRiYWNrLC5mb3JtLWNvbnRyb2wtZmlsZS5pcy12YWxpZH4udmFsaWQtdG9vbHRpcCwud2FzLXZhbGlkYXRlZCAuZm9ybS1jb250cm9sLWZpbGU6dmFsaWR+LnZhbGlkLWZlZWRiYWNrLC53YXMtdmFsaWRhdGVkIC5mb3JtLWNvbnRyb2wtZmlsZTp2YWxpZH4udmFsaWQtdG9vbHRpcHtkaXNwbGF5OmJsb2NrfS5mb3JtLWNoZWNrLWlucHV0LmlzLXZhbGlkfi5mb3JtLWNoZWNrLWxhYmVsLC53YXMtdmFsaWRhdGVkIC5mb3JtLWNoZWNrLWlucHV0OnZhbGlkfi5mb3JtLWNoZWNrLWxhYmVse2NvbG9yOiMyOGE3NDV9LmZvcm0tY2hlY2staW5wdXQuaXMtdmFsaWR+LnZhbGlkLWZlZWRiYWNrLC5mb3JtLWNoZWNrLWlucHV0LmlzLXZhbGlkfi52YWxpZC10b29sdGlwLC53YXMtdmFsaWRhdGVkIC5mb3JtLWNoZWNrLWlucHV0OnZhbGlkfi52YWxpZC1mZWVkYmFjaywud2FzLXZhbGlkYXRlZCAuZm9ybS1jaGVjay1pbnB1dDp2YWxpZH4udmFsaWQtdG9vbHRpcHtkaXNwbGF5OmJsb2NrfS5jdXN0b20tY29udHJvbC1pbnB1dC5pcy12YWxpZH4uY3VzdG9tLWNvbnRyb2wtbGFiZWwsLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1jb250cm9sLWlucHV0OnZhbGlkfi5jdXN0b20tY29udHJvbC1sYWJlbHtjb2xvcjojMjhhNzQ1fS5jdXN0b20tY29udHJvbC1pbnB1dC5pcy12YWxpZH4uY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSwud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6dmFsaWR+LmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojNzFkZDhhfS5jdXN0b20tY29udHJvbC1pbnB1dC5pcy12YWxpZH4udmFsaWQtZmVlZGJhY2ssLmN1c3RvbS1jb250cm9sLWlucHV0LmlzLXZhbGlkfi52YWxpZC10b29sdGlwLC53YXMtdmFsaWRhdGVkIC5jdXN0b20tY29udHJvbC1pbnB1dDp2YWxpZH4udmFsaWQtZmVlZGJhY2ssLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1jb250cm9sLWlucHV0OnZhbGlkfi52YWxpZC10b29sdGlwe2Rpc3BsYXk6YmxvY2t9LmN1c3RvbS1jb250cm9sLWlucHV0LmlzLXZhbGlkOmNoZWNrZWR+LmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUsLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1jb250cm9sLWlucHV0OnZhbGlkOmNoZWNrZWR+LmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojMzRjZTU3fS5jdXN0b20tY29udHJvbC1pbnB1dC5pcy12YWxpZDpmb2N1c34uY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSwud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6dmFsaWQ6Zm9jdXN+LmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmV7Ym94LXNoYWRvdzowIDAgMCAxcHggI2ZmZiwwIDAgMCAuMnJlbSByZ2JhKDQwLDE2Nyw2OSwuMjUpfS5jdXN0b20tZmlsZS1pbnB1dC5pcy12YWxpZH4uY3VzdG9tLWZpbGUtbGFiZWwsLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1maWxlLWlucHV0OnZhbGlkfi5jdXN0b20tZmlsZS1sYWJlbHtib3JkZXItY29sb3I6IzI4YTc0NX0uY3VzdG9tLWZpbGUtaW5wdXQuaXMtdmFsaWR+LmN1c3RvbS1maWxlLWxhYmVsOjpiZWZvcmUsLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1maWxlLWlucHV0OnZhbGlkfi5jdXN0b20tZmlsZS1sYWJlbDo6YmVmb3Jle2JvcmRlci1jb2xvcjppbmhlcml0fS5jdXN0b20tZmlsZS1pbnB1dC5pcy12YWxpZH4udmFsaWQtZmVlZGJhY2ssLmN1c3RvbS1maWxlLWlucHV0LmlzLXZhbGlkfi52YWxpZC10b29sdGlwLC53YXMtdmFsaWRhdGVkIC5jdXN0b20tZmlsZS1pbnB1dDp2YWxpZH4udmFsaWQtZmVlZGJhY2ssLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1maWxlLWlucHV0OnZhbGlkfi52YWxpZC10b29sdGlwe2Rpc3BsYXk6YmxvY2t9LmN1c3RvbS1maWxlLWlucHV0LmlzLXZhbGlkOmZvY3Vzfi5jdXN0b20tZmlsZS1sYWJlbCwud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWZpbGUtaW5wdXQ6dmFsaWQ6Zm9jdXN+LmN1c3RvbS1maWxlLWxhYmVse2JveC1zaGFkb3c6MCAwIDAgLjJyZW0gcmdiYSg0MCwxNjcsNjksLjI1KX0uaW52YWxpZC1mZWVkYmFja3tkaXNwbGF5Om5vbmU7d2lkdGg6MTAwJTttYXJnaW4tdG9wOi4yNXJlbTtmb250LXNpemU6ODAlO2NvbG9yOiNkYzM1NDV9LmludmFsaWQtdG9vbHRpcHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTAwJTt6LWluZGV4OjU7ZGlzcGxheTpub25lO21heC13aWR0aDoxMDAlO3BhZGRpbmc6LjVyZW07bWFyZ2luLXRvcDouMXJlbTtmb250LXNpemU6Ljg3NXJlbTtsaW5lLWhlaWdodDoxO2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIyMCw1Myw2OSwuOCk7Ym9yZGVyLXJhZGl1czouMnJlbX0uY3VzdG9tLXNlbGVjdC5pcy1pbnZhbGlkLC5mb3JtLWNvbnRyb2wuaXMtaW52YWxpZCwud2FzLXZhbGlkYXRlZCAuY3VzdG9tLXNlbGVjdDppbnZhbGlkLC53YXMtdmFsaWRhdGVkIC5mb3JtLWNvbnRyb2w6aW52YWxpZHtib3JkZXItY29sb3I6I2RjMzU0NX0uY3VzdG9tLXNlbGVjdC5pcy1pbnZhbGlkOmZvY3VzLC5mb3JtLWNvbnRyb2wuaXMtaW52YWxpZDpmb2N1cywud2FzLXZhbGlkYXRlZCAuY3VzdG9tLXNlbGVjdDppbnZhbGlkOmZvY3VzLC53YXMtdmFsaWRhdGVkIC5mb3JtLWNvbnRyb2w6aW52YWxpZDpmb2N1c3tib3JkZXItY29sb3I6I2RjMzU0NTtib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoMjIwLDUzLDY5LC4yNSl9LmN1c3RvbS1zZWxlY3QuaXMtaW52YWxpZH4uaW52YWxpZC1mZWVkYmFjaywuY3VzdG9tLXNlbGVjdC5pcy1pbnZhbGlkfi5pbnZhbGlkLXRvb2x0aXAsLmZvcm0tY29udHJvbC5pcy1pbnZhbGlkfi5pbnZhbGlkLWZlZWRiYWNrLC5mb3JtLWNvbnRyb2wuaXMtaW52YWxpZH4uaW52YWxpZC10b29sdGlwLC53YXMtdmFsaWRhdGVkIC5jdXN0b20tc2VsZWN0OmludmFsaWR+LmludmFsaWQtZmVlZGJhY2ssLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1zZWxlY3Q6aW52YWxpZH4uaW52YWxpZC10b29sdGlwLC53YXMtdmFsaWRhdGVkIC5mb3JtLWNvbnRyb2w6aW52YWxpZH4uaW52YWxpZC1mZWVkYmFjaywud2FzLXZhbGlkYXRlZCAuZm9ybS1jb250cm9sOmludmFsaWR+LmludmFsaWQtdG9vbHRpcHtkaXNwbGF5OmJsb2NrfS5mb3JtLWNvbnRyb2wtZmlsZS5pcy1pbnZhbGlkfi5pbnZhbGlkLWZlZWRiYWNrLC5mb3JtLWNvbnRyb2wtZmlsZS5pcy1pbnZhbGlkfi5pbnZhbGlkLXRvb2x0aXAsLndhcy12YWxpZGF0ZWQgLmZvcm0tY29udHJvbC1maWxlOmludmFsaWR+LmludmFsaWQtZmVlZGJhY2ssLndhcy12YWxpZGF0ZWQgLmZvcm0tY29udHJvbC1maWxlOmludmFsaWR+LmludmFsaWQtdG9vbHRpcHtkaXNwbGF5OmJsb2NrfS5mb3JtLWNoZWNrLWlucHV0LmlzLWludmFsaWR+LmZvcm0tY2hlY2stbGFiZWwsLndhcy12YWxpZGF0ZWQgLmZvcm0tY2hlY2staW5wdXQ6aW52YWxpZH4uZm9ybS1jaGVjay1sYWJlbHtjb2xvcjojZGMzNTQ1fS5mb3JtLWNoZWNrLWlucHV0LmlzLWludmFsaWR+LmludmFsaWQtZmVlZGJhY2ssLmZvcm0tY2hlY2staW5wdXQuaXMtaW52YWxpZH4uaW52YWxpZC10b29sdGlwLC53YXMtdmFsaWRhdGVkIC5mb3JtLWNoZWNrLWlucHV0OmludmFsaWR+LmludmFsaWQtZmVlZGJhY2ssLndhcy12YWxpZGF0ZWQgLmZvcm0tY2hlY2staW5wdXQ6aW52YWxpZH4uaW52YWxpZC10b29sdGlwe2Rpc3BsYXk6YmxvY2t9LmN1c3RvbS1jb250cm9sLWlucHV0LmlzLWludmFsaWR+LmN1c3RvbS1jb250cm9sLWxhYmVsLC53YXMtdmFsaWRhdGVkIC5jdXN0b20tY29udHJvbC1pbnB1dDppbnZhbGlkfi5jdXN0b20tY29udHJvbC1sYWJlbHtjb2xvcjojZGMzNTQ1fS5jdXN0b20tY29udHJvbC1pbnB1dC5pcy1pbnZhbGlkfi5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlLC53YXMtdmFsaWRhdGVkIC5jdXN0b20tY29udHJvbC1pbnB1dDppbnZhbGlkfi5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6I2VmYTJhOX0uY3VzdG9tLWNvbnRyb2wtaW5wdXQuaXMtaW52YWxpZH4uaW52YWxpZC1mZWVkYmFjaywuY3VzdG9tLWNvbnRyb2wtaW5wdXQuaXMtaW52YWxpZH4uaW52YWxpZC10b29sdGlwLC53YXMtdmFsaWRhdGVkIC5jdXN0b20tY29udHJvbC1pbnB1dDppbnZhbGlkfi5pbnZhbGlkLWZlZWRiYWNrLC53YXMtdmFsaWRhdGVkIC5jdXN0b20tY29udHJvbC1pbnB1dDppbnZhbGlkfi5pbnZhbGlkLXRvb2x0aXB7ZGlzcGxheTpibG9ja30uY3VzdG9tLWNvbnRyb2wtaW5wdXQuaXMtaW52YWxpZDpjaGVja2Vkfi5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlLC53YXMtdmFsaWRhdGVkIC5jdXN0b20tY29udHJvbC1pbnB1dDppbnZhbGlkOmNoZWNrZWR+LmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojZTQ2MDZkfS5jdXN0b20tY29udHJvbC1pbnB1dC5pcy1pbnZhbGlkOmZvY3Vzfi5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlLC53YXMtdmFsaWRhdGVkIC5jdXN0b20tY29udHJvbC1pbnB1dDppbnZhbGlkOmZvY3Vzfi5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3Jle2JveC1zaGFkb3c6MCAwIDAgMXB4ICNmZmYsMCAwIDAgLjJyZW0gcmdiYSgyMjAsNTMsNjksLjI1KX0uY3VzdG9tLWZpbGUtaW5wdXQuaXMtaW52YWxpZH4uY3VzdG9tLWZpbGUtbGFiZWwsLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1maWxlLWlucHV0OmludmFsaWR+LmN1c3RvbS1maWxlLWxhYmVse2JvcmRlci1jb2xvcjojZGMzNTQ1fS5jdXN0b20tZmlsZS1pbnB1dC5pcy1pbnZhbGlkfi5jdXN0b20tZmlsZS1sYWJlbDo6YmVmb3JlLC53YXMtdmFsaWRhdGVkIC5jdXN0b20tZmlsZS1pbnB1dDppbnZhbGlkfi5jdXN0b20tZmlsZS1sYWJlbDo6YmVmb3Jle2JvcmRlci1jb2xvcjppbmhlcml0fS5jdXN0b20tZmlsZS1pbnB1dC5pcy1pbnZhbGlkfi5pbnZhbGlkLWZlZWRiYWNrLC5jdXN0b20tZmlsZS1pbnB1dC5pcy1pbnZhbGlkfi5pbnZhbGlkLXRvb2x0aXAsLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1maWxlLWlucHV0OmludmFsaWR+LmludmFsaWQtZmVlZGJhY2ssLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1maWxlLWlucHV0OmludmFsaWR+LmludmFsaWQtdG9vbHRpcHtkaXNwbGF5OmJsb2NrfS5jdXN0b20tZmlsZS1pbnB1dC5pcy1pbnZhbGlkOmZvY3Vzfi5jdXN0b20tZmlsZS1sYWJlbCwud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWZpbGUtaW5wdXQ6aW52YWxpZDpmb2N1c34uY3VzdG9tLWZpbGUtbGFiZWx7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDIyMCw1Myw2OSwuMjUpfS5mb3JtLWlubGluZXtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstbXMtZmxleC1mbG93OnJvdyB3cmFwO2ZsZXgtZmxvdzpyb3cgd3JhcDstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS5mb3JtLWlubGluZSAuZm9ybS1jaGVja3t3aWR0aDoxMDAlfUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsuZm9ybS1pbmxpbmUgbGFiZWx7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi1ib3R0b206MH0uZm9ybS1pbmxpbmUgLmZvcm0tZ3JvdXB7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LW1zLWZsZXg6MCAwIGF1dG87ZmxleDowIDAgYXV0bzstbXMtZmxleC1mbG93OnJvdyB3cmFwO2ZsZXgtZmxvdzpyb3cgd3JhcDstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbi1ib3R0b206MH0uZm9ybS1pbmxpbmUgLmZvcm0tY29udHJvbHtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDphdXRvO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uZm9ybS1pbmxpbmUgLmZvcm0tY29udHJvbC1wbGFpbnRleHR7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmZvcm0taW5saW5lIC5jdXN0b20tc2VsZWN0LC5mb3JtLWlubGluZSAuaW5wdXQtZ3JvdXB7d2lkdGg6YXV0b30uZm9ybS1pbmxpbmUgLmZvcm0tY2hlY2t7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOmF1dG87cGFkZGluZy1sZWZ0OjB9LmZvcm0taW5saW5lIC5mb3JtLWNoZWNrLWlucHV0e3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbi10b3A6MDttYXJnaW4tcmlnaHQ6LjI1cmVtO21hcmdpbi1sZWZ0OjB9LmZvcm0taW5saW5lIC5jdXN0b20tY29udHJvbHstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmZvcm0taW5saW5lIC5jdXN0b20tY29udHJvbC1sYWJlbHttYXJnaW4tYm90dG9tOjB9fS5idG57ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC13ZWlnaHQ6NDAwO3RleHQtYWxpZ246Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7cGFkZGluZzouMzc1cmVtIC43NXJlbTtmb250LXNpemU6MXJlbTtsaW5lLWhlaWdodDoxLjU7Ym9yZGVyLXJhZGl1czouMjVyZW07dHJhbnNpdGlvbjpjb2xvciAuMTVzIGVhc2UtaW4tb3V0LGJhY2tncm91bmQtY29sb3IgLjE1cyBlYXNlLWluLW91dCxib3JkZXItY29sb3IgLjE1cyBlYXNlLWluLW91dCxib3gtc2hhZG93IC4xNXMgZWFzZS1pbi1vdXR9QG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsuYnRue3RyYW5zaXRpb246bm9uZX19LmJ0bjpmb2N1cywuYnRuOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lfS5idG4uZm9jdXMsLmJ0bjpmb2N1c3tvdXRsaW5lOjA7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDAsMTIzLDI1NSwuMjUpfS5idG4uZGlzYWJsZWQsLmJ0bjpkaXNhYmxlZHtvcGFjaXR5Oi42NX0uYnRuOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpe2N1cnNvcjpwb2ludGVyfS5idG46bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLC5idG46bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZle2JhY2tncm91bmQtaW1hZ2U6bm9uZX1hLmJ0bi5kaXNhYmxlZCxmaWVsZHNldDpkaXNhYmxlZCBhLmJ0bntwb2ludGVyLWV2ZW50czpub25lfS5idG4tcHJpbWFyeXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzAwN2JmZjtib3JkZXItY29sb3I6IzAwN2JmZn0uYnRuLXByaW1hcnk6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMwMDY5ZDk7Ym9yZGVyLWNvbG9yOiMwMDYyY2N9LmJ0bi1wcmltYXJ5LmZvY3VzLC5idG4tcHJpbWFyeTpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoMCwxMjMsMjU1LC41KX0uYnRuLXByaW1hcnkuZGlzYWJsZWQsLmJ0bi1wcmltYXJ5OmRpc2FibGVke2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMDA3YmZmO2JvcmRlci1jb2xvcjojMDA3YmZmfS5idG4tcHJpbWFyeTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsLmJ0bi1wcmltYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwuc2hvdz4uYnRuLXByaW1hcnkuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMDA2MmNjO2JvcmRlci1jb2xvcjojMDA1Y2JmfS5idG4tcHJpbWFyeTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmU6Zm9jdXMsLmJ0bi1wcmltYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZTpmb2N1cywuc2hvdz4uYnRuLXByaW1hcnkuZHJvcGRvd24tdG9nZ2xlOmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgLjJyZW0gcmdiYSgwLDEyMywyNTUsLjUpfS5idG4tc2Vjb25kYXJ5e2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojNmM3NTdkO2JvcmRlci1jb2xvcjojNmM3NTdkfS5idG4tc2Vjb25kYXJ5OmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojNWE2MjY4O2JvcmRlci1jb2xvcjojNTQ1YjYyfS5idG4tc2Vjb25kYXJ5LmZvY3VzLC5idG4tc2Vjb25kYXJ5OmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgLjJyZW0gcmdiYSgxMDgsMTE3LDEyNSwuNSl9LmJ0bi1zZWNvbmRhcnkuZGlzYWJsZWQsLmJ0bi1zZWNvbmRhcnk6ZGlzYWJsZWR7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiM2Yzc1N2Q7Ym9yZGVyLWNvbG9yOiM2Yzc1N2R9LmJ0bi1zZWNvbmRhcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLC5idG4tc2Vjb25kYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwuc2hvdz4uYnRuLXNlY29uZGFyeS5kcm9wZG93bi10b2dnbGV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiM1NDViNjI7Ym9yZGVyLWNvbG9yOiM0ZTU1NWJ9LmJ0bi1zZWNvbmRhcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlOmZvY3VzLC5idG4tc2Vjb25kYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZTpmb2N1cywuc2hvdz4uYnRuLXNlY29uZGFyeS5kcm9wZG93bi10b2dnbGU6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDEwOCwxMTcsMTI1LC41KX0uYnRuLXN1Y2Nlc3N7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMyOGE3NDU7Ym9yZGVyLWNvbG9yOiMyOGE3NDV9LmJ0bi1zdWNjZXNzOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMjE4ODM4O2JvcmRlci1jb2xvcjojMWU3ZTM0fS5idG4tc3VjY2Vzcy5mb2N1cywuYnRuLXN1Y2Nlc3M6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDQwLDE2Nyw2OSwuNSl9LmJ0bi1zdWNjZXNzLmRpc2FibGVkLC5idG4tc3VjY2VzczpkaXNhYmxlZHtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzI4YTc0NTtib3JkZXItY29sb3I6IzI4YTc0NX0uYnRuLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLC5idG4tc3VjY2Vzczpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsLnNob3c+LmJ0bi1zdWNjZXNzLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzFlN2UzNDtib3JkZXItY29sb3I6IzFjNzQzMH0uYnRuLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlOmZvY3VzLC5idG4tc3VjY2Vzczpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmU6Zm9jdXMsLnNob3c+LmJ0bi1zdWNjZXNzLmRyb3Bkb3duLXRvZ2dsZTpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoNDAsMTY3LDY5LC41KX0uYnRuLWluZm97Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMxN2EyYjg7Ym9yZGVyLWNvbG9yOiMxN2EyYjh9LmJ0bi1pbmZvOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMTM4NDk2O2JvcmRlci1jb2xvcjojMTE3YThifS5idG4taW5mby5mb2N1cywuYnRuLWluZm86Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDIzLDE2MiwxODQsLjUpfS5idG4taW5mby5kaXNhYmxlZCwuYnRuLWluZm86ZGlzYWJsZWR7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMxN2EyYjg7Ym9yZGVyLWNvbG9yOiMxN2EyYjh9LmJ0bi1pbmZvOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSwuYnRuLWluZm86bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLC5zaG93Pi5idG4taW5mby5kcm9wZG93bi10b2dnbGV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMxMTdhOGI7Ym9yZGVyLWNvbG9yOiMxMDcwN2Z9LmJ0bi1pbmZvOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZTpmb2N1cywuYnRuLWluZm86bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlOmZvY3VzLC5zaG93Pi5idG4taW5mby5kcm9wZG93bi10b2dnbGU6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDIzLDE2MiwxODQsLjUpfS5idG4td2FybmluZ3tjb2xvcjojMjEyNTI5O2JhY2tncm91bmQtY29sb3I6I2ZmYzEwNztib3JkZXItY29sb3I6I2ZmYzEwN30uYnRuLXdhcm5pbmc6aG92ZXJ7Y29sb3I6IzIxMjUyOTtiYWNrZ3JvdW5kLWNvbG9yOiNlMGE4MDA7Ym9yZGVyLWNvbG9yOiNkMzllMDB9LmJ0bi13YXJuaW5nLmZvY3VzLC5idG4td2FybmluZzpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoMjU1LDE5Myw3LC41KX0uYnRuLXdhcm5pbmcuZGlzYWJsZWQsLmJ0bi13YXJuaW5nOmRpc2FibGVke2NvbG9yOiMyMTI1Mjk7YmFja2dyb3VuZC1jb2xvcjojZmZjMTA3O2JvcmRlci1jb2xvcjojZmZjMTA3fS5idG4td2FybmluZzpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsLmJ0bi13YXJuaW5nOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwuc2hvdz4uYnRuLXdhcm5pbmcuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiMyMTI1Mjk7YmFja2dyb3VuZC1jb2xvcjojZDM5ZTAwO2JvcmRlci1jb2xvcjojYzY5NTAwfS5idG4td2FybmluZzpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmU6Zm9jdXMsLmJ0bi13YXJuaW5nOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZTpmb2N1cywuc2hvdz4uYnRuLXdhcm5pbmcuZHJvcGRvd24tdG9nZ2xlOmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgLjJyZW0gcmdiYSgyNTUsMTkzLDcsLjUpfS5idG4tZGFuZ2Vye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojZGMzNTQ1O2JvcmRlci1jb2xvcjojZGMzNTQ1fS5idG4tZGFuZ2VyOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojYzgyMzMzO2JvcmRlci1jb2xvcjojYmQyMTMwfS5idG4tZGFuZ2VyLmZvY3VzLC5idG4tZGFuZ2VyOmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgLjJyZW0gcmdiYSgyMjAsNTMsNjksLjUpfS5idG4tZGFuZ2VyLmRpc2FibGVkLC5idG4tZGFuZ2VyOmRpc2FibGVke2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojZGMzNTQ1O2JvcmRlci1jb2xvcjojZGMzNTQ1fS5idG4tZGFuZ2VyOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSwuYnRuLWRhbmdlcjpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsLnNob3c+LmJ0bi1kYW5nZXIuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojYmQyMTMwO2JvcmRlci1jb2xvcjojYjIxZjJkfS5idG4tZGFuZ2VyOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZTpmb2N1cywuYnRuLWRhbmdlcjpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmU6Zm9jdXMsLnNob3c+LmJ0bi1kYW5nZXIuZHJvcGRvd24tdG9nZ2xlOmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgLjJyZW0gcmdiYSgyMjAsNTMsNjksLjUpfS5idG4tbGlnaHR7Y29sb3I6IzIxMjUyOTtiYWNrZ3JvdW5kLWNvbG9yOiNmOGY5ZmE7Ym9yZGVyLWNvbG9yOiNmOGY5ZmF9LmJ0bi1saWdodDpob3Zlcntjb2xvcjojMjEyNTI5O2JhY2tncm91bmQtY29sb3I6I2UyZTZlYTtib3JkZXItY29sb3I6I2RhZTBlNX0uYnRuLWxpZ2h0LmZvY3VzLC5idG4tbGlnaHQ6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDI0OCwyNDksMjUwLC41KX0uYnRuLWxpZ2h0LmRpc2FibGVkLC5idG4tbGlnaHQ6ZGlzYWJsZWR7Y29sb3I6IzIxMjUyOTtiYWNrZ3JvdW5kLWNvbG9yOiNmOGY5ZmE7Ym9yZGVyLWNvbG9yOiNmOGY5ZmF9LmJ0bi1saWdodDpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsLmJ0bi1saWdodDpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsLnNob3c+LmJ0bi1saWdodC5kcm9wZG93bi10b2dnbGV7Y29sb3I6IzIxMjUyOTtiYWNrZ3JvdW5kLWNvbG9yOiNkYWUwZTU7Ym9yZGVyLWNvbG9yOiNkM2Q5ZGZ9LmJ0bi1saWdodDpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmU6Zm9jdXMsLmJ0bi1saWdodDpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmU6Zm9jdXMsLnNob3c+LmJ0bi1saWdodC5kcm9wZG93bi10b2dnbGU6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDI0OCwyNDksMjUwLC41KX0uYnRuLWRhcmt7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMzNDNhNDA7Ym9yZGVyLWNvbG9yOiMzNDNhNDB9LmJ0bi1kYXJrOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMjMyNzJiO2JvcmRlci1jb2xvcjojMWQyMTI0fS5idG4tZGFyay5mb2N1cywuYnRuLWRhcms6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDUyLDU4LDY0LC41KX0uYnRuLWRhcmsuZGlzYWJsZWQsLmJ0bi1kYXJrOmRpc2FibGVke2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMzQzYTQwO2JvcmRlci1jb2xvcjojMzQzYTQwfS5idG4tZGFyazpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsLmJ0bi1kYXJrOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwuc2hvdz4uYnRuLWRhcmsuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMWQyMTI0O2JvcmRlci1jb2xvcjojMTcxYTFkfS5idG4tZGFyazpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmU6Zm9jdXMsLmJ0bi1kYXJrOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZTpmb2N1cywuc2hvdz4uYnRuLWRhcmsuZHJvcGRvd24tdG9nZ2xlOmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgLjJyZW0gcmdiYSg1Miw1OCw2NCwuNSl9LmJ0bi1vdXRsaW5lLXByaW1hcnl7Y29sb3I6IzAwN2JmZjtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtaW1hZ2U6bm9uZTtib3JkZXItY29sb3I6IzAwN2JmZn0uYnRuLW91dGxpbmUtcHJpbWFyeTpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzAwN2JmZjtib3JkZXItY29sb3I6IzAwN2JmZn0uYnRuLW91dGxpbmUtcHJpbWFyeS5mb2N1cywuYnRuLW91dGxpbmUtcHJpbWFyeTpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoMCwxMjMsMjU1LC41KX0uYnRuLW91dGxpbmUtcHJpbWFyeS5kaXNhYmxlZCwuYnRuLW91dGxpbmUtcHJpbWFyeTpkaXNhYmxlZHtjb2xvcjojMDA3YmZmO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LmJ0bi1vdXRsaW5lLXByaW1hcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLC5idG4tb3V0bGluZS1wcmltYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwuc2hvdz4uYnRuLW91dGxpbmUtcHJpbWFyeS5kcm9wZG93bi10b2dnbGV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMwMDdiZmY7Ym9yZGVyLWNvbG9yOiMwMDdiZmZ9LmJ0bi1vdXRsaW5lLXByaW1hcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlOmZvY3VzLC5idG4tb3V0bGluZS1wcmltYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZTpmb2N1cywuc2hvdz4uYnRuLW91dGxpbmUtcHJpbWFyeS5kcm9wZG93bi10b2dnbGU6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDAsMTIzLDI1NSwuNSl9LmJ0bi1vdXRsaW5lLXNlY29uZGFyeXtjb2xvcjojNmM3NTdkO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlci1jb2xvcjojNmM3NTdkfS5idG4tb3V0bGluZS1zZWNvbmRhcnk6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiM2Yzc1N2Q7Ym9yZGVyLWNvbG9yOiM2Yzc1N2R9LmJ0bi1vdXRsaW5lLXNlY29uZGFyeS5mb2N1cywuYnRuLW91dGxpbmUtc2Vjb25kYXJ5OmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgLjJyZW0gcmdiYSgxMDgsMTE3LDEyNSwuNSl9LmJ0bi1vdXRsaW5lLXNlY29uZGFyeS5kaXNhYmxlZCwuYnRuLW91dGxpbmUtc2Vjb25kYXJ5OmRpc2FibGVke2NvbG9yOiM2Yzc1N2Q7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uYnRuLW91dGxpbmUtc2Vjb25kYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSwuYnRuLW91dGxpbmUtc2Vjb25kYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwuc2hvdz4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzZjNzU3ZDtib3JkZXItY29sb3I6IzZjNzU3ZH0uYnRuLW91dGxpbmUtc2Vjb25kYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZTpmb2N1cywuYnRuLW91dGxpbmUtc2Vjb25kYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZTpmb2N1cywuc2hvdz4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmRyb3Bkb3duLXRvZ2dsZTpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoMTA4LDExNywxMjUsLjUpfS5idG4tb3V0bGluZS1zdWNjZXNze2NvbG9yOiMyOGE3NDU7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWltYWdlOm5vbmU7Ym9yZGVyLWNvbG9yOiMyOGE3NDV9LmJ0bi1vdXRsaW5lLXN1Y2Nlc3M6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMyOGE3NDU7Ym9yZGVyLWNvbG9yOiMyOGE3NDV9LmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuZm9jdXMsLmJ0bi1vdXRsaW5lLXN1Y2Nlc3M6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDQwLDE2Nyw2OSwuNSl9LmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuZGlzYWJsZWQsLmJ0bi1vdXRsaW5lLXN1Y2Nlc3M6ZGlzYWJsZWR7Y29sb3I6IzI4YTc0NTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5idG4tb3V0bGluZS1zdWNjZXNzOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSwuYnRuLW91dGxpbmUtc3VjY2Vzczpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsLnNob3c+LmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMjhhNzQ1O2JvcmRlci1jb2xvcjojMjhhNzQ1fS5idG4tb3V0bGluZS1zdWNjZXNzOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZTpmb2N1cywuYnRuLW91dGxpbmUtc3VjY2Vzczpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmU6Zm9jdXMsLnNob3c+LmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuZHJvcGRvd24tdG9nZ2xlOmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgLjJyZW0gcmdiYSg0MCwxNjcsNjksLjUpfS5idG4tb3V0bGluZS1pbmZve2NvbG9yOiMxN2EyYjg7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWltYWdlOm5vbmU7Ym9yZGVyLWNvbG9yOiMxN2EyYjh9LmJ0bi1vdXRsaW5lLWluZm86aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMxN2EyYjg7Ym9yZGVyLWNvbG9yOiMxN2EyYjh9LmJ0bi1vdXRsaW5lLWluZm8uZm9jdXMsLmJ0bi1vdXRsaW5lLWluZm86Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDIzLDE2MiwxODQsLjUpfS5idG4tb3V0bGluZS1pbmZvLmRpc2FibGVkLC5idG4tb3V0bGluZS1pbmZvOmRpc2FibGVke2NvbG9yOiMxN2EyYjg7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uYnRuLW91dGxpbmUtaW5mbzpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsLmJ0bi1vdXRsaW5lLWluZm86bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLC5zaG93Pi5idG4tb3V0bGluZS1pbmZvLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzE3YTJiODtib3JkZXItY29sb3I6IzE3YTJiOH0uYnRuLW91dGxpbmUtaW5mbzpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmU6Zm9jdXMsLmJ0bi1vdXRsaW5lLWluZm86bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlOmZvY3VzLC5zaG93Pi5idG4tb3V0bGluZS1pbmZvLmRyb3Bkb3duLXRvZ2dsZTpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoMjMsMTYyLDE4NCwuNSl9LmJ0bi1vdXRsaW5lLXdhcm5pbmd7Y29sb3I6I2ZmYzEwNztiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtaW1hZ2U6bm9uZTtib3JkZXItY29sb3I6I2ZmYzEwN30uYnRuLW91dGxpbmUtd2FybmluZzpob3Zlcntjb2xvcjojMjEyNTI5O2JhY2tncm91bmQtY29sb3I6I2ZmYzEwNztib3JkZXItY29sb3I6I2ZmYzEwN30uYnRuLW91dGxpbmUtd2FybmluZy5mb2N1cywuYnRuLW91dGxpbmUtd2FybmluZzpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoMjU1LDE5Myw3LC41KX0uYnRuLW91dGxpbmUtd2FybmluZy5kaXNhYmxlZCwuYnRuLW91dGxpbmUtd2FybmluZzpkaXNhYmxlZHtjb2xvcjojZmZjMTA3O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LmJ0bi1vdXRsaW5lLXdhcm5pbmc6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLC5idG4tb3V0bGluZS13YXJuaW5nOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwuc2hvdz4uYnRuLW91dGxpbmUtd2FybmluZy5kcm9wZG93bi10b2dnbGV7Y29sb3I6IzIxMjUyOTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmMxMDc7Ym9yZGVyLWNvbG9yOiNmZmMxMDd9LmJ0bi1vdXRsaW5lLXdhcm5pbmc6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlOmZvY3VzLC5idG4tb3V0bGluZS13YXJuaW5nOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZTpmb2N1cywuc2hvdz4uYnRuLW91dGxpbmUtd2FybmluZy5kcm9wZG93bi10b2dnbGU6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDI1NSwxOTMsNywuNSl9LmJ0bi1vdXRsaW5lLWRhbmdlcntjb2xvcjojZGMzNTQ1O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlci1jb2xvcjojZGMzNTQ1fS5idG4tb3V0bGluZS1kYW5nZXI6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNkYzM1NDU7Ym9yZGVyLWNvbG9yOiNkYzM1NDV9LmJ0bi1vdXRsaW5lLWRhbmdlci5mb2N1cywuYnRuLW91dGxpbmUtZGFuZ2VyOmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgLjJyZW0gcmdiYSgyMjAsNTMsNjksLjUpfS5idG4tb3V0bGluZS1kYW5nZXIuZGlzYWJsZWQsLmJ0bi1vdXRsaW5lLWRhbmdlcjpkaXNhYmxlZHtjb2xvcjojZGMzNTQ1O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LmJ0bi1vdXRsaW5lLWRhbmdlcjpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsLmJ0bi1vdXRsaW5lLWRhbmdlcjpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsLnNob3c+LmJ0bi1vdXRsaW5lLWRhbmdlci5kcm9wZG93bi10b2dnbGV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNkYzM1NDU7Ym9yZGVyLWNvbG9yOiNkYzM1NDV9LmJ0bi1vdXRsaW5lLWRhbmdlcjpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmU6Zm9jdXMsLmJ0bi1vdXRsaW5lLWRhbmdlcjpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmU6Zm9jdXMsLnNob3c+LmJ0bi1vdXRsaW5lLWRhbmdlci5kcm9wZG93bi10b2dnbGU6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDIyMCw1Myw2OSwuNSl9LmJ0bi1vdXRsaW5lLWxpZ2h0e2NvbG9yOiNmOGY5ZmE7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWltYWdlOm5vbmU7Ym9yZGVyLWNvbG9yOiNmOGY5ZmF9LmJ0bi1vdXRsaW5lLWxpZ2h0OmhvdmVye2NvbG9yOiMyMTI1Mjk7YmFja2dyb3VuZC1jb2xvcjojZjhmOWZhO2JvcmRlci1jb2xvcjojZjhmOWZhfS5idG4tb3V0bGluZS1saWdodC5mb2N1cywuYnRuLW91dGxpbmUtbGlnaHQ6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDI0OCwyNDksMjUwLC41KX0uYnRuLW91dGxpbmUtbGlnaHQuZGlzYWJsZWQsLmJ0bi1vdXRsaW5lLWxpZ2h0OmRpc2FibGVke2NvbG9yOiNmOGY5ZmE7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uYnRuLW91dGxpbmUtbGlnaHQ6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLC5idG4tb3V0bGluZS1saWdodDpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsLnNob3c+LmJ0bi1vdXRsaW5lLWxpZ2h0LmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojMjEyNTI5O2JhY2tncm91bmQtY29sb3I6I2Y4ZjlmYTtib3JkZXItY29sb3I6I2Y4ZjlmYX0uYnRuLW91dGxpbmUtbGlnaHQ6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlOmZvY3VzLC5idG4tb3V0bGluZS1saWdodDpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmU6Zm9jdXMsLnNob3c+LmJ0bi1vdXRsaW5lLWxpZ2h0LmRyb3Bkb3duLXRvZ2dsZTpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoMjQ4LDI0OSwyNTAsLjUpfS5idG4tb3V0bGluZS1kYXJre2NvbG9yOiMzNDNhNDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWltYWdlOm5vbmU7Ym9yZGVyLWNvbG9yOiMzNDNhNDB9LmJ0bi1vdXRsaW5lLWRhcms6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMzNDNhNDA7Ym9yZGVyLWNvbG9yOiMzNDNhNDB9LmJ0bi1vdXRsaW5lLWRhcmsuZm9jdXMsLmJ0bi1vdXRsaW5lLWRhcms6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDUyLDU4LDY0LC41KX0uYnRuLW91dGxpbmUtZGFyay5kaXNhYmxlZCwuYnRuLW91dGxpbmUtZGFyazpkaXNhYmxlZHtjb2xvcjojMzQzYTQwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LmJ0bi1vdXRsaW5lLWRhcms6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLC5idG4tb3V0bGluZS1kYXJrOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwuc2hvdz4uYnRuLW91dGxpbmUtZGFyay5kcm9wZG93bi10b2dnbGV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMzNDNhNDA7Ym9yZGVyLWNvbG9yOiMzNDNhNDB9LmJ0bi1vdXRsaW5lLWRhcms6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlOmZvY3VzLC5idG4tb3V0bGluZS1kYXJrOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZTpmb2N1cywuc2hvdz4uYnRuLW91dGxpbmUtZGFyay5kcm9wZG93bi10b2dnbGU6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDUyLDU4LDY0LC41KX0uYnRuLWxpbmt7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiMwMDdiZmY7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uYnRuLWxpbms6aG92ZXJ7Y29sb3I6IzAwNTZiMzt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5idG4tbGluay5mb2N1cywuYnRuLWxpbms6Zm9jdXN7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Ym94LXNoYWRvdzpub25lfS5idG4tbGluay5kaXNhYmxlZCwuYnRuLWxpbms6ZGlzYWJsZWR7Y29sb3I6IzZjNzU3ZDtwb2ludGVyLWV2ZW50czpub25lfS5idG4tZ3JvdXAtbGc+LmJ0biwuYnRuLWxne3BhZGRpbmc6LjVyZW0gMXJlbTtmb250LXNpemU6MS4yNXJlbTtsaW5lLWhlaWdodDoxLjU7Ym9yZGVyLXJhZGl1czouM3JlbX0uYnRuLWdyb3VwLXNtPi5idG4sLmJ0bi1zbXtwYWRkaW5nOi4yNXJlbSAuNXJlbTtmb250LXNpemU6Ljg3NXJlbTtsaW5lLWhlaWdodDoxLjU7Ym9yZGVyLXJhZGl1czouMnJlbX0uYnRuLWJsb2Nre2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJX0uYnRuLWJsb2NrKy5idG4tYmxvY2t7bWFyZ2luLXRvcDouNXJlbX1pbnB1dFt0eXBlPWJ1dHRvbl0uYnRuLWJsb2NrLGlucHV0W3R5cGU9cmVzZXRdLmJ0bi1ibG9jayxpbnB1dFt0eXBlPXN1Ym1pdF0uYnRuLWJsb2Nre3dpZHRoOjEwMCV9LmZhZGV7dHJhbnNpdGlvbjpvcGFjaXR5IC4xNXMgbGluZWFyfUBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7LmZhZGV7dHJhbnNpdGlvbjpub25lfX0uZmFkZTpub3QoLnNob3cpe29wYWNpdHk6MH0uY29sbGFwc2U6bm90KC5zaG93KXtkaXNwbGF5Om5vbmV9LmNvbGxhcHNpbmd7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO3RyYW5zaXRpb246aGVpZ2h0IC4zNXMgZWFzZX1AbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upey5jb2xsYXBzaW5ne3RyYW5zaXRpb246bm9uZX19LmRyb3Bkb3duLC5kcm9wbGVmdCwuZHJvcHJpZ2h0LC5kcm9wdXB7cG9zaXRpb246cmVsYXRpdmV9LmRyb3Bkb3duLXRvZ2dsZTo6YWZ0ZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MDtoZWlnaHQ6MDttYXJnaW4tbGVmdDouMjU1ZW07dmVydGljYWwtYWxpZ246LjI1NWVtO2NvbnRlbnQ6XCJcIjtib3JkZXItdG9wOi4zZW0gc29saWQ7Ym9yZGVyLXJpZ2h0Oi4zZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTowO2JvcmRlci1sZWZ0Oi4zZW0gc29saWQgdHJhbnNwYXJlbnR9LmRyb3Bkb3duLXRvZ2dsZTplbXB0eTo6YWZ0ZXJ7bWFyZ2luLWxlZnQ6MH0uZHJvcGRvd24tbWVudXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTAwJTtsZWZ0OjA7ei1pbmRleDoxMDAwO2Rpc3BsYXk6bm9uZTtmbG9hdDpsZWZ0O21pbi13aWR0aDoxMHJlbTtwYWRkaW5nOi41cmVtIDA7bWFyZ2luOi4xMjVyZW0gMCAwO2ZvbnQtc2l6ZToxcmVtO2NvbG9yOiMyMTI1Mjk7dGV4dC1hbGlnbjpsZWZ0O2xpc3Qtc3R5bGU6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jbGlwOnBhZGRpbmctYm94O2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMTUpO2JvcmRlci1yYWRpdXM6LjI1cmVtfS5kcm9wZG93bi1tZW51LXJpZ2h0e3JpZ2h0OjA7bGVmdDphdXRvfS5kcm9wdXAgLmRyb3Bkb3duLW1lbnV7dG9wOmF1dG87Ym90dG9tOjEwMCU7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206LjEyNXJlbX0uZHJvcHVwIC5kcm9wZG93bi10b2dnbGU6OmFmdGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjA7aGVpZ2h0OjA7bWFyZ2luLWxlZnQ6LjI1NWVtO3ZlcnRpY2FsLWFsaWduOi4yNTVlbTtjb250ZW50OlwiXCI7Ym9yZGVyLXRvcDowO2JvcmRlci1yaWdodDouM2VtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206LjNlbSBzb2xpZDtib3JkZXItbGVmdDouM2VtIHNvbGlkIHRyYW5zcGFyZW50fS5kcm9wdXAgLmRyb3Bkb3duLXRvZ2dsZTplbXB0eTo6YWZ0ZXJ7bWFyZ2luLWxlZnQ6MH0uZHJvcHJpZ2h0IC5kcm9wZG93bi1tZW51e3RvcDowO3JpZ2h0OmF1dG87bGVmdDoxMDAlO21hcmdpbi10b3A6MDttYXJnaW4tbGVmdDouMTI1cmVtfS5kcm9wcmlnaHQgLmRyb3Bkb3duLXRvZ2dsZTo6YWZ0ZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MDtoZWlnaHQ6MDttYXJnaW4tbGVmdDouMjU1ZW07dmVydGljYWwtYWxpZ246LjI1NWVtO2NvbnRlbnQ6XCJcIjtib3JkZXItdG9wOi4zZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0OjA7Ym9yZGVyLWJvdHRvbTouM2VtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0Oi4zZW0gc29saWR9LmRyb3ByaWdodCAuZHJvcGRvd24tdG9nZ2xlOmVtcHR5OjphZnRlcnttYXJnaW4tbGVmdDowfS5kcm9wcmlnaHQgLmRyb3Bkb3duLXRvZ2dsZTo6YWZ0ZXJ7dmVydGljYWwtYWxpZ246MH0uZHJvcGxlZnQgLmRyb3Bkb3duLW1lbnV7dG9wOjA7cmlnaHQ6MTAwJTtsZWZ0OmF1dG87bWFyZ2luLXRvcDowO21hcmdpbi1yaWdodDouMTI1cmVtfS5kcm9wbGVmdCAuZHJvcGRvd24tdG9nZ2xlOjphZnRlcntkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDowO2hlaWdodDowO21hcmdpbi1sZWZ0Oi4yNTVlbTt2ZXJ0aWNhbC1hbGlnbjouMjU1ZW07Y29udGVudDpcIlwifS5kcm9wbGVmdCAuZHJvcGRvd24tdG9nZ2xlOjphZnRlcntkaXNwbGF5Om5vbmV9LmRyb3BsZWZ0IC5kcm9wZG93bi10b2dnbGU6OmJlZm9yZXtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDowO2hlaWdodDowO21hcmdpbi1yaWdodDouMjU1ZW07dmVydGljYWwtYWxpZ246LjI1NWVtO2NvbnRlbnQ6XCJcIjtib3JkZXItdG9wOi4zZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0Oi4zZW0gc29saWQ7Ym9yZGVyLWJvdHRvbTouM2VtIHNvbGlkIHRyYW5zcGFyZW50fS5kcm9wbGVmdCAuZHJvcGRvd24tdG9nZ2xlOmVtcHR5OjphZnRlcnttYXJnaW4tbGVmdDowfS5kcm9wbGVmdCAuZHJvcGRvd24tdG9nZ2xlOjpiZWZvcmV7dmVydGljYWwtYWxpZ246MH0uZHJvcGRvd24tbWVudVt4LXBsYWNlbWVudF49Ym90dG9tXSwuZHJvcGRvd24tbWVudVt4LXBsYWNlbWVudF49bGVmdF0sLmRyb3Bkb3duLW1lbnVbeC1wbGFjZW1lbnRePXJpZ2h0XSwuZHJvcGRvd24tbWVudVt4LXBsYWNlbWVudF49dG9wXXtyaWdodDphdXRvO2JvdHRvbTphdXRvfS5kcm9wZG93bi1kaXZpZGVye2hlaWdodDowO21hcmdpbjouNXJlbSAwO292ZXJmbG93OmhpZGRlbjtib3JkZXItdG9wOjFweCBzb2xpZCAjZTllY2VmfS5kcm9wZG93bi1pdGVte2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtwYWRkaW5nOi4yNXJlbSAxLjVyZW07Y2xlYXI6Ym90aDtmb250LXdlaWdodDo0MDA7Y29sb3I6IzIxMjUyOTt0ZXh0LWFsaWduOmluaGVyaXQ7d2hpdGUtc3BhY2U6bm93cmFwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOjB9LmRyb3Bkb3duLWl0ZW06Zm9jdXMsLmRyb3Bkb3duLWl0ZW06aG92ZXJ7Y29sb3I6IzE2MTgxYjt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNmOGY5ZmF9LmRyb3Bkb3duLWl0ZW0uYWN0aXZlLC5kcm9wZG93bi1pdGVtOmFjdGl2ZXtjb2xvcjojZmZmO3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQtY29sb3I6IzAwN2JmZn0uZHJvcGRvd24taXRlbS5kaXNhYmxlZCwuZHJvcGRvd24taXRlbTpkaXNhYmxlZHtjb2xvcjojNmM3NTdkO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LmRyb3Bkb3duLW1lbnUuc2hvd3tkaXNwbGF5OmJsb2NrfS5kcm9wZG93bi1oZWFkZXJ7ZGlzcGxheTpibG9jaztwYWRkaW5nOi41cmVtIDEuNXJlbTttYXJnaW4tYm90dG9tOjA7Zm9udC1zaXplOi44NzVyZW07Y29sb3I6IzZjNzU3ZDt3aGl0ZS1zcGFjZTpub3dyYXB9LmRyb3Bkb3duLWl0ZW0tdGV4dHtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6LjI1cmVtIDEuNXJlbTtjb2xvcjojMjEyNTI5fS5idG4tZ3JvdXAsLmJ0bi1ncm91cC12ZXJ0aWNhbHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Oi1tcy1pbmxpbmUtZmxleGJveDtkaXNwbGF5OmlubGluZS1mbGV4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4sLmJ0bi1ncm91cD4uYnRue3Bvc2l0aW9uOnJlbGF0aXZlOy1tcy1mbGV4OjAgMSBhdXRvO2ZsZXg6MCAxIGF1dG99LmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuOmhvdmVyLC5idG4tZ3JvdXA+LmJ0bjpob3Zlcnt6LWluZGV4OjF9LmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuLmFjdGl2ZSwuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG46YWN0aXZlLC5idG4tZ3JvdXAtdmVydGljYWw+LmJ0bjpmb2N1cywuYnRuLWdyb3VwPi5idG4uYWN0aXZlLC5idG4tZ3JvdXA+LmJ0bjphY3RpdmUsLmJ0bi1ncm91cD4uYnRuOmZvY3Vze3otaW5kZXg6MX0uYnRuLWdyb3VwIC5idG4rLmJ0biwuYnRuLWdyb3VwIC5idG4rLmJ0bi1ncm91cCwuYnRuLWdyb3VwIC5idG4tZ3JvdXArLmJ0biwuYnRuLWdyb3VwIC5idG4tZ3JvdXArLmJ0bi1ncm91cCwuYnRuLWdyb3VwLXZlcnRpY2FsIC5idG4rLmJ0biwuYnRuLWdyb3VwLXZlcnRpY2FsIC5idG4rLmJ0bi1ncm91cCwuYnRuLWdyb3VwLXZlcnRpY2FsIC5idG4tZ3JvdXArLmJ0biwuYnRuLWdyb3VwLXZlcnRpY2FsIC5idG4tZ3JvdXArLmJ0bi1ncm91cHttYXJnaW4tbGVmdDotMXB4fS5idG4tdG9vbGJhcntkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstbXMtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXA7LW1zLWZsZXgtcGFjazpzdGFydDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0uYnRuLXRvb2xiYXIgLmlucHV0LWdyb3Vwe3dpZHRoOmF1dG99LmJ0bi1ncm91cD4uYnRuOmZpcnN0LWNoaWxke21hcmdpbi1sZWZ0OjB9LmJ0bi1ncm91cD4uYnRuLWdyb3VwOm5vdCg6bGFzdC1jaGlsZCk+LmJ0biwuYnRuLWdyb3VwPi5idG46bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSl7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS5idG4tZ3JvdXA+LmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKT4uYnRuLC5idG4tZ3JvdXA+LmJ0bjpub3QoOmZpcnN0LWNoaWxkKXtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowfS5kcm9wZG93bi10b2dnbGUtc3BsaXR7cGFkZGluZy1yaWdodDouNTYyNXJlbTtwYWRkaW5nLWxlZnQ6LjU2MjVyZW19LmRyb3Bkb3duLXRvZ2dsZS1zcGxpdDo6YWZ0ZXIsLmRyb3ByaWdodCAuZHJvcGRvd24tdG9nZ2xlLXNwbGl0OjphZnRlciwuZHJvcHVwIC5kcm9wZG93bi10b2dnbGUtc3BsaXQ6OmFmdGVye21hcmdpbi1sZWZ0OjB9LmRyb3BsZWZ0IC5kcm9wZG93bi10b2dnbGUtc3BsaXQ6OmJlZm9yZXttYXJnaW4tcmlnaHQ6MH0uYnRuLWdyb3VwLXNtPi5idG4rLmRyb3Bkb3duLXRvZ2dsZS1zcGxpdCwuYnRuLXNtKy5kcm9wZG93bi10b2dnbGUtc3BsaXR7cGFkZGluZy1yaWdodDouMzc1cmVtO3BhZGRpbmctbGVmdDouMzc1cmVtfS5idG4tZ3JvdXAtbGc+LmJ0bisuZHJvcGRvd24tdG9nZ2xlLXNwbGl0LC5idG4tbGcrLmRyb3Bkb3duLXRvZ2dsZS1zcGxpdHtwYWRkaW5nLXJpZ2h0Oi43NXJlbTtwYWRkaW5nLWxlZnQ6Ljc1cmVtfS5idG4tZ3JvdXAtdmVydGljYWx7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1zLWZsZXgtYWxpZ246c3RhcnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydDstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5idG4tZ3JvdXAtdmVydGljYWwgLmJ0biwuYnRuLWdyb3VwLXZlcnRpY2FsIC5idG4tZ3JvdXB7d2lkdGg6MTAwJX0uYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4rLmJ0biwuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4rLmJ0bi1ncm91cCwuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXArLmJ0biwuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXArLmJ0bi1ncm91cHttYXJnaW4tdG9wOi0xcHg7bWFyZ2luLWxlZnQ6MH0uYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXA6bm90KDpsYXN0LWNoaWxkKT4uYnRuLC5idG4tZ3JvdXAtdmVydGljYWw+LmJ0bjpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKXtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0uYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCk+LmJ0biwuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG46bm90KDpmaXJzdC1jaGlsZCl7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjB9LmJ0bi1ncm91cC10b2dnbGU+LmJ0biwuYnRuLWdyb3VwLXRvZ2dsZT4uYnRuLWdyb3VwPi5idG57bWFyZ2luLWJvdHRvbTowfS5idG4tZ3JvdXAtdG9nZ2xlPi5idG4gaW5wdXRbdHlwZT1jaGVja2JveF0sLmJ0bi1ncm91cC10b2dnbGU+LmJ0biBpbnB1dFt0eXBlPXJhZGlvXSwuYnRuLWdyb3VwLXRvZ2dsZT4uYnRuLWdyb3VwPi5idG4gaW5wdXRbdHlwZT1jaGVja2JveF0sLmJ0bi1ncm91cC10b2dnbGU+LmJ0bi1ncm91cD4uYnRuIGlucHV0W3R5cGU9cmFkaW9de3Bvc2l0aW9uOmFic29sdXRlO2NsaXA6cmVjdCgwLDAsMCwwKTtwb2ludGVyLWV2ZW50czpub25lfS5pbnB1dC1ncm91cHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstbXMtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXA7LW1zLWZsZXgtYWxpZ246c3RyZXRjaDthbGlnbi1pdGVtczpzdHJldGNoO3dpZHRoOjEwMCV9LmlucHV0LWdyb3VwPi5jdXN0b20tZmlsZSwuaW5wdXQtZ3JvdXA+LmN1c3RvbS1zZWxlY3QsLmlucHV0LWdyb3VwPi5mb3JtLWNvbnRyb2x7cG9zaXRpb246cmVsYXRpdmU7LW1zLWZsZXg6MSAxIGF1dG87ZmxleDoxIDEgYXV0bzt3aWR0aDoxJTttYXJnaW4tYm90dG9tOjB9LmlucHV0LWdyb3VwPi5jdXN0b20tZmlsZTpmb2N1cywuaW5wdXQtZ3JvdXA+LmN1c3RvbS1zZWxlY3Q6Zm9jdXMsLmlucHV0LWdyb3VwPi5mb3JtLWNvbnRyb2w6Zm9jdXN7ei1pbmRleDozfS5pbnB1dC1ncm91cD4uY3VzdG9tLWZpbGUrLmN1c3RvbS1maWxlLC5pbnB1dC1ncm91cD4uY3VzdG9tLWZpbGUrLmN1c3RvbS1zZWxlY3QsLmlucHV0LWdyb3VwPi5jdXN0b20tZmlsZSsuZm9ybS1jb250cm9sLC5pbnB1dC1ncm91cD4uY3VzdG9tLXNlbGVjdCsuY3VzdG9tLWZpbGUsLmlucHV0LWdyb3VwPi5jdXN0b20tc2VsZWN0Ky5jdXN0b20tc2VsZWN0LC5pbnB1dC1ncm91cD4uY3VzdG9tLXNlbGVjdCsuZm9ybS1jb250cm9sLC5pbnB1dC1ncm91cD4uZm9ybS1jb250cm9sKy5jdXN0b20tZmlsZSwuaW5wdXQtZ3JvdXA+LmZvcm0tY29udHJvbCsuY3VzdG9tLXNlbGVjdCwuaW5wdXQtZ3JvdXA+LmZvcm0tY29udHJvbCsuZm9ybS1jb250cm9se21hcmdpbi1sZWZ0Oi0xcHh9LmlucHV0LWdyb3VwPi5jdXN0b20tc2VsZWN0Om5vdCg6bGFzdC1jaGlsZCksLmlucHV0LWdyb3VwPi5mb3JtLWNvbnRyb2w6bm90KDpsYXN0LWNoaWxkKXtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjB9LmlucHV0LWdyb3VwPi5jdXN0b20tc2VsZWN0Om5vdCg6Zmlyc3QtY2hpbGQpLC5pbnB1dC1ncm91cD4uZm9ybS1jb250cm9sOm5vdCg6Zmlyc3QtY2hpbGQpe2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9LmlucHV0LWdyb3VwPi5jdXN0b20tZmlsZXtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS5pbnB1dC1ncm91cD4uY3VzdG9tLWZpbGU6bm90KDpsYXN0LWNoaWxkKSAuY3VzdG9tLWZpbGUtbGFiZWwsLmlucHV0LWdyb3VwPi5jdXN0b20tZmlsZTpub3QoOmxhc3QtY2hpbGQpIC5jdXN0b20tZmlsZS1sYWJlbDo6YWZ0ZXJ7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS5pbnB1dC1ncm91cD4uY3VzdG9tLWZpbGU6bm90KDpmaXJzdC1jaGlsZCkgLmN1c3RvbS1maWxlLWxhYmVse2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9LmlucHV0LWdyb3VwLWFwcGVuZCwuaW5wdXQtZ3JvdXAtcHJlcGVuZHtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH0uaW5wdXQtZ3JvdXAtYXBwZW5kIC5idG4sLmlucHV0LWdyb3VwLXByZXBlbmQgLmJ0bntwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjJ9LmlucHV0LWdyb3VwLWFwcGVuZCAuYnRuKy5idG4sLmlucHV0LWdyb3VwLWFwcGVuZCAuYnRuKy5pbnB1dC1ncm91cC10ZXh0LC5pbnB1dC1ncm91cC1hcHBlbmQgLmlucHV0LWdyb3VwLXRleHQrLmJ0biwuaW5wdXQtZ3JvdXAtYXBwZW5kIC5pbnB1dC1ncm91cC10ZXh0Ky5pbnB1dC1ncm91cC10ZXh0LC5pbnB1dC1ncm91cC1wcmVwZW5kIC5idG4rLmJ0biwuaW5wdXQtZ3JvdXAtcHJlcGVuZCAuYnRuKy5pbnB1dC1ncm91cC10ZXh0LC5pbnB1dC1ncm91cC1wcmVwZW5kIC5pbnB1dC1ncm91cC10ZXh0Ky5idG4sLmlucHV0LWdyb3VwLXByZXBlbmQgLmlucHV0LWdyb3VwLXRleHQrLmlucHV0LWdyb3VwLXRleHR7bWFyZ2luLWxlZnQ6LTFweH0uaW5wdXQtZ3JvdXAtcHJlcGVuZHttYXJnaW4tcmlnaHQ6LTFweH0uaW5wdXQtZ3JvdXAtYXBwZW5ke21hcmdpbi1sZWZ0Oi0xcHh9LmlucHV0LWdyb3VwLXRleHR7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOi4zNzVyZW0gLjc1cmVtO21hcmdpbi1ib3R0b206MDtmb250LXNpemU6MXJlbTtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS41O2NvbG9yOiM0OTUwNTc7dGV4dC1hbGlnbjpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwO2JhY2tncm91bmQtY29sb3I6I2U5ZWNlZjtib3JkZXI6MXB4IHNvbGlkICNjZWQ0ZGE7Ym9yZGVyLXJhZGl1czouMjVyZW19LmlucHV0LWdyb3VwLXRleHQgaW5wdXRbdHlwZT1jaGVja2JveF0sLmlucHV0LWdyb3VwLXRleHQgaW5wdXRbdHlwZT1yYWRpb117bWFyZ2luLXRvcDowfS5pbnB1dC1ncm91cD4uaW5wdXQtZ3JvdXAtYXBwZW5kOmxhc3QtY2hpbGQ+LmJ0bjpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSwuaW5wdXQtZ3JvdXA+LmlucHV0LWdyb3VwLWFwcGVuZDpsYXN0LWNoaWxkPi5pbnB1dC1ncm91cC10ZXh0Om5vdCg6bGFzdC1jaGlsZCksLmlucHV0LWdyb3VwPi5pbnB1dC1ncm91cC1hcHBlbmQ6bm90KDpsYXN0LWNoaWxkKT4uYnRuLC5pbnB1dC1ncm91cD4uaW5wdXQtZ3JvdXAtYXBwZW5kOm5vdCg6bGFzdC1jaGlsZCk+LmlucHV0LWdyb3VwLXRleHQsLmlucHV0LWdyb3VwPi5pbnB1dC1ncm91cC1wcmVwZW5kPi5idG4sLmlucHV0LWdyb3VwPi5pbnB1dC1ncm91cC1wcmVwZW5kPi5pbnB1dC1ncm91cC10ZXh0e2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MH0uaW5wdXQtZ3JvdXA+LmlucHV0LWdyb3VwLWFwcGVuZD4uYnRuLC5pbnB1dC1ncm91cD4uaW5wdXQtZ3JvdXAtYXBwZW5kPi5pbnB1dC1ncm91cC10ZXh0LC5pbnB1dC1ncm91cD4uaW5wdXQtZ3JvdXAtcHJlcGVuZDpmaXJzdC1jaGlsZD4uYnRuOm5vdCg6Zmlyc3QtY2hpbGQpLC5pbnB1dC1ncm91cD4uaW5wdXQtZ3JvdXAtcHJlcGVuZDpmaXJzdC1jaGlsZD4uaW5wdXQtZ3JvdXAtdGV4dDpub3QoOmZpcnN0LWNoaWxkKSwuaW5wdXQtZ3JvdXA+LmlucHV0LWdyb3VwLXByZXBlbmQ6bm90KDpmaXJzdC1jaGlsZCk+LmJ0biwuaW5wdXQtZ3JvdXA+LmlucHV0LWdyb3VwLXByZXBlbmQ6bm90KDpmaXJzdC1jaGlsZCk+LmlucHV0LWdyb3VwLXRleHR7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0uY3VzdG9tLWNvbnRyb2x7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jazttaW4taGVpZ2h0OjEuNXJlbTtwYWRkaW5nLWxlZnQ6MS41cmVtfS5jdXN0b20tY29udHJvbC1pbmxpbmV7ZGlzcGxheTotbXMtaW5saW5lLWZsZXhib3g7ZGlzcGxheTppbmxpbmUtZmxleDttYXJnaW4tcmlnaHQ6MXJlbX0uY3VzdG9tLWNvbnRyb2wtaW5wdXR7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDotMTtvcGFjaXR5OjB9LmN1c3RvbS1jb250cm9sLWlucHV0OmNoZWNrZWR+LmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMwMDdiZmZ9LmN1c3RvbS1jb250cm9sLWlucHV0OmZvY3Vzfi5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3Jle2JveC1zaGFkb3c6MCAwIDAgMXB4ICNmZmYsMCAwIDAgLjJyZW0gcmdiYSgwLDEyMywyNTUsLjI1KX0uY3VzdG9tLWNvbnRyb2wtaW5wdXQ6YWN0aXZlfi5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3Jle2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojYjNkN2ZmfS5jdXN0b20tY29udHJvbC1pbnB1dDpkaXNhYmxlZH4uY3VzdG9tLWNvbnRyb2wtbGFiZWx7Y29sb3I6IzZjNzU3ZH0uY3VzdG9tLWNvbnRyb2wtaW5wdXQ6ZGlzYWJsZWR+LmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojZTllY2VmfS5jdXN0b20tY29udHJvbC1sYWJlbHtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW4tYm90dG9tOjB9LmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7dG9wOi4yNXJlbTtsZWZ0Oi0xLjVyZW07ZGlzcGxheTpibG9jazt3aWR0aDoxcmVtO2hlaWdodDoxcmVtO3BvaW50ZXItZXZlbnRzOm5vbmU7Y29udGVudDpcIlwiOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNkZWUyZTZ9LmN1c3RvbS1jb250cm9sLWxhYmVsOjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LjI1cmVtO2xlZnQ6LTEuNXJlbTtkaXNwbGF5OmJsb2NrO3dpZHRoOjFyZW07aGVpZ2h0OjFyZW07Y29udGVudDpcIlwiO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7YmFja2dyb3VuZC1zaXplOjUwJSA1MCV9LmN1c3RvbS1jaGVja2JveCAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZXtib3JkZXItcmFkaXVzOi4yNXJlbX0uY3VzdG9tLWNoZWNrYm94IC5jdXN0b20tY29udHJvbC1pbnB1dDpjaGVja2Vkfi5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzAwN2JmZn0uY3VzdG9tLWNoZWNrYm94IC5jdXN0b20tY29udHJvbC1pbnB1dDpjaGVja2Vkfi5jdXN0b20tY29udHJvbC1sYWJlbDo6YWZ0ZXJ7YmFja2dyb3VuZC1pbWFnZTp1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA4IDgnJTNFJTNDcGF0aCBmaWxsPSclMjNmZmYnIGQ9J002LjU2NC43NWwtMy41OSAzLjYxMi0xLjUzOC0xLjU1TDAgNC4yNiAyLjk3NCA3LjI1IDggMi4xOTN6Jy8lM0UlM0Mvc3ZnJTNFXCIpfS5jdXN0b20tY2hlY2tib3ggLmN1c3RvbS1jb250cm9sLWlucHV0OmluZGV0ZXJtaW5hdGV+LmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojMDA3YmZmfS5jdXN0b20tY2hlY2tib3ggLmN1c3RvbS1jb250cm9sLWlucHV0OmluZGV0ZXJtaW5hdGV+LmN1c3RvbS1jb250cm9sLWxhYmVsOjphZnRlcntiYWNrZ3JvdW5kLWltYWdlOnVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDQgNCclM0UlM0NwYXRoIHN0cm9rZT0nJTIzZmZmJyBkPSdNMCAyaDQnLyUzRSUzQy9zdmclM0VcIil9LmN1c3RvbS1jaGVja2JveCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6ZGlzYWJsZWQ6Y2hlY2tlZH4uY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwxMjMsMjU1LC41KX0uY3VzdG9tLWNoZWNrYm94IC5jdXN0b20tY29udHJvbC1pbnB1dDpkaXNhYmxlZDppbmRldGVybWluYXRlfi5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDEyMywyNTUsLjUpfS5jdXN0b20tcmFkaW8gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmV7Ym9yZGVyLXJhZGl1czo1MCV9LmN1c3RvbS1yYWRpbyAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6Y2hlY2tlZH4uY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDdiZmZ9LmN1c3RvbS1yYWRpbyAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6Y2hlY2tlZH4uY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmFmdGVye2JhY2tncm91bmQtaW1hZ2U6dXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PSctNCAtNCA4IDgnJTNFJTNDY2lyY2xlIHI9JzMnIGZpbGw9JyUyM2ZmZicvJTNFJTNDL3N2ZyUzRVwiKX0uY3VzdG9tLXJhZGlvIC5jdXN0b20tY29udHJvbC1pbnB1dDpkaXNhYmxlZDpjaGVja2Vkfi5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDEyMywyNTUsLjUpfS5jdXN0b20tc2VsZWN0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OmNhbGMoMi4yNXJlbSArIDJweCk7cGFkZGluZzouMzc1cmVtIDEuNzVyZW0gLjM3NXJlbSAuNzVyZW07bGluZS1oZWlnaHQ6MS41O2NvbG9yOiM0OTUwNTc7dmVydGljYWwtYWxpZ246bWlkZGxlO2JhY2tncm91bmQ6I2ZmZiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA0IDUnJTNFJTNDcGF0aCBmaWxsPSclMjMzNDNhNDAnIGQ9J00yIDBMMCAyaDR6bTAgNUwwIDNoNHonLyUzRSUzQy9zdmclM0VcIikgbm8tcmVwZWF0IHJpZ2h0IC43NXJlbSBjZW50ZXI7YmFja2dyb3VuZC1zaXplOjhweCAxMHB4O2JvcmRlcjoxcHggc29saWQgI2NlZDRkYTtib3JkZXItcmFkaXVzOi4yNXJlbTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmV9LmN1c3RvbS1zZWxlY3Q6Zm9jdXN7Ym9yZGVyLWNvbG9yOiM4MGJkZmY7b3V0bGluZTowO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsLjA3NSksMCAwIDVweCByZ2JhKDEyOCwxODksMjU1LC41KX0uY3VzdG9tLXNlbGVjdDpmb2N1czo6LW1zLXZhbHVle2NvbG9yOiM0OTUwNTc7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5jdXN0b20tc2VsZWN0W211bHRpcGxlXSwuY3VzdG9tLXNlbGVjdFtzaXplXTpub3QoW3NpemU9XCIxXCJdKXtoZWlnaHQ6YXV0bztwYWRkaW5nLXJpZ2h0Oi43NXJlbTtiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LmN1c3RvbS1zZWxlY3Q6ZGlzYWJsZWR7Y29sb3I6IzZjNzU3ZDtiYWNrZ3JvdW5kLWNvbG9yOiNlOWVjZWZ9LmN1c3RvbS1zZWxlY3Q6Oi1tcy1leHBhbmR7b3BhY2l0eTowfS5jdXN0b20tc2VsZWN0LXNte2hlaWdodDpjYWxjKDEuODEyNXJlbSArIDJweCk7cGFkZGluZy10b3A6LjM3NXJlbTtwYWRkaW5nLWJvdHRvbTouMzc1cmVtO2ZvbnQtc2l6ZTo3NSV9LmN1c3RvbS1zZWxlY3QtbGd7aGVpZ2h0OmNhbGMoMi44NzVyZW0gKyAycHgpO3BhZGRpbmctdG9wOi4zNzVyZW07cGFkZGluZy1ib3R0b206LjM3NXJlbTtmb250LXNpemU6MTI1JX0uY3VzdG9tLWZpbGV7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6Y2FsYygyLjI1cmVtICsgMnB4KTttYXJnaW4tYm90dG9tOjB9LmN1c3RvbS1maWxlLWlucHV0e3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6Mjt3aWR0aDoxMDAlO2hlaWdodDpjYWxjKDIuMjVyZW0gKyAycHgpO21hcmdpbjowO29wYWNpdHk6MH0uY3VzdG9tLWZpbGUtaW5wdXQ6Zm9jdXN+LmN1c3RvbS1maWxlLWxhYmVse2JvcmRlci1jb2xvcjojODBiZGZmO2JveC1zaGFkb3c6MCAwIDAgLjJyZW0gcmdiYSgwLDEyMywyNTUsLjI1KX0uY3VzdG9tLWZpbGUtaW5wdXQ6Zm9jdXN+LmN1c3RvbS1maWxlLWxhYmVsOjphZnRlcntib3JkZXItY29sb3I6IzgwYmRmZn0uY3VzdG9tLWZpbGUtaW5wdXQ6bGFuZyhlbil+LmN1c3RvbS1maWxlLWxhYmVsOjphZnRlcntjb250ZW50OlwiQnJvd3NlXCJ9LmN1c3RvbS1maWxlLWxhYmVse3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7bGVmdDowO3otaW5kZXg6MTtoZWlnaHQ6Y2FsYygyLjI1cmVtICsgMnB4KTtwYWRkaW5nOi4zNzVyZW0gLjc1cmVtO2xpbmUtaGVpZ2h0OjEuNTtjb2xvcjojNDk1MDU3O2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNjZWQ0ZGE7Ym9yZGVyLXJhZGl1czouMjVyZW19LmN1c3RvbS1maWxlLWxhYmVsOjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO2JvdHRvbTowO3otaW5kZXg6MztkaXNwbGF5OmJsb2NrO2hlaWdodDoyLjI1cmVtO3BhZGRpbmc6LjM3NXJlbSAuNzVyZW07bGluZS1oZWlnaHQ6MS41O2NvbG9yOiM0OTUwNTc7Y29udGVudDpcIkJyb3dzZVwiO2JhY2tncm91bmQtY29sb3I6I2U5ZWNlZjtib3JkZXItbGVmdDoxcHggc29saWQgI2NlZDRkYTtib3JkZXItcmFkaXVzOjAgLjI1cmVtIC4yNXJlbSAwfS5jdXN0b20tcmFuZ2V7d2lkdGg6MTAwJTtwYWRkaW5nLWxlZnQ6MDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50Oy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZX0uY3VzdG9tLXJhbmdlOmZvY3Vze291dGxpbmU6MH0uY3VzdG9tLXJhbmdlOjotbW96LWZvY3VzLW91dGVye2JvcmRlcjowfS5jdXN0b20tcmFuZ2U6Oi13ZWJraXQtc2xpZGVyLXRodW1ie3dpZHRoOjFyZW07aGVpZ2h0OjFyZW07bWFyZ2luLXRvcDotLjI1cmVtO2JhY2tncm91bmQtY29sb3I6IzAwN2JmZjtib3JkZXI6MDtib3JkZXItcmFkaXVzOjFyZW07LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lfS5jdXN0b20tcmFuZ2U6Oi13ZWJraXQtc2xpZGVyLXRodW1iOmZvY3Vze291dGxpbmU6MDtib3gtc2hhZG93OjAgMCAwIDFweCAjZmZmLDAgMCAwIC4ycmVtIHJnYmEoMCwxMjMsMjU1LC4yNSl9LmN1c3RvbS1yYW5nZTo6LXdlYmtpdC1zbGlkZXItdGh1bWI6YWN0aXZle2JhY2tncm91bmQtY29sb3I6I2IzZDdmZn0uY3VzdG9tLXJhbmdlOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFja3t3aWR0aDoxMDAlO2hlaWdodDouNXJlbTtjb2xvcjp0cmFuc3BhcmVudDtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNkZWUyZTY7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6MXJlbX0uY3VzdG9tLXJhbmdlOjotbW96LXJhbmdlLXRodW1ie3dpZHRoOjFyZW07aGVpZ2h0OjFyZW07YmFja2dyb3VuZC1jb2xvcjojMDA3YmZmO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MXJlbTstbW96LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmV9LmN1c3RvbS1yYW5nZTo6LW1vei1yYW5nZS10aHVtYjpmb2N1c3tvdXRsaW5lOjA7Ym94LXNoYWRvdzowIDAgMCAxcHggI2ZmZiwwIDAgMCAuMnJlbSByZ2JhKDAsMTIzLDI1NSwuMjUpfS5jdXN0b20tcmFuZ2U6Oi1tb3otcmFuZ2UtdGh1bWI6YWN0aXZle2JhY2tncm91bmQtY29sb3I6I2IzZDdmZn0uY3VzdG9tLXJhbmdlOjotbW96LXJhbmdlLXRyYWNre3dpZHRoOjEwMCU7aGVpZ2h0Oi41cmVtO2NvbG9yOnRyYW5zcGFyZW50O2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQtY29sb3I6I2RlZTJlNjtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czoxcmVtfS5jdXN0b20tcmFuZ2U6Oi1tcy10aHVtYnt3aWR0aDoxcmVtO2hlaWdodDoxcmVtO2JhY2tncm91bmQtY29sb3I6IzAwN2JmZjtib3JkZXI6MDtib3JkZXItcmFkaXVzOjFyZW07YXBwZWFyYW5jZTpub25lfS5jdXN0b20tcmFuZ2U6Oi1tcy10aHVtYjpmb2N1c3tvdXRsaW5lOjA7Ym94LXNoYWRvdzowIDAgMCAxcHggI2ZmZiwwIDAgMCAuMnJlbSByZ2JhKDAsMTIzLDI1NSwuMjUpfS5jdXN0b20tcmFuZ2U6Oi1tcy10aHVtYjphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojYjNkN2ZmfS5jdXN0b20tcmFuZ2U6Oi1tcy10cmFja3t3aWR0aDoxMDAlO2hlaWdodDouNXJlbTtjb2xvcjp0cmFuc3BhcmVudDtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItd2lkdGg6LjVyZW19LmN1c3RvbS1yYW5nZTo6LW1zLWZpbGwtbG93ZXJ7YmFja2dyb3VuZC1jb2xvcjojZGVlMmU2O2JvcmRlci1yYWRpdXM6MXJlbX0uY3VzdG9tLXJhbmdlOjotbXMtZmlsbC11cHBlcnttYXJnaW4tcmlnaHQ6MTVweDtiYWNrZ3JvdW5kLWNvbG9yOiNkZWUyZTY7Ym9yZGVyLXJhZGl1czoxcmVtfS5uYXZ7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LW1zLWZsZXgtd3JhcDp3cmFwO2ZsZXgtd3JhcDp3cmFwO3BhZGRpbmctbGVmdDowO21hcmdpbi1ib3R0b206MDtsaXN0LXN0eWxlOm5vbmV9Lm5hdi1saW5re2Rpc3BsYXk6YmxvY2s7cGFkZGluZzouNXJlbSAxcmVtfS5uYXYtbGluazpmb2N1cywubmF2LWxpbms6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Lm5hdi1saW5rLmRpc2FibGVke2NvbG9yOiM2Yzc1N2R9Lm5hdi10YWJze2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkZWUyZTZ9Lm5hdi10YWJzIC5uYXYtaXRlbXttYXJnaW4tYm90dG9tOi0xcHh9Lm5hdi10YWJzIC5uYXYtbGlua3tib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3AtbGVmdC1yYWRpdXM6LjI1cmVtO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOi4yNXJlbX0ubmF2LXRhYnMgLm5hdi1saW5rOmZvY3VzLC5uYXYtdGFicyAubmF2LWxpbms6aG92ZXJ7Ym9yZGVyLWNvbG9yOiNlOWVjZWYgI2U5ZWNlZiAjZGVlMmU2fS5uYXYtdGFicyAubmF2LWxpbmsuZGlzYWJsZWR7Y29sb3I6IzZjNzU3ZDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH0ubmF2LXRhYnMgLm5hdi1pdGVtLnNob3cgLm5hdi1saW5rLC5uYXYtdGFicyAubmF2LWxpbmsuYWN0aXZle2NvbG9yOiM0OTUwNTc7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjojZGVlMmU2ICNkZWUyZTYgI2ZmZn0ubmF2LXRhYnMgLmRyb3Bkb3duLW1lbnV7bWFyZ2luLXRvcDotMXB4O2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowfS5uYXYtcGlsbHMgLm5hdi1saW5re2JvcmRlci1yYWRpdXM6LjI1cmVtfS5uYXYtcGlsbHMgLm5hdi1saW5rLmFjdGl2ZSwubmF2LXBpbGxzIC5zaG93Pi5uYXYtbGlua3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzAwN2JmZn0ubmF2LWZpbGwgLm5hdi1pdGVtey1tcy1mbGV4OjEgMSBhdXRvO2ZsZXg6MSAxIGF1dG87dGV4dC1hbGlnbjpjZW50ZXJ9Lm5hdi1qdXN0aWZpZWQgLm5hdi1pdGVtey1tcy1mbGV4LXByZWZlcnJlZC1zaXplOjA7ZmxleC1iYXNpczowOy1tcy1mbGV4LXBvc2l0aXZlOjE7ZmxleC1ncm93OjE7dGV4dC1hbGlnbjpjZW50ZXJ9LnRhYi1jb250ZW50Pi50YWItcGFuZXtkaXNwbGF5Om5vbmV9LnRhYi1jb250ZW50Pi5hY3RpdmV7ZGlzcGxheTpibG9ja30ubmF2YmFye3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy1tcy1mbGV4LXdyYXA6d3JhcDtmbGV4LXdyYXA6d3JhcDstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOi41cmVtIDFyZW19Lm5hdmJhcj4uY29udGFpbmVyLC5uYXZiYXI+LmNvbnRhaW5lci1mbHVpZHtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstbXMtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXA7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59Lm5hdmJhci1icmFuZHtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nLXRvcDouMzEyNXJlbTtwYWRkaW5nLWJvdHRvbTouMzEyNXJlbTttYXJnaW4tcmlnaHQ6MXJlbTtmb250LXNpemU6MS4yNXJlbTtsaW5lLWhlaWdodDppbmhlcml0O3doaXRlLXNwYWNlOm5vd3JhcH0ubmF2YmFyLWJyYW5kOmZvY3VzLC5uYXZiYXItYnJhbmQ6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Lm5hdmJhci1uYXZ7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cGFkZGluZy1sZWZ0OjA7bWFyZ2luLWJvdHRvbTowO2xpc3Qtc3R5bGU6bm9uZX0ubmF2YmFyLW5hdiAubmF2LWxpbmt7cGFkZGluZy1yaWdodDowO3BhZGRpbmctbGVmdDowfS5uYXZiYXItbmF2IC5kcm9wZG93bi1tZW51e3Bvc2l0aW9uOnN0YXRpYztmbG9hdDpub25lfS5uYXZiYXItdGV4dHtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nLXRvcDouNXJlbTtwYWRkaW5nLWJvdHRvbTouNXJlbX0ubmF2YmFyLWNvbGxhcHNley1tcy1mbGV4LXByZWZlcnJlZC1zaXplOjEwMCU7ZmxleC1iYXNpczoxMDAlOy1tcy1mbGV4LXBvc2l0aXZlOjE7ZmxleC1ncm93OjE7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ubmF2YmFyLXRvZ2dsZXJ7cGFkZGluZzouMjVyZW0gLjc1cmVtO2ZvbnQtc2l6ZToxLjI1cmVtO2xpbmUtaGVpZ2h0OjE7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6LjI1cmVtfS5uYXZiYXItdG9nZ2xlcjpmb2N1cywubmF2YmFyLXRvZ2dsZXI6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Lm5hdmJhci10b2dnbGVyOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpe2N1cnNvcjpwb2ludGVyfS5uYXZiYXItdG9nZ2xlci1pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEuNWVtO2hlaWdodDoxLjVlbTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Y29udGVudDpcIlwiO2JhY2tncm91bmQ6bm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7YmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJX1AbWVkaWEgKG1heC13aWR0aDo1NzUuOThweCl7Lm5hdmJhci1leHBhbmQtc20+LmNvbnRhaW5lciwubmF2YmFyLWV4cGFuZC1zbT4uY29udGFpbmVyLWZsdWlke3BhZGRpbmctcmlnaHQ6MDtwYWRkaW5nLWxlZnQ6MH19QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5uYXZiYXItZXhwYW5kLXNtey1tcy1mbGV4LWZsb3c6cm93IG5vd3JhcDtmbGV4LWZsb3c6cm93IG5vd3JhcDstbXMtZmxleC1wYWNrOnN0YXJ0O2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5uYXZiYXItZXhwYW5kLXNtIC5uYXZiYXItbmF2ey1tcy1mbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC1kaXJlY3Rpb246cm93fS5uYXZiYXItZXhwYW5kLXNtIC5uYXZiYXItbmF2IC5kcm9wZG93bi1tZW51e3Bvc2l0aW9uOmFic29sdXRlfS5uYXZiYXItZXhwYW5kLXNtIC5uYXZiYXItbmF2IC5uYXYtbGlua3twYWRkaW5nLXJpZ2h0Oi41cmVtO3BhZGRpbmctbGVmdDouNXJlbX0ubmF2YmFyLWV4cGFuZC1zbT4uY29udGFpbmVyLC5uYXZiYXItZXhwYW5kLXNtPi5jb250YWluZXItZmx1aWR7LW1zLWZsZXgtd3JhcDpub3dyYXA7ZmxleC13cmFwOm5vd3JhcH0ubmF2YmFyLWV4cGFuZC1zbSAubmF2YmFyLWNvbGxhcHNle2Rpc3BsYXk6LW1zLWZsZXhib3ghaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnQ7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6YXV0bztmbGV4LWJhc2lzOmF1dG99Lm5hdmJhci1leHBhbmQtc20gLm5hdmJhci10b2dnbGVye2Rpc3BsYXk6bm9uZX19QG1lZGlhIChtYXgtd2lkdGg6NzY3Ljk4cHgpey5uYXZiYXItZXhwYW5kLW1kPi5jb250YWluZXIsLm5hdmJhci1leHBhbmQtbWQ+LmNvbnRhaW5lci1mbHVpZHtwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1sZWZ0OjB9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsubmF2YmFyLWV4cGFuZC1tZHstbXMtZmxleC1mbG93OnJvdyBub3dyYXA7ZmxleC1mbG93OnJvdyBub3dyYXA7LW1zLWZsZXgtcGFjazpzdGFydDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0ubmF2YmFyLWV4cGFuZC1tZCAubmF2YmFyLW5hdnstbXMtZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtZGlyZWN0aW9uOnJvd30ubmF2YmFyLWV4cGFuZC1tZCAubmF2YmFyLW5hdiAuZHJvcGRvd24tbWVudXtwb3NpdGlvbjphYnNvbHV0ZX0ubmF2YmFyLWV4cGFuZC1tZCAubmF2YmFyLW5hdiAubmF2LWxpbmt7cGFkZGluZy1yaWdodDouNXJlbTtwYWRkaW5nLWxlZnQ6LjVyZW19Lm5hdmJhci1leHBhbmQtbWQ+LmNvbnRhaW5lciwubmF2YmFyLWV4cGFuZC1tZD4uY29udGFpbmVyLWZsdWlkey1tcy1mbGV4LXdyYXA6bm93cmFwO2ZsZXgtd3JhcDpub3dyYXB9Lm5hdmJhci1leHBhbmQtbWQgLm5hdmJhci1jb2xsYXBzZXtkaXNwbGF5Oi1tcy1mbGV4Ym94IWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50Oy1tcy1mbGV4LXByZWZlcnJlZC1zaXplOmF1dG87ZmxleC1iYXNpczphdXRvfS5uYXZiYXItZXhwYW5kLW1kIC5uYXZiYXItdG9nZ2xlcntkaXNwbGF5Om5vbmV9fUBtZWRpYSAobWF4LXdpZHRoOjk5MS45OHB4KXsubmF2YmFyLWV4cGFuZC1sZz4uY29udGFpbmVyLC5uYXZiYXItZXhwYW5kLWxnPi5jb250YWluZXItZmx1aWR7cGFkZGluZy1yaWdodDowO3BhZGRpbmctbGVmdDowfX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7Lm5hdmJhci1leHBhbmQtbGd7LW1zLWZsZXgtZmxvdzpyb3cgbm93cmFwO2ZsZXgtZmxvdzpyb3cgbm93cmFwOy1tcy1mbGV4LXBhY2s6c3RhcnQ7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9Lm5hdmJhci1leHBhbmQtbGcgLm5hdmJhci1uYXZ7LW1zLWZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWRpcmVjdGlvbjpyb3d9Lm5hdmJhci1leHBhbmQtbGcgLm5hdmJhci1uYXYgLmRyb3Bkb3duLW1lbnV7cG9zaXRpb246YWJzb2x1dGV9Lm5hdmJhci1leHBhbmQtbGcgLm5hdmJhci1uYXYgLm5hdi1saW5re3BhZGRpbmctcmlnaHQ6LjVyZW07cGFkZGluZy1sZWZ0Oi41cmVtfS5uYXZiYXItZXhwYW5kLWxnPi5jb250YWluZXIsLm5hdmJhci1leHBhbmQtbGc+LmNvbnRhaW5lci1mbHVpZHstbXMtZmxleC13cmFwOm5vd3JhcDtmbGV4LXdyYXA6bm93cmFwfS5uYXZiYXItZXhwYW5kLWxnIC5uYXZiYXItY29sbGFwc2V7ZGlzcGxheTotbXMtZmxleGJveCFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudDstbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTphdXRvO2ZsZXgtYmFzaXM6YXV0b30ubmF2YmFyLWV4cGFuZC1sZyAubmF2YmFyLXRvZ2dsZXJ7ZGlzcGxheTpub25lfX1AbWVkaWEgKG1heC13aWR0aDoxMTk5Ljk4cHgpey5uYXZiYXItZXhwYW5kLXhsPi5jb250YWluZXIsLm5hdmJhci1leHBhbmQteGw+LmNvbnRhaW5lci1mbHVpZHtwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1sZWZ0OjB9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7Lm5hdmJhci1leHBhbmQteGx7LW1zLWZsZXgtZmxvdzpyb3cgbm93cmFwO2ZsZXgtZmxvdzpyb3cgbm93cmFwOy1tcy1mbGV4LXBhY2s6c3RhcnQ7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9Lm5hdmJhci1leHBhbmQteGwgLm5hdmJhci1uYXZ7LW1zLWZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWRpcmVjdGlvbjpyb3d9Lm5hdmJhci1leHBhbmQteGwgLm5hdmJhci1uYXYgLmRyb3Bkb3duLW1lbnV7cG9zaXRpb246YWJzb2x1dGV9Lm5hdmJhci1leHBhbmQteGwgLm5hdmJhci1uYXYgLm5hdi1saW5re3BhZGRpbmctcmlnaHQ6LjVyZW07cGFkZGluZy1sZWZ0Oi41cmVtfS5uYXZiYXItZXhwYW5kLXhsPi5jb250YWluZXIsLm5hdmJhci1leHBhbmQteGw+LmNvbnRhaW5lci1mbHVpZHstbXMtZmxleC13cmFwOm5vd3JhcDtmbGV4LXdyYXA6bm93cmFwfS5uYXZiYXItZXhwYW5kLXhsIC5uYXZiYXItY29sbGFwc2V7ZGlzcGxheTotbXMtZmxleGJveCFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudDstbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTphdXRvO2ZsZXgtYmFzaXM6YXV0b30ubmF2YmFyLWV4cGFuZC14bCAubmF2YmFyLXRvZ2dsZXJ7ZGlzcGxheTpub25lfX0ubmF2YmFyLWV4cGFuZHstbXMtZmxleC1mbG93OnJvdyBub3dyYXA7ZmxleC1mbG93OnJvdyBub3dyYXA7LW1zLWZsZXgtcGFjazpzdGFydDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0ubmF2YmFyLWV4cGFuZD4uY29udGFpbmVyLC5uYXZiYXItZXhwYW5kPi5jb250YWluZXItZmx1aWR7cGFkZGluZy1yaWdodDowO3BhZGRpbmctbGVmdDowfS5uYXZiYXItZXhwYW5kIC5uYXZiYXItbmF2ey1tcy1mbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC1kaXJlY3Rpb246cm93fS5uYXZiYXItZXhwYW5kIC5uYXZiYXItbmF2IC5kcm9wZG93bi1tZW51e3Bvc2l0aW9uOmFic29sdXRlfS5uYXZiYXItZXhwYW5kIC5uYXZiYXItbmF2IC5uYXYtbGlua3twYWRkaW5nLXJpZ2h0Oi41cmVtO3BhZGRpbmctbGVmdDouNXJlbX0ubmF2YmFyLWV4cGFuZD4uY29udGFpbmVyLC5uYXZiYXItZXhwYW5kPi5jb250YWluZXItZmx1aWR7LW1zLWZsZXgtd3JhcDpub3dyYXA7ZmxleC13cmFwOm5vd3JhcH0ubmF2YmFyLWV4cGFuZCAubmF2YmFyLWNvbGxhcHNle2Rpc3BsYXk6LW1zLWZsZXhib3ghaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnQ7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6YXV0bztmbGV4LWJhc2lzOmF1dG99Lm5hdmJhci1leHBhbmQgLm5hdmJhci10b2dnbGVye2Rpc3BsYXk6bm9uZX0ubmF2YmFyLWxpZ2h0IC5uYXZiYXItYnJhbmR7Y29sb3I6cmdiYSgwLDAsMCwuOSl9Lm5hdmJhci1saWdodCAubmF2YmFyLWJyYW5kOmZvY3VzLC5uYXZiYXItbGlnaHQgLm5hdmJhci1icmFuZDpob3Zlcntjb2xvcjpyZ2JhKDAsMCwwLC45KX0ubmF2YmFyLWxpZ2h0IC5uYXZiYXItbmF2IC5uYXYtbGlua3tjb2xvcjpyZ2JhKDAsMCwwLC41KX0ubmF2YmFyLWxpZ2h0IC5uYXZiYXItbmF2IC5uYXYtbGluazpmb2N1cywubmF2YmFyLWxpZ2h0IC5uYXZiYXItbmF2IC5uYXYtbGluazpob3Zlcntjb2xvcjpyZ2JhKDAsMCwwLC43KX0ubmF2YmFyLWxpZ2h0IC5uYXZiYXItbmF2IC5uYXYtbGluay5kaXNhYmxlZHtjb2xvcjpyZ2JhKDAsMCwwLC4zKX0ubmF2YmFyLWxpZ2h0IC5uYXZiYXItbmF2IC5hY3RpdmU+Lm5hdi1saW5rLC5uYXZiYXItbGlnaHQgLm5hdmJhci1uYXYgLm5hdi1saW5rLmFjdGl2ZSwubmF2YmFyLWxpZ2h0IC5uYXZiYXItbmF2IC5uYXYtbGluay5zaG93LC5uYXZiYXItbGlnaHQgLm5hdmJhci1uYXYgLnNob3c+Lm5hdi1saW5re2NvbG9yOnJnYmEoMCwwLDAsLjkpfS5uYXZiYXItbGlnaHQgLm5hdmJhci10b2dnbGVye2NvbG9yOnJnYmEoMCwwLDAsLjUpO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4xKX0ubmF2YmFyLWxpZ2h0IC5uYXZiYXItdG9nZ2xlci1pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0Nzdmcgdmlld0JveD0nMCAwIDMwIDMwJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBzdHJva2U9J3JnYmEoMCwgMCwgMCwgMC41KScgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1taXRlcmxpbWl0PScxMCcgZD0nTTQgN2gyMk00IDE1aDIyTTQgMjNoMjInLyUzRSUzQy9zdmclM0VcIil9Lm5hdmJhci1saWdodCAubmF2YmFyLXRleHR7Y29sb3I6cmdiYSgwLDAsMCwuNSl9Lm5hdmJhci1saWdodCAubmF2YmFyLXRleHQgYXtjb2xvcjpyZ2JhKDAsMCwwLC45KX0ubmF2YmFyLWxpZ2h0IC5uYXZiYXItdGV4dCBhOmZvY3VzLC5uYXZiYXItbGlnaHQgLm5hdmJhci10ZXh0IGE6aG92ZXJ7Y29sb3I6cmdiYSgwLDAsMCwuOSl9Lm5hdmJhci1kYXJrIC5uYXZiYXItYnJhbmR7Y29sb3I6I2ZmZn0ubmF2YmFyLWRhcmsgLm5hdmJhci1icmFuZDpmb2N1cywubmF2YmFyLWRhcmsgLm5hdmJhci1icmFuZDpob3Zlcntjb2xvcjojZmZmfS5uYXZiYXItZGFyayAubmF2YmFyLW5hdiAubmF2LWxpbmt7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Lm5hdmJhci1kYXJrIC5uYXZiYXItbmF2IC5uYXYtbGluazpmb2N1cywubmF2YmFyLWRhcmsgLm5hdmJhci1uYXYgLm5hdi1saW5rOmhvdmVye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjc1KX0ubmF2YmFyLWRhcmsgLm5hdmJhci1uYXYgLm5hdi1saW5rLmRpc2FibGVke2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjI1KX0ubmF2YmFyLWRhcmsgLm5hdmJhci1uYXYgLmFjdGl2ZT4ubmF2LWxpbmssLm5hdmJhci1kYXJrIC5uYXZiYXItbmF2IC5uYXYtbGluay5hY3RpdmUsLm5hdmJhci1kYXJrIC5uYXZiYXItbmF2IC5uYXYtbGluay5zaG93LC5uYXZiYXItZGFyayAubmF2YmFyLW5hdiAuc2hvdz4ubmF2LWxpbmt7Y29sb3I6I2ZmZn0ubmF2YmFyLWRhcmsgLm5hdmJhci10b2dnbGVye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpO2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xKX0ubmF2YmFyLWRhcmsgLm5hdmJhci10b2dnbGVyLWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyB2aWV3Qm94PScwIDAgMzAgMzAnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIHN0cm9rZT0ncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLW1pdGVybGltaXQ9JzEwJyBkPSdNNCA3aDIyTTQgMTVoMjJNNCAyM2gyMicvJTNFJTNDL3N2ZyUzRVwiKX0ubmF2YmFyLWRhcmsgLm5hdmJhci10ZXh0e2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpfS5uYXZiYXItZGFyayAubmF2YmFyLXRleHQgYXtjb2xvcjojZmZmfS5uYXZiYXItZGFyayAubmF2YmFyLXRleHQgYTpmb2N1cywubmF2YmFyLWRhcmsgLm5hdmJhci10ZXh0IGE6aG92ZXJ7Y29sb3I6I2ZmZn0uY2FyZHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MDt3b3JkLXdyYXA6YnJlYWstd29yZDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jbGlwOmJvcmRlci1ib3g7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4xMjUpO2JvcmRlci1yYWRpdXM6LjI1cmVtfS5jYXJkPmhye21hcmdpbi1yaWdodDowO21hcmdpbi1sZWZ0OjB9LmNhcmQ+Lmxpc3QtZ3JvdXA6Zmlyc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4yNXJlbTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czouMjVyZW19LmNhcmQ+Lmxpc3QtZ3JvdXA6bGFzdC1jaGlsZCAubGlzdC1ncm91cC1pdGVtOmxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjI1cmVtO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjI1cmVtfS5jYXJkLWJvZHl7LW1zLWZsZXg6MSAxIGF1dG87ZmxleDoxIDEgYXV0bztwYWRkaW5nOjEuMjVyZW19LmNhcmQtdGl0bGV7bWFyZ2luLWJvdHRvbTouNzVyZW19LmNhcmQtc3VidGl0bGV7bWFyZ2luLXRvcDotLjM3NXJlbTttYXJnaW4tYm90dG9tOjB9LmNhcmQtdGV4dDpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH0uY2FyZC1saW5rOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lfS5jYXJkLWxpbmsrLmNhcmQtbGlua3ttYXJnaW4tbGVmdDoxLjI1cmVtfS5jYXJkLWhlYWRlcntwYWRkaW5nOi43NXJlbSAxLjI1cmVtO21hcmdpbi1ib3R0b206MDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjAzKTtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4xMjUpfS5jYXJkLWhlYWRlcjpmaXJzdC1jaGlsZHtib3JkZXItcmFkaXVzOmNhbGMoLjI1cmVtIC0gMXB4KSBjYWxjKC4yNXJlbSAtIDFweCkgMCAwfS5jYXJkLWhlYWRlcisubGlzdC1ncm91cCAubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxke2JvcmRlci10b3A6MH0uY2FyZC1mb290ZXJ7cGFkZGluZzouNzVyZW0gMS4yNXJlbTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjAzKTtib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4xMjUpfS5jYXJkLWZvb3RlcjpsYXN0LWNoaWxke2JvcmRlci1yYWRpdXM6MCAwIGNhbGMoLjI1cmVtIC0gMXB4KSBjYWxjKC4yNXJlbSAtIDFweCl9LmNhcmQtaGVhZGVyLXRhYnN7bWFyZ2luLXJpZ2h0Oi0uNjI1cmVtO21hcmdpbi1ib3R0b206LS43NXJlbTttYXJnaW4tbGVmdDotLjYyNXJlbTtib3JkZXItYm90dG9tOjB9LmNhcmQtaGVhZGVyLXBpbGxze21hcmdpbi1yaWdodDotLjYyNXJlbTttYXJnaW4tbGVmdDotLjYyNXJlbX0uY2FyZC1pbWctb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO2JvdHRvbTowO2xlZnQ6MDtwYWRkaW5nOjEuMjVyZW19LmNhcmQtaW1ne3dpZHRoOjEwMCU7Ym9yZGVyLXJhZGl1czpjYWxjKC4yNXJlbSAtIDFweCl9LmNhcmQtaW1nLXRvcHt3aWR0aDoxMDAlO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6Y2FsYyguMjVyZW0gLSAxcHgpO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOmNhbGMoLjI1cmVtIC0gMXB4KX0uY2FyZC1pbWctYm90dG9te3dpZHRoOjEwMCU7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6Y2FsYyguMjVyZW0gLSAxcHgpO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6Y2FsYyguMjVyZW0gLSAxcHgpfS5jYXJkLWRlY2t7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmNhcmQtZGVjayAuY2FyZHttYXJnaW4tYm90dG9tOjE1cHh9QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5jYXJkLWRlY2t7LW1zLWZsZXgtZmxvdzpyb3cgd3JhcDtmbGV4LWZsb3c6cm93IHdyYXA7bWFyZ2luLXJpZ2h0Oi0xNXB4O21hcmdpbi1sZWZ0Oi0xNXB4fS5jYXJkLWRlY2sgLmNhcmR7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LW1zLWZsZXg6MSAwIDAlO2ZsZXg6MSAwIDAlOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uO21hcmdpbi1yaWdodDoxNXB4O21hcmdpbi1ib3R0b206MDttYXJnaW4tbGVmdDoxNXB4fX0uY2FyZC1ncm91cHtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uY2FyZC1ncm91cD4uY2FyZHttYXJnaW4tYm90dG9tOjE1cHh9QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5jYXJkLWdyb3Vwey1tcy1mbGV4LWZsb3c6cm93IHdyYXA7ZmxleC1mbG93OnJvdyB3cmFwfS5jYXJkLWdyb3VwPi5jYXJkey1tcy1mbGV4OjEgMCAwJTtmbGV4OjEgMCAwJTttYXJnaW4tYm90dG9tOjB9LmNhcmQtZ3JvdXA+LmNhcmQrLmNhcmR7bWFyZ2luLWxlZnQ6MDtib3JkZXItbGVmdDowfS5jYXJkLWdyb3VwPi5jYXJkOmZpcnN0LWNoaWxke2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MH0uY2FyZC1ncm91cD4uY2FyZDpmaXJzdC1jaGlsZCAuY2FyZC1oZWFkZXIsLmNhcmQtZ3JvdXA+LmNhcmQ6Zmlyc3QtY2hpbGQgLmNhcmQtaW1nLXRvcHtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowfS5jYXJkLWdyb3VwPi5jYXJkOmZpcnN0LWNoaWxkIC5jYXJkLWZvb3RlciwuY2FyZC1ncm91cD4uY2FyZDpmaXJzdC1jaGlsZCAuY2FyZC1pbWctYm90dG9te2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjB9LmNhcmQtZ3JvdXA+LmNhcmQ6bGFzdC1jaGlsZHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowfS5jYXJkLWdyb3VwPi5jYXJkOmxhc3QtY2hpbGQgLmNhcmQtaGVhZGVyLC5jYXJkLWdyb3VwPi5jYXJkOmxhc3QtY2hpbGQgLmNhcmQtaW1nLXRvcHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjB9LmNhcmQtZ3JvdXA+LmNhcmQ6bGFzdC1jaGlsZCAuY2FyZC1mb290ZXIsLmNhcmQtZ3JvdXA+LmNhcmQ6bGFzdC1jaGlsZCAuY2FyZC1pbWctYm90dG9te2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0uY2FyZC1ncm91cD4uY2FyZDpvbmx5LWNoaWxke2JvcmRlci1yYWRpdXM6LjI1cmVtfS5jYXJkLWdyb3VwPi5jYXJkOm9ubHktY2hpbGQgLmNhcmQtaGVhZGVyLC5jYXJkLWdyb3VwPi5jYXJkOm9ubHktY2hpbGQgLmNhcmQtaW1nLXRvcHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4yNXJlbTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czouMjVyZW19LmNhcmQtZ3JvdXA+LmNhcmQ6b25seS1jaGlsZCAuY2FyZC1mb290ZXIsLmNhcmQtZ3JvdXA+LmNhcmQ6b25seS1jaGlsZCAuY2FyZC1pbWctYm90dG9te2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOi4yNXJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4yNXJlbX0uY2FyZC1ncm91cD4uY2FyZDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpOm5vdCg6b25seS1jaGlsZCl7Ym9yZGVyLXJhZGl1czowfS5jYXJkLWdyb3VwPi5jYXJkOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCk6bm90KDpvbmx5LWNoaWxkKSAuY2FyZC1mb290ZXIsLmNhcmQtZ3JvdXA+LmNhcmQ6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKTpub3QoOm9ubHktY2hpbGQpIC5jYXJkLWhlYWRlciwuY2FyZC1ncm91cD4uY2FyZDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpOm5vdCg6b25seS1jaGlsZCkgLmNhcmQtaW1nLWJvdHRvbSwuY2FyZC1ncm91cD4uY2FyZDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpOm5vdCg6b25seS1jaGlsZCkgLmNhcmQtaW1nLXRvcHtib3JkZXItcmFkaXVzOjB9fS5jYXJkLWNvbHVtbnMgLmNhcmR7bWFyZ2luLWJvdHRvbTouNzVyZW19QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5jYXJkLWNvbHVtbnN7LXdlYmtpdC1jb2x1bW4tY291bnQ6MzstbW96LWNvbHVtbi1jb3VudDozO2NvbHVtbi1jb3VudDozOy13ZWJraXQtY29sdW1uLWdhcDoxLjI1cmVtOy1tb3otY29sdW1uLWdhcDoxLjI1cmVtO2NvbHVtbi1nYXA6MS4yNXJlbTtvcnBoYW5zOjE7d2lkb3dzOjF9LmNhcmQtY29sdW1ucyAuY2FyZHtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxMDAlfX0uYWNjb3JkaW9uIC5jYXJkOm5vdCg6Zmlyc3Qtb2YtdHlwZSk6bm90KDpsYXN0LW9mLXR5cGUpe2JvcmRlci1ib3R0b206MDtib3JkZXItcmFkaXVzOjB9LmFjY29yZGlvbiAuY2FyZDpub3QoOmZpcnN0LW9mLXR5cGUpIC5jYXJkLWhlYWRlcjpmaXJzdC1jaGlsZHtib3JkZXItcmFkaXVzOjB9LmFjY29yZGlvbiAuY2FyZDpmaXJzdC1vZi10eXBle2JvcmRlci1ib3R0b206MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0uYWNjb3JkaW9uIC5jYXJkOmxhc3Qtb2YtdHlwZXtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MH0uYnJlYWRjcnVtYntkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstbXMtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXA7cGFkZGluZzouNzVyZW0gMXJlbTttYXJnaW4tYm90dG9tOjFyZW07bGlzdC1zdHlsZTpub25lO2JhY2tncm91bmQtY29sb3I6I2U5ZWNlZjtib3JkZXItcmFkaXVzOi4yNXJlbX0uYnJlYWRjcnVtYi1pdGVtKy5icmVhZGNydW1iLWl0ZW17cGFkZGluZy1sZWZ0Oi41cmVtfS5icmVhZGNydW1iLWl0ZW0rLmJyZWFkY3J1bWItaXRlbTo6YmVmb3Jle2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmctcmlnaHQ6LjVyZW07Y29sb3I6IzZjNzU3ZDtjb250ZW50OlwiL1wifS5icmVhZGNydW1iLWl0ZW0rLmJyZWFkY3J1bWItaXRlbTpob3Zlcjo6YmVmb3Jle3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9LmJyZWFkY3J1bWItaXRlbSsuYnJlYWRjcnVtYi1pdGVtOmhvdmVyOjpiZWZvcmV7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmJyZWFkY3J1bWItaXRlbS5hY3RpdmV7Y29sb3I6IzZjNzU3ZH0ucGFnaW5hdGlvbntkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDtwYWRkaW5nLWxlZnQ6MDtsaXN0LXN0eWxlOm5vbmU7Ym9yZGVyLXJhZGl1czouMjVyZW19LnBhZ2UtbGlua3twb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6LjVyZW0gLjc1cmVtO21hcmdpbi1sZWZ0Oi0xcHg7bGluZS1oZWlnaHQ6MS4yNTtjb2xvcjojMDA3YmZmO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNkZWUyZTZ9LnBhZ2UtbGluazpob3Zlcnt6LWluZGV4OjI7Y29sb3I6IzAwNTZiMzt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNlOWVjZWY7Ym9yZGVyLWNvbG9yOiNkZWUyZTZ9LnBhZ2UtbGluazpmb2N1c3t6LWluZGV4OjI7b3V0bGluZTowO2JveC1zaGFkb3c6MCAwIDAgLjJyZW0gcmdiYSgwLDEyMywyNTUsLjI1KX0ucGFnZS1saW5rOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpe2N1cnNvcjpwb2ludGVyfS5wYWdlLWl0ZW06Zmlyc3QtY2hpbGQgLnBhZ2UtbGlua3ttYXJnaW4tbGVmdDowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6LjI1cmVtO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjI1cmVtfS5wYWdlLWl0ZW06bGFzdC1jaGlsZCAucGFnZS1saW5re2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOi4yNXJlbTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czouMjVyZW19LnBhZ2UtaXRlbS5hY3RpdmUgLnBhZ2UtbGlua3t6LWluZGV4OjE7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMwMDdiZmY7Ym9yZGVyLWNvbG9yOiMwMDdiZmZ9LnBhZ2UtaXRlbS5kaXNhYmxlZCAucGFnZS1saW5re2NvbG9yOiM2Yzc1N2Q7cG9pbnRlci1ldmVudHM6bm9uZTtjdXJzb3I6YXV0bztiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiNkZWUyZTZ9LnBhZ2luYXRpb24tbGcgLnBhZ2UtbGlua3twYWRkaW5nOi43NXJlbSAxLjVyZW07Zm9udC1zaXplOjEuMjVyZW07bGluZS1oZWlnaHQ6MS41fS5wYWdpbmF0aW9uLWxnIC5wYWdlLWl0ZW06Zmlyc3QtY2hpbGQgLnBhZ2UtbGlua3tib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4zcmVtO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjNyZW19LnBhZ2luYXRpb24tbGcgLnBhZ2UtaXRlbTpsYXN0LWNoaWxkIC5wYWdlLWxpbmt7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6LjNyZW07Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjNyZW19LnBhZ2luYXRpb24tc20gLnBhZ2UtbGlua3twYWRkaW5nOi4yNXJlbSAuNXJlbTtmb250LXNpemU6Ljg3NXJlbTtsaW5lLWhlaWdodDoxLjV9LnBhZ2luYXRpb24tc20gLnBhZ2UtaXRlbTpmaXJzdC1jaGlsZCAucGFnZS1saW5re2JvcmRlci10b3AtbGVmdC1yYWRpdXM6LjJyZW07Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czouMnJlbX0ucGFnaW5hdGlvbi1zbSAucGFnZS1pdGVtOmxhc3QtY2hpbGQgLnBhZ2UtbGlua3tib3JkZXItdG9wLXJpZ2h0LXJhZGl1czouMnJlbTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czouMnJlbX0uYmFkZ2V7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZzouMjVlbSAuNGVtO2ZvbnQtc2l6ZTo3NSU7Zm9udC13ZWlnaHQ6NzAwO2xpbmUtaGVpZ2h0OjE7dGV4dC1hbGlnbjpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO2JvcmRlci1yYWRpdXM6LjI1cmVtfS5iYWRnZTplbXB0eXtkaXNwbGF5Om5vbmV9LmJ0biAuYmFkZ2V7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xcHh9LmJhZGdlLXBpbGx7cGFkZGluZy1yaWdodDouNmVtO3BhZGRpbmctbGVmdDouNmVtO2JvcmRlci1yYWRpdXM6MTByZW19LmJhZGdlLXByaW1hcnl7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMwMDdiZmZ9LmJhZGdlLXByaW1hcnlbaHJlZl06Zm9jdXMsLmJhZGdlLXByaW1hcnlbaHJlZl06aG92ZXJ7Y29sb3I6I2ZmZjt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDYyY2N9LmJhZGdlLXNlY29uZGFyeXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzZjNzU3ZH0uYmFkZ2Utc2Vjb25kYXJ5W2hyZWZdOmZvY3VzLC5iYWRnZS1zZWNvbmRhcnlbaHJlZl06aG92ZXJ7Y29sb3I6I2ZmZjt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiM1NDViNjJ9LmJhZGdlLXN1Y2Nlc3N7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMyOGE3NDV9LmJhZGdlLXN1Y2Nlc3NbaHJlZl06Zm9jdXMsLmJhZGdlLXN1Y2Nlc3NbaHJlZl06aG92ZXJ7Y29sb3I6I2ZmZjt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiMxZTdlMzR9LmJhZGdlLWluZm97Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMxN2EyYjh9LmJhZGdlLWluZm9baHJlZl06Zm9jdXMsLmJhZGdlLWluZm9baHJlZl06aG92ZXJ7Y29sb3I6I2ZmZjt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiMxMTdhOGJ9LmJhZGdlLXdhcm5pbmd7Y29sb3I6IzIxMjUyOTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmMxMDd9LmJhZGdlLXdhcm5pbmdbaHJlZl06Zm9jdXMsLmJhZGdlLXdhcm5pbmdbaHJlZl06aG92ZXJ7Y29sb3I6IzIxMjUyOTt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNkMzllMDB9LmJhZGdlLWRhbmdlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6I2RjMzU0NX0uYmFkZ2UtZGFuZ2VyW2hyZWZdOmZvY3VzLC5iYWRnZS1kYW5nZXJbaHJlZl06aG92ZXJ7Y29sb3I6I2ZmZjt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNiZDIxMzB9LmJhZGdlLWxpZ2h0e2NvbG9yOiMyMTI1Mjk7YmFja2dyb3VuZC1jb2xvcjojZjhmOWZhfS5iYWRnZS1saWdodFtocmVmXTpmb2N1cywuYmFkZ2UtbGlnaHRbaHJlZl06aG92ZXJ7Y29sb3I6IzIxMjUyOTt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNkYWUwZTV9LmJhZGdlLWRhcmt7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMzNDNhNDB9LmJhZGdlLWRhcmtbaHJlZl06Zm9jdXMsLmJhZGdlLWRhcmtbaHJlZl06aG92ZXJ7Y29sb3I6I2ZmZjt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiMxZDIxMjR9Lmp1bWJvdHJvbntwYWRkaW5nOjJyZW0gMXJlbTttYXJnaW4tYm90dG9tOjJyZW07YmFja2dyb3VuZC1jb2xvcjojZTllY2VmO2JvcmRlci1yYWRpdXM6LjNyZW19QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5qdW1ib3Ryb257cGFkZGluZzo0cmVtIDJyZW19fS5qdW1ib3Ryb24tZmx1aWR7cGFkZGluZy1yaWdodDowO3BhZGRpbmctbGVmdDowO2JvcmRlci1yYWRpdXM6MH0uYWxlcnR7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZzouNzVyZW0gMS4yNXJlbTttYXJnaW4tYm90dG9tOjFyZW07Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOi4yNXJlbX0uYWxlcnQtaGVhZGluZ3tjb2xvcjppbmhlcml0fS5hbGVydC1saW5re2ZvbnQtd2VpZ2h0OjcwMH0uYWxlcnQtZGlzbWlzc2libGV7cGFkZGluZy1yaWdodDo0cmVtfS5hbGVydC1kaXNtaXNzaWJsZSAuY2xvc2V7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDtwYWRkaW5nOi43NXJlbSAxLjI1cmVtO2NvbG9yOmluaGVyaXR9LmFsZXJ0LXByaW1hcnl7Y29sb3I6IzAwNDA4NTtiYWNrZ3JvdW5kLWNvbG9yOiNjY2U1ZmY7Ym9yZGVyLWNvbG9yOiNiOGRhZmZ9LmFsZXJ0LXByaW1hcnkgaHJ7Ym9yZGVyLXRvcC1jb2xvcjojOWZjZGZmfS5hbGVydC1wcmltYXJ5IC5hbGVydC1saW5re2NvbG9yOiMwMDI3NTJ9LmFsZXJ0LXNlY29uZGFyeXtjb2xvcjojMzgzZDQxO2JhY2tncm91bmQtY29sb3I6I2UyZTNlNTtib3JkZXItY29sb3I6I2Q2ZDhkYn0uYWxlcnQtc2Vjb25kYXJ5IGhye2JvcmRlci10b3AtY29sb3I6I2M4Y2JjZn0uYWxlcnQtc2Vjb25kYXJ5IC5hbGVydC1saW5re2NvbG9yOiMyMDIzMjZ9LmFsZXJ0LXN1Y2Nlc3N7Y29sb3I6IzE1NTcyNDtiYWNrZ3JvdW5kLWNvbG9yOiNkNGVkZGE7Ym9yZGVyLWNvbG9yOiNjM2U2Y2J9LmFsZXJ0LXN1Y2Nlc3MgaHJ7Ym9yZGVyLXRvcC1jb2xvcjojYjFkZmJifS5hbGVydC1zdWNjZXNzIC5hbGVydC1saW5re2NvbG9yOiMwYjJlMTN9LmFsZXJ0LWluZm97Y29sb3I6IzBjNTQ2MDtiYWNrZ3JvdW5kLWNvbG9yOiNkMWVjZjE7Ym9yZGVyLWNvbG9yOiNiZWU1ZWJ9LmFsZXJ0LWluZm8gaHJ7Ym9yZGVyLXRvcC1jb2xvcjojYWJkZGU1fS5hbGVydC1pbmZvIC5hbGVydC1saW5re2NvbG9yOiMwNjJjMzN9LmFsZXJ0LXdhcm5pbmd7Y29sb3I6Izg1NjQwNDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmYzY2Q7Ym9yZGVyLWNvbG9yOiNmZmVlYmF9LmFsZXJ0LXdhcm5pbmcgaHJ7Ym9yZGVyLXRvcC1jb2xvcjojZmZlOGExfS5hbGVydC13YXJuaW5nIC5hbGVydC1saW5re2NvbG9yOiM1MzNmMDN9LmFsZXJ0LWRhbmdlcntjb2xvcjojNzIxYzI0O2JhY2tncm91bmQtY29sb3I6I2Y4ZDdkYTtib3JkZXItY29sb3I6I2Y1YzZjYn0uYWxlcnQtZGFuZ2VyIGhye2JvcmRlci10b3AtY29sb3I6I2YxYjBiN30uYWxlcnQtZGFuZ2VyIC5hbGVydC1saW5re2NvbG9yOiM0OTEyMTd9LmFsZXJ0LWxpZ2h0e2NvbG9yOiM4MTgxODI7YmFja2dyb3VuZC1jb2xvcjojZmVmZWZlO2JvcmRlci1jb2xvcjojZmRmZGZlfS5hbGVydC1saWdodCBocntib3JkZXItdG9wLWNvbG9yOiNlY2VjZjZ9LmFsZXJ0LWxpZ2h0IC5hbGVydC1saW5re2NvbG9yOiM2ODY4Njh9LmFsZXJ0LWRhcmt7Y29sb3I6IzFiMWUyMTtiYWNrZ3JvdW5kLWNvbG9yOiNkNmQ4ZDk7Ym9yZGVyLWNvbG9yOiNjNmM4Y2F9LmFsZXJ0LWRhcmsgaHJ7Ym9yZGVyLXRvcC1jb2xvcjojYjliYmJlfS5hbGVydC1kYXJrIC5hbGVydC1saW5re2NvbG9yOiMwNDA1MDV9QC13ZWJraXQta2V5ZnJhbWVzIHByb2dyZXNzLWJhci1zdHJpcGVze2Zyb217YmFja2dyb3VuZC1wb3NpdGlvbjoxcmVtIDB9dG97YmFja2dyb3VuZC1wb3NpdGlvbjowIDB9fUBrZXlmcmFtZXMgcHJvZ3Jlc3MtYmFyLXN0cmlwZXN7ZnJvbXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjFyZW0gMH10b3tiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMH19LnByb2dyZXNze2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O2hlaWdodDoxcmVtO292ZXJmbG93OmhpZGRlbjtmb250LXNpemU6Ljc1cmVtO2JhY2tncm91bmQtY29sb3I6I2U5ZWNlZjtib3JkZXItcmFkaXVzOi4yNXJlbX0ucHJvZ3Jlc3MtYmFye2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y29sb3I6I2ZmZjt0ZXh0LWFsaWduOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXA7YmFja2dyb3VuZC1jb2xvcjojMDA3YmZmO3RyYW5zaXRpb246d2lkdGggLjZzIGVhc2V9QG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsucHJvZ3Jlc3MtYmFye3RyYW5zaXRpb246bm9uZX19LnByb2dyZXNzLWJhci1zdHJpcGVke2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSAyNSUsdHJhbnNwYXJlbnQgMjUlLHRyYW5zcGFyZW50IDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA3NSUsdHJhbnNwYXJlbnQgNzUlLHRyYW5zcGFyZW50KTtiYWNrZ3JvdW5kLXNpemU6MXJlbSAxcmVtfS5wcm9ncmVzcy1iYXItYW5pbWF0ZWR7LXdlYmtpdC1hbmltYXRpb246cHJvZ3Jlc3MtYmFyLXN0cmlwZXMgMXMgbGluZWFyIGluZmluaXRlO2FuaW1hdGlvbjpwcm9ncmVzcy1iYXItc3RyaXBlcyAxcyBsaW5lYXIgaW5maW5pdGV9Lm1lZGlhe2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy1tcy1mbGV4LWFsaWduOnN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9Lm1lZGlhLWJvZHl7LW1zLWZsZXg6MTtmbGV4OjF9Lmxpc3QtZ3JvdXB7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cGFkZGluZy1sZWZ0OjA7bWFyZ2luLWJvdHRvbTowfS5saXN0LWdyb3VwLWl0ZW0tYWN0aW9ue3dpZHRoOjEwMCU7Y29sb3I6IzQ5NTA1Nzt0ZXh0LWFsaWduOmluaGVyaXR9Lmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246Zm9jdXMsLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246aG92ZXJ7Y29sb3I6IzQ5NTA1Nzt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNmOGY5ZmF9Lmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246YWN0aXZle2NvbG9yOiMyMTI1Mjk7YmFja2dyb3VuZC1jb2xvcjojZTllY2VmfS5saXN0LWdyb3VwLWl0ZW17cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztwYWRkaW5nOi43NXJlbSAxLjI1cmVtO21hcmdpbi1ib3R0b206LTFweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4xMjUpfS5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czouMjVyZW07Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6LjI1cmVtfS5saXN0LWdyb3VwLWl0ZW06bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjI1cmVtO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjI1cmVtfS5saXN0LWdyb3VwLWl0ZW06Zm9jdXMsLmxpc3QtZ3JvdXAtaXRlbTpob3Zlcnt6LWluZGV4OjE7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Lmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZCwubGlzdC1ncm91cC1pdGVtOmRpc2FibGVke2NvbG9yOiM2Yzc1N2Q7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5saXN0LWdyb3VwLWl0ZW0uYWN0aXZle3otaW5kZXg6Mjtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzAwN2JmZjtib3JkZXItY29sb3I6IzAwN2JmZn0ubGlzdC1ncm91cC1mbHVzaCAubGlzdC1ncm91cC1pdGVte2JvcmRlci1yaWdodDowO2JvcmRlci1sZWZ0OjA7Ym9yZGVyLXJhZGl1czowfS5saXN0LWdyb3VwLWZsdXNoOmZpcnN0LWNoaWxkIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcDowfS5saXN0LWdyb3VwLWZsdXNoOmxhc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxke2JvcmRlci1ib3R0b206MH0ubGlzdC1ncm91cC1pdGVtLXByaW1hcnl7Y29sb3I6IzAwNDA4NTtiYWNrZ3JvdW5kLWNvbG9yOiNiOGRhZmZ9Lmxpc3QtZ3JvdXAtaXRlbS1wcmltYXJ5Lmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246Zm9jdXMsLmxpc3QtZ3JvdXAtaXRlbS1wcmltYXJ5Lmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246aG92ZXJ7Y29sb3I6IzAwNDA4NTtiYWNrZ3JvdW5kLWNvbG9yOiM5ZmNkZmZ9Lmxpc3QtZ3JvdXAtaXRlbS1wcmltYXJ5Lmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb24uYWN0aXZle2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMDA0MDg1O2JvcmRlci1jb2xvcjojMDA0MDg1fS5saXN0LWdyb3VwLWl0ZW0tc2Vjb25kYXJ5e2NvbG9yOiMzODNkNDE7YmFja2dyb3VuZC1jb2xvcjojZDZkOGRifS5saXN0LWdyb3VwLWl0ZW0tc2Vjb25kYXJ5Lmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246Zm9jdXMsLmxpc3QtZ3JvdXAtaXRlbS1zZWNvbmRhcnkubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpob3Zlcntjb2xvcjojMzgzZDQxO2JhY2tncm91bmQtY29sb3I6I2M4Y2JjZn0ubGlzdC1ncm91cC1pdGVtLXNlY29uZGFyeS5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uLmFjdGl2ZXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzM4M2Q0MTtib3JkZXItY29sb3I6IzM4M2Q0MX0ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3N7Y29sb3I6IzE1NTcyNDtiYWNrZ3JvdW5kLWNvbG9yOiNjM2U2Y2J9Lmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246Zm9jdXMsLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246aG92ZXJ7Y29sb3I6IzE1NTcyNDtiYWNrZ3JvdW5kLWNvbG9yOiNiMWRmYmJ9Lmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb24uYWN0aXZle2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMTU1NzI0O2JvcmRlci1jb2xvcjojMTU1NzI0fS5saXN0LWdyb3VwLWl0ZW0taW5mb3tjb2xvcjojMGM1NDYwO2JhY2tncm91bmQtY29sb3I6I2JlZTVlYn0ubGlzdC1ncm91cC1pdGVtLWluZm8ubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpmb2N1cywubGlzdC1ncm91cC1pdGVtLWluZm8ubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpob3Zlcntjb2xvcjojMGM1NDYwO2JhY2tncm91bmQtY29sb3I6I2FiZGRlNX0ubGlzdC1ncm91cC1pdGVtLWluZm8ubGlzdC1ncm91cC1pdGVtLWFjdGlvbi5hY3RpdmV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMwYzU0NjA7Ym9yZGVyLWNvbG9yOiMwYzU0NjB9Lmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5ne2NvbG9yOiM4NTY0MDQ7YmFja2dyb3VuZC1jb2xvcjojZmZlZWJhfS5saXN0LWdyb3VwLWl0ZW0td2FybmluZy5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmZvY3VzLC5saXN0LWdyb3VwLWl0ZW0td2FybmluZy5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmhvdmVye2NvbG9yOiM4NTY0MDQ7YmFja2dyb3VuZC1jb2xvcjojZmZlOGExfS5saXN0LWdyb3VwLWl0ZW0td2FybmluZy5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uLmFjdGl2ZXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6Izg1NjQwNDtib3JkZXItY29sb3I6Izg1NjQwNH0ubGlzdC1ncm91cC1pdGVtLWRhbmdlcntjb2xvcjojNzIxYzI0O2JhY2tncm91bmQtY29sb3I6I2Y1YzZjYn0ubGlzdC1ncm91cC1pdGVtLWRhbmdlci5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmZvY3VzLC5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246aG92ZXJ7Y29sb3I6IzcyMWMyNDtiYWNrZ3JvdW5kLWNvbG9yOiNmMWIwYjd9Lmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIubGlzdC1ncm91cC1pdGVtLWFjdGlvbi5hY3RpdmV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiM3MjFjMjQ7Ym9yZGVyLWNvbG9yOiM3MjFjMjR9Lmxpc3QtZ3JvdXAtaXRlbS1saWdodHtjb2xvcjojODE4MTgyO2JhY2tncm91bmQtY29sb3I6I2ZkZmRmZX0ubGlzdC1ncm91cC1pdGVtLWxpZ2h0Lmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246Zm9jdXMsLmxpc3QtZ3JvdXAtaXRlbS1saWdodC5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmhvdmVye2NvbG9yOiM4MTgxODI7YmFja2dyb3VuZC1jb2xvcjojZWNlY2Y2fS5saXN0LWdyb3VwLWl0ZW0tbGlnaHQubGlzdC1ncm91cC1pdGVtLWFjdGlvbi5hY3RpdmV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiM4MTgxODI7Ym9yZGVyLWNvbG9yOiM4MTgxODJ9Lmxpc3QtZ3JvdXAtaXRlbS1kYXJre2NvbG9yOiMxYjFlMjE7YmFja2dyb3VuZC1jb2xvcjojYzZjOGNhfS5saXN0LWdyb3VwLWl0ZW0tZGFyay5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmZvY3VzLC5saXN0LWdyb3VwLWl0ZW0tZGFyay5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmhvdmVye2NvbG9yOiMxYjFlMjE7YmFja2dyb3VuZC1jb2xvcjojYjliYmJlfS5saXN0LWdyb3VwLWl0ZW0tZGFyay5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uLmFjdGl2ZXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzFiMWUyMTtib3JkZXItY29sb3I6IzFiMWUyMX0uY2xvc2V7ZmxvYXQ6cmlnaHQ7Zm9udC1zaXplOjEuNXJlbTtmb250LXdlaWdodDo3MDA7bGluZS1oZWlnaHQ6MTtjb2xvcjojMDAwO3RleHQtc2hhZG93OjAgMXB4IDAgI2ZmZjtvcGFjaXR5Oi41fS5jbG9zZTpmb2N1cywuY2xvc2U6aG92ZXJ7Y29sb3I6IzAwMDt0ZXh0LWRlY29yYXRpb246bm9uZTtvcGFjaXR5Oi43NX0uY2xvc2U6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCl7Y3Vyc29yOnBvaW50ZXJ9YnV0dG9uLmNsb3Nle3BhZGRpbmc6MDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lfS5tb2RhbC1vcGVue292ZXJmbG93OmhpZGRlbn0ubW9kYWx7cG9zaXRpb246Zml4ZWQ7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjA7ei1pbmRleDoxMDUwO2Rpc3BsYXk6bm9uZTtvdmVyZmxvdzpoaWRkZW47b3V0bGluZTowfS5tb2RhbC1vcGVuIC5tb2RhbHtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG99Lm1vZGFsLWRpYWxvZ3twb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDphdXRvO21hcmdpbjouNXJlbTtwb2ludGVyLWV2ZW50czpub25lfS5tb2RhbC5mYWRlIC5tb2RhbC1kaWFsb2d7dHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuM3MgZWFzZS1vdXQ7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIGVhc2Utb3V0O3RyYW5zaXRpb246dHJhbnNmb3JtIC4zcyBlYXNlLW91dCwtd2Via2l0LXRyYW5zZm9ybSAuM3MgZWFzZS1vdXQ7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDAsLTI1JSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwLC0yNSUpfUBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7Lm1vZGFsLmZhZGUgLm1vZGFsLWRpYWxvZ3t0cmFuc2l0aW9uOm5vbmV9fS5tb2RhbC5zaG93IC5tb2RhbC1kaWFsb2d7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwLDApfS5tb2RhbC1kaWFsb2ctY2VudGVyZWR7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjttaW4taGVpZ2h0OmNhbGMoMTAwJSAtICguNXJlbSAqIDIpKX0ubW9kYWwtY29udGVudHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt3aWR0aDoxMDAlO3BvaW50ZXItZXZlbnRzOmF1dG87YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJveDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjIpO2JvcmRlci1yYWRpdXM6LjNyZW07b3V0bGluZTowfS5tb2RhbC1iYWNrZHJvcHtwb3NpdGlvbjpmaXhlZDt0b3A6MDtyaWdodDowO2JvdHRvbTowO2xlZnQ6MDt6LWluZGV4OjEwNDA7YmFja2dyb3VuZC1jb2xvcjojMDAwfS5tb2RhbC1iYWNrZHJvcC5mYWRle29wYWNpdHk6MH0ubW9kYWwtYmFja2Ryb3Auc2hvd3tvcGFjaXR5Oi41fS5tb2RhbC1oZWFkZXJ7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LW1zLWZsZXgtYWxpZ246c3RhcnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydDstbXMtZmxleC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzoxcmVtO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOWVjZWY7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czouM3JlbTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czouM3JlbX0ubW9kYWwtaGVhZGVyIC5jbG9zZXtwYWRkaW5nOjFyZW07bWFyZ2luOi0xcmVtIC0xcmVtIC0xcmVtIGF1dG99Lm1vZGFsLXRpdGxle21hcmdpbi1ib3R0b206MDtsaW5lLWhlaWdodDoxLjV9Lm1vZGFsLWJvZHl7cG9zaXRpb246cmVsYXRpdmU7LW1zLWZsZXg6MSAxIGF1dG87ZmxleDoxIDEgYXV0bztwYWRkaW5nOjFyZW19Lm1vZGFsLWZvb3RlcntkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LXBhY2s6ZW5kO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtwYWRkaW5nOjFyZW07Ym9yZGVyLXRvcDoxcHggc29saWQgI2U5ZWNlZn0ubW9kYWwtZm9vdGVyPjpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4tbGVmdDouMjVyZW19Lm1vZGFsLWZvb3Rlcj46bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tcmlnaHQ6LjI1cmVtfS5tb2RhbC1zY3JvbGxiYXItbWVhc3VyZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTk5OTlweDt3aWR0aDo1MHB4O2hlaWdodDo1MHB4O292ZXJmbG93OnNjcm9sbH1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7Lm1vZGFsLWRpYWxvZ3ttYXgtd2lkdGg6NTAwcHg7bWFyZ2luOjEuNzVyZW0gYXV0b30ubW9kYWwtZGlhbG9nLWNlbnRlcmVke21pbi1oZWlnaHQ6Y2FsYygxMDAlIC0gKDEuNzVyZW0gKiAyKSl9Lm1vZGFsLXNte21heC13aWR0aDozMDBweH19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpey5tb2RhbC1sZ3ttYXgtd2lkdGg6ODAwcHh9fS50b29sdGlwe3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTA3MDtkaXNwbGF5OmJsb2NrO21hcmdpbjowO2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFwiU2Vnb2UgVUlcIixSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLEFyaWFsLHNhbnMtc2VyaWYsXCJBcHBsZSBDb2xvciBFbW9qaVwiLFwiU2Vnb2UgVUkgRW1vamlcIixcIlNlZ29lIFVJIFN5bWJvbFwiO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjU7dGV4dC1hbGlnbjpsZWZ0O3RleHQtYWxpZ246c3RhcnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dGV4dC1zaGFkb3c6bm9uZTt0ZXh0LXRyYW5zZm9ybTpub25lO2xldHRlci1zcGFjaW5nOm5vcm1hbDt3b3JkLWJyZWFrOm5vcm1hbDt3b3JkLXNwYWNpbmc6bm9ybWFsO3doaXRlLXNwYWNlOm5vcm1hbDtsaW5lLWJyZWFrOmF1dG87Zm9udC1zaXplOi44NzVyZW07d29yZC13cmFwOmJyZWFrLXdvcmQ7b3BhY2l0eTowfS50b29sdGlwLnNob3d7b3BhY2l0eTouOX0udG9vbHRpcCAuYXJyb3d7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jazt3aWR0aDouOHJlbTtoZWlnaHQ6LjRyZW19LnRvb2x0aXAgLmFycm93OjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDpcIlwiO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItc3R5bGU6c29saWR9LmJzLXRvb2x0aXAtYXV0b1t4LXBsYWNlbWVudF49dG9wXSwuYnMtdG9vbHRpcC10b3B7cGFkZGluZzouNHJlbSAwfS5icy10b29sdGlwLWF1dG9beC1wbGFjZW1lbnRePXRvcF0gLmFycm93LC5icy10b29sdGlwLXRvcCAuYXJyb3d7Ym90dG9tOjB9LmJzLXRvb2x0aXAtYXV0b1t4LXBsYWNlbWVudF49dG9wXSAuYXJyb3c6OmJlZm9yZSwuYnMtdG9vbHRpcC10b3AgLmFycm93OjpiZWZvcmV7dG9wOjA7Ym9yZGVyLXdpZHRoOi40cmVtIC40cmVtIDA7Ym9yZGVyLXRvcC1jb2xvcjojMDAwfS5icy10b29sdGlwLWF1dG9beC1wbGFjZW1lbnRePXJpZ2h0XSwuYnMtdG9vbHRpcC1yaWdodHtwYWRkaW5nOjAgLjRyZW19LmJzLXRvb2x0aXAtYXV0b1t4LXBsYWNlbWVudF49cmlnaHRdIC5hcnJvdywuYnMtdG9vbHRpcC1yaWdodCAuYXJyb3d7bGVmdDowO3dpZHRoOi40cmVtO2hlaWdodDouOHJlbX0uYnMtdG9vbHRpcC1hdXRvW3gtcGxhY2VtZW50Xj1yaWdodF0gLmFycm93OjpiZWZvcmUsLmJzLXRvb2x0aXAtcmlnaHQgLmFycm93OjpiZWZvcmV7cmlnaHQ6MDtib3JkZXItd2lkdGg6LjRyZW0gLjRyZW0gLjRyZW0gMDtib3JkZXItcmlnaHQtY29sb3I6IzAwMH0uYnMtdG9vbHRpcC1hdXRvW3gtcGxhY2VtZW50Xj1ib3R0b21dLC5icy10b29sdGlwLWJvdHRvbXtwYWRkaW5nOi40cmVtIDB9LmJzLXRvb2x0aXAtYXV0b1t4LXBsYWNlbWVudF49Ym90dG9tXSAuYXJyb3csLmJzLXRvb2x0aXAtYm90dG9tIC5hcnJvd3t0b3A6MH0uYnMtdG9vbHRpcC1hdXRvW3gtcGxhY2VtZW50Xj1ib3R0b21dIC5hcnJvdzo6YmVmb3JlLC5icy10b29sdGlwLWJvdHRvbSAuYXJyb3c6OmJlZm9yZXtib3R0b206MDtib3JkZXItd2lkdGg6MCAuNHJlbSAuNHJlbTtib3JkZXItYm90dG9tLWNvbG9yOiMwMDB9LmJzLXRvb2x0aXAtYXV0b1t4LXBsYWNlbWVudF49bGVmdF0sLmJzLXRvb2x0aXAtbGVmdHtwYWRkaW5nOjAgLjRyZW19LmJzLXRvb2x0aXAtYXV0b1t4LXBsYWNlbWVudF49bGVmdF0gLmFycm93LC5icy10b29sdGlwLWxlZnQgLmFycm93e3JpZ2h0OjA7d2lkdGg6LjRyZW07aGVpZ2h0Oi44cmVtfS5icy10b29sdGlwLWF1dG9beC1wbGFjZW1lbnRePWxlZnRdIC5hcnJvdzo6YmVmb3JlLC5icy10b29sdGlwLWxlZnQgLmFycm93OjpiZWZvcmV7bGVmdDowO2JvcmRlci13aWR0aDouNHJlbSAwIC40cmVtIC40cmVtO2JvcmRlci1sZWZ0LWNvbG9yOiMwMDB9LnRvb2x0aXAtaW5uZXJ7bWF4LXdpZHRoOjIwMHB4O3BhZGRpbmc6LjI1cmVtIC41cmVtO2NvbG9yOiNmZmY7dGV4dC1hbGlnbjpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjojMDAwO2JvcmRlci1yYWRpdXM6LjI1cmVtfS5wb3BvdmVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt6LWluZGV4OjEwNjA7ZGlzcGxheTpibG9jazttYXgtd2lkdGg6Mjc2cHg7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsXCJTZWdvZSBVSVwiLFJvYm90byxcIkhlbHZldGljYSBOZXVlXCIsQXJpYWwsc2Fucy1zZXJpZixcIkFwcGxlIENvbG9yIEVtb2ppXCIsXCJTZWdvZSBVSSBFbW9qaVwiLFwiU2Vnb2UgVUkgU3ltYm9sXCI7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuNTt0ZXh0LWFsaWduOmxlZnQ7dGV4dC1hbGlnbjpzdGFydDt0ZXh0LWRlY29yYXRpb246bm9uZTt0ZXh0LXNoYWRvdzpub25lO3RleHQtdHJhbnNmb3JtOm5vbmU7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO3dvcmQtYnJlYWs6bm9ybWFsO3dvcmQtc3BhY2luZzpub3JtYWw7d2hpdGUtc3BhY2U6bm9ybWFsO2xpbmUtYnJlYWs6YXV0bztmb250LXNpemU6Ljg3NXJlbTt3b3JkLXdyYXA6YnJlYWstd29yZDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jbGlwOnBhZGRpbmctYm94O2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMik7Ym9yZGVyLXJhZGl1czouM3JlbX0ucG9wb3ZlciAuYXJyb3d7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jazt3aWR0aDoxcmVtO2hlaWdodDouNXJlbTttYXJnaW46MCAuM3JlbX0ucG9wb3ZlciAuYXJyb3c6OmFmdGVyLC5wb3BvdmVyIC5hcnJvdzo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7Y29udGVudDpcIlwiO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItc3R5bGU6c29saWR9LmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49dG9wXSwuYnMtcG9wb3Zlci10b3B7bWFyZ2luLWJvdHRvbTouNXJlbX0uYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj10b3BdIC5hcnJvdywuYnMtcG9wb3Zlci10b3AgLmFycm93e2JvdHRvbTpjYWxjKCguNXJlbSArIDFweCkgKiAtMSl9LmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49dG9wXSAuYXJyb3c6OmFmdGVyLC5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePXRvcF0gLmFycm93OjpiZWZvcmUsLmJzLXBvcG92ZXItdG9wIC5hcnJvdzo6YWZ0ZXIsLmJzLXBvcG92ZXItdG9wIC5hcnJvdzo6YmVmb3Jle2JvcmRlci13aWR0aDouNXJlbSAuNXJlbSAwfS5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePXRvcF0gLmFycm93OjpiZWZvcmUsLmJzLXBvcG92ZXItdG9wIC5hcnJvdzo6YmVmb3Jle2JvdHRvbTowO2JvcmRlci10b3AtY29sb3I6cmdiYSgwLDAsMCwuMjUpfS5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePXRvcF0gLmFycm93OjphZnRlciwuYnMtcG9wb3Zlci10b3AgLmFycm93OjphZnRlcntib3R0b206MXB4O2JvcmRlci10b3AtY29sb3I6I2ZmZn0uYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1yaWdodF0sLmJzLXBvcG92ZXItcmlnaHR7bWFyZ2luLWxlZnQ6LjVyZW19LmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49cmlnaHRdIC5hcnJvdywuYnMtcG9wb3Zlci1yaWdodCAuYXJyb3d7bGVmdDpjYWxjKCguNXJlbSArIDFweCkgKiAtMSk7d2lkdGg6LjVyZW07aGVpZ2h0OjFyZW07bWFyZ2luOi4zcmVtIDB9LmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49cmlnaHRdIC5hcnJvdzo6YWZ0ZXIsLmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49cmlnaHRdIC5hcnJvdzo6YmVmb3JlLC5icy1wb3BvdmVyLXJpZ2h0IC5hcnJvdzo6YWZ0ZXIsLmJzLXBvcG92ZXItcmlnaHQgLmFycm93OjpiZWZvcmV7Ym9yZGVyLXdpZHRoOi41cmVtIC41cmVtIC41cmVtIDB9LmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49cmlnaHRdIC5hcnJvdzo6YmVmb3JlLC5icy1wb3BvdmVyLXJpZ2h0IC5hcnJvdzo6YmVmb3Jle2xlZnQ6MDtib3JkZXItcmlnaHQtY29sb3I6cmdiYSgwLDAsMCwuMjUpfS5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePXJpZ2h0XSAuYXJyb3c6OmFmdGVyLC5icy1wb3BvdmVyLXJpZ2h0IC5hcnJvdzo6YWZ0ZXJ7bGVmdDoxcHg7Ym9yZGVyLXJpZ2h0LWNvbG9yOiNmZmZ9LmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49Ym90dG9tXSwuYnMtcG9wb3Zlci1ib3R0b217bWFyZ2luLXRvcDouNXJlbX0uYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1ib3R0b21dIC5hcnJvdywuYnMtcG9wb3Zlci1ib3R0b20gLmFycm93e3RvcDpjYWxjKCguNXJlbSArIDFweCkgKiAtMSl9LmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49Ym90dG9tXSAuYXJyb3c6OmFmdGVyLC5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePWJvdHRvbV0gLmFycm93OjpiZWZvcmUsLmJzLXBvcG92ZXItYm90dG9tIC5hcnJvdzo6YWZ0ZXIsLmJzLXBvcG92ZXItYm90dG9tIC5hcnJvdzo6YmVmb3Jle2JvcmRlci13aWR0aDowIC41cmVtIC41cmVtIC41cmVtfS5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePWJvdHRvbV0gLmFycm93OjpiZWZvcmUsLmJzLXBvcG92ZXItYm90dG9tIC5hcnJvdzo6YmVmb3Jle3RvcDowO2JvcmRlci1ib3R0b20tY29sb3I6cmdiYSgwLDAsMCwuMjUpfS5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePWJvdHRvbV0gLmFycm93OjphZnRlciwuYnMtcG9wb3Zlci1ib3R0b20gLmFycm93OjphZnRlcnt0b3A6MXB4O2JvcmRlci1ib3R0b20tY29sb3I6I2ZmZn0uYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1ib3R0b21dIC5wb3BvdmVyLWhlYWRlcjo6YmVmb3JlLC5icy1wb3BvdmVyLWJvdHRvbSAucG9wb3Zlci1oZWFkZXI6OmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjUwJTtkaXNwbGF5OmJsb2NrO3dpZHRoOjFyZW07bWFyZ2luLWxlZnQ6LS41cmVtO2NvbnRlbnQ6XCJcIjtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZjdmN2Y3fS5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePWxlZnRdLC5icy1wb3BvdmVyLWxlZnR7bWFyZ2luLXJpZ2h0Oi41cmVtfS5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePWxlZnRdIC5hcnJvdywuYnMtcG9wb3Zlci1sZWZ0IC5hcnJvd3tyaWdodDpjYWxjKCguNXJlbSArIDFweCkgKiAtMSk7d2lkdGg6LjVyZW07aGVpZ2h0OjFyZW07bWFyZ2luOi4zcmVtIDB9LmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49bGVmdF0gLmFycm93OjphZnRlciwuYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1sZWZ0XSAuYXJyb3c6OmJlZm9yZSwuYnMtcG9wb3Zlci1sZWZ0IC5hcnJvdzo6YWZ0ZXIsLmJzLXBvcG92ZXItbGVmdCAuYXJyb3c6OmJlZm9yZXtib3JkZXItd2lkdGg6LjVyZW0gMCAuNXJlbSAuNXJlbX0uYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1sZWZ0XSAuYXJyb3c6OmJlZm9yZSwuYnMtcG9wb3Zlci1sZWZ0IC5hcnJvdzo6YmVmb3Jle3JpZ2h0OjA7Ym9yZGVyLWxlZnQtY29sb3I6cmdiYSgwLDAsMCwuMjUpfS5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePWxlZnRdIC5hcnJvdzo6YWZ0ZXIsLmJzLXBvcG92ZXItbGVmdCAuYXJyb3c6OmFmdGVye3JpZ2h0OjFweDtib3JkZXItbGVmdC1jb2xvcjojZmZmfS5wb3BvdmVyLWhlYWRlcntwYWRkaW5nOi41cmVtIC43NXJlbTttYXJnaW4tYm90dG9tOjA7Zm9udC1zaXplOjFyZW07Y29sb3I6aW5oZXJpdDtiYWNrZ3JvdW5kLWNvbG9yOiNmN2Y3Zjc7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ViZWJlYjtib3JkZXItdG9wLWxlZnQtcmFkaXVzOmNhbGMoLjNyZW0gLSAxcHgpO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOmNhbGMoLjNyZW0gLSAxcHgpfS5wb3BvdmVyLWhlYWRlcjplbXB0eXtkaXNwbGF5Om5vbmV9LnBvcG92ZXItYm9keXtwYWRkaW5nOi41cmVtIC43NXJlbTtjb2xvcjojMjEyNTI5fS5jYXJvdXNlbHtwb3NpdGlvbjpyZWxhdGl2ZX0uY2Fyb3VzZWwtaW5uZXJ7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW59LmNhcm91c2VsLWl0ZW17cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpub25lOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2lkdGg6MTAwJTt0cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC42cyBlYXNlO3RyYW5zaXRpb246dHJhbnNmb3JtIC42cyBlYXNlO3RyYW5zaXRpb246dHJhbnNmb3JtIC42cyBlYXNlLC13ZWJraXQtdHJhbnNmb3JtIC42cyBlYXNlOy13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47LXdlYmtpdC1wZXJzcGVjdGl2ZToxMDAwcHg7cGVyc3BlY3RpdmU6MTAwMHB4fUBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7LmNhcm91c2VsLWl0ZW17dHJhbnNpdGlvbjpub25lfX0uY2Fyb3VzZWwtaXRlbS1uZXh0LC5jYXJvdXNlbC1pdGVtLXByZXYsLmNhcm91c2VsLWl0ZW0uYWN0aXZle2Rpc3BsYXk6YmxvY2t9LmNhcm91c2VsLWl0ZW0tbmV4dCwuY2Fyb3VzZWwtaXRlbS1wcmV2e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowfS5jYXJvdXNlbC1pdGVtLW5leHQuY2Fyb3VzZWwtaXRlbS1sZWZ0LC5jYXJvdXNlbC1pdGVtLXByZXYuY2Fyb3VzZWwtaXRlbS1yaWdodHstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApfUBzdXBwb3J0cyAoKC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkKSBvciAodHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkKSl7LmNhcm91c2VsLWl0ZW0tbmV4dC5jYXJvdXNlbC1pdGVtLWxlZnQsLmNhcm91c2VsLWl0ZW0tcHJldi5jYXJvdXNlbC1pdGVtLXJpZ2h0ey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApfX0uYWN0aXZlLmNhcm91c2VsLWl0ZW0tcmlnaHQsLmNhcm91c2VsLWl0ZW0tbmV4dHstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEwMCUpfUBzdXBwb3J0cyAoKC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkKSBvciAodHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkKSl7LmFjdGl2ZS5jYXJvdXNlbC1pdGVtLXJpZ2h0LC5jYXJvdXNlbC1pdGVtLW5leHR7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLDAsMCl9fS5hY3RpdmUuY2Fyb3VzZWwtaXRlbS1sZWZ0LC5jYXJvdXNlbC1pdGVtLXByZXZ7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpfUBzdXBwb3J0cyAoKC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkKSBvciAodHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkKSl7LmFjdGl2ZS5jYXJvdXNlbC1pdGVtLWxlZnQsLmNhcm91c2VsLWl0ZW0tcHJldnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwwLDApfX0uY2Fyb3VzZWwtZmFkZSAuY2Fyb3VzZWwtaXRlbXtvcGFjaXR5OjA7dHJhbnNpdGlvbi1kdXJhdGlvbjouNnM7dHJhbnNpdGlvbi1wcm9wZXJ0eTpvcGFjaXR5fS5jYXJvdXNlbC1mYWRlIC5jYXJvdXNlbC1pdGVtLW5leHQuY2Fyb3VzZWwtaXRlbS1sZWZ0LC5jYXJvdXNlbC1mYWRlIC5jYXJvdXNlbC1pdGVtLXByZXYuY2Fyb3VzZWwtaXRlbS1yaWdodCwuY2Fyb3VzZWwtZmFkZSAuY2Fyb3VzZWwtaXRlbS5hY3RpdmV7b3BhY2l0eToxfS5jYXJvdXNlbC1mYWRlIC5hY3RpdmUuY2Fyb3VzZWwtaXRlbS1sZWZ0LC5jYXJvdXNlbC1mYWRlIC5hY3RpdmUuY2Fyb3VzZWwtaXRlbS1yaWdodHtvcGFjaXR5OjB9LmNhcm91c2VsLWZhZGUgLmFjdGl2ZS5jYXJvdXNlbC1pdGVtLWxlZnQsLmNhcm91c2VsLWZhZGUgLmFjdGl2ZS5jYXJvdXNlbC1pdGVtLXByZXYsLmNhcm91c2VsLWZhZGUgLmNhcm91c2VsLWl0ZW0tbmV4dCwuY2Fyb3VzZWwtZmFkZSAuY2Fyb3VzZWwtaXRlbS1wcmV2LC5jYXJvdXNlbC1mYWRlIC5jYXJvdXNlbC1pdGVtLmFjdGl2ZXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApfUBzdXBwb3J0cyAoKC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkKSBvciAodHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkKSl7LmNhcm91c2VsLWZhZGUgLmFjdGl2ZS5jYXJvdXNlbC1pdGVtLWxlZnQsLmNhcm91c2VsLWZhZGUgLmFjdGl2ZS5jYXJvdXNlbC1pdGVtLXByZXYsLmNhcm91c2VsLWZhZGUgLmNhcm91c2VsLWl0ZW0tbmV4dCwuY2Fyb3VzZWwtZmFkZSAuY2Fyb3VzZWwtaXRlbS1wcmV2LC5jYXJvdXNlbC1mYWRlIC5jYXJvdXNlbC1pdGVtLmFjdGl2ZXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKX19LmNhcm91c2VsLWNvbnRyb2wtbmV4dCwuY2Fyb3VzZWwtY29udHJvbC1wcmV2e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxNSU7Y29sb3I6I2ZmZjt0ZXh0LWFsaWduOmNlbnRlcjtvcGFjaXR5Oi41fS5jYXJvdXNlbC1jb250cm9sLW5leHQ6Zm9jdXMsLmNhcm91c2VsLWNvbnRyb2wtbmV4dDpob3ZlciwuY2Fyb3VzZWwtY29udHJvbC1wcmV2OmZvY3VzLC5jYXJvdXNlbC1jb250cm9sLXByZXY6aG92ZXJ7Y29sb3I6I2ZmZjt0ZXh0LWRlY29yYXRpb246bm9uZTtvdXRsaW5lOjA7b3BhY2l0eTouOX0uY2Fyb3VzZWwtY29udHJvbC1wcmV2e2xlZnQ6MH0uY2Fyb3VzZWwtY29udHJvbC1uZXh0e3JpZ2h0OjB9LmNhcm91c2VsLWNvbnRyb2wtbmV4dC1pY29uLC5jYXJvdXNlbC1jb250cm9sLXByZXYtaWNvbntkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7YmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJX0uY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGZpbGw9JyUyM2ZmZicgdmlld0JveD0nMCAwIDggOCclM0UlM0NwYXRoIGQ9J001LjI1IDBsLTQgNCA0IDQgMS41LTEuNS0yLjUtMi41IDIuNS0yLjUtMS41LTEuNXonLyUzRSUzQy9zdmclM0VcIil9LmNhcm91c2VsLWNvbnRyb2wtbmV4dC1pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBmaWxsPSclMjNmZmYnIHZpZXdCb3g9JzAgMCA4IDgnJTNFJTNDcGF0aCBkPSdNMi43NSAwbC0xLjUgMS41IDIuNSAyLjUtMi41IDIuNSAxLjUgMS41IDQtNC00LTR6Jy8lM0UlM0Mvc3ZnJTNFXCIpfS5jYXJvdXNlbC1pbmRpY2F0b3Jze3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7Ym90dG9tOjEwcHg7bGVmdDowO3otaW5kZXg6MTU7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MTUlO21hcmdpbi1sZWZ0OjE1JTtsaXN0LXN0eWxlOm5vbmV9LmNhcm91c2VsLWluZGljYXRvcnMgbGl7cG9zaXRpb246cmVsYXRpdmU7LW1zLWZsZXg6MCAxIGF1dG87ZmxleDowIDEgYXV0bzt3aWR0aDozMHB4O2hlaWdodDozcHg7bWFyZ2luLXJpZ2h0OjNweDttYXJnaW4tbGVmdDozcHg7dGV4dC1pbmRlbnQ6LTk5OXB4O2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9LmNhcm91c2VsLWluZGljYXRvcnMgbGk6OmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTEwcHg7bGVmdDowO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwcHg7Y29udGVudDpcIlwifS5jYXJvdXNlbC1pbmRpY2F0b3JzIGxpOjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206LTEwcHg7bGVmdDowO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwcHg7Y29udGVudDpcIlwifS5jYXJvdXNlbC1pbmRpY2F0b3JzIC5hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5jYXJvdXNlbC1jYXB0aW9ue3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjE1JTtib3R0b206MjBweDtsZWZ0OjE1JTt6LWluZGV4OjEwO3BhZGRpbmctdG9wOjIwcHg7cGFkZGluZy1ib3R0b206MjBweDtjb2xvcjojZmZmO3RleHQtYWxpZ246Y2VudGVyfS5hbGlnbi1iYXNlbGluZXt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZSFpbXBvcnRhbnR9LmFsaWduLXRvcHt2ZXJ0aWNhbC1hbGlnbjp0b3AhaW1wb3J0YW50fS5hbGlnbi1taWRkbGV7dmVydGljYWwtYWxpZ246bWlkZGxlIWltcG9ydGFudH0uYWxpZ24tYm90dG9te3ZlcnRpY2FsLWFsaWduOmJvdHRvbSFpbXBvcnRhbnR9LmFsaWduLXRleHQtYm90dG9te3ZlcnRpY2FsLWFsaWduOnRleHQtYm90dG9tIWltcG9ydGFudH0uYWxpZ24tdGV4dC10b3B7dmVydGljYWwtYWxpZ246dGV4dC10b3AhaW1wb3J0YW50fS5iZy1wcmltYXJ5e2JhY2tncm91bmQtY29sb3I6IzAwN2JmZiFpbXBvcnRhbnR9YS5iZy1wcmltYXJ5OmZvY3VzLGEuYmctcHJpbWFyeTpob3ZlcixidXR0b24uYmctcHJpbWFyeTpmb2N1cyxidXR0b24uYmctcHJpbWFyeTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDYyY2MhaW1wb3J0YW50fS5iZy1zZWNvbmRhcnl7YmFja2dyb3VuZC1jb2xvcjojNmM3NTdkIWltcG9ydGFudH1hLmJnLXNlY29uZGFyeTpmb2N1cyxhLmJnLXNlY29uZGFyeTpob3ZlcixidXR0b24uYmctc2Vjb25kYXJ5OmZvY3VzLGJ1dHRvbi5iZy1zZWNvbmRhcnk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojNTQ1YjYyIWltcG9ydGFudH0uYmctc3VjY2Vzc3tiYWNrZ3JvdW5kLWNvbG9yOiMyOGE3NDUhaW1wb3J0YW50fWEuYmctc3VjY2Vzczpmb2N1cyxhLmJnLXN1Y2Nlc3M6aG92ZXIsYnV0dG9uLmJnLXN1Y2Nlc3M6Zm9jdXMsYnV0dG9uLmJnLXN1Y2Nlc3M6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMWU3ZTM0IWltcG9ydGFudH0uYmctaW5mb3tiYWNrZ3JvdW5kLWNvbG9yOiMxN2EyYjghaW1wb3J0YW50fWEuYmctaW5mbzpmb2N1cyxhLmJnLWluZm86aG92ZXIsYnV0dG9uLmJnLWluZm86Zm9jdXMsYnV0dG9uLmJnLWluZm86aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMTE3YThiIWltcG9ydGFudH0uYmctd2FybmluZ3tiYWNrZ3JvdW5kLWNvbG9yOiNmZmMxMDchaW1wb3J0YW50fWEuYmctd2FybmluZzpmb2N1cyxhLmJnLXdhcm5pbmc6aG92ZXIsYnV0dG9uLmJnLXdhcm5pbmc6Zm9jdXMsYnV0dG9uLmJnLXdhcm5pbmc6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZDM5ZTAwIWltcG9ydGFudH0uYmctZGFuZ2Vye2JhY2tncm91bmQtY29sb3I6I2RjMzU0NSFpbXBvcnRhbnR9YS5iZy1kYW5nZXI6Zm9jdXMsYS5iZy1kYW5nZXI6aG92ZXIsYnV0dG9uLmJnLWRhbmdlcjpmb2N1cyxidXR0b24uYmctZGFuZ2VyOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2JkMjEzMCFpbXBvcnRhbnR9LmJnLWxpZ2h0e2JhY2tncm91bmQtY29sb3I6I2Y4ZjlmYSFpbXBvcnRhbnR9YS5iZy1saWdodDpmb2N1cyxhLmJnLWxpZ2h0OmhvdmVyLGJ1dHRvbi5iZy1saWdodDpmb2N1cyxidXR0b24uYmctbGlnaHQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZGFlMGU1IWltcG9ydGFudH0uYmctZGFya3tiYWNrZ3JvdW5kLWNvbG9yOiMzNDNhNDAhaW1wb3J0YW50fWEuYmctZGFyazpmb2N1cyxhLmJnLWRhcms6aG92ZXIsYnV0dG9uLmJnLWRhcms6Zm9jdXMsYnV0dG9uLmJnLWRhcms6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMWQyMTI0IWltcG9ydGFudH0uYmctd2hpdGV7YmFja2dyb3VuZC1jb2xvcjojZmZmIWltcG9ydGFudH0uYmctdHJhbnNwYXJlbnR7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCFpbXBvcnRhbnR9LmJvcmRlcntib3JkZXI6MXB4IHNvbGlkICNkZWUyZTYhaW1wb3J0YW50fS5ib3JkZXItdG9we2JvcmRlci10b3A6MXB4IHNvbGlkICNkZWUyZTYhaW1wb3J0YW50fS5ib3JkZXItcmlnaHR7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZGVlMmU2IWltcG9ydGFudH0uYm9yZGVyLWJvdHRvbXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGVlMmU2IWltcG9ydGFudH0uYm9yZGVyLWxlZnR7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNkZWUyZTYhaW1wb3J0YW50fS5ib3JkZXItMHtib3JkZXI6MCFpbXBvcnRhbnR9LmJvcmRlci10b3AtMHtib3JkZXItdG9wOjAhaW1wb3J0YW50fS5ib3JkZXItcmlnaHQtMHtib3JkZXItcmlnaHQ6MCFpbXBvcnRhbnR9LmJvcmRlci1ib3R0b20tMHtib3JkZXItYm90dG9tOjAhaW1wb3J0YW50fS5ib3JkZXItbGVmdC0we2JvcmRlci1sZWZ0OjAhaW1wb3J0YW50fS5ib3JkZXItcHJpbWFyeXtib3JkZXItY29sb3I6IzAwN2JmZiFpbXBvcnRhbnR9LmJvcmRlci1zZWNvbmRhcnl7Ym9yZGVyLWNvbG9yOiM2Yzc1N2QhaW1wb3J0YW50fS5ib3JkZXItc3VjY2Vzc3tib3JkZXItY29sb3I6IzI4YTc0NSFpbXBvcnRhbnR9LmJvcmRlci1pbmZve2JvcmRlci1jb2xvcjojMTdhMmI4IWltcG9ydGFudH0uYm9yZGVyLXdhcm5pbmd7Ym9yZGVyLWNvbG9yOiNmZmMxMDchaW1wb3J0YW50fS5ib3JkZXItZGFuZ2Vye2JvcmRlci1jb2xvcjojZGMzNTQ1IWltcG9ydGFudH0uYm9yZGVyLWxpZ2h0e2JvcmRlci1jb2xvcjojZjhmOWZhIWltcG9ydGFudH0uYm9yZGVyLWRhcmt7Ym9yZGVyLWNvbG9yOiMzNDNhNDAhaW1wb3J0YW50fS5ib3JkZXItd2hpdGV7Ym9yZGVyLWNvbG9yOiNmZmYhaW1wb3J0YW50fS5yb3VuZGVke2JvcmRlci1yYWRpdXM6LjI1cmVtIWltcG9ydGFudH0ucm91bmRlZC10b3B7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czouMjVyZW0haW1wb3J0YW50O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOi4yNXJlbSFpbXBvcnRhbnR9LnJvdW5kZWQtcmlnaHR7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6LjI1cmVtIWltcG9ydGFudDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czouMjVyZW0haW1wb3J0YW50fS5yb3VuZGVkLWJvdHRvbXtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czouMjVyZW0haW1wb3J0YW50O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjI1cmVtIWltcG9ydGFudH0ucm91bmRlZC1sZWZ0e2JvcmRlci10b3AtbGVmdC1yYWRpdXM6LjI1cmVtIWltcG9ydGFudDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4yNXJlbSFpbXBvcnRhbnR9LnJvdW5kZWQtY2lyY2xle2JvcmRlci1yYWRpdXM6NTAlIWltcG9ydGFudH0ucm91bmRlZC0we2JvcmRlci1yYWRpdXM6MCFpbXBvcnRhbnR9LmNsZWFyZml4OjphZnRlcntkaXNwbGF5OmJsb2NrO2NsZWFyOmJvdGg7Y29udGVudDpcIlwifS5kLW5vbmV7ZGlzcGxheTpub25lIWltcG9ydGFudH0uZC1pbmxpbmV7ZGlzcGxheTppbmxpbmUhaW1wb3J0YW50fS5kLWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9LmQtYmxvY2t7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmQtdGFibGV7ZGlzcGxheTp0YWJsZSFpbXBvcnRhbnR9LmQtdGFibGUtcm93e2Rpc3BsYXk6dGFibGUtcm93IWltcG9ydGFudH0uZC10YWJsZS1jZWxse2Rpc3BsYXk6dGFibGUtY2VsbCFpbXBvcnRhbnR9LmQtZmxleHtkaXNwbGF5Oi1tcy1mbGV4Ym94IWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5kLWlubGluZS1mbGV4e2Rpc3BsYXk6LW1zLWlubGluZS1mbGV4Ym94IWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1mbGV4IWltcG9ydGFudH1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7LmQtc20tbm9uZXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5kLXNtLWlubGluZXtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnR9LmQtc20taW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0uZC1zbS1ibG9ja3tkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uZC1zbS10YWJsZXtkaXNwbGF5OnRhYmxlIWltcG9ydGFudH0uZC1zbS10YWJsZS1yb3d7ZGlzcGxheTp0YWJsZS1yb3chaW1wb3J0YW50fS5kLXNtLXRhYmxlLWNlbGx7ZGlzcGxheTp0YWJsZS1jZWxsIWltcG9ydGFudH0uZC1zbS1mbGV4e2Rpc3BsYXk6LW1zLWZsZXhib3ghaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnR9LmQtc20taW5saW5lLWZsZXh7ZGlzcGxheTotbXMtaW5saW5lLWZsZXhib3ghaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWZsZXghaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmQtbWQtbm9uZXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5kLW1kLWlubGluZXtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnR9LmQtbWQtaW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0uZC1tZC1ibG9ja3tkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uZC1tZC10YWJsZXtkaXNwbGF5OnRhYmxlIWltcG9ydGFudH0uZC1tZC10YWJsZS1yb3d7ZGlzcGxheTp0YWJsZS1yb3chaW1wb3J0YW50fS5kLW1kLXRhYmxlLWNlbGx7ZGlzcGxheTp0YWJsZS1jZWxsIWltcG9ydGFudH0uZC1tZC1mbGV4e2Rpc3BsYXk6LW1zLWZsZXhib3ghaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnR9LmQtbWQtaW5saW5lLWZsZXh7ZGlzcGxheTotbXMtaW5saW5lLWZsZXhib3ghaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWZsZXghaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7LmQtbGctbm9uZXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5kLWxnLWlubGluZXtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnR9LmQtbGctaW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0uZC1sZy1ibG9ja3tkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uZC1sZy10YWJsZXtkaXNwbGF5OnRhYmxlIWltcG9ydGFudH0uZC1sZy10YWJsZS1yb3d7ZGlzcGxheTp0YWJsZS1yb3chaW1wb3J0YW50fS5kLWxnLXRhYmxlLWNlbGx7ZGlzcGxheTp0YWJsZS1jZWxsIWltcG9ydGFudH0uZC1sZy1mbGV4e2Rpc3BsYXk6LW1zLWZsZXhib3ghaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnR9LmQtbGctaW5saW5lLWZsZXh7ZGlzcGxheTotbXMtaW5saW5lLWZsZXhib3ghaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWZsZXghaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5kLXhsLW5vbmV7ZGlzcGxheTpub25lIWltcG9ydGFudH0uZC14bC1pbmxpbmV7ZGlzcGxheTppbmxpbmUhaW1wb3J0YW50fS5kLXhsLWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9LmQteGwtYmxvY2t7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmQteGwtdGFibGV7ZGlzcGxheTp0YWJsZSFpbXBvcnRhbnR9LmQteGwtdGFibGUtcm93e2Rpc3BsYXk6dGFibGUtcm93IWltcG9ydGFudH0uZC14bC10YWJsZS1jZWxse2Rpc3BsYXk6dGFibGUtY2VsbCFpbXBvcnRhbnR9LmQteGwtZmxleHtkaXNwbGF5Oi1tcy1mbGV4Ym94IWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5kLXhsLWlubGluZS1mbGV4e2Rpc3BsYXk6LW1zLWlubGluZS1mbGV4Ym94IWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1mbGV4IWltcG9ydGFudH19QG1lZGlhIHByaW50ey5kLXByaW50LW5vbmV7ZGlzcGxheTpub25lIWltcG9ydGFudH0uZC1wcmludC1pbmxpbmV7ZGlzcGxheTppbmxpbmUhaW1wb3J0YW50fS5kLXByaW50LWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9LmQtcHJpbnQtYmxvY2t7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmQtcHJpbnQtdGFibGV7ZGlzcGxheTp0YWJsZSFpbXBvcnRhbnR9LmQtcHJpbnQtdGFibGUtcm93e2Rpc3BsYXk6dGFibGUtcm93IWltcG9ydGFudH0uZC1wcmludC10YWJsZS1jZWxse2Rpc3BsYXk6dGFibGUtY2VsbCFpbXBvcnRhbnR9LmQtcHJpbnQtZmxleHtkaXNwbGF5Oi1tcy1mbGV4Ym94IWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5kLXByaW50LWlubGluZS1mbGV4e2Rpc3BsYXk6LW1zLWlubGluZS1mbGV4Ym94IWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1mbGV4IWltcG9ydGFudH19LmVtYmVkLXJlc3BvbnNpdmV7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO3BhZGRpbmc6MDtvdmVyZmxvdzpoaWRkZW59LmVtYmVkLXJlc3BvbnNpdmU6OmJlZm9yZXtkaXNwbGF5OmJsb2NrO2NvbnRlbnQ6XCJcIn0uZW1iZWQtcmVzcG9uc2l2ZSAuZW1iZWQtcmVzcG9uc2l2ZS1pdGVtLC5lbWJlZC1yZXNwb25zaXZlIGVtYmVkLC5lbWJlZC1yZXNwb25zaXZlIGlmcmFtZSwuZW1iZWQtcmVzcG9uc2l2ZSBvYmplY3QsLmVtYmVkLXJlc3BvbnNpdmUgdmlkZW97cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Ym9yZGVyOjB9LmVtYmVkLXJlc3BvbnNpdmUtMjFieTk6OmJlZm9yZXtwYWRkaW5nLXRvcDo0Mi44NTcxNDMlfS5lbWJlZC1yZXNwb25zaXZlLTE2Ynk5OjpiZWZvcmV7cGFkZGluZy10b3A6NTYuMjUlfS5lbWJlZC1yZXNwb25zaXZlLTRieTM6OmJlZm9yZXtwYWRkaW5nLXRvcDo3NSV9LmVtYmVkLXJlc3BvbnNpdmUtMWJ5MTo6YmVmb3Jle3BhZGRpbmctdG9wOjEwMCV9LmZsZXgtcm93ey1tcy1mbGV4LWRpcmVjdGlvbjpyb3chaW1wb3J0YW50O2ZsZXgtZGlyZWN0aW9uOnJvdyFpbXBvcnRhbnR9LmZsZXgtY29sdW1uey1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW4haW1wb3J0YW50O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbiFpbXBvcnRhbnR9LmZsZXgtcm93LXJldmVyc2V7LW1zLWZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlIWltcG9ydGFudDtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZSFpbXBvcnRhbnR9LmZsZXgtY29sdW1uLXJldmVyc2V7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlIWltcG9ydGFudDtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZSFpbXBvcnRhbnR9LmZsZXgtd3JhcHstbXMtZmxleC13cmFwOndyYXAhaW1wb3J0YW50O2ZsZXgtd3JhcDp3cmFwIWltcG9ydGFudH0uZmxleC1ub3dyYXB7LW1zLWZsZXgtd3JhcDpub3dyYXAhaW1wb3J0YW50O2ZsZXgtd3JhcDpub3dyYXAhaW1wb3J0YW50fS5mbGV4LXdyYXAtcmV2ZXJzZXstbXMtZmxleC13cmFwOndyYXAtcmV2ZXJzZSFpbXBvcnRhbnQ7ZmxleC13cmFwOndyYXAtcmV2ZXJzZSFpbXBvcnRhbnR9LmZsZXgtZmlsbHstbXMtZmxleDoxIDEgYXV0byFpbXBvcnRhbnQ7ZmxleDoxIDEgYXV0byFpbXBvcnRhbnR9LmZsZXgtZ3Jvdy0wey1tcy1mbGV4LXBvc2l0aXZlOjAhaW1wb3J0YW50O2ZsZXgtZ3JvdzowIWltcG9ydGFudH0uZmxleC1ncm93LTF7LW1zLWZsZXgtcG9zaXRpdmU6MSFpbXBvcnRhbnQ7ZmxleC1ncm93OjEhaW1wb3J0YW50fS5mbGV4LXNocmluay0wey1tcy1mbGV4LW5lZ2F0aXZlOjAhaW1wb3J0YW50O2ZsZXgtc2hyaW5rOjAhaW1wb3J0YW50fS5mbGV4LXNocmluay0xey1tcy1mbGV4LW5lZ2F0aXZlOjEhaW1wb3J0YW50O2ZsZXgtc2hyaW5rOjEhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQtc3RhcnR7LW1zLWZsZXgtcGFjazpzdGFydCFpbXBvcnRhbnQ7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQtZW5key1tcy1mbGV4LXBhY2s6ZW5kIWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQtY2VudGVyey1tcy1mbGV4LXBhY2s6Y2VudGVyIWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0uanVzdGlmeS1jb250ZW50LWJldHdlZW57LW1zLWZsZXgtcGFjazpqdXN0aWZ5IWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC1hcm91bmR7LW1zLWZsZXgtcGFjazpkaXN0cmlidXRlIWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kIWltcG9ydGFudH0uYWxpZ24taXRlbXMtc3RhcnR7LW1zLWZsZXgtYWxpZ246c3RhcnQhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQhaW1wb3J0YW50fS5hbGlnbi1pdGVtcy1lbmR7LW1zLWZsZXgtYWxpZ246ZW5kIWltcG9ydGFudDthbGlnbi1pdGVtczpmbGV4LWVuZCFpbXBvcnRhbnR9LmFsaWduLWl0ZW1zLWNlbnRlcnstbXMtZmxleC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnR9LmFsaWduLWl0ZW1zLWJhc2VsaW5ley1tcy1mbGV4LWFsaWduOmJhc2VsaW5lIWltcG9ydGFudDthbGlnbi1pdGVtczpiYXNlbGluZSFpbXBvcnRhbnR9LmFsaWduLWl0ZW1zLXN0cmV0Y2h7LW1zLWZsZXgtYWxpZ246c3RyZXRjaCFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6c3RyZXRjaCFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtc3RhcnR7LW1zLWZsZXgtbGluZS1wYWNrOnN0YXJ0IWltcG9ydGFudDthbGlnbi1jb250ZW50OmZsZXgtc3RhcnQhaW1wb3J0YW50fS5hbGlnbi1jb250ZW50LWVuZHstbXMtZmxleC1saW5lLXBhY2s6ZW5kIWltcG9ydGFudDthbGlnbi1jb250ZW50OmZsZXgtZW5kIWltcG9ydGFudH0uYWxpZ24tY29udGVudC1jZW50ZXJ7LW1zLWZsZXgtbGluZS1wYWNrOmNlbnRlciFpbXBvcnRhbnQ7YWxpZ24tY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5hbGlnbi1jb250ZW50LWJldHdlZW57LW1zLWZsZXgtbGluZS1wYWNrOmp1c3RpZnkhaW1wb3J0YW50O2FsaWduLWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtYXJvdW5key1tcy1mbGV4LWxpbmUtcGFjazpkaXN0cmlidXRlIWltcG9ydGFudDthbGlnbi1jb250ZW50OnNwYWNlLWFyb3VuZCFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtc3RyZXRjaHstbXMtZmxleC1saW5lLXBhY2s6c3RyZXRjaCFpbXBvcnRhbnQ7YWxpZ24tY29udGVudDpzdHJldGNoIWltcG9ydGFudH0uYWxpZ24tc2VsZi1hdXRvey1tcy1mbGV4LWl0ZW0tYWxpZ246YXV0byFpbXBvcnRhbnQ7YWxpZ24tc2VsZjphdXRvIWltcG9ydGFudH0uYWxpZ24tc2VsZi1zdGFydHstbXMtZmxleC1pdGVtLWFsaWduOnN0YXJ0IWltcG9ydGFudDthbGlnbi1zZWxmOmZsZXgtc3RhcnQhaW1wb3J0YW50fS5hbGlnbi1zZWxmLWVuZHstbXMtZmxleC1pdGVtLWFsaWduOmVuZCFpbXBvcnRhbnQ7YWxpZ24tc2VsZjpmbGV4LWVuZCFpbXBvcnRhbnR9LmFsaWduLXNlbGYtY2VudGVyey1tcy1mbGV4LWl0ZW0tYWxpZ246Y2VudGVyIWltcG9ydGFudDthbGlnbi1zZWxmOmNlbnRlciFpbXBvcnRhbnR9LmFsaWduLXNlbGYtYmFzZWxpbmV7LW1zLWZsZXgtaXRlbS1hbGlnbjpiYXNlbGluZSFpbXBvcnRhbnQ7YWxpZ24tc2VsZjpiYXNlbGluZSFpbXBvcnRhbnR9LmFsaWduLXNlbGYtc3RyZXRjaHstbXMtZmxleC1pdGVtLWFsaWduOnN0cmV0Y2ghaW1wb3J0YW50O2FsaWduLXNlbGY6c3RyZXRjaCFpbXBvcnRhbnR9QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5mbGV4LXNtLXJvd3stbXMtZmxleC1kaXJlY3Rpb246cm93IWltcG9ydGFudDtmbGV4LWRpcmVjdGlvbjpyb3chaW1wb3J0YW50fS5mbGV4LXNtLWNvbHVtbnstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uIWltcG9ydGFudDtmbGV4LWRpcmVjdGlvbjpjb2x1bW4haW1wb3J0YW50fS5mbGV4LXNtLXJvdy1yZXZlcnNley1tcy1mbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZSFpbXBvcnRhbnQ7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2UhaW1wb3J0YW50fS5mbGV4LXNtLWNvbHVtbi1yZXZlcnNley1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZSFpbXBvcnRhbnQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2UhaW1wb3J0YW50fS5mbGV4LXNtLXdyYXB7LW1zLWZsZXgtd3JhcDp3cmFwIWltcG9ydGFudDtmbGV4LXdyYXA6d3JhcCFpbXBvcnRhbnR9LmZsZXgtc20tbm93cmFwey1tcy1mbGV4LXdyYXA6bm93cmFwIWltcG9ydGFudDtmbGV4LXdyYXA6bm93cmFwIWltcG9ydGFudH0uZmxleC1zbS13cmFwLXJldmVyc2V7LW1zLWZsZXgtd3JhcDp3cmFwLXJldmVyc2UhaW1wb3J0YW50O2ZsZXgtd3JhcDp3cmFwLXJldmVyc2UhaW1wb3J0YW50fS5mbGV4LXNtLWZpbGx7LW1zLWZsZXg6MSAxIGF1dG8haW1wb3J0YW50O2ZsZXg6MSAxIGF1dG8haW1wb3J0YW50fS5mbGV4LXNtLWdyb3ctMHstbXMtZmxleC1wb3NpdGl2ZTowIWltcG9ydGFudDtmbGV4LWdyb3c6MCFpbXBvcnRhbnR9LmZsZXgtc20tZ3Jvdy0xey1tcy1mbGV4LXBvc2l0aXZlOjEhaW1wb3J0YW50O2ZsZXgtZ3JvdzoxIWltcG9ydGFudH0uZmxleC1zbS1zaHJpbmstMHstbXMtZmxleC1uZWdhdGl2ZTowIWltcG9ydGFudDtmbGV4LXNocmluazowIWltcG9ydGFudH0uZmxleC1zbS1zaHJpbmstMXstbXMtZmxleC1uZWdhdGl2ZToxIWltcG9ydGFudDtmbGV4LXNocmluazoxIWltcG9ydGFudH0uanVzdGlmeS1jb250ZW50LXNtLXN0YXJ0ey1tcy1mbGV4LXBhY2s6c3RhcnQhaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0IWltcG9ydGFudH0uanVzdGlmeS1jb250ZW50LXNtLWVuZHstbXMtZmxleC1wYWNrOmVuZCFpbXBvcnRhbnQ7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kIWltcG9ydGFudH0uanVzdGlmeS1jb250ZW50LXNtLWNlbnRlcnstbXMtZmxleC1wYWNrOmNlbnRlciFpbXBvcnRhbnQ7anVzdGlmeS1jb250ZW50OmNlbnRlciFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC1zbS1iZXR3ZWVuey1tcy1mbGV4LXBhY2s6anVzdGlmeSFpbXBvcnRhbnQ7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW4haW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQtc20tYXJvdW5key1tcy1mbGV4LXBhY2s6ZGlzdHJpYnV0ZSFpbXBvcnRhbnQ7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZCFpbXBvcnRhbnR9LmFsaWduLWl0ZW1zLXNtLXN0YXJ0ey1tcy1mbGV4LWFsaWduOnN0YXJ0IWltcG9ydGFudDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0IWltcG9ydGFudH0uYWxpZ24taXRlbXMtc20tZW5key1tcy1mbGV4LWFsaWduOmVuZCFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6ZmxleC1lbmQhaW1wb3J0YW50fS5hbGlnbi1pdGVtcy1zbS1jZW50ZXJ7LW1zLWZsZXgtYWxpZ246Y2VudGVyIWltcG9ydGFudDthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50fS5hbGlnbi1pdGVtcy1zbS1iYXNlbGluZXstbXMtZmxleC1hbGlnbjpiYXNlbGluZSFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6YmFzZWxpbmUhaW1wb3J0YW50fS5hbGlnbi1pdGVtcy1zbS1zdHJldGNoey1tcy1mbGV4LWFsaWduOnN0cmV0Y2ghaW1wb3J0YW50O2FsaWduLWl0ZW1zOnN0cmV0Y2ghaW1wb3J0YW50fS5hbGlnbi1jb250ZW50LXNtLXN0YXJ0ey1tcy1mbGV4LWxpbmUtcGFjazpzdGFydCFpbXBvcnRhbnQ7YWxpZ24tY29udGVudDpmbGV4LXN0YXJ0IWltcG9ydGFudH0uYWxpZ24tY29udGVudC1zbS1lbmR7LW1zLWZsZXgtbGluZS1wYWNrOmVuZCFpbXBvcnRhbnQ7YWxpZ24tY29udGVudDpmbGV4LWVuZCFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtc20tY2VudGVyey1tcy1mbGV4LWxpbmUtcGFjazpjZW50ZXIhaW1wb3J0YW50O2FsaWduLWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0uYWxpZ24tY29udGVudC1zbS1iZXR3ZWVuey1tcy1mbGV4LWxpbmUtcGFjazpqdXN0aWZ5IWltcG9ydGFudDthbGlnbi1jb250ZW50OnNwYWNlLWJldHdlZW4haW1wb3J0YW50fS5hbGlnbi1jb250ZW50LXNtLWFyb3VuZHstbXMtZmxleC1saW5lLXBhY2s6ZGlzdHJpYnV0ZSFpbXBvcnRhbnQ7YWxpZ24tY29udGVudDpzcGFjZS1hcm91bmQhaW1wb3J0YW50fS5hbGlnbi1jb250ZW50LXNtLXN0cmV0Y2h7LW1zLWZsZXgtbGluZS1wYWNrOnN0cmV0Y2ghaW1wb3J0YW50O2FsaWduLWNvbnRlbnQ6c3RyZXRjaCFpbXBvcnRhbnR9LmFsaWduLXNlbGYtc20tYXV0b3stbXMtZmxleC1pdGVtLWFsaWduOmF1dG8haW1wb3J0YW50O2FsaWduLXNlbGY6YXV0byFpbXBvcnRhbnR9LmFsaWduLXNlbGYtc20tc3RhcnR7LW1zLWZsZXgtaXRlbS1hbGlnbjpzdGFydCFpbXBvcnRhbnQ7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0IWltcG9ydGFudH0uYWxpZ24tc2VsZi1zbS1lbmR7LW1zLWZsZXgtaXRlbS1hbGlnbjplbmQhaW1wb3J0YW50O2FsaWduLXNlbGY6ZmxleC1lbmQhaW1wb3J0YW50fS5hbGlnbi1zZWxmLXNtLWNlbnRlcnstbXMtZmxleC1pdGVtLWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7YWxpZ24tc2VsZjpjZW50ZXIhaW1wb3J0YW50fS5hbGlnbi1zZWxmLXNtLWJhc2VsaW5ley1tcy1mbGV4LWl0ZW0tYWxpZ246YmFzZWxpbmUhaW1wb3J0YW50O2FsaWduLXNlbGY6YmFzZWxpbmUhaW1wb3J0YW50fS5hbGlnbi1zZWxmLXNtLXN0cmV0Y2h7LW1zLWZsZXgtaXRlbS1hbGlnbjpzdHJldGNoIWltcG9ydGFudDthbGlnbi1zZWxmOnN0cmV0Y2ghaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmZsZXgtbWQtcm93ey1tcy1mbGV4LWRpcmVjdGlvbjpyb3chaW1wb3J0YW50O2ZsZXgtZGlyZWN0aW9uOnJvdyFpbXBvcnRhbnR9LmZsZXgtbWQtY29sdW1uey1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW4haW1wb3J0YW50O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbiFpbXBvcnRhbnR9LmZsZXgtbWQtcm93LXJldmVyc2V7LW1zLWZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlIWltcG9ydGFudDtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZSFpbXBvcnRhbnR9LmZsZXgtbWQtY29sdW1uLXJldmVyc2V7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlIWltcG9ydGFudDtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZSFpbXBvcnRhbnR9LmZsZXgtbWQtd3JhcHstbXMtZmxleC13cmFwOndyYXAhaW1wb3J0YW50O2ZsZXgtd3JhcDp3cmFwIWltcG9ydGFudH0uZmxleC1tZC1ub3dyYXB7LW1zLWZsZXgtd3JhcDpub3dyYXAhaW1wb3J0YW50O2ZsZXgtd3JhcDpub3dyYXAhaW1wb3J0YW50fS5mbGV4LW1kLXdyYXAtcmV2ZXJzZXstbXMtZmxleC13cmFwOndyYXAtcmV2ZXJzZSFpbXBvcnRhbnQ7ZmxleC13cmFwOndyYXAtcmV2ZXJzZSFpbXBvcnRhbnR9LmZsZXgtbWQtZmlsbHstbXMtZmxleDoxIDEgYXV0byFpbXBvcnRhbnQ7ZmxleDoxIDEgYXV0byFpbXBvcnRhbnR9LmZsZXgtbWQtZ3Jvdy0wey1tcy1mbGV4LXBvc2l0aXZlOjAhaW1wb3J0YW50O2ZsZXgtZ3JvdzowIWltcG9ydGFudH0uZmxleC1tZC1ncm93LTF7LW1zLWZsZXgtcG9zaXRpdmU6MSFpbXBvcnRhbnQ7ZmxleC1ncm93OjEhaW1wb3J0YW50fS5mbGV4LW1kLXNocmluay0wey1tcy1mbGV4LW5lZ2F0aXZlOjAhaW1wb3J0YW50O2ZsZXgtc2hyaW5rOjAhaW1wb3J0YW50fS5mbGV4LW1kLXNocmluay0xey1tcy1mbGV4LW5lZ2F0aXZlOjEhaW1wb3J0YW50O2ZsZXgtc2hyaW5rOjEhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQtbWQtc3RhcnR7LW1zLWZsZXgtcGFjazpzdGFydCFpbXBvcnRhbnQ7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQtbWQtZW5key1tcy1mbGV4LXBhY2s6ZW5kIWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQtbWQtY2VudGVyey1tcy1mbGV4LXBhY2s6Y2VudGVyIWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0uanVzdGlmeS1jb250ZW50LW1kLWJldHdlZW57LW1zLWZsZXgtcGFjazpqdXN0aWZ5IWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC1tZC1hcm91bmR7LW1zLWZsZXgtcGFjazpkaXN0cmlidXRlIWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kIWltcG9ydGFudH0uYWxpZ24taXRlbXMtbWQtc3RhcnR7LW1zLWZsZXgtYWxpZ246c3RhcnQhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQhaW1wb3J0YW50fS5hbGlnbi1pdGVtcy1tZC1lbmR7LW1zLWZsZXgtYWxpZ246ZW5kIWltcG9ydGFudDthbGlnbi1pdGVtczpmbGV4LWVuZCFpbXBvcnRhbnR9LmFsaWduLWl0ZW1zLW1kLWNlbnRlcnstbXMtZmxleC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnR9LmFsaWduLWl0ZW1zLW1kLWJhc2VsaW5ley1tcy1mbGV4LWFsaWduOmJhc2VsaW5lIWltcG9ydGFudDthbGlnbi1pdGVtczpiYXNlbGluZSFpbXBvcnRhbnR9LmFsaWduLWl0ZW1zLW1kLXN0cmV0Y2h7LW1zLWZsZXgtYWxpZ246c3RyZXRjaCFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6c3RyZXRjaCFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtbWQtc3RhcnR7LW1zLWZsZXgtbGluZS1wYWNrOnN0YXJ0IWltcG9ydGFudDthbGlnbi1jb250ZW50OmZsZXgtc3RhcnQhaW1wb3J0YW50fS5hbGlnbi1jb250ZW50LW1kLWVuZHstbXMtZmxleC1saW5lLXBhY2s6ZW5kIWltcG9ydGFudDthbGlnbi1jb250ZW50OmZsZXgtZW5kIWltcG9ydGFudH0uYWxpZ24tY29udGVudC1tZC1jZW50ZXJ7LW1zLWZsZXgtbGluZS1wYWNrOmNlbnRlciFpbXBvcnRhbnQ7YWxpZ24tY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5hbGlnbi1jb250ZW50LW1kLWJldHdlZW57LW1zLWZsZXgtbGluZS1wYWNrOmp1c3RpZnkhaW1wb3J0YW50O2FsaWduLWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtbWQtYXJvdW5key1tcy1mbGV4LWxpbmUtcGFjazpkaXN0cmlidXRlIWltcG9ydGFudDthbGlnbi1jb250ZW50OnNwYWNlLWFyb3VuZCFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtbWQtc3RyZXRjaHstbXMtZmxleC1saW5lLXBhY2s6c3RyZXRjaCFpbXBvcnRhbnQ7YWxpZ24tY29udGVudDpzdHJldGNoIWltcG9ydGFudH0uYWxpZ24tc2VsZi1tZC1hdXRvey1tcy1mbGV4LWl0ZW0tYWxpZ246YXV0byFpbXBvcnRhbnQ7YWxpZ24tc2VsZjphdXRvIWltcG9ydGFudH0uYWxpZ24tc2VsZi1tZC1zdGFydHstbXMtZmxleC1pdGVtLWFsaWduOnN0YXJ0IWltcG9ydGFudDthbGlnbi1zZWxmOmZsZXgtc3RhcnQhaW1wb3J0YW50fS5hbGlnbi1zZWxmLW1kLWVuZHstbXMtZmxleC1pdGVtLWFsaWduOmVuZCFpbXBvcnRhbnQ7YWxpZ24tc2VsZjpmbGV4LWVuZCFpbXBvcnRhbnR9LmFsaWduLXNlbGYtbWQtY2VudGVyey1tcy1mbGV4LWl0ZW0tYWxpZ246Y2VudGVyIWltcG9ydGFudDthbGlnbi1zZWxmOmNlbnRlciFpbXBvcnRhbnR9LmFsaWduLXNlbGYtbWQtYmFzZWxpbmV7LW1zLWZsZXgtaXRlbS1hbGlnbjpiYXNlbGluZSFpbXBvcnRhbnQ7YWxpZ24tc2VsZjpiYXNlbGluZSFpbXBvcnRhbnR9LmFsaWduLXNlbGYtbWQtc3RyZXRjaHstbXMtZmxleC1pdGVtLWFsaWduOnN0cmV0Y2ghaW1wb3J0YW50O2FsaWduLXNlbGY6c3RyZXRjaCFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsuZmxleC1sZy1yb3d7LW1zLWZsZXgtZGlyZWN0aW9uOnJvdyFpbXBvcnRhbnQ7ZmxleC1kaXJlY3Rpb246cm93IWltcG9ydGFudH0uZmxleC1sZy1jb2x1bW57LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbiFpbXBvcnRhbnQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uIWltcG9ydGFudH0uZmxleC1sZy1yb3ctcmV2ZXJzZXstbXMtZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2UhaW1wb3J0YW50O2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlIWltcG9ydGFudH0uZmxleC1sZy1jb2x1bW4tcmV2ZXJzZXstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2UhaW1wb3J0YW50O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlIWltcG9ydGFudH0uZmxleC1sZy13cmFwey1tcy1mbGV4LXdyYXA6d3JhcCFpbXBvcnRhbnQ7ZmxleC13cmFwOndyYXAhaW1wb3J0YW50fS5mbGV4LWxnLW5vd3JhcHstbXMtZmxleC13cmFwOm5vd3JhcCFpbXBvcnRhbnQ7ZmxleC13cmFwOm5vd3JhcCFpbXBvcnRhbnR9LmZsZXgtbGctd3JhcC1yZXZlcnNley1tcy1mbGV4LXdyYXA6d3JhcC1yZXZlcnNlIWltcG9ydGFudDtmbGV4LXdyYXA6d3JhcC1yZXZlcnNlIWltcG9ydGFudH0uZmxleC1sZy1maWxsey1tcy1mbGV4OjEgMSBhdXRvIWltcG9ydGFudDtmbGV4OjEgMSBhdXRvIWltcG9ydGFudH0uZmxleC1sZy1ncm93LTB7LW1zLWZsZXgtcG9zaXRpdmU6MCFpbXBvcnRhbnQ7ZmxleC1ncm93OjAhaW1wb3J0YW50fS5mbGV4LWxnLWdyb3ctMXstbXMtZmxleC1wb3NpdGl2ZToxIWltcG9ydGFudDtmbGV4LWdyb3c6MSFpbXBvcnRhbnR9LmZsZXgtbGctc2hyaW5rLTB7LW1zLWZsZXgtbmVnYXRpdmU6MCFpbXBvcnRhbnQ7ZmxleC1zaHJpbms6MCFpbXBvcnRhbnR9LmZsZXgtbGctc2hyaW5rLTF7LW1zLWZsZXgtbmVnYXRpdmU6MSFpbXBvcnRhbnQ7ZmxleC1zaHJpbms6MSFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC1sZy1zdGFydHstbXMtZmxleC1wYWNrOnN0YXJ0IWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC1sZy1lbmR7LW1zLWZsZXgtcGFjazplbmQhaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpmbGV4LWVuZCFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC1sZy1jZW50ZXJ7LW1zLWZsZXgtcGFjazpjZW50ZXIhaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQtbGctYmV0d2VlbnstbXMtZmxleC1wYWNrOmp1c3RpZnkhaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuIWltcG9ydGFudH0uanVzdGlmeS1jb250ZW50LWxnLWFyb3VuZHstbXMtZmxleC1wYWNrOmRpc3RyaWJ1dGUhaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQhaW1wb3J0YW50fS5hbGlnbi1pdGVtcy1sZy1zdGFydHstbXMtZmxleC1hbGlnbjpzdGFydCFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmFsaWduLWl0ZW1zLWxnLWVuZHstbXMtZmxleC1hbGlnbjplbmQhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmZsZXgtZW5kIWltcG9ydGFudH0uYWxpZ24taXRlbXMtbGctY2VudGVyey1tcy1mbGV4LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudH0uYWxpZ24taXRlbXMtbGctYmFzZWxpbmV7LW1zLWZsZXgtYWxpZ246YmFzZWxpbmUhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmJhc2VsaW5lIWltcG9ydGFudH0uYWxpZ24taXRlbXMtbGctc3RyZXRjaHstbXMtZmxleC1hbGlnbjpzdHJldGNoIWltcG9ydGFudDthbGlnbi1pdGVtczpzdHJldGNoIWltcG9ydGFudH0uYWxpZ24tY29udGVudC1sZy1zdGFydHstbXMtZmxleC1saW5lLXBhY2s6c3RhcnQhaW1wb3J0YW50O2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtbGctZW5key1tcy1mbGV4LWxpbmUtcGFjazplbmQhaW1wb3J0YW50O2FsaWduLWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5hbGlnbi1jb250ZW50LWxnLWNlbnRlcnstbXMtZmxleC1saW5lLXBhY2s6Y2VudGVyIWltcG9ydGFudDthbGlnbi1jb250ZW50OmNlbnRlciFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtbGctYmV0d2VlbnstbXMtZmxleC1saW5lLXBhY2s6anVzdGlmeSFpbXBvcnRhbnQ7YWxpZ24tY29udGVudDpzcGFjZS1iZXR3ZWVuIWltcG9ydGFudH0uYWxpZ24tY29udGVudC1sZy1hcm91bmR7LW1zLWZsZXgtbGluZS1wYWNrOmRpc3RyaWJ1dGUhaW1wb3J0YW50O2FsaWduLWNvbnRlbnQ6c3BhY2UtYXJvdW5kIWltcG9ydGFudH0uYWxpZ24tY29udGVudC1sZy1zdHJldGNoey1tcy1mbGV4LWxpbmUtcGFjazpzdHJldGNoIWltcG9ydGFudDthbGlnbi1jb250ZW50OnN0cmV0Y2ghaW1wb3J0YW50fS5hbGlnbi1zZWxmLWxnLWF1dG97LW1zLWZsZXgtaXRlbS1hbGlnbjphdXRvIWltcG9ydGFudDthbGlnbi1zZWxmOmF1dG8haW1wb3J0YW50fS5hbGlnbi1zZWxmLWxnLXN0YXJ0ey1tcy1mbGV4LWl0ZW0tYWxpZ246c3RhcnQhaW1wb3J0YW50O2FsaWduLXNlbGY6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmFsaWduLXNlbGYtbGctZW5key1tcy1mbGV4LWl0ZW0tYWxpZ246ZW5kIWltcG9ydGFudDthbGlnbi1zZWxmOmZsZXgtZW5kIWltcG9ydGFudH0uYWxpZ24tc2VsZi1sZy1jZW50ZXJ7LW1zLWZsZXgtaXRlbS1hbGlnbjpjZW50ZXIhaW1wb3J0YW50O2FsaWduLXNlbGY6Y2VudGVyIWltcG9ydGFudH0uYWxpZ24tc2VsZi1sZy1iYXNlbGluZXstbXMtZmxleC1pdGVtLWFsaWduOmJhc2VsaW5lIWltcG9ydGFudDthbGlnbi1zZWxmOmJhc2VsaW5lIWltcG9ydGFudH0uYWxpZ24tc2VsZi1sZy1zdHJldGNoey1tcy1mbGV4LWl0ZW0tYWxpZ246c3RyZXRjaCFpbXBvcnRhbnQ7YWxpZ24tc2VsZjpzdHJldGNoIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsuZmxleC14bC1yb3d7LW1zLWZsZXgtZGlyZWN0aW9uOnJvdyFpbXBvcnRhbnQ7ZmxleC1kaXJlY3Rpb246cm93IWltcG9ydGFudH0uZmxleC14bC1jb2x1bW57LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbiFpbXBvcnRhbnQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uIWltcG9ydGFudH0uZmxleC14bC1yb3ctcmV2ZXJzZXstbXMtZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2UhaW1wb3J0YW50O2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlIWltcG9ydGFudH0uZmxleC14bC1jb2x1bW4tcmV2ZXJzZXstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2UhaW1wb3J0YW50O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlIWltcG9ydGFudH0uZmxleC14bC13cmFwey1tcy1mbGV4LXdyYXA6d3JhcCFpbXBvcnRhbnQ7ZmxleC13cmFwOndyYXAhaW1wb3J0YW50fS5mbGV4LXhsLW5vd3JhcHstbXMtZmxleC13cmFwOm5vd3JhcCFpbXBvcnRhbnQ7ZmxleC13cmFwOm5vd3JhcCFpbXBvcnRhbnR9LmZsZXgteGwtd3JhcC1yZXZlcnNley1tcy1mbGV4LXdyYXA6d3JhcC1yZXZlcnNlIWltcG9ydGFudDtmbGV4LXdyYXA6d3JhcC1yZXZlcnNlIWltcG9ydGFudH0uZmxleC14bC1maWxsey1tcy1mbGV4OjEgMSBhdXRvIWltcG9ydGFudDtmbGV4OjEgMSBhdXRvIWltcG9ydGFudH0uZmxleC14bC1ncm93LTB7LW1zLWZsZXgtcG9zaXRpdmU6MCFpbXBvcnRhbnQ7ZmxleC1ncm93OjAhaW1wb3J0YW50fS5mbGV4LXhsLWdyb3ctMXstbXMtZmxleC1wb3NpdGl2ZToxIWltcG9ydGFudDtmbGV4LWdyb3c6MSFpbXBvcnRhbnR9LmZsZXgteGwtc2hyaW5rLTB7LW1zLWZsZXgtbmVnYXRpdmU6MCFpbXBvcnRhbnQ7ZmxleC1zaHJpbms6MCFpbXBvcnRhbnR9LmZsZXgteGwtc2hyaW5rLTF7LW1zLWZsZXgtbmVnYXRpdmU6MSFpbXBvcnRhbnQ7ZmxleC1zaHJpbms6MSFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC14bC1zdGFydHstbXMtZmxleC1wYWNrOnN0YXJ0IWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC14bC1lbmR7LW1zLWZsZXgtcGFjazplbmQhaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpmbGV4LWVuZCFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC14bC1jZW50ZXJ7LW1zLWZsZXgtcGFjazpjZW50ZXIhaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQteGwtYmV0d2VlbnstbXMtZmxleC1wYWNrOmp1c3RpZnkhaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuIWltcG9ydGFudH0uanVzdGlmeS1jb250ZW50LXhsLWFyb3VuZHstbXMtZmxleC1wYWNrOmRpc3RyaWJ1dGUhaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQhaW1wb3J0YW50fS5hbGlnbi1pdGVtcy14bC1zdGFydHstbXMtZmxleC1hbGlnbjpzdGFydCFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmFsaWduLWl0ZW1zLXhsLWVuZHstbXMtZmxleC1hbGlnbjplbmQhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmZsZXgtZW5kIWltcG9ydGFudH0uYWxpZ24taXRlbXMteGwtY2VudGVyey1tcy1mbGV4LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudH0uYWxpZ24taXRlbXMteGwtYmFzZWxpbmV7LW1zLWZsZXgtYWxpZ246YmFzZWxpbmUhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmJhc2VsaW5lIWltcG9ydGFudH0uYWxpZ24taXRlbXMteGwtc3RyZXRjaHstbXMtZmxleC1hbGlnbjpzdHJldGNoIWltcG9ydGFudDthbGlnbi1pdGVtczpzdHJldGNoIWltcG9ydGFudH0uYWxpZ24tY29udGVudC14bC1zdGFydHstbXMtZmxleC1saW5lLXBhY2s6c3RhcnQhaW1wb3J0YW50O2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQteGwtZW5key1tcy1mbGV4LWxpbmUtcGFjazplbmQhaW1wb3J0YW50O2FsaWduLWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5hbGlnbi1jb250ZW50LXhsLWNlbnRlcnstbXMtZmxleC1saW5lLXBhY2s6Y2VudGVyIWltcG9ydGFudDthbGlnbi1jb250ZW50OmNlbnRlciFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQteGwtYmV0d2VlbnstbXMtZmxleC1saW5lLXBhY2s6anVzdGlmeSFpbXBvcnRhbnQ7YWxpZ24tY29udGVudDpzcGFjZS1iZXR3ZWVuIWltcG9ydGFudH0uYWxpZ24tY29udGVudC14bC1hcm91bmR7LW1zLWZsZXgtbGluZS1wYWNrOmRpc3RyaWJ1dGUhaW1wb3J0YW50O2FsaWduLWNvbnRlbnQ6c3BhY2UtYXJvdW5kIWltcG9ydGFudH0uYWxpZ24tY29udGVudC14bC1zdHJldGNoey1tcy1mbGV4LWxpbmUtcGFjazpzdHJldGNoIWltcG9ydGFudDthbGlnbi1jb250ZW50OnN0cmV0Y2ghaW1wb3J0YW50fS5hbGlnbi1zZWxmLXhsLWF1dG97LW1zLWZsZXgtaXRlbS1hbGlnbjphdXRvIWltcG9ydGFudDthbGlnbi1zZWxmOmF1dG8haW1wb3J0YW50fS5hbGlnbi1zZWxmLXhsLXN0YXJ0ey1tcy1mbGV4LWl0ZW0tYWxpZ246c3RhcnQhaW1wb3J0YW50O2FsaWduLXNlbGY6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmFsaWduLXNlbGYteGwtZW5key1tcy1mbGV4LWl0ZW0tYWxpZ246ZW5kIWltcG9ydGFudDthbGlnbi1zZWxmOmZsZXgtZW5kIWltcG9ydGFudH0uYWxpZ24tc2VsZi14bC1jZW50ZXJ7LW1zLWZsZXgtaXRlbS1hbGlnbjpjZW50ZXIhaW1wb3J0YW50O2FsaWduLXNlbGY6Y2VudGVyIWltcG9ydGFudH0uYWxpZ24tc2VsZi14bC1iYXNlbGluZXstbXMtZmxleC1pdGVtLWFsaWduOmJhc2VsaW5lIWltcG9ydGFudDthbGlnbi1zZWxmOmJhc2VsaW5lIWltcG9ydGFudH0uYWxpZ24tc2VsZi14bC1zdHJldGNoey1tcy1mbGV4LWl0ZW0tYWxpZ246c3RyZXRjaCFpbXBvcnRhbnQ7YWxpZ24tc2VsZjpzdHJldGNoIWltcG9ydGFudH19LmZsb2F0LWxlZnR7ZmxvYXQ6bGVmdCFpbXBvcnRhbnR9LmZsb2F0LXJpZ2h0e2Zsb2F0OnJpZ2h0IWltcG9ydGFudH0uZmxvYXQtbm9uZXtmbG9hdDpub25lIWltcG9ydGFudH1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7LmZsb2F0LXNtLWxlZnR7ZmxvYXQ6bGVmdCFpbXBvcnRhbnR9LmZsb2F0LXNtLXJpZ2h0e2Zsb2F0OnJpZ2h0IWltcG9ydGFudH0uZmxvYXQtc20tbm9uZXtmbG9hdDpub25lIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5mbG9hdC1tZC1sZWZ0e2Zsb2F0OmxlZnQhaW1wb3J0YW50fS5mbG9hdC1tZC1yaWdodHtmbG9hdDpyaWdodCFpbXBvcnRhbnR9LmZsb2F0LW1kLW5vbmV7ZmxvYXQ6bm9uZSFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsuZmxvYXQtbGctbGVmdHtmbG9hdDpsZWZ0IWltcG9ydGFudH0uZmxvYXQtbGctcmlnaHR7ZmxvYXQ6cmlnaHQhaW1wb3J0YW50fS5mbG9hdC1sZy1ub25le2Zsb2F0Om5vbmUhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5mbG9hdC14bC1sZWZ0e2Zsb2F0OmxlZnQhaW1wb3J0YW50fS5mbG9hdC14bC1yaWdodHtmbG9hdDpyaWdodCFpbXBvcnRhbnR9LmZsb2F0LXhsLW5vbmV7ZmxvYXQ6bm9uZSFpbXBvcnRhbnR9fS5wb3NpdGlvbi1zdGF0aWN7cG9zaXRpb246c3RhdGljIWltcG9ydGFudH0ucG9zaXRpb24tcmVsYXRpdmV7cG9zaXRpb246cmVsYXRpdmUhaW1wb3J0YW50fS5wb3NpdGlvbi1hYnNvbHV0ZXtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnR9LnBvc2l0aW9uLWZpeGVke3Bvc2l0aW9uOmZpeGVkIWltcG9ydGFudH0ucG9zaXRpb24tc3RpY2t5e3Bvc2l0aW9uOi13ZWJraXQtc3RpY2t5IWltcG9ydGFudDtwb3NpdGlvbjpzdGlja3khaW1wb3J0YW50fS5maXhlZC10b3B7cG9zaXRpb246Zml4ZWQ7dG9wOjA7cmlnaHQ6MDtsZWZ0OjA7ei1pbmRleDoxMDMwfS5maXhlZC1ib3R0b217cG9zaXRpb246Zml4ZWQ7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjA7ei1pbmRleDoxMDMwfUBzdXBwb3J0cyAoKHBvc2l0aW9uOi13ZWJraXQtc3RpY2t5KSBvciAocG9zaXRpb246c3RpY2t5KSl7LnN0aWNreS10b3B7cG9zaXRpb246LXdlYmtpdC1zdGlja3k7cG9zaXRpb246c3RpY2t5O3RvcDowO3otaW5kZXg6MTAyMH19LnNyLW9ubHl7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O2hlaWdodDoxcHg7cGFkZGluZzowO292ZXJmbG93OmhpZGRlbjtjbGlwOnJlY3QoMCwwLDAsMCk7d2hpdGUtc3BhY2U6bm93cmFwO2JvcmRlcjowfS5zci1vbmx5LWZvY3VzYWJsZTphY3RpdmUsLnNyLW9ubHktZm9jdXNhYmxlOmZvY3Vze3Bvc2l0aW9uOnN0YXRpYzt3aWR0aDphdXRvO2hlaWdodDphdXRvO292ZXJmbG93OnZpc2libGU7Y2xpcDphdXRvO3doaXRlLXNwYWNlOm5vcm1hbH0uc2hhZG93LXNte2JveC1zaGFkb3c6MCAuMTI1cmVtIC4yNXJlbSByZ2JhKDAsMCwwLC4wNzUpIWltcG9ydGFudH0uc2hhZG93e2JveC1zaGFkb3c6MCAuNXJlbSAxcmVtIHJnYmEoMCwwLDAsLjE1KSFpbXBvcnRhbnR9LnNoYWRvdy1sZ3tib3gtc2hhZG93OjAgMXJlbSAzcmVtIHJnYmEoMCwwLDAsLjE3NSkhaW1wb3J0YW50fS5zaGFkb3ctbm9uZXtib3gtc2hhZG93Om5vbmUhaW1wb3J0YW50fS53LTI1e3dpZHRoOjI1JSFpbXBvcnRhbnR9LnctNTB7d2lkdGg6NTAlIWltcG9ydGFudH0udy03NXt3aWR0aDo3NSUhaW1wb3J0YW50fS53LTEwMHt3aWR0aDoxMDAlIWltcG9ydGFudH0udy1hdXRve3dpZHRoOmF1dG8haW1wb3J0YW50fS5oLTI1e2hlaWdodDoyNSUhaW1wb3J0YW50fS5oLTUwe2hlaWdodDo1MCUhaW1wb3J0YW50fS5oLTc1e2hlaWdodDo3NSUhaW1wb3J0YW50fS5oLTEwMHtoZWlnaHQ6MTAwJSFpbXBvcnRhbnR9LmgtYXV0b3toZWlnaHQ6YXV0byFpbXBvcnRhbnR9Lm13LTEwMHttYXgtd2lkdGg6MTAwJSFpbXBvcnRhbnR9Lm1oLTEwMHttYXgtaGVpZ2h0OjEwMCUhaW1wb3J0YW50fS5tLTB7bWFyZ2luOjAhaW1wb3J0YW50fS5tdC0wLC5teS0we21hcmdpbi10b3A6MCFpbXBvcnRhbnR9Lm1yLTAsLm14LTB7bWFyZ2luLXJpZ2h0OjAhaW1wb3J0YW50fS5tYi0wLC5teS0we21hcmdpbi1ib3R0b206MCFpbXBvcnRhbnR9Lm1sLTAsLm14LTB7bWFyZ2luLWxlZnQ6MCFpbXBvcnRhbnR9Lm0tMXttYXJnaW46LjI1cmVtIWltcG9ydGFudH0ubXQtMSwubXktMXttYXJnaW4tdG9wOi4yNXJlbSFpbXBvcnRhbnR9Lm1yLTEsLm14LTF7bWFyZ2luLXJpZ2h0Oi4yNXJlbSFpbXBvcnRhbnR9Lm1iLTEsLm15LTF7bWFyZ2luLWJvdHRvbTouMjVyZW0haW1wb3J0YW50fS5tbC0xLC5teC0xe21hcmdpbi1sZWZ0Oi4yNXJlbSFpbXBvcnRhbnR9Lm0tMnttYXJnaW46LjVyZW0haW1wb3J0YW50fS5tdC0yLC5teS0ye21hcmdpbi10b3A6LjVyZW0haW1wb3J0YW50fS5tci0yLC5teC0ye21hcmdpbi1yaWdodDouNXJlbSFpbXBvcnRhbnR9Lm1iLTIsLm15LTJ7bWFyZ2luLWJvdHRvbTouNXJlbSFpbXBvcnRhbnR9Lm1sLTIsLm14LTJ7bWFyZ2luLWxlZnQ6LjVyZW0haW1wb3J0YW50fS5tLTN7bWFyZ2luOjFyZW0haW1wb3J0YW50fS5tdC0zLC5teS0ze21hcmdpbi10b3A6MXJlbSFpbXBvcnRhbnR9Lm1yLTMsLm14LTN7bWFyZ2luLXJpZ2h0OjFyZW0haW1wb3J0YW50fS5tYi0zLC5teS0ze21hcmdpbi1ib3R0b206MXJlbSFpbXBvcnRhbnR9Lm1sLTMsLm14LTN7bWFyZ2luLWxlZnQ6MXJlbSFpbXBvcnRhbnR9Lm0tNHttYXJnaW46MS41cmVtIWltcG9ydGFudH0ubXQtNCwubXktNHttYXJnaW4tdG9wOjEuNXJlbSFpbXBvcnRhbnR9Lm1yLTQsLm14LTR7bWFyZ2luLXJpZ2h0OjEuNXJlbSFpbXBvcnRhbnR9Lm1iLTQsLm15LTR7bWFyZ2luLWJvdHRvbToxLjVyZW0haW1wb3J0YW50fS5tbC00LC5teC00e21hcmdpbi1sZWZ0OjEuNXJlbSFpbXBvcnRhbnR9Lm0tNXttYXJnaW46M3JlbSFpbXBvcnRhbnR9Lm10LTUsLm15LTV7bWFyZ2luLXRvcDozcmVtIWltcG9ydGFudH0ubXItNSwubXgtNXttYXJnaW4tcmlnaHQ6M3JlbSFpbXBvcnRhbnR9Lm1iLTUsLm15LTV7bWFyZ2luLWJvdHRvbTozcmVtIWltcG9ydGFudH0ubWwtNSwubXgtNXttYXJnaW4tbGVmdDozcmVtIWltcG9ydGFudH0ucC0we3BhZGRpbmc6MCFpbXBvcnRhbnR9LnB0LTAsLnB5LTB7cGFkZGluZy10b3A6MCFpbXBvcnRhbnR9LnByLTAsLnB4LTB7cGFkZGluZy1yaWdodDowIWltcG9ydGFudH0ucGItMCwucHktMHtwYWRkaW5nLWJvdHRvbTowIWltcG9ydGFudH0ucGwtMCwucHgtMHtwYWRkaW5nLWxlZnQ6MCFpbXBvcnRhbnR9LnAtMXtwYWRkaW5nOi4yNXJlbSFpbXBvcnRhbnR9LnB0LTEsLnB5LTF7cGFkZGluZy10b3A6LjI1cmVtIWltcG9ydGFudH0ucHItMSwucHgtMXtwYWRkaW5nLXJpZ2h0Oi4yNXJlbSFpbXBvcnRhbnR9LnBiLTEsLnB5LTF7cGFkZGluZy1ib3R0b206LjI1cmVtIWltcG9ydGFudH0ucGwtMSwucHgtMXtwYWRkaW5nLWxlZnQ6LjI1cmVtIWltcG9ydGFudH0ucC0ye3BhZGRpbmc6LjVyZW0haW1wb3J0YW50fS5wdC0yLC5weS0ye3BhZGRpbmctdG9wOi41cmVtIWltcG9ydGFudH0ucHItMiwucHgtMntwYWRkaW5nLXJpZ2h0Oi41cmVtIWltcG9ydGFudH0ucGItMiwucHktMntwYWRkaW5nLWJvdHRvbTouNXJlbSFpbXBvcnRhbnR9LnBsLTIsLnB4LTJ7cGFkZGluZy1sZWZ0Oi41cmVtIWltcG9ydGFudH0ucC0ze3BhZGRpbmc6MXJlbSFpbXBvcnRhbnR9LnB0LTMsLnB5LTN7cGFkZGluZy10b3A6MXJlbSFpbXBvcnRhbnR9LnByLTMsLnB4LTN7cGFkZGluZy1yaWdodDoxcmVtIWltcG9ydGFudH0ucGItMywucHktM3twYWRkaW5nLWJvdHRvbToxcmVtIWltcG9ydGFudH0ucGwtMywucHgtM3twYWRkaW5nLWxlZnQ6MXJlbSFpbXBvcnRhbnR9LnAtNHtwYWRkaW5nOjEuNXJlbSFpbXBvcnRhbnR9LnB0LTQsLnB5LTR7cGFkZGluZy10b3A6MS41cmVtIWltcG9ydGFudH0ucHItNCwucHgtNHtwYWRkaW5nLXJpZ2h0OjEuNXJlbSFpbXBvcnRhbnR9LnBiLTQsLnB5LTR7cGFkZGluZy1ib3R0b206MS41cmVtIWltcG9ydGFudH0ucGwtNCwucHgtNHtwYWRkaW5nLWxlZnQ6MS41cmVtIWltcG9ydGFudH0ucC01e3BhZGRpbmc6M3JlbSFpbXBvcnRhbnR9LnB0LTUsLnB5LTV7cGFkZGluZy10b3A6M3JlbSFpbXBvcnRhbnR9LnByLTUsLnB4LTV7cGFkZGluZy1yaWdodDozcmVtIWltcG9ydGFudH0ucGItNSwucHktNXtwYWRkaW5nLWJvdHRvbTozcmVtIWltcG9ydGFudH0ucGwtNSwucHgtNXtwYWRkaW5nLWxlZnQ6M3JlbSFpbXBvcnRhbnR9Lm0tYXV0b3ttYXJnaW46YXV0byFpbXBvcnRhbnR9Lm10LWF1dG8sLm15LWF1dG97bWFyZ2luLXRvcDphdXRvIWltcG9ydGFudH0ubXItYXV0bywubXgtYXV0b3ttYXJnaW4tcmlnaHQ6YXV0byFpbXBvcnRhbnR9Lm1iLWF1dG8sLm15LWF1dG97bWFyZ2luLWJvdHRvbTphdXRvIWltcG9ydGFudH0ubWwtYXV0bywubXgtYXV0b3ttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudH1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7Lm0tc20tMHttYXJnaW46MCFpbXBvcnRhbnR9Lm10LXNtLTAsLm15LXNtLTB7bWFyZ2luLXRvcDowIWltcG9ydGFudH0ubXItc20tMCwubXgtc20tMHttYXJnaW4tcmlnaHQ6MCFpbXBvcnRhbnR9Lm1iLXNtLTAsLm15LXNtLTB7bWFyZ2luLWJvdHRvbTowIWltcG9ydGFudH0ubWwtc20tMCwubXgtc20tMHttYXJnaW4tbGVmdDowIWltcG9ydGFudH0ubS1zbS0xe21hcmdpbjouMjVyZW0haW1wb3J0YW50fS5tdC1zbS0xLC5teS1zbS0xe21hcmdpbi10b3A6LjI1cmVtIWltcG9ydGFudH0ubXItc20tMSwubXgtc20tMXttYXJnaW4tcmlnaHQ6LjI1cmVtIWltcG9ydGFudH0ubWItc20tMSwubXktc20tMXttYXJnaW4tYm90dG9tOi4yNXJlbSFpbXBvcnRhbnR9Lm1sLXNtLTEsLm14LXNtLTF7bWFyZ2luLWxlZnQ6LjI1cmVtIWltcG9ydGFudH0ubS1zbS0ye21hcmdpbjouNXJlbSFpbXBvcnRhbnR9Lm10LXNtLTIsLm15LXNtLTJ7bWFyZ2luLXRvcDouNXJlbSFpbXBvcnRhbnR9Lm1yLXNtLTIsLm14LXNtLTJ7bWFyZ2luLXJpZ2h0Oi41cmVtIWltcG9ydGFudH0ubWItc20tMiwubXktc20tMnttYXJnaW4tYm90dG9tOi41cmVtIWltcG9ydGFudH0ubWwtc20tMiwubXgtc20tMnttYXJnaW4tbGVmdDouNXJlbSFpbXBvcnRhbnR9Lm0tc20tM3ttYXJnaW46MXJlbSFpbXBvcnRhbnR9Lm10LXNtLTMsLm15LXNtLTN7bWFyZ2luLXRvcDoxcmVtIWltcG9ydGFudH0ubXItc20tMywubXgtc20tM3ttYXJnaW4tcmlnaHQ6MXJlbSFpbXBvcnRhbnR9Lm1iLXNtLTMsLm15LXNtLTN7bWFyZ2luLWJvdHRvbToxcmVtIWltcG9ydGFudH0ubWwtc20tMywubXgtc20tM3ttYXJnaW4tbGVmdDoxcmVtIWltcG9ydGFudH0ubS1zbS00e21hcmdpbjoxLjVyZW0haW1wb3J0YW50fS5tdC1zbS00LC5teS1zbS00e21hcmdpbi10b3A6MS41cmVtIWltcG9ydGFudH0ubXItc20tNCwubXgtc20tNHttYXJnaW4tcmlnaHQ6MS41cmVtIWltcG9ydGFudH0ubWItc20tNCwubXktc20tNHttYXJnaW4tYm90dG9tOjEuNXJlbSFpbXBvcnRhbnR9Lm1sLXNtLTQsLm14LXNtLTR7bWFyZ2luLWxlZnQ6MS41cmVtIWltcG9ydGFudH0ubS1zbS01e21hcmdpbjozcmVtIWltcG9ydGFudH0ubXQtc20tNSwubXktc20tNXttYXJnaW4tdG9wOjNyZW0haW1wb3J0YW50fS5tci1zbS01LC5teC1zbS01e21hcmdpbi1yaWdodDozcmVtIWltcG9ydGFudH0ubWItc20tNSwubXktc20tNXttYXJnaW4tYm90dG9tOjNyZW0haW1wb3J0YW50fS5tbC1zbS01LC5teC1zbS01e21hcmdpbi1sZWZ0OjNyZW0haW1wb3J0YW50fS5wLXNtLTB7cGFkZGluZzowIWltcG9ydGFudH0ucHQtc20tMCwucHktc20tMHtwYWRkaW5nLXRvcDowIWltcG9ydGFudH0ucHItc20tMCwucHgtc20tMHtwYWRkaW5nLXJpZ2h0OjAhaW1wb3J0YW50fS5wYi1zbS0wLC5weS1zbS0we3BhZGRpbmctYm90dG9tOjAhaW1wb3J0YW50fS5wbC1zbS0wLC5weC1zbS0we3BhZGRpbmctbGVmdDowIWltcG9ydGFudH0ucC1zbS0xe3BhZGRpbmc6LjI1cmVtIWltcG9ydGFudH0ucHQtc20tMSwucHktc20tMXtwYWRkaW5nLXRvcDouMjVyZW0haW1wb3J0YW50fS5wci1zbS0xLC5weC1zbS0xe3BhZGRpbmctcmlnaHQ6LjI1cmVtIWltcG9ydGFudH0ucGItc20tMSwucHktc20tMXtwYWRkaW5nLWJvdHRvbTouMjVyZW0haW1wb3J0YW50fS5wbC1zbS0xLC5weC1zbS0xe3BhZGRpbmctbGVmdDouMjVyZW0haW1wb3J0YW50fS5wLXNtLTJ7cGFkZGluZzouNXJlbSFpbXBvcnRhbnR9LnB0LXNtLTIsLnB5LXNtLTJ7cGFkZGluZy10b3A6LjVyZW0haW1wb3J0YW50fS5wci1zbS0yLC5weC1zbS0ye3BhZGRpbmctcmlnaHQ6LjVyZW0haW1wb3J0YW50fS5wYi1zbS0yLC5weS1zbS0ye3BhZGRpbmctYm90dG9tOi41cmVtIWltcG9ydGFudH0ucGwtc20tMiwucHgtc20tMntwYWRkaW5nLWxlZnQ6LjVyZW0haW1wb3J0YW50fS5wLXNtLTN7cGFkZGluZzoxcmVtIWltcG9ydGFudH0ucHQtc20tMywucHktc20tM3twYWRkaW5nLXRvcDoxcmVtIWltcG9ydGFudH0ucHItc20tMywucHgtc20tM3twYWRkaW5nLXJpZ2h0OjFyZW0haW1wb3J0YW50fS5wYi1zbS0zLC5weS1zbS0ze3BhZGRpbmctYm90dG9tOjFyZW0haW1wb3J0YW50fS5wbC1zbS0zLC5weC1zbS0ze3BhZGRpbmctbGVmdDoxcmVtIWltcG9ydGFudH0ucC1zbS00e3BhZGRpbmc6MS41cmVtIWltcG9ydGFudH0ucHQtc20tNCwucHktc20tNHtwYWRkaW5nLXRvcDoxLjVyZW0haW1wb3J0YW50fS5wci1zbS00LC5weC1zbS00e3BhZGRpbmctcmlnaHQ6MS41cmVtIWltcG9ydGFudH0ucGItc20tNCwucHktc20tNHtwYWRkaW5nLWJvdHRvbToxLjVyZW0haW1wb3J0YW50fS5wbC1zbS00LC5weC1zbS00e3BhZGRpbmctbGVmdDoxLjVyZW0haW1wb3J0YW50fS5wLXNtLTV7cGFkZGluZzozcmVtIWltcG9ydGFudH0ucHQtc20tNSwucHktc20tNXtwYWRkaW5nLXRvcDozcmVtIWltcG9ydGFudH0ucHItc20tNSwucHgtc20tNXtwYWRkaW5nLXJpZ2h0OjNyZW0haW1wb3J0YW50fS5wYi1zbS01LC5weS1zbS01e3BhZGRpbmctYm90dG9tOjNyZW0haW1wb3J0YW50fS5wbC1zbS01LC5weC1zbS01e3BhZGRpbmctbGVmdDozcmVtIWltcG9ydGFudH0ubS1zbS1hdXRve21hcmdpbjphdXRvIWltcG9ydGFudH0ubXQtc20tYXV0bywubXktc20tYXV0b3ttYXJnaW4tdG9wOmF1dG8haW1wb3J0YW50fS5tci1zbS1hdXRvLC5teC1zbS1hdXRve21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH0ubWItc20tYXV0bywubXktc20tYXV0b3ttYXJnaW4tYm90dG9tOmF1dG8haW1wb3J0YW50fS5tbC1zbS1hdXRvLC5teC1zbS1hdXRve21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7Lm0tbWQtMHttYXJnaW46MCFpbXBvcnRhbnR9Lm10LW1kLTAsLm15LW1kLTB7bWFyZ2luLXRvcDowIWltcG9ydGFudH0ubXItbWQtMCwubXgtbWQtMHttYXJnaW4tcmlnaHQ6MCFpbXBvcnRhbnR9Lm1iLW1kLTAsLm15LW1kLTB7bWFyZ2luLWJvdHRvbTowIWltcG9ydGFudH0ubWwtbWQtMCwubXgtbWQtMHttYXJnaW4tbGVmdDowIWltcG9ydGFudH0ubS1tZC0xe21hcmdpbjouMjVyZW0haW1wb3J0YW50fS5tdC1tZC0xLC5teS1tZC0xe21hcmdpbi10b3A6LjI1cmVtIWltcG9ydGFudH0ubXItbWQtMSwubXgtbWQtMXttYXJnaW4tcmlnaHQ6LjI1cmVtIWltcG9ydGFudH0ubWItbWQtMSwubXktbWQtMXttYXJnaW4tYm90dG9tOi4yNXJlbSFpbXBvcnRhbnR9Lm1sLW1kLTEsLm14LW1kLTF7bWFyZ2luLWxlZnQ6LjI1cmVtIWltcG9ydGFudH0ubS1tZC0ye21hcmdpbjouNXJlbSFpbXBvcnRhbnR9Lm10LW1kLTIsLm15LW1kLTJ7bWFyZ2luLXRvcDouNXJlbSFpbXBvcnRhbnR9Lm1yLW1kLTIsLm14LW1kLTJ7bWFyZ2luLXJpZ2h0Oi41cmVtIWltcG9ydGFudH0ubWItbWQtMiwubXktbWQtMnttYXJnaW4tYm90dG9tOi41cmVtIWltcG9ydGFudH0ubWwtbWQtMiwubXgtbWQtMnttYXJnaW4tbGVmdDouNXJlbSFpbXBvcnRhbnR9Lm0tbWQtM3ttYXJnaW46MXJlbSFpbXBvcnRhbnR9Lm10LW1kLTMsLm15LW1kLTN7bWFyZ2luLXRvcDoxcmVtIWltcG9ydGFudH0ubXItbWQtMywubXgtbWQtM3ttYXJnaW4tcmlnaHQ6MXJlbSFpbXBvcnRhbnR9Lm1iLW1kLTMsLm15LW1kLTN7bWFyZ2luLWJvdHRvbToxcmVtIWltcG9ydGFudH0ubWwtbWQtMywubXgtbWQtM3ttYXJnaW4tbGVmdDoxcmVtIWltcG9ydGFudH0ubS1tZC00e21hcmdpbjoxLjVyZW0haW1wb3J0YW50fS5tdC1tZC00LC5teS1tZC00e21hcmdpbi10b3A6MS41cmVtIWltcG9ydGFudH0ubXItbWQtNCwubXgtbWQtNHttYXJnaW4tcmlnaHQ6MS41cmVtIWltcG9ydGFudH0ubWItbWQtNCwubXktbWQtNHttYXJnaW4tYm90dG9tOjEuNXJlbSFpbXBvcnRhbnR9Lm1sLW1kLTQsLm14LW1kLTR7bWFyZ2luLWxlZnQ6MS41cmVtIWltcG9ydGFudH0ubS1tZC01e21hcmdpbjozcmVtIWltcG9ydGFudH0ubXQtbWQtNSwubXktbWQtNXttYXJnaW4tdG9wOjNyZW0haW1wb3J0YW50fS5tci1tZC01LC5teC1tZC01e21hcmdpbi1yaWdodDozcmVtIWltcG9ydGFudH0ubWItbWQtNSwubXktbWQtNXttYXJnaW4tYm90dG9tOjNyZW0haW1wb3J0YW50fS5tbC1tZC01LC5teC1tZC01e21hcmdpbi1sZWZ0OjNyZW0haW1wb3J0YW50fS5wLW1kLTB7cGFkZGluZzowIWltcG9ydGFudH0ucHQtbWQtMCwucHktbWQtMHtwYWRkaW5nLXRvcDowIWltcG9ydGFudH0ucHItbWQtMCwucHgtbWQtMHtwYWRkaW5nLXJpZ2h0OjAhaW1wb3J0YW50fS5wYi1tZC0wLC5weS1tZC0we3BhZGRpbmctYm90dG9tOjAhaW1wb3J0YW50fS5wbC1tZC0wLC5weC1tZC0we3BhZGRpbmctbGVmdDowIWltcG9ydGFudH0ucC1tZC0xe3BhZGRpbmc6LjI1cmVtIWltcG9ydGFudH0ucHQtbWQtMSwucHktbWQtMXtwYWRkaW5nLXRvcDouMjVyZW0haW1wb3J0YW50fS5wci1tZC0xLC5weC1tZC0xe3BhZGRpbmctcmlnaHQ6LjI1cmVtIWltcG9ydGFudH0ucGItbWQtMSwucHktbWQtMXtwYWRkaW5nLWJvdHRvbTouMjVyZW0haW1wb3J0YW50fS5wbC1tZC0xLC5weC1tZC0xe3BhZGRpbmctbGVmdDouMjVyZW0haW1wb3J0YW50fS5wLW1kLTJ7cGFkZGluZzouNXJlbSFpbXBvcnRhbnR9LnB0LW1kLTIsLnB5LW1kLTJ7cGFkZGluZy10b3A6LjVyZW0haW1wb3J0YW50fS5wci1tZC0yLC5weC1tZC0ye3BhZGRpbmctcmlnaHQ6LjVyZW0haW1wb3J0YW50fS5wYi1tZC0yLC5weS1tZC0ye3BhZGRpbmctYm90dG9tOi41cmVtIWltcG9ydGFudH0ucGwtbWQtMiwucHgtbWQtMntwYWRkaW5nLWxlZnQ6LjVyZW0haW1wb3J0YW50fS5wLW1kLTN7cGFkZGluZzoxcmVtIWltcG9ydGFudH0ucHQtbWQtMywucHktbWQtM3twYWRkaW5nLXRvcDoxcmVtIWltcG9ydGFudH0ucHItbWQtMywucHgtbWQtM3twYWRkaW5nLXJpZ2h0OjFyZW0haW1wb3J0YW50fS5wYi1tZC0zLC5weS1tZC0ze3BhZGRpbmctYm90dG9tOjFyZW0haW1wb3J0YW50fS5wbC1tZC0zLC5weC1tZC0ze3BhZGRpbmctbGVmdDoxcmVtIWltcG9ydGFudH0ucC1tZC00e3BhZGRpbmc6MS41cmVtIWltcG9ydGFudH0ucHQtbWQtNCwucHktbWQtNHtwYWRkaW5nLXRvcDoxLjVyZW0haW1wb3J0YW50fS5wci1tZC00LC5weC1tZC00e3BhZGRpbmctcmlnaHQ6MS41cmVtIWltcG9ydGFudH0ucGItbWQtNCwucHktbWQtNHtwYWRkaW5nLWJvdHRvbToxLjVyZW0haW1wb3J0YW50fS5wbC1tZC00LC5weC1tZC00e3BhZGRpbmctbGVmdDoxLjVyZW0haW1wb3J0YW50fS5wLW1kLTV7cGFkZGluZzozcmVtIWltcG9ydGFudH0ucHQtbWQtNSwucHktbWQtNXtwYWRkaW5nLXRvcDozcmVtIWltcG9ydGFudH0ucHItbWQtNSwucHgtbWQtNXtwYWRkaW5nLXJpZ2h0OjNyZW0haW1wb3J0YW50fS5wYi1tZC01LC5weS1tZC01e3BhZGRpbmctYm90dG9tOjNyZW0haW1wb3J0YW50fS5wbC1tZC01LC5weC1tZC01e3BhZGRpbmctbGVmdDozcmVtIWltcG9ydGFudH0ubS1tZC1hdXRve21hcmdpbjphdXRvIWltcG9ydGFudH0ubXQtbWQtYXV0bywubXktbWQtYXV0b3ttYXJnaW4tdG9wOmF1dG8haW1wb3J0YW50fS5tci1tZC1hdXRvLC5teC1tZC1hdXRve21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH0ubWItbWQtYXV0bywubXktbWQtYXV0b3ttYXJnaW4tYm90dG9tOmF1dG8haW1wb3J0YW50fS5tbC1tZC1hdXRvLC5teC1tZC1hdXRve21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7Lm0tbGctMHttYXJnaW46MCFpbXBvcnRhbnR9Lm10LWxnLTAsLm15LWxnLTB7bWFyZ2luLXRvcDowIWltcG9ydGFudH0ubXItbGctMCwubXgtbGctMHttYXJnaW4tcmlnaHQ6MCFpbXBvcnRhbnR9Lm1iLWxnLTAsLm15LWxnLTB7bWFyZ2luLWJvdHRvbTowIWltcG9ydGFudH0ubWwtbGctMCwubXgtbGctMHttYXJnaW4tbGVmdDowIWltcG9ydGFudH0ubS1sZy0xe21hcmdpbjouMjVyZW0haW1wb3J0YW50fS5tdC1sZy0xLC5teS1sZy0xe21hcmdpbi10b3A6LjI1cmVtIWltcG9ydGFudH0ubXItbGctMSwubXgtbGctMXttYXJnaW4tcmlnaHQ6LjI1cmVtIWltcG9ydGFudH0ubWItbGctMSwubXktbGctMXttYXJnaW4tYm90dG9tOi4yNXJlbSFpbXBvcnRhbnR9Lm1sLWxnLTEsLm14LWxnLTF7bWFyZ2luLWxlZnQ6LjI1cmVtIWltcG9ydGFudH0ubS1sZy0ye21hcmdpbjouNXJlbSFpbXBvcnRhbnR9Lm10LWxnLTIsLm15LWxnLTJ7bWFyZ2luLXRvcDouNXJlbSFpbXBvcnRhbnR9Lm1yLWxnLTIsLm14LWxnLTJ7bWFyZ2luLXJpZ2h0Oi41cmVtIWltcG9ydGFudH0ubWItbGctMiwubXktbGctMnttYXJnaW4tYm90dG9tOi41cmVtIWltcG9ydGFudH0ubWwtbGctMiwubXgtbGctMnttYXJnaW4tbGVmdDouNXJlbSFpbXBvcnRhbnR9Lm0tbGctM3ttYXJnaW46MXJlbSFpbXBvcnRhbnR9Lm10LWxnLTMsLm15LWxnLTN7bWFyZ2luLXRvcDoxcmVtIWltcG9ydGFudH0ubXItbGctMywubXgtbGctM3ttYXJnaW4tcmlnaHQ6MXJlbSFpbXBvcnRhbnR9Lm1iLWxnLTMsLm15LWxnLTN7bWFyZ2luLWJvdHRvbToxcmVtIWltcG9ydGFudH0ubWwtbGctMywubXgtbGctM3ttYXJnaW4tbGVmdDoxcmVtIWltcG9ydGFudH0ubS1sZy00e21hcmdpbjoxLjVyZW0haW1wb3J0YW50fS5tdC1sZy00LC5teS1sZy00e21hcmdpbi10b3A6MS41cmVtIWltcG9ydGFudH0ubXItbGctNCwubXgtbGctNHttYXJnaW4tcmlnaHQ6MS41cmVtIWltcG9ydGFudH0ubWItbGctNCwubXktbGctNHttYXJnaW4tYm90dG9tOjEuNXJlbSFpbXBvcnRhbnR9Lm1sLWxnLTQsLm14LWxnLTR7bWFyZ2luLWxlZnQ6MS41cmVtIWltcG9ydGFudH0ubS1sZy01e21hcmdpbjozcmVtIWltcG9ydGFudH0ubXQtbGctNSwubXktbGctNXttYXJnaW4tdG9wOjNyZW0haW1wb3J0YW50fS5tci1sZy01LC5teC1sZy01e21hcmdpbi1yaWdodDozcmVtIWltcG9ydGFudH0ubWItbGctNSwubXktbGctNXttYXJnaW4tYm90dG9tOjNyZW0haW1wb3J0YW50fS5tbC1sZy01LC5teC1sZy01e21hcmdpbi1sZWZ0OjNyZW0haW1wb3J0YW50fS5wLWxnLTB7cGFkZGluZzowIWltcG9ydGFudH0ucHQtbGctMCwucHktbGctMHtwYWRkaW5nLXRvcDowIWltcG9ydGFudH0ucHItbGctMCwucHgtbGctMHtwYWRkaW5nLXJpZ2h0OjAhaW1wb3J0YW50fS5wYi1sZy0wLC5weS1sZy0we3BhZGRpbmctYm90dG9tOjAhaW1wb3J0YW50fS5wbC1sZy0wLC5weC1sZy0we3BhZGRpbmctbGVmdDowIWltcG9ydGFudH0ucC1sZy0xe3BhZGRpbmc6LjI1cmVtIWltcG9ydGFudH0ucHQtbGctMSwucHktbGctMXtwYWRkaW5nLXRvcDouMjVyZW0haW1wb3J0YW50fS5wci1sZy0xLC5weC1sZy0xe3BhZGRpbmctcmlnaHQ6LjI1cmVtIWltcG9ydGFudH0ucGItbGctMSwucHktbGctMXtwYWRkaW5nLWJvdHRvbTouMjVyZW0haW1wb3J0YW50fS5wbC1sZy0xLC5weC1sZy0xe3BhZGRpbmctbGVmdDouMjVyZW0haW1wb3J0YW50fS5wLWxnLTJ7cGFkZGluZzouNXJlbSFpbXBvcnRhbnR9LnB0LWxnLTIsLnB5LWxnLTJ7cGFkZGluZy10b3A6LjVyZW0haW1wb3J0YW50fS5wci1sZy0yLC5weC1sZy0ye3BhZGRpbmctcmlnaHQ6LjVyZW0haW1wb3J0YW50fS5wYi1sZy0yLC5weS1sZy0ye3BhZGRpbmctYm90dG9tOi41cmVtIWltcG9ydGFudH0ucGwtbGctMiwucHgtbGctMntwYWRkaW5nLWxlZnQ6LjVyZW0haW1wb3J0YW50fS5wLWxnLTN7cGFkZGluZzoxcmVtIWltcG9ydGFudH0ucHQtbGctMywucHktbGctM3twYWRkaW5nLXRvcDoxcmVtIWltcG9ydGFudH0ucHItbGctMywucHgtbGctM3twYWRkaW5nLXJpZ2h0OjFyZW0haW1wb3J0YW50fS5wYi1sZy0zLC5weS1sZy0ze3BhZGRpbmctYm90dG9tOjFyZW0haW1wb3J0YW50fS5wbC1sZy0zLC5weC1sZy0ze3BhZGRpbmctbGVmdDoxcmVtIWltcG9ydGFudH0ucC1sZy00e3BhZGRpbmc6MS41cmVtIWltcG9ydGFudH0ucHQtbGctNCwucHktbGctNHtwYWRkaW5nLXRvcDoxLjVyZW0haW1wb3J0YW50fS5wci1sZy00LC5weC1sZy00e3BhZGRpbmctcmlnaHQ6MS41cmVtIWltcG9ydGFudH0ucGItbGctNCwucHktbGctNHtwYWRkaW5nLWJvdHRvbToxLjVyZW0haW1wb3J0YW50fS5wbC1sZy00LC5weC1sZy00e3BhZGRpbmctbGVmdDoxLjVyZW0haW1wb3J0YW50fS5wLWxnLTV7cGFkZGluZzozcmVtIWltcG9ydGFudH0ucHQtbGctNSwucHktbGctNXtwYWRkaW5nLXRvcDozcmVtIWltcG9ydGFudH0ucHItbGctNSwucHgtbGctNXtwYWRkaW5nLXJpZ2h0OjNyZW0haW1wb3J0YW50fS5wYi1sZy01LC5weS1sZy01e3BhZGRpbmctYm90dG9tOjNyZW0haW1wb3J0YW50fS5wbC1sZy01LC5weC1sZy01e3BhZGRpbmctbGVmdDozcmVtIWltcG9ydGFudH0ubS1sZy1hdXRve21hcmdpbjphdXRvIWltcG9ydGFudH0ubXQtbGctYXV0bywubXktbGctYXV0b3ttYXJnaW4tdG9wOmF1dG8haW1wb3J0YW50fS5tci1sZy1hdXRvLC5teC1sZy1hdXRve21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH0ubWItbGctYXV0bywubXktbGctYXV0b3ttYXJnaW4tYm90dG9tOmF1dG8haW1wb3J0YW50fS5tbC1sZy1hdXRvLC5teC1sZy1hdXRve21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5tLXhsLTB7bWFyZ2luOjAhaW1wb3J0YW50fS5tdC14bC0wLC5teS14bC0we21hcmdpbi10b3A6MCFpbXBvcnRhbnR9Lm1yLXhsLTAsLm14LXhsLTB7bWFyZ2luLXJpZ2h0OjAhaW1wb3J0YW50fS5tYi14bC0wLC5teS14bC0we21hcmdpbi1ib3R0b206MCFpbXBvcnRhbnR9Lm1sLXhsLTAsLm14LXhsLTB7bWFyZ2luLWxlZnQ6MCFpbXBvcnRhbnR9Lm0teGwtMXttYXJnaW46LjI1cmVtIWltcG9ydGFudH0ubXQteGwtMSwubXkteGwtMXttYXJnaW4tdG9wOi4yNXJlbSFpbXBvcnRhbnR9Lm1yLXhsLTEsLm14LXhsLTF7bWFyZ2luLXJpZ2h0Oi4yNXJlbSFpbXBvcnRhbnR9Lm1iLXhsLTEsLm15LXhsLTF7bWFyZ2luLWJvdHRvbTouMjVyZW0haW1wb3J0YW50fS5tbC14bC0xLC5teC14bC0xe21hcmdpbi1sZWZ0Oi4yNXJlbSFpbXBvcnRhbnR9Lm0teGwtMnttYXJnaW46LjVyZW0haW1wb3J0YW50fS5tdC14bC0yLC5teS14bC0ye21hcmdpbi10b3A6LjVyZW0haW1wb3J0YW50fS5tci14bC0yLC5teC14bC0ye21hcmdpbi1yaWdodDouNXJlbSFpbXBvcnRhbnR9Lm1iLXhsLTIsLm15LXhsLTJ7bWFyZ2luLWJvdHRvbTouNXJlbSFpbXBvcnRhbnR9Lm1sLXhsLTIsLm14LXhsLTJ7bWFyZ2luLWxlZnQ6LjVyZW0haW1wb3J0YW50fS5tLXhsLTN7bWFyZ2luOjFyZW0haW1wb3J0YW50fS5tdC14bC0zLC5teS14bC0ze21hcmdpbi10b3A6MXJlbSFpbXBvcnRhbnR9Lm1yLXhsLTMsLm14LXhsLTN7bWFyZ2luLXJpZ2h0OjFyZW0haW1wb3J0YW50fS5tYi14bC0zLC5teS14bC0ze21hcmdpbi1ib3R0b206MXJlbSFpbXBvcnRhbnR9Lm1sLXhsLTMsLm14LXhsLTN7bWFyZ2luLWxlZnQ6MXJlbSFpbXBvcnRhbnR9Lm0teGwtNHttYXJnaW46MS41cmVtIWltcG9ydGFudH0ubXQteGwtNCwubXkteGwtNHttYXJnaW4tdG9wOjEuNXJlbSFpbXBvcnRhbnR9Lm1yLXhsLTQsLm14LXhsLTR7bWFyZ2luLXJpZ2h0OjEuNXJlbSFpbXBvcnRhbnR9Lm1iLXhsLTQsLm15LXhsLTR7bWFyZ2luLWJvdHRvbToxLjVyZW0haW1wb3J0YW50fS5tbC14bC00LC5teC14bC00e21hcmdpbi1sZWZ0OjEuNXJlbSFpbXBvcnRhbnR9Lm0teGwtNXttYXJnaW46M3JlbSFpbXBvcnRhbnR9Lm10LXhsLTUsLm15LXhsLTV7bWFyZ2luLXRvcDozcmVtIWltcG9ydGFudH0ubXIteGwtNSwubXgteGwtNXttYXJnaW4tcmlnaHQ6M3JlbSFpbXBvcnRhbnR9Lm1iLXhsLTUsLm15LXhsLTV7bWFyZ2luLWJvdHRvbTozcmVtIWltcG9ydGFudH0ubWwteGwtNSwubXgteGwtNXttYXJnaW4tbGVmdDozcmVtIWltcG9ydGFudH0ucC14bC0we3BhZGRpbmc6MCFpbXBvcnRhbnR9LnB0LXhsLTAsLnB5LXhsLTB7cGFkZGluZy10b3A6MCFpbXBvcnRhbnR9LnByLXhsLTAsLnB4LXhsLTB7cGFkZGluZy1yaWdodDowIWltcG9ydGFudH0ucGIteGwtMCwucHkteGwtMHtwYWRkaW5nLWJvdHRvbTowIWltcG9ydGFudH0ucGwteGwtMCwucHgteGwtMHtwYWRkaW5nLWxlZnQ6MCFpbXBvcnRhbnR9LnAteGwtMXtwYWRkaW5nOi4yNXJlbSFpbXBvcnRhbnR9LnB0LXhsLTEsLnB5LXhsLTF7cGFkZGluZy10b3A6LjI1cmVtIWltcG9ydGFudH0ucHIteGwtMSwucHgteGwtMXtwYWRkaW5nLXJpZ2h0Oi4yNXJlbSFpbXBvcnRhbnR9LnBiLXhsLTEsLnB5LXhsLTF7cGFkZGluZy1ib3R0b206LjI1cmVtIWltcG9ydGFudH0ucGwteGwtMSwucHgteGwtMXtwYWRkaW5nLWxlZnQ6LjI1cmVtIWltcG9ydGFudH0ucC14bC0ye3BhZGRpbmc6LjVyZW0haW1wb3J0YW50fS5wdC14bC0yLC5weS14bC0ye3BhZGRpbmctdG9wOi41cmVtIWltcG9ydGFudH0ucHIteGwtMiwucHgteGwtMntwYWRkaW5nLXJpZ2h0Oi41cmVtIWltcG9ydGFudH0ucGIteGwtMiwucHkteGwtMntwYWRkaW5nLWJvdHRvbTouNXJlbSFpbXBvcnRhbnR9LnBsLXhsLTIsLnB4LXhsLTJ7cGFkZGluZy1sZWZ0Oi41cmVtIWltcG9ydGFudH0ucC14bC0ze3BhZGRpbmc6MXJlbSFpbXBvcnRhbnR9LnB0LXhsLTMsLnB5LXhsLTN7cGFkZGluZy10b3A6MXJlbSFpbXBvcnRhbnR9LnByLXhsLTMsLnB4LXhsLTN7cGFkZGluZy1yaWdodDoxcmVtIWltcG9ydGFudH0ucGIteGwtMywucHkteGwtM3twYWRkaW5nLWJvdHRvbToxcmVtIWltcG9ydGFudH0ucGwteGwtMywucHgteGwtM3twYWRkaW5nLWxlZnQ6MXJlbSFpbXBvcnRhbnR9LnAteGwtNHtwYWRkaW5nOjEuNXJlbSFpbXBvcnRhbnR9LnB0LXhsLTQsLnB5LXhsLTR7cGFkZGluZy10b3A6MS41cmVtIWltcG9ydGFudH0ucHIteGwtNCwucHgteGwtNHtwYWRkaW5nLXJpZ2h0OjEuNXJlbSFpbXBvcnRhbnR9LnBiLXhsLTQsLnB5LXhsLTR7cGFkZGluZy1ib3R0b206MS41cmVtIWltcG9ydGFudH0ucGwteGwtNCwucHgteGwtNHtwYWRkaW5nLWxlZnQ6MS41cmVtIWltcG9ydGFudH0ucC14bC01e3BhZGRpbmc6M3JlbSFpbXBvcnRhbnR9LnB0LXhsLTUsLnB5LXhsLTV7cGFkZGluZy10b3A6M3JlbSFpbXBvcnRhbnR9LnByLXhsLTUsLnB4LXhsLTV7cGFkZGluZy1yaWdodDozcmVtIWltcG9ydGFudH0ucGIteGwtNSwucHkteGwtNXtwYWRkaW5nLWJvdHRvbTozcmVtIWltcG9ydGFudH0ucGwteGwtNSwucHgteGwtNXtwYWRkaW5nLWxlZnQ6M3JlbSFpbXBvcnRhbnR9Lm0teGwtYXV0b3ttYXJnaW46YXV0byFpbXBvcnRhbnR9Lm10LXhsLWF1dG8sLm15LXhsLWF1dG97bWFyZ2luLXRvcDphdXRvIWltcG9ydGFudH0ubXIteGwtYXV0bywubXgteGwtYXV0b3ttYXJnaW4tcmlnaHQ6YXV0byFpbXBvcnRhbnR9Lm1iLXhsLWF1dG8sLm15LXhsLWF1dG97bWFyZ2luLWJvdHRvbTphdXRvIWltcG9ydGFudH0ubWwteGwtYXV0bywubXgteGwtYXV0b3ttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudH19LnRleHQtbW9ub3NwYWNle2ZvbnQtZmFtaWx5OlNGTW9uby1SZWd1bGFyLE1lbmxvLE1vbmFjbyxDb25zb2xhcyxcIkxpYmVyYXRpb24gTW9ub1wiLFwiQ291cmllciBOZXdcIixtb25vc3BhY2V9LnRleHQtanVzdGlmeXt0ZXh0LWFsaWduOmp1c3RpZnkhaW1wb3J0YW50fS50ZXh0LW5vd3JhcHt3aGl0ZS1zcGFjZTpub3dyYXAhaW1wb3J0YW50fS50ZXh0LXRydW5jYXRle292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0udGV4dC1sZWZ0e3RleHQtYWxpZ246bGVmdCFpbXBvcnRhbnR9LnRleHQtcmlnaHR7dGV4dC1hbGlnbjpyaWdodCFpbXBvcnRhbnR9LnRleHQtY2VudGVye3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudH1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7LnRleHQtc20tbGVmdHt0ZXh0LWFsaWduOmxlZnQhaW1wb3J0YW50fS50ZXh0LXNtLXJpZ2h0e3RleHQtYWxpZ246cmlnaHQhaW1wb3J0YW50fS50ZXh0LXNtLWNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsudGV4dC1tZC1sZWZ0e3RleHQtYWxpZ246bGVmdCFpbXBvcnRhbnR9LnRleHQtbWQtcmlnaHR7dGV4dC1hbGlnbjpyaWdodCFpbXBvcnRhbnR9LnRleHQtbWQtY2VudGVye3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpey50ZXh0LWxnLWxlZnR7dGV4dC1hbGlnbjpsZWZ0IWltcG9ydGFudH0udGV4dC1sZy1yaWdodHt0ZXh0LWFsaWduOnJpZ2h0IWltcG9ydGFudH0udGV4dC1sZy1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey50ZXh0LXhsLWxlZnR7dGV4dC1hbGlnbjpsZWZ0IWltcG9ydGFudH0udGV4dC14bC1yaWdodHt0ZXh0LWFsaWduOnJpZ2h0IWltcG9ydGFudH0udGV4dC14bC1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50fX0udGV4dC1sb3dlcmNhc2V7dGV4dC10cmFuc2Zvcm06bG93ZXJjYXNlIWltcG9ydGFudH0udGV4dC11cHBlcmNhc2V7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlIWltcG9ydGFudH0udGV4dC1jYXBpdGFsaXple3RleHQtdHJhbnNmb3JtOmNhcGl0YWxpemUhaW1wb3J0YW50fS5mb250LXdlaWdodC1saWdodHtmb250LXdlaWdodDozMDAhaW1wb3J0YW50fS5mb250LXdlaWdodC1ub3JtYWx7Zm9udC13ZWlnaHQ6NDAwIWltcG9ydGFudH0uZm9udC13ZWlnaHQtYm9sZHtmb250LXdlaWdodDo3MDAhaW1wb3J0YW50fS5mb250LWl0YWxpY3tmb250LXN0eWxlOml0YWxpYyFpbXBvcnRhbnR9LnRleHQtd2hpdGV7Y29sb3I6I2ZmZiFpbXBvcnRhbnR9LnRleHQtcHJpbWFyeXtjb2xvcjojMDA3YmZmIWltcG9ydGFudH1hLnRleHQtcHJpbWFyeTpmb2N1cyxhLnRleHQtcHJpbWFyeTpob3Zlcntjb2xvcjojMDA2MmNjIWltcG9ydGFudH0udGV4dC1zZWNvbmRhcnl7Y29sb3I6IzZjNzU3ZCFpbXBvcnRhbnR9YS50ZXh0LXNlY29uZGFyeTpmb2N1cyxhLnRleHQtc2Vjb25kYXJ5OmhvdmVye2NvbG9yOiM1NDViNjIhaW1wb3J0YW50fS50ZXh0LXN1Y2Nlc3N7Y29sb3I6IzI4YTc0NSFpbXBvcnRhbnR9YS50ZXh0LXN1Y2Nlc3M6Zm9jdXMsYS50ZXh0LXN1Y2Nlc3M6aG92ZXJ7Y29sb3I6IzFlN2UzNCFpbXBvcnRhbnR9LnRleHQtaW5mb3tjb2xvcjojMTdhMmI4IWltcG9ydGFudH1hLnRleHQtaW5mbzpmb2N1cyxhLnRleHQtaW5mbzpob3Zlcntjb2xvcjojMTE3YThiIWltcG9ydGFudH0udGV4dC13YXJuaW5ne2NvbG9yOiNmZmMxMDchaW1wb3J0YW50fWEudGV4dC13YXJuaW5nOmZvY3VzLGEudGV4dC13YXJuaW5nOmhvdmVye2NvbG9yOiNkMzllMDAhaW1wb3J0YW50fS50ZXh0LWRhbmdlcntjb2xvcjojZGMzNTQ1IWltcG9ydGFudH1hLnRleHQtZGFuZ2VyOmZvY3VzLGEudGV4dC1kYW5nZXI6aG92ZXJ7Y29sb3I6I2JkMjEzMCFpbXBvcnRhbnR9LnRleHQtbGlnaHR7Y29sb3I6I2Y4ZjlmYSFpbXBvcnRhbnR9YS50ZXh0LWxpZ2h0OmZvY3VzLGEudGV4dC1saWdodDpob3Zlcntjb2xvcjojZGFlMGU1IWltcG9ydGFudH0udGV4dC1kYXJre2NvbG9yOiMzNDNhNDAhaW1wb3J0YW50fWEudGV4dC1kYXJrOmZvY3VzLGEudGV4dC1kYXJrOmhvdmVye2NvbG9yOiMxZDIxMjQhaW1wb3J0YW50fS50ZXh0LWJvZHl7Y29sb3I6IzIxMjUyOSFpbXBvcnRhbnR9LnRleHQtbXV0ZWR7Y29sb3I6IzZjNzU3ZCFpbXBvcnRhbnR9LnRleHQtYmxhY2stNTB7Y29sb3I6cmdiYSgwLDAsMCwuNSkhaW1wb3J0YW50fS50ZXh0LXdoaXRlLTUwe2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpIWltcG9ydGFudH0udGV4dC1oaWRle2ZvbnQ6MC8wIGE7Y29sb3I6dHJhbnNwYXJlbnQ7dGV4dC1zaGFkb3c6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjowfS52aXNpYmxle3Zpc2liaWxpdHk6dmlzaWJsZSFpbXBvcnRhbnR9LmludmlzaWJsZXt2aXNpYmlsaXR5OmhpZGRlbiFpbXBvcnRhbnR9QG1lZGlhIHByaW50eyosOjphZnRlciw6OmJlZm9yZXt0ZXh0LXNoYWRvdzpub25lIWltcG9ydGFudDtib3gtc2hhZG93Om5vbmUhaW1wb3J0YW50fWE6bm90KC5idG4pe3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9YWJiclt0aXRsZV06OmFmdGVye2NvbnRlbnQ6XCIgKFwiIGF0dHIodGl0bGUpIFwiKVwifXByZXt3aGl0ZS1zcGFjZTpwcmUtd3JhcCFpbXBvcnRhbnR9YmxvY2txdW90ZSxwcmV7Ym9yZGVyOjFweCBzb2xpZCAjYWRiNWJkO3BhZ2UtYnJlYWstaW5zaWRlOmF2b2lkfXRoZWFke2Rpc3BsYXk6dGFibGUtaGVhZGVyLWdyb3VwfWltZyx0cntwYWdlLWJyZWFrLWluc2lkZTphdm9pZH1oMixoMyxwe29ycGhhbnM6Mzt3aWRvd3M6M31oMixoM3twYWdlLWJyZWFrLWFmdGVyOmF2b2lkfUBwYWdle3NpemU6YTN9Ym9keXttaW4td2lkdGg6OTkycHghaW1wb3J0YW50fS5jb250YWluZXJ7bWluLXdpZHRoOjk5MnB4IWltcG9ydGFudH0ubmF2YmFye2Rpc3BsYXk6bm9uZX0uYmFkZ2V7Ym9yZGVyOjFweCBzb2xpZCAjMDAwfS50YWJsZXtib3JkZXItY29sbGFwc2U6Y29sbGFwc2UhaW1wb3J0YW50fS50YWJsZSB0ZCwudGFibGUgdGh7YmFja2dyb3VuZC1jb2xvcjojZmZmIWltcG9ydGFudH0udGFibGUtYm9yZGVyZWQgdGQsLnRhYmxlLWJvcmRlcmVkIHRoe2JvcmRlcjoxcHggc29saWQgI2RlZTJlNiFpbXBvcnRhbnR9LnRhYmxlLWRhcmt7Y29sb3I6aW5oZXJpdH0udGFibGUtZGFyayB0Ym9keSt0Ym9keSwudGFibGUtZGFyayB0ZCwudGFibGUtZGFyayB0aCwudGFibGUtZGFyayB0aGVhZCB0aHtib3JkZXItY29sb3I6I2RlZTJlNn0udGFibGUgLnRoZWFkLWRhcmsgdGh7Y29sb3I6aW5oZXJpdDtib3JkZXItY29sb3I6I2RlZTJlNn19XG4vKiMgc291cmNlTWFwcGluZ1VSTD1ib290c3RyYXAubWluLmNzcy5tYXAgKi8iXX0= */", '', '']] - -/***/ }), - -/***/ "./node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/ngx-bootstrap/datepicker/bs-datepicker.css": -/*!**********************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!./node_modules/postcss-loader/src??embedded!./node_modules/ngx-bootstrap/datepicker/bs-datepicker.css ***! - \**********************************************************************************************************************************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = [[module.i, "/* .bs-datepicker */\n.bs-datepicker {\n display: -webkit-box;\n display: flex;\n -webkit-box-align: stretch;\n align-items: stretch;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n flex-flow: row wrap;\n background: #fff;\n box-shadow: 0 0 10px 0 #aaa;\n position: relative;\n z-index: 1;\n /* button */\n /* .bs-datepicker-head */\n /* .bs-datepicker-body */\n /* .current-timedate */\n /* .bs-datepicker-multiple */\n /* .bs-datepicker-btns */\n /*.bs-datepicker-custom-range */\n /* .bs-datepicker-predefined-btns */\n /* .bs-datepicker-buttons */ }\n.bs-datepicker:after {\n clear: both;\n content: '';\n display: block; }\n.bs-datepicker bs-day-picker {\n float: left; }\n.bs-datepicker button:hover,\n .bs-datepicker button:focus,\n .bs-datepicker button:active,\n .bs-datepicker input:hover,\n .bs-datepicker input:focus,\n .bs-datepicker input:active,\n .bs-datepicker-btns button:hover,\n .bs-datepicker-btns button:focus,\n .bs-datepicker-btns button:active,\n .bs-datepicker-predefined-btns button:active,\n .bs-datepicker-predefined-btns button:focus {\n outline: none; }\n.bs-datepicker-head {\n min-width: 270px;\n height: 50px;\n padding: 10px;\n border-radius: 3px 3px 0 0;\n text-align: justify;\n /* .bs-datepicker-head button */ }\n.bs-datepicker-head:after {\n content: \"\";\n display: inline-block;\n vertical-align: top;\n width: 100%; }\n.bs-datepicker-head button {\n display: inline-block;\n vertical-align: top;\n padding: 0;\n height: 30px;\n line-height: 30px;\n border: 0;\n background: transparent;\n text-align: center;\n cursor: pointer;\n color: #fff;\n -webkit-transition: 0.3s;\n transition: 0.3s; }\n.bs-datepicker-head button[disabled], .bs-datepicker-head button[disabled]:hover, .bs-datepicker-head button[disabled]:active {\n background: rgba(221, 221, 221, 0.3);\n color: #f5f5f5;\n cursor: not-allowed; }\n.bs-datepicker-head button.next, .bs-datepicker-head button.previous {\n border-radius: 50%;\n width: 30px;\n height: 30px; }\n.bs-datepicker-head button.next span, .bs-datepicker-head button.previous span {\n font-size: 28px;\n line-height: 1;\n display: inline-block;\n position: relative;\n height: 100%;\n width: 100%;\n border-radius: 50%; }\n.bs-datepicker-head button.current {\n border-radius: 15px;\n max-width: 155px;\n padding: 0 13px; }\n.bs-datepicker-head button:hover {\n background-color: rgba(0, 0, 0, 0.1); }\n.bs-datepicker-head button:active {\n background-color: rgba(0, 0, 0, 0.2); }\n.bs-datepicker-body {\n padding: 10px;\n border-radius: 0 0 3px 3px;\n min-height: 232px;\n min-width: 278px;\n border: 1px solid #e9edf0;\n /* .bs-datepicker-body table */ }\n.bs-datepicker-body .days.weeks {\n position: relative;\n z-index: 1; }\n.bs-datepicker-body table {\n width: 100%;\n border-collapse: separate;\n border-spacing: 0;\n /* .bs-datepicker-body table.days */\n /* .bs-datepicker-body table.weeks */ }\n.bs-datepicker-body table th {\n font-size: 13px;\n color: #9aaec1;\n font-weight: 400;\n text-align: center; }\n.bs-datepicker-body table td {\n color: #54708b;\n text-align: center;\n position: relative;\n padding: 0; }\n.bs-datepicker-body table td span {\n display: block;\n margin: 0 auto;\n font-size: 13px;\n border-radius: 50%;\n position: relative;\n /*z-index: 1;*/\n -moz-user-select: none;\n -webkit-user-select: none;\n -ms-user-select: none; }\n.bs-datepicker-body table td:not(.disabled):not(.week) span:not(.disabled):not(.is-other-month) {\n cursor: pointer; }\n.bs-datepicker-body table td.is-highlighted:not(.disabled):not(.selected) span,\n .bs-datepicker-body table td span.is-highlighted:not(.disabled):not(.selected) {\n background-color: #e9edf0;\n -webkit-transition: 0s;\n transition: 0s; }\n.bs-datepicker-body table td.is-active-other-month:not(.disabled):not(.selected) span,\n .bs-datepicker-body table td span.is-active-other-month:not(.disabled):not(.selected) {\n background-color: #e9edf0;\n -webkit-transition: 0s;\n transition: 0s;\n cursor: pointer; }\n.bs-datepicker-body table td span.disabled,\n .bs-datepicker-body table td.disabled span {\n color: #9aaec1; }\n.bs-datepicker-body table td span.selected,\n .bs-datepicker-body table td.selected span {\n color: #fff; }\n.bs-datepicker-body table td span.is-other-month,\n .bs-datepicker-body table td.is-other-month span {\n color: rgba(0, 0, 0, 0.25); }\n.bs-datepicker-body table td.active {\n position: relative; }\n.bs-datepicker-body table td.active.select-start:before {\n left: 35%; }\n.bs-datepicker-body table td.active.select-end:before {\n left: -85%; }\n.bs-datepicker-body table td span.active.select-start:after,\n .bs-datepicker-body table td span.active.select-end:after,\n .bs-datepicker-body table td.active.select-start span:after,\n .bs-datepicker-body table td.active.select-end span:after {\n content: \"\";\n display: block;\n position: absolute;\n z-index: -1;\n width: 100%;\n height: 100%;\n -webkit-transition: 0.3s;\n transition: 0.3s;\n top: 0;\n border-radius: 50%; }\n.bs-datepicker-body table td:before,\n .bs-datepicker-body table td span:before {\n content: \"\";\n display: block;\n position: absolute;\n z-index: -1;\n top: 6px;\n bottom: 6px;\n left: -2px;\n right: -2px;\n box-sizing: content-box;\n background: transparent; }\n.bs-datepicker-body table td.active.select-start + td.active:before {\n left: -20%; }\n.bs-datepicker-body table td:last-child.active:before {\n border-radius: 0 3px 3px 0;\n width: 125%;\n left: -25%; }\n.bs-datepicker-body table td span[class*=\"select-\"],\n .bs-datepicker-body table td[class*=\"select-\"] span {\n border-radius: 50%;\n color: #fff; }\n.bs-datepicker-body table.days td.active:not(.select-start):before, .bs-datepicker-body table.days td.in-range:not(.select-start):before,\n .bs-datepicker-body table.days span.active:not(.select-start):before,\n .bs-datepicker-body table.days span.in-range:not(.select-start):before {\n background: #e9edf0; }\n.bs-datepicker-body table.days span {\n width: 32px;\n height: 32px;\n line-height: 32px; }\n.bs-datepicker-body table.days span.select-start {\n z-index: 2; }\n.bs-datepicker-body table.days span.is-highlighted.in-range:before, .bs-datepicker-body table.days span.in-range.select-end:before {\n background: none;\n right: 0;\n left: 0; }\n.bs-datepicker-body table.days td.select-start + td.select-end:before,\n .bs-datepicker-body table.days td.select-start + td.is-highlighted:before,\n .bs-datepicker-body table.days td.active + td.is-highlighted:before,\n .bs-datepicker-body table.days td.active + td.select-end:before,\n .bs-datepicker-body table.days td.in-range + td.is-highlighted:before,\n .bs-datepicker-body table.days td.in-range + td.select-end:before {\n background: #e9edf0;\n width: 100%; }\n.bs-datepicker-body table.weeks tr td:nth-child(2).active:before {\n border-radius: 3px 0 0 3px;\n left: 0;\n width: 100%; }\n.bs-datepicker-body table:not(.weeks) tr td:first-child:before {\n border-radius: 3px 0 0 3px; }\n.bs-datepicker-body table.years td span {\n width: 46px;\n height: 46px;\n line-height: 45px;\n margin: 0 auto; }\n.bs-datepicker-body table.years tr:not(:last-child) td span {\n margin-bottom: 8px; }\n.bs-datepicker-body table.months td {\n height: 52px; }\n.bs-datepicker-body table.months td span {\n padding: 6px;\n border-radius: 15px; }\n.bs-datepicker .current-timedate {\n color: #54708b;\n font-size: 15px;\n text-align: center;\n height: 30px;\n line-height: 30px;\n border-radius: 20px;\n border: 1px solid #e9edf0;\n margin-bottom: 10px;\n cursor: pointer;\n text-transform: uppercase;\n -moz-user-select: none;\n -webkit-user-select: none;\n -ms-user-select: none; }\n.bs-datepicker .current-timedate span:not(:empty):before {\n content: \"\";\n width: 15px;\n height: 16px;\n display: inline-block;\n margin-right: 4px;\n vertical-align: text-bottom;\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAABMklEQVQoU9VTwW3CQBCcOUgBtEBKSAukAnBKME+wFCAlYIhk8sQlxFABtJAScAsuAPBEewYcxCP8ouxrPDsza61uiVN1o6RNHD4htSCmq49RfO71BvMJqBBkITRf1kmUW49nQRC9h1I5AZlBClaL8aP1fKgOOxCx8aSLs+Q19eZuNO8QmPqJRtDFguy7OAcDbJPs+/BKVPDIPrvD2ZJgWAmVe7O0rI0Vqs1seyWUXpuJoppYCa5L+U++NpNPkr5OE2oMdARsb3gykJT5ydZcL8Z9Ww60nxg2LhjON9li9OwXZzo+xLbp3nC2s9CL2RrueGyVrgwNm8HpsCzZ9EEW6kqXlo1GQe03FzP/7W8Hl0dBtu7Bf7zt6mIwvX1RvzDCm7+q3mAW0Dl/GPdUCeXrZLT9BrDrGkm4qlPvAAAAAElFTkSuQmCC); }\n.bs-datepicker-multiple {\n border-radius: 4px 0 0 4px; }\n.bs-datepicker-multiple + .bs-datepicker-multiple {\n margin-left: 10px; }\n.bs-datepicker-multiple .bs-datepicker {\n box-shadow: none;\n position: relative; }\n.bs-datepicker-multiple .bs-datepicker:not(:last-child) {\n padding-right: 10px; }\n.bs-datepicker-multiple .bs-datepicker + .bs-datepicker:after {\n content: \"\";\n display: block;\n width: 14px;\n height: 10px;\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAKCAYAAABrGwT5AAAA1ElEQVQoU42RsQrCUAxF77VuDu7O4oMWW//BURBBpZvgKk4uIrjoqKOTf+DopIO4uYggtFTfw3+pkQqCW1/G5J7kJiFy4m5MxUlxAzgIPHX+lzMPzupRYlYgxiR7vqsOP8YKzsTx0yxFMCUZ+q7aZzlr+OvgoWcAFyAHgat2jLWu48252DdqAihDJGSSJNUUxYmQjs3+hPQBlAh2rG2LCOPnaw3IiGDX99TRCs7ASJsNhUOA7d/LcuHvRG22FIZvsNXw1MX6VZExCilOQKEfeLXr/10+aC9Ho7arh7oAAAAASUVORK5CYII=);\n position: absolute;\n top: 25px;\n left: -8px; }\n.bs-datepicker-multiple .bs-datepicker .left {\n float: left; }\n.bs-datepicker-multiple .bs-datepicker .right {\n float: right; }\n.bs-datepicker-container {\n padding: 15px; }\n.bs-datepicker .bs-media-container {\n display: -webkit-box;\n display: flex; }\n@media (max-width: 768px) {\n .bs-datepicker .bs-media-container {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n flex-direction: column; } }\n.bs-datepicker-custom-range {\n padding: 15px;\n background: #eee; }\n.bs-datepicker-predefined-btns button {\n width: 100%;\n display: block;\n height: 30px;\n background-color: #9aaec1;\n border-radius: 4px;\n color: #fff;\n border: 0;\n margin-bottom: 10px;\n padding: 0 18px;\n text-align: left;\n -webkit-transition: 0.3s;\n transition: 0.3s; }\n.bs-datepicker-predefined-btns button:active, .bs-datepicker-predefined-btns button:hover {\n background-color: #54708b; }\n.bs-datepicker-buttons {\n display: -webkit-box;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n flex-flow: row wrap;\n -webkit-box-pack: end;\n justify-content: flex-end;\n padding-top: 10px;\n border-top: 1px solid #e9edf0; }\n.bs-datepicker-buttons .btn-default {\n margin-left: 10px; }\n/* .bs-timepicker */\n.bs-timepicker-container {\n padding: 10px 0; }\n.bs-timepicker-label {\n color: #54708b;\n margin-bottom: 10px; }\n.bs-timepicker-controls {\n display: inline-block;\n vertical-align: top;\n margin-right: 10px; }\n.bs-timepicker-controls button {\n width: 20px;\n height: 20px;\n border-radius: 50%;\n border: 0;\n background-color: #e9edf0;\n color: #54708b;\n font-size: 16px;\n font-weight: 700;\n vertical-align: middle;\n line-height: 0;\n padding: 0;\n -webkit-transition: 0.3s;\n transition: 0.3s; }\n.bs-timepicker-controls button:hover {\n background-color: #d5dadd; }\n.bs-timepicker-controls input {\n width: 35px;\n height: 25px;\n border-radius: 13px;\n text-align: center;\n border: 1px solid #e9edf0; }\n.bs-timepicker .switch-time-format {\n text-transform: uppercase;\n min-width: 54px;\n height: 25px;\n border-radius: 20px;\n border: 1px solid #e9edf0;\n background: #fff;\n color: #54708b;\n font-size: 13px; }\n.bs-timepicker .switch-time-format img {\n vertical-align: initial;\n margin-left: 4px; }\nbs-datepicker-container,\nbs-daterangepicker-container {\n z-index: 1080; }\n/* screen size < 1024px */\n@media (max-width: 768px) {\n .bs-datepicker-multiple {\n display: -webkit-box;\n display: flex; }\n .bs-datepicker-multiple + .bs-datepicker-multiple {\n margin-top: 10px;\n margin-left: 0; } }\n/* theming */\n.theme-default .bs-datepicker-head {\n background-color: #777; }\n.theme-default .bs-datepicker-body table td span.selected,\n.theme-default .bs-datepicker-body table td.selected span,\n.theme-default .bs-datepicker-body table td span[class*=\"select-\"]:after,\n.theme-default .bs-datepicker-body table td[class*=\"select-\"] span:after {\n background-color: #777; }\n.theme-default .bs-datepicker-body table td.week span {\n color: #777; }\n.theme-default .bs-datepicker-body table td.active-week span:hover {\n cursor: pointer;\n background-color: #777;\n color: #fff;\n opacity: 0.5;\n -webkit-transition: 0s;\n transition: 0s; }\n.theme-green .bs-datepicker-head {\n background-color: #5cb85c; }\n.theme-green .bs-datepicker-body table td span.selected,\n.theme-green .bs-datepicker-body table td.selected span,\n.theme-green .bs-datepicker-body table td span[class*=\"select-\"]:after,\n.theme-green .bs-datepicker-body table td[class*=\"select-\"] span:after {\n background-color: #5cb85c; }\n.theme-green .bs-datepicker-body table td.week span {\n color: #5cb85c; }\n.theme-green .bs-datepicker-body table td.active-week span:hover {\n cursor: pointer;\n background-color: #5cb85c;\n color: #fff;\n opacity: 0.5;\n -webkit-transition: 0s;\n transition: 0s; }\n.theme-blue .bs-datepicker-head {\n background-color: #5bc0de; }\n.theme-blue .bs-datepicker-body table td span.selected,\n.theme-blue .bs-datepicker-body table td.selected span,\n.theme-blue .bs-datepicker-body table td span[class*=\"select-\"]:after,\n.theme-blue .bs-datepicker-body table td[class*=\"select-\"] span:after {\n background-color: #5bc0de; }\n.theme-blue .bs-datepicker-body table td.week span {\n color: #5bc0de; }\n.theme-blue .bs-datepicker-body table td.active-week span:hover {\n cursor: pointer;\n background-color: #5bc0de;\n color: #fff;\n opacity: 0.5;\n -webkit-transition: 0s;\n transition: 0s; }\n.theme-dark-blue .bs-datepicker-head {\n background-color: #337ab7; }\n.theme-dark-blue .bs-datepicker-body table td span.selected,\n.theme-dark-blue .bs-datepicker-body table td.selected span,\n.theme-dark-blue .bs-datepicker-body table td span[class*=\"select-\"]:after,\n.theme-dark-blue .bs-datepicker-body table td[class*=\"select-\"] span:after {\n background-color: #337ab7; }\n.theme-dark-blue .bs-datepicker-body table td.week span {\n color: #337ab7; }\n.theme-dark-blue .bs-datepicker-body table td.active-week span:hover {\n cursor: pointer;\n background-color: #337ab7;\n color: #fff;\n opacity: 0.5;\n -webkit-transition: 0s;\n transition: 0s; }\n.theme-red .bs-datepicker-head {\n background-color: #d9534f; }\n.theme-red .bs-datepicker-body table td span.selected,\n.theme-red .bs-datepicker-body table td.selected span,\n.theme-red .bs-datepicker-body table td span[class*=\"select-\"]:after,\n.theme-red .bs-datepicker-body table td[class*=\"select-\"] span:after {\n background-color: #d9534f; }\n.theme-red .bs-datepicker-body table td.week span {\n color: #d9534f; }\n.theme-red .bs-datepicker-body table td.active-week span:hover {\n cursor: pointer;\n background-color: #d9534f;\n color: #fff;\n opacity: 0.5;\n -webkit-transition: 0s;\n transition: 0s; }\n.theme-orange .bs-datepicker-head {\n background-color: #f0ad4e; }\n.theme-orange .bs-datepicker-body table td span.selected,\n.theme-orange .bs-datepicker-body table td.selected span,\n.theme-orange .bs-datepicker-body table td span[class*=\"select-\"]:after,\n.theme-orange .bs-datepicker-body table td[class*=\"select-\"] span:after {\n background-color: #f0ad4e; }\n.theme-orange .bs-datepicker-body table td.week span {\n color: #f0ad4e; }\n.theme-orange .bs-datepicker-body table td.active-week span:hover {\n cursor: pointer;\n background-color: #f0ad4e;\n color: #fff;\n opacity: 0.5;\n -webkit-transition: 0s;\n transition: 0s; }\n/*# sourceMappingURL=bs-datepicker.css.map */\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9zcmMvZGF0ZXBpY2tlci9icy1kYXRlcGlja2VyLnNjc3MiLCJub2RlX21vZHVsZXMvc3JjL2RhdGVwaWNrZXIvdXRpbHMvc2Nzcy92YXJpYWJsZXMuc2NzcyIsIm5vZGVfbW9kdWxlcy9zcmMvZGF0ZXBpY2tlci91dGlscy9zY3NzL21peGlucy5zY3NzIiwibm9kZV9tb2R1bGVzL25neC1ib290c3RyYXAvZGF0ZXBpY2tlci9icy1kYXRlcGlja2VyLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxtQkFBQTtBQUNBO0VBQ0Usb0JBQWE7RUFBYixhQUFhO0VBQ2IsMEJBQW9CO1VBQXBCLG9CQUFvQjtFQUNwQiw4QkFBbUI7RUFBbkIsNkJBQW1CO1VBQW5CLG1CQUFtQjtFQUNuQixnQkNSb0I7RURTcEIsMkJDTm9CO0VET3BCLGtCQUFrQjtFQUNsQixVQUFVO0VBWVYsV0FBQTtFQWVBLHdCQUFBO0VBeUVBLHdCQUFBO0VBcU9BLHNCQUFBO0VBMkJBLDRCQUFBO0VBcUNBLHdCQUFBO0VBWUEsK0JBQUE7RUFNQSxtQ0FBQTtFQXNCQSwyQkFBQSxFQUE0QjtBQXhiOUI7SUFVSSxXQUFXO0lBQ1gsV0FBVztJQUNYLGNBQWMsRUFBQTtBQVpsQjtJQWdCSSxXQUFXLEVBQUE7QUFoQmY7Ozs7Ozs7Ozs7O0lBK0JJLGFBQWEsRUFBQTtBQUlmO0lBQ0UsZ0JBQWdCO0lBQ2hCLFlBQVk7SUFDWixhQUFhO0lBQ2IsMEJBQTBCO0lBQzFCLG1CQUFtQjtJQVNuQiwrQkFBQSxFQUFnQztBQWRqQztNQVFHLFdBQVc7TUFDWCxxQkFBcUI7TUFDckIsbUJBQW1CO01BQ25CLFdBQVcsRUFBQTtBQVhkO01BZ0JHLHFCQUFxQjtNQUNyQixtQkFBbUI7TUFDbkIsVUFBVTtNQUNWLFlBQVk7TUFDWixpQkFBaUI7TUFDakIsU0FBUztNQUNULHVCQUF1QjtNQUN2QixrQkFBa0I7TUFDbEIsZUFBZTtNQUNmLFdDM0RnQjtNRDREaEIsd0JBQWdCO01BQWhC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Q2hCdkI7RUFnQlUsY0RBYSxFQUFBO0FDaEJ2QjtFQW9CVSxlQUFlO0VBQ2YseUJETGE7RUNNYixXRHBCVTtFQ3FCVixZQUFZO0VBQ1osc0JBQWM7RUFBZCxjQUFjLEVBQUE7QUF4QnhCO0VBRUkseUJEZW1CLEVBQUE7QUNqQnZCOzs7O0VBWVUseUJES2EsRUFBQTtBQ2pCdkI7RUFnQlUsY0RDYSxFQUFBO0FDakJ2QjtFQW9CVSxlQUFlO0VBQ2YseUJESmE7RUNLYixXRHBCVTtFQ3FCVixZQUFZO0VBQ1osc0JBQWM7RUFBZCxjQUFjLEVBQUE7QUF4QnhCO0VBRUkseUJEZ0JtQixFQUFBO0FDbEJ2Qjs7OztFQVlVLHlCRE1hLEVBQUE7QUNsQnZCO0VBZ0JVLGNERWEsRUFBQTtBQ2xCdkI7RUFvQlUsZUFBZTtFQUNmLHlCREhhO0VDSWIsV0RwQlU7RUNxQlYsWUFBWTtFQUNaLHNCQUFjO0VBQWQsY0FBYyxFQUFBO0FBeEJ4QjtFQUVJLHlCRGlCbUIsRUFBQTtBQ25CdkI7Ozs7RUFZVSx5QkRPYSxFQUFBO0FDbkJ2QjtFQWdCVSxjREdhLEVBQUE7QUNuQnZCO0VBb0JVLGVBQWU7RUFDZix5QkRGYTtFQ0diLFdEcEJVO0VDcUJWLFlBQVk7RUFDWixzQkFBYztFQUFkLGNBQWMsRUFBQTtBQXhCeEI7RUFFSSx5QkRrQm1CLEVBQUE7QUNwQnZCOzs7O0VBWVUseUJEUWEsRUFBQTtBQ3BCdkI7RUFnQlUsY0RJYSxFQUFBO0FDcEJ2QjtFQW9CVSxlQUFlO0VBQ2YseUJERGE7RUNFYixXRHBCVTtFQ3FCVixZQUFZO0VBQ1osc0JBQWM7RUFBZCxjQUFjLEVBQUE7QUM2YjFCLDRDQUE0QyIsImZpbGUiOiJub2RlX21vZHVsZXMvbmd4LWJvb3RzdHJhcC9kYXRlcGlja2VyL2JzLWRhdGVwaWNrZXIuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAndXRpbHMvc2Nzcy92YXJpYWJsZXMnO1xuQGltcG9ydCAndXRpbHMvc2Nzcy9taXhpbnMnO1xuXG4vKiAuYnMtZGF0ZXBpY2tlciAqL1xuLmJzLWRhdGVwaWNrZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgYmFja2dyb3VuZDogJG1haW4tYmc7XG4gIGJveC1zaGFkb3c6IDAgMCAxMHB4IDAgJG1haW4tYm94LXNoYWRvdztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuXG4gICY6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgYnMtZGF5LXBpY2tlciB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cblxuICAvKiBidXR0b24gKi9cbiAgYnV0dG9uOmhvdmVyLFxuICBidXR0b246Zm9jdXMsXG4gIGJ1dHRvbjphY3RpdmUsXG4gIGlucHV0OmhvdmVyLFxuICBpbnB1dDpmb2N1cyxcbiAgaW5wdXQ6YWN0aXZlLFxuICAmLWJ0bnMgYnV0dG9uOmhvdmVyLFxuICAmLWJ0bnMgYnV0dG9uOmZvY3VzLFxuICAmLWJ0bnMgYnV0dG9uOmFjdGl2ZSxcbiAgJi1wcmVkZWZpbmVkLWJ0bnMgYnV0dG9uOmFjdGl2ZSxcbiAgJi1wcmVkZWZpbmVkLWJ0bnMgYnV0dG9uOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5cbiAgLyogLmJzLWRhdGVwaWNrZXItaGVhZCAqL1xuICAmLWhlYWQge1xuICAgIG1pbi13aWR0aDogMjcwcHg7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4IDNweCAwIDA7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvKiAuYnMtZGF0ZXBpY2tlci1oZWFkIGJ1dHRvbiAqL1xuICAgIGJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGhlaWdodDogMzBweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBjb2xvcjogJGZvbnQtY29sb3ItMDE7XG4gICAgICB0cmFuc2l0aW9uOiAwLjNzO1xuXG4gICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICZbZGlzYWJsZWRdOmhvdmVyLFxuICAgICAgJltkaXNhYmxlZF06YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGRpc2FibGVkLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkZGlzYWJsZWQtY29sb3I7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICB9XG5cbiAgICAgICYubmV4dCxcbiAgICAgICYucHJldmlvdXMge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICBoZWlnaHQ6IDMwcHg7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmN1cnJlbnQge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xuICAgICAgICBtYXgtd2lkdGg6IDE1NXB4O1xuICAgICAgICBwYWRkaW5nOiAwIDEzcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi1oZWFkIHtcbiAgICBidXR0b24ge1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICAgIH1cbiAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qIC5icy1kYXRlcGlja2VyLWJvZHkgKi9cbiAgJi1ib2R5IHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAzcHggM3B4O1xuICAgIG1pbi1oZWlnaHQ6IDIzMnB4O1xuICAgIG1pbi13aWR0aDogMjc4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcblxuICAgIC5kYXlzLndlZWtzIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuXG4gICAgLyogLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZSAqL1xuICAgIHRhYmxlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbiAgICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuXG4gICAgICB0aCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgY29sb3I6ICRmb250LWNvbG9yLTAyO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIHRkIHtcbiAgICAgICAgY29sb3I6ICRmb250LWNvbG9yLTAzO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAvKnotaW5kZXg6IDE7Ki9cbiAgICAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG9kbzogY2hlY2sgZmlyc3QgOm5vdCguZGlzYWJsZWQpIHVzYWdlXG4gICAgICAgICY6bm90KC5kaXNhYmxlZCk6bm90KC53ZWVrKSBzcGFuOm5vdCguZGlzYWJsZWQpOm5vdCguaXMtb3RoZXItbW9udGgpIHtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWhpZ2hsaWdodGVkOm5vdCguZGlzYWJsZWQpOm5vdCguc2VsZWN0ZWQpIHNwYW4sXG4gICAgICAgIHNwYW4uaXMtaGlnaGxpZ2h0ZWQ6bm90KC5kaXNhYmxlZCk6bm90KC5zZWxlY3RlZCkge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRoaWdobGlnaHRlZDtcbiAgICAgICAgICB0cmFuc2l0aW9uOiAwcztcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtYWN0aXZlLW90aGVyLW1vbnRoOm5vdCguZGlzYWJsZWQpOm5vdCguc2VsZWN0ZWQpIHNwYW4sXG4gICAgICAgIHNwYW4uaXMtYWN0aXZlLW90aGVyLW1vbnRoOm5vdCguZGlzYWJsZWQpOm5vdCguc2VsZWN0ZWQpIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGlnaGxpZ2h0ZWQ7XG4gICAgICAgICAgdHJhbnNpdGlvbjogMHM7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgc3Bhbi5kaXNhYmxlZCxcbiAgICAgICAgJi5kaXNhYmxlZCBzcGFuIHtcbiAgICAgICAgICBjb2xvcjogJGZvbnQtY29sb3ItMDI7XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuLnNlbGVjdGVkLFxuICAgICAgICAmLnNlbGVjdGVkIHNwYW4ge1xuICAgICAgICAgIGNvbG9yOiAkZm9udC1jb2xvci0wMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW4uaXMtb3RoZXItbW9udGgsXG4gICAgICAgICYuaXMtb3RoZXItbW9udGggc3BhbiB7XG4gICAgICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgJi5zZWxlY3Qtc3RhcnQ6YmVmb3JlIHtcbiAgICAgICAgICAgIGxlZnQ6IDM1JTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLnNlbGVjdC1lbmQ6YmVmb3JlIHtcbiAgICAgICAgICAgIGxlZnQ6IC04NSU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc3Bhbi5hY3RpdmUuc2VsZWN0LXN0YXJ0OmFmdGVyLFxuICAgICAgICBzcGFuLmFjdGl2ZS5zZWxlY3QtZW5kOmFmdGVyLFxuICAgICAgICAmLmFjdGl2ZS5zZWxlY3Qtc3RhcnQgc3BhbjphZnRlcixcbiAgICAgICAgJi5hY3RpdmUuc2VsZWN0LWVuZCBzcGFuOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgdHJhbnNpdGlvbjogMC4zcztcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgIHNwYW46YmVmb3JlIHtcbiAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgICB0b3A6IDZweDtcbiAgICAgICAgICBib3R0b206IDZweDtcbiAgICAgICAgICBsZWZ0OiAtMnB4O1xuICAgICAgICAgIHJpZ2h0OiAtMnB4O1xuICAgICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5hY3RpdmUuc2VsZWN0LXN0YXJ0ICsgdGQuYWN0aXZlOmJlZm9yZSB7XG4gICAgICAgICAgbGVmdDogLTIwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZC5hY3RpdmU6YmVmb3JlIHtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDNweCAzcHggMDtcbiAgICAgICAgICB3aWR0aDogMTI1JTtcbiAgICAgICAgICBsZWZ0OiAtMjUlO1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbltjbGFzcyo9XCJzZWxlY3QtXCJdLFxuICAgICAgICAmW2NsYXNzKj1cInNlbGVjdC1cIl0gc3BhbiB7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgIGNvbG9yOiAkZm9udC1jb2xvci0wMTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvKiAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlLmRheXMgKi9cbiAgICAgICYuZGF5cyB7XG4gICAgICAgIHRkLFxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAmLmFjdGl2ZTpub3QoLnNlbGVjdC1zdGFydCk6YmVmb3JlLFxuICAgICAgICAgICYuaW4tcmFuZ2U6bm90KC5zZWxlY3Qtc3RhcnQpOmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkaGlnaGxpZ2h0ZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuXG4gICAgICAgICAgJi5zZWxlY3Qtc3RhcnQge1xuICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICB9XG4gICAgICAgICAgJi5pcy1oaWdobGlnaHRlZC5pbi1yYW5nZTpiZWZvcmUsXG4gICAgICAgICAgJi5pbi1yYW5nZS5zZWxlY3QtZW5kOmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAmLnNlbGVjdC1zdGFydCArIHRkLnNlbGVjdC1lbmQ6YmVmb3JlLFxuICAgICAgICAgICYuc2VsZWN0LXN0YXJ0ICsgdGQuaXMtaGlnaGxpZ2h0ZWQ6YmVmb3JlLFxuICAgICAgICAgICYuYWN0aXZlICsgdGQuaXMtaGlnaGxpZ2h0ZWQ6YmVmb3JlLFxuICAgICAgICAgICYuYWN0aXZlICsgdGQuc2VsZWN0LWVuZDpiZWZvcmUsXG4gICAgICAgICAgJi5pbi1yYW5nZSArIHRkLmlzLWhpZ2hsaWdodGVkOmJlZm9yZSxcbiAgICAgICAgICAmLmluLXJhbmdlICsgdGQuc2VsZWN0LWVuZDpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGhpZ2hsaWdodGVkO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8qIC5icy1kYXRlcGlja2VyLWJvZHkgdGFibGUud2Vla3MgKi9cbiAgICAgICYud2Vla3Mge1xuICAgICAgICB0ciB7XG4gICAgICAgICAgdGQge1xuICAgICAgICAgICAgJjpudGgtY2hpbGQoMikuYWN0aXZlOmJlZm9yZSB7XG4gICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweCAwIDAgM3B4O1xuICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpub3QoLndlZWtzKSB7XG4gICAgICAgIHRyIHtcbiAgICAgICAgICB0ZHtcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4IDAgMCAzcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYueWVhcnMge1xuICAgICAgICB0ZCB7XG4gICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICB3aWR0aDogNDZweDtcbiAgICAgICAgICAgIGhlaWdodDogNDZweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA0NXB4O1xuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdHI6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgdGQge1xuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5tb250aHMge1xuICAgICAgICB0ZCB7XG4gICAgICAgICAgaGVpZ2h0OiA1MnB4O1xuXG4gICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiA2cHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qIC5jdXJyZW50LXRpbWVkYXRlICovXG4gIC5jdXJyZW50LXRpbWVkYXRlIHtcbiAgICBjb2xvcjogJGZvbnQtY29sb3ItMDM7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblxuICAgIHNwYW46bm90KDplbXB0eSk6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICB3aWR0aDogMTVweDtcbiAgICAgIGhlaWdodDogMTZweDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuICAgICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQThBQUFBUUNBWUFBQURKVmlVRUFBQUJNa2xFUVZRb1U5VlR3VzNDUUJDY09VZ0J0RUJLU0F1a0FuQktNRSt3RkNBbFlJaGs4c1FseEZBQnRKQVNjQXN1QVBCRWV3WWN4Q1A4b3V4clBEc3phNjF1aVZOMW82Uk5IRDRodFNDbXE0OVJmTzcxQnZNSnFCQmtJVFJmMWttVVc0OW5RUkM5aDFJNUFabEJDbGFMOGFQMWZLZ09PeEN4OGFTTHMrUTE5ZVp1Tk84UW1QcUpSdERGZ3V5N09BY0RiSlBzKy9CS1ZQRElQcnZEMlpKZ1dBbVZlN08wckkwVnFzMXNleVdVWHB1Sm9wcFlDYTVMK1UrK05wTlBrcjVPRTJvTWRBUnNiM2d5a0pUNXlkWmNMOFo5V3c2MG54ZzJMaGpPTjlsaTlPd1haem8reExicDNuQzJzOUNMMlJydWVHeVZyZ3dObThIcHNDelo5RUVXNmtxWGxvMUdRZTAzRnpQLzdXOEhsMGRCdHU3QmY3enQ2bUl3dlgxUnZ6RENtNytxM21BVzBEbC9HUGRVQ2VYclpMVDlCckRyR2ttNHFsUHZBQUFBQUVsRlRrU3VRbUNDKTtcbiAgICB9XG4gIH1cblxuICAvKiAuYnMtZGF0ZXBpY2tlci1tdWx0aXBsZSAqL1xuICAmLW11bHRpcGxlIHtcbiAgICBib3JkZXItcmFkaXVzOiA0cHggMCAwIDRweDtcblxuICAgICYgKyAmIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIH1cblxuICAgIC5icy1kYXRlcGlja2VyIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgICB9XG5cbiAgICAgICYgKyAuYnMtZGF0ZXBpY2tlcjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBOEFBQUFLQ0FZQUFBQnJHd1Q1QUFBQTFFbEVRVlFvVTQyUnNRckNVQXhGNzdWdUR1N080b01XVy8vQlVSQkJwWnZnS2s0dUlyam9xS09UZitEb3BJTzR1WWdndEZUZnczK3BrUXFDVzEvRzVKN2tKaUZ5NG01TXhVbHhBemdJUEhYK2x6TVB6dXBSWWxZZ3hpUjd2cXNPUDhZS3pzVHgweXhGTUNVWitxN2FaemxyK092Z29XY0FGeUFIZ2F0MmpMV3U0ODI1MkRkcUFpaERKR1NTSk5VVXhZbVFqczMraFBRQmxBaDJyRzJMQ09QbmF3M0lpR0RYOTlUUkNzN0FTSnNOaFVPQTdkL0xjdUh2UkcyMkZJWnZzTlh3MU1YNlZaRXhDaWxPUUtFZmVMWHIvMTArYUM5SG83YXJoN29BQUFBQVNVVk9SSzVDWUlJPSk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAyNXB4O1xuICAgICAgICBsZWZ0OiAtOHB4O1xuICAgICAgfVxuXG4gICAgICAubGVmdCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgfVxuXG4gICAgICAucmlnaHQge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyogLmJzLWRhdGVwaWNrZXItYnRucyAqL1xuICAmLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMTVweDtcbiAgfVxuXG4gIC5icy1tZWRpYS1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgQG1lZGlhKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuICB9XG5cbiAgLyouYnMtZGF0ZXBpY2tlci1jdXN0b20tcmFuZ2UgKi9cbiAgJi1jdXN0b20tcmFuZ2Uge1xuICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgYmFja2dyb3VuZDogJGN1c3RvbS1yYW5nZS1iZztcbiAgfVxuXG4gIC8qIC5icy1kYXRlcGlja2VyLXByZWRlZmluZWQtYnRucyAqL1xuICAmLXByZWRlZmluZWQtYnRucyB7XG4gICAgYnV0dG9uIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnRuLWJnMjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgIGNvbG9yOiAkZm9udC1jb2xvci0wMTtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICBwYWRkaW5nOiAwIDE4cHg7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgdHJhbnNpdGlvbjogMC4zcztcblxuICAgICAgJjphY3RpdmUsXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ0bi1iZzItaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyogLmJzLWRhdGVwaWNrZXItYnV0dG9ucyAqL1xuICAmLWJ1dHRvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuXG4gICAgLmJ0bi1kZWZhdWx0IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIH1cbiAgfVxufVxuXG4vKiAuYnMtdGltZXBpY2tlciAqL1xuLmJzLXRpbWVwaWNrZXIge1xuICAmLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMTBweCAwO1xuICB9XG5cbiAgJi1sYWJlbCB7XG4gICAgY29sb3I6ICRmb250LWNvbG9yLTAzO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIH1cblxuICAmLWNvbnRyb2xzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cbiAgICBidXR0b24ge1xuICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnRuLWJnO1xuICAgICAgY29sb3I6ICRmb250LWNvbG9yLTAzO1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB0cmFuc2l0aW9uOiAwLjNzO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ0bi1iZy1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICB3aWR0aDogMzVweDtcbiAgICAgIGhlaWdodDogMjVweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEzcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5zd2l0Y2gtdGltZS1mb3JtYXQge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbWluLXdpZHRoOiA1NHB4O1xuICAgIGhlaWdodDogMjVweDtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gICAgYmFja2dyb3VuZDogJG1haW4tYmc7XG4gICAgY29sb3I6ICRmb250LWNvbG9yLTAzO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcblxuICAgIGltZyB7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogaW5pdGlhbDtcbiAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gICAgfVxuICB9XG59XG5cbmJzLWRhdGVwaWNrZXItY29udGFpbmVyLFxuYnMtZGF0ZXJhbmdlcGlja2VyLWNvbnRhaW5lciB7XG4gIHotaW5kZXg6IDEwODA7XG59XG5cbi8qIHNjcmVlbiBzaXplIDwgMTAyNHB4ICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmJzLWRhdGVwaWNrZXIge1xuICAgICYtbXVsdGlwbGUge1xuICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgJiArICYge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyogdGhlbWluZyAqL1xuQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkdGhlbWUtbGlzdCB7XG4gIEBpbmNsdWRlIHRoZW1pbmcoJG5hbWUsICRjb2xvcik7XG59XG4iLCIkbWFpbi1iZzogICAgICAgICAjZmZmICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS1iZzogI2VlZSAhZGVmYXVsdDtcblxuJG1haW4tYm94LXNoYWRvdzogI2FhYSAhZGVmYXVsdDtcblxuJGZvbnQtY29sb3ItMDE6ICAgI2ZmZiAhZGVmYXVsdDtcbiRmb250LWNvbG9yLTAyOiAgICM5YWFlYzEgIWRlZmF1bHQ7XG4kZm9udC1jb2xvci0wMzogICAjNTQ3MDhiICFkZWZhdWx0O1xuXG4kYm9yZGVyLWNvbG9yOiAgICAjZTllZGYwICFkZWZhdWx0O1xuJGhpZ2hsaWdodGVkOiAgICAgI2U5ZWRmMCAhZGVmYXVsdDtcblxuJGJ0bi1iZzogICAgICAgICAgI2U5ZWRmMCAhZGVmYXVsdDtcbiRidG4tYmctaG92ZXI6ICAgICNkNWRhZGQgIWRlZmF1bHQ7XG5cbiRidG4tYmcyOiAgICAgICAgICM5YWFlYzEgIWRlZmF1bHQ7XG4kYnRuLWJnMi1ob3ZlcjogICAjNTQ3MDhiICFkZWZhdWx0O1xuXG4kdGhlbWUtZ3JheTogICAgICAjNzc3ICFkZWZhdWx0O1xuJHRoZW1lLWdyZWVuOiAgICAgIzVjYjg1YyAhZGVmYXVsdDtcbiR0aGVtZS1ibHVlOiAgICAgICM1YmMwZGUgIWRlZmF1bHQ7XG4kdGhlbWUtZGFyay1ibHVlOiAjMzM3YWI3ICFkZWZhdWx0O1xuJHRoZW1lLXJlZDogICAgICAgI2Q5NTM0ZiAhZGVmYXVsdDtcbiR0aGVtZS1vcmFuZ2U6ICAgICNmMGFkNGUgIWRlZmF1bHQ7XG5cbiRkaXNhYmxlZC1iYWNrZ3JvdW5kOiAgcmdiYSgyMjEsIDIyMSwgMjIxLCAwLjMpICFkZWZhdWx0O1xuJGRpc2FibGVkLWNvbG9yOiAgICAgICAjZjVmNWY1ICFkZWZhdWx0O1xuXG4kdGhlbWUtbGlzdDogKFxuICAnZGVmYXVsdCc6ICR0aGVtZS1ncmF5LFxuICAnZ3JlZW4nOiAkdGhlbWUtZ3JlZW4sXG4gICdibHVlJzogJHRoZW1lLWJsdWUsXG4gICdkYXJrLWJsdWUnOiAkdGhlbWUtZGFyay1ibHVlLFxuICAncmVkJzogJHRoZW1lLXJlZCxcbiAgJ29yYW5nZSc6ICR0aGVtZS1vcmFuZ2UsXG4pICFkZWZhdWx0O1xuIiwiQGltcG9ydCAndmFyaWFibGVzJztcblxuQG1peGluIHRoZW1pbmcoJG5hbWUsICRjb2xvcikge1xuICAudGhlbWUtI3skbmFtZX0ge1xuICAgIC5icy1kYXRlcGlja2VyLWhlYWQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgIH1cblxuICAgIC5icy1kYXRlcGlja2VyLWJvZHkge1xuICAgICAgdGFibGUge1xuICAgICAgICB0ZCB7XG4gICAgICAgICAgc3Bhbi5zZWxlY3RlZCxcbiAgICAgICAgICAmLnNlbGVjdGVkIHNwYW4sXG4gICAgICAgICAgc3BhbltjbGFzcyo9XCJzZWxlY3QtXCJdOmFmdGVyLFxuICAgICAgICAgICZbY2xhc3MqPVwic2VsZWN0LVwiXSBzcGFuOmFmdGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLndlZWsgc3BhbiB7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYuYWN0aXZlLXdlZWsgc3Bhbjpob3ZlciB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICBjb2xvcjogJGZvbnQtY29sb3ItMDE7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAwcztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qIC5icy1kYXRlcGlja2VyICovXG4uYnMtZGF0ZXBpY2tlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3gtc2hhZG93OiAwIDAgMTBweCAwICNhYWE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgLyogYnV0dG9uICovXG4gIC8qIC5icy1kYXRlcGlja2VyLWhlYWQgKi9cbiAgLyogLmJzLWRhdGVwaWNrZXItYm9keSAqL1xuICAvKiAuY3VycmVudC10aW1lZGF0ZSAqL1xuICAvKiAuYnMtZGF0ZXBpY2tlci1tdWx0aXBsZSAqL1xuICAvKiAuYnMtZGF0ZXBpY2tlci1idG5zICovXG4gIC8qLmJzLWRhdGVwaWNrZXItY3VzdG9tLXJhbmdlICovXG4gIC8qIC5icy1kYXRlcGlja2VyLXByZWRlZmluZWQtYnRucyAqL1xuICAvKiAuYnMtZGF0ZXBpY2tlci1idXR0b25zICovIH1cbiAgLmJzLWRhdGVwaWNrZXI6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5icy1kYXRlcGlja2VyIGJzLWRheS1waWNrZXIge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5icy1kYXRlcGlja2VyIGJ1dHRvbjpob3ZlcixcbiAgLmJzLWRhdGVwaWNrZXIgYnV0dG9uOmZvY3VzLFxuICAuYnMtZGF0ZXBpY2tlciBidXR0b246YWN0aXZlLFxuICAuYnMtZGF0ZXBpY2tlciBpbnB1dDpob3ZlcixcbiAgLmJzLWRhdGVwaWNrZXIgaW5wdXQ6Zm9jdXMsXG4gIC5icy1kYXRlcGlja2VyIGlucHV0OmFjdGl2ZSxcbiAgLmJzLWRhdGVwaWNrZXItYnRucyBidXR0b246aG92ZXIsXG4gIC5icy1kYXRlcGlja2VyLWJ0bnMgYnV0dG9uOmZvY3VzLFxuICAuYnMtZGF0ZXBpY2tlci1idG5zIGJ1dHRvbjphY3RpdmUsXG4gIC5icy1kYXRlcGlja2VyLXByZWRlZmluZWQtYnRucyBidXR0b246YWN0aXZlLFxuICAuYnMtZGF0ZXBpY2tlci1wcmVkZWZpbmVkLWJ0bnMgYnV0dG9uOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lOyB9XG4gIC5icy1kYXRlcGlja2VyLWhlYWQge1xuICAgIG1pbi13aWR0aDogMjcwcHg7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4IDNweCAwIDA7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgICAvKiAuYnMtZGF0ZXBpY2tlci1oZWFkIGJ1dHRvbiAqLyB9XG4gICAgLmJzLWRhdGVwaWNrZXItaGVhZDphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmJzLWRhdGVwaWNrZXItaGVhZCBidXR0b24ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB0cmFuc2l0aW9uOiAwLjNzOyB9XG4gICAgICAuYnMtZGF0ZXBpY2tlci1oZWFkIGJ1dHRvbltkaXNhYmxlZF0sIC5icy1kYXRlcGlja2VyLWhlYWQgYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJzLWRhdGVwaWNrZXItaGVhZCBidXR0b25bZGlzYWJsZWRdOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjIxLCAyMjEsIDIyMSwgMC4zKTtcbiAgICAgICAgY29sb3I6ICNmNWY1ZjU7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAgIC5icy1kYXRlcGlja2VyLWhlYWQgYnV0dG9uLm5leHQsIC5icy1kYXRlcGlja2VyLWhlYWQgYnV0dG9uLnByZXZpb3VzIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgaGVpZ2h0OiAzMHB4OyB9XG4gICAgICAgIC5icy1kYXRlcGlja2VyLWhlYWQgYnV0dG9uLm5leHQgc3BhbiwgLmJzLWRhdGVwaWNrZXItaGVhZCBidXR0b24ucHJldmlvdXMgc3BhbiB7XG4gICAgICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuICAgICAgLmJzLWRhdGVwaWNrZXItaGVhZCBidXR0b24uY3VycmVudCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gICAgICAgIG1heC13aWR0aDogMTU1cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMTNweDsgfVxuICAuYnMtZGF0ZXBpY2tlci1oZWFkIGJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG4gIC5icy1kYXRlcGlja2VyLWhlYWQgYnV0dG9uOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpOyB9XG4gIC5icy1kYXRlcGlja2VyLWJvZHkge1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDNweCAzcHg7XG4gICAgbWluLWhlaWdodDogMjMycHg7XG4gICAgbWluLXdpZHRoOiAyNzhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTllZGYwO1xuICAgIC8qIC5icy1kYXRlcGlja2VyLWJvZHkgdGFibGUgKi8gfVxuICAgIC5icy1kYXRlcGlja2VyLWJvZHkgLmRheXMud2Vla3Mge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMTsgfVxuICAgIC5icy1kYXRlcGlja2VyLWJvZHkgdGFibGUge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xuICAgICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gICAgICAvKiAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlLmRheXMgKi9cbiAgICAgIC8qIC5icy1kYXRlcGlja2VyLWJvZHkgdGFibGUud2Vla3MgKi8gfVxuICAgICAgLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZSB0aCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgY29sb3I6ICM5YWFlYzE7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZSB0ZCB7XG4gICAgICAgIGNvbG9yOiAjNTQ3MDhiO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogMDsgfVxuICAgICAgICAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlIHRkIHNwYW4ge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIC8qei1pbmRleDogMTsqL1xuICAgICAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgICAgICAgLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZSB0ZDpub3QoLmRpc2FibGVkKTpub3QoLndlZWspIHNwYW46bm90KC5kaXNhYmxlZCk6bm90KC5pcy1vdGhlci1tb250aCkge1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgICAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlIHRkLmlzLWhpZ2hsaWdodGVkOm5vdCguZGlzYWJsZWQpOm5vdCguc2VsZWN0ZWQpIHNwYW4sXG4gICAgICAgIC5icy1kYXRlcGlja2VyLWJvZHkgdGFibGUgdGQgc3Bhbi5pcy1oaWdobGlnaHRlZDpub3QoLmRpc2FibGVkKTpub3QoLnNlbGVjdGVkKSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U5ZWRmMDtcbiAgICAgICAgICB0cmFuc2l0aW9uOiAwczsgfVxuICAgICAgICAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlIHRkLmlzLWFjdGl2ZS1vdGhlci1tb250aDpub3QoLmRpc2FibGVkKTpub3QoLnNlbGVjdGVkKSBzcGFuLFxuICAgICAgICAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlIHRkIHNwYW4uaXMtYWN0aXZlLW90aGVyLW1vbnRoOm5vdCguZGlzYWJsZWQpOm5vdCguc2VsZWN0ZWQpIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllZGYwO1xuICAgICAgICAgIHRyYW5zaXRpb246IDBzO1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgICAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlIHRkIHNwYW4uZGlzYWJsZWQsXG4gICAgICAgIC5icy1kYXRlcGlja2VyLWJvZHkgdGFibGUgdGQuZGlzYWJsZWQgc3BhbiB7XG4gICAgICAgICAgY29sb3I6ICM5YWFlYzE7IH1cbiAgICAgICAgLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZSB0ZCBzcGFuLnNlbGVjdGVkLFxuICAgICAgICAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlIHRkLnNlbGVjdGVkIHNwYW4ge1xuICAgICAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgICAgIC5icy1kYXRlcGlja2VyLWJvZHkgdGFibGUgdGQgc3Bhbi5pcy1vdGhlci1tb250aCxcbiAgICAgICAgLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZSB0ZC5pcy1vdGhlci1tb250aCBzcGFuIHtcbiAgICAgICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI1KTsgfVxuICAgICAgICAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlIHRkLmFjdGl2ZSB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAgICAgLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZSB0ZC5hY3RpdmUuc2VsZWN0LXN0YXJ0OmJlZm9yZSB7XG4gICAgICAgICAgICBsZWZ0OiAzNSU7IH1cbiAgICAgICAgICAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlIHRkLmFjdGl2ZS5zZWxlY3QtZW5kOmJlZm9yZSB7XG4gICAgICAgICAgICBsZWZ0OiAtODUlOyB9XG4gICAgICAgIC5icy1kYXRlcGlja2VyLWJvZHkgdGFibGUgdGQgc3Bhbi5hY3RpdmUuc2VsZWN0LXN0YXJ0OmFmdGVyLFxuICAgICAgICAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlIHRkIHNwYW4uYWN0aXZlLnNlbGVjdC1lbmQ6YWZ0ZXIsXG4gICAgICAgIC5icy1kYXRlcGlja2VyLWJvZHkgdGFibGUgdGQuYWN0aXZlLnNlbGVjdC1zdGFydCBzcGFuOmFmdGVyLFxuICAgICAgICAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlIHRkLmFjdGl2ZS5zZWxlY3QtZW5kIHNwYW46YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiAwLjNzO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7IH1cbiAgICAgICAgLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZSB0ZDpiZWZvcmUsXG4gICAgICAgIC5icy1kYXRlcGlja2VyLWJvZHkgdGFibGUgdGQgc3BhbjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICAgIHRvcDogNnB4O1xuICAgICAgICAgIGJvdHRvbTogNnB4O1xuICAgICAgICAgIGxlZnQ6IC0ycHg7XG4gICAgICAgICAgcmlnaHQ6IC0ycHg7XG4gICAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgICAgICAgLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZSB0ZC5hY3RpdmUuc2VsZWN0LXN0YXJ0ICsgdGQuYWN0aXZlOmJlZm9yZSB7XG4gICAgICAgICAgbGVmdDogLTIwJTsgfVxuICAgICAgICAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlIHRkOmxhc3QtY2hpbGQuYWN0aXZlOmJlZm9yZSB7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAzcHggM3B4IDA7XG4gICAgICAgICAgd2lkdGg6IDEyNSU7XG4gICAgICAgICAgbGVmdDogLTI1JTsgfVxuICAgICAgICAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlIHRkIHNwYW5bY2xhc3MqPVwic2VsZWN0LVwiXSxcbiAgICAgICAgLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZSB0ZFtjbGFzcyo9XCJzZWxlY3QtXCJdIHNwYW4ge1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICBjb2xvcjogI2ZmZjsgfVxuICAgICAgLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZS5kYXlzIHRkLmFjdGl2ZTpub3QoLnNlbGVjdC1zdGFydCk6YmVmb3JlLCAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlLmRheXMgdGQuaW4tcmFuZ2U6bm90KC5zZWxlY3Qtc3RhcnQpOmJlZm9yZSxcbiAgICAgIC5icy1kYXRlcGlja2VyLWJvZHkgdGFibGUuZGF5cyBzcGFuLmFjdGl2ZTpub3QoLnNlbGVjdC1zdGFydCk6YmVmb3JlLFxuICAgICAgLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZS5kYXlzIHNwYW4uaW4tcmFuZ2U6bm90KC5zZWxlY3Qtc3RhcnQpOmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlOWVkZjA7IH1cbiAgICAgIC5icy1kYXRlcGlja2VyLWJvZHkgdGFibGUuZGF5cyBzcGFuIHtcbiAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7IH1cbiAgICAgICAgLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZS5kYXlzIHNwYW4uc2VsZWN0LXN0YXJ0IHtcbiAgICAgICAgICB6LWluZGV4OiAyOyB9XG4gICAgICAgIC5icy1kYXRlcGlja2VyLWJvZHkgdGFibGUuZGF5cyBzcGFuLmlzLWhpZ2hsaWdodGVkLmluLXJhbmdlOmJlZm9yZSwgLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZS5kYXlzIHNwYW4uaW4tcmFuZ2Uuc2VsZWN0LWVuZDpiZWZvcmUge1xuICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgbGVmdDogMDsgfVxuICAgICAgLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZS5kYXlzIHRkLnNlbGVjdC1zdGFydCArIHRkLnNlbGVjdC1lbmQ6YmVmb3JlLFxuICAgICAgLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZS5kYXlzIHRkLnNlbGVjdC1zdGFydCArIHRkLmlzLWhpZ2hsaWdodGVkOmJlZm9yZSxcbiAgICAgIC5icy1kYXRlcGlja2VyLWJvZHkgdGFibGUuZGF5cyB0ZC5hY3RpdmUgKyB0ZC5pcy1oaWdobGlnaHRlZDpiZWZvcmUsXG4gICAgICAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlLmRheXMgdGQuYWN0aXZlICsgdGQuc2VsZWN0LWVuZDpiZWZvcmUsXG4gICAgICAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlLmRheXMgdGQuaW4tcmFuZ2UgKyB0ZC5pcy1oaWdobGlnaHRlZDpiZWZvcmUsXG4gICAgICAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlLmRheXMgdGQuaW4tcmFuZ2UgKyB0ZC5zZWxlY3QtZW5kOmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlOWVkZjA7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlLndlZWtzIHRyIHRkOm50aC1jaGlsZCgyKS5hY3RpdmU6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4IDAgMCAzcHg7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlOm5vdCgud2Vla3MpIHRyIHRkOmZpcnN0LWNoaWxkOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweCAwIDAgM3B4OyB9XG4gICAgICAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlLnllYXJzIHRkIHNwYW4ge1xuICAgICAgICB3aWR0aDogNDZweDtcbiAgICAgICAgaGVpZ2h0OiA0NnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogNDVweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87IH1cbiAgICAgIC5icy1kYXRlcGlja2VyLWJvZHkgdGFibGUueWVhcnMgdHI6bm90KDpsYXN0LWNoaWxkKSB0ZCBzcGFuIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OyB9XG4gICAgICAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlLm1vbnRocyB0ZCB7XG4gICAgICAgIGhlaWdodDogNTJweDsgfVxuICAgICAgICAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlLm1vbnRocyB0ZCBzcGFuIHtcbiAgICAgICAgICBwYWRkaW5nOiA2cHg7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDsgfVxuICAuYnMtZGF0ZXBpY2tlciAuY3VycmVudC10aW1lZGF0ZSB7XG4gICAgY29sb3I6ICM1NDcwOGI7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTllZGYwO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsgfVxuICAgIC5icy1kYXRlcGlja2VyIC5jdXJyZW50LXRpbWVkYXRlIHNwYW46bm90KDplbXB0eSk6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICB3aWR0aDogMTVweDtcbiAgICAgIGhlaWdodDogMTZweDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuICAgICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQThBQUFBUUNBWUFBQURKVmlVRUFBQUJNa2xFUVZRb1U5VlR3VzNDUUJDY09VZ0J0RUJLU0F1a0FuQktNRSt3RkNBbFlJaGs4c1FseEZBQnRKQVNjQXN1QVBCRWV3WWN4Q1A4b3V4clBEc3phNjF1aVZOMW82Uk5IRDRodFNDbXE0OVJmTzcxQnZNSnFCQmtJVFJmMWttVVc0OW5RUkM5aDFJNUFabEJDbGFMOGFQMWZLZ09PeEN4OGFTTHMrUTE5ZVp1Tk84UW1QcUpSdERGZ3V5N09BY0RiSlBzKy9CS1ZQRElQcnZEMlpKZ1dBbVZlN08wckkwVnFzMXNleVdVWHB1Sm9wcFlDYTVMK1UrK05wTlBrcjVPRTJvTWRBUnNiM2d5a0pUNXlkWmNMOFo5V3c2MG54ZzJMaGpPTjlsaTlPd1haem8reExicDNuQzJzOUNMMlJydWVHeVZyZ3dObThIcHNDelo5RUVXNmtxWGxvMUdRZTAzRnpQLzdXOEhsMGRCdHU3QmY3enQ2bUl3dlgxUnZ6RENtNytxM21BVzBEbC9HUGRVQ2VYclpMVDlCckRyR2ttNHFsUHZBQUFBQUVsRlRrU3VRbUNDKTsgfVxuICAuYnMtZGF0ZXBpY2tlci1tdWx0aXBsZSB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDAgMCA0cHg7IH1cbiAgICAuYnMtZGF0ZXBpY2tlci1tdWx0aXBsZSArIC5icy1kYXRlcGlja2VyLW11bHRpcGxlIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4OyB9XG4gICAgLmJzLWRhdGVwaWNrZXItbXVsdGlwbGUgLmJzLWRhdGVwaWNrZXIge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgLmJzLWRhdGVwaWNrZXItbXVsdGlwbGUgLmJzLWRhdGVwaWNrZXI6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7IH1cbiAgICAgIC5icy1kYXRlcGlja2VyLW11bHRpcGxlIC5icy1kYXRlcGlja2VyICsgLmJzLWRhdGVwaWNrZXI6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQThBQUFBS0NBWUFBQUJyR3dUNUFBQUExRWxFUVZRb1U0MlJzUXJDVUF4Rjc3VnVEdTdPNG9NV1cvL0JVUkJCcFp2Z0trNHVJcmpvcUtPVGYrRG9wSU80dVlnZ3RGVGZ3Mytwa1FxQ1cxL0c1SjdrSmlGeTRtNU14VWx4QXpnSVBIWCtsek1QenVwUllsWWd4aVI3dnFzT1A4WUt6c1R4MHl4Rk1DVVorcTdhWnpscitPdmdvV2NBRnlBSGdhdDJqTFd1NDgyNTJEZHFBaWhESkdTU0pOVVV4WW1RanMzK2hQUUJsQWgyckcyTENPUG5hdzNJaUdEWDk5VFJDczdBU0pzTmhVT0E3ZC9MY3VIdlJHMjJGSVp2c05YdzFNWDZWWkV4Q2lsT1FLRWZlTFhyLzEwK2FDOUhvN2FyaDdvQUFBQUFTVVZPUks1Q1lJST0pO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMjVweDtcbiAgICAgICAgbGVmdDogLThweDsgfVxuICAgICAgLmJzLWRhdGVwaWNrZXItbXVsdGlwbGUgLmJzLWRhdGVwaWNrZXIgLmxlZnQge1xuICAgICAgICBmbG9hdDogbGVmdDsgfVxuICAgICAgLmJzLWRhdGVwaWNrZXItbXVsdGlwbGUgLmJzLWRhdGVwaWNrZXIgLnJpZ2h0IHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0OyB9XG4gIC5icy1kYXRlcGlja2VyLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMTVweDsgfVxuICAuYnMtZGF0ZXBpY2tlciAuYnMtbWVkaWEtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAuYnMtZGF0ZXBpY2tlciAuYnMtbWVkaWEtY29udGFpbmVyIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9XG4gIC5icy1kYXRlcGlja2VyLWN1c3RvbS1yYW5nZSB7XG4gICAgcGFkZGluZzogMTVweDtcbiAgICBiYWNrZ3JvdW5kOiAjZWVlOyB9XG4gIC5icy1kYXRlcGlja2VyLXByZWRlZmluZWQtYnRucyBidXR0b24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMzBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWFhZWMxO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBwYWRkaW5nOiAwIDE4cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB0cmFuc2l0aW9uOiAwLjNzOyB9XG4gICAgLmJzLWRhdGVwaWNrZXItcHJlZGVmaW5lZC1idG5zIGJ1dHRvbjphY3RpdmUsIC5icy1kYXRlcGlja2VyLXByZWRlZmluZWQtYnRucyBidXR0b246aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzU0NzA4YjsgfVxuICAuYnMtZGF0ZXBpY2tlci1idXR0b25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2U5ZWRmMDsgfVxuICAgIC5icy1kYXRlcGlja2VyLWJ1dHRvbnMgLmJ0bi1kZWZhdWx0IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4OyB9XG5cbi8qIC5icy10aW1lcGlja2VyICovXG4uYnMtdGltZXBpY2tlci1jb250YWluZXIge1xuICBwYWRkaW5nOiAxMHB4IDA7IH1cblxuLmJzLXRpbWVwaWNrZXItbGFiZWwge1xuICBjb2xvcjogIzU0NzA4YjtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG4uYnMtdGltZXBpY2tlci1jb250cm9scyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG4gIC5icy10aW1lcGlja2VyLWNvbnRyb2xzIGJ1dHRvbiB7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U5ZWRmMDtcbiAgICBjb2xvcjogIzU0NzA4YjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdHJhbnNpdGlvbjogMC4zczsgfVxuICAgIC5icy10aW1lcGlja2VyLWNvbnRyb2xzIGJ1dHRvbjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDVkYWRkOyB9XG4gIC5icy10aW1lcGlja2VyLWNvbnRyb2xzIGlucHV0IHtcbiAgICB3aWR0aDogMzVweDtcbiAgICBoZWlnaHQ6IDI1cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTNweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U5ZWRmMDsgfVxuXG4uYnMtdGltZXBpY2tlciAuc3dpdGNoLXRpbWUtZm9ybWF0IHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWluLXdpZHRoOiA1NHB4O1xuICBoZWlnaHQ6IDI1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlOWVkZjA7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGNvbG9yOiAjNTQ3MDhiO1xuICBmb250LXNpemU6IDEzcHg7IH1cbiAgLmJzLXRpbWVwaWNrZXIgLnN3aXRjaC10aW1lLWZvcm1hdCBpbWcge1xuICAgIHZlcnRpY2FsLWFsaWduOiBpbml0aWFsO1xuICAgIG1hcmdpbi1sZWZ0OiA0cHg7IH1cblxuYnMtZGF0ZXBpY2tlci1jb250YWluZXIsXG5icy1kYXRlcmFuZ2VwaWNrZXItY29udGFpbmVyIHtcbiAgei1pbmRleDogMTA4MDsgfVxuXG4vKiBzY3JlZW4gc2l6ZSA8IDEwMjRweCAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5icy1kYXRlcGlja2VyLW11bHRpcGxlIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgLmJzLWRhdGVwaWNrZXItbXVsdGlwbGUgKyAuYnMtZGF0ZXBpY2tlci1tdWx0aXBsZSB7XG4gICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH0gfVxuXG4vKiB0aGVtaW5nICovXG4udGhlbWUtZGVmYXVsdCAuYnMtZGF0ZXBpY2tlci1oZWFkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc3NzsgfVxuXG4udGhlbWUtZGVmYXVsdCAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlIHRkIHNwYW4uc2VsZWN0ZWQsXG4udGhlbWUtZGVmYXVsdCAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlIHRkLnNlbGVjdGVkIHNwYW4sXG4udGhlbWUtZGVmYXVsdCAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlIHRkIHNwYW5bY2xhc3MqPVwic2VsZWN0LVwiXTphZnRlcixcbi50aGVtZS1kZWZhdWx0IC5icy1kYXRlcGlja2VyLWJvZHkgdGFibGUgdGRbY2xhc3MqPVwic2VsZWN0LVwiXSBzcGFuOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc3NzsgfVxuXG4udGhlbWUtZGVmYXVsdCAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlIHRkLndlZWsgc3BhbiB7XG4gIGNvbG9yOiAjNzc3OyB9XG5cbi50aGVtZS1kZWZhdWx0IC5icy1kYXRlcGlja2VyLWJvZHkgdGFibGUgdGQuYWN0aXZlLXdlZWsgc3Bhbjpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc3NztcbiAgY29sb3I6ICNmZmY7XG4gIG9wYWNpdHk6IDAuNTtcbiAgdHJhbnNpdGlvbjogMHM7IH1cblxuLnRoZW1lLWdyZWVuIC5icy1kYXRlcGlja2VyLWhlYWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNiODVjOyB9XG5cbi50aGVtZS1ncmVlbiAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlIHRkIHNwYW4uc2VsZWN0ZWQsXG4udGhlbWUtZ3JlZW4gLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZSB0ZC5zZWxlY3RlZCBzcGFuLFxuLnRoZW1lLWdyZWVuIC5icy1kYXRlcGlja2VyLWJvZHkgdGFibGUgdGQgc3BhbltjbGFzcyo9XCJzZWxlY3QtXCJdOmFmdGVyLFxuLnRoZW1lLWdyZWVuIC5icy1kYXRlcGlja2VyLWJvZHkgdGFibGUgdGRbY2xhc3MqPVwic2VsZWN0LVwiXSBzcGFuOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVjYjg1YzsgfVxuXG4udGhlbWUtZ3JlZW4gLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZSB0ZC53ZWVrIHNwYW4ge1xuICBjb2xvcjogIzVjYjg1YzsgfVxuXG4udGhlbWUtZ3JlZW4gLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZSB0ZC5hY3RpdmUtd2VlayBzcGFuOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNiODVjO1xuICBjb2xvcjogI2ZmZjtcbiAgb3BhY2l0eTogMC41O1xuICB0cmFuc2l0aW9uOiAwczsgfVxuXG4udGhlbWUtYmx1ZSAuYnMtZGF0ZXBpY2tlci1oZWFkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzViYzBkZTsgfVxuXG4udGhlbWUtYmx1ZSAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlIHRkIHNwYW4uc2VsZWN0ZWQsXG4udGhlbWUtYmx1ZSAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlIHRkLnNlbGVjdGVkIHNwYW4sXG4udGhlbWUtYmx1ZSAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlIHRkIHNwYW5bY2xhc3MqPVwic2VsZWN0LVwiXTphZnRlcixcbi50aGVtZS1ibHVlIC5icy1kYXRlcGlja2VyLWJvZHkgdGFibGUgdGRbY2xhc3MqPVwic2VsZWN0LVwiXSBzcGFuOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzViYzBkZTsgfVxuXG4udGhlbWUtYmx1ZSAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlIHRkLndlZWsgc3BhbiB7XG4gIGNvbG9yOiAjNWJjMGRlOyB9XG5cbi50aGVtZS1ibHVlIC5icy1kYXRlcGlja2VyLWJvZHkgdGFibGUgdGQuYWN0aXZlLXdlZWsgc3Bhbjpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzViYzBkZTtcbiAgY29sb3I6ICNmZmY7XG4gIG9wYWNpdHk6IDAuNTtcbiAgdHJhbnNpdGlvbjogMHM7IH1cblxuLnRoZW1lLWRhcmstYmx1ZSAuYnMtZGF0ZXBpY2tlci1oZWFkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzN2FiNzsgfVxuXG4udGhlbWUtZGFyay1ibHVlIC5icy1kYXRlcGlja2VyLWJvZHkgdGFibGUgdGQgc3Bhbi5zZWxlY3RlZCxcbi50aGVtZS1kYXJrLWJsdWUgLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZSB0ZC5zZWxlY3RlZCBzcGFuLFxuLnRoZW1lLWRhcmstYmx1ZSAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlIHRkIHNwYW5bY2xhc3MqPVwic2VsZWN0LVwiXTphZnRlcixcbi50aGVtZS1kYXJrLWJsdWUgLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZSB0ZFtjbGFzcyo9XCJzZWxlY3QtXCJdIHNwYW46YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzM3YWI3OyB9XG5cbi50aGVtZS1kYXJrLWJsdWUgLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZSB0ZC53ZWVrIHNwYW4ge1xuICBjb2xvcjogIzMzN2FiNzsgfVxuXG4udGhlbWUtZGFyay1ibHVlIC5icy1kYXRlcGlja2VyLWJvZHkgdGFibGUgdGQuYWN0aXZlLXdlZWsgc3Bhbjpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzN2FiNztcbiAgY29sb3I6ICNmZmY7XG4gIG9wYWNpdHk6IDAuNTtcbiAgdHJhbnNpdGlvbjogMHM7IH1cblxuLnRoZW1lLXJlZCAuYnMtZGF0ZXBpY2tlci1oZWFkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5NTM0ZjsgfVxuXG4udGhlbWUtcmVkIC5icy1kYXRlcGlja2VyLWJvZHkgdGFibGUgdGQgc3Bhbi5zZWxlY3RlZCxcbi50aGVtZS1yZWQgLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZSB0ZC5zZWxlY3RlZCBzcGFuLFxuLnRoZW1lLXJlZCAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlIHRkIHNwYW5bY2xhc3MqPVwic2VsZWN0LVwiXTphZnRlcixcbi50aGVtZS1yZWQgLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZSB0ZFtjbGFzcyo9XCJzZWxlY3QtXCJdIHNwYW46YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDk1MzRmOyB9XG5cbi50aGVtZS1yZWQgLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZSB0ZC53ZWVrIHNwYW4ge1xuICBjb2xvcjogI2Q5NTM0ZjsgfVxuXG4udGhlbWUtcmVkIC5icy1kYXRlcGlja2VyLWJvZHkgdGFibGUgdGQuYWN0aXZlLXdlZWsgc3Bhbjpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5NTM0ZjtcbiAgY29sb3I6ICNmZmY7XG4gIG9wYWNpdHk6IDAuNTtcbiAgdHJhbnNpdGlvbjogMHM7IH1cblxuLnRoZW1lLW9yYW5nZSAuYnMtZGF0ZXBpY2tlci1oZWFkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwYWQ0ZTsgfVxuXG4udGhlbWUtb3JhbmdlIC5icy1kYXRlcGlja2VyLWJvZHkgdGFibGUgdGQgc3Bhbi5zZWxlY3RlZCxcbi50aGVtZS1vcmFuZ2UgLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZSB0ZC5zZWxlY3RlZCBzcGFuLFxuLnRoZW1lLW9yYW5nZSAuYnMtZGF0ZXBpY2tlci1ib2R5IHRhYmxlIHRkIHNwYW5bY2xhc3MqPVwic2VsZWN0LVwiXTphZnRlcixcbi50aGVtZS1vcmFuZ2UgLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZSB0ZFtjbGFzcyo9XCJzZWxlY3QtXCJdIHNwYW46YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBhZDRlOyB9XG5cbi50aGVtZS1vcmFuZ2UgLmJzLWRhdGVwaWNrZXItYm9keSB0YWJsZSB0ZC53ZWVrIHNwYW4ge1xuICBjb2xvcjogI2YwYWQ0ZTsgfVxuXG4udGhlbWUtb3JhbmdlIC5icy1kYXRlcGlja2VyLWJvZHkgdGFibGUgdGQuYWN0aXZlLXdlZWsgc3Bhbjpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwYWQ0ZTtcbiAgY29sb3I6ICNmZmY7XG4gIG9wYWNpdHk6IDAuNTtcbiAgdHJhbnNpdGlvbjogMHM7IH1cblxuLyojIHNvdXJjZU1hcHBpbmdVUkw9YnMtZGF0ZXBpY2tlci5jc3MubWFwICovIl19 */", '', '']] - -/***/ }), - -/***/ "./node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!./node_modules/postcss-loader/src/index.js?!./src/styles.css": -/*!*****************************************************************************************************************************************************************!*\ - !*** ./node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!./node_modules/postcss-loader/src??embedded!./src/styles.css ***! - \*****************************************************************************************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = [[module.i, "/* You can add global styles to this file, and also import other style files */\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9zdHlsZXMuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhFQUE4RSIsImZpbGUiOiJzcmMvc3R5bGVzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIFlvdSBjYW4gYWRkIGdsb2JhbCBzdHlsZXMgdG8gdGhpcyBmaWxlLCBhbmQgYWxzbyBpbXBvcnQgb3RoZXIgc3R5bGUgZmlsZXMgKi9cbiJdfQ== */", '', '']] - -/***/ }), - -/***/ "./node_modules/bootstrap/dist/css/bootstrap.min.css": -/*!***********************************************************!*\ - !*** ./node_modules/bootstrap/dist/css/bootstrap.min.css ***! - \***********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var content = __webpack_require__(/*! !../../../@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!../../../postcss-loader/src??embedded!./bootstrap.min.css */ "./node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/bootstrap/dist/css/bootstrap.min.css"); - -if (typeof content === 'string') { - content = [[module.i, content, '']]; -} - -var options = {} - -options.insert = "head"; -options.singleton = false; - -var update = __webpack_require__(/*! ../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js")(content, options); - -if (content.locals) { - module.exports = content.locals; -} - - -/***/ }), - -/***/ "./node_modules/ngx-bootstrap/datepicker/bs-datepicker.css": -/*!*****************************************************************!*\ - !*** ./node_modules/ngx-bootstrap/datepicker/bs-datepicker.css ***! - \*****************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var content = __webpack_require__(/*! !../../@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!../../postcss-loader/src??embedded!./bs-datepicker.css */ "./node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/ngx-bootstrap/datepicker/bs-datepicker.css"); - -if (typeof content === 'string') { - content = [[module.i, content, '']]; -} - -var options = {} - -options.insert = "head"; -options.singleton = false; - -var update = __webpack_require__(/*! ../../style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js")(content, options); - -if (content.locals) { - module.exports = content.locals; -} - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js": -/*!****************************************************************************!*\ - !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***! - \****************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var stylesInDom = {}; - -var isOldIE = function isOldIE() { - var memo; - return function memorize() { - if (typeof memo === 'undefined') { - // Test for IE <= 9 as proposed by Browserhacks - // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805 - // Tests for existence of standard globals is to allow style-loader - // to operate correctly into non-standard environments - // @see https://github.com/webpack-contrib/style-loader/issues/177 - memo = Boolean(window && document && document.all && !window.atob); - } - - return memo; - }; -}(); - -var getTarget = function getTarget() { - var memo = {}; - return function memorize(target) { - if (typeof memo[target] === 'undefined') { - var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself - - if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) { - try { - // This will throw an exception if access to iframe is blocked - // due to cross-origin restrictions - styleTarget = styleTarget.contentDocument.head; - } catch (e) { - // istanbul ignore next - styleTarget = null; - } - } - - memo[target] = styleTarget; - } - - return memo[target]; - }; -}(); - -function listToStyles(list, options) { - var styles = []; - var newStyles = {}; - - for (var i = 0; i < list.length; i++) { - var item = list[i]; - var id = options.base ? item[0] + options.base : item[0]; - var css = item[1]; - var media = item[2]; - var sourceMap = item[3]; - var part = { - css: css, - media: media, - sourceMap: sourceMap - }; - - if (!newStyles[id]) { - styles.push(newStyles[id] = { - id: id, - parts: [part] - }); - } else { - newStyles[id].parts.push(part); - } - } - - return styles; -} - -function addStylesToDom(styles, options) { - for (var i = 0; i < styles.length; i++) { - var item = styles[i]; - var domStyle = stylesInDom[item.id]; - var j = 0; - - if (domStyle) { - domStyle.refs++; - - for (; j < domStyle.parts.length; j++) { - domStyle.parts[j](item.parts[j]); - } - - for (; j < item.parts.length; j++) { - domStyle.parts.push(addStyle(item.parts[j], options)); - } - } else { - var parts = []; - - for (; j < item.parts.length; j++) { - parts.push(addStyle(item.parts[j], options)); - } - - stylesInDom[item.id] = { - id: item.id, - refs: 1, - parts: parts - }; - } - } -} - -function insertStyleElement(options) { - var style = document.createElement('style'); - - if (typeof options.attributes.nonce === 'undefined') { - var nonce = true ? __webpack_require__.nc : undefined; - - if (nonce) { - options.attributes.nonce = nonce; - } - } - - Object.keys(options.attributes).forEach(function (key) { - style.setAttribute(key, options.attributes[key]); - }); - - if (typeof options.insert === 'function') { - options.insert(style); - } else { - var target = getTarget(options.insert || 'head'); - - if (!target) { - throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid."); - } - - target.appendChild(style); - } - - return style; -} - -function removeStyleElement(style) { - // istanbul ignore if - if (style.parentNode === null) { - return false; - } - - style.parentNode.removeChild(style); -} -/* istanbul ignore next */ - - -var replaceText = function replaceText() { - var textStore = []; - return function replace(index, replacement) { - textStore[index] = replacement; - return textStore.filter(Boolean).join('\n'); - }; -}(); - -function applyToSingletonTag(style, index, remove, obj) { - var css = remove ? '' : obj.css; // For old IE - - /* istanbul ignore if */ - - if (style.styleSheet) { - style.styleSheet.cssText = replaceText(index, css); - } else { - var cssNode = document.createTextNode(css); - var childNodes = style.childNodes; - - if (childNodes[index]) { - style.removeChild(childNodes[index]); - } - - if (childNodes.length) { - style.insertBefore(cssNode, childNodes[index]); - } else { - style.appendChild(cssNode); - } - } -} - -function applyToTag(style, options, obj) { - var css = obj.css; - var media = obj.media; - var sourceMap = obj.sourceMap; - - if (media) { - style.setAttribute('media', media); - } - - if (sourceMap && btoa) { - css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */"); - } // For old IE - - /* istanbul ignore if */ - - - if (style.styleSheet) { - style.styleSheet.cssText = css; - } else { - while (style.firstChild) { - style.removeChild(style.firstChild); - } - - style.appendChild(document.createTextNode(css)); - } -} - -var singleton = null; -var singletonCounter = 0; - -function addStyle(obj, options) { - var style; - var update; - var remove; - - if (options.singleton) { - var styleIndex = singletonCounter++; - style = singleton || (singleton = insertStyleElement(options)); - update = applyToSingletonTag.bind(null, style, styleIndex, false); - remove = applyToSingletonTag.bind(null, style, styleIndex, true); - } else { - style = insertStyleElement(options); - update = applyToTag.bind(null, style, options); - - remove = function remove() { - removeStyleElement(style); - }; - } - - update(obj); - return function updateStyle(newObj) { - if (newObj) { - if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) { - return; - } - - update(obj = newObj); - } else { - remove(); - } - }; -} - -module.exports = function (list, options) { - options = options || {}; - options.attributes = typeof options.attributes === 'object' ? options.attributes : {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of '; - if (inertBodyElement.querySelector && inertBodyElement.querySelector('svg img')) { - // We just hit the Firefox bug - which prevents the inner img JS from being sanitized - // so use the DOMParser strategy, if it is available. - // If the DOMParser is not available then we are not in Firefox (Server/WebWorker?) so we - // fall through to the default strategy below. - if (isDOMParserAvailable()) { - this.getInertBodyElement = this.getInertBodyElement_DOMParser; - return; - } - } - // None of the bugs were hit so it is safe for us to use the default InertDocument strategy - this.getInertBodyElement = this.getInertBodyElement_InertDocument; - } - /** - * Use XHR to create and fill an inert body element (on Safari 10.1) - * See - * https://github.com/cure53/DOMPurify/blob/a992d3a75031cb8bb032e5ea8399ba972bdf9a65/src/purify.js#L439-L449 - * @private - * @param {?} html - * @return {?} - */ - getInertBodyElement_XHR(html) { - // We add these extra elements to ensure that the rest of the content is parsed as expected - // e.g. leading whitespace is maintained and tags like `` do not get hoisted to the - // `` tag. - html = '' + html + ''; - try { - html = encodeURI(html); - } - catch (_a) { - return null; - } - /** @type {?} */ - const xhr = new XMLHttpRequest(); - xhr.responseType = 'document'; - xhr.open('GET', 'data:text/html;charset=utf-8,' + html, false); - xhr.send(undefined); - /** @type {?} */ - const body = xhr.response.body; - body.removeChild((/** @type {?} */ (body.firstChild))); - return body; - } - /** - * Use DOMParser to create and fill an inert body element (on Firefox) - * See https://github.com/cure53/DOMPurify/releases/tag/0.6.7 - * - * @private - * @param {?} html - * @return {?} - */ - getInertBodyElement_DOMParser(html) { - // We add these extra elements to ensure that the rest of the content is parsed as expected - // e.g. leading whitespace is maintained and tags like `` do not get hoisted to the - // `` tag. - html = '' + html + ''; - try { - /** @type {?} */ - const body = (/** @type {?} */ (new ((/** @type {?} */ (window))) - .DOMParser() - .parseFromString(html, 'text/html') - .body)); - body.removeChild((/** @type {?} */ (body.firstChild))); - return body; - } - catch (_a) { - return null; - } - } - /** - * Use an HTML5 `template` element, if supported, or an inert body element created via - * `createHtmlDocument` to create and fill an inert DOM element. - * This is the default sane strategy to use if the browser does not require one of the specialised - * strategies above. - * @private - * @param {?} html - * @return {?} - */ - getInertBodyElement_InertDocument(html) { - // Prefer using