Page MenuHomec4science

No OneTemporary

File Metadata

Created
Mon, Jun 23, 12:35
This file is larger than 256 KB, so syntax highlighting was skipped.
diff --git a/nietzsche-beta-app/dist/nietzsche-beta-app/main-es2015.js b/nietzsche-beta-app/dist/nietzsche-beta-app/main-es2015.js
index a58b57f..0089cfc 100644
--- a/nietzsche-beta-app/dist/nietzsche-beta-app/main-es2015.js
+++ b/nietzsche-beta-app/dist/nietzsche-beta-app/main-es2015.js
@@ -1,8751 +1,8751 @@
(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";
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/app.component.html":
/*!**************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/app.component.html ***!
\**************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<div [class]=\"theme\">\n <mat-card *ngIf=\"!fullScreen || fullScreen !== 'true'\">\n <mat-select placeholder=\"Standard Theme\"\n disabled=\"true\"\n [(ngModel)]=\"theme\"\n (change) = \"onThemeChange()\">\n <mat-option value=\"standard-theme\">Beta-Version {{version}}</mat-option>\n <mat-option value=\"green-theme\">Green</mat-option>\n </mat-select>\n </mat-card>\n <mat-card *ngIf=\"!fullScreen || fullScreen !== 'true'\">\n <h1>Der sp&auml;te Nietzsche</h1>\n </mat-card>\n <app-main-menu-component></app-main-menu-component>\n <router-outlet></router-outlet>\n <!--<div style = \"padding: 60px;\"><app-bergwerke></app-bergwerke></div>-->\n</div>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/content-view-tab-component/content-view-tab-component.component.html":
/*!****************************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/content-view-tab-component/content-view-tab-component.component.html ***!
\****************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<mat-drawer-container [hasBackdrop]= false [autosize]=\"true\">\n <mat-drawer [mode]=\"navBarOpenMode\" [disableClose]=\"true\" [opened]=\"navBarOpenState\">\n <app-navigation-list-component></app-navigation-list-component>\n </mat-drawer>\n <mat-drawer-content>\n <div>\n <mat-card *ngIf=\"!fullscreen && queryParams\">\n <nav mat-tab-nav-bar>\n <a mat-tab-link\n *ngFor=\"let link of navTabLinks\"\n [routerLink]=\"link.link\"\n (click)=\"this.setActiveLink(link.link)\"\n [queryParams]=\"queryParams\"\n [active]=\"link.isActive\">\n {{link.label}}\n </a>\n </nav>\n </mat-card>\n <router-outlet></router-outlet>\n </div>\n </mat-drawer-content>\n</mat-drawer-container>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/home.component.html":
/*!***************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/home.component.html ***!
\***************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = ("<mat-card>\n <mat-card-title>Der sp&auml;te Nietzsche. Digitale Manuskriptedition</mat-card-title>\n <mat-card-content>\n <div>Herausgegeben von Beat Röllin, Dominique Steinbach, Christian Steiner, René Stockmar und Hubert Thüring</div>\n <div>Transkription und philologischer Kommentar: Thomas Riebe, Beat Röllin und René Stockmar unter Mitarbeit von Marie-Luise Haase und Michael Kohlenbach</div>\n <div>Digitale Edition: Dominique Steinbach und Christian Steiner unter Mitarbeit von Eric Erhardt und Myriam Schmidt</div>\n </mat-card-content>\n <mat-card-content>\n <div>Gefördert durch den Schweizerischen Nationalfonds (<a href=\"http://www.snf.ch/de/Seiten/default.aspx\">SNF</a>)</div>\n <div>Unterstützt durch das Projekt \"Nationale Infrastruktur für Editionen - Infrastructure nationale pour les éditions\" (<a href=\"https://www.nie-ine.ch/\">NIE - INE</a>)</div>\n\n <div class=\"skip\">Copyright <a href=\"https://www.unibas.ch\">Universität Basel</a></div>\n </mat-card-content>\n <mat-card-content>\n <h3>Hinweis zur Beta-Version</h3>\n <div>Bitte nehmen Sie zur Kenntnis, dass die digitale Edition sowie die darin präsentierten Inhalte noch in Entwicklung stehen und dass\n <ul>\n <li>die Texte und Bilder noch nicht persistent zitierbar sind </li>\n <li>die Menüführung oder Features/Funktionalitäten im Verlauf der weiteren Entwicklung ändern können</li>\n <li>Browserkompatibilität noch nicht übergreifend gegeben ist; wir empfehlen die Verwendung von Mozilla Firefox oder Google Chromium in den aktuellen Versionen </li>\n <li>erst die Daten zu <a [routerLink]=\"manuscriptLink\" [queryParams]=\"mpXIVParam\">Mp XIV</a> eingehend erfasst und &uuml;berpr&uuml;ft wurden. \n <!--Dagegen befinden sich die Daten zu <a [routerLink]=\"manuscriptLink\" [queryParams]=\"mpXVParam\">Mp XV</a> erst in einem fr&uuml;hen Bearbeitungsstadium. -->\n </li>\n </ul>\n </div>\n </mat-card-content>\n <mat-card-content>\n <img height=\"52\" width=\"319\" src=\"http://www.snf.ch/_layouts/15/Snf.Internet/Images/logo_de.gif\"/>\n <img class=\"second\" height=\"52\" width=\"164\" src=\"https://www.unibas.ch/dam/jcr:9a8e9aff-decd-45a7-bd46-284a3da3f86e/UniBas_Logo_DE_Schwarz_RGB_65.jpg\"/>\n <!--<img class=\"second\" height=\"52\" width=\"164\" src=\"/assets/uni-basel-logo.svg\"/>-->\n </mat-card-content>\n\n</mat-card>\n");
+/* harmony default export */ __webpack_exports__["default"] = ("<mat-card>\n <mat-card-title>Der sp&auml;te Nietzsche. Digitale Manuskriptedition</mat-card-title>\n <mat-card-content>\n <div>Herausgegeben von Beat Röllin, Dominique Steinbach, Christian Steiner, René Stockmar und Hubert Thüring</div>\n <div class=\"skip\">Transkription und philologischer Kommentar: Thomas Riebe, Beat Röllin und René Stockmar unter Mitarbeit von Marie-Luise Haase und Michael Kohlenbach</div>\n <div>Digitale Edition: Dominique Steinbach und Christian Steiner unter Mitarbeit von Eric Erhardt und Myriam Schmidt</div>\n <div>Projektleitung: Hubert Thüring</div>\n </mat-card-content>\n <mat-card-content>\n <div>Gefördert durch den Schweizerischen Nationalfonds (<a href=\"http://www.snf.ch/de/Seiten/default.aspx\">SNF</a>)</div>\n <div>Unterstützt durch das Projekt \"Nationale Infrastruktur für Editionen - Infrastructure nationale pour les éditions\" (<a href=\"https://www.nie-ine.ch/\">NIE - INE</a>)</div>\n\n <div class=\"skip\">Copyright <a href=\"https://www.unibas.ch\">Universität Basel</a></div>\n </mat-card-content>\n <mat-card-content>\n <h3>Hinweis zur Beta-Version</h3>\n <div>Bitte nehmen Sie zur Kenntnis, dass die digitale Edition sowie die darin präsentierten Inhalte noch in Entwicklung stehen und dass\n <ul class=\"hint\">\n <li>die Texte und Bilder noch nicht persistent zitierbar sind </li>\n <li>die Menüführung oder Features/Funktionalitäten im Verlauf der weiteren Entwicklung ändern können</li>\n <li>Browserkompatibilität noch nicht übergreifend gegeben ist; wir empfehlen die Verwendung von Mozilla Firefox in einer aktuellen Version (zur\n Zeit k&ouml;nnen die Faksimiles erst &uuml;ber eine unsichere HTTP-Verbindung geladen werden, deshalb zeigen Browser eine \n <a target=\"_new\" href=\"https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content\">\"Mixed content\"-Warnung</a> an oder blockieren diese Inhalte; lesen\n Sie <a href=\"https://experienceleague.adobe.com/docs/target/using/experiences/vec/troubleshoot-composer/mixed-content.html?lang=de\" target=\"_new\">hier</a>, \n wie die blockierten Inhalte dieser Seite angezeigt werden k&ouml;nnen)</li>\n <li>erst die Daten zu <a [routerLink]=\"manuscriptLink\" [queryParams]=\"mpXIVParam\">Mp XIV</a> eingehend erfasst und &uuml;berpr&uuml;ft wurden. \n <!--Dagegen befinden sich die Daten zu <a [routerLink]=\"manuscriptLink\" [queryParams]=\"mpXVParam\">Mp XV</a> erst in einem fr&uuml;hen Bearbeitungsstadium. -->\n </li>\n </ul>\n </div>\n </mat-card-content>\n <mat-card-content>\n <img height=\"52\" width=\"319\" src=\"/assets/logo_de.gif\"/>\n <img class=\"second\" height=\"52\" width=\"164\" src=\"https://www.unibas.ch/dam/jcr:9a8e9aff-decd-45a7-bd46-284a3da3f86e/UniBas_Logo_DE_Schwarz_RGB_65.jpg\"/>\n <!--<img class=\"second\" height=\"52\" width=\"164\" src=\"/assets/uni-basel-logo.svg\"/>-->\n </mat-card-content>\n\n</mat-card>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/impressum.component.html":
/*!********************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/impressum.component.html ***!
\********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<mat-card>\n <mat-card-title>Kontakt</mat-card-title>\n <mat-card-content>\n <div><a href=\"mailto:hubert.thuering@unibas.ch\">Prof. Dr. Hubert Thüring</a></div>\n <div><a href=\"https://germanistik.philhist.unibas.ch/de/forschung/forschungsprojekte/ndl/der-spaete-nietzsche/\">Nietzsche-Edition</a></div>\n <div> Deutsches Seminar</div>\n <div>Universität Basel</div>\n <div>Nadelberg 4</div>\n <div>4051 Basel</div>\n <div> Tel.: +41 (0)61 207 34 29</div>\n </mat-card-content>\n</mat-card>\n<mat-card>\n <mat-card-title>Rechtliche Hinweise</mat-card-title>\n <mat-card-content>\n <mat-card-subtitle>Haftungsbeschränkung</mat-card-subtitle>\n <div class=\"text\"><!--Die Inhalte dieser Website werden mit größtmöglicher Sorgfalt erstellt. Der Anbieter übernimmt jedoch keine Gewähr für die Richtigkeit, Vollständigkeit und Aktualität der bereitgestellten Rahmeninhalte, die nicht i.e.S. Bestandteil der Edition sind.--> Die Nutzung der Inhalte der Website erfolgt auf eigene Gefahr der Nutzer*in. Mit der reinen Nutzung der Website der Anbieter*in kommt keinerlei Vertragsverhältnis zwischen der Nutzer*in und der Anbieter*in zustande.</div>\n </mat-card-content>\n <mat-card-content>\n <h3>Urheberrecht und Lizenz</h3>\n <div class=\"subcontent\">\n <mat-card-subtitle>Transkription und Daten der digitalen Edition</mat-card-subtitle>\n <img src=\"/assets/by.svg\"/>\n <div class=\"text\">Die Transkriptionen und Daten der digitalen Edition sind in ihrem ganzen Umfang frei zugänglich und dürfen zu den Bedingungen der Creative Commons Public Licence „Namensnennung“, Version 4.0 (<a href=\"https://creativecommons.org/licenses/by/4.0/deed.de\">CC BY 4.0</a>) weitergegeben werden. Das Copyright darauf hat die <a href=\"https://www.unibas.ch\">Universit&auml;t Basel</a>.</div>\n </div>\n <div>\n <mat-card-subtitle>Faksimiles</mat-card-subtitle>\n <img src=\"/assets/by-nc-nd.svg\"/>\n <div class=\"text\">Die Faksimiles werden von <a target=\"_new\" href=\"http://www.nietzschesource.org\">nietzschesource.org</a> gehostet und werden hier unver&auml;ndert dargestellt. Sie sind veröffentlicht unter der Creative Commons Public License „Namensnennung, Nicht kommerziell, Keine Bearbeitungen”, Version 4.0 <a href=\"http://creativecommons.org/licenses/by-nc-nd/4.0/deed.de\">(CC BY-NC-ND 4.0)</a>.</div>\n </div>\n </mat-card-content>\n</mat-card>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/lib/ngx-mat-standoff-markup.component.html":
/*!**************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/lib/ngx-mat-standoff-markup.component.html ***!
\**************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<span *ngIf=\"templateSegments\">\n <link *ngIf=\"cssDef.type === 'url'\" rel=\"stylesheet\" type=\"text/css\" [href]='cssUrl'>\n <span [style]=\"cssDef.type === 'text' ? this.sanitizer.bypassSecurityTrustStyle(cssDef.css) : ''\"\n [attr.id]=\"parentId\" [class]=\"parentClass\">\n <span *ngFor=\"let segment of templateSegments\"\n (mousedown)=\"setSelectionStartIndex(segment.sStartIndex)\"\n (mouseup)=\"setSelectedText(segment.sStartIndex)\">\n <span [ngStyle] = \"segment.cssStyleTag\"\n [ngClass] = \"segment.cssClass\"\n (click)=\"onSegmentClick(segment)\">{{segment.sText}}</span>\n </span>\n </span>\n</span>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/main-menu-component/main-menu-component.component.html":
/*!**************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/main-menu-component/main-menu-component.component.html ***!
\**************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<mat-toolbar *ngIf=\"!fullScreen || fullScreen !== 'true'\">\n <div>\n <button mat-icon-button mat-button [routerLink]=\"homeLink\"\n routerLinkActive=\"mat-accent\"\n color=\"primary\"\n aria-label=\"Go to landing page.\">\n <mat-icon>home</mat-icon>\n </button>\n <button mat-button [routerLink]=\"contentViewLink\" [queryParams]=\"queryParams\" routerLinkActive=\"mat-accent\" color=\"primary\">Digitale Edition</button>\n <button mat-button [disabled]= true [routerLink] = \"['doku']\" routerLinkActive=\"mat-accent\" color=\"primary\">Dokumentation</button>\n <button mat-button [disabled]= true [routerLink] = \"['']\" routerLinkActive=\"mat-accent\" color=\"primary\">Daten und Endpunkte</button>\n <button mat-button [disabled]= true [routerLink]=\"projectLink\" [queryParams]=\"queryParams\" routerLinkActive=\"mat-accent\" color=\"primary\">Projekt</button>\n <button mat-button [routerLink]=\"impressumLink\" [queryParams]=\"queryParams\" routerLinkActive=\"mat-accent\" color=\"primary\">Impressum</button>\n </div>\n</mat-toolbar>\n<router-outlet></router-outlet>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/manuscript-view-component/manuscript-view-component.component.html":
/*!**************************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/manuscript-view-component/manuscript-view-component.component.html ***!
\**************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<tln-manuscript-view></tln-manuscript-view>\n\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/navigation-list-component/navigation-list-component.component.html":
/*!**************************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/navigation-list-component/navigation-list-component.component.html ***!
\**************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<div class=\"fixed-nav-container\">\n <mat-toolbar>Navigation</mat-toolbar>\n <div *ngIf=\"navTrees && navTabIndex !== -1\">\n <mat-tab-group [selectedIndex]=\"navTabIndex\" (selectedTabChange)=\"changeNavTreeViaRoute($event.index)\">\n <mat-tab\n *ngFor=\"let tree of navigationTreeDefs\"\n label={{tree.label}}>\n </mat-tab>\n </mat-tab-group>\n </div>\n</div>\n <div id=\"navlist\" class=\"navlist-container\" *ngIf=\"navTrees && navTabIndex !== -1\">\n <mat-nav-list *ngIf=\"navTrees && navTrees[navTabIndex]\">\n <mat-list-item *ngFor=\"let item of navTrees[navTabIndex].entries\"\n (click)=\"onSelectNavItem(item)\"\n [id] = \"item.tlnEntity.id\"\n [class.active-item]=\"item.tlnEntity.id === navTrees[navTabIndex].selectedItem\">\n <mat-card class = \"card-item\">\n <mat-card-header>\n <mat-card-title>\n <span>{{item.tlnEntity.label}}</span>\n </mat-card-title>\n <mat-card-subtitle *ngIf=\"item.tlnEntity.description\">GSA-Signatur {{item.tlnEntity.description}}</mat-card-subtitle>\n <mat-card-subtitle *ngIf=\"navTrees[navTabIndex].parentLabel\">{{navTrees[navTabIndex].parentLabel}}</mat-card-subtitle>\n <img mat-card-avatar *ngIf=\"item.avatar\" [src]=\"item.avatar\"/>\n </mat-card-header>\n <mat-card-content>\n <img class=\"thumbnail\" *ngIf=\"item.thumb\" [src]=\"item.thumb\"/>\n <img class=\"thumbnail\" *ngIf=\"item.svg\" [src]=\"item.svg\"/>\n </mat-card-content>\n </mat-card>\n </mat-list-item>\n </mat-nav-list>\n </div>\n\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/page-view-wrapper-component/page-view-wrapper.component.html":
/*!********************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/page-view-wrapper-component/page-view-wrapper.component.html ***!
\********************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<div #tooltipContainer>\n <tln-viewer-navigation [setMaxHeightTo]=\"pageView\"></tln-viewer-navigation>\n <div id=\"content\">\n <tln-page-view #pageView></tln-page-view>\n </div>\n <!--TODO: queryParams.fullscreen is string, not boolean! -->\n <tool-tip [fullscreen]=\"queryParams.fullscreen == 'true'\" [menuOffsetPosition]=\"{x: 0, y: 86 }\" [container]=\"tooltipContainer\"></tool-tip>\n</div>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.html":
/*!**************************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.html ***!
\**************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<div *ngIf=\"copyright\">\n <h4 mat-subheader>Copyright Information:</h4>\n <div [innerHTML]=\"copyright.text\"></div>\n <div *ngIf=\"copyright.originalUrl\">URL: <a target=\"_new\" [href]=\"copyright.originalUrl\">{{copyright.originalUrl}}</a></div>\n <div> Lizenz: \n <a *ngIf=\"copyright.licenseTextUrl\" target=\"_new\" [href]=\"copyright.licenseTextUrl\">{{copyright.license}} </a>\n <span *ngIf=\"!copyright.licenseTextUrl\">{{copyright.license}}</span>\n </div>\n</div>\n\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/copyright/copyright.component.html":
/*!****************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/copyright/copyright.component.html ***!
\****************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<svg version=\"1.0\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0\" y=\"0\"\n [attr.width]=\"dimension\" [attr.height]=\"dimension\" viewBox=\"5.5 -3.5 64 64\"\n (mouseenter)=\"setHighlight(true)\" (mouseleave)=\"setHighlight(false)\" (click)=\"showCopyrightInformation($event)\">\n <svg:g>\n <svg:path id=\"cc\" [style.opacity]=\"highlight ? '0.8' : '0.2'\" d=\"M37.441-3.5c8.951,0,16.572,3.125,22.857,9.372c3.008,3.009,5.295,6.448,6.857,10.314\n c1.561,3.867,2.344,7.971,2.344,12.314c0,4.381-0.773,8.486-2.314,12.313c-1.543,3.828-3.82,7.21-6.828,10.143\n c-3.123,3.085-6.666,5.448-10.629,7.086c-3.961,1.638-8.057,2.457-12.285,2.457s-8.276-0.808-12.143-2.429\n c-3.866-1.618-7.333-3.961-10.4-7.027c-3.067-3.066-5.4-6.524-7-10.372S5.5,32.767,5.5,28.5c0-4.229,0.809-8.295,2.428-12.2\n c1.619-3.905,3.972-7.4,7.057-10.486C21.08-0.394,28.565-3.5,37.441-3.5z M37.557,2.272c-7.314,0-13.467,2.553-18.458,7.657\n c-2.515,2.553-4.448,5.419-5.8,8.6c-1.354,3.181-2.029,6.505-2.029,9.972c0,3.429,0.675,6.734,2.029,9.913\n c1.353,3.183,3.285,6.021,5.8,8.516c2.514,2.496,5.351,4.399,8.515,5.715c3.161,1.314,6.476,1.971,9.943,1.971\n c3.428,0,6.75-0.665,9.973-1.999c3.219-1.335,6.121-3.257,8.713-5.771c4.99-4.876,7.484-10.99,7.484-18.344\n c0-3.543-0.648-6.895-1.943-10.057c-1.293-3.162-3.18-5.98-5.654-8.458C50.984,4.844,44.795,2.272,37.557,2.272z M37.156,23.187\n l-4.287,2.229c-0.458-0.951-1.019-1.619-1.685-2c-0.667-0.38-1.286-0.571-1.858-0.571c-2.856,0-4.286,1.885-4.286,5.657\n c0,1.714,0.362,3.084,1.085,4.113c0.724,1.029,1.791,1.544,3.201,1.544c1.867,0,3.181-0.915,3.944-2.743l3.942,2\n c-0.838,1.563-2,2.791-3.486,3.686c-1.484,0.896-3.123,1.343-4.914,1.343c-2.857,0-5.163-0.875-6.915-2.629\n c-1.752-1.752-2.628-4.19-2.628-7.313c0-3.048,0.886-5.466,2.657-7.257c1.771-1.79,4.009-2.686,6.715-2.686\n C32.604,18.558,35.441,20.101,37.156,23.187z M55.613,23.187l-4.229,2.229c-0.457-0.951-1.02-1.619-1.686-2\n c-0.668-0.38-1.307-0.571-1.914-0.571c-2.857,0-4.287,1.885-4.287,5.657c0,1.714,0.363,3.084,1.086,4.113\n c0.723,1.029,1.789,1.544,3.201,1.544c1.865,0,3.18-0.915,3.941-2.743l4,2c-0.875,1.563-2.057,2.791-3.541,3.686\n c-1.486,0.896-3.105,1.343-4.857,1.343c-2.896,0-5.209-0.875-6.941-2.629c-1.736-1.752-2.602-4.19-2.602-7.313\n c0-3.048,0.885-5.466,2.658-7.257c1.77-1.79,4.008-2.686,6.713-2.686C51.117,18.558,53.938,20.101,55.613,23.187z\"/>\n </svg:g>\n</svg>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/margin-field/line-reference/line-reference.component.html":
/*!***************************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/margin-field/line-reference/line-reference.component.html ***!
\***************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<svg version=\"1.0\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0\" y=\"0\"\n viewBox=\"0 0 25 50\"\n (mouseenter)=\"showReference(true, $event)\" (mouseleave)=\"showReference(false, $event)\" (click)=\"changeLocation()\">\n <defs>\n <marker id=\"arrowhead\" markerWidth=\"10\" markerHeight=\"10\" refX=\"0\" refY=\"2\" orient=\"auto\">\n <polygon points=\"0 0, 6 2, 0 4\"/>\n </marker>\n <line id=\"arrow\" x1=\"0\" x2=\"15\" y1=\"2\" y2=\"2\" stroke-width=\"1\" marker-end=\"url(#arrowhead)\"/>\n </defs>\n <rect x=\"0\" y=\"0\" height=\"100\" width=\"200\" class=\"mouse-pointer\" [ngClass]=\"{ 'unhighlighted' : !highlighted, 'highlighted': highlighted }\"/>\n <use x=\"0\" y=\"3\" class=\"mouse-pointer\" xlink:href=\"#arrow\" stroke=\"black\"/>\n</svg>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/margin-field/margin-field.component.html":
/*!**********************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/margin-field/margin-field.component.html ***!
\**********************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<svg xmlns:svg=\"http://www.w3.org/2000/svg\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xhtml=\"http://www.w3.org/1999/xhtml\"\n [attr.viewBox]=\"viewBox\" [attr.height]=\"margin_height*local_zoom*zoomFactor\" [attr.width]=\"margin_width*local_zoom*zoomFactor\"\n class = 'marginfield'>\n <svg:g *ngFor=\"let line of lines\">\n <foreignObject *ngIf=\"showReference == 'from' && line.continuesFrom\" [attr.x]=\"0\" [attr.y]=\"line.bottom-line_height+1\" [attr.height]=\"line_height\" [attr.width]=\"2*line_length\">\n <xhtml:div><line-reference [showReference]=\"showReference\" [line]=\"line\"></line-reference></xhtml:div>\n </foreignObject>\n <svg:g *ngIf=\"line.number % 2 == 0 || \n ((getHoverStatus(line) == SELECTED_STATUS || getHoverStatus(line) == HOVERED_STATUS) \n && ((showReference != 'to' && line.continuesFrom) || (showReference == 'to' && line.continuesTo)))\">\n <svg:rect [attr.x]=\"line_x-1\" [attr.y]=\"line.bottom-line_height+1\" \n [attr.height]=\"line_height\" [attr.width]=\"line.number > 9 ? line_length + line_length/2 : line_length\"\n [ngStyle]=\"assignStyle(line, hoveredWord, hoveredLine, getHoverStatus(line))\"\n [ngClass]=\"{ \n 'marginfield unhighlighted': getHoverStatus(line) != HOVERED_STATUS,\n 'marginfield highlight': getHoverStatus(line) == HOVERED_STATUS }\" > </svg:rect>\n <svg:text class=\"text\" [attr.x]=\"line_x\" [attr.y]=\"line.bottom\" [container]=\"container\"\n [interactedObject]=\"line\">{{line.number}}</svg:text>\n </svg:g>\n <foreignObject *ngIf=\"showReference == 'to' && line.continuesTo\" [attr.x]=\"line_x+line_length\" [attr.y]=\"line.bottom-line_height+1\" \n [attr.height]=\"line_height\" [attr.width]=\"2*line_length\">\n <xhtml:div><line-reference [showReference]=\"showReference\" [line]=\"line\"></line-reference></xhtml:div>\n </foreignObject>\n </svg:g>\n</svg>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/page-view.component.html":
/*!******************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/page-view.component.html ***!
\******************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<div id=\"page\" *ngIf=\"first_image\" [style.height.px]=\"max_height\" [ngStyle]=\"{ 'overflow': hasColumnStyle() ? 'auto': 'hidden' }\">\n <div #firstContainer [ngClass]=\"{ 'inline': hasColumnStyle(), 'breakline': !hasColumnStyle()}\">\n <div id=\"margin\">\n <margin-field [text_field]=\"first_image.text_field\" [lines]=\"first_lines\" [assignStyle]=\"assignStyle\"\n [container]=\"firstContainer\" [zoomFactor]=\"zoomFactor\" [max_height]=\"max_height\" \n [max_width]=\"max_width\"\n [selectedLines]=\"selectedLines\" [showReference]=\"showReferenceLeft\"></margin-field>\n </div>\n <div class=\"gap\"></div>\n <div id=\"textfield\">\n <text-field [identity]=\"first_textfield_id\" [container]=\"firstContainer\"\n [image]=\"first_image\" [findText]=\"findText\" [words]=\"first_words\" [zoomFactor]=\"zoomFactor\" \n [preferPrimaryUrl]=\"preferPrimaryUrl\" [max_height]=\"max_height\" \n [max_width]=\"max_width\" \n [selectedWords]=\"selectedWords\" [selectedLines]=\"selectedLines\"\n [foreign_texts]=\"first_foreign_texts\" [configuration]=\"configuration\"\n [assignClass]=\"assignClass\" [assignStyle]=\"assignStyle\"></text-field>\n </div>\n <div class=\"gap\" *ngIf=\"!(second_image && second_lines) || !hasColumnStyle()\"></div>\n <div id=\"margin\" *ngIf=\"!(second_image && second_lines) || !hasColumnStyle()\">\n <margin-field [text_field]=\"first_image.text_field\" [lines]=\"first_lines\" [assignStyle]=\"assignStyle\"\n [max_width]=\"max_width\" [showReference]=\"showReferenceRight\"\n [selectedLines]=\"selectedLines\" [zoomFactor]=\"zoomFactor\" [max_height]=\"max_height\"></margin-field>\n </div>\n </div>\n <div #secondContainer [ngClass]=\"{ 'inline': hasColumnStyle(), 'breakline': !hasColumnStyle()}\">\n <div class=\"gap\"></div>\n <div id=\"margin\" *ngIf=\"second_image && second_lines && !hasColumnStyle()\">\n <margin-field [text_field]=\"second_image.text_field\" [lines]=\"second_lines\" [assignStyle]=\"assignStyle\"\n [max_width]=\"max_width\" \n [container]=\"secondContainer\" [zoomFactor]=\"zoomFactor\" [max_height]=\"max_height\"\n [selectedLines]=\"selectedLines\" [showReference]=\"showReferenceLeft\"></margin-field>\n </div>\n <div id=\"textfield\" *ngIf=\"second_image && second_words\">\n <text-field [identity]=\"second_textfield_id\" [container]=\"secondContainer\"\n [image]=\"second_image\" [findText]=\"findText\" [words]=\"second_words\" [zoomFactor]=\"zoomFactor\"\n [max_width]=\"max_width\"\n [preferPrimaryUrl]=\"preferPrimaryUrl\" [max_height]=\"max_height\" \n [selectedWords]=\"selectedWords\" [selectedLines]=\"selectedLines\"\n [foreign_texts]=\"second_foreign_texts\" [configuration]=\"configuration\"\n [assignClass]=\"assignClass\" [assignStyle]=\"assignStyle\"></text-field>\n </div>\n <div class=\"gap\"></div>\n <div id=\"margin\" *ngIf=\"second_image && second_lines\">\n <margin-field [text_field]=\"second_image.text_field\" [lines]=\"second_lines\" [assignStyle]=\"assignStyle\"\n [max_width]=\"max_width\" [showReference]=\"showReferenceRight\"\n [selectedLines]=\"selectedLines\" [zoomFactor]=\"zoomFactor\" [max_height]=\"max_height\"></margin-field>\n </div>\n </div>\n</div>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/textfield-component/textfield.component.html":
/*!**************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/textfield-component/textfield.component.html ***!
\**************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<svg xmlns:svg=\"http://www.w3.org/2000/svg\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xhtml=\"http://www.w3.org/1999/xhtml\"\n [attr.viewBox]=\"viewBox\" [attr.height]=\"image_height*local_zoom*zoomFactor\" [attr.width]=\"image_width*local_zoom*zoomFactor\"\n class = 'textfield' [attr.transform]='imageSpec.transform'>\n <svg:g *ngIf=\"image\">\n <!--\n 'xlink:href' is deprecated in SVG2 (see https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/xlink:href).\n However, some browsers do not support 'href', therefore we use both 'xlink:href' and 'href'.\n -->\n <image [attr.xlink:href]=\"imageSpec.URL\" [attr.href]=\"imageSpec.URL\" (load)=\"msg(imageSpec.URL)\" (error)=\"updateImageProperties(imageSpec.secondaryURL)\"\n [attr.x]=\"imageSpec.x\" [attr.y]=\"imageSpec.y\" [attr.height]=\"imageSpec.height\" [attr.width]=\"imageSpec.width\"/>\n <foreignObject *ngIf=\"image.copyright\" [ngStyle]=\"getCopyrightPosition((local_zoom*zoomFactor > 1) ? 32 : 32/(local_zoom*zoomFactor))\" \n [attr.height]=\"(local_zoom*zoomFactor > 1) ? 32 : 32/(local_zoom*zoomFactor)\" \n [attr.width]=\"(local_zoom*zoomFactor > 1) ? 32 : 32/(local_zoom*zoomFactor)\">\n <xhtml:div><copyright [copyright]=\"image.copyright\" [dimension]=\"32/(local_zoom*zoomFactor)\"></copyright></xhtml:div>\n </foreignObject>\n </svg:g>\n <svg:g *ngFor=\"let word of words\">\n <svg:rect [interactedObject]=\"word\" [identity]=\"identity\" [container]=\"container\"\n [ngStyle]=\"assignStyle(word, hoveredWord, hoveredLine, getHoverStatus(word))\"\n [ngClass]=\"assignClass(word)\"\n [attr.x]=\"word.left\" [attr.y]=\"word.top\" [attr.height]=\"word.height\" [attr.width]=\"word.width\" [attr.transform]=\"word.transform\">\n <title *ngIf=\"!useExtendedTooltip && word\">{{ word.edited_text != null ? '> ' + word.edited_text : word.text }}</title>\n </svg:rect>\n <svg:g *ngIf=\"word.deletion_path\">\n <path #pathRef [ngClass]=\"assignClass(word, pathRef.localName)\" [attr.d]=\"word.deletion_path\"/>\n </svg:g>\n </svg:g>\n <svg:g *ngFor=\"let foreignText of foreign_texts\">\n <svg:rect [interactedObject]=\"foreignText\"\n [ngStyle]=\"assignStyle(foreignText, hoveredWord, hoveredLine, getHoverStatus(foreignText))\"\n [ngClass]=\"assignClass(foreignText)\"\n [attr.x]=\"foreignText.left\" [attr.y]=\"foreignText.top\" [attr.height]=\"foreignText.height\" [attr.width]=\"foreignText.width\" [attr.transform]=\"foreignText.transform\">\n <title *ngIf=\"!useExtendedTooltip && foreignText\">{{foreignText.text}}, {{ foreignText.pen }}</title>\n </svg:rect>\n </svg:g>\n</svg>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/project.component.html":
/*!******************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/project.component.html ***!
\******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<mat-card>\n <mat-card-title>Das Editionsprojekt „Der späte Nietzsche“</mat-card-title>\n <mat-card-content>\n <div class=\"text\"> Das deutsch-schweizerische Editionsprojekt „Der späte\n Nietzsche“ veröffentlicht Friedrich Nietzsches späten&nbsp;Nachlass erstmals\n vollständig und manuskriptgetreu. Die Manuskriptedition erscheint seit 2001\n in der von Giorgio Colli und Mazzino Montinari begründeten Kritischen\n Gesamtausgabe der Werke als neunte Abteilung (KGW IX).&nbsp;Die Publikation der\n noch ausstehenden sp&auml;ten Manuskripte aus den Archivmappen (Mp\n XIV-XVIII) erfolgt zusätzlich in <i>dieser</i> an der Universität Basel\n entwickelten und betreuten und durch den SNF gef&ouml;rderten digitalen\n Edition.</div> <div class=\"text\">Mit der differenzierten Transkription und\n digitalen Faksimilierung der Handschriften sowie einem editorischen\n Nachbericht schließt KGW IX die Edition und Kommentierung des späten\n Nachlasses in KGW ab. Vorrangige Absicht ist es, die Manuskripte in ihrer\n Gesamtheit zu dokumentieren und den typischen Notatcharakter der\n Aufzeichnungen aufzuzeigen. Statt in Form geglätteter, linearer Lesetexte\n einen falsch-eindeutigen Text zu bieten, werden in einer diplomatischen\n Umschrift alle Korrekturvorgänge, Streichungen,&nbsp;späteren\n Überarbeitungen etc. wiedergegeben.&nbsp;Und statt die Aufzeichnungen in\n eine chronologische Ordnung zu zwängen, die sich in vielen Fällen gar nicht\n ermitteln lässt und darum immer auch editorisch willkürlich bleibt, wird die\n ursprüngliche topologische Anordnung beibehalten. Die Manuskriptedition\n ermöglicht dadurch neue Einsichten in den Schreibprozess und die Textgenese\nbeim späten Nietzsche.</div>\n <div class=\"text\">In der Onlineausgabe werden die Manuskripte mit sämtlichen\n editorischen Informationen sowohl als Faksimile wie auch in der\n differenzierten Transkription je einzeln und in synoptischer Darstellung\n offen zugänglich sowie zitier-, durchsuch- und auswertbar sein.</div>\n <div class=\"img\">\n <img src=\"http://www.snf.ch/_layouts/15/Snf.Internet/Images/logo_de.gif\">\n </div>\n </mat-card-content>\n</mat-card>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/rhizome-view-component/rhizome-view-component.component.html":
/*!********************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/rhizome-view-component/rhizome-view-component.component.html ***!
\********************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<div #tooltipContainer id=\"page\">\n <tln-crossref></tln-crossref>\n <!--TODO: queryParams.fullscreen is string, not boolean! -->\n <tool-tip [fullscreen]=\"queryParams.fullscreen == 'true'\" [menuOffsetPosition]=\"{x: 0, y: 100 }\" [container]=\"tooltipContainer\"></tool-tip>\n</div>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/navigation/navigation.component.html":
/*!*********************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/navigation/navigation.component.html ***!
\*********************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<div id=\"navi\">\n <toggle-navigation></toggle-navigation>\n <button mat-icon-button *ngIf=\"current_page && contextView == PAGE_CONTEXT_VIEW\" \n [title]=\"'Alle Querverweise von ' + current_page.title + ' anzeigen'\" (click)=\"changeContext()\">\n <mat-icon>auto_stories</mat-icon>\n </button>\n <button mat-icon-button *ngIf=\"current_page && contextView != PAGE_CONTEXT_VIEW\" \n [title]=\"'Querverweise von ' + current_page.title + ' ' + current_page.number + ' anzeigen'\" (click)=\"changeContext()\">\n <mat-icon>description</mat-icon>\n </button>\n <button *ngIf=\"current_page && contextView == PAGE_CONTEXT_VIEW\" \n mat-icon-button [title]=\"current_page.title + ' ' + current_page.number +' in Seitenansicht anzeigen'\" (click)=\"setCurrentIri(current_page.id)\">\n <mat-icon>chrome_reader_mode</mat-icon>\n </button>\n <zoom></zoom>\n <search *ngIf=\"contextView == PAGE_CONTEXT_VIEW\"></search>\n</div>\n\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.html":
/*!***********************************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.html ***!
\***********************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<mat-list role=\"list\" *ngIf=\"current_page_iri\">\n <mat-list-item *ngFor=\"let geneticOrder of geneticOrders | filter:filterGeneticOrder\">\n <button mat-button title=\"Querverweis anzeigen\" (click)=\"openCrossRef(geneticOrder)\">\n <span *ngFor=\"let version of geneticOrder.textVersions; let i = index\">\n <version-view [version]=\"version\" [current_iri]=\"current_page_iri\"></version-view>\n <mat-icon *ngIf=\"i+1 < geneticOrder.textVersions.length\" [inline]=\"true\">east</mat-icon>\n </span>\n </button>\n </mat-list-item>\n</mat-list>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.html":
/*!***************************************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.html ***!
\***************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<page-version-view [current_page_iri]=\"current_iri\" [geneticOrders]=\"geneticOrders\"></page-version-view>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/tln-crossref.component.html":
/*!************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/tln-crossref.component.html ***!
\************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<div id=\"page\">\n <crossref-navigation></crossref-navigation>\n <div *ngIf=\"current_manuscript && contextView == MANUSCRIPT_CONTEXT_VIEW\" class=\"grid-container\">\n <h2 class=\"page-crossref-title extra-space\">Querverweise von {{current_manuscript.title}}</h2>\n <div *ngFor=\"let page of pagesWithGeneticOrder\">\n <h4 class=\"page-crossref-title\">{{current_manuscript.title}} {{page.number}}</h4>\n <tln-page-version-view [current_iri]=\"page.id\"></tln-page-version-view>\n </div>\n </div>\n <div *ngIf=\"current_page && contextView == PAGE_CONTEXT_VIEW\">\n <h3 class=\"page-crossref-title\">Querverweise von {{current_page.title}} {{current_page.number}}</h3>\n <page-version-view [parentActivatedRoute]=\"activatedRoute.parent\" [current_page_iri]=\"current_page.id\" \n [filterGeneticOrder]=\"current_genetic_order_iri\" [geneticOrders]=\"geneticOrders\"></page-version-view>\n </div>\n <div class=\"preview\" *ngIf=\"current_page && textVersions.length > 0 && contextView == PAGE_CONTEXT_VIEW\" [style.width.px]=\"previewWidth\">\n <h4 *ngIf=\"geneticOrders.length > 1\">Ausgew&auml;hlte Querverweise</h4>\n <div *ngFor=\"let version of textVersions; let i = index\">\n <button mat-button [ngClass]=\"{'highlight': selectedTextVersions.indexOf(version) > -1 }\"\n [title]=\"getButtonTitle(version)\" (click)=\"addOrRemove(version)\">\n <version-view [version]=\"version\"></version-view>\n <mat-icon *ngIf=\"selectedTextVersions.indexOf(version) > -1\" [inline]=\"true\">close</mat-icon>\n <mat-icon *ngIf=\"selectedTextVersions.indexOf(version) == -1\" [inline]=\"true\">chevron_right</mat-icon>\n </button>\n <div>\n <mat-icon *ngIf=\"i+1 < textVersions.length\">south</mat-icon>\n </div>\n </div>\n </div>\n <div *ngIf=\"current_page && contextView == PAGE_CONTEXT_VIEW\" class=\"text\" [style.left.px]=\"previewWidth\" [style.width.px]=\"max_width+margin_width\">\n <div class=\"page-view\" *ngFor=\"let version of selectedTextVersions\" [style.height.px]=\"each_version_height\">\n <div class=\"text-navi\">\n <button [title]=\"getButtonTitle(version)\" class=\"close-text\" mat-button (click)=\"addOrRemove(version)\">\n <version-view [version]=\"version\"></version-view>\n <mat-icon *ngIf=\"selectedTextVersions.indexOf(version) > -1\" [inline]=\"true\">close</mat-icon>\n </button>\n </div>\n <div *ngFor=\"let textUnity of version.textUnities\">\n <span class=\"mat-button default-mouse page-navi\">\n <span>{{version.title}}, {{textUnity.number}}<span *ngIf=\"textUnity.startLine\">, {{textUnity.startLine}}-{{textUnity.endLine}}</span>\n </span>\n <open-in-viewer *ngIf=\"textUnity.hasFaksimileImage\"\n [routerInformation]=\"{ title: version.title, number: textUnity.number, \n page: textUnity.belongsToPage ? textUnity.belongsToPage : textUnity.id,\n manuscript: version.manuscript, launchExternally: false \n }\"></open-in-viewer>\n <open-in-viewer *ngIf=\"textUnity.hasFaksimileImage\"\n [routerInformation]=\"{ title: version.title, number: textUnity.number,\n page: textUnity.belongsToPage ? textUnity.belongsToPage : textUnity.id,\n manuscript: version.manuscript, launchExternally: true\n }\"></open-in-viewer>\n </span>\n <div *ngIf=\"!textUnity.belongsToPage\">\n <tln-page-view \n [page]=\"textUnity.id\"\n [multiInstanceMode]=\"true\"\n [selectedViewOption]=\"selectedViewOption\"\n [selectedLines]=\"selectedLines\"\n [queryService]=\"queryService\" [preferPrimaryUrl]=\"preferPrimaryUrl\" \n [max_width]=\"max_width\"></tln-page-view>\n </div>\n <div *ngIf=\"textUnity.belongsToPage\">\n <tln-page-view *ngIf=\"textUnity.belongsToPage\"\n [multiInstanceMode]=\"true\"\n [startLine]=\"textUnity.startLineIri\"\n [endLine]=\"textUnity.endLineIri\"\n [page]=\"textUnity.belongsToPage\"\n [selectedViewOption]=\"selectedViewOption\"\n [selectedLines]=\"selectedLines\"\n [queryService]=\"queryService\" [preferPrimaryUrl]=\"preferPrimaryUrl\" \n [max_width]=\"max_width\" ></tln-page-view>\n </div>\n </div>\n <div class=\"external\" [style.width.px]=\"max_width\" *ngIf=\"version.textUnities.length == 0 && version.extUrl\">\n <a mat-button [href]=\"version.extUrl\" target=\"_new\">Text auf nietzschesource.org <mat-icon>link</mat-icon></a>\n </div>\n </div>\n </div>\n</div>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/version-view/version-view.component.html":
/*!*************************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/version-view/version-view.component.html ***!
\*************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<span *ngIf=\"version && version.title\">\n {{version.title}}<span *ngIf=\"version.textUnities.length > 0\">,</span>\n <span [ngClass]=\"{ 'highlight': current_iri != null && current_iri != undefined && (textUnity.id == current_iri || textUnity.belongsToPage == current_iri) }\"\n *ngFor=\"let textUnity of version.textUnities; let j = index\">\n {{textUnity.number}}<span *ngIf=\"textUnity.startLine && textUnity.endLine\">, {{textUnity.startLine}}-{{textUnity.endLine}}</span>\n <span *ngIf=\"textUnity.startLine && j+1 < version.textUnities.length\">;</span>\n <span *ngIf=\"!textUnity.startLine && j+1 < version.textUnities.length\">,</span>\n </span>\n</span>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-fulltext/navigation/navigation.component.html":
/*!*********************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-fulltext/navigation/navigation.component.html ***!
\*********************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<div id=\"navi\">\n <toggle-navigation></toggle-navigation>\n <zoom></zoom>\n</div>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-fulltext/tln-fulltext.component.html":
/*!************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-fulltext/tln-fulltext.component.html ***!
\************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<div id=\"page\" #tooltipContainer>\n <fulltext-navigation></fulltext-navigation>\n <div class=\"search\" [style.width.px]=\"previewWidth\">\n <mat-card>\n <mat-card-header>\n <mat-card-title>Suche<span *ngIf=\"searchTerm\">: <span class=\"small-grey\">{{searchTerm}}</span></span></mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <mat-form-field class=\"full-width\">\n <mat-label>Text</mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"searchTerm\" (keydown.enter)=\"search()\" (keydown.esc)=\"clearFindText()\">\n <button mat-button *ngIf=\"searchTerm\" matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"clearFindText()\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <button mat-button (click)=\"search()\"><mat-icon>search</mat-icon></button>\n <mat-spinner *ngIf=\"startSearch && !resultsReceived && searchTerm\"></mat-spinner>\n <div *ngIf=\"resultsReceived && searchTerm\">\n {{ pages | resultPipe }}\n </div>\n <mat-paginator *ngIf=\"!fullscreen && pages.length > resultLength\" \n [length]=\"pages.length\"\n [pageSize]=\"resultLength\"\n [pageIndex]=\"resultIndex\"\n (page)=\"showResults($event)\">\n </mat-paginator>\n </mat-card-content>\n </mat-card>\n </div>\n <div *ngIf=\"pages.length > 0\" class=\"text\" [style.left.px]=\"previewWidth+20\" [style.width.px]=\"max_width+margin_width-25\">\n <div class=\"page-view\" *ngFor=\"let page of pages | pageResultFilter:resultRange\">\n <span class=\"mat-button default-mouse page-navi\">\n <span>{{page.title}}, {{page.number}}</span>\n <open-in-viewer [routerInformation]=\"{ title: page.title, number: page.number, page: page.id,\n manuscript: page.manuscript, launchExternally: false }\"></open-in-viewer>\n <open-in-viewer [routerInformation]=\"{ title: page.title, number: page.number, page: page.id,\n manuscript: page.manuscript, launchExternally: true }\"></open-in-viewer>\n </span>\n <tln-page-view *ngFor=\"let result of page.results\"\n [page]=\"page.id\"\n [multiInstanceMode]=\"true\"\n [selectedViewOption]=\"selectedViewOption\"\n [startLine]=\"result.getStartLine()\"\n [endLine]=\"result.getEndLine()\"\n [selectedWords]=\"result.getWords()\"\n [max_width]=\"max_width\"></tln-page-view>\n </div>\n <mat-paginator *ngIf=\"pages.length > resultLength\" \n [length]=\"pages.length\"\n [pageSize]=\"resultLength\"\n [pageIndex]=\"resultIndex\"\n (page)=\"showResults($event)\">\n </mat-paginator>\n </div>\n <tool-tip [container]=\"tooltipContainer\" [menuOffsetPosition]=\"{x: 0, y: 0 }\"></tool-tip>\n</div>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-information/tln-information.component.html":
/*!******************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-information/tln-information.component.html ***!
\******************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<div *ngIf=\"current_page\">\n <h3>{{current_page.title}} {{current_page.number}}:</h3>\n <h4 mat-subheader>Querverweise:</h4>\n <page-version-view [bottomSheetRef]=\"bottomSheetRef\" [parentActivatedRoute]=\"data.parentActivatedRoute\"\n [current_page_iri]=\"current_page.id\" [geneticOrders]=\"geneticOrders\"></page-version-view>\n</div>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.html":
/*!**************************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.html ***!
\**************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<toggle-navigation></toggle-navigation>\n<mat-card *ngIf=\"current_manuscript\">\n <mat-card-header>\n <mat-card-title *ngIf=\"current_manuscript.archivalicSignature\">{{current_manuscript.archivalicSignature}}</mat-card-title>\n <mat-card-title *ngIf=\"!current_manuscript.archivalicSignature\">{{current_manuscript.title}}</mat-card-title>\n <mat-card-subtitle *ngIf=\"current_manuscript.gsaSignature\">GSA-Signatur {{current_manuscript.gsaSignature}}</mat-card-subtitle>\n <!--<mat-card-subtitle>{{current_manuscript.type}}</mat-card-subtitle>-->\n <img mat-card-avatar *ngIf=\"current_manuscript.thumbImage\" [src]=\"current_manuscript.thumbImage\"/>\n </mat-card-header>\n <mat-card-content *ngIf=\"earlierDescriptions.length > 0\">\n <h4 mat-subheader>Fr&uuml;here Manuskriptbeschreibungen</h4>\n <table>\n <tr *ngFor=\"let earlierDescription of earlierDescriptions\">\n <td class=\"author\">{{earlierDescription.author}}:</td>\n <td class=\"text\">\n <span *ngIf=\"earlierDescription.markups.length == 0\">{{earlierDescription.text}}</span>\n <NgxMat-NgxMatStandoffMarkup *ngIf=\"earlierDescription.markups.length > 0\"\n [cssDef]=\"cssDef\" [markupSettings]=\"mySettings\" \n [textToStyle]=\"earlierDescription.text\" \n [posStyleMarkup]=\"earlierDescription.markups\"></NgxMat-NgxMatStandoffMarkup>\n {{earlierDescription.citation}}\n </td>\n </tr>\n </table>\n </mat-card-content>\n <mat-card-content *ngIf=\"manuscriptDescription\">\n <h4 mat-subheader *ngIf=\"current_manuscript.type == 'Mappe'\">Beschreibung der Archivmappe</h4>\n <h4 mat-subheader *ngIf=\"current_manuscript.type != 'Mappe'\">Heftbeschreibung</h4>\n <p class=\"text\">\n <span *ngIf=\"manuscriptDescription.markups.length == 0\">{{manuscriptDescription.text}}</span>\n <NgxMat-NgxMatStandoffMarkup *ngIf=\"manuscriptDescription.markups.length > 0\"\n [cssDef]=\"cssDef\" [markupSettings]=\"mySettings\" \n [textToStyle]=\"manuscriptDescription.text\" \n [posStyleMarkup]=\"manuscriptDescription.markups\"></NgxMat-NgxMatStandoffMarkup>\n </p>\n </mat-card-content>\n <mat-card-content *ngIf=\"current_manuscript.archivalicSignature && current_manuscript.archivalicSignature != current_manuscript.title\">\n <h4 mat-subheader>In {{current_manuscript.title}} wiedergegebene Manuskriptseiten</h4>\n <span *ngFor=\"let page of pages; let i = index\">{{page.number}}\n <open-in-viewer class=\"nospace\" [routerInformation]=\"{ title: current_manuscript.title, number: page.number, page: page.id }\"></open-in-viewer>\n <open-in-viewer class=\"nospace\" [routerInformation]=\"{ title: current_manuscript.title, number: page.number, \n page: page.id, launchExternally: true }\"></open-in-viewer>\n <span *ngIf=\"i+1 < pages.length\">, </span></span>\n </mat-card-content>\n <mat-card-content *ngIf=\"reconstructedKonvolut\">\n <h4 mat-subheader>Konvolute, Rekonstruktionen</h4>\n <p class=\"text\" *ngIf=\"reconstructedKonvolut.description\">{{reconstructedKonvolut.description}}</p>\n <!-- TODO: WAITING FOR DATA\n <span *ngFor=\"let page of reconstructedKonvolut.pages; let i = index\">{{page.number}}\n <button *ngIf=\"page.title\" mat-icon-button class=\"nospace\" \n [title]=\"page.title + ' ' + page.number + ' in Seitenansicht &ouml;ffnen'\" \n (click)=\"openInViewer(page.id)\"><mat-icon [inline]=\"true\">launch</mat-icon></button>\n <span *ngIf=\"i+1 < reconstructedKonvolut.pages.length\">, </span></span>-->\n </mat-card-content>\n</mat-card>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.html":
/*!*************************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.html ***!
\*************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<button *ngIf=\"!launch\" mat-icon-button (click)=\"openInViewer()\" \n [title]=\"page.title + ' ' + page.number + ' in Seitenansicht &ouml;ffnen'\" class=\"icon-button\">\n <mat-icon [inline]=\"true\">chrome_reader_mode</mat-icon>\n</button>\n<button *ngIf=\"launch\" mat-icon-button (click)=\"openInViewer()\" \n [title]=\"page.title + ' ' + page.number + ' in neuem Tab in Seitenansicht &ouml;ffnen'\" class=\"icon-button\">\n <mat-icon [inline]=\"true\">launch</mat-icon>\n</button>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-navigation-elements/search.component.html":
/*!*****************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-navigation-elements/search.component.html ***!
\*****************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<mat-form-field class=\"search\">\n <mat-label>Suche</mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"findText\" (ngModelChange)=\"updateParams()\" (keydown.esc)=\"clearFindText()\">\n <button mat-button *ngIf=\"findText\" matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"clearFindText()\">\n <mat-icon>close</mat-icon>\n </button>\n <button mat-button matSuffix mat-icon-button title=\"Volltextsuche\" aria-label=\"Volltextsuche\" (click)=\"openFulltextSearch()\">\n <mat-icon>search</mat-icon>\n </button>\n</mat-form-field>\n\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.html":
/*!****************************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.html ***!
\****************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<button mat-button [title]=\"navBarOpenState ? 'Navigationsleiste aus' : 'Navigationsleiste ein'\" (click)=\"toggleNavDrawer()\">\n <mat-icon class=\"mat-accent\">{{ navBarOpenState ? 'chevron_left' : 'chevron_right' }}</mat-icon>\n</button>\n<button mat-icon-button [title]=\"fullscreen ? 'Vollbild aus' : 'Vollbild ein'\" (click)=\"toggleFullscreen()\">\n <mat-icon>{{ fullscreen ? 'fullscreen_exit' : 'fullscreen'}}</mat-icon>\n</button>\n\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-navigation-elements/zoom.component.html":
/*!***************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-navigation-elements/zoom.component.html ***!
\***************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<button mat-icon-button class=\"zoom zoom-in\" [title]=\"{ 'zoomFactor': zoomFactor, 'changeValue': increment } | zoomTitle\" \n (click)=\"setZoomFactor(zoomFactor+increment)\"><mat-icon>zoom_in</mat-icon></button>\n<button mat-icon-button [ngClass]=\"{ 'zoom-in': zoomFactor < 1, 'zoom-out': zoomFactor > 1 }\" \n title=\"Zoom zur&uuml;cksetzen\" (click)=\"setZoomFactor(1)\">{{zoomFactor * 100 | number:'1.0-0'}}%</button>\n<button mat-icon-button class=\"zoom zoom-out\" [title]=\"{ 'zoomFactor': zoomFactor, 'changeValue': decrement} | zoomTitle\"\n (click)=\"setZoomFactor(zoomFactor+decrement)\"><mat-icon>zoom_out</mat-icon></button>\n\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-page-view.component.html":
/*!************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-page-view.component.html ***!
\************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<div #tooltipContainer>\n <page-view [assignClass]=\"assignClass\" [assignStyle]=\"assignStyle\" \n [dontShowReference]=\"dontShowReference\"\n [configuration]=\"configuration\" [max_height]=\"max_height\"\n [max_width]=\"max_width\"\n [findText]=\"findText\" [first_image]=\"image\" \n [first_lines]=\"lines\" [first_words]=\"words\" \n [first_foreign_texts]=\"foreignTexts\" [second_foreign_texts]=\"second_foreignTexts\"\n [second_image]=\"second_image\" [second_lines]=\"second_lines\" [second_words]=\"second_words\" \n [selectedWords]=\"selectedWords\" [selectedLines]=\"selectedLines\"\n [preferPrimaryUrl]=\"preferPrimaryUrl\" [zoomFactor]=\"zoomFactor\"></page-view>\n</div>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.html":
/*!******************************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.html ***!
\******************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<div id=\"navi\">\n <toggle-navigation></toggle-navigation>\n <button *ngIf=\"!current_page || !manuscript_unity\" mat-icon-button disabled=\"true\"><mat-icon>first_page</mat-icon></button>\n <button *ngIf=\"current_page && manuscript_unity\"\n mat-icon-button [title]=\"getPageTitle(manuscript_unity.firstPage)\" (click)=\"setCurrentIri(manuscript_unity.firstPage.id)\" \n [disabled]=\"updating || manuscript_unity.firstPage.id == current_page.id\">\n <mat-icon>first_page</mat-icon>\n </button>\n <button *ngIf=\"!current_page || !manuscript_unity\" mat-icon-button disabled=\"true\"><mat-icon>chevron_left</mat-icon></button>\n <button *ngIf=\"current_page && manuscript_unity\" mat-icon-button [title]=\"getPageTitle(current_page.previous, manuscript_unity.numberOfPages)\" \n (click)=\"setCurrentIri(current_page.previous.id)\" [disabled]=\"updating || !current_page.previous\">\n <mat-icon>chevron_left</mat-icon>\n </button>\n <mat-form-field appearance=\"legacy\">\n <mat-select [(value)]=\"selectedViewOption\" (selectionChange)=\"updateParams()\">\n <mat-option *ngFor=\"let viewOption of viewOptions\" [value]=\"viewOption\">{{viewOption}}</mat-option>\n </mat-select>\n </mat-form-field>\n <zoom></zoom>\n <span class=\"mat-button min-width default-mouse\" *ngIf=\"!current_page\">Loading ...</span>\n <span class=\"mat-button min-width default-mouse\" *ngIf=\"geneticOrders.length == 0 && current_page\">{{current_page.title}} {{current_page.number}}</span>\n <button mat-button class=\"min-width\" title=\"Seiteninformationen\" (click)=\"showInformation()\" *ngIf=\"geneticOrders.length > 0 && current_page\">\n {{current_page.title}} {{current_page.number}}\n <mat-icon inline=\"true\">info</mat-icon>\n </button>\n <search></search>\n <button *ngIf=\"!current_page || !manuscript_unity\" mat-icon-button disabled=\"true\"><mat-icon>chevron_right</mat-icon></button>\n <button *ngIf=\"current_page && manuscript_unity\" mat-icon-button [title]=\"getPageTitle(current_page.next, manuscript_unity.numberOfPages)\" \n (click)=\"setCurrentIri(current_page.next.id)\" [disabled]=\"updating || !current_page.next\">\n <mat-icon>chevron_right</mat-icon>\n </button>\n <button *ngIf=\"!current_page || !manuscript_unity\" mat-icon-button disabled=\"true\"><mat-icon>last_page</mat-icon></button>\n <button *ngIf=\"manuscript_unity && current_page\" \n mat-icon-button [title]=\"getPageTitle(manuscript_unity.lastPage)\" (click)=\"setCurrentIri(manuscript_unity.lastPage.id)\" \n [disabled]=\"updating || manuscript_unity.lastPage.id == current_page.id\">\n <mat-icon>last_page</mat-icon>\n </button>\n</div>\n\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tooltip/tool-tip.component.html":
/*!***************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tooltip/tool-tip.component.html ***!
\***************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<div #myElement *ngIf=\"useExtendedTooltip && tooltipPosition.visible && hasAnyContent()\"\n [ngClass]=\"[ 'tooltip', currentKey ]\" [style.top.px]=\"getTop(currentKey)\" [style.left.px]=\"getLeft(myElement.offsetWidth)\">\n <div *ngIf=\"word\">\n <div *ngIf=\"debug\">\n {{tooltipPosition.clientY+yOffset}}, {{topOffset}}\n <!--<div *ngFor=\"let markup of positionalStyleMarkups\">\n <div ><span>{{markup.startIndex}} </span><span>{{markup.endIndex}} </span><span>{{markup.cssStyleTag}}</span></div>\n </div>-->\n </div>\n <div class=\"earlier-version\" *ngIf=\"earlier_version\"><i>0:</i> {{earlier_version.text}}</div>\n <div class=\"text\" >\n <span *ngIf=\"earlier_version\"><i>1:</i>&nbsp;</span>\n <span *ngIf=\"!positionalStyleMarkups || positionalStyleMarkups.length == 0\" [ngClass]=\"{'deleted': word.deleted}\">{{word.text}}</span>\n <NgxMat-NgxMatStandoffMarkup *ngIf=\"positionalStyleMarkups && positionalStyleMarkups.length > 0\" \n [cssDef]=\"cssDef\" [markupSettings]=\"mySettings\"\n [textToStyle]=\"word.text\" [posStyleMarkup]=\"positionalStyleMarkups\"></NgxMat-NgxMatStandoffMarkup>\n </div>\n <span class=\"edited_text\" *ngIf=\"word.edited_text\">&gt;{{word.edited_text}}</span>\n <div class=\"overwritten\" *ngIf=\"overwrittenWord\"><i>&uuml;berschreibt: </i>{{overwrittenWord.text}}</div>\n </div>\n <div *ngIf=\"foreignHand\">\n {{foreignHand.text}}, <i>{{foreignHand.pen}}</i>\n </div>\n <!--<div *ngIf=\"copyright\" class=\"blackfg\" (click)=\"copyright = null\">\n <div [innerHTML]=\"copyright.text\"></div>\n <div *ngIf=\"copyright.originalUrl\">URL: <a target=\"_new\" [href]=\"copyright.originalUrl\">{{copyright.originalUrl}}</a></div>\n <div> Lizenz: \n <a *ngIf=\"copyright.licenseTextUrl\" target=\"_new\" [href]=\"copyright.licenseTextUrl\">{{copyright.license}} </a>\n <span *ngIf=\"!copyright.licenseTextUrl\">{{copyright.license}}</span>\n </div>\n </div>-->\n <div *ngIf=\"continuation\">\n <span *ngIf=\"continuation.show == 'to'\"><i>{{continuation.source.line.number}}</i>&nbsp;nach&nbsp;</span>\n <i>\n <span *ngIf=\"continuation.source.manuscript\">{{continuation.reference.manuscript.title}} </span>\n <span *ngIf=\"continuation.source.page\">{{continuation.reference.page.number}}, </span>\n {{continuation.reference.line.number}}\n </i>\n <span *ngIf=\"continuation.show != 'to'\">&nbsp;nach&nbsp;<i>{{continuation.source.line.number}}</i></span>\n </div>\n <div *ngIf=\"continuation && continuation_words.length > 0\">\n <span *ngIf=\"continuation.show == 'to'\">&rarr; </span>\n <span *ngFor=\"let word of continuation_words\">\n {{ (word.earlier_version) ? '[0:' + word.earlier_version + '|1:' : ''}}\n <NgxMat-NgxMatStandoffMarkup [cssDef]=\"cssDef\" [markupSettings]=\"mySettings\"\n [textToStyle]=\"word.text\" [posStyleMarkup]=\"word.markups\"></NgxMat-NgxMatStandoffMarkup>\n {{ (word.earlier_version) ? ']' : ''}}</span>\n <span *ngIf=\"continuation.show != 'to'\">&rarr; </span>\n </div>\n</div>\n");
/***/ }),
/***/ "./node_modules/tslib/tslib.es6.js":
/*!*****************************************!*\
!*** ./node_modules/tslib/tslib.es6.js ***!
\*****************************************/
/*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __createBinding, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault, __classPrivateFieldGet, __classPrivateFieldSet */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__extends", function() { return __extends; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__assign", function() { return __assign; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__rest", function() { return __rest; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__decorate", function() { return __decorate; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__param", function() { return __param; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__metadata", function() { return __metadata; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__awaiter", function() { return __awaiter; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__generator", function() { return __generator; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__createBinding", function() { return __createBinding; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__exportStar", function() { return __exportStar; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__values", function() { return __values; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__read", function() { return __read; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spread", function() { return __spread; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spreadArrays", function() { return __spreadArrays; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__await", function() { return __await; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncGenerator", function() { return __asyncGenerator; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncDelegator", function() { return __asyncDelegator; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncValues", function() { return __asyncValues; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__makeTemplateObject", function() { return __makeTemplateObject; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importStar", function() { return __importStar; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importDefault", function() { return __importDefault; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__classPrivateFieldGet", function() { return __classPrivateFieldGet; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__classPrivateFieldSet", function() { return __classPrivateFieldSet; });
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/* global Reflect, Promise */
var extendStatics = function(d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
function __extends(d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
}
var __assign = function() {
__assign = Object.assign || function __assign(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
}
return t;
}
return __assign.apply(this, arguments);
}
function __rest(s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
}
function __decorate(decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
}
function __param(paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); }
}
function __metadata(metadataKey, metadataValue) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
}
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
}
function __generator(thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
}
function __createBinding(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}
function __exportStar(m, exports) {
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) exports[p] = m[p];
}
function __values(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
}
function __read(o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
}
function __spread() {
for (var ar = [], i = 0; i < arguments.length; i++)
ar = ar.concat(__read(arguments[i]));
return ar;
}
function __spreadArrays() {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
for (var r = Array(s), k = 0, i = 0; i < il; i++)
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
r[k] = a[j];
return r;
};
function __await(v) {
return this instanceof __await ? (this.v = v, this) : new __await(v);
}
function __asyncGenerator(thisArg, _arguments, generator) {
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
var g = generator.apply(thisArg, _arguments || []), i, q = [];
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
function fulfill(value) { resume("next", value); }
function reject(value) { resume("throw", value); }
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
}
function __asyncDelegator(o) {
var i, p;
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
}
function __asyncValues(o) {
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
var m = o[Symbol.asyncIterator], i;
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
}
function __makeTemplateObject(cooked, raw) {
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
return cooked;
};
function __importStar(mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result.default = mod;
return result;
}
function __importDefault(mod) {
return (mod && mod.__esModule) ? mod : { default: mod };
}
function __classPrivateFieldGet(receiver, privateMap) {
if (!privateMap.has(receiver)) {
throw new TypeError("attempted to get private field on non-instance");
}
return privateMap.get(receiver);
}
function __classPrivateFieldSet(receiver, privateMap, value) {
if (!privateMap.has(receiver)) {
throw new TypeError("attempted to set private field on non-instance");
}
privateMap.set(receiver, value);
return value;
}
/***/ }),
/***/ "./package.json":
/*!**********************!*\
!*** ./package.json ***!
\**********************/
/*! exports provided: name, version, scripts, private, dependencies, devDependencies, default */
/***/ (function(module) {
-module.exports = JSON.parse("{\"name\":\"nietzsche-app-beta\",\"version\":\"0.4.1.2\",\"scripts\":{\"ng\":\"ng\",\"start\":\"ng serve\",\"build\":\"ng build\",\"test\":\"ng test\",\"lint\":\"ng lint\",\"e2e\":\"ng e2e\",\"compodoc\":\"./node_modules/.bin/compodoc -p tsconfig.app.json\",\"sparqljs\":\"./node_modules/sparqljs/sparql.js\"},\"private\":true,\"dependencies\":{\"@angular/animations\":\"~8.2.14\",\"@angular/cdk\":\"~8.2.3\",\"@angular/common\":\"~8.2.14\",\"@angular/compiler\":\"~8.2.14\",\"@angular/core\":\"~8.2.14\",\"@angular/forms\":\"~8.2.14\",\"@angular/material\":\"^8.2.3\",\"@angular/platform-browser\":\"~8.2.14\",\"@angular/platform-browser-dynamic\":\"~8.2.14\",\"@angular/router\":\"~8.2.14\",\"@types/rdf-js\":\"^2.0.11\",\"lodash\":\"^4.17.20\",\"rdfjs\":\"^0.0.1\",\"rxjs\":\"~6.4.0\",\"sparqljs\":\"^3.0.1\",\"tslib\":\"^1.10.0\",\"zone.js\":\"~0.9.1\"},\"devDependencies\":{\"@angular-devkit/build-angular\":\"^0.803.25\",\"@angular/cli\":\"~8.3.24\",\"@angular/compiler-cli\":\"~8.2.14\",\"@angular/language-service\":\"~8.2.14\",\"@types/jasmine\":\"~3.3.8\",\"@types/jasminewd2\":\"~2.0.3\",\"@types/node\":\"~8.9.4\",\"codelyzer\":\"^5.0.0\",\"jasmine-core\":\"~3.4.0\",\"jasmine-spec-reporter\":\"~4.2.1\",\"karma\":\"~4.1.0\",\"karma-chrome-launcher\":\"~2.2.0\",\"karma-coverage-istanbul-reporter\":\"~2.0.1\",\"karma-jasmine\":\"~2.0.1\",\"karma-jasmine-html-reporter\":\"^1.4.0\",\"protractor\":\"~5.4.0\",\"ts-node\":\"~7.0.0\",\"tslint\":\"~5.15.0\",\"typescript\":\"~3.5.3\"}}");
+module.exports = JSON.parse("{\"name\":\"nietzsche-app-beta\",\"version\":\"0.4.1.3\",\"scripts\":{\"ng\":\"ng\",\"start\":\"ng serve\",\"build\":\"ng build\",\"test\":\"ng test\",\"lint\":\"ng lint\",\"e2e\":\"ng e2e\",\"compodoc\":\"./node_modules/.bin/compodoc -p tsconfig.app.json\",\"sparqljs\":\"./node_modules/sparqljs/sparql.js\"},\"private\":true,\"dependencies\":{\"@angular/animations\":\"~8.2.14\",\"@angular/cdk\":\"~8.2.3\",\"@angular/common\":\"~8.2.14\",\"@angular/compiler\":\"~8.2.14\",\"@angular/core\":\"~8.2.14\",\"@angular/forms\":\"~8.2.14\",\"@angular/material\":\"^8.2.3\",\"@angular/platform-browser\":\"~8.2.14\",\"@angular/platform-browser-dynamic\":\"~8.2.14\",\"@angular/router\":\"~8.2.14\",\"@types/rdf-js\":\"^2.0.11\",\"lodash\":\"^4.17.20\",\"rdfjs\":\"^0.0.1\",\"rxjs\":\"~6.4.0\",\"sparqljs\":\"^3.0.1\",\"tslib\":\"^1.10.0\",\"zone.js\":\"~0.9.1\"},\"devDependencies\":{\"@angular-devkit/build-angular\":\"^0.803.25\",\"@angular/cli\":\"~8.3.24\",\"@angular/compiler-cli\":\"~8.2.14\",\"@angular/language-service\":\"~8.2.14\",\"@types/jasmine\":\"~3.3.8\",\"@types/jasminewd2\":\"~2.0.3\",\"@types/node\":\"~8.9.4\",\"codelyzer\":\"^5.0.0\",\"jasmine-core\":\"~3.4.0\",\"jasmine-spec-reporter\":\"~4.2.1\",\"karma\":\"~4.1.0\",\"karma-chrome-launcher\":\"~2.2.0\",\"karma-coverage-istanbul-reporter\":\"~2.0.1\",\"karma-jasmine\":\"~2.0.1\",\"karma-jasmine-html-reporter\":\"^1.4.0\",\"protractor\":\"~5.4.0\",\"ts-node\":\"~7.0.0\",\"tslint\":\"~5.15.0\",\"typescript\":\"~3.5.3\"}}");
/***/ }),
/***/ "./src/app/app.component.css":
/*!***********************************!*\
!*** ./src/app/app.component.css ***!
\***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = ("\nbody {\n padding-right: 50px;\n}\n\n.rect, .rect.unhovered {\n opacity:0.0;\n}\n\n.rect:hover, .rect.hovered {\n opacity:0.34000017;\n fill:#e2fa00;\n fill-opacity:0.98431373\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9hcHAuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7R0FDRyxtQkFBbUI7QUFDdEI7O0FBRUE7RUFDRSxXQUFXO0FBQ2I7O0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsWUFBWTtFQUNaO0FBQ0YiLCJmaWxlIjoiYXBwL2FwcC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXG5ib2R5IHtcbiAgIHBhZGRpbmctcmlnaHQ6IDUwcHg7XG59XG5cbi5yZWN0LCAucmVjdC51bmhvdmVyZWQge1xuICBvcGFjaXR5OjAuMDtcbn1cbi5yZWN0OmhvdmVyLCAucmVjdC5ob3ZlcmVkIHtcbiAgb3BhY2l0eTowLjM0MDAwMDE3O1xuICBmaWxsOiNlMmZhMDA7XG4gIGZpbGwtb3BhY2l0eTowLjk4NDMxMzczXG59XG4iXX0= */");
+/* harmony default export */ __webpack_exports__["default"] = ("\nbody {\n padding-right: 50px;\n}\n\n.rect, .rect.unhovered {\n opacity:0.0;\n}\n\n.rect:hover, .rect.hovered {\n opacity:0.34000017;\n fill:#e2fa00;\n fill-opacity:0.98431373\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtHQUNHLG1CQUFtQjtBQUN0Qjs7QUFFQTtFQUNFLFdBQVc7QUFDYjs7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixZQUFZO0VBQ1o7QUFDRiIsImZpbGUiOiJhcHAuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxuYm9keSB7XG4gICBwYWRkaW5nLXJpZ2h0OiA1MHB4O1xufVxuXG4ucmVjdCwgLnJlY3QudW5ob3ZlcmVkIHtcbiAgb3BhY2l0eTowLjA7XG59XG4ucmVjdDpob3ZlciwgLnJlY3QuaG92ZXJlZCB7XG4gIG9wYWNpdHk6MC4zNDAwMDAxNztcbiAgZmlsbDojZTJmYTAwO1xuICBmaWxsLW9wYWNpdHk6MC45ODQzMTM3M1xufVxuIl19 */");
/***/ }),
/***/ "./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 tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/cdk/overlay */ "./node_modules/@angular/cdk/esm2015/overlay.js");
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm2015/router.js");
let AppComponent = class AppComponent {
constructor(overlayContainer, activatedRoute) {
this.overlayContainer = overlayContainer;
this.activatedRoute = activatedRoute;
this.title = 'Digitale Manuskriptedition: Der späte Nietzsche';
this.theme = 'standard-theme';
this.version = __webpack_require__(/*! ../../package.json */ "./package.json").version;
}
ngOnInit() {
this.overlayContainer.getContainerElement().classList.add(this.theme);
this.queryParamSub = this.activatedRoute.queryParams.subscribe((queryParams) => {
this.fullScreen = queryParams.fullscreen;
});
}
onThemeChange() {
this.overlayContainer.getContainerElement().classList.add(this.theme);
}
};
AppComponent.ctorParameters = () => [
{ type: _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_2__["OverlayContainer"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_3__["ActivatedRoute"] }
];
AppComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-root',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./app.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/app.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./app.component.css */ "./src/app/app.component.css")).default]
})
], AppComponent);
/***/ }),
/***/ "./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 tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _app_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./app.component */ "./src/app/app.component.ts");
/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/platform-browser */ "./node_modules/@angular/platform-browser/fesm2015/platform-browser.js");
/* harmony import */ var _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/platform-browser/animations */ "./node_modules/@angular/platform-browser/fesm2015/animations.js");
/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/fesm2015/forms.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_material_card__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/material/card */ "./node_modules/@angular/material/esm2015/card.js");
/* harmony import */ var _angular_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/material */ "./node_modules/@angular/material/esm2015/material.js");
/* harmony import */ var _angular_material_expansion__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/material/expansion */ "./node_modules/@angular/material/esm2015/expansion.js");
/* harmony import */ var _angular_material_icon__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/material/icon */ "./node_modules/@angular/material/esm2015/icon.js");
/* harmony import */ var _angular_material_list__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/material/list */ "./node_modules/@angular/material/esm2015/list.js");
/* harmony import */ var _angular_material_menu__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @angular/material/menu */ "./node_modules/@angular/material/esm2015/menu.js");
/* harmony import */ var _angular_material_select__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @angular/material/select */ "./node_modules/@angular/material/esm2015/select.js");
/* harmony import */ var _angular_material_tabs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @angular/material/tabs */ "./node_modules/@angular/material/esm2015/tabs.js");
/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/fesm2015/common.js");
/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @angular/common/http */ "./node_modules/@angular/common/fesm2015/http.js");
/* harmony import */ var _services_query_service__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./services/query.service */ "./src/app/services/query.service.ts");
/* harmony import */ var _app_routing__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./app.routing */ "./src/app/app.routing.ts");
/* harmony import */ var _home_component__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./home.component */ "./src/app/home.component.ts");
/* harmony import */ var _manuscript_view_component_manuscript_view_component_component__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./manuscript-view-component/manuscript-view-component.component */ "./src/app/manuscript-view-component/manuscript-view-component.component.ts");
/* harmony import */ var _content_view_tab_component_content_view_tab_component_component__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./content-view-tab-component/content-view-tab-component.component */ "./src/app/content-view-tab-component/content-view-tab-component.component.ts");
/* harmony import */ var _rhizome_view_component_rhizome_view_component_component__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./rhizome-view-component/rhizome-view-component.component */ "./src/app/rhizome-view-component/rhizome-view-component.component.ts");
/* harmony import */ var _main_menu_component_main_menu_component_component__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./main-menu-component/main-menu-component.component */ "./src/app/main-menu-component/main-menu-component.component.ts");
/* harmony import */ var _page_view_wrapper_component_page_view_wrapper_component__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./page-view-wrapper-component/page-view-wrapper.component */ "./src/app/page-view-wrapper-component/page-view-wrapper.component.ts");
/* harmony import */ var _navigation_list_component_navigation_list_component_component__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./navigation-list-component/navigation-list-component.component */ "./src/app/navigation-list-component/navigation-list-component.component.ts");
/* harmony import */ var _services_navigation_service_service__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./services/navigation-service.service */ "./src/app/services/navigation-service.service.ts");
/* harmony import */ var _tln_edition_tln_edition_module__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./tln-edition/tln-edition.module */ "./src/app/tln-edition/tln-edition.module.ts");
/* harmony import */ var _navigation_list_component_navtree_directive_directive__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./navigation-list-component/navtree-directive.directive */ "./src/app/navigation-list-component/navtree-directive.directive.ts");
/* harmony import */ var _content_view_tab_component_lazy_image_load_directive_directive__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./content-view-tab-component/lazy-image-load-directive.directive */ "./src/app/content-view-tab-component/lazy-image-load-directive.directive.ts");
/* harmony import */ var _impressum_component__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./impressum.component */ "./src/app/impressum.component.ts");
/* harmony import */ var _project_component__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./project.component */ "./src/app/project.component.ts");
let AppModule = class AppModule {
};
AppModule = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_5__["NgModule"])({
declarations: [
_app_component__WEBPACK_IMPORTED_MODULE_1__["AppComponent"],
_home_component__WEBPACK_IMPORTED_MODULE_18__["HomeComponent"],
_manuscript_view_component_manuscript_view_component_component__WEBPACK_IMPORTED_MODULE_19__["ManuscriptViewComponentComponent"],
_content_view_tab_component_content_view_tab_component_component__WEBPACK_IMPORTED_MODULE_20__["ContentViewTabComponentComponent"],
_rhizome_view_component_rhizome_view_component_component__WEBPACK_IMPORTED_MODULE_21__["RhizomeViewComponentComponent"],
_main_menu_component_main_menu_component_component__WEBPACK_IMPORTED_MODULE_22__["MainMenuComponentComponent"],
_page_view_wrapper_component_page_view_wrapper_component__WEBPACK_IMPORTED_MODULE_23__["PageViewWrapperComponent"],
_navigation_list_component_navigation_list_component_component__WEBPACK_IMPORTED_MODULE_24__["NavigationListComponentComponent"],
_navigation_list_component_navtree_directive_directive__WEBPACK_IMPORTED_MODULE_27__["NavTree"],
_content_view_tab_component_lazy_image_load_directive_directive__WEBPACK_IMPORTED_MODULE_28__["LazyImageLoadDirectiveDirective"],
_impressum_component__WEBPACK_IMPORTED_MODULE_29__["ImpressumComponent"],
_project_component__WEBPACK_IMPORTED_MODULE_30__["ProjectComponent"]
],
imports: [
_app_routing__WEBPACK_IMPORTED_MODULE_17__["routing"],
_angular_platform_browser__WEBPACK_IMPORTED_MODULE_2__["BrowserModule"],
_angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_3__["BrowserAnimationsModule"],
_angular_common__WEBPACK_IMPORTED_MODULE_14__["CommonModule"],
_angular_common_http__WEBPACK_IMPORTED_MODULE_15__["HttpClientModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_7__["MatButtonModule"],
_angular_material_card__WEBPACK_IMPORTED_MODULE_6__["MatCardModule"],
_angular_material_expansion__WEBPACK_IMPORTED_MODULE_8__["MatExpansionModule"],
_angular_material_icon__WEBPACK_IMPORTED_MODULE_9__["MatIconModule"],
_angular_material_list__WEBPACK_IMPORTED_MODULE_10__["MatListModule"],
_angular_material_menu__WEBPACK_IMPORTED_MODULE_11__["MatMenuModule"],
_angular_material_select__WEBPACK_IMPORTED_MODULE_12__["MatSelectModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_7__["MatSidenavModule"],
_angular_material_tabs__WEBPACK_IMPORTED_MODULE_13__["MatTabsModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_7__["MatToolbarModule"],
_angular_forms__WEBPACK_IMPORTED_MODULE_4__["FormsModule"],
_tln_edition_tln_edition_module__WEBPACK_IMPORTED_MODULE_26__["TlnEditionModule"],
_angular_forms__WEBPACK_IMPORTED_MODULE_4__["ReactiveFormsModule"]
],
providers: [_services_navigation_service_service__WEBPACK_IMPORTED_MODULE_25__["NavigationServiceService"], _services_query_service__WEBPACK_IMPORTED_MODULE_16__["QueryService"]],
bootstrap: [_app_component__WEBPACK_IMPORTED_MODULE_1__["AppComponent"]]
})
], AppModule);
/***/ }),
/***/ "./src/app/app.routing.ts":
/*!********************************!*\
!*** ./src/app/app.routing.ts ***!
\********************************/
/*! exports provided: routing */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "routing", function() { return routing; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */ var _home_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./home.component */ "./src/app/home.component.ts");
/* harmony import */ var _impressum_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./impressum.component */ "./src/app/impressum.component.ts");
/* harmony import */ var _project_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./project.component */ "./src/app/project.component.ts");
/* harmony import */ var _content_view_tab_component_content_view_tab_component_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./content-view-tab-component/content-view-tab-component.component */ "./src/app/content-view-tab-component/content-view-tab-component.component.ts");
/* harmony import */ var _content_view_tab_component_content_view_routes__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./content-view-tab-component/content-view-routes */ "./src/app/content-view-tab-component/content-view-routes.ts");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./constants */ "./src/app/constants.ts");
const APP_ROUTES = [
{ path: '', redirectTo: _constants__WEBPACK_IMPORTED_MODULE_7__["HOME_ROUTE"], pathMatch: 'prefix' },
{ path: _constants__WEBPACK_IMPORTED_MODULE_7__["HOME_ROUTE"], component: _home_component__WEBPACK_IMPORTED_MODULE_2__["HomeComponent"] },
{ path: _constants__WEBPACK_IMPORTED_MODULE_7__["CONTENT_VIEW_ROUTE"], component: _content_view_tab_component_content_view_tab_component_component__WEBPACK_IMPORTED_MODULE_5__["ContentViewTabComponentComponent"], children: _content_view_tab_component_content_view_routes__WEBPACK_IMPORTED_MODULE_6__["CONTENT_ROUTES"] },
{ path: _constants__WEBPACK_IMPORTED_MODULE_7__["PROJECT_ROUTE"], component: _project_component__WEBPACK_IMPORTED_MODULE_4__["ProjectComponent"] },
{ path: _constants__WEBPACK_IMPORTED_MODULE_7__["IMPRESSUM_ROUTE"], component: _impressum_component__WEBPACK_IMPORTED_MODULE_3__["ImpressumComponent"] },
{ path: '**', redirectTo: _constants__WEBPACK_IMPORTED_MODULE_7__["HOME_ROUTE"], pathMatch: 'prefix' } // any other unknown url will be forwarded to home
];
const routing = _angular_router__WEBPACK_IMPORTED_MODULE_1__["RouterModule"].forRoot(APP_ROUTES);
/***/ }),
/***/ "./src/app/constants.ts":
/*!******************************!*\
!*** ./src/app/constants.ts ***!
\******************************/
/*! exports provided: CONTENT_VIEW_ROUTE, DOCUMENTATION_ROUTE, HOME_ROUTE, IMPRESSUM_ROUTE, PROJECT_ROUTE */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CONTENT_VIEW_ROUTE", function() { return CONTENT_VIEW_ROUTE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DOCUMENTATION_ROUTE", function() { return DOCUMENTATION_ROUTE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HOME_ROUTE", function() { return HOME_ROUTE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IMPRESSUM_ROUTE", function() { return IMPRESSUM_ROUTE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PROJECT_ROUTE", function() { return PROJECT_ROUTE; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
const CONTENT_VIEW_ROUTE = 'contentView';
const DOCUMENTATION_ROUTE = 'doku';
const HOME_ROUTE = 'home';
const IMPRESSUM_ROUTE = 'impressum';
const PROJECT_ROUTE = 'project';
/***/ }),
/***/ "./src/app/content-view-tab-component/content-view-routes.ts":
/*!*******************************************************************!*\
!*** ./src/app/content-view-tab-component/content-view-routes.ts ***!
\*******************************************************************/
/*! exports provided: CONTENT_ROUTES */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CONTENT_ROUTES", function() { return CONTENT_ROUTES; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _manuscript_view_component_manuscript_view_component_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../manuscript-view-component/manuscript-view-component.component */ "./src/app/manuscript-view-component/manuscript-view-component.component.ts");
/* harmony import */ var _rhizome_view_component_rhizome_view_component_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../rhizome-view-component/rhizome-view-component.component */ "./src/app/rhizome-view-component/rhizome-view-component.component.ts");
/* harmony import */ var _page_view_wrapper_component_page_view_wrapper_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../page-view-wrapper-component/page-view-wrapper.component */ "./src/app/page-view-wrapper-component/page-view-wrapper.component.ts");
/* harmony import */ var _tln_edition_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../tln-edition/constants */ "./src/app/tln-edition/constants.ts");
/* harmony import */ var _tln_edition_tln_fulltext_tln_fulltext_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../tln-edition/tln-fulltext/tln-fulltext.component */ "./src/app/tln-edition/tln-fulltext/tln-fulltext.component.ts");
const CONTENT_ROUTES = [
{ path: _tln_edition_constants__WEBPACK_IMPORTED_MODULE_4__["TLN_MANUSCRIPT_ROUTE"], component: _manuscript_view_component_manuscript_view_component_component__WEBPACK_IMPORTED_MODULE_1__["ManuscriptViewComponentComponent"] },
{ path: _tln_edition_constants__WEBPACK_IMPORTED_MODULE_4__["TLN_VIEWER_ROUTE"], component: _page_view_wrapper_component_page_view_wrapper_component__WEBPACK_IMPORTED_MODULE_3__["PageViewWrapperComponent"] },
{ path: _tln_edition_constants__WEBPACK_IMPORTED_MODULE_4__["TLN_CROSSREF_ROUTE"], component: _rhizome_view_component_rhizome_view_component_component__WEBPACK_IMPORTED_MODULE_2__["RhizomeViewComponentComponent"] },
{ path: _tln_edition_constants__WEBPACK_IMPORTED_MODULE_4__["TLN_SEARCH_ROUTE"], component: _tln_edition_tln_fulltext_tln_fulltext_component__WEBPACK_IMPORTED_MODULE_5__["TlnFulltextComponent"] },
{ path: '', redirectTo: _tln_edition_constants__WEBPACK_IMPORTED_MODULE_4__["TLN_MANUSCRIPT_ROUTE"], pathMatch: 'prefix' }
];
/***/ }),
/***/ "./src/app/content-view-tab-component/content-view-tab-component.component.scss":
/*!**************************************************************************************!*\
!*** ./src/app/content-view-tab-component/content-view-tab-component.component.scss ***!
\**************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = (".mat-drawer-container {\n width: 100%;\n}\n\n.mat-drawer {\n overflow: hidden;\n padding: 10px;\n margin-right: 10px;\n max-height: 100%;\n min-height: 90%;\n}\n\n.mat-card {\n width: 100%;\n}\n\n.mat-drawer-content {\n min-height: 100vh;\n width: 100%;\n height: 100%;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL2NvbnRlbnQtdmlldy10YWItY29tcG9uZW50L2NvbnRlbnQtdmlldy10YWItY29tcG9uZW50LmNvbXBvbmVudC5zY3NzIiwiYXBwL2NvbnRlbnQtdmlldy10YWItY29tcG9uZW50L2NvbnRlbnQtdmlldy10YWItY29tcG9uZW50LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0VBQ0UsV0FBQTtBQ0FGOztBREdBO0VBQ0UsZ0JBQUE7RUFDQSxhQUFBO0VBQ0Esa0JBQUE7RUFFQSxnQkFBQTtFQUNBLGVBQUE7QUNERjs7QURJQTtFQUNFLFdBQUE7QUNERjs7QURJQTtFQUNFLGlCQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7QUNERiIsImZpbGUiOiJhcHAvY29udGVudC12aWV3LXRhYi1jb21wb25lbnQvY29udGVudC12aWV3LXRhYi1jb21wb25lbnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0aGUgbmF2aWdhdGlvbiBkcmF3ZXIgb24gdGhlIHZlcnkgbGVmdCBjb250YWluaW5nIHRoZSBpdGVtcyB0byBjaG9vc2UgZnJvbVxuLm1hdC1kcmF3ZXItY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5tYXQtZHJhd2VyIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMTBweDtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuXG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDkwJTtcbn1cblxuLm1hdC1jYXJkIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5tYXQtZHJhd2VyLWNvbnRlbnQge1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbiIsIi5tYXQtZHJhd2VyLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubWF0LWRyYXdlciB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogOTAlO1xufVxuXG4ubWF0LWNhcmQge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLm1hdC1kcmF3ZXItY29udGVudCB7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufSJdfQ== */");
+/* harmony default export */ __webpack_exports__["default"] = (".mat-drawer-container {\n width: 100%;\n}\n\n.mat-drawer {\n overflow: hidden;\n padding: 10px;\n margin-right: 10px;\n max-height: 100%;\n min-height: 90%;\n}\n\n.mat-card {\n width: 100%;\n}\n\n.mat-drawer-content {\n min-height: 100vh;\n width: 100%;\n height: 100%;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL2NvbnRlbnQtdmlldy10YWItY29tcG9uZW50L2NvbnRlbnQtdmlldy10YWItY29tcG9uZW50LmNvbXBvbmVudC5zY3NzIiwiY29udGVudC12aWV3LXRhYi1jb21wb25lbnQvY29udGVudC12aWV3LXRhYi1jb21wb25lbnQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDRSxXQUFBO0FDQUY7O0FER0E7RUFDRSxnQkFBQTtFQUNBLGFBQUE7RUFDQSxrQkFBQTtFQUVBLGdCQUFBO0VBQ0EsZUFBQTtBQ0RGOztBRElBO0VBQ0UsV0FBQTtBQ0RGOztBRElBO0VBQ0UsaUJBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtBQ0RGIiwiZmlsZSI6ImNvbnRlbnQtdmlldy10YWItY29tcG9uZW50L2NvbnRlbnQtdmlldy10YWItY29tcG9uZW50LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdGhlIG5hdmlnYXRpb24gZHJhd2VyIG9uIHRoZSB2ZXJ5IGxlZnQgY29udGFpbmluZyB0aGUgaXRlbXMgdG8gY2hvb3NlIGZyb21cbi5tYXQtZHJhd2VyLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubWF0LWRyYXdlciB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcblxuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiA5MCU7XG59XG5cbi5tYXQtY2FyZCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubWF0LWRyYXdlci1jb250ZW50IHtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4iLCIubWF0LWRyYXdlci1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLm1hdC1kcmF3ZXIge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAxMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDkwJTtcbn1cblxuLm1hdC1jYXJkIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5tYXQtZHJhd2VyLWNvbnRlbnQge1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn0iXX0= */");
/***/ }),
/***/ "./src/app/content-view-tab-component/content-view-tab-component.component.ts":
/*!************************************************************************************!*\
!*** ./src/app/content-view-tab-component/content-view-tab-component.component.ts ***!
\************************************************************************************/
/*! exports provided: ContentViewTabComponentComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ContentViewTabComponentComponent", function() { return ContentViewTabComponentComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */ var _services_navigation_service_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../services/navigation-service.service */ "./src/app/services/navigation-service.service.ts");
/* harmony import */ var _tln_edition_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../tln-edition/constants */ "./src/app/tln-edition/constants.ts");
let ContentViewTabComponentComponent = class ContentViewTabComponentComponent {
constructor(router, activatedRoute, naviService) {
this.router = router;
this.activatedRoute = activatedRoute;
this.naviService = naviService;
// navbar on th left for navigating
this.navBarOpenState = false;
this.fullscreen = false;
this.queryParams = {};
// The links/tabs for routing the correct view-component
this.navTabLinks = [
{
label: 'Manuskriptansicht',
link: _tln_edition_constants__WEBPACK_IMPORTED_MODULE_4__["TLN_MANUSCRIPT_ROUTE"],
index: 0,
isActive: false,
context: 'manuscript'
}, {
label: 'Seitenansicht',
link: _tln_edition_constants__WEBPACK_IMPORTED_MODULE_4__["TLN_VIEWER_ROUTE"],
index: 1,
isActive: false,
context: 'page'
}, {
label: 'Querverweise',
link: _tln_edition_constants__WEBPACK_IMPORTED_MODULE_4__["TLN_CROSSREF_ROUTE"],
index: 2,
isActive: false
}, {
label: 'Suche',
link: _tln_edition_constants__WEBPACK_IMPORTED_MODULE_4__["TLN_SEARCH_ROUTE"],
index: 3,
isActive: false
},
];
this.queryParamSubscription = this.activatedRoute.queryParams.subscribe((queryParams) => {
this.queryParams = queryParams;
if (queryParams.navBarOpenState) {
this.navBarOpenState = JSON.parse(queryParams.navBarOpenState.toLowerCase());
}
if (queryParams.fullscreen) {
this.fullscreen = JSON.parse(queryParams.fullscreen.toLowerCase());
}
});
}
ngOnInit() {
// this.mesurePerformance();
this.navBarOpenMode = 'side'; // side || over || push
this.setParamsOnInit();
// If url pasted or page refreshed --> resetting this.queryparams to the query params of the url;
// needed for active routing in the nav tabs & for general use in the template
}
// Sets the isActive prop of a navTabLink to true and all others to false .
setActiveLink(link) {
this.navTabLinks.forEach((navTabLink, index) => {
if (navTabLink.link === link) {
this.navTabLinks[index].isActive = true;
if (navTabLink.context) {
window.setTimeout(() => this.naviService.updateRoute({ navContext: navTabLink.context }), 300);
}
}
else {
this.navTabLinks[index].isActive = false;
}
});
}
mesurePerformance() {
const perfData = window.performance.timing;
const pageLoadTime = perfData.loadEventEnd - perfData.navigationStart;
console.log('content load performance is: ', pageLoadTime);
}
setParamsOnInit() {
const qParams = {};
// Set the NavBarOpenstate to true if it is not defined explicitely as false in the url query param onInit.
if (this.activatedRoute.snapshot.queryParamMap.get('navBarOpenState') !== 'false') {
qParams.navBarOpenState = 'true';
}
// viewMode
if (!this.activatedRoute.snapshot.queryParamMap.get('viewMode')) {
qParams.viewMode = 'Transkription/Faksimile';
}
if (!this.activatedRoute.snapshot.queryParamMap.get('navContext')) {
qParams.navContext = 'manuscript';
this.setActiveLink('tln-manuscript');
}
else {
if (this.activatedRoute.snapshot.queryParamMap.get('navContext') === 'manuscript') {
this.setActiveLink('tln-manuscript');
}
else {
this.setActiveLink('tln-viewer');
}
}
this.naviService.updateRoute(qParams);
}
};
ContentViewTabComponentComponent.ctorParameters = () => [
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"] },
{ type: _services_navigation_service_service__WEBPACK_IMPORTED_MODULE_3__["NavigationServiceService"] }
];
ContentViewTabComponentComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-content-view-tab-component',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./content-view-tab-component.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/content-view-tab-component/content-view-tab-component.component.html")).default,
providers: [_services_navigation_service_service__WEBPACK_IMPORTED_MODULE_3__["NavigationServiceService"]],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./content-view-tab-component.component.scss */ "./src/app/content-view-tab-component/content-view-tab-component.component.scss")).default]
})
], ContentViewTabComponentComponent);
/***/ }),
/***/ "./src/app/content-view-tab-component/lazy-image-load-directive.directive.ts":
/*!***********************************************************************************!*\
!*** ./src/app/content-view-tab-component/lazy-image-load-directive.directive.ts ***!
\***********************************************************************************/
/*! exports provided: LazyImageLoadDirectiveDirective */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LazyImageLoadDirectiveDirective", function() { return LazyImageLoadDirectiveDirective; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
let LazyImageLoadDirectiveDirective = class LazyImageLoadDirectiveDirective {
constructor({ nativeElement }) {
const supports = 'loading' in HTMLImageElement.prototype;
if (supports) {
nativeElement.setAttribute('loading', 'lazy');
}
}
};
LazyImageLoadDirectiveDirective.ctorParameters = () => [
{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ElementRef"] }
];
LazyImageLoadDirectiveDirective = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Directive"])({
selector: 'img'
})
], LazyImageLoadDirectiveDirective);
// IF NOT SUPPORTED IN CHROME: Open chrome://flags in Chromium or Chrome Canary.
// Search for lazy.
// Enable both the “Enable lazy image loading” and the “Enable lazy frame loading” flag.
// Restart the browser with the button in the lower right corner of the screen.
/***/ }),
/***/ "./src/app/home.component.css":
/*!************************************!*\
!*** ./src/app/home.component.css ***!
\************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = (".skip {\n margin-top: 20px;\n}\n.second{\n margin-left: 10px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9ob21lLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxnQkFBZ0I7QUFDbkI7QUFDQTtHQUNHLGlCQUFpQjtBQUNwQiIsImZpbGUiOiJhcHAvaG9tZS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnNraXAge1xuICAgbWFyZ2luLXRvcDogMjBweDtcbn1cbi5zZWNvbmR7XG4gICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbiJdfQ== */");
+/* harmony default export */ __webpack_exports__["default"] = (".skip {\n margin-top: 20px;\n}\n.second{\n margin-left: 10px;\n}\n.hint {\n width: 700px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhvbWUuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLGdCQUFnQjtBQUNuQjtBQUNBO0dBQ0csaUJBQWlCO0FBQ3BCO0FBQ0E7R0FDRyxZQUFZO0FBQ2YiLCJmaWxlIjoiaG9tZS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnNraXAge1xuICAgbWFyZ2luLXRvcDogMjBweDtcbn1cbi5zZWNvbmR7XG4gICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbi5oaW50IHtcbiAgIHdpZHRoOiA3MDBweDtcbn1cbiJdfQ== */");
/***/ }),
/***/ "./src/app/home.component.ts":
/*!***********************************!*\
!*** ./src/app/home.component.ts ***!
\***********************************/
/*! exports provided: HomeComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HomeComponent", function() { return HomeComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ "./src/app/constants.ts");
/* harmony import */ var _tln_edition_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tln-edition/constants */ "./src/app/tln-edition/constants.ts");
let HomeComponent = class HomeComponent {
constructor() {
this.manuscriptLink = ['/' + _constants__WEBPACK_IMPORTED_MODULE_2__["CONTENT_VIEW_ROUTE"], _tln_edition_constants__WEBPACK_IMPORTED_MODULE_3__["TLN_MANUSCRIPT_ROUTE"]];
this.mpXIVParam = {};
this.mpXVParam = {};
}
ngOnInit() {
this.mpXIVParam[_tln_edition_constants__WEBPACK_IMPORTED_MODULE_3__["TLN_MANUSCRIPT_PARAM"]] = 'http://rdfh.ch/projects/0068#_Mp_XIV';
this.mpXVParam[_tln_edition_constants__WEBPACK_IMPORTED_MODULE_3__["TLN_MANUSCRIPT_PARAM"]] = 'http://rdfh.ch/projects/0068#_Mp_XV';
}
};
HomeComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-home-component',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./home.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/home.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./home.component.css */ "./src/app/home.component.css")).default]
})
], HomeComponent);
/***/ }),
/***/ "./src/app/impressum.component.css":
/*!*****************************************!*\
!*** ./src/app/impressum.component.css ***!
\*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = (".text {\n text-align: justify;\n width: 800px;\n}\n.subcontent {\n margin-bottom: 20px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9pbXByZXNzdW0uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLG1CQUFtQjtHQUNuQixZQUFZO0FBQ2Y7QUFDQTtHQUNHLG1CQUFtQjtBQUN0QiIsImZpbGUiOiJhcHAvaW1wcmVzc3VtLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudGV4dCB7XG4gICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgd2lkdGg6IDgwMHB4O1xufVxuLnN1YmNvbnRlbnQge1xuICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cbiJdfQ== */");
+/* harmony default export */ __webpack_exports__["default"] = (".text {\n text-align: justify;\n width: 800px;\n}\n.subcontent {\n margin-bottom: 20px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImltcHJlc3N1bS5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0dBQ0csbUJBQW1CO0dBQ25CLFlBQVk7QUFDZjtBQUNBO0dBQ0csbUJBQW1CO0FBQ3RCIiwiZmlsZSI6ImltcHJlc3N1bS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnRleHQge1xuICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgIHdpZHRoOiA4MDBweDtcbn1cbi5zdWJjb250ZW50IHtcbiAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG4iXX0= */");
/***/ }),
/***/ "./src/app/impressum.component.ts":
/*!****************************************!*\
!*** ./src/app/impressum.component.ts ***!
\****************************************/
/*! exports provided: ImpressumComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ImpressumComponent", function() { return ImpressumComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
let ImpressumComponent = class ImpressumComponent {
constructor() { }
ngOnInit() {
}
};
ImpressumComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-impressum',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./impressum.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/impressum.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./impressum.component.css */ "./src/app/impressum.component.css")).default]
})
], ImpressumComponent);
/***/ }),
/***/ "./src/app/lib/ngx-mat-standoff-markup.component.ts":
/*!**********************************************************!*\
!*** ./src/app/lib/ngx-mat-standoff-markup.component.ts ***!
\**********************************************************/
/*! exports provided: NgxMatStandoffMarkupComponent, StandoffDef, PositionalStyleMarkup, SemanticPositonalAnnotation, Segment, InteractedSegment, OriginalStandoffDef, StyleSheetDef, StandoffMarkupSettings, TextSelection */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgxMatStandoffMarkupComponent", function() { return NgxMatStandoffMarkupComponent; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StandoffDef", function() { return StandoffDef; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PositionalStyleMarkup", function() { return PositionalStyleMarkup; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SemanticPositonalAnnotation", function() { return SemanticPositonalAnnotation; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Segment", function() { return Segment; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InteractedSegment", function() { return InteractedSegment; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OriginalStandoffDef", function() { return OriginalStandoffDef; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StyleSheetDef", function() { return StyleSheetDef; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StandoffMarkupSettings", function() { return StandoffMarkupSettings; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextSelection", function() { return TextSelection; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/platform-browser */ "./node_modules/@angular/platform-browser/fesm2015/platform-browser.js");
/* harmony import */ var _ngx_mat_standoff_markup_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ngx-mat-standoff-markup.service */ "./src/app/lib/ngx-mat-standoff-markup.service.ts");
let NgxMatStandoffMarkupComponent =
/**
* Simple and leightweight component marking up/styling a text input textToStyle with standoff markupDataMerged.
* @param standoffData: the standoff data for style markup/semantic markup.
* @param textToStyle: the text which will be styled acc. to the standoffData.
* @param startIndices: the final startindices to segment the text for markup. Does NOT simply equal all startindices of standoffData. It
* also contains all startindices of segments which are not styled/marked up.
* @param templateSegments: the resulting text segments with their individual markup information. Overlaps are supported
*/
class NgxMatStandoffMarkupComponent {
constructor(sanitizer, standoffService) {
this.sanitizer = sanitizer;
this.standoffService = standoffService;
this.startIndices = []; // the start indices of all style segments
}
ngOnChanges() {
if (this.cssDef.type === 'url') {
this.cssUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.cssDef.css); // the actual url of the css for embetting.
}
this.mergeInputData();
this.startIndices = this.getStartIndices(this.markupDataMerged);
this.segmentText();
}
/**
* Merging the different data inputs to one data array if multiple inputs
*/
mergeInputData() {
if (this.standoffData && this.standoffData.length) {
this.markupDataMerged = this.standoffData;
if ((this.posStyleMarkup && this.posStyleMarkup.length) || (this.semPosAnnotation && this.semPosAnnotation.length)) {
console.log('WARNING: posStyleMarkup or semPosAnnotation input ignored.');
}
}
else {
if ((this.posStyleMarkup && this.posStyleMarkup.length) && (this.semPosAnnotation && this.semPosAnnotation.length)) {
this.markupDataMerged.concat(this.posStyleMarkup, this.semPosAnnotation);
}
else {
if (this.posStyleMarkup && this.posStyleMarkup.length) {
this.markupDataMerged = this.posStyleMarkup;
}
if (this.semPosAnnotation && this.semPosAnnotation.length) {
this.markupDataMerged = this.semPosAnnotation;
}
}
}
}
/**
* Creates the final text segments and styles (this.templateSegments) which will
* be *ngFored as <span> and styled with *ngStyle in the template.
* Iterates through all startindices defined, pushes the corresponding substring
* of our text to style together with its matching styles to this.templateSegments
*
*/
segmentText() {
this.templateSegments = [];
let c = 1; // counter for getting the end index of the substring() via this.startIndices[c]
for (const startIndex of this.startIndices) {
// the text from startIndex to the next startIndex, i.e. the endIndex ...
const segmentText = this.textToStyle.substring(startIndex, this.startIndices[c]);
// all segmentDefs within the given range ...
const segmentDefsInRange = this.markupDataMerged.filter((def) => {
return def.startIndex <= startIndex && startIndex <= def.endIndex;
});
let segment2 = new Segment(segmentText, startIndex, this.markupSettings, segmentDefsInRange);
this.templateSegments.push(segment2);
c += 1;
}
}
/**
* Creates an array of startindices defining the final text/style segments.
* Hence every end index can be described as a startindex minus one (an end
* index equals a start index of sth. new -1), end indices are also covered implicitly.
* So every endIndex +1 is also pushed to the startIndices array if not yet existing.
* If a defined range is ending at the very last character, there is obviously not a new
* style starting and an additive startIndex is wrong. Therefore the last startIndex
* is simply popped from the array if its value exceeds textToStyle.length.
*
* @return startIndices: Array of all distinct startIndices of the final text segments.
*/
getStartIndices(standoffData) {
const startIndices = [];
// Push every startindex to startIndices if not yet there to get a distinct array of startindices for segmenting the text.
// Hence every every end means a start of sth new, every endIndex equals a startIndex -1. Therefore we simply add also
// every endIndex +1 to the Array of startIndices (if there is not yet a start defined for that character).
standoffData.forEach(defEntry => {
if (startIndices.indexOf(defEntry.startIndex) === -1) { // if the startIndex of the defEntry is not yet in startIndices
startIndices.push(defEntry.startIndex);
}
if (startIndices.indexOf(defEntry.endIndex + 1) === -1) {
startIndices.push(defEntry.endIndex + 1);
}
});
// if there is no startindex of 0, we have to add it to define the first text segment.
if (startIndices.indexOf(0) === -1) {
startIndices.push(0);
}
// sort it
startIndices.sort((n1, n2) => n1 - n2);
// If the last endIndex is the very last character of the string to style, we must not generate a startIndex at endIndex+1.
// In any other case we have to start a new style.
// If the last generated startIndex is bigger than this.textToStyle.length
// we have to pop that last startIndex (from the right) from our startIndices.
// If the textToStyle.length is bigger or equals the last startIndex, that last startIndex simply means the end of the style
// one character before. In these cases a last style range with font style undefined (style:normal) has to start,
// so the last end ist also defined.
if (this.textToStyle.length < startIndices[startIndices.length - 1]) {
startIndices.pop();
}
return startIndices;
}
onSegmentClick(segment) {
const sel = window.getSelection(); // needed for preventing onclicks when selecting text
if (sel.type != 'Range' && segment.interact) {
let seg = new InteractedSegment(this.parentId, this.parentClass, segment);
this.standoffService.interactedSegmentEmitter.emit(seg);
}
}
// Text selection only works within a parent element (div). If you have several ngx-mat-standoff-components, e.g.
// in an ngFor loop, you have to read the window data out yourself in your component.
setSelectedText(selectionEndstartIndex) {
if (window.getSelection) {
let sel = window.getSelection();
if (!sel.isCollapsed) {
let totalRangeStartIndex = this.selectionStartIndex + sel.anchorOffset;
let totalRangeEndIndexFocus = selectionEndstartIndex + sel.focusOffset;
// all standoff definitions in that range ...
const segmentDefsInRange = this.markupDataMerged.filter((def) => {
return def.endIndex >= totalRangeStartIndex && def.startIndex <= totalRangeEndIndexFocus;
});
let selectedText = this.textToStyle.substring(totalRangeStartIndex, totalRangeEndIndexFocus);
this.standoffService.selectedTextEmitter.emit(new TextSelection(selectedText, totalRangeStartIndex, totalRangeEndIndexFocus, this.parentId, segmentDefsInRange));
}
}
}
setSelectionStartIndex(startIndex) {
this.selectionStartIndex = startIndex;
}
};
NgxMatStandoffMarkupComponent.ctorParameters = () => [
{ type: _angular_platform_browser__WEBPACK_IMPORTED_MODULE_2__["DomSanitizer"] },
{ type: _ngx_mat_standoff_markup_service__WEBPACK_IMPORTED_MODULE_3__["NgxMatStandoffMarkupService"] }
];
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], NgxMatStandoffMarkupComponent.prototype, "textToStyle", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], NgxMatStandoffMarkupComponent.prototype, "markupSettings", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], NgxMatStandoffMarkupComponent.prototype, "standoffData", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], NgxMatStandoffMarkupComponent.prototype, "posStyleMarkup", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], NgxMatStandoffMarkupComponent.prototype, "semPosAnnotation", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], NgxMatStandoffMarkupComponent.prototype, "cssDef", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], NgxMatStandoffMarkupComponent.prototype, "parentId", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], NgxMatStandoffMarkupComponent.prototype, "parentClass", void 0);
NgxMatStandoffMarkupComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'NgxMat-NgxMatStandoffMarkup',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./ngx-mat-standoff-markup.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/lib/ngx-mat-standoff-markup.component.html")).default
})
/**
* Simple and leightweight component marking up/styling a text input textToStyle with standoff markupDataMerged.
* @param standoffData: the standoff data for style markup/semantic markup.
* @param textToStyle: the text which will be styled acc. to the standoffData.
* @param startIndices: the final startindices to segment the text for markup. Does NOT simply equal all startindices of standoffData. It
* also contains all startindices of segments which are not styled/marked up.
* @param templateSegments: the resulting text segments with their individual markup information. Overlaps are supported
*/
], NgxMatStandoffMarkupComponent);
class StandoffDef {
constructor(sType, startIndex, endIndex) {
this.sType = sType;
this.startIndex = startIndex;
this.endIndex = endIndex;
}
}
class PositionalStyleMarkup extends StandoffDef {
constructor(sType, startIndex, endIndex, cssStyleTag) {
super(sType, startIndex, endIndex);
this.cssStyleTag = cssStyleTag;
}
}
class SemanticPositonalAnnotation extends StandoffDef {
constructor(sType, startIndex, endIndex, cssClass, iri, description, custom) {
super(sType, startIndex, endIndex);
this.cssClass = cssClass;
this.iri = iri;
this.description = description;
this.custom = custom;
}
}
class Segment {
constructor(text, sStartIndex, settings, standoffDef) {
this.sText = text; //the string (=== subString) of the segment
this.sStartIndex = sStartIndex; // the startIndex of the segment within the whole text
this.originalDefs = new OriginalStandoffDef(standoffDef);
this.setSegment(standoffDef, settings);
}
/**
* sets the sType, interact and sStyleDef
*
*/
setSegment(defs, settings) {
if (defs && defs.length > 0) { // If there are definitions ...
// check for markup type overlaps, e.g. definitions for type 0 and type 1
// by checking the length of a Set (= distinct) of all sTypes in defs.
if (Array.from(new Set(defs.map((item) => item.sType))).length > 1) { // If >1 there is an overlap
// set the sType depending on the markupPreference ...
this.sType = settings.markupPreference;
this.sType === 0 ? this.setSyle(defs) : this.setClass(defs, settings.polysemanticWrapper);
}
else {
this.sType = defs[0].sType;
} // if there is only one sType within defs we set that
// setting the interact according to the sType.
this.sType === 0 ? this.interact = settings.interactWithStyles : this.interact = settings.interactWithAnnotations;
let filteredDefs = defs.filter((def) => { return def.sType === this.sType; }); // subset of all defs which type === sType
this.sType === 0 ? this.setSyle(filteredDefs) : this.setClass(filteredDefs, settings.polysemanticWrapper);
}
else {
// If there is nothing defined for the text segment at all ...
this.setUndefinedSegmentParts(settings.interactWithUndefined);
}
}
setSyle(defs) {
defs.forEach(def => {
const posStyle = def;
// Adds every css property/value to the markup object
// splitting multiple styles at ';'
// removes leading and ending spaces, deletes ";" and assigns it as an object as css property:"value"
this.cssStyleTag = {};
posStyle.cssStyleTag.split(';').forEach(style => {
if (style.trim().length > 0) {
this.cssStyleTag[style.split(':')[0].trim()] = style.split(':')[1].trim();
}
});
});
}
setClass(defs, polysemanticWrapper) {
this.cssClass = {};
if (polysemanticWrapper && defs.length > 1) {
this.cssClass[polysemanticWrapper] = true;
}
else {
defs.forEach(def => {
const posSem = def;
// adding a class
this.cssClass[posSem.cssClass.trim().replace('.', ' ')] = true;
});
}
}
setUndefinedSegmentParts(interact) {
this.sType = 0;
this.cssStyleTag = []; // {'font-style': 'normal'}
this.interact = interact;
}
}
class InteractedSegment {
constructor(parentId, parentClass, segment) {
this.parentClass = parentClass;
this.parentId = parentId;
this.segment = segment;
}
}
class OriginalStandoffDef {
constructor(standOffDef) {
this.positionalMarkup = standOffDef.filter((def) => { return def.sType === 0; }); // subset of all defs which type === 0
this.semanticAnnotation = standOffDef.filter((def) => { return def.sType === 1; }); // subset of all defs which type === 1
}
}
class StyleSheetDef {
constructor(css, type) {
this.css = css;
this.type = type;
}
}
class StandoffMarkupSettings {
constructor(interactWithStyles = false, interactWithAnnotations = true, interactWithUndefined = false, markupPreference = 1, polysemanticWrapper) {
this.interactWithStyles = interactWithStyles;
this.interactWithAnnotations = interactWithAnnotations;
this.interactWithUndefined = interactWithUndefined;
this.markupPreference = markupPreference;
this.polysemanticWrapper = polysemanticWrapper;
}
}
class TextSelection {
constructor(text, startIndex, endIndex, parentId, standoffDefsInRange) {
this.text = text;
this.startIndex = startIndex;
this.endIndex = endIndex;
this.parentId = parentId;
this.standoffDefsInRange = standoffDefsInRange;
}
}
/***/ }),
/***/ "./src/app/lib/ngx-mat-standoff-markup.module.ts":
/*!*******************************************************!*\
!*** ./src/app/lib/ngx-mat-standoff-markup.module.ts ***!
\*******************************************************/
/*! exports provided: NgxMatStandoffMarkupModule */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgxMatStandoffMarkupModule", function() { return NgxMatStandoffMarkupModule; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _ngx_mat_standoff_markup_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ngx-mat-standoff-markup.component */ "./src/app/lib/ngx-mat-standoff-markup.component.ts");
/* harmony import */ var _angular_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/material */ "./node_modules/@angular/material/esm2015/material.js");
/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/platform-browser */ "./node_modules/@angular/platform-browser/fesm2015/platform-browser.js");
/* harmony import */ var _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/platform-browser/animations */ "./node_modules/@angular/platform-browser/fesm2015/animations.js");
/* harmony import */ var _ngx_mat_standoff_markup_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ngx-mat-standoff-markup.service */ "./src/app/lib/ngx-mat-standoff-markup.service.ts");
let NgxMatStandoffMarkupModule = class NgxMatStandoffMarkupModule {
};
NgxMatStandoffMarkupModule = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({
declarations: [
_ngx_mat_standoff_markup_component__WEBPACK_IMPORTED_MODULE_2__["NgxMatStandoffMarkupComponent"]
],
imports: [
_angular_material__WEBPACK_IMPORTED_MODULE_3__["MatTooltipModule"],
_angular_platform_browser__WEBPACK_IMPORTED_MODULE_4__["BrowserModule"],
_angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_5__["BrowserAnimationsModule"]
],
exports: [_ngx_mat_standoff_markup_component__WEBPACK_IMPORTED_MODULE_2__["NgxMatStandoffMarkupComponent"]],
providers: [_ngx_mat_standoff_markup_service__WEBPACK_IMPORTED_MODULE_6__["NgxMatStandoffMarkupService"]]
})
], NgxMatStandoffMarkupModule);
/***/ }),
/***/ "./src/app/lib/ngx-mat-standoff-markup.service.ts":
/*!********************************************************!*\
!*** ./src/app/lib/ngx-mat-standoff-markup.service.ts ***!
\********************************************************/
/*! exports provided: NgxMatStandoffMarkupService */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgxMatStandoffMarkupService", function() { return NgxMatStandoffMarkupService; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
let NgxMatStandoffMarkupService = class NgxMatStandoffMarkupService {
constructor() {
// subscribe here to the selected things. For editing your standoff markup/semantic annotations
this.interactedSegmentEmitter = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
this.selectedTextEmitter = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); // multiple spaces removed
}
};
NgxMatStandoffMarkupService = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"])({
providedIn: 'root'
})
], NgxMatStandoffMarkupService);
/***/ }),
/***/ "./src/app/main-menu-component/main-menu-component.component.scss":
/*!************************************************************************!*\
!*** ./src/app/main-menu-component/main-menu-component.component.scss ***!
\************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = ("\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhcHAvbWFpbi1tZW51LWNvbXBvbmVudC9tYWluLW1lbnUtY29tcG9uZW50LmNvbXBvbmVudC5zY3NzIn0= */");
+/* harmony default export */ __webpack_exports__["default"] = ("\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJtYWluLW1lbnUtY29tcG9uZW50L21haW4tbWVudS1jb21wb25lbnQuY29tcG9uZW50LnNjc3MifQ== */");
/***/ }),
/***/ "./src/app/main-menu-component/main-menu-component.component.ts":
/*!**********************************************************************!*\
!*** ./src/app/main-menu-component/main-menu-component.component.ts ***!
\**********************************************************************/
/*! exports provided: MainMenuComponentComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MainMenuComponentComponent", function() { return MainMenuComponentComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../constants */ "./src/app/constants.ts");
let MainMenuComponentComponent = class MainMenuComponentComponent {
constructor(activatedRoute) {
this.activatedRoute = activatedRoute;
this.contentViewLink = [_constants__WEBPACK_IMPORTED_MODULE_3__["CONTENT_VIEW_ROUTE"]];
this.impressumLink = [_constants__WEBPACK_IMPORTED_MODULE_3__["IMPRESSUM_ROUTE"]];
this.homeLink = [_constants__WEBPACK_IMPORTED_MODULE_3__["HOME_ROUTE"]];
this.projectLink = [_constants__WEBPACK_IMPORTED_MODULE_3__["PROJECT_ROUTE"]];
}
ngOnInit() {
this.queryParamSub = this.activatedRoute.queryParams.subscribe((queryParams) => {
this.fullScreen = queryParams.fullscreen;
this.queryParams = queryParams;
});
}
};
MainMenuComponentComponent.ctorParameters = () => [
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"] }
];
MainMenuComponentComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-main-menu-component',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./main-menu-component.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/main-menu-component/main-menu-component.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./main-menu-component.component.scss */ "./src/app/main-menu-component/main-menu-component.component.scss")).default]
})
], MainMenuComponentComponent);
/***/ }),
/***/ "./src/app/manuscript-view-component/manuscript-view-component.component.scss":
/*!************************************************************************************!*\
!*** ./src/app/manuscript-view-component/manuscript-view-component.component.scss ***!
\************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = (".content-area {\n height: 100%;\n display: table;\n}\n\n.nav-container {\n height: 100%;\n width: 50%;\n display: table-cell;\n}\n\n.content-container {\n height: 100%;\n display: table-cell;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL21hbnVzY3JpcHQtdmlldy1jb21wb25lbnQvbWFudXNjcmlwdC12aWV3LWNvbXBvbmVudC5jb21wb25lbnQuc2NzcyIsImFwcC9tYW51c2NyaXB0LXZpZXctY29tcG9uZW50L21hbnVzY3JpcHQtdmlldy1jb21wb25lbnQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxZQUFBO0VBQ0EsY0FBQTtBQ0NGOztBREVBO0VBQ0UsWUFBQTtFQUVBLFVBQUE7RUFDQSxtQkFBQTtBQ0FGOztBREdBO0VBQ0UsWUFBQTtFQUdBLG1CQUFBO0FDRkYiLCJmaWxlIjoiYXBwL21hbnVzY3JpcHQtdmlldy1jb21wb25lbnQvbWFudXNjcmlwdC12aWV3LWNvbXBvbmVudC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jb250ZW50LWFyZWEge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6dGFibGU7XG59XG5cbi5uYXYtY29udGFpbmVyIHtcbiAgaGVpZ2h0OjEwMCU7XG4gIC8vbWluLXdpZHRoOiB1bnNldDsgLy8gbmVlZGVkIGJlY2F1c2UgYW5ndWxhciBzZXRzIGFuIG93biBtaW4gd2lkdGghP1xuICB3aWR0aDo1MCU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG5cbi5jb250ZW50LWNvbnRhaW5lciB7XG4gIGhlaWdodDoxMDAlO1xuICAvLyBtaW4td2lkdGg6IHVuc2V0OyAvLyBuZWVkZWQgYmVjYXVzZSBhbmd1bGFyIHNldHMgYW4gb3duIG1pbiB3aWR0aCE/XG4gIC8vIHdpZHRoOjIwcHg7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG4iLCIuY29udGVudC1hcmVhIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLm5hdi1jb250YWluZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiA1MCU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG5cbi5jb250ZW50LWNvbnRhaW5lciB7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbn0iXX0= */");
+/* harmony default export */ __webpack_exports__["default"] = (".content-area {\n height: 100%;\n display: table;\n}\n\n.nav-container {\n height: 100%;\n width: 50%;\n display: table-cell;\n}\n\n.content-container {\n height: 100%;\n display: table-cell;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL21hbnVzY3JpcHQtdmlldy1jb21wb25lbnQvbWFudXNjcmlwdC12aWV3LWNvbXBvbmVudC5jb21wb25lbnQuc2NzcyIsIm1hbnVzY3JpcHQtdmlldy1jb21wb25lbnQvbWFudXNjcmlwdC12aWV3LWNvbXBvbmVudC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFlBQUE7RUFDQSxjQUFBO0FDQ0Y7O0FERUE7RUFDRSxZQUFBO0VBRUEsVUFBQTtFQUNBLG1CQUFBO0FDQUY7O0FER0E7RUFDRSxZQUFBO0VBR0EsbUJBQUE7QUNGRiIsImZpbGUiOiJtYW51c2NyaXB0LXZpZXctY29tcG9uZW50L21hbnVzY3JpcHQtdmlldy1jb21wb25lbnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuY29udGVudC1hcmVhIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OnRhYmxlO1xufVxuXG4ubmF2LWNvbnRhaW5lciB7XG4gIGhlaWdodDoxMDAlO1xuICAvL21pbi13aWR0aDogdW5zZXQ7IC8vIG5lZWRlZCBiZWNhdXNlIGFuZ3VsYXIgc2V0cyBhbiBvd24gbWluIHdpZHRoIT9cbiAgd2lkdGg6NTAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuXG4uY29udGVudC1jb250YWluZXIge1xuICBoZWlnaHQ6MTAwJTtcbiAgLy8gbWluLXdpZHRoOiB1bnNldDsgLy8gbmVlZGVkIGJlY2F1c2UgYW5ndWxhciBzZXRzIGFuIG93biBtaW4gd2lkdGghP1xuICAvLyB3aWR0aDoyMHB4O1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuIiwiLmNvbnRlbnQtYXJlYSB7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi5uYXYtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogNTAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuXG4uY29udGVudC1jb250YWluZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59Il19 */");
/***/ }),
/***/ "./src/app/manuscript-view-component/manuscript-view-component.component.ts":
/*!**********************************************************************************!*\
!*** ./src/app/manuscript-view-component/manuscript-view-component.component.ts ***!
\**********************************************************************************/
/*! exports provided: ManuscriptViewComponentComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ManuscriptViewComponentComponent", function() { return ManuscriptViewComponentComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
let ManuscriptViewComponentComponent = class ManuscriptViewComponentComponent {
constructor() { }
ngOnInit() {
}
};
ManuscriptViewComponentComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-manuscript-view-component',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./manuscript-view-component.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/manuscript-view-component/manuscript-view-component.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./manuscript-view-component.component.scss */ "./src/app/manuscript-view-component/manuscript-view-component.component.scss")).default]
})
], ManuscriptViewComponentComponent);
/***/ }),
/***/ "./src/app/models/models.ts":
/*!**********************************!*\
!*** ./src/app/models/models.ts ***!
\**********************************/
/*! exports provided: TlnEntity, TlnQueryParams, NavigationEntity, ApiDef, TlnEntityMapping */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnEntity", function() { return TlnEntity; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnQueryParams", function() { return TlnQueryParams; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NavigationEntity", function() { return NavigationEntity; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ApiDef", function() { return ApiDef; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnEntityMapping", function() { return TlnEntityMapping; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
class TlnEntity {
constructor(id, iri, type, navContext, label, description) {
this.id = id;
this.iri = iri;
this.type = type;
this.navContext = navContext;
this.label = label;
this.description = description;
}
}
class TlnQueryParams {
constructor(navBarOpenState, navContext, manuscript, page, selectedLines, selectedWords, viewMode, fullscreen, zoom) {
this.navBarOpenState = navBarOpenState; //proposed solution: JSON.parse(navBarOpenState)
this.navContext = navContext; // proposed solution: Number(navTabIndex)
this.manuscript = manuscript;
this.page = page;
this.selectedLines = selectedLines;
this.selectedWords = selectedWords;
this.viewMode = viewMode;
this.fullscreen = fullscreen; // proposed solution: JSON.parse(fullscreen)
this.zoom = zoom; // proposed solution: Number(zoom)
// console.log('TlnQueryParams.fullscreen typeof:', typeof this.fullscreen, 'TlnQueryParams.zoom typeof:', typeof this.zoom);
}
}
// The navigation entries in each tree for each viewtab (TlnManuscript, TlnPage, PositionalEntity) used by navigation
//
class NavigationEntity {
constructor(idx, tlnEntity, thumb, img, svg, avatar) {
this.idx = idx;
this.tlnEntity = tlnEntity;
this.thumb = thumb;
this.img = img;
this.svg = svg;
this.avatar = avatar;
}
}
class ApiDef {
constructor(type, baseUrl, dataArray, query, mapping) {
this.type = type;
this.baseUrl = baseUrl;
this.dataArray = dataArray;
this.query = query;
this.mapping = mapping;
}
}
class TlnEntityMapping {
constructor(id, iri, idx, type, label, description, avatar, svg, thumb) {
this.id = id;
this.iri = iri;
this.idx = idx;
this.type = type;
this.label = label;
this.description = description;
this.avatar = avatar;
this.svg = svg;
this.thumb = thumb;
}
}
/***/ }),
/***/ "./src/app/navigation-list-component/navigation-list-component.component.scss":
/*!************************************************************************************!*\
!*** ./src/app/navigation-list-component/navigation-list-component.component.scss ***!
\************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = (".fixed-nav-container {\n position: -webkit-sticky;\n position: sticky;\n max-height: 15vh;\n}\n\n.navlist-container {\n position: -webkit-sticky;\n position: sticky;\n max-height: 85vh;\n overflow-x: hidden;\n overflow-y: auto;\n scroll-behavior: smooth;\n}\n\n.mat-nav-list {\n scroll-behavior: smooth;\n}\n\n.mat-nav-list .mat-list-item {\n width: 100%;\n min-height: 72px;\n height: 100%;\n /* default is 72px */\n padding: 0 !important;\n margin: 0 !important;\n}\n\n.thumbnail {\n max-width: 100px;\n max-height: 100px;\n}\n\n.card-item {\n width: 100%;\n min-width: 100%;\n margin-top: 5px;\n background-color: rgba(255, 255, 255, 0) !important;\n}\n\n.active-item {\n background: linear-gradient(to right, rgba(255, 255, 255, 0), #dadada);\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL25hdmlnYXRpb24tbGlzdC1jb21wb25lbnQvbmF2aWdhdGlvbi1saXN0LWNvbXBvbmVudC5jb21wb25lbnQuc2NzcyIsImFwcC9uYXZpZ2F0aW9uLWxpc3QtY29tcG9uZW50L25hdmlnYXRpb24tbGlzdC1jb21wb25lbnQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSx3QkFBQTtFQUFBLGdCQUFBO0VBQ0EsZ0JBQUE7QUNDRjs7QURFQTtFQUNFLHdCQUFBO0VBQUEsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSx1QkFBQTtBQ0NGOztBREVBO0VBQ0UsdUJBQUE7QUNDRjs7QURFQTtFQUNFLFdBQUE7RUFDQSxnQkFBQTtFQUNBLFlBQUE7RUFBYyxvQkFBQTtFQUNkLHFCQUFBO0VBQ0Esb0JBQUE7QUNFRjs7QURDQTtFQUNFLGdCQUFBO0VBQ0EsaUJBQUE7QUNFRjs7QURDQTtFQUNFLFdBQUE7RUFDQSxlQUFBO0VBQ0EsZUFBQTtFQUNBLG1EQUFBO0FDRUY7O0FEQ0E7RUFDRSxzRUFBQTtBQ0VGIiwiZmlsZSI6ImFwcC9uYXZpZ2F0aW9uLWxpc3QtY29tcG9uZW50L25hdmlnYXRpb24tbGlzdC1jb21wb25lbnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZml4ZWQtbmF2LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIG1heC1oZWlnaHQ6IDE1dmg7XG59XG5cbi5uYXZsaXN0LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIG1heC1oZWlnaHQ6IDg1dmg7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG59XG5cbi5tYXQtbmF2LWxpc3Qge1xuICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbn1cblxuLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiA3MnB4O1xuICBoZWlnaHQ6IDEwMCU7IC8qIGRlZmF1bHQgaXMgNzJweCAqL1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cblxuLnRodW1ibmFpbCB7XG4gIG1heC13aWR0aDogMTAwcHg7XG4gIG1heC1oZWlnaHQ6IDEwMHB4O1xufVxuXG4uY2FyZC1pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMTAwJTtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApICFpbXBvcnRhbnQ7XG59XG5cbi5hY3RpdmUtaXRlbSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAsICNkYWRhZGEpO1xufVxuIiwiLmZpeGVkLW5hdi1jb250YWluZXIge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBtYXgtaGVpZ2h0OiAxNXZoO1xufVxuXG4ubmF2bGlzdC1jb250YWluZXIge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBtYXgtaGVpZ2h0OiA4NXZoO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xufVxuXG4ubWF0LW5hdi1saXN0IHtcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG59XG5cbi5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW0ge1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogNzJweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICAvKiBkZWZhdWx0IGlzIDcycHggKi9cbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cblxuLnRodW1ibmFpbCB7XG4gIG1heC13aWR0aDogMTAwcHg7XG4gIG1heC1oZWlnaHQ6IDEwMHB4O1xufVxuXG4uY2FyZC1pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMTAwJTtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApICFpbXBvcnRhbnQ7XG59XG5cbi5hY3RpdmUtaXRlbSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSwgI2RhZGFkYSk7XG59Il19 */");
+/* harmony default export */ __webpack_exports__["default"] = (".fixed-nav-container {\n position: -webkit-sticky;\n position: sticky;\n max-height: 15vh;\n}\n\n.navlist-container {\n position: -webkit-sticky;\n position: sticky;\n max-height: 85vh;\n overflow-x: hidden;\n overflow-y: auto;\n scroll-behavior: smooth;\n}\n\n.mat-nav-list {\n scroll-behavior: smooth;\n}\n\n.mat-nav-list .mat-list-item {\n width: 100%;\n min-height: 72px;\n height: 100%;\n /* default is 72px */\n padding: 0 !important;\n margin: 0 !important;\n}\n\n.thumbnail {\n max-width: 100px;\n max-height: 100px;\n}\n\n.card-item {\n width: 100%;\n min-width: 100%;\n margin-top: 5px;\n background-color: rgba(255, 255, 255, 0) !important;\n}\n\n.active-item {\n background: linear-gradient(to right, rgba(255, 255, 255, 0), #dadada);\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL25hdmlnYXRpb24tbGlzdC1jb21wb25lbnQvbmF2aWdhdGlvbi1saXN0LWNvbXBvbmVudC5jb21wb25lbnQuc2NzcyIsIm5hdmlnYXRpb24tbGlzdC1jb21wb25lbnQvbmF2aWdhdGlvbi1saXN0LWNvbXBvbmVudC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHdCQUFBO0VBQUEsZ0JBQUE7RUFDQSxnQkFBQTtBQ0NGOztBREVBO0VBQ0Usd0JBQUE7RUFBQSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLHVCQUFBO0FDQ0Y7O0FERUE7RUFDRSx1QkFBQTtBQ0NGOztBREVBO0VBQ0UsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsWUFBQTtFQUFjLG9CQUFBO0VBQ2QscUJBQUE7RUFDQSxvQkFBQTtBQ0VGOztBRENBO0VBQ0UsZ0JBQUE7RUFDQSxpQkFBQTtBQ0VGOztBRENBO0VBQ0UsV0FBQTtFQUNBLGVBQUE7RUFDQSxlQUFBO0VBQ0EsbURBQUE7QUNFRjs7QURDQTtFQUNFLHNFQUFBO0FDRUYiLCJmaWxlIjoibmF2aWdhdGlvbi1saXN0LWNvbXBvbmVudC9uYXZpZ2F0aW9uLWxpc3QtY29tcG9uZW50LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZpeGVkLW5hdi1jb250YWluZXIge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBtYXgtaGVpZ2h0OiAxNXZoO1xufVxuXG4ubmF2bGlzdC1jb250YWluZXIge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBtYXgtaGVpZ2h0OiA4NXZoO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xufVxuXG4ubWF0LW5hdi1saXN0IHtcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG59XG5cbi5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW0ge1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogNzJweDtcbiAgaGVpZ2h0OiAxMDAlOyAvKiBkZWZhdWx0IGlzIDcycHggKi9cbiAgcGFkZGluZzogMCAhaW1wb3J0YW50OztcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG59XG5cbi50aHVtYm5haWwge1xuICBtYXgtd2lkdGg6IDEwMHB4O1xuICBtYXgtaGVpZ2h0OiAxMDBweDtcbn1cblxuLmNhcmQtaXRlbSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAhaW1wb3J0YW50O1xufVxuXG4uYWN0aXZlLWl0ZW0ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgLCAjZGFkYWRhKTtcbn1cbiIsIi5maXhlZC1uYXYtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgbWF4LWhlaWdodDogMTV2aDtcbn1cblxuLm5hdmxpc3QtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgbWF4LWhlaWdodDogODV2aDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbn1cblxuLm1hdC1uYXYtbGlzdCB7XG4gIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xufVxuXG4ubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDcycHg7XG4gIGhlaWdodDogMTAwJTtcbiAgLyogZGVmYXVsdCBpcyA3MnB4ICovXG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG59XG5cbi50aHVtYm5haWwge1xuICBtYXgtd2lkdGg6IDEwMHB4O1xuICBtYXgtaGVpZ2h0OiAxMDBweDtcbn1cblxuLmNhcmQtaXRlbSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAhaW1wb3J0YW50O1xufVxuXG4uYWN0aXZlLWl0ZW0ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCksICNkYWRhZGEpO1xufSJdfQ== */");
/***/ }),
/***/ "./src/app/navigation-list-component/navigation-list-component.component.ts":
/*!**********************************************************************************!*\
!*** ./src/app/navigation-list-component/navigation-list-component.component.ts ***!
\**********************************************************************************/
/*! exports provided: NavigationListComponentComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NavigationListComponentComponent", function() { return NavigationListComponentComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _services_navigation_service_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../services/navigation-service.service */ "./src/app/services/navigation-service.service.ts");
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */ var _services_query_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../services/query.service */ "./src/app/services/query.service.ts");
/* harmony import */ var _navtree_directive_directive__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./navtree-directive.directive */ "./src/app/navigation-list-component/navtree-directive.directive.ts");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_6__);
let NavigationListComponentComponent =
/**
* NavigationListComponent
* Does sinply consume data coming from naviservice && activated route. triggers click event to service.
*/
class NavigationListComponentComponent {
constructor(naviService, router, activatedRoute, queryService) {
this.naviService = naviService;
this.router = router;
this.activatedRoute = activatedRoute;
this.queryService = queryService;
this.navigationTreeDefs = [
{ id: 'manuscript',
idx: 0,
isActive: true,
label: 'Manuskripte',
itemQParam: 'manuscript',
entries: [],
apiDef: {
type: 0,
baseUrl: 'https://nietzsche.fuseki.services.dasch.swiss/nietzsche',
dataArray: 'results.bindings',
query: 'manuscripts.rq',
mapping: {
id: 'manuscript.value',
iri: 'manuscript.value',
type: 'type.value',
label: 'title.value',
description: 'gsaSignature.value',
avatar: 'thumbImage.value'
}
}
}, {
id: 'page',
idx: 1,
isActive: false,
label: 'Seiten',
itemQParam: 'page',
entries: [],
apiDef: {
type: 0,
baseUrl: 'https://nietzsche.fuseki.services.dasch.swiss/nietzsche',
dataArray: 'results.bindings',
query: 'getPageData.rq',
mapping: {
id: 'page.value',
iri: 'page.value',
label: 'pageNumber.value',
thumb: 'thumb.value',
idx: 'pageNumber.value',
svg: 'svgFileName.value',
}
}
}
];
// If url pasted or page refreshed --> resetting this.queryparams to the query params of the url;
// needed for the template hence service instances can not be accessed in the template
this.queryParamSubscription = this.activatedRoute.queryParams.subscribe((queryParams) => {
const navTabIndex = this.getActiveNavTabIndex(queryParams.navContext);
if (this.oldQueryParams && queryParams.navContext) { // only if there are any oldParams
this.reactOnContextChange(queryParams.navContext, this.oldQueryParams.navContext, navTabIndex);
this.reactOnItemChange('page', queryParams.page, this.oldQueryParams.page);
this.reactOnItemChange('manuscript', queryParams.manuscript, this.oldQueryParams.manuscript);
}
this.oldQueryParams = queryParams;
});
}
ngOnInit() {
return tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"](this, void 0, void 0, function* () {
yield this.createTreesOnInit();
this.navTabIndex = yield this.getActiveNavTabIndex();
yield this.populateNavTrees();
// set selected things in url
this.navTrees.forEach(tree => {
// if there is no selected item for each tree, we have to listen to the selectedItemSet/tree population and set them per default
if (!this.activatedRoute.snapshot.queryParamMap.get(tree.qParam)) {
tree.selectedItemSet.subscribe(item => {
this.setSelectedItemAndRoute(item.itemId, item.tabId);
});
}
});
// change navTree according to chosen route per default
// set NavContext if unset according to selected component: manuscriptView, tln-page view
if (this.activatedRoute.snapshot.firstChild.url[0].path === 'tln-viewer'
&& !this.activatedRoute.snapshot.queryParamMap.get('navContext')) {
this.naviService.updateRoute({ navContext: 'page' });
}
});
}
ngAfterViewInit() {
const selectedItem = this.activatedRoute.snapshot.queryParamMap.get(this.activatedRoute.snapshot.queryParamMap.get('navContext'));
this.scrollOnToSelectedItem(selectedItem);
}
reactOnItemChange(param, itemId, oldItemId) {
if (itemId && itemId !== '' && oldItemId) {
if (itemId !== oldItemId) {
const tab = this.navTrees.findIndex(tree => tree.id === param);
this.setSelectedItem(itemId, tab);
if (tab === this.navTabIndex) {
window.setTimeout(() => this.scrollOnToSelectedItem(itemId), 100);
}
}
}
}
reactOnContextChange(context, oldContext, activeTab) {
if (context !== oldContext) {
this.navTabIndex = activeTab;
// must time out here hence document is not ready to scroll
window.setTimeout(() => this.scrollOnToSelectedItem(this.oldQueryParams[context]), 100);
}
}
scrollOnToSelectedItem(itemId) {
if (document.getElementById(itemId)) {
const offSetTop = document.getElementById(itemId).offsetTop;
document.getElementById('navlist').scrollTop = offSetTop - 100;
}
}
/**
* getActiveNavTabIndexOnInit
* gets the active navTabIndex either from a passed navConText, from active qParam or or from definition
*/
getActiveNavTabIndex(con) {
let navConText;
if (!con || con === '') {
navConText = this.activatedRoute.snapshot.queryParamMap.get('navContext');
}
else {
navConText = con;
}
let navTabIndex = 0;
if (navConText && navConText !== '') {
const nIndex = this.navigationTreeDefs.findIndex(tree => tree.id === navConText);
navTabIndex = this.navigationTreeDefs[nIndex].idx;
}
else {
navTabIndex = 0;
}
return navTabIndex;
}
createTreesOnInit() {
this.navTrees = [];
this.navigationTreeDefs.forEach(def => this.navTrees.push(new _navtree_directive_directive__WEBPACK_IMPORTED_MODULE_5__["NavTree"](def.id, def.idx, def.label, [], def.itemQParam, def.description, def.apiDef)));
}
onSelectNavItem(item) {
return tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"](this, void 0, void 0, function* () {
// If a new item is clicked
if (this.navTrees[this.navTabIndex].selectedItem !== item.tlnEntity.id) {
// get new data for subTrees and set new params accordingly
yield this.emptyChildTrees(this.navTabIndex);
yield this.removeAllChildTreeQParams(this.navTabIndex);
yield this.setSelectedItemAndRoute(item.tlnEntity.id, this.navTabIndex);
yield this.populateChildren(this.navTabIndex, item.tlnEntity.id);
// Only if context !== 'page', e.g. view is tln-viewer), we change to the second page tab
const navContext = this.activatedRoute.snapshot.queryParamMap.get('navContext');
if (navContext !== this.navTrees[this.getActiveNavTabIndex()].qParam) {
this.changeNavTreeViaRoute(this.navTabIndex + 1);
}
}
else { // if an already selected item is clicked again, it changes the tree/tab
this.changeNavTreeViaRoute(this.navTabIndex + 1);
}
});
}
removeAllChildTreeQParams(tabId) {
this.navTrees.forEach((tree, index) => {
if (tree.idx > tabId) {
this.navTrees[index].selectedItem = null;
this.naviService.updateRoute({ [tree.qParam]: null });
}
});
}
emptyChildTrees(parentIdx) {
this.navTrees.forEach((tree, index) => {
if (tree.idx > parentIdx) {
this.navTrees[index].entries = [];
}
});
}
setSelectedItem(navItemId, tabId) {
this.navTrees[tabId].selectedItem = navItemId;
}
// Will route, the qParamSubscription reacts and trees are built further
setSelectedItemAndRoute(navItemId, tabId) {
return tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"](this, void 0, void 0, function* () {
this.navTrees[tabId].selectedItem = navItemId;
const idx = this.navigationTreeDefs.findIndex(tree => tree.idx === tabId);
// set new qParam
const newParams = {};
const qParam = this.navigationTreeDefs[idx].itemQParam;
newParams[qParam] = navItemId;
this.naviService.updateRoute(newParams);
});
}
populateChildren(activeTab, itemId) {
if (activeTab + 1 < this.navigationTreeDefs.length) {
// if an item in a tab with sub tabs is selected, the subtree should be loaded according to that selection and the tab should change
this.populateNavTrees(activeTab + 1, itemId);
}
}
// switches tabs in navtab ov navigation bar
changeNavTreeViaRoute(idx) {
if (idx < this.navTrees.length) {
this.naviService.updateRoute({ navContext: this.navTrees[idx].qParam });
}
}
/**
* populateNavTrees creates the first trees if no query params are available in the url:
* It ceates the manuscripNavTree and the activePageNavTreeData of the first manuscript per default.
*
*/
populateNavTrees(tabIdx, itemId) {
return tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"](this, void 0, void 0, function* () {
const tabStartIndex = tabIdx || 0; // where to start refreshing navtrees
for (const treeDef of this.navigationTreeDefs.sort(def => (def.idx))) {
if (treeDef.idx >= tabStartIndex) { // only create trees if needed
this.queryService.getQueryfromFilename(treeDef.apiDef.query).subscribe((query) => tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"](this, void 0, void 0, function* () {
let queryToRun;
// If there is a selectedItem we have to parametrize the query
if (treeDef.idx > 0) { // so we have to parametrize the query
if (itemId) {
queryToRun = this.queryService.parametrizeQueryWithItem(query, itemId);
this.populateNavTree(treeDef, queryToRun);
}
else {
// wait for selected item of the previous tab and parametrize then the query
this.navTrees[treeDef.idx - 1].selectedItemSet.subscribe(item => {
if (item.tabId === treeDef.idx - 1) {
queryToRun = this.queryService.parametrizeQueryWithItem(query, item.itemId);
this.populateNavTree(treeDef, queryToRun);
}
});
}
}
else {
this.populateNavTree(treeDef, query);
}
}));
}
}
});
}
populateNavTree(def, query) {
const idx = this.navTrees.findIndex(item => item.id === def.id);
let parentLabel;
if (idx > 0) {
parentLabel = this.navTrees[idx - 1].selectedItemLabel;
}
if (idx !== -1) {
this.queryService.getData(def.apiDef.baseUrl, query, 'SELECT').subscribe(data => {
this.navTrees[idx].setNavTreeData(lodash__WEBPACK_IMPORTED_MODULE_6__["get"](data, def.apiDef.dataArray), this.activatedRoute.snapshot.queryParams, parentLabel);
});
}
}
};
NavigationListComponentComponent.ctorParameters = () => [
{ type: _services_navigation_service_service__WEBPACK_IMPORTED_MODULE_2__["NavigationServiceService"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_3__["Router"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_3__["ActivatedRoute"] },
{ type: _services_query_service__WEBPACK_IMPORTED_MODULE_4__["QueryService"] }
];
NavigationListComponentComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-navigation-list-component',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./navigation-list-component.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/navigation-list-component/navigation-list-component.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./navigation-list-component.component.scss */ "./src/app/navigation-list-component/navigation-list-component.component.scss")).default]
})
/**
* NavigationListComponent
* Does sinply consume data coming from naviservice && activated route. triggers click event to service.
*/
], NavigationListComponentComponent);
/***/ }),
/***/ "./src/app/navigation-list-component/navtree-directive.directive.ts":
/*!**************************************************************************!*\
!*** ./src/app/navigation-list-component/navtree-directive.directive.ts ***!
\**************************************************************************/
/*! exports provided: NavTree */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NavTree", function() { return NavTree; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _models_models__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../models/models */ "./src/app/models/models.ts");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_3__);
let NavTree = class NavTree {
constructor(id, idx, label, entries, qParam, description, apiDef, selectedItem, selectedItemLabel, parentLabel) {
this.id = id;
this.idx = idx;
this.label = label;
this.qParam = qParam;
this.entries = entries || [];
this.description = description;
this.apiDef = apiDef;
this.selectedItem = selectedItem;
this.selectedItemLabel = selectedItemLabel;
this.selectedItemSet = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
this.parentLabel = parentLabel;
}
setNavTreeData(data, queryParams, parentLabel) {
this.parentLabel = parentLabel;
this.selectedItemLabel = lodash__WEBPACK_IMPORTED_MODULE_3__["get"](data[0], this.apiDef.mapping.label);
if (queryParams[this.qParam] && queryParams[this.qParam] !== '') {
this.setSelected(queryParams[this.qParam]);
}
else {
this.setSelected(lodash__WEBPACK_IMPORTED_MODULE_3__["get"](data[0], this.apiDef.mapping.id));
}
this.entries = []; // resetting tree data of the given tab
data.forEach((entry, index) => {
// (id: string, iri: string, type: string, navIndex: number, label?: string)
const entity = new _models_models__WEBPACK_IMPORTED_MODULE_2__["TlnEntity"](lodash__WEBPACK_IMPORTED_MODULE_3__["get"](entry, this.apiDef.mapping.id), lodash__WEBPACK_IMPORTED_MODULE_3__["get"](entry, this.apiDef.mapping.iri), lodash__WEBPACK_IMPORTED_MODULE_3__["get"](entry, this.apiDef.mapping.type) ||
null, index, lodash__WEBPACK_IMPORTED_MODULE_3__["get"](entry, this.apiDef.mapping.label) || '', lodash__WEBPACK_IMPORTED_MODULE_3__["get"](entry, this.apiDef.mapping.description || ''));
const thumb = lodash__WEBPACK_IMPORTED_MODULE_3__["get"](entry, this.apiDef.mapping.thumb);
let svg;
if (lodash__WEBPACK_IMPORTED_MODULE_3__["get"](entry, this.apiDef.mapping.svg)) {
svg = 'http://existdb-test.dasch.swiss/exist/rest/db/storage/nietzsche/' + lodash__WEBPACK_IMPORTED_MODULE_3__["get"](entry, this.apiDef.mapping.svg);
}
const avatar = lodash__WEBPACK_IMPORTED_MODULE_3__["get"](entry, this.apiDef.mapping.avatar);
const navEntity = new _models_models__WEBPACK_IMPORTED_MODULE_2__["NavigationEntity"](index, entity, thumb, '', svg, avatar);
this.entries.push(navEntity);
});
}
setSelected(itemId) {
this.selectedItem = itemId;
this.selectedItemSet.emit({ tabId: this.idx, itemId });
}
};
NavTree.ctorParameters = () => [
{ type: String },
{ type: Number },
{ type: String },
{ type: Array },
{ type: String },
{ type: String },
{ type: _models_models__WEBPACK_IMPORTED_MODULE_2__["ApiDef"] },
{ type: String },
{ type: String },
{ type: String }
];
NavTree = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Directive"])({
selector: '[appNavtreeDirective]'
})
], NavTree);
/***/ }),
/***/ "./src/app/page-view-wrapper-component/page-view-wrapper.component.scss":
/*!******************************************************************************!*\
!*** ./src/app/page-view-wrapper-component/page-view-wrapper.component.scss ***!
\******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = ("mat-card {\n height: 85vh;\n overflow: hidden;\n}\n\n.drawer {\n padding: 10px;\n width: 25%;\n}\n\n.in-drawer-content-area {\n min-height: 300px;\n height: 70vh;\n min-width: 95%;\n display: table;\n}\n\n.in-drawer-toggle-button-container {\n height: 100%;\n vertical-align: top;\n min-width: 10%;\n width: 10%;\n display: table-cell;\n}\n\n.in-drawer-content-container {\n height: 100%;\n align-content: left;\n width: 90%;\n display: table-cell;\n padding: 10px;\n}\n\n.main-content-container {\n min-height: 300px;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n}\n\n.outer-content-area {\n min-height: 300px;\n height: 100%;\n display: table;\n}\n\n.content-container {\n height: 100%;\n vertical-align: top;\n align-content: left;\n width: 80%;\n display: table-cell;\n padding: 10px;\n}\n\n.page-turn-button-container {\n height: 100%;\n vertical-align: middle;\n min-width: unset;\n width: 20px;\n display: table-cell;\n}\n\n.page-turn-button {\n height: 100px;\n min-width: unset;\n width: 15px;\n display: flex;\n justify-content: center;\n align-items: center;\n margin: 0;\n padding: 0;\n}\n\n.toggle-button-container {\n height: 100%;\n display: table-cell;\n vertical-align: top;\n align-content: right;\n align-items: right;\n min-width: 5%;\n width: 100%;\n padding: 1em;\n}\n\n.toggle-button {\n height: 100px;\n min-width: unset;\n width: 15px;\n display: flex;\n justify-content: center;\n margin: 0;\n padding: 0;\n}\n\n.right-outer-element {\n margin-right: 3em;\n}\n\n.right-inner-element {\n margin-left: 1em;\n}\n\n.mat-button-toggle-group.mat-button-toggle-group {\n display: flex;\n align-items: right;\n}\n\n.images-container {\n display: table;\n}\n\n.image-sell-container {\n display: table-cell;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL3BhZ2Utdmlldy13cmFwcGVyLWNvbXBvbmVudC9wYWdlLXZpZXctd3JhcHBlci5jb21wb25lbnQuc2NzcyIsImFwcC9wYWdlLXZpZXctd3JhcHBlci1jb21wb25lbnQvcGFnZS12aWV3LXdyYXBwZXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7RUFDRSxZQUFBO0VBQ0EsZ0JBQUE7QUNERjs7QURLQTtFQUNFLGFBQUE7RUFDQSxVQUFBO0FDRkY7O0FETUE7RUFDRSxpQkFBQTtFQUNBLFlBQUE7RUFDQSxjQUFBO0VBQ0EsY0FBQTtBQ0hGOztBRE1BO0VBQ0UsWUFBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTtFQUNBLFVBQUE7RUFDQSxtQkFBQTtBQ0hGOztBRE1BO0VBQ0UsWUFBQTtFQUVBLG1CQUFBO0VBQ0EsVUFBQTtFQUNBLG1CQUFBO0VBQ0EsYUFBQTtBQ0pGOztBRFFBO0VBQ0UsaUJBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0FDTEY7O0FEU0E7RUFDRSxpQkFBQTtFQUNBLFlBQUE7RUFDQSxjQUFBO0FDTkY7O0FEU0E7RUFDRSxZQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLFVBQUE7RUFDQSxtQkFBQTtFQUNBLGFBQUE7QUNORjs7QURTQTtFQUNFLFlBQUE7RUFDQSxzQkFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0FDTkY7O0FEU0E7RUFDRSxhQUFBO0VBQ0EsZ0JBQUE7RUFDQSxXQUFBO0VBQ0EsYUFBQTtFQUNBLHVCQUFBO0VBQ0EsbUJBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtBQ05GOztBRFVBO0VBQ0UsWUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFQUNBLGtCQUFBO0VBQ0EsYUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0FDUEY7O0FEVUE7RUFDRSxhQUFBO0VBQ0EsZ0JBQUE7RUFDQSxXQUFBO0VBQ0EsYUFBQTtFQUNBLHVCQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7QUNQRjs7QURXQTtFQUNFLGlCQUFBO0FDUkY7O0FEV0E7RUFDRSxnQkFBQTtBQ1JGOztBRFdBO0VBQ0UsYUFBQTtFQUNBLGtCQUFBO0FDUkY7O0FEV0E7RUFDRSxjQUFBO0FDUkY7O0FEV0E7RUFDRSxtQkFBQTtBQ1JGIiwiZmlsZSI6ImFwcC9wYWdlLXZpZXctd3JhcHBlci1jb21wb25lbnQvcGFnZS12aWV3LXdyYXBwZXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0aGUgb3ZlcmFsbCBtYXQtY2FyZFxuXG5tYXQtY2FyZCB7XG4gIGhlaWdodDogODV2aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8gdGhlIGRldGFpbHMgZHJhd2VyIG9uIHRoZSB2ZXJ5IHJpZ2h0XG4uZHJhd2VyIHtcbiAgcGFkZGluZzogMTBweDtcbiAgd2lkdGg6IDI1JTtcbn1cblxuLy8gVGhlIGNvbnRlbnQgYXJlYSBvZiB0aGUgZHJhd2VyIGFzIGEgdGFibGUgY29udGFpbmluZyBidXR0b24gJiBjb250ZW50XG4uaW4tZHJhd2VyLWNvbnRlbnQtYXJlYSB7XG4gIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICBoZWlnaHQ6IDcwdmg7XG4gIG1pbi13aWR0aDogOTUlO1xuICBkaXNwbGF5OnRhYmxlO1xufVxuXG4uaW4tZHJhd2VyLXRvZ2dsZS1idXR0b24tY29udGFpbmVyIHtcbiAgaGVpZ2h0OjEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIG1pbi13aWR0aDogMTAlO1xuICB3aWR0aDoxMCU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG5cbi5pbi1kcmF3ZXItY29udGVudC1jb250YWluZXIge1xuICBoZWlnaHQ6MTAwJTtcbiAgLy8gdmVydGljYWwtYWxpZ246IHRvcDtcbiAgYWxpZ24tY29udGVudDogbGVmdDtcbiAgd2lkdGg6OTAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBwYWRkaW5nOiAxMHB4O1xufVxuXG4vLyB0aGUgY29udGVudCBjb250YWluZXIgY29udGFpbmluZyB0aGUgY29udGVudCBhcmVhXG4ubWFpbi1jb250ZW50LWNvbnRhaW5lciB7XG4gIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8vIFRoZSBjb250ZW50IGFyZWEgYXMgYSB0YWJsZSBjb250YWluaW5nIHRoZSBtYWluIGNvbnRlbnQgYW5kIHRoZSBvdXRlciB0b2dnbGUgYnV0dG9uIGNvbnRhaW5lclxuLm91dGVyLWNvbnRlbnQtYXJlYSB7XG4gIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6dGFibGU7XG59XG5cbi5jb250ZW50LWNvbnRhaW5lciB7XG4gIGhlaWdodDoxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBhbGlnbi1jb250ZW50OiBsZWZ0O1xuICB3aWR0aDo4MCU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG4vLyBuYXYgYnV0dG9uc1xuLnBhZ2UtdHVybi1idXR0b24tY29udGFpbmVyIHtcbiAgaGVpZ2h0OjEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1pbi13aWR0aDogdW5zZXQ7IC8vIG5lZWRlZCBiZWNhdXNlIGFuZ3VsYXIgc2V0cyBhbiBvd24gbWluIHdpZHRoIT9cbiAgd2lkdGg6MjBweDtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbn1cblxuLnBhZ2UtdHVybi1idXR0b24geyAvLyBmaWxscyBzaWRlbmF2LWJ1dHRvbi1jb250YWluZXIgY29tcGxldGVseSwgc28gYWxsIGlzIG9uZSBidXR0b25cbiAgaGVpZ2h0OiAxMDBweDtcbiAgbWluLXdpZHRoOiB1bnNldDsgLy8gbmVlZGVkIGJlY2F1c2UgYW5ndWxhciBzZXRzIGFuIG93biBtaW4gd2lkdGghP1xuICB3aWR0aDogMTVweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLy8gdGhlIGNlbGwgd2hlcmUgdGhlIGJ1dHRvbiB3aWxsIGJlIGluIHRoZSBtYWluIGNvbnRlbnQgYXJlYVxuLnRvZ2dsZS1idXR0b24tY29udGFpbmVyIHtcbiAgaGVpZ2h0OjEwMCU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGFsaWduLWNvbnRlbnQ6IHJpZ2h0O1xuICBhbGlnbi1pdGVtczogcmlnaHQ7XG4gIG1pbi13aWR0aDogNSU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxZW07XG59XG5cbi50b2dnbGUtYnV0dG9uIHsgLy8gZmlsbHMgc2lkZW5hdi1idXR0b24tY29udGFpbmVyIGNvbXBsZXRlbHksIHNvIGFsbCBpcyBvbmUgYnV0dG9uXG4gIGhlaWdodDogMTAwcHg7XG4gIG1pbi13aWR0aDogdW5zZXQ7IC8vIG5lZWRlZCBiZWNhdXNlIGFuZ3VsYXIgc2V0cyBhbiBvd24gbWluIHdpZHRoIT9cbiAgd2lkdGg6IDE1cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8vIGZvciBvcHRpb25zXG4ucmlnaHQtb3V0ZXItZWxlbWVudCB7XG4gIG1hcmdpbi1yaWdodDogM2VtO1xufVxuXG4ucmlnaHQtaW5uZXItZWxlbWVudCB7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG59XG5cbi5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiByaWdodDtcbn1cblxuLmltYWdlcy1jb250YWluZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLmltYWdlLXNlbGwtY29udGFpbmVyIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbn1cbiIsIm1hdC1jYXJkIHtcbiAgaGVpZ2h0OiA4NXZoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZHJhd2VyIHtcbiAgcGFkZGluZzogMTBweDtcbiAgd2lkdGg6IDI1JTtcbn1cblxuLmluLWRyYXdlci1jb250ZW50LWFyZWEge1xuICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgaGVpZ2h0OiA3MHZoO1xuICBtaW4td2lkdGg6IDk1JTtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi5pbi1kcmF3ZXItdG9nZ2xlLWJ1dHRvbi1jb250YWluZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIG1pbi13aWR0aDogMTAlO1xuICB3aWR0aDogMTAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuXG4uaW4tZHJhd2VyLWNvbnRlbnQtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBhbGlnbi1jb250ZW50OiBsZWZ0O1xuICB3aWR0aDogOTAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBwYWRkaW5nOiAxMHB4O1xufVxuXG4ubWFpbi1jb250ZW50LWNvbnRhaW5lciB7XG4gIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5vdXRlci1jb250ZW50LWFyZWEge1xuICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLmNvbnRlbnQtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBhbGlnbi1jb250ZW50OiBsZWZ0O1xuICB3aWR0aDogODAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBwYWRkaW5nOiAxMHB4O1xufVxuXG4ucGFnZS10dXJuLWJ1dHRvbi1jb250YWluZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1pbi13aWR0aDogdW5zZXQ7XG4gIHdpZHRoOiAyMHB4O1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuXG4ucGFnZS10dXJuLWJ1dHRvbiB7XG4gIGhlaWdodDogMTAwcHg7XG4gIG1pbi13aWR0aDogdW5zZXQ7XG4gIHdpZHRoOiAxNXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4udG9nZ2xlLWJ1dHRvbi1jb250YWluZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGFsaWduLWNvbnRlbnQ6IHJpZ2h0O1xuICBhbGlnbi1pdGVtczogcmlnaHQ7XG4gIG1pbi13aWR0aDogNSU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxZW07XG59XG5cbi50b2dnbGUtYnV0dG9uIHtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgbWluLXdpZHRoOiB1bnNldDtcbiAgd2lkdGg6IDE1cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5yaWdodC1vdXRlci1lbGVtZW50IHtcbiAgbWFyZ2luLXJpZ2h0OiAzZW07XG59XG5cbi5yaWdodC1pbm5lci1lbGVtZW50IHtcbiAgbWFyZ2luLWxlZnQ6IDFlbTtcbn1cblxuLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IHJpZ2h0O1xufVxuXG4uaW1hZ2VzLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuXG4uaW1hZ2Utc2VsbC1jb250YWluZXIge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufSJdfQ== */");
+/* harmony default export */ __webpack_exports__["default"] = ("mat-card {\n height: 85vh;\n overflow: hidden;\n}\n\n.drawer {\n padding: 10px;\n width: 25%;\n}\n\n.in-drawer-content-area {\n min-height: 300px;\n height: 70vh;\n min-width: 95%;\n display: table;\n}\n\n.in-drawer-toggle-button-container {\n height: 100%;\n vertical-align: top;\n min-width: 10%;\n width: 10%;\n display: table-cell;\n}\n\n.in-drawer-content-container {\n height: 100%;\n align-content: left;\n width: 90%;\n display: table-cell;\n padding: 10px;\n}\n\n.main-content-container {\n min-height: 300px;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n}\n\n.outer-content-area {\n min-height: 300px;\n height: 100%;\n display: table;\n}\n\n.content-container {\n height: 100%;\n vertical-align: top;\n align-content: left;\n width: 80%;\n display: table-cell;\n padding: 10px;\n}\n\n.page-turn-button-container {\n height: 100%;\n vertical-align: middle;\n min-width: unset;\n width: 20px;\n display: table-cell;\n}\n\n.page-turn-button {\n height: 100px;\n min-width: unset;\n width: 15px;\n display: flex;\n justify-content: center;\n align-items: center;\n margin: 0;\n padding: 0;\n}\n\n.toggle-button-container {\n height: 100%;\n display: table-cell;\n vertical-align: top;\n align-content: right;\n align-items: right;\n min-width: 5%;\n width: 100%;\n padding: 1em;\n}\n\n.toggle-button {\n height: 100px;\n min-width: unset;\n width: 15px;\n display: flex;\n justify-content: center;\n margin: 0;\n padding: 0;\n}\n\n.right-outer-element {\n margin-right: 3em;\n}\n\n.right-inner-element {\n margin-left: 1em;\n}\n\n.mat-button-toggle-group.mat-button-toggle-group {\n display: flex;\n align-items: right;\n}\n\n.images-container {\n display: table;\n}\n\n.image-sell-container {\n display: table-cell;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL3BhZ2Utdmlldy13cmFwcGVyLWNvbXBvbmVudC9wYWdlLXZpZXctd3JhcHBlci5jb21wb25lbnQuc2NzcyIsInBhZ2Utdmlldy13cmFwcGVyLWNvbXBvbmVudC9wYWdlLXZpZXctd3JhcHBlci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtFQUNFLFlBQUE7RUFDQSxnQkFBQTtBQ0RGOztBREtBO0VBQ0UsYUFBQTtFQUNBLFVBQUE7QUNGRjs7QURNQTtFQUNFLGlCQUFBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7RUFDQSxjQUFBO0FDSEY7O0FETUE7RUFDRSxZQUFBO0VBQ0EsbUJBQUE7RUFDQSxjQUFBO0VBQ0EsVUFBQTtFQUNBLG1CQUFBO0FDSEY7O0FETUE7RUFDRSxZQUFBO0VBRUEsbUJBQUE7RUFDQSxVQUFBO0VBQ0EsbUJBQUE7RUFDQSxhQUFBO0FDSkY7O0FEUUE7RUFDRSxpQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7QUNMRjs7QURTQTtFQUNFLGlCQUFBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7QUNORjs7QURTQTtFQUNFLFlBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VBQ0EsVUFBQTtFQUNBLG1CQUFBO0VBQ0EsYUFBQTtBQ05GOztBRFNBO0VBQ0UsWUFBQTtFQUNBLHNCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7QUNORjs7QURTQTtFQUNFLGFBQUE7RUFDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxhQUFBO0VBQ0EsdUJBQUE7RUFDQSxtQkFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0FDTkY7O0FEVUE7RUFDRSxZQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VBQ0Esa0JBQUE7RUFDQSxhQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7QUNQRjs7QURVQTtFQUNFLGFBQUE7RUFDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxhQUFBO0VBQ0EsdUJBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtBQ1BGOztBRFdBO0VBQ0UsaUJBQUE7QUNSRjs7QURXQTtFQUNFLGdCQUFBO0FDUkY7O0FEV0E7RUFDRSxhQUFBO0VBQ0Esa0JBQUE7QUNSRjs7QURXQTtFQUNFLGNBQUE7QUNSRjs7QURXQTtFQUNFLG1CQUFBO0FDUkYiLCJmaWxlIjoicGFnZS12aWV3LXdyYXBwZXItY29tcG9uZW50L3BhZ2Utdmlldy13cmFwcGVyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdGhlIG92ZXJhbGwgbWF0LWNhcmRcblxubWF0LWNhcmQge1xuICBoZWlnaHQ6IDg1dmg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vIHRoZSBkZXRhaWxzIGRyYXdlciBvbiB0aGUgdmVyeSByaWdodFxuLmRyYXdlciB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIHdpZHRoOiAyNSU7XG59XG5cbi8vIFRoZSBjb250ZW50IGFyZWEgb2YgdGhlIGRyYXdlciBhcyBhIHRhYmxlIGNvbnRhaW5pbmcgYnV0dG9uICYgY29udGVudFxuLmluLWRyYXdlci1jb250ZW50LWFyZWEge1xuICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgaGVpZ2h0OiA3MHZoO1xuICBtaW4td2lkdGg6IDk1JTtcbiAgZGlzcGxheTp0YWJsZTtcbn1cblxuLmluLWRyYXdlci10b2dnbGUtYnV0dG9uLWNvbnRhaW5lciB7XG4gIGhlaWdodDoxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBtaW4td2lkdGg6IDEwJTtcbiAgd2lkdGg6MTAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuXG4uaW4tZHJhd2VyLWNvbnRlbnQtY29udGFpbmVyIHtcbiAgaGVpZ2h0OjEwMCU7XG4gIC8vIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGFsaWduLWNvbnRlbnQ6IGxlZnQ7XG4gIHdpZHRoOjkwJTtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgcGFkZGluZzogMTBweDtcbn1cblxuLy8gdGhlIGNvbnRlbnQgY29udGFpbmVyIGNvbnRhaW5pbmcgdGhlIGNvbnRlbnQgYXJlYVxuLm1haW4tY29udGVudC1jb250YWluZXIge1xuICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vLyBUaGUgY29udGVudCBhcmVhIGFzIGEgdGFibGUgY29udGFpbmluZyB0aGUgbWFpbiBjb250ZW50IGFuZCB0aGUgb3V0ZXIgdG9nZ2xlIGJ1dHRvbiBjb250YWluZXJcbi5vdXRlci1jb250ZW50LWFyZWEge1xuICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OnRhYmxlO1xufVxuXG4uY29udGVudC1jb250YWluZXIge1xuICBoZWlnaHQ6MTAwJTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgYWxpZ24tY29udGVudDogbGVmdDtcbiAgd2lkdGg6ODAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBwYWRkaW5nOiAxMHB4O1xufVxuLy8gbmF2IGJ1dHRvbnNcbi5wYWdlLXR1cm4tYnV0dG9uLWNvbnRhaW5lciB7XG4gIGhlaWdodDoxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtaW4td2lkdGg6IHVuc2V0OyAvLyBuZWVkZWQgYmVjYXVzZSBhbmd1bGFyIHNldHMgYW4gb3duIG1pbiB3aWR0aCE/XG4gIHdpZHRoOjIwcHg7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG5cbi5wYWdlLXR1cm4tYnV0dG9uIHsgLy8gZmlsbHMgc2lkZW5hdi1idXR0b24tY29udGFpbmVyIGNvbXBsZXRlbHksIHNvIGFsbCBpcyBvbmUgYnV0dG9uXG4gIGhlaWdodDogMTAwcHg7XG4gIG1pbi13aWR0aDogdW5zZXQ7IC8vIG5lZWRlZCBiZWNhdXNlIGFuZ3VsYXIgc2V0cyBhbiBvd24gbWluIHdpZHRoIT9cbiAgd2lkdGg6IDE1cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8vIHRoZSBjZWxsIHdoZXJlIHRoZSBidXR0b24gd2lsbCBiZSBpbiB0aGUgbWFpbiBjb250ZW50IGFyZWFcbi50b2dnbGUtYnV0dG9uLWNvbnRhaW5lciB7XG4gIGhlaWdodDoxMDAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBhbGlnbi1jb250ZW50OiByaWdodDtcbiAgYWxpZ24taXRlbXM6IHJpZ2h0O1xuICBtaW4td2lkdGg6IDUlO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMWVtO1xufVxuXG4udG9nZ2xlLWJ1dHRvbiB7IC8vIGZpbGxzIHNpZGVuYXYtYnV0dG9uLWNvbnRhaW5lciBjb21wbGV0ZWx5LCBzbyBhbGwgaXMgb25lIGJ1dHRvblxuICBoZWlnaHQ6IDEwMHB4O1xuICBtaW4td2lkdGg6IHVuc2V0OyAvLyBuZWVkZWQgYmVjYXVzZSBhbmd1bGFyIHNldHMgYW4gb3duIG1pbiB3aWR0aCE/XG4gIHdpZHRoOiAxNXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vLyBmb3Igb3B0aW9uc1xuLnJpZ2h0LW91dGVyLWVsZW1lbnQge1xuICBtYXJnaW4tcmlnaHQ6IDNlbTtcbn1cblxuLnJpZ2h0LWlubmVyLWVsZW1lbnQge1xuICBtYXJnaW4tbGVmdDogMWVtO1xufVxuXG4ubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogcmlnaHQ7XG59XG5cbi5pbWFnZXMtY29udGFpbmVyIHtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi5pbWFnZS1zZWxsLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG4iLCJtYXQtY2FyZCB7XG4gIGhlaWdodDogODV2aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRyYXdlciB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIHdpZHRoOiAyNSU7XG59XG5cbi5pbi1kcmF3ZXItY29udGVudC1hcmVhIHtcbiAgbWluLWhlaWdodDogMzAwcHg7XG4gIGhlaWdodDogNzB2aDtcbiAgbWluLXdpZHRoOiA5NSU7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuXG4uaW4tZHJhd2VyLXRvZ2dsZS1idXR0b24tY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBtaW4td2lkdGg6IDEwJTtcbiAgd2lkdGg6IDEwJTtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbn1cblxuLmluLWRyYXdlci1jb250ZW50LWNvbnRhaW5lciB7XG4gIGhlaWdodDogMTAwJTtcbiAgYWxpZ24tY29udGVudDogbGVmdDtcbiAgd2lkdGg6IDkwJTtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgcGFkZGluZzogMTBweDtcbn1cblxuLm1haW4tY29udGVudC1jb250YWluZXIge1xuICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4ub3V0ZXItY29udGVudC1hcmVhIHtcbiAgbWluLWhlaWdodDogMzAwcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi5jb250ZW50LWNvbnRhaW5lciB7XG4gIGhlaWdodDogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgYWxpZ24tY29udGVudDogbGVmdDtcbiAgd2lkdGg6IDgwJTtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgcGFkZGluZzogMTBweDtcbn1cblxuLnBhZ2UtdHVybi1idXR0b24tY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtaW4td2lkdGg6IHVuc2V0O1xuICB3aWR0aDogMjBweDtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbn1cblxuLnBhZ2UtdHVybi1idXR0b24ge1xuICBoZWlnaHQ6IDEwMHB4O1xuICBtaW4td2lkdGg6IHVuc2V0O1xuICB3aWR0aDogMTVweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLnRvZ2dsZS1idXR0b24tY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBhbGlnbi1jb250ZW50OiByaWdodDtcbiAgYWxpZ24taXRlbXM6IHJpZ2h0O1xuICBtaW4td2lkdGg6IDUlO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMWVtO1xufVxuXG4udG9nZ2xlLWJ1dHRvbiB7XG4gIGhlaWdodDogMTAwcHg7XG4gIG1pbi13aWR0aDogdW5zZXQ7XG4gIHdpZHRoOiAxNXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4ucmlnaHQtb3V0ZXItZWxlbWVudCB7XG4gIG1hcmdpbi1yaWdodDogM2VtO1xufVxuXG4ucmlnaHQtaW5uZXItZWxlbWVudCB7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG59XG5cbi5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiByaWdodDtcbn1cblxuLmltYWdlcy1jb250YWluZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLmltYWdlLXNlbGwtY29udGFpbmVyIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbn0iXX0= */");
/***/ }),
/***/ "./src/app/page-view-wrapper-component/page-view-wrapper.component.ts":
/*!****************************************************************************!*\
!*** ./src/app/page-view-wrapper-component/page-view-wrapper.component.ts ***!
\****************************************************************************/
/*! exports provided: PageViewWrapperComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PageViewWrapperComponent", function() { return PageViewWrapperComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */ var _models_models__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models */ "./src/app/models/models.ts");
let PageViewWrapperComponent = class PageViewWrapperComponent {
constructor(router, activatedRoute) {
this.router = router;
this.activatedRoute = activatedRoute;
}
ngOnInit() {
this.activatedRoute.queryParams.subscribe((queryParams) => {
this.queryParams = new _models_models__WEBPACK_IMPORTED_MODULE_3__["TlnQueryParams"](queryParams.navBarOpenState, queryParams.NavContext, queryParams.manuscript, queryParams.page, queryParams.selectedLines, queryParams.selectedWords, queryParams.viewMode, queryParams.fullscreen, queryParams.zoom);
});
}
};
PageViewWrapperComponent.ctorParameters = () => [
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"] }
];
PageViewWrapperComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-page-view-wrapper-component',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./page-view-wrapper.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/page-view-wrapper-component/page-view-wrapper.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./page-view-wrapper.component.scss */ "./src/app/page-view-wrapper-component/page-view-wrapper.component.scss")).default]
})
], PageViewWrapperComponent);
/***/ }),
/***/ "./src/app/page-view/configurable-component.ts":
/*!*****************************************************!*\
!*** ./src/app/page-view/configurable-component.ts ***!
\*****************************************************/
/*! exports provided: ConfigurableComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConfigurableComponent", function() { return ConfigurableComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/**
* This is a super class of components that can be configured by passing
* a configuration to their inputs and running 'processConfiguration' in
* 'ngOnChanges'.
*
* E.g. given a configuration '{"ComponentName": { "ComponentProperty": value }}'
* if "ComponentName" is the name of the subclass component then
* 'processConfiguration' will update its property with name
* "ComponentProperty" to this value. If configuration uses wildcard "*" then
* all components that have a property with name "ComponentProperty" will
* update to this value.
**/
class ConfigurableComponent {
constructor() {
/**
* index of configuration_listeners pointing to primary name of component
**/
this.primary_name_index = 1;
/**
* list of configuration keys
**/
this.configuration_listeners = ['*', this.constructor.name];
}
/**
* Process configuration by updating properties to given values if the keys
* in configuration_listeners are part of the configuration.
**/
processConfiguration() {
this.configuration_listeners.forEach(key => {
if (key in this.configuration) {
Object.getOwnPropertyNames(this.configuration[key]).forEach(conf_key => {
if (conf_key in this) {
this[conf_key] = this.configuration[key][conf_key];
}
});
}
});
}
/**
* Add a further configuration key
**/
addConfigurationName(configuration_listener) {
if (this.configuration_listeners.indexOf(configuration_listener) == -1) {
this.configuration_listeners.push(configuration_listener);
}
}
/**
* Get the primary name of the component.
**/
getConfigurationName() {
return this.configuration_listeners[this.primary_name_index];
}
/**
* update configuration
**/
ngOnChanges() {
if (this.configuration != null) {
this.processConfiguration();
}
}
static updateConfiguration(oldConfiguration, newConfiguration) {
if (oldConfiguration != null) {
Object.getOwnPropertyNames(newConfiguration).forEach(key => {
if (key in oldConfiguration && typeof oldConfiguration[key] == 'object' && typeof newConfiguration[key] == 'object') {
oldConfiguration[key] = this.updateConfiguration(oldConfiguration[key], newConfiguration[key]);
}
else {
oldConfiguration[key] = newConfiguration[key];
}
});
return oldConfiguration;
}
else {
return newConfiguration;
}
}
}
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], ConfigurableComponent.prototype, "configuration", void 0);
/***/ }),
/***/ "./src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.css":
/*!***********************************************************************************!*\
!*** ./src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.css ***!
\***********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = ("\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhcHAvcGFnZS12aWV3L2NvcHlyaWdodC9jb3B5cmlnaHQtc2hlZXQvY29weXJpZ2h0LXNoZWV0LmNvbXBvbmVudC5jc3MifQ== */");
+/* harmony default export */ __webpack_exports__["default"] = ("\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJwYWdlLXZpZXcvY29weXJpZ2h0L2NvcHlyaWdodC1zaGVldC9jb3B5cmlnaHQtc2hlZXQuY29tcG9uZW50LmNzcyJ9 */");
/***/ }),
/***/ "./src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.ts":
/*!**********************************************************************************!*\
!*** ./src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.ts ***!
\**********************************************************************************/
/*! exports provided: CopyrightSheetComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CopyrightSheetComponent", function() { return CopyrightSheetComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/material/bottom-sheet */ "./node_modules/@angular/material/esm2015/bottom-sheet.js");
let CopyrightSheetComponent = class CopyrightSheetComponent {
constructor(copyright) {
this.copyright = copyright;
}
ngOnInit() {
}
};
CopyrightSheetComponent.ctorParameters = () => [
{ type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Inject"], args: [_angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_2__["MAT_BOTTOM_SHEET_DATA"],] }] }
];
CopyrightSheetComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'copyright-sheet',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./copyright-sheet.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./copyright-sheet.component.css */ "./src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.css")).default]
}),
tslib__WEBPACK_IMPORTED_MODULE_0__["__param"](0, Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Inject"])(_angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_2__["MAT_BOTTOM_SHEET_DATA"]))
], CopyrightSheetComponent);
/***/ }),
/***/ "./src/app/page-view/copyright/copyright.component.css":
/*!*************************************************************!*\
!*** ./src/app/page-view/copyright/copyright.component.css ***!
\*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = ("#circle {\n fill: none;\n}\n#cc {\n fill: grey;\n opacity: 0.2;\n cursor: pointer;\n}\n\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9wYWdlLXZpZXcvY29weXJpZ2h0L2NvcHlyaWdodC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0dBQ0csVUFBVTtBQUNiO0FBQ0E7R0FDRyxVQUFVO0dBQ1YsWUFBWTtHQUNaLGVBQWU7QUFDbEIiLCJmaWxlIjoiYXBwL3BhZ2Utdmlldy9jb3B5cmlnaHQvY29weXJpZ2h0LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjY2lyY2xlIHtcbiAgIGZpbGw6IG5vbmU7XG59XG4jY2Mge1xuICAgZmlsbDogZ3JleTtcbiAgIG9wYWNpdHk6IDAuMjtcbiAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuIl19 */");
+/* harmony default export */ __webpack_exports__["default"] = ("#circle {\n fill: none;\n}\n#cc {\n fill: grey;\n opacity: 0.2;\n cursor: pointer;\n}\n\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhZ2Utdmlldy9jb3B5cmlnaHQvY29weXJpZ2h0LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxVQUFVO0FBQ2I7QUFDQTtHQUNHLFVBQVU7R0FDVixZQUFZO0dBQ1osZUFBZTtBQUNsQiIsImZpbGUiOiJwYWdlLXZpZXcvY29weXJpZ2h0L2NvcHlyaWdodC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI2NpcmNsZSB7XG4gICBmaWxsOiBub25lO1xufVxuI2NjIHtcbiAgIGZpbGw6IGdyZXk7XG4gICBvcGFjaXR5OiAwLjI7XG4gICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbiJdfQ== */");
/***/ }),
/***/ "./src/app/page-view/copyright/copyright.component.ts":
/*!************************************************************!*\
!*** ./src/app/page-view/copyright/copyright.component.ts ***!
\************************************************************/
/*! exports provided: CopyrightComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CopyrightComponent", function() { return CopyrightComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/material/bottom-sheet */ "./node_modules/@angular/material/esm2015/bottom-sheet.js");
/* harmony import */ var _page_view_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../page-view.service */ "./src/app/page-view/page-view.service.ts");
/* harmony import */ var _copyright_sheet_copyright_sheet_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./copyright-sheet/copyright-sheet.component */ "./src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.ts");
let CopyrightComponent = class CopyrightComponent {
constructor(bottomSheet, pageViewService) {
this.bottomSheet = bottomSheet;
this.pageViewService = pageViewService;
this.highlight = false;
}
ngOnInit() {
}
setHighlight(highlight) {
this.highlight = highlight;
}
showCopyrightInformation(e) {
/*let point: Point = { visible: true, clientX: e.clientX, clientY: e.clientY, layerX: e.layerX, layerY: e.layerY }
this.pageViewService.copyrightService(this.copyright, point);*/
this.bottomSheet.open(_copyright_sheet_copyright_sheet_component__WEBPACK_IMPORTED_MODULE_4__["CopyrightSheetComponent"], {
data: this.copyright
});
}
};
CopyrightComponent.ctorParameters = () => [
{ type: _angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_2__["MatBottomSheet"] },
{ type: _page_view_service__WEBPACK_IMPORTED_MODULE_3__["PageViewService"] }
];
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], CopyrightComponent.prototype, "dimension", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], CopyrightComponent.prototype, "copyright", void 0);
CopyrightComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'copyright',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./copyright.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/copyright/copyright.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./copyright.component.css */ "./src/app/page-view/copyright/copyright.component.css")).default]
})
], CopyrightComponent);
/***/ }),
/***/ "./src/app/page-view/highlight_status.ts":
/*!***********************************************!*\
!*** ./src/app/page-view/highlight_status.ts ***!
\***********************************************/
/*! exports provided: HIGHTLIGHT_CASES */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HIGHTLIGHT_CASES", function() { return HIGHTLIGHT_CASES; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
var HIGHTLIGHT_CASES;
(function (HIGHTLIGHT_CASES) {
HIGHTLIGHT_CASES["DEFAULT"] = "default";
HIGHTLIGHT_CASES["LINE_HOVERED"] = "hovered line";
HIGHTLIGHT_CASES["SEARCHED_WORD"] = "text of word == findText";
HIGHTLIGHT_CASES["SELECTED_LINE"] = "selected line";
HIGHTLIGHT_CASES["SELECTED_WORD"] = "selected word";
HIGHTLIGHT_CASES["WORD_HOVERED"] = "hovered word";
})(HIGHTLIGHT_CASES || (HIGHTLIGHT_CASES = {}));
/***/ }),
/***/ "./src/app/page-view/interacted.directive.ts":
/*!***************************************************!*\
!*** ./src/app/page-view/interacted.directive.ts ***!
\***************************************************/
/*! exports provided: InteractedDirective */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InteractedDirective", function() { return InteractedDirective; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _page_view_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./page-view.service */ "./src/app/page-view/page-view.service.ts");
/**
* This directive informs the {@link /injectables/PageViewService.html|PageViewService} about
* mouse events on interactable objects and scrolls interactable objects in view if they are
* invisible.
**/
let InteractedDirective = class InteractedDirective {
constructor(pageViewService, el) {
this.pageViewService = pageViewService;
this.el = el;
/**
* the identification string of this Interactable's textfield (e.g. 'first textfield' or 'second textfield')
**/
this.identity = 'first textfield';
/**
* The time (in milliseconds) the timer should wait before
* the element is scrolled in view.
**/
this.delay = 500;
/**
* The ID of the timeout set by {@link /directives/InteractedDirective.html#timeoutScroll|timeoutScroll}.
**/
this.timeoutID = -1;
/**
* Whether or not the element should scroll into view when the timer expires.
**/
this.doScroll = false;
this.xyOffset = { x: 0, y: 0 };
}
/**
* Subscribe to on/offHovered and onClicked methods of the {@link /injectables/PageViewService.html|PageViewService}
* and scroll hovered object in view if it is invisible.
**/
ngOnInit() {
if (this.container != null && this.container != undefined) {
let containerRect = this.container.getBoundingClientRect();
this.xyOffset = { x: containerRect.left, y: containerRect.top };
}
this.interactedObject.textfield_identity = this.identity;
this.pageViewService.onClickedWord.subscribe((clickedWord) => {
this.scrollIntoViewIfNeeded(clickedWord, 'Word', 0);
});
this.pageViewService.onHoveredWord.subscribe((hoveredWord) => {
this.scrollIntoViewIfNeeded(hoveredWord, 'Word');
});
this.pageViewService.offHoveredWord.subscribe((hoveredWord) => {
this.clearTimeout();
});
this.pageViewService.offHoveredLine.subscribe((hoveredLine) => {
this.clearTimeout();
});
this.pageViewService.onHoveredLine.subscribe((hoveredLine) => {
this.scrollIntoViewIfNeeded(hoveredLine, 'Line');
});
this.pageViewService.onClickedLine.subscribe((clickedLine) => {
this.scrollIntoViewIfNeeded(clickedLine, 'Line', 0);
});
}
/**
* Clear timeout and prevent element from scrolling into view.
**/
clearTimeout() {
if (this.timeoutID != -1) {
this.doScroll = false;
clearTimeout(this.timeoutID);
this.timeoutID = -1;
}
}
/**
* Scroll interactable object in view if it is invisible.
* @param hoveredItem interactable object that is hovered
* @param hoveredType string representation of object's type (i.e. 'Word' | 'Line')
**/
scrollIntoViewIfNeeded(hoveredItem, hoveredType, delay = this.delay) {
if (hoveredType == 'Word' && this.interactedObject.datatype == 'Word' && this.identity != hoveredItem.textfield_identity) {
let hoveredWord = hoveredItem;
let currentWord = this.interactedObject;
if (currentWord.id == hoveredWord.id && currentWord.is_top_object && this.isElementInvisible()) {
this.timeoutScroll(delay);
}
}
else if (hoveredType == 'Line' && this.interactedObject.datatype == 'Line') {
let hoveredLine = hoveredItem;
let currentLine = this.interactedObject;
if (currentLine !== hoveredLine && currentLine.id == hoveredLine.id && this.isElementInvisible()) {
this.timeoutScroll(delay);
}
}
}
/**
* Scroll element in view if timeout has not been canceled during its countdown.
**/
timeoutScroll(delay) {
let behavior = (delay == 0) ? "instant" : "smooth";
this.doScroll = true;
this.timeoutID = window.setTimeout(() => {
if (this.doScroll) {
this.el.nativeElement.scrollIntoView({ 'behavior': behavior });
}
}, delay);
}
/**
* Return whether interactable object is invisible, i.e. whether it is outside of
* its scrollable container's viewport.
**/
isElementInvisible() {
if (this.container == null || this.container == undefined || this.container.getAttribute('class') == 'inline') {
return false;
}
let myRect = this.el.nativeElement.getBoundingClientRect();
let containerRect = this.container.getBoundingClientRect();
return myRect.top < containerRect.top
|| myRect.bottom > containerRect.bottom
|| myRect.left < containerRect.left
|| myRect.right > containerRect.right;
}
/**
* informs the {@link /injectables/PageViewService.html|PageViewService} about
* click events on {@link #interactedObject|interactedObject}.
**/
onMouseClick(e) {
this.pageViewService.onClickService(this.interactedObject, { visible: true, layerX: e.layerX, layerY: e.layerY, clientX: e.clientX, clientY: e.clientY });
}
/**
* informs the {@link /injectables/PageViewService.html|PageViewService} about
* mouse enter events on {@link #interactedObject|interactedObject}.
**/
onMouseEnter(e) {
this.pageViewService.onHoverService(this.interactedObject, { visible: true, layerX: e.layerX, layerY: e.layerY, clientX: e.clientX, clientY: e.clientY });
}
/**
* informs the {@link /injectables/PageViewService.html|PageViewService} about
* mouse leave events on {@link #interactedObject|interactedObject}.
**/
onMouseLeave() {
this.pageViewService.offHoverService(this.interactedObject);
}
};
InteractedDirective.ctorParameters = () => [
{ type: _page_view_service__WEBPACK_IMPORTED_MODULE_2__["PageViewService"] },
{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ElementRef"] }
];
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('interactedObject')
], InteractedDirective.prototype, "interactedObject", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], InteractedDirective.prototype, "identity", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], InteractedDirective.prototype, "container", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["HostListener"])('click', ['$event'])
], InteractedDirective.prototype, "onMouseClick", null);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["HostListener"])('mouseenter', ['$event'])
], InteractedDirective.prototype, "onMouseEnter", null);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["HostListener"])('mouseleave')
], InteractedDirective.prototype, "onMouseLeave", null);
InteractedDirective = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Directive"])({
selector: '[interactedObject]'
})
], InteractedDirective);
/***/ }),
/***/ "./src/app/page-view/margin-field/line-reference/line-reference.component.css":
/*!************************************************************************************!*\
!*** ./src/app/page-view/margin-field/line-reference/line-reference.component.css ***!
\************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = (".unhighlighted {\n fill: white;\n opacity: 0.0;\n}\n.highlighted {\n fill: lightgrey;\n opacity: 0.3;\n}\n.mouse-pointer {\n cursor: pointer;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9wYWdlLXZpZXcvbWFyZ2luLWZpZWxkL2xpbmUtcmVmZXJlbmNlL2xpbmUtcmVmZXJlbmNlLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxXQUFXO0dBQ1gsWUFBWTtBQUNmO0FBQ0E7R0FDRyxlQUFlO0dBQ2YsWUFBWTtBQUNmO0FBQ0E7R0FDRyxlQUFlO0FBQ2xCIiwiZmlsZSI6ImFwcC9wYWdlLXZpZXcvbWFyZ2luLWZpZWxkL2xpbmUtcmVmZXJlbmNlL2xpbmUtcmVmZXJlbmNlLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudW5oaWdobGlnaHRlZCB7XG4gICBmaWxsOiB3aGl0ZTtcbiAgIG9wYWNpdHk6IDAuMDtcbn1cbi5oaWdobGlnaHRlZCB7XG4gICBmaWxsOiBsaWdodGdyZXk7XG4gICBvcGFjaXR5OiAwLjM7XG59XG4ubW91c2UtcG9pbnRlciB7XG4gICBjdXJzb3I6IHBvaW50ZXI7XG59XG4iXX0= */");
+/* harmony default export */ __webpack_exports__["default"] = (".unhighlighted {\n fill: white;\n opacity: 0.0;\n}\n.highlighted {\n fill: lightgrey;\n opacity: 0.3;\n}\n.mouse-pointer {\n cursor: pointer;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhZ2Utdmlldy9tYXJnaW4tZmllbGQvbGluZS1yZWZlcmVuY2UvbGluZS1yZWZlcmVuY2UuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLFdBQVc7R0FDWCxZQUFZO0FBQ2Y7QUFDQTtHQUNHLGVBQWU7R0FDZixZQUFZO0FBQ2Y7QUFDQTtHQUNHLGVBQWU7QUFDbEIiLCJmaWxlIjoicGFnZS12aWV3L21hcmdpbi1maWVsZC9saW5lLXJlZmVyZW5jZS9saW5lLXJlZmVyZW5jZS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnVuaGlnaGxpZ2h0ZWQge1xuICAgZmlsbDogd2hpdGU7XG4gICBvcGFjaXR5OiAwLjA7XG59XG4uaGlnaGxpZ2h0ZWQge1xuICAgZmlsbDogbGlnaHRncmV5O1xuICAgb3BhY2l0eTogMC4zO1xufVxuLm1vdXNlLXBvaW50ZXIge1xuICAgY3Vyc29yOiBwb2ludGVyO1xufVxuIl19 */");
/***/ }),
/***/ "./src/app/page-view/margin-field/line-reference/line-reference.component.ts":
/*!***********************************************************************************!*\
!*** ./src/app/page-view/margin-field/line-reference/line-reference.component.ts ***!
\***********************************************************************************/
/*! exports provided: LineReferenceComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LineReferenceComponent", function() { return LineReferenceComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _page_view_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../page-view.service */ "./src/app/page-view/page-view.service.ts");
let LineReferenceComponent = class LineReferenceComponent {
constructor(pageViewService) {
this.pageViewService = pageViewService;
this.highlighted = false;
}
ngOnInit() {
if (this.line != null && this.referenceName != '' && ((this.referenceName == 'to' && this.line.continuesTo != null)
|| (this.referenceName == 'from' && this.line.continuesFrom != null))) {
this.reference = (this.referenceName == 'to') ? this.line.continuesTo : this.line.continuesFrom;
this.continuation = { source: this.line.source, reference: this.reference, datatype: 'Continuation', show: this.referenceName };
}
}
showReference(show, e) {
this.highlighted = show;
let point = { visible: show, clientX: e.clientX - 10, clientY: e.clientY - 80, layerX: e.layerX, layerY: e.layerY };
if (show) {
this.pageViewService.onHoverService(this.continuation, point);
this.pageViewService.onHoverService(this.line);
}
else {
this.pageViewService.offHoverService(this.continuation);
this.pageViewService.offHoverService(this.line);
}
}
changeLocation() {
this.pageViewService.referenceService(this.reference);
}
};
LineReferenceComponent.ctorParameters = () => [
{ type: _page_view_service__WEBPACK_IMPORTED_MODULE_2__["PageViewService"] }
];
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], LineReferenceComponent.prototype, "line", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('showReference')
], LineReferenceComponent.prototype, "referenceName", void 0);
LineReferenceComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'line-reference',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./line-reference.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/margin-field/line-reference/line-reference.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./line-reference.component.css */ "./src/app/page-view/margin-field/line-reference/line-reference.component.css")).default]
})
], LineReferenceComponent);
/***/ }),
/***/ "./src/app/page-view/margin-field/margin-field.component.css":
/*!*******************************************************************!*\
!*** ./src/app/page-view/margin-field/margin-field.component.css ***!
\*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = (".marginfield {\n background-color: white;\n cursor: default;\n}\n\n.marginfield .text {\n font-size: 8px;\n}\n\n.marginfield .unhighlighted {\n fill: white;\n opacity: 0.0;\n}\n\n.marginfield .highlight {\n fill: yellow;\n opacity: 0.3;\n}\n\n.marginfield .border {\n stroke: #e2fa00;\n stroke-width:5;\n opacity: 0.3;\n}\n\n.marginfield .howered_line {\n fill: #fa301c;\n opacity: 0.3;\n}\n\n.marginfield .same_word {\n fill: #c9fac5;\n opacity: 0.3;\n}\n\n.text_fadeout {\n fill: #a4a4a4;\n}\n\n.hover {\n transform: scale(1.5);\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9wYWdlLXZpZXcvbWFyZ2luLWZpZWxkL21hcmdpbi1maWVsZC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsdUJBQXVCO0VBQ3ZCLGVBQWU7QUFDakI7O0FBRUE7R0FDRyxjQUFjO0FBQ2pCOztBQUVBO0dBQ0csV0FBVztHQUNYLFlBQVk7QUFDZjs7QUFDQTtHQUNHLFlBQVk7R0FDWixZQUFZO0FBQ2Y7O0FBQ0E7RUFDRSxlQUFlO0VBQ2YsY0FBYztFQUNkLFlBQVk7QUFDZDs7QUFDQTtFQUNFLGFBQWE7RUFDYixZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsWUFBWTtBQUNkOztBQUVBO0VBQ0UsYUFBYTtBQUNmOztBQUVBO0VBQ0UscUJBQXFCO0FBQ3ZCIiwiZmlsZSI6ImFwcC9wYWdlLXZpZXcvbWFyZ2luLWZpZWxkL21hcmdpbi1maWVsZC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1hcmdpbmZpZWxkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLm1hcmdpbmZpZWxkIC50ZXh0IHtcbiAgIGZvbnQtc2l6ZTogOHB4O1xufVxuXG4ubWFyZ2luZmllbGQgLnVuaGlnaGxpZ2h0ZWQge1xuICAgZmlsbDogd2hpdGU7XG4gICBvcGFjaXR5OiAwLjA7XG59XG4ubWFyZ2luZmllbGQgLmhpZ2hsaWdodCB7XG4gICBmaWxsOiB5ZWxsb3c7XG4gICBvcGFjaXR5OiAwLjM7XG59XG4ubWFyZ2luZmllbGQgLmJvcmRlciB7XG4gIHN0cm9rZTogI2UyZmEwMDtcbiAgc3Ryb2tlLXdpZHRoOjU7XG4gIG9wYWNpdHk6IDAuMztcbn1cbi5tYXJnaW5maWVsZCAuaG93ZXJlZF9saW5lIHtcbiAgZmlsbDogI2ZhMzAxYztcbiAgb3BhY2l0eTogMC4zO1xufVxuXG4ubWFyZ2luZmllbGQgLnNhbWVfd29yZCB7XG4gIGZpbGw6ICNjOWZhYzU7XG4gIG9wYWNpdHk6IDAuMztcbn1cblxuLnRleHRfZmFkZW91dCB7XG4gIGZpbGw6ICNhNGE0YTQ7XG59XG5cbi5ob3ZlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbn1cbiJdfQ== */");
+/* harmony default export */ __webpack_exports__["default"] = (".marginfield {\n background-color: white;\n cursor: default;\n}\n\n.marginfield .text {\n font-size: 8px;\n}\n\n.marginfield .unhighlighted {\n fill: white;\n opacity: 0.0;\n}\n\n.marginfield .highlight {\n fill: yellow;\n opacity: 0.3;\n}\n\n.marginfield .border {\n stroke: #e2fa00;\n stroke-width:5;\n opacity: 0.3;\n}\n\n.marginfield .howered_line {\n fill: #fa301c;\n opacity: 0.3;\n}\n\n.marginfield .same_word {\n fill: #c9fac5;\n opacity: 0.3;\n}\n\n.text_fadeout {\n fill: #a4a4a4;\n}\n\n.hover {\n transform: scale(1.5);\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhZ2Utdmlldy9tYXJnaW4tZmllbGQvbWFyZ2luLWZpZWxkLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSx1QkFBdUI7RUFDdkIsZUFBZTtBQUNqQjs7QUFFQTtHQUNHLGNBQWM7QUFDakI7O0FBRUE7R0FDRyxXQUFXO0dBQ1gsWUFBWTtBQUNmOztBQUNBO0dBQ0csWUFBWTtHQUNaLFlBQVk7QUFDZjs7QUFDQTtFQUNFLGVBQWU7RUFDZixjQUFjO0VBQ2QsWUFBWTtBQUNkOztBQUNBO0VBQ0UsYUFBYTtFQUNiLFlBQVk7QUFDZDs7QUFFQTtFQUNFLGFBQWE7RUFDYixZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxxQkFBcUI7QUFDdkIiLCJmaWxlIjoicGFnZS12aWV3L21hcmdpbi1maWVsZC9tYXJnaW4tZmllbGQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tYXJnaW5maWVsZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5tYXJnaW5maWVsZCAudGV4dCB7XG4gICBmb250LXNpemU6IDhweDtcbn1cblxuLm1hcmdpbmZpZWxkIC51bmhpZ2hsaWdodGVkIHtcbiAgIGZpbGw6IHdoaXRlO1xuICAgb3BhY2l0eTogMC4wO1xufVxuLm1hcmdpbmZpZWxkIC5oaWdobGlnaHQge1xuICAgZmlsbDogeWVsbG93O1xuICAgb3BhY2l0eTogMC4zO1xufVxuLm1hcmdpbmZpZWxkIC5ib3JkZXIge1xuICBzdHJva2U6ICNlMmZhMDA7XG4gIHN0cm9rZS13aWR0aDo1O1xuICBvcGFjaXR5OiAwLjM7XG59XG4ubWFyZ2luZmllbGQgLmhvd2VyZWRfbGluZSB7XG4gIGZpbGw6ICNmYTMwMWM7XG4gIG9wYWNpdHk6IDAuMztcbn1cblxuLm1hcmdpbmZpZWxkIC5zYW1lX3dvcmQge1xuICBmaWxsOiAjYzlmYWM1O1xuICBvcGFjaXR5OiAwLjM7XG59XG5cbi50ZXh0X2ZhZGVvdXQge1xuICBmaWxsOiAjYTRhNGE0O1xufVxuXG4uaG92ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG59XG4iXX0= */");
/***/ }),
/***/ "./src/app/page-view/margin-field/margin-field.component.ts":
/*!******************************************************************!*\
!*** ./src/app/page-view/margin-field/margin-field.component.ts ***!
\******************************************************************/
/*! exports provided: MarginFieldComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MarginFieldComponent", function() { return MarginFieldComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _page_view_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../page-view.service */ "./src/app/page-view/page-view.service.ts");
/* harmony import */ var _highlight_status__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../highlight_status */ "./src/app/page-view/highlight_status.ts");
/**
* This component displays an Array of lines.
**/
let MarginFieldComponent = class MarginFieldComponent {
/**
* @param lineservice an information source about (un-)hovered and clicked Lines/Words.
**/
constructor(lineservice) {
this.lineservice = lineservice;
/**
* the hovered status for a line
**/
this.HOVERED_STATUS = _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].LINE_HOVERED;
this.SELECTED_STATUS = _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].SELECTED_LINE;
/**
* the height of a line rect.
**/
this.line_height = 8;
/**
* the length of the line rect.
**/
this.line_length = 10;
/**
* x coordinate of the line rect.
**/
this.line_x = 5;
/**
* the height of the margin field.
**/
this.margin_height = 973.91998;
/**
* geometrical top position of the margin field.
**/
this.margin_top = 0;
/**
* the width of the margin field.
**/
this.margin_width = 30;
/**
* specifies reference type that should be displayed
**/
this.showReference = "to";
/**
* The viewbox of this svg component.
**/
this.viewBox = '';
/**
* initial maximum height of margin field.
**/
this.max_height = -1;
/**
* initial maximum width of margin field.
**/
this.max_width = -1;
/**
* identifiers of selected lines that should be highlighted.
**/
this.selectedLines = [];
/**
* global zoom factor
**/
this.zoomFactor = 1;
/**
* local zoom factor
**/
this.local_zoom = 1;
}
/**
* Initialize geometrical information and subscribe to {@link /injectables/PageViewService.html|PageViewService}.
**/
ngOnInit() {
if (this.max_height == -1 && this.max_width == -1) {
this.max_height = screen.availHeight;
}
this.viewBox = 0 + ' ' + this.margin_top + ' ' + this.margin_width + ' ' + this.margin_height;
if (this.text_field != null) {
this.updateViewBox();
}
this.lineservice.onHoveredLine.subscribe((changedLine) => { this.hoveredLine = changedLine; });
this.lineservice.onHoveredContinuation.subscribe((changedContinuation) => { this.hoveredReferenceLine = changedContinuation.reference.line; });
this.lineservice.offHoveredContinuation.subscribe((changedContinuation) => { this.hoveredReferenceLine = null; });
this.lineservice.offHoveredLine.subscribe((changedLine) => { this.hoveredLine = null; });
this.lineservice.onHoveredWord.subscribe((changedWord) => { this.hoveredWord = changedWord; });
this.lineservice.offHoveredWord.subscribe((changedWord) => { this.hoveredWord = null; });
}
/**
* Update viewBox if there is a change.
**/
ngOnChanges(changes) {
if (this.text_field != null) {
this.updateViewBox();
}
}
/**
* Update viewBox: set
* {@link #margin_height|margin_height},
* {@link #margin_top|margin_top},
* {@link #viewBox|viewBox}
* and {@link #local_zoom|local_zoom} according to
* {@link #text_field|text_field}.
**/
updateViewBox() {
this.lines.forEach(line => line.datatype = "Line");
if (this.showReference == 'to') {
this.margin_width = (this.lines.some(line => line.continuesTo != null || line.continuesTo != undefined)) ? this.line_length * 2 + 30 : 30;
}
else {
let hasReference = this.lines.some(line => line.continuesFrom != null || line.continuesFrom != undefined);
this.margin_width = (this.showReference == 'from' && hasReference) ? this.line_length * 2 + 30 : 30;
this.line_x = (this.showReference == 'from' && hasReference) ? 2 * this.line_length : 5;
}
this.margin_height = this.text_field.height;
this.margin_top = this.text_field.top;
this.viewBox = 0 + ' ' + this.margin_top + ' ' + this.margin_width + ' ' + this.margin_height;
this.local_zoom = (this.max_height != -1 && this.max_width == -1)
? this.max_height / this.text_field.height : this.max_width / this.text_field.width;
if (this.max_width == -1 && this.text_field.height < this.text_field.width) {
this.local_zoom = (window.innerWidth / 2 - 100) / this.text_field.width;
}
}
/**
* Get the hover status of a line, i.e. whether it is hovered
* ({@link /miscellaneous/enumerations.html#HIGHTLIGHT_CASES|HIGHTLIGHT_CASES.LINE_HOVERED})
* or not ({@link /miscellaneous/enumerations.html#HIGHTLIGHT_CASES|HIGHTLIGHT_CASES.DEFAULT}).
**/
getHoverStatus(line) {
if ((this.hoveredLine != undefined && this.hoveredLine != null && line.id == this.hoveredLine.id)
|| (this.hoveredReferenceLine != undefined && this.hoveredReferenceLine != null && line.id == this.hoveredReferenceLine.id)
|| (this.hoveredWord != undefined && this.hoveredWord != null && line.id == this.hoveredWord.line)) {
return _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].LINE_HOVERED;
}
else if (this.selectedLines.length > 0 && this.selectedLines.indexOf(line.id) > -1) {
return _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].SELECTED_LINE;
}
else {
return _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].DEFAULT;
}
}
/**
* Assign a style to the rects of a line.
**/
assignStyle(line, hoveredWord, hoveredLine, hoverStatus) {
return (this.extAssignStyle != null) ? this.extAssignStyle(line, hoveredWord, hoveredLine, hoverStatus) : {};
}
};
MarginFieldComponent.ctorParameters = () => [
{ type: _page_view_service__WEBPACK_IMPORTED_MODULE_2__["PageViewService"] }
];
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], MarginFieldComponent.prototype, "container", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], MarginFieldComponent.prototype, "lines", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], MarginFieldComponent.prototype, "showReference", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], MarginFieldComponent.prototype, "text_field", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], MarginFieldComponent.prototype, "max_height", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], MarginFieldComponent.prototype, "max_width", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], MarginFieldComponent.prototype, "selectedLines", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], MarginFieldComponent.prototype, "zoomFactor", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('assignStyle')
], MarginFieldComponent.prototype, "extAssignStyle", void 0);
MarginFieldComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'margin-field',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./margin-field.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/margin-field/margin-field.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./margin-field.component.css */ "./src/app/page-view/margin-field/margin-field.component.css")).default]
})
], MarginFieldComponent);
/***/ }),
/***/ "./src/app/page-view/page-view.component.css":
/*!***************************************************!*\
!*** ./src/app/page-view/page-view.component.css ***!
\***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = ("#page {\n width: 100%;\n margin: 0;\n padding: 0;\n white-space: nowrap;\n}\n.inline {\n display: inline-block;\n}\n.breakline {\n display: block;\n height: 50%;\n overflow: scroll;\n}\n.gap {\n display: inline-block;\n width: 1px;\n height: 100%;\n margin: 0;\n}\n#margin {\n display: inline-block;\n height: 100%;\n margin: 0;\n}\n#textfield {\n display: inline-block;\n /*width: 95%;*/\n height: 100%;\n margin: 0;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9wYWdlLXZpZXcvcGFnZS12aWV3LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxXQUFXO0dBQ1gsU0FBUztHQUNULFVBQVU7R0FDVixtQkFBbUI7QUFDdEI7QUFDQTtHQUNHLHFCQUFxQjtBQUN4QjtBQUNBO0dBQ0csY0FBYztHQUNkLFdBQVc7R0FDWCxnQkFBZ0I7QUFDbkI7QUFDQTtHQUNHLHFCQUFxQjtHQUNyQixVQUFVO0dBQ1YsWUFBWTtHQUNaLFNBQVM7QUFDWjtBQUNBO0dBQ0cscUJBQXFCO0dBQ3JCLFlBQVk7R0FDWixTQUFTO0FBQ1o7QUFDQTtHQUNHLHFCQUFxQjtHQUNyQixjQUFjO0dBQ2QsWUFBWTtHQUNaLFNBQVM7QUFDWiIsImZpbGUiOiJhcHAvcGFnZS12aWV3L3BhZ2Utdmlldy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI3BhZ2Uge1xuICAgd2lkdGg6IDEwMCU7XG4gICBtYXJnaW46IDA7XG4gICBwYWRkaW5nOiAwO1xuICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5pbmxpbmUge1xuICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLmJyZWFrbGluZSB7XG4gICBkaXNwbGF5OiBibG9jaztcbiAgIGhlaWdodDogNTAlO1xuICAgb3ZlcmZsb3c6IHNjcm9sbDtcbn1cbi5nYXAge1xuICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgd2lkdGg6IDFweDtcbiAgIGhlaWdodDogMTAwJTtcbiAgIG1hcmdpbjogMDtcbn1cbiNtYXJnaW4ge1xuICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgaGVpZ2h0OiAxMDAlO1xuICAgbWFyZ2luOiAwO1xufVxuI3RleHRmaWVsZCB7XG4gICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAvKndpZHRoOiA5NSU7Ki9cbiAgIGhlaWdodDogMTAwJTtcbiAgIG1hcmdpbjogMDtcbn1cbiJdfQ== */");
+/* harmony default export */ __webpack_exports__["default"] = ("#page {\n width: 100%;\n margin: 0;\n padding: 0;\n white-space: nowrap;\n}\n.inline {\n display: inline-block;\n}\n.breakline {\n display: block;\n height: 50%;\n overflow: scroll;\n}\n.gap {\n display: inline-block;\n width: 1px;\n height: 100%;\n margin: 0;\n}\n#margin {\n display: inline-block;\n height: 100%;\n margin: 0;\n}\n#textfield {\n display: inline-block;\n /*width: 95%;*/\n height: 100%;\n margin: 0;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhZ2Utdmlldy9wYWdlLXZpZXcuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLFdBQVc7R0FDWCxTQUFTO0dBQ1QsVUFBVTtHQUNWLG1CQUFtQjtBQUN0QjtBQUNBO0dBQ0cscUJBQXFCO0FBQ3hCO0FBQ0E7R0FDRyxjQUFjO0dBQ2QsV0FBVztHQUNYLGdCQUFnQjtBQUNuQjtBQUNBO0dBQ0cscUJBQXFCO0dBQ3JCLFVBQVU7R0FDVixZQUFZO0dBQ1osU0FBUztBQUNaO0FBQ0E7R0FDRyxxQkFBcUI7R0FDckIsWUFBWTtHQUNaLFNBQVM7QUFDWjtBQUNBO0dBQ0cscUJBQXFCO0dBQ3JCLGNBQWM7R0FDZCxZQUFZO0dBQ1osU0FBUztBQUNaIiwiZmlsZSI6InBhZ2Utdmlldy9wYWdlLXZpZXcuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiNwYWdlIHtcbiAgIHdpZHRoOiAxMDAlO1xuICAgbWFyZ2luOiAwO1xuICAgcGFkZGluZzogMDtcbiAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uaW5saW5lIHtcbiAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5icmVha2xpbmUge1xuICAgZGlzcGxheTogYmxvY2s7XG4gICBoZWlnaHQ6IDUwJTtcbiAgIG92ZXJmbG93OiBzY3JvbGw7XG59XG4uZ2FwIHtcbiAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgIHdpZHRoOiAxcHg7XG4gICBoZWlnaHQ6IDEwMCU7XG4gICBtYXJnaW46IDA7XG59XG4jbWFyZ2luIHtcbiAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgIGhlaWdodDogMTAwJTtcbiAgIG1hcmdpbjogMDtcbn1cbiN0ZXh0ZmllbGQge1xuICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgLyp3aWR0aDogOTUlOyovXG4gICBoZWlnaHQ6IDEwMCU7XG4gICBtYXJnaW46IDA7XG59XG4iXX0= */");
/***/ }),
/***/ "./src/app/page-view/page-view.component.ts":
/*!**************************************************!*\
!*** ./src/app/page-view/page-view.component.ts ***!
\**************************************************/
/*! exports provided: PageViewComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PageViewComponent", function() { return PageViewComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/**
* This component displays one or two {@link /components/TextFieldComponent.html|TextFieldComponent(s)}
* and its or their {@link /components/MarginFieldComponent.html|MarginFieldComponent(s)}.
**/
let PageViewComponent = class PageViewComponent {
constructor() {
/**
* first texts written by foreign hand
**/
this.first_foreign_texts = [];
/**
* Identification of first textfield.
**/
this.first_textfield_id = 'first textfield';
/**
* the (initial) maximum height of the image(s).
**/
this.max_height = -1;
/**
* the (initial) maximum width of the image(s).
**/
this.max_width = -1;
/**
* should primary Url be used for image. Use secondary Url if false.
**/
this.preferPrimaryUrl = true;
/**
* second texts written by foreign hand
**/
this.second_foreign_texts = [];
/**
* Identification of second textfield.
**/
this.second_textfield_id = 'second textfield';
/**
* global zoom factor.
**/
this.zoomFactor = 1;
/**
* identifiers of selected words that should be highlighted.
**/
this.selectedWords = [];
/**
* identifiers of selected lines that should be highlighted.
**/
this.selectedLines = [];
this.showReferenceLeft = 'from';
this.showReferenceRight = 'to';
}
/**
* sets {@link /components/PageViewComponent.html#max_height|max_height} if it is unset.
**/
ngOnInit() {
if (this.max_height == -1 && this.max_width == -1) {
this.max_height = screen.availHeight;
}
this.checkImages();
}
ngOnChanges() {
if (this.dontShowReference != undefined && this.dontShowReference != null && this.dontShowReference) {
this.showReferenceLeft = '';
this.showReferenceRight = '';
}
else {
this.showReferenceLeft = 'from';
this.showReferenceRight = 'to';
}
this.checkImages();
if (this.first_image != null && this.first_image != undefined && this.first_image.transform != null) {
this.updateLines(this.first_words, this.first_lines);
}
if (this.second_image != null && this.second_image != undefined && this.second_image.transform != null) {
this.updateLines(this.second_words, this.second_lines);
}
}
checkImages() {
if (this.first_image != null && this.first_image != undefined && this.startLineId != null && this.startLineId != undefined) {
if (this.first_lines != null && this.first_lines != undefined && this.first_lines.length > 0) {
this.first_image = this.updateTextField(this.first_image, this.first_lines);
}
if (this.second_lines != null && this.second_lines != undefined && this.second_lines.length > 0) {
this.second_image = this.updateTextField(this.second_image, this.second_lines);
}
}
}
updateLines(words, lines) {
for (var i = 0; i < lines.length; i++) {
if (words.filter(word => word.line == lines[i].id).length > 0) {
lines[i].top = words.filter(word => word.line == lines[i].id).map(word => Number(word.top)).sort(function (a, b) { return a - b; })[0];
lines[i].bottom = words.filter(word => word.line == lines[i].id).map(word => Number(word.top) + Number(word.height)).sort(function (a, b) { return b - a; })[0];
}
}
}
updateTextField(image, lines) {
let endLineId = (this.endLineId != null && this.endLineId != undefined) ? this.endLineId : this.startLineId;
let startLines = lines.filter(line => line.id == this.startLineId);
let endLines = lines.filter(line => line.id == endLineId);
if (startLines.length > 0 && endLines.length > 0) {
let top = (startLines[0].top > 10) ? startLines[0].top - 10 : startLines[0].top;
let height = (endLines[0].bottom - top) + 10;
let text_field = { top: top, left: image.text_field.left, width: image.text_field.width, height: height };
return { x: image.x, y: image.y, width: image.width, height: image.height, filename: image.filename,
URL: image.URL, secondaryURL: image.secondaryURL, text_field: text_field, transform: image.transform,
copyright: image.copyright };
}
return image;
}
/**
* Returns whether the two images can be displayed as columns.
**/
hasColumnStyle() {
if (this.zoomFactor <= 1 || this.first_image == null || this.second_image == null) {
return true;
}
let newLeftWidth = this.max_height / this.first_image.text_field.height * this.zoomFactor * this.first_image.text_field.width;
let newRightWidth = this.max_height / this.second_image.text_field.height * this.zoomFactor * this.second_image.text_field.width;
return newLeftWidth + newRightWidth < screen.availWidth;
}
};
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], PageViewComponent.prototype, "configuration", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], PageViewComponent.prototype, "findText", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], PageViewComponent.prototype, "first_foreign_texts", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], PageViewComponent.prototype, "first_image", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], PageViewComponent.prototype, "first_lines", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], PageViewComponent.prototype, "first_words", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], PageViewComponent.prototype, "max_height", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], PageViewComponent.prototype, "max_width", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], PageViewComponent.prototype, "preferPrimaryUrl", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], PageViewComponent.prototype, "second_foreign_texts", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], PageViewComponent.prototype, "second_image", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], PageViewComponent.prototype, "second_lines", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], PageViewComponent.prototype, "second_words", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('assignClass')
], PageViewComponent.prototype, "assignClass", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('assignStyle')
], PageViewComponent.prototype, "assignStyle", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], PageViewComponent.prototype, "zoomFactor", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], PageViewComponent.prototype, "selectedWords", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], PageViewComponent.prototype, "selectedLines", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('startLine')
], PageViewComponent.prototype, "startLineId", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('endLine')
], PageViewComponent.prototype, "endLineId", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], PageViewComponent.prototype, "dontShowReference", void 0);
PageViewComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'page-view',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./page-view.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/page-view.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./page-view.component.css */ "./src/app/page-view/page-view.component.css")).default]
})
], PageViewComponent);
/***/ }),
/***/ "./src/app/page-view/page-view.module.ts":
/*!***********************************************!*\
!*** ./src/app/page-view/page-view.module.ts ***!
\***********************************************/
/*! exports provided: PageViewModule */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PageViewModule", function() { return PageViewModule; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/fesm2015/common.js");
/* harmony import */ var _angular_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/material */ "./node_modules/@angular/material/esm2015/material.js");
/* harmony import */ var _margin_field_margin_field_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./margin-field/margin-field.component */ "./src/app/page-view/margin-field/margin-field.component.ts");
/* harmony import */ var _textfield_component_textfield_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./textfield-component/textfield.component */ "./src/app/page-view/textfield-component/textfield.component.ts");
/* harmony import */ var _interacted_directive__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./interacted.directive */ "./src/app/page-view/interacted.directive.ts");
/* harmony import */ var _page_view_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./page-view.component */ "./src/app/page-view/page-view.component.ts");
/* harmony import */ var _page_view_service__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./page-view.service */ "./src/app/page-view/page-view.service.ts");
/* harmony import */ var _copyright_copyright_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./copyright/copyright.component */ "./src/app/page-view/copyright/copyright.component.ts");
/* harmony import */ var _margin_field_line_reference_line_reference_component__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./margin-field/line-reference/line-reference.component */ "./src/app/page-view/margin-field/line-reference/line-reference.component.ts");
/* harmony import */ var _copyright_copyright_sheet_copyright_sheet_component__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./copyright/copyright-sheet/copyright-sheet.component */ "./src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.ts");
let PageViewModule = class PageViewModule {
};
PageViewModule = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({
declarations: [
_interacted_directive__WEBPACK_IMPORTED_MODULE_6__["InteractedDirective"],
_margin_field_margin_field_component__WEBPACK_IMPORTED_MODULE_4__["MarginFieldComponent"],
_textfield_component_textfield_component__WEBPACK_IMPORTED_MODULE_5__["TextFieldComponent"],
_page_view_component__WEBPACK_IMPORTED_MODULE_7__["PageViewComponent"],
_copyright_copyright_component__WEBPACK_IMPORTED_MODULE_9__["CopyrightComponent"],
_margin_field_line_reference_line_reference_component__WEBPACK_IMPORTED_MODULE_10__["LineReferenceComponent"],
_copyright_copyright_sheet_copyright_sheet_component__WEBPACK_IMPORTED_MODULE_11__["CopyrightSheetComponent"]
],
imports: [
_angular_material__WEBPACK_IMPORTED_MODULE_3__["MatBottomSheetModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_3__["MatButtonModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_3__["MatButtonToggleModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_3__["MatCardModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_3__["MatCheckboxModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_3__["MatDialogModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_3__["MatExpansionModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_3__["MatFormFieldModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_3__["MatIconModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_3__["MatInputModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_3__["MatListModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_3__["MatMenuModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_3__["MatPaginatorModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_3__["MatRadioModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_3__["MatSelectModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_3__["MatSidenavModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_3__["MatSortModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_3__["MatTableModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_3__["MatTabsModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_3__["MatToolbarModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_3__["MatTooltipModule"],
_angular_common__WEBPACK_IMPORTED_MODULE_2__["CommonModule"]
],
providers: [
_page_view_service__WEBPACK_IMPORTED_MODULE_8__["PageViewService"]
],
exports: [
_margin_field_margin_field_component__WEBPACK_IMPORTED_MODULE_4__["MarginFieldComponent"],
_textfield_component_textfield_component__WEBPACK_IMPORTED_MODULE_5__["TextFieldComponent"],
_page_view_component__WEBPACK_IMPORTED_MODULE_7__["PageViewComponent"],
_copyright_copyright_component__WEBPACK_IMPORTED_MODULE_9__["CopyrightComponent"]
],
entryComponents: [_copyright_copyright_sheet_copyright_sheet_component__WEBPACK_IMPORTED_MODULE_11__["CopyrightSheetComponent"]]
})
], PageViewModule);
/***/ }),
/***/ "./src/app/page-view/page-view.service.ts":
/*!************************************************!*\
!*** ./src/app/page-view/page-view.service.ts ***!
\************************************************/
/*! exports provided: PageViewService */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PageViewService", function() { return PageViewService; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/**
* This is an information service about clicked and (un-)hovered
* {@link /interfaces/Line.html|Lines},
* {@link /miscellaneous/typealiases.html#Word|Words}.
* and {@link /interfaces/TextByForeignHand.html|TextByForeignHands}.
* */
let PageViewService = class PageViewService {
/**
* This is an information service about clicked and (un-)hovered
* {@link /interfaces/Line.html|Lines},
* {@link /miscellaneous/typealiases.html#Word|Words}.
* and {@link /interfaces/TextByForeignHand.html|TextByForeignHands}.
* */
constructor() {
/**
* hovered line emitter
**/
this.onHoveredLine = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
/**
* off hovered line emitter
**/
this.offHoveredLine = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
/**
* clicked line emitter
**/
this.onClickedLine = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
/**
* hovered word emitter
**/
this.onHoveredWord = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
/**
* off hovered word emitter
**/
this.offHoveredWord = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
/**
* clicked word emitter
**/
this.onClickedWord = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
/**
* clicked text by foreign hand emitter
**/
this.onClickedTextByForeignHand = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
/**
* hovered text by foreign hand emitter
**/
this.onHoveredTextByForeignHand = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
/**
* off hovered text by foreign hand emitter
**/
this.offHoveredTextByForeignHand = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
/**
* hovered line continuation
**/
this.onHoveredContinuation = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
/**
* off hovered line continuation
**/
this.offHoveredContinuation = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
/**
* point where mouse hovered/clicked
**/
this.mousePosition = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
/**
* Reference change emitter, subscribe in order to navigate to reference.
**/
this.reference = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
/**
* copyright change emitter
* */
this.copyright = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
}
referenceService(reference) {
this.reference.emit(reference);
}
copyrightService(copyright, point) {
this.copyright.emit(copyright);
if (point != null && point != undefined) {
this.mousePosition.emit(point);
}
}
/**
* emit an event on 'onClicked' + interactable.datatype
**/
onClickService(interactable, point) {
this['onClicked' + interactable.datatype].emit(interactable);
if (interactable.datatype != 'Line' && point != null && point != undefined) {
this.mousePosition.emit(point);
}
}
/**
* emit an event on 'onHover' + interactable.datatype
**/
onHoverService(interactable, point) {
this['onHovered' + interactable.datatype].emit(interactable);
if (interactable.datatype != 'Line' && point != null && point != undefined) {
this.mousePosition.emit(point);
}
}
/**
* emit an event on 'offHover' + interactable.datatype
**/
offHoverService(interactable) {
this['offHovered' + interactable.datatype].emit(interactable);
this.mousePosition.emit({ visible: false, clientX: -1, clientY: -1, layerX: -1, layerY: -1 });
}
};
PageViewService = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"])()
], PageViewService);
/***/ }),
/***/ "./src/app/page-view/textfield-component/matrix.ts":
/*!*********************************************************!*\
!*** ./src/app/page-view/textfield-component/matrix.ts ***!
\*********************************************************/
/*! exports provided: Matrix */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Matrix", function() { return Matrix; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
class Matrix {
constructor(matrix_string, zoomFactor) {
this.offset = -140;
this.A = 0;
this.B = 1;
this.C = 2;
this.D = 3;
this.E = 4;
this.F = 5;
this.matrix = [1, 0, 0, 1, 0, 0];
if (matrix_string.startsWith('matrix')) {
this.matrix = matrix_string.replace('matrix(', '').replace(')', '').split(' ').map(n => Number(n));
}
else if (matrix_string.startsWith('rotation')) {
let angle = Number(matrix_string.replace('rotation(', '').replace(')', ''));
let radians = Math.PI / 180 * angle;
this.matrix[this.A] = Math.round(Math.cos(radians));
this.matrix[this.B] = Math.sin(radians);
this.matrix[this.C] = Math.sin(radians) * -1;
this.matrix[this.D] = Math.round(Math.cos(radians));
}
if (zoomFactor != null) {
this.matrix[this.E] = zoomFactor * this.offset;
this.matrix[this.F] = zoomFactor * this.offset;
}
}
toString() {
return 'matrix(' + this.matrix.map(n => String(n)).join(' ') + ')';
}
}
/***/ }),
/***/ "./src/app/page-view/textfield-component/textfield.component.css":
/*!***********************************************************************!*\
!*** ./src/app/page-view/textfield-component/textfield.component.css ***!
\***********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = (".textfield {\n background-color: #DADADA;\n}\n.textfield .deleted {\n fill: grey;\n opacity: 0.3;\n}\n.textfield .highlight_red {\n fill: #e20000;\n opacity: 0.3;\n}\n.textfield .highlight_yellow {\n fill: #e2fa00;\n opacity: 0.3;\n}\n.textfield .highlight_magenta {\n fill: #FF00FF;\n opacity: 0.3;\n}\n.textfield .highlight_foreign_text {\n fill: blue;\n opacity: 0.5;\n}\n.textfield .unhighlighted {\n opacity: 0.0;\n}\n.textfield .highlight_path {\n stroke: red;\n fill: none;\n stroke-width: 0.2;\n}\n.textfield .unhighlighted_path {\n stroke: none;\n fill: none;\n opacity: 0.0;\n}\n.textfield .border {\n stroke: #e2fa00;\n stroke-width:5;\n opacity: 0.3;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9wYWdlLXZpZXcvdGV4dGZpZWxkLWNvbXBvbmVudC90ZXh0ZmllbGQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UsVUFBVTtFQUNWLFlBQVk7QUFDZDtBQUNBO0VBQ0UsYUFBYTtFQUNiLFlBQVk7QUFDZDtBQUNBO0VBQ0UsYUFBYTtFQUNiLFlBQVk7QUFDZDtBQUNBO0VBQ0UsYUFBYTtFQUNiLFlBQVk7QUFDZDtBQUNBO0VBQ0UsVUFBVTtFQUNWLFlBQVk7QUFDZDtBQUNBO0VBQ0UsWUFBWTtBQUNkO0FBQ0E7R0FDRyxXQUFXO0dBQ1gsVUFBVTtHQUNWLGlCQUFpQjtBQUNwQjtBQUNBO0dBQ0csWUFBWTtHQUNaLFVBQVU7R0FDVixZQUFZO0FBQ2Y7QUFDQTtFQUNFLGVBQWU7RUFDZixjQUFjO0VBQ2QsWUFBWTtBQUNkIiwiZmlsZSI6ImFwcC9wYWdlLXZpZXcvdGV4dGZpZWxkLWNvbXBvbmVudC90ZXh0ZmllbGQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi50ZXh0ZmllbGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREFEQURBO1xufVxuLnRleHRmaWVsZCAuZGVsZXRlZCB7XG4gIGZpbGw6IGdyZXk7XG4gIG9wYWNpdHk6IDAuMztcbn1cbi50ZXh0ZmllbGQgLmhpZ2hsaWdodF9yZWQge1xuICBmaWxsOiAjZTIwMDAwO1xuICBvcGFjaXR5OiAwLjM7XG59XG4udGV4dGZpZWxkIC5oaWdobGlnaHRfeWVsbG93IHtcbiAgZmlsbDogI2UyZmEwMDtcbiAgb3BhY2l0eTogMC4zO1xufVxuLnRleHRmaWVsZCAuaGlnaGxpZ2h0X21hZ2VudGEge1xuICBmaWxsOiAjRkYwMEZGO1xuICBvcGFjaXR5OiAwLjM7XG59XG4udGV4dGZpZWxkIC5oaWdobGlnaHRfZm9yZWlnbl90ZXh0IHtcbiAgZmlsbDogYmx1ZTtcbiAgb3BhY2l0eTogMC41O1xufVxuLnRleHRmaWVsZCAudW5oaWdobGlnaHRlZCB7XG4gIG9wYWNpdHk6IDAuMDtcbn1cbi50ZXh0ZmllbGQgLmhpZ2hsaWdodF9wYXRoIHtcbiAgIHN0cm9rZTogcmVkO1xuICAgZmlsbDogbm9uZTtcbiAgIHN0cm9rZS13aWR0aDogMC4yO1xufVxuLnRleHRmaWVsZCAudW5oaWdobGlnaHRlZF9wYXRoIHtcbiAgIHN0cm9rZTogbm9uZTtcbiAgIGZpbGw6IG5vbmU7XG4gICBvcGFjaXR5OiAwLjA7XG59XG4udGV4dGZpZWxkIC5ib3JkZXIge1xuICBzdHJva2U6ICNlMmZhMDA7XG4gIHN0cm9rZS13aWR0aDo1O1xuICBvcGFjaXR5OiAwLjM7XG59XG4iXX0= */");
+/* harmony default export */ __webpack_exports__["default"] = (".textfield {\n background-color: #DADADA;\n}\n.textfield .deleted {\n fill: grey;\n opacity: 0.3;\n}\n.textfield .highlight_red {\n fill: #e20000;\n opacity: 0.3;\n}\n.textfield .highlight_yellow {\n fill: #e2fa00;\n opacity: 0.3;\n}\n.textfield .highlight_magenta {\n fill: #FF00FF;\n opacity: 0.3;\n}\n.textfield .highlight_foreign_text {\n fill: blue;\n opacity: 0.5;\n}\n.textfield .unhighlighted {\n opacity: 0.0;\n}\n.textfield .highlight_path {\n stroke: red;\n fill: none;\n stroke-width: 0.2;\n}\n.textfield .unhighlighted_path {\n stroke: none;\n fill: none;\n opacity: 0.0;\n}\n.textfield .border {\n stroke: #e2fa00;\n stroke-width:5;\n opacity: 0.3;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhZ2Utdmlldy90ZXh0ZmllbGQtY29tcG9uZW50L3RleHRmaWVsZC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsWUFBWTtBQUNkO0FBQ0E7RUFDRSxhQUFhO0VBQ2IsWUFBWTtBQUNkO0FBQ0E7RUFDRSxhQUFhO0VBQ2IsWUFBWTtBQUNkO0FBQ0E7RUFDRSxhQUFhO0VBQ2IsWUFBWTtBQUNkO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsWUFBWTtBQUNkO0FBQ0E7RUFDRSxZQUFZO0FBQ2Q7QUFDQTtHQUNHLFdBQVc7R0FDWCxVQUFVO0dBQ1YsaUJBQWlCO0FBQ3BCO0FBQ0E7R0FDRyxZQUFZO0dBQ1osVUFBVTtHQUNWLFlBQVk7QUFDZjtBQUNBO0VBQ0UsZUFBZTtFQUNmLGNBQWM7RUFDZCxZQUFZO0FBQ2QiLCJmaWxlIjoicGFnZS12aWV3L3RleHRmaWVsZC1jb21wb25lbnQvdGV4dGZpZWxkLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudGV4dGZpZWxkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RBREFEQTtcbn1cbi50ZXh0ZmllbGQgLmRlbGV0ZWQge1xuICBmaWxsOiBncmV5O1xuICBvcGFjaXR5OiAwLjM7XG59XG4udGV4dGZpZWxkIC5oaWdobGlnaHRfcmVkIHtcbiAgZmlsbDogI2UyMDAwMDtcbiAgb3BhY2l0eTogMC4zO1xufVxuLnRleHRmaWVsZCAuaGlnaGxpZ2h0X3llbGxvdyB7XG4gIGZpbGw6ICNlMmZhMDA7XG4gIG9wYWNpdHk6IDAuMztcbn1cbi50ZXh0ZmllbGQgLmhpZ2hsaWdodF9tYWdlbnRhIHtcbiAgZmlsbDogI0ZGMDBGRjtcbiAgb3BhY2l0eTogMC4zO1xufVxuLnRleHRmaWVsZCAuaGlnaGxpZ2h0X2ZvcmVpZ25fdGV4dCB7XG4gIGZpbGw6IGJsdWU7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbi50ZXh0ZmllbGQgLnVuaGlnaGxpZ2h0ZWQge1xuICBvcGFjaXR5OiAwLjA7XG59XG4udGV4dGZpZWxkIC5oaWdobGlnaHRfcGF0aCB7XG4gICBzdHJva2U6IHJlZDtcbiAgIGZpbGw6IG5vbmU7XG4gICBzdHJva2Utd2lkdGg6IDAuMjtcbn1cbi50ZXh0ZmllbGQgLnVuaGlnaGxpZ2h0ZWRfcGF0aCB7XG4gICBzdHJva2U6IG5vbmU7XG4gICBmaWxsOiBub25lO1xuICAgb3BhY2l0eTogMC4wO1xufVxuLnRleHRmaWVsZCAuYm9yZGVyIHtcbiAgc3Ryb2tlOiAjZTJmYTAwO1xuICBzdHJva2Utd2lkdGg6NTtcbiAgb3BhY2l0eTogMC4zO1xufVxuIl19 */");
/***/ }),
/***/ "./src/app/page-view/textfield-component/textfield.component.ts":
/*!**********************************************************************!*\
!*** ./src/app/page-view/textfield-component/textfield.component.ts ***!
\**********************************************************************/
/*! exports provided: TextFieldComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextFieldComponent", function() { return TextFieldComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _page_view_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../page-view.service */ "./src/app/page-view/page-view.service.ts");
/* harmony import */ var _highlight_status__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../highlight_status */ "./src/app/page-view/highlight_status.ts");
/* harmony import */ var _configurable_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../configurable-component */ "./src/app/page-view/configurable-component.ts");
/* harmony import */ var _matrix__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./matrix */ "./src/app/page-view/textfield-component/matrix.ts");
/**
* This component displays an image with word hovers.
**/
let TextFieldComponent = class TextFieldComponent extends _configurable_component__WEBPACK_IMPORTED_MODULE_4__["ConfigurableComponent"] {
/**
* @param pageViewService an information source about (un-)hovered and clicked Lines/Words.
* */
constructor(pageViewService) {
super();
this.pageViewService = pageViewService;
/**
* Debug mode.
**/
this.debug = false;
/**
* texts written by foreign hand
**/
this.foreign_texts = [];
/**
* textfield's identity.
**/
this.identity = 'first textfield';
/**
* The (unzoomed) height of the root svg.
*
* (The actual height is 'image_height*local_zoom*zoomFactor'
* */
this.image_height = 400;
/**
* image properties for the svg-image.
* */
this.imageSpec = { x: 0, y: 0, height: 973.91998, width: 2038.5601, URL: null, secondaryURL: null, transform: 'matrix(1 0 0 1 0 0)' };
/**
* The (unzoomed) width of the root svg.
*
* (The actual width is 'image_width*local_zoom*zoomFactor'
* */
this.image_width = 300;
/**
* the viewBox of the root svg specifying the area of the svg that will be shown.
* */
this.viewBox = '';
/**
* the (initial) maximum height of the image.
**/
this.max_height = -1;
/**
* the (initial) maximum width of the image.
**/
this.max_width = -1;
/**
* should primary Url be used for image. Use secondary Url if false.
**/
this.preferPrimaryUrl = true;
/**
* Use extended tooltip.
**/
this.useExtendedTooltip = false;
/**
* global zoom factor.
**/
this.zoomFactor = 1;
/**
* local zoom factor that sets the height and width of the image according to {@link #max_height|max_height}.
* */
this.local_zoom = 1;
/**
* identifiers of selected words that should be highlighted.
**/
this.selectedWords = [];
/**
* identifiers of selected lines that should be highlighted.
**/
this.selectedLines = [];
}
ngOnInit() {
if (this.max_height == -1 && this.max_width == -1) {
this.max_height = screen.availHeight;
}
if (this.image.text_field != null) {
this.updateImageProperties();
}
else if (this.imageSpec != null) {
this.image_width = this.imageSpec.width;
this.image_height = this.imageSpec.height;
this.viewBox = '0 0 ' + this.image_width + ' ' + this.image_height;
}
this.pageViewService.onClickedWord.subscribe((changedWord) => this.clickedWord = changedWord);
this.pageViewService.onHoveredWord.subscribe((changedWord) => this.hoveredWord = changedWord);
this.pageViewService.offHoveredWord.subscribe((changedWord) => { this.hoveredWord = null; });
this.pageViewService.onHoveredLine.subscribe((changedLine) => { this.hoveredLine = changedLine; });
this.pageViewService.offHoveredLine.subscribe((changedLine) => { this.hoveredLine = null; });
this.pageViewService.onHoveredTextByForeignHand.subscribe((changedForeignText) => { this.hoveredTextByForeignHand = changedForeignText; });
this.pageViewService.offHoveredTextByForeignHand.subscribe((changedForeignText) => { this.hoveredTextByForeignHand = null; });
}
ngOnChanges() {
super.ngOnChanges();
if (this.image.text_field != null) {
this.updateImageProperties();
}
if (this.debug && this.findText != null && this.findText != '') {
let words = this.words.filter(word => word.text == this.findText);
if (words.length > 0) {
this.pageViewService.onHoverService(words[0], { visible: true, clientX: 100, clientY: 100, layerX: -1, layerY: -1 });
}
}
}
/**
* Update image properties: use textfield in order to specify the area of the image that will be shown.
*
* @param URL set alternative image url. This will be used on image load error (see Template)
**/
updateImageProperties(URL) {
let previous_word = null;
for (var i = 0; i < this.words.length; i++) {
this.words[i].datatype = "Word";
if (previous_word == null || previous_word.id != this.words[i].id) {
previous_word = this.words[i];
previous_word.is_top_object = true;
}
else if (previous_word.top > this.words[i].top) {
previous_word.is_top_object = false;
previous_word = this.words[i];
previous_word.is_top_object = true;
}
else {
this.words[i].is_top_object = false;
}
}
this.foreign_texts.forEach(foreignText => foreignText.datatype = "TextByForeignHand");
let image_left = this.image.text_field.left;
let image_top = this.image.text_field.top;
this.image_width = this.image.text_field.width;
this.image_height = this.image.text_field.height;
this.local_zoom = (this.max_height != -1 && this.max_width == -1)
? this.max_height / this.image.text_field.height : this.max_width / this.image.text_field.width;
if (this.max_width == -1 && this.image_height < this.image_width) {
this.local_zoom = (window.innerWidth / 2 - 100) / this.image.text_field.width;
}
this.imageSpec.x = this.image.x;
this.imageSpec.y = this.image.y;
this.imageSpec.height = this.image.height;
this.imageSpec.width = this.image.width;
this.imageSpec.URL = (this.preferPrimaryUrl) ? this.image.URL : this.image.secondaryURL;
this.imageSpec.secondaryURL = (this.preferPrimaryUrl) ? this.image.URL : this.image.URL;
if (URL != null) {
this.imageSpec.secondaryURL = this.imageSpec.URL;
this.imageSpec.URL = URL;
}
if (this.image.transform != null) {
this.local_zoom = this.max_height / this.image.text_field.width;
let matrix = new _matrix__WEBPACK_IMPORTED_MODULE_5__["Matrix"](this.image.transform, this.local_zoom * this.zoomFactor);
this.imageSpec.transform = matrix.toString();
}
this.viewBox = image_left + ' ' + image_top + ' ' + this.image_width + ' ' + this.image_height;
}
/**
* Return the position (i.e. '{ x: x, y: y }') for the copyright symbol.
* @param dimension dimension of the copyright symbol.
**/
getCopyrightPosition(dimension) {
if (this.image.text_field != null && this.image.text_field != undefined) {
let positions = [
{ x: Number(this.image.text_field.left) + 10 / this.zoomFactor,
y: Number(this.image.text_field.top) + 10 / this.zoomFactor },
{ x: Number(this.image.text_field.left),
y: Number(this.image.text_field.top) },
{ x: Number(this.image.text_field.width) + Number(this.image.text_field.left) - 15 / this.zoomFactor - dimension,
y: Number(this.image.text_field.height) + Number(this.image.text_field.top) - 15 / this.zoomFactor - dimension },
{ x: Number(this.image.text_field.width) + Number(this.image.text_field.left) - dimension,
y: Number(this.image.text_field.height) + Number(this.image.text_field.top) - dimension },
{ x: Number(this.image.text_field.left) + 10 / this.zoomFactor,
y: Number(this.image.text_field.height) + Number(this.image.text_field.top) - 10 / this.zoomFactor - dimension },
{ x: Number(this.image.text_field.width) + Number(this.image.text_field.left) - 10 / this.zoomFactor - dimension,
y: Number(this.image.text_field.top) + 10 / this.zoomFactor },
{ x: Number(this.image.text_field.width) + Number(this.image.text_field.left) - dimension,
y: Number(this.image.text_field.top) }
];
let default_index = 1;
let index = 0;
let position_found = false;
while (!position_found && index < positions.length) {
let left = positions[index].x;
let top = positions[index].y;
if (!this.doesPositionConflict(left, top, dimension, this.words)
&& !this.doesPositionConflict(left, top, dimension, this.foreign_texts)) {
position_found = true;
}
else {
index++;
}
}
let left = (index < positions.length) ? positions[index].x : positions[default_index].x;
let top = (index < positions.length) ? positions[index].y : positions[default_index].y;
return { x: `${left}px`, y: `${top}px` };
}
else {
return { x: '0px', y: '0px' };
}
}
/**
* Return whether position specified by left, top and dimension does conflict with one of the positional objects' position.
*
* @param left left of position
* @param top top of position
* @param dimension dimension of position
* @param positionalObjects Array of positions
**/
doesPositionConflict(left, top, dimension, positionalObjects) {
let conflicts = positionalObjects.filter(positionalObject => !(Number(positionalObject.left) + Number(positionalObject.width) < left || Number(positionalObject.left) > left + dimension
|| Number(positionalObject.top) > top + dimension || Number(positionalObject.top) + Number(positionalObject.height) < top));
return conflicts.length > 0;
}
/**
* Get the hover status of the word as one of the {@link /miscellaneous/enumerations.html#HIGHTLIGHT_CASES|HIGHTLIGHT_CASES}.
**/
getHoverStatus(word, skipFindText = false) {
if (this.selectedWords.indexOf(word.id) > -1
|| this.selectedLines.indexOf(word.line) > -1) {
return _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].SELECTED_WORD;
}
if (!skipFindText && this.findText != null && this.findText != '') {
let findRegex = '^[^\\w]*(' + this.findText.split(' ').join('|') + ')';
return (word.text.match(findRegex)
|| (word.edited_text != null && word.edited_text.match(findRegex))) ? _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].SEARCHED_WORD : this.getHoverStatus(word, true);
}
if (typeof this.hoveredLine !== 'undefined' && this.hoveredLine !== null) {
return (this.hoveredLine.id == word.line
|| (this.hoveredLine.continuesTo != undefined && this.hoveredLine.continuesTo != null && this.hoveredLine.continuesTo.line.id == word.line)
|| (this.hoveredLine.continuesFrom != undefined && this.hoveredLine.continuesFrom != null && this.hoveredLine.continuesFrom.line.id == word.line))
? _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].LINE_HOVERED : _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].DEFAULT;
}
else if (typeof this.hoveredWord !== 'undefined' && this.hoveredWord !== null) {
return (this.hoveredWord.id == word.id) ? _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].WORD_HOVERED : _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].DEFAULT;
}
return _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].DEFAULT;
}
/**
* Return a css class for word that will be used with [ngClass] in order to (un-)highlight the word's rect.
*
* If a function has been passed to Input {@link #assignClass|assignClass},
* this function will call it if {@link #getHoverStatus|getHoverStatus(word)} == {@link /miscellaneous/enumerations.html#HIGHTLIGHT_CASES|HIGHTLIGHT_CASES.DEFAULT}.
**/
assignClass(positionalObject, elementName) {
if (positionalObject.datatype == 'TextByForeignHand') {
return (this.hoveredTextByForeignHand != null && this.hoveredTextByForeignHand.id == positionalObject.id) ?
'text_field highlight_foreign_text' : 'text_field unhighlighted';
}
let word = positionalObject;
if (elementName != null) {
return (this.getHoverStatus(word) == _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].DEFAULT) ? `text_field unhighlighted_${elementName}` : `text_field highlight_${elementName}`;
}
switch (this.getHoverStatus(word)) {
case _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].SELECTED_WORD: {
return 'textfield highlight_magenta';
}
case _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].SEARCHED_WORD: {
return 'textfield highlight_red';
}
case _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].LINE_HOVERED: {
return (word.deleted) ? 'textfield deleted' : 'textfield highlight_yellow';
}
case _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].WORD_HOVERED: {
return (word.deleted) ? 'textfield deleted' : 'textfield highlight_yellow';
}
case _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].DEFAULT: {
return (this.externalAssignClassAfter != null) ? this.externalAssignClassAfter(word, this.hoveredWord, this.hoveredLine) : 'textfield unhighlighted';
}
}
}
/**
* Assign a style to the rects of a line.
**/
assignStyle(word, hoveredWord, hoveredLine, hoverStatus) {
return (this.extAssignStyle != null) ? this.extAssignStyle(word, hoveredWord, hoveredLine, hoverStatus) : {};
}
msg(URL) {
if (this.preferPrimaryUrl) {
// console.log(URL + ' TODO: show smaller image during loading');
}
}
};
TextFieldComponent.ctorParameters = () => [
{ type: _page_view_service__WEBPACK_IMPORTED_MODULE_2__["PageViewService"] }
];
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TextFieldComponent.prototype, "container", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TextFieldComponent.prototype, "findText", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TextFieldComponent.prototype, "foreign_texts", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TextFieldComponent.prototype, "image", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TextFieldComponent.prototype, "identity", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TextFieldComponent.prototype, "max_height", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TextFieldComponent.prototype, "max_width", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TextFieldComponent.prototype, "preferPrimaryUrl", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TextFieldComponent.prototype, "useExtendedTooltip", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TextFieldComponent.prototype, "words", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TextFieldComponent.prototype, "zoomFactor", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('assignClass')
], TextFieldComponent.prototype, "externalAssignClassAfter", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('assignStyle')
], TextFieldComponent.prototype, "extAssignStyle", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TextFieldComponent.prototype, "selectedWords", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TextFieldComponent.prototype, "selectedLines", void 0);
TextFieldComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'text-field',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./textfield.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/textfield-component/textfield.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./textfield.component.css */ "./src/app/page-view/textfield-component/textfield.component.css")).default]
})
], TextFieldComponent);
/***/ }),
/***/ "./src/app/project.component.css":
/*!***************************************!*\
!*** ./src/app/project.component.css ***!
\***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = (".text {\n text-align: justify;\n width: 600px;\n}\n.img {\n margin-top: 20px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9wcm9qZWN0LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxtQkFBbUI7R0FDbkIsWUFBWTtBQUNmO0FBQ0E7R0FDRyxnQkFBZ0I7QUFDbkIiLCJmaWxlIjoiYXBwL3Byb2plY3QuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi50ZXh0IHtcbiAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICB3aWR0aDogNjAwcHg7XG59XG4uaW1nIHtcbiAgIG1hcmdpbi10b3A6IDIwcHg7XG59XG4iXX0= */");
+/* harmony default export */ __webpack_exports__["default"] = (".text {\n text-align: justify;\n width: 600px;\n}\n.img {\n margin-top: 20px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3QuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLG1CQUFtQjtHQUNuQixZQUFZO0FBQ2Y7QUFDQTtHQUNHLGdCQUFnQjtBQUNuQiIsImZpbGUiOiJwcm9qZWN0LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudGV4dCB7XG4gICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgd2lkdGg6IDYwMHB4O1xufVxuLmltZyB7XG4gICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuIl19 */");
/***/ }),
/***/ "./src/app/project.component.ts":
/*!**************************************!*\
!*** ./src/app/project.component.ts ***!
\**************************************/
/*! exports provided: ProjectComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ProjectComponent", function() { return ProjectComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
let ProjectComponent = class ProjectComponent {
constructor() { }
ngOnInit() {
}
};
ProjectComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-project',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./project.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/project.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./project.component.css */ "./src/app/project.component.css")).default]
})
], ProjectComponent);
/***/ }),
/***/ "./src/app/rhizome-view-component/rhizome-view-component.component.css":
/*!*****************************************************************************!*\
!*** ./src/app/rhizome-view-component/rhizome-view-component.component.css ***!
\*****************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = ("#page {\n margin-top: 10px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9yaGl6b21lLXZpZXctY29tcG9uZW50L3JoaXpvbWUtdmlldy1jb21wb25lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLGdCQUFnQjtBQUNuQiIsImZpbGUiOiJhcHAvcmhpem9tZS12aWV3LWNvbXBvbmVudC9yaGl6b21lLXZpZXctY29tcG9uZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjcGFnZSB7XG4gICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuIl19 */");
+/* harmony default export */ __webpack_exports__["default"] = ("#page {\n margin-top: 10px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJoaXpvbWUtdmlldy1jb21wb25lbnQvcmhpem9tZS12aWV3LWNvbXBvbmVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0dBQ0csZ0JBQWdCO0FBQ25CIiwiZmlsZSI6InJoaXpvbWUtdmlldy1jb21wb25lbnQvcmhpem9tZS12aWV3LWNvbXBvbmVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI3BhZ2Uge1xuICAgbWFyZ2luLXRvcDogMTBweDtcbn1cbiJdfQ== */");
/***/ }),
/***/ "./src/app/rhizome-view-component/rhizome-view-component.component.ts":
/*!****************************************************************************!*\
!*** ./src/app/rhizome-view-component/rhizome-view-component.component.ts ***!
\****************************************************************************/
/*! exports provided: RhizomeViewComponentComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RhizomeViewComponentComponent", function() { return RhizomeViewComponentComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */ var _models_models__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/models */ "./src/app/models/models.ts");
let RhizomeViewComponentComponent = class RhizomeViewComponentComponent {
constructor(router, activatedRoute) {
this.router = router;
this.activatedRoute = activatedRoute;
}
ngOnInit() {
this.activatedRoute.queryParams.subscribe((queryParams) => {
this.queryParams = new _models_models__WEBPACK_IMPORTED_MODULE_3__["TlnQueryParams"](queryParams.navBarOpenState, queryParams.navContext, queryParams.manuscript, queryParams.page, queryParams.selectedLines, queryParams.selectedWords, queryParams.viewMode, queryParams.fullscreen, queryParams.zoom);
});
}
};
RhizomeViewComponentComponent.ctorParameters = () => [
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"] }
];
RhizomeViewComponentComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-rhizome-view-component',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./rhizome-view-component.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/rhizome-view-component/rhizome-view-component.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./rhizome-view-component.component.css */ "./src/app/rhizome-view-component/rhizome-view-component.component.css")).default]
})
], RhizomeViewComponentComponent);
/***/ }),
/***/ "./src/app/services/navigation-service.service.ts":
/*!********************************************************!*\
!*** ./src/app/services/navigation-service.service.ts ***!
\********************************************************/
/*! exports provided: NavigationServiceService */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NavigationServiceService", function() { return NavigationServiceService; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm2015/router.js");
let NavigationServiceService = class NavigationServiceService {
constructor(router, activatedRoute) {
this.router = router;
this.activatedRoute = activatedRoute;
}
/**
* updateRoute
* routes to the active url with the actual or passed query params of this class.
*/
updateRoute(qParams) {
this.router.navigate([], { relativeTo: this.activatedRoute, queryParams: qParams, queryParamsHandling: 'merge' });
}
};
NavigationServiceService.ctorParameters = () => [
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"] }
];
NavigationServiceService = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"])()
], NavigationServiceService);
/***/ }),
/***/ "./src/app/services/query.service.ts":
/*!*******************************************!*\
!*** ./src/app/services/query.service.ts ***!
\*******************************************/
/*! exports provided: QueryService */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueryService", function() { return QueryService; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var sparqljs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! sparqljs */ "./node_modules/sparqljs/sparql.js");
/* harmony import */ var sparqljs__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(sparqljs__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/common/http */ "./node_modules/@angular/common/fesm2015/http.js");
let QueryService = class QueryService {
constructor(http) {
this.http = http;
this.parser = new sparqljs__WEBPACK_IMPORTED_MODULE_2__["Parser"]();
this.sparqlGenerator = new sparqljs__WEBPACK_IMPORTED_MODULE_2__["Generator"]({});
}
/**
* Gets the data from an endpoint via http post
*
* @param baseUrl: The url of the endpoint.
* @param query: The query to run.
* @param queryType: "CONSTRUCT" or "QUERY"
* @returns the response.
*/
getData(baseUrl, query, queryType) {
let httpOptions;
if (queryType === 'CONSTRUCT') {
// A construct does contain a text as response, not a json, so responseType must be 'text' to avoid parse errors
httpOptions = { headers: new _angular_common_http__WEBPACK_IMPORTED_MODULE_3__["HttpHeaders"]({ 'Content-Type': 'application/sparql-query', 'Accept': 'text/turtle' }),
responseType: 'text' };
return this.http.post(baseUrl, query, httpOptions);
}
else {
httpOptions = { headers: new _angular_common_http__WEBPACK_IMPORTED_MODULE_3__["HttpHeaders"]({ 'Content-Type': 'application/sparql-query',
'Accept': 'application/sparql-results+json; charset=UTF-8' }) };
return this.http.post(baseUrl, query, httpOptions);
}
}
/**
* Gets a text file by its name from the directory assets/queries.
*
* @param filename The name of the file + file name extension.
* @returns the text of the file.
*/
getQueryfromFilename(filename) {
return this.http.get('../assets/queries/' + filename, { responseType: 'text' });
}
/**
* Gets a query string from a given file in the directory assets/queries.
*
* @param filename The name of the file + file name extension.
* @returns The JSON equivalence of the parsed query.
*/
parseQueryFromFile(filename) {
return this.getQueryfromFilename(filename)
.subscribe(query => {
this.parser.parse(query);
});
}
/**
* getQueryForItem()
* Parametrizes a given baseQuery with a iri passed, so the iri will be the subject of the where clause
*
* @param itemIri: The iri of the selected resource
* @param baseQuery: name of the query to parametrize
* @returns the query for the resource.
*/
parametrizeQueryWithItem(baseQuery, itemIri) {
const parsedQuery = this.parser.parse(baseQuery);
// console.log('parsedQuery', parsedQuery);
// parametrize/reset the subject iri to the word's iri we like to query for
const resourceOfInterest = { 'termType': 'NamedNode', 'value': decodeURI(itemIri) };
parsedQuery.where[0].triples[0].subject = resourceOfInterest;
// generate the new query string and return it
// console.log('parametrized query', this.sparqlGenerator.stringify(parsedQuery));
return this.sparqlGenerator.stringify(parsedQuery);
}
};
QueryService.ctorParameters = () => [
{ type: _angular_common_http__WEBPACK_IMPORTED_MODULE_3__["HttpClient"] }
];
QueryService = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"])()
], QueryService);
/***/ }),
/***/ "./src/app/tln-edition/constants.ts":
/*!******************************************!*\
!*** ./src/app/tln-edition/constants.ts ***!
\******************************************/
/*! exports provided: HIGHTLIGHT_CASES, VIEW_OPTIONS, DEFAULT_VIEW_OPTION, ONTOLOTY_PREFIX, TLN_CROSSREF_ROUTE, TLN_SEARCH_ROUTE, TLN_MANUSCRIPT_ROUTE, TLN_VIEWER_ROUTE, TLN_CONTEXT_VIEW_PARAM, TLN_FULLSCREEN_PARAM, TLN_FIND_PARAM, TLN_MANUSCRIPT_PARAM, TLN_NAV_BAR_OPEN_STATE_PARAM, TLN_PAGE_PARAM, TLN_RESULT_INDEX_PARAM, TLN_SELECTED_LINES_PARAM, TLN_SELECTED_WORDS_PARAM, TLN_TEXT_GENETIC_ORDER_PARAM, TLN_VIEW_OPTION_PARAM, TLN_ZOOM_PARAM */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VIEW_OPTIONS", function() { return VIEW_OPTIONS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_VIEW_OPTION", function() { return DEFAULT_VIEW_OPTION; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ONTOLOTY_PREFIX", function() { return ONTOLOTY_PREFIX; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TLN_CROSSREF_ROUTE", function() { return TLN_CROSSREF_ROUTE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TLN_SEARCH_ROUTE", function() { return TLN_SEARCH_ROUTE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TLN_MANUSCRIPT_ROUTE", function() { return TLN_MANUSCRIPT_ROUTE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TLN_VIEWER_ROUTE", function() { return TLN_VIEWER_ROUTE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TLN_CONTEXT_VIEW_PARAM", function() { return TLN_CONTEXT_VIEW_PARAM; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TLN_FULLSCREEN_PARAM", function() { return TLN_FULLSCREEN_PARAM; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TLN_FIND_PARAM", function() { return TLN_FIND_PARAM; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TLN_MANUSCRIPT_PARAM", function() { return TLN_MANUSCRIPT_PARAM; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TLN_NAV_BAR_OPEN_STATE_PARAM", function() { return TLN_NAV_BAR_OPEN_STATE_PARAM; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TLN_PAGE_PARAM", function() { return TLN_PAGE_PARAM; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TLN_RESULT_INDEX_PARAM", function() { return TLN_RESULT_INDEX_PARAM; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TLN_SELECTED_LINES_PARAM", function() { return TLN_SELECTED_LINES_PARAM; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TLN_SELECTED_WORDS_PARAM", function() { return TLN_SELECTED_WORDS_PARAM; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TLN_TEXT_GENETIC_ORDER_PARAM", function() { return TLN_TEXT_GENETIC_ORDER_PARAM; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TLN_VIEW_OPTION_PARAM", function() { return TLN_VIEW_OPTION_PARAM; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TLN_ZOOM_PARAM", function() { return TLN_ZOOM_PARAM; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _page_view_highlight_status__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../page-view/highlight_status */ "./src/app/page-view/highlight_status.ts");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HIGHTLIGHT_CASES", function() { return _page_view_highlight_status__WEBPACK_IMPORTED_MODULE_1__["HIGHTLIGHT_CASES"]; });
var VIEW_OPTIONS;
(function (VIEW_OPTIONS) {
VIEW_OPTIONS["TRANSKRIPTION"] = "Transkription";
VIEW_OPTIONS["FAKSIMILE"] = "Faksimile";
VIEW_OPTIONS["SYNOPSIS"] = "Transkription/Faksimile";
VIEW_OPTIONS["SYNOPSIS_B"] = "Faksimile/Transkription";
})(VIEW_OPTIONS || (VIEW_OPTIONS = {}));
const DEFAULT_VIEW_OPTION = VIEW_OPTIONS.SYNOPSIS_B;
const ONTOLOTY_PREFIX = 'http://www.nie.org/ontology/nietzsche#';
/**
* Route for TlnCrossrefComponent
**/
const TLN_CROSSREF_ROUTE = 'tln-crossref';
/**
* Route for TlnFulltextComponent
**/
const TLN_SEARCH_ROUTE = 'tln-search';
/**
* Route for TlnManuscriptViewComponent
**/
const TLN_MANUSCRIPT_ROUTE = 'tln-manuscript';
/**
* Route for TlnViewerComponent
**/
const TLN_VIEWER_ROUTE = 'tln-viewer';
/**
* Param that refers to the context that should be shown, i.e. 'page' or 'manuscript'.
**/
const TLN_CONTEXT_VIEW_PARAM = 'contextView';
/**
* Param that toggles fullscreen, value type: boolean.
**/
const TLN_FULLSCREEN_PARAM = 'fullscreen';
/**
* Param for find text in page.
**/
const TLN_FIND_PARAM = 'find';
/**
* Param for manuscript iri.
**/
const TLN_MANUSCRIPT_PARAM = 'manuscript';
/**
* Param for navigation bar open state.
**/
const TLN_NAV_BAR_OPEN_STATE_PARAM = 'navBarOpenState';
/**
* Param for page iri.
**/
const TLN_PAGE_PARAM = 'page';
/**
* Param for result index, type: number.
**/
const TLN_RESULT_INDEX_PARAM = 'resutlIndex';
/**
* Param for selected lines.
**/
const TLN_SELECTED_LINES_PARAM = 'selectedLines';
/**
* Param for selected lines.
**/
const TLN_SELECTED_WORDS_PARAM = 'selectedWords';
/**
* Param for iri of a genetic order of text versions.
**/
const TLN_TEXT_GENETIC_ORDER_PARAM = 'geneticOrder';
/**
* Param for selected view option, e.g. 'Transkription', 'Faksimile', etc.
**/
const TLN_VIEW_OPTION_PARAM = 'viewMode';
/**
* Param for zoom.
**/
const TLN_ZOOM_PARAM = 'zoom';
/***/ }),
/***/ "./src/app/tln-edition/data_handler.ts":
/*!*********************************************!*\
!*** ./src/app/tln-edition/data_handler.ts ***!
\*********************************************/
/*! exports provided: DataHandler */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DataHandler", function() { return DataHandler; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm2015/operators/index.js");
/* harmony import */ var _datatypes_basic_datatype__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./datatypes/basic_datatype */ "./src/app/tln-edition/datatypes/basic_datatype.ts");
/**
* This class retrieves data from a query service and instantiates it using
* corresponding handlers.
**/
class DataHandler {
/**
* @param component the component that uses this data handler
**/
constructor(component) {
this.component = component;
this.debug = false;
/**
* whether or not DataHandler is ready to retrieve data
**/
this.ready = false;
this.stop_processing = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
this.start_processing = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
this.processing_finished = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
}
/**
* add a {@link /interfaces/Handler.html|Handler}
* or an Array of handler keys to DataHandler.
**/
addHandler(key, handler) {
this[key] = handler;
}
/**
* Retrieve and instantiate data
* @param key data handler key
* @param iri iri that should be passed to query
* @param next_iri use next_iri instead of the iri of the first item in the current data array.
**/
getData(key, iri, next_iri) {
if (Array.isArray(this[key])) {
this[key].forEach(value => this.getData(value, iri));
if (next_iri != null && this[key]['next_key'] != null) {
this.getData(this[key]['next_key'], next_iri);
}
}
else {
this.start_processing.emit(true);
let handler = this[key]['handler'];
if (this.debug && key == 'textVersions') {
//console.log(this[key]['handler'], key, iri);
//console.log(handler.getQuery(iri, handler.query_key))
//console.log(this[key]['service']);
}
let is_target_array = Array.isArray(this.component[key]);
if (!is_target_array) {
this.queryService.getData(handler.getQuery(iri, handler.query_key)).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__["takeUntil"])(this.stop_processing) || Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__["first"])()).subscribe(results => {
this.component[key] = handler.convertData(results, iri, this[key]['service'])[0];
if (next_iri != null && this[key]['next_key'] != null) {
this.getData(this[key]['next_key'], next_iri);
}
else if (this[key]['process_data'] != undefined && this[key]['process_data'] != null) {
this[key]['process_data'].processData();
}
});
}
else {
this.queryService.getData(handler.getQuery(iri, handler.query_key)).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__["takeUntil"])(this.stop_processing)).subscribe(results => {
this.component[key] = (handler.use_id) ? handler.convertData(results, iri, this[key]['service']) : handler.convertData(results, null, this[key]['service']);
if (this.component[key].length > 0 && this[key]['next_key'] != null) {
let use_next_iri = (next_iri != null) ? next_iri : this.component[key][0].id;
this.getData(this[key]['next_key'], use_next_iri);
}
else if (this[key]['process_data'] != undefined && this[key]['process_data'] != null) {
this[key]['process_data'].processData();
}
});
}
this.processing_finished.emit(true);
}
}
getData4Keys(key, datatypeKeyIriMapping) {
if (Array.isArray(this[key])) {
this[key].forEach(value => this.getData4Keys(value, datatypeKeyIriMapping));
}
else {
let handler = this[key]['handler'];
if (this.debug) {
console.log(this[key]['handler'], datatypeKeyIriMapping);
}
let is_target_array = Array.isArray(this.component[key]);
let iri = datatypeKeyIriMapping.mapping[datatypeKeyIriMapping.idIndex];
if (!is_target_array) {
this.queryService.getData(handler.getComplexQuery(datatypeKeyIriMapping.mapping)).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__["takeUntil"])(this.stop_processing) || Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__["first"])()).subscribe(results => {
this.component[key] = handler.convertData(results, iri, this[key]['service'])[0];
});
}
else {
this.queryService.getData(handler.getQuery(datatypeKeyIriMapping.mapping)).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__["takeUntil"])(this.stop_processing)).subscribe(results => {
this.component[key] = (handler.use_id) ? handler.convertData(results, iri) : handler.convertData(results);
if (this.component[key].length > 0 && this[key]['next_key'] != null) {
datatypeKeyIriMapping.mapping[datatypeKeyIriMapping.idIndex] = this.component[key][0].id;
this.getData4Keys(this[key]['next_key'], datatypeKeyIriMapping);
}
});
}
}
}
getDataWithNewHandlerIf(key, subjectIri, typeIri, handlerTrue, handlerFalse, iri, next_iri) {
let complexMapping = [{ key: 'id', iri: subjectIri }, { key: 'type', iri: typeIri }];
this.queryService.getData(_datatypes_basic_datatype__WEBPACK_IMPORTED_MODULE_3__["AskResult"].getComplexQuery(complexMapping)).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__["first"])()).subscribe(result => {
this[key] = (_datatypes_basic_datatype__WEBPACK_IMPORTED_MODULE_3__["AskResult"].getAnswer(result)) ? handlerTrue : handlerFalse;
console.log(key, subjectIri, typeIri, result, this[key]);
this.getData(key, iri, next_iri);
});
}
conditionalAddHandler(askQuery, key, handlerTrue, handlerFalse) {
this.queryService.getData(askQuery).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__["first"])()).subscribe(result => {
this[key] = (_datatypes_basic_datatype__WEBPACK_IMPORTED_MODULE_3__["AskResult"].getAnswer(result)) ? handlerTrue : handlerFalse;
});
}
/**
* reset all data belonging to key
**/
resetData(key) {
this.queryService.resetData(key);
if (Array.isArray(this[key])) {
this[key].forEach(value => this.resetData(value));
}
else {
this.component[key] = (Array.isArray(this.component[key])) ? [] : null;
}
}
/**
* set a query service to DataHandler and switch status ready to true.
**/
setQueryService(queryService) {
this.queryService = queryService;
this.ready = true;
}
}
/***/ }),
/***/ "./src/app/tln-edition/datatypes/basic_datatype.ts":
/*!*********************************************************!*\
!*** ./src/app/tln-edition/datatypes/basic_datatype.ts ***!
\*********************************************************/
/*! exports provided: BasicResultBindingElement, AskResult, IsReconstructedKonvolut */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BasicResultBindingElement", function() { return BasicResultBindingElement; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AskResult", function() { return AskResult; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IsReconstructedKonvolut", function() { return IsReconstructedKonvolut; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var sparqljs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sparqljs */ "./node_modules/sparqljs/sparql.js");
/* harmony import */ var sparqljs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(sparqljs__WEBPACK_IMPORTED_MODULE_1__);
/**
* This is the basic datatype that instantiates an element of {@link /interfaces/FusekiResults.html|FusekiResults}.
*
* All datatypes can be subclassed from this type in order to create SPARQL-queries, retrieve data and convert it
* to the corresponding datatypes.
**/
class BasicResultBindingElement {
/**
* The constructor creates a datatype from the data.
*
* @param id if omitted the id will be retrieved from data
**/
constructor(data, id, service) {
this.data = data;
this.service = service;
if (id != undefined && id != null && id != '') {
let key = (Object.getPrototypeOf(this).constructor.use_id
&& Object.getPrototypeOf(this).constructor.query_key != null)
? Object.getPrototypeOf(this).constructor.query_key : 'id';
this[key] = id;
}
if (this.id == null) {
this.id = this.getData4Key('id');
}
}
/**
* This function returns the value of the content specified by "key" from {@link /classes/BasicResultBindingElement.html#data|data}.
*
* @param key the key that specifies the content
*
* @returns {any} the value of the content if key exists else null
**/
getData4Key(key) {
if (!this.data.hasOwnProperty(key)) {
return null;
}
if (this.data[key].datatype == 'http://www.w3.org/2001/XMLSchema#boolean') {
return JSON.parse(this.data[key].value);
}
else if (this.data[key].datatype == 'http://www.w3.org/2001/XMLSchema#integer') {
return Number(this.data[key].value);
}
return this.data[key].value;
}
/**
* This method returns the SPARQL query of this BasicResultBindingElement.
* The query can be modified by providing an "id" and "key" such that every "key" in
* the query will be replaced by "id".
*
* If "key" is omitted {@link /classes/BasicResultBindingElement.html#default_key|default_key} will be used.
*
* @param id will replace key in query
* @param key will be replaced by id.
**/
static getQuery(id, key) {
if (typeof (id) === 'undefined' || id === null || id == '') {
return this.query;
}
else {
if (key == null || key == '') {
key = this.default_key;
}
let parser = new sparqljs__WEBPACK_IMPORTED_MODULE_1__["Parser"]();
let sparqlGenerator = new sparqljs__WEBPACK_IMPORTED_MODULE_1__["Generator"]({});
let parsedQuery = parser.parse(this.query);
for (var k = 0; k < parsedQuery.where.length; k++) {
if (parsedQuery.where[k].patterns != undefined) {
for (var j = 0; j < parsedQuery.where[k].patterns.length; j++) {
if (parsedQuery.where[k].patterns[j].triples != undefined) {
for (var i = 0; i < parsedQuery.where[k].patterns[j].triples.length; i++) {
if (parsedQuery.where[k].patterns[j].triples[i]['subject']['value'] == key) {
parsedQuery.where[k].patterns[j].triples[i]['subject'] = { termType: "NamedNode", value: id };
}
else if (parsedQuery.where[k].patterns[j].triples[i]['object']['value'] == key) {
parsedQuery.where[k].patterns[j].triples[i]['object'] = { termType: "NamedNode", value: id };
}
else if (parsedQuery.where[k].patterns[j].triples[i]['predicate']['value'] == key) {
parsedQuery.where[k].patterns[j].triples[i]['predicate'] = { termType: "NamedNode", value: id };
}
}
}
}
}
else if (parsedQuery.where[k].triples != undefined) {
for (var i = 0; i < parsedQuery.where[k].triples.length; i++) {
if (parsedQuery.where[k].triples[i]['subject']['value'] == key) {
parsedQuery.where[k].triples[i]['subject'] = { termType: "NamedNode", value: id };
}
else if (parsedQuery.where[k].triples[i]['object']['value'] == key) {
parsedQuery.where[k].triples[i]['object'] = { termType: "NamedNode", value: id };
}
else if (parsedQuery.where[k].triples[i]['predicate']['value'] == key) {
parsedQuery.where[k].triples[i]['predicate'] = { termType: "NamedNode", value: id };
}
}
}
}
return sparqlGenerator.stringify(parsedQuery);
}
}
static getComplexQuery(keyIriMapping) {
let parser = new sparqljs__WEBPACK_IMPORTED_MODULE_1__["Parser"]();
let sparqlGenerator = new sparqljs__WEBPACK_IMPORTED_MODULE_1__["Generator"]({});
let parsedQuery = parser.parse(this.query);
for (let mapping of keyIriMapping) {
let key = mapping.key;
let id = mapping.iri;
for (var i = 0; i < parsedQuery.where[0].triples.length; i++) {
if (parsedQuery.where[0].triples[i]['subject']['value'] == key) {
parsedQuery.where[0].triples[i]['subject'] = { termType: "NamedNode", value: id };
}
else if (parsedQuery.where[0].triples[i]['object']['value'] == key) {
parsedQuery.where[0].triples[i]['object'] = { termType: "NamedNode", value: id };
}
else if (parsedQuery.where[0].triples[i]['predicate']['value'] == key) {
parsedQuery.where[0].triples[i]['predicate'] = { termType: "NamedNode", value: id };
}
}
}
return sparqlGenerator.stringify(parsedQuery);
}
/**
* This function returns 'results.bindings' of {@link /interfaces/FusekiResults.html|FusekiResults}.
**/
static getContent(data) {
return data['results']['bindings'];
}
/**
* This static function instantiates the subclasses of {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement} from
* the data retrieved by executing the query that is provided by {@link /classes/BasicResultBindingElement.html#getQuery|getQuery}.
*
* @param this a subclass of BasicResultBindingElement
* @param data the fuseki result json
* @param id the id that has been used in order to retrieve the data and that will identify the instantiation of the subclass.
* @param service a means to communicate with the data holder.
*
* @returns Array of subclass instantiations
**/
static convertData(data, id, service) {
let elements = [];
let content = this.getContent(data);
for (var i = 0; i < content.length; i++) {
let element = new this(content[i], id, service);
elements.push(element);
}
return elements;
}
}
/**
* the internal default key for replacing {@link /classes/BasicResultBindingElement.html#query|query} by "id"
* in {@link /classes/BasicResultBindingElement.html#getQuery|getQuery} if "key" is omitted.
**/
BasicResultBindingElement.default_key = 'id';
/**
* the SPARQL-query of this datatype.
**/
BasicResultBindingElement.query = `SELECT ?id ?p ?o WHERE { ?id ?p ?o. }`;
/**
* the public key for replacing {@link /classes/BasicResultBindingElement.html#query|query} by "id".
**/
BasicResultBindingElement.query_key = null;
/**
* whether or not to pass the id used for the query to the constructor and
* use it as the value of the property specified by query_key.
**/
BasicResultBindingElement.use_id = false;
class AskResult extends BasicResultBindingElement {
static getAnswer(answer) {
return answer.boolean;
}
}
AskResult.query = `
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
ASK {
?id a ?type.
}`;
class IsReconstructedKonvolut extends AskResult {
}
IsReconstructedKonvolut.query = `
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
ASK {
?id a tln:ReconstructedKonvolut.
}`;
IsReconstructedKonvolut.query_key = 'id';
/***/ }),
/***/ "./src/app/tln-edition/datatypes/earlier_version.ts":
/*!**********************************************************!*\
!*** ./src/app/tln-edition/datatypes/earlier_version.ts ***!
\**********************************************************/
/*! exports provided: TlnEarlierVersionStub, TlnOverwrittenStub */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnEarlierVersionStub", function() { return TlnEarlierVersionStub; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnOverwrittenStub", function() { return TlnOverwrittenStub; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _basic_datatype__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./basic_datatype */ "./src/app/tln-edition/datatypes/basic_datatype.ts");
/**
* This is the 'earlier version' stub instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.
* It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.
**/
class TlnEarlierVersionStub extends _basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"] {
/**
* The constructor creates a datatype from the data.
*
* @param id if omitted the id will be retrieved from data
**/
constructor(data, id, service) {
super(data, id, service);
this.text = this.getData4Key('text');
}
}
/**
* the internal default key for replacing {@link /classes/TlnWord.html#query|query} by "id"
* in {@link /classes/TlnWord.html#getQuery|getQuery} if "key" is omitted.
**/
TlnEarlierVersionStub.default_key = 'word';
/**
* the public key for replacing {@link /classes/TlnWord.html#query|query} by "id".
**/
TlnEarlierVersionStub.query_key = 'word';
/**
* the SPARQL-query of this datatype.
**/
TlnEarlierVersionStub.query = `
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?id ?text WHERE {
?word tln:wordHasEarlierVersion ?id.
?id tln:hasText ?text.
}`;
class TlnOverwrittenStub extends TlnEarlierVersionStub {
}
/**
* the SPARQL-query of this datatype.
**/
TlnOverwrittenStub.query = `
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?id ?text WHERE {
?word (tln:wordHasWordParts/rdf:rest*/rdf:first/tln:overwritesWord|tln:overwritesWord) ?id.
?id tln:hasText ?text.
}`;
/***/ }),
/***/ "./src/app/tln-edition/datatypes/faksimile_image.ts":
/*!**********************************************************!*\
!*** ./src/app/tln-edition/datatypes/faksimile_image.ts ***!
\**********************************************************/
/*! exports provided: FaksimileImage */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FaksimileImage", function() { return FaksimileImage; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _image__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./image */ "./src/app/tln-edition/datatypes/image.ts");
/**
* This is the faksimile image instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.
* It extends {@link /classes/TlnImage.html|TlnImage}.
**/
class FaksimileImage extends _image__WEBPACK_IMPORTED_MODULE_1__["TlnImage"] {
constructor(data, id, service) {
super(data, id, service);
this.copyright = {
originalUrl: 'http://www.nietzschesource.org/DFGA/' + this.filename.replace('.jpg', ''),
licenseTextUrl: 'http://creativecommons.org/licenses/by-nc-nd/4.0/deed.de',
license: 'CC BY-NC-ND 4.0',
text: 'Dieses Faksimile wird von <a target="_new" href="http://www.nietzschesource.org">nietzschesource.org</a> gehostet und wird hier unver&auml;ndert dargestellt.'
};
}
}
/**
* the SPARQL-query of this datatype
**/
FaksimileImage.query = `
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
SELECT ?id ?filename ?URL ?secondaryURL ?width ?height ?t_left ?t_top ?t_width ?t_height ?page ?transform WHERE {
?id a tln:FaksimileImage;
tln:hasFileName ?filename;
tln:hasPrimaryurl ?URL;
tln:hasSecondaryurl ?secondaryURL;
tln:hasWidth ?width;
tln:hasHeight ?height;
tln:hasTextField ?textfield.
?textfield tln:hasLeft ?t_left;
tln:hasTop ?t_top;
tln:hasWidth ?t_width;
tln:hasHeight ?t_height;
^tln:pageIsOnFaksimileTextField ?page.
OPTIONAL { ?id tln:hasTransform ?transform. }
}`;
/***/ }),
/***/ "./src/app/tln-edition/datatypes/foreign_text.ts":
/*!*******************************************************!*\
!*** ./src/app/tln-edition/datatypes/foreign_text.ts ***!
\*******************************************************/
/*! exports provided: TlnTextByForeignHand, FaksimileTextByForeignHand */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnTextByForeignHand", function() { return TlnTextByForeignHand; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FaksimileTextByForeignHand", function() { return FaksimileTextByForeignHand; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _positional_object__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./positional_object */ "./src/app/tln-edition/datatypes/positional_object.ts");
/**
* This is the 'text by foreign hand' instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.
* It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.
**/
class TlnTextByForeignHand extends _positional_object__WEBPACK_IMPORTED_MODULE_1__["TlnPositionalObject"] {
/**
* The constructor creates a datatype from the data.
*
* @param id if omitted the id will be retrieved from data
**/
constructor(data, id, service) {
super(data, id, service);
this.text = this.getData4Key('text');
this.pen = this.getData4Key('pen');
}
}
/**
* the SPARQL-query of this datatype.
**/
TlnTextByForeignHand.query = `
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?id ?text ?pen ?left ?top ?width ?height ?transform WHERE {
?page tln:hasMarkForeignHands/rdf:rest*/rdf:first ?id.
?id tln:textOfForeignHands/tln:textHasContent ?text;
tln:penOfForeignHands ?pen;
tln:hasTranskriptionPosition ?tp.
?tp tln:hasLeft ?left; tln:hasTop ?top; tln:hasWidth ?width; tln:hasHeight ?height.
OPTIONAl { ?tp tln:hasTransform ?transform.}
} `;
/**
* This is the faksimile text by foreign hand instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.
* It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.
**/
class FaksimileTextByForeignHand extends TlnTextByForeignHand {
}
/**
* the SPARQL-query of this datatype.
**/
FaksimileTextByForeignHand.query = `
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?id ?text ?pen ?left ?top ?width ?height ?transform WHERE {
?page tln:hasMarkForeignHands/rdf:rest*/rdf:first ?id.
?id tln:textOfForeignHands/tln:textHasContent ?text;
tln:penOfForeignHands ?pen;
tln:hasFaksimilePosition ?fp.
?fp tln:hasLeft ?left; tln:hasTop ?top; tln:hasWidth ?width; tln:hasHeight ?height.
OPTIONAl { ?fp tln:hasTransform ?transform.}
} `;
/***/ }),
/***/ "./src/app/tln-edition/datatypes/image.ts":
/*!************************************************!*\
!*** ./src/app/tln-edition/datatypes/image.ts ***!
\************************************************/
/*! exports provided: TlnImage, TlnTextField */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnImage", function() { return TlnImage; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnTextField", function() { return TlnTextField; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _basic_datatype__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./basic_datatype */ "./src/app/tln-edition/datatypes/basic_datatype.ts");
class TlnImage extends _basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"] {
constructor(data, id, service) {
super(data, id, service);
this.x = 0;
this.y = 0;
this.filename = this.getData4Key('filename');
this.width = this.getData4Key('width');
this.height = this.getData4Key('height');
this.URL = this.getData4Key('URL');
this.secondaryURL = this.getData4Key('secondaryURL');
this.transform = this.getData4Key('transform');
this.text_field = new TlnTextField(this.getData4Key('t_left'), this.getData4Key('t_top'), this.getData4Key('t_width'), this.getData4Key('t_height'));
}
}
TlnImage.default_key = 'page';
TlnImage.query = `
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
SELECT ?id ?filename ?width ?height ?URL ?secondaryURL ?t_left ?t_top ?t_width ?t_height ?page ?transform WHERE {
?id a tln:Image;
tln:hasPrimaryurl ?URL;
tln:hasSecondaryurl ?secondaryURL;
tln:hasFileName ?filename;
tln:hasWidth ?width;
tln:hasHeight ?height;
tln:hasTextField ?textfield.
?textfield tln:hasLeft ?t_left;
tln:hasTop ?t_top;
tln:hasWidth ?t_width;
tln:hasHeight ?t_height;
^tln:pageIsOnTextField ?page.
OPTIONAL { ?id tln:hasTransform ?transform. }
}`;
class TlnTextField {
constructor(left, top, width, height) {
this.left = left;
this.top = top;
this.width = width;
this.height = height;
}
}
/***/ }),
/***/ "./src/app/tln-edition/datatypes/line.ts":
/*!***********************************************!*\
!*** ./src/app/tln-edition/datatypes/line.ts ***!
\***********************************************/
/*! exports provided: TlnLine, FaksimileLine */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnLine", function() { return TlnLine; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FaksimileLine", function() { return FaksimileLine; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _basic_datatype__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./basic_datatype */ "./src/app/tln-edition/datatypes/basic_datatype.ts");
/**
* This is the line instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.
* It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.
**/
class TlnLine extends _basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"] {
/**
* The constructor creates a datatype from the data.
*
* @param id if omitted the id will be retrieved from data
**/
constructor(data, id, service) {
super(data, id, service);
this.number = this.getData4Key('number');
this.top = this.getData4Key('top');
this.bottom = this.getData4Key('bottom');
let pageNumber = this.getData4Key('pageNumber');
let manuscriptTitle = this.getData4Key('manuscriptTitle');
let continuesTo = this.getData4Key('toLine');
let continuesFrom = this.getData4Key('fromLine');
if (continuesTo != null) {
let manuscript = { id: this.getData4Key('toManuscript'), title: this.getData4Key('toManuscriptTitle') };
let page = { id: this.getData4Key('toPage'), number: this.getData4Key('toPageNumber') };
let line = { id: continuesTo, number: this.getData4Key('toLineNumber') };
this.continuesTo = { manuscript: manuscript, page: page, line: line };
}
if (continuesFrom != null) {
let manuscript = { id: this.getData4Key('fromManuscript'), title: this.getData4Key('fromManuscriptTitle') };
let page = { id: this.getData4Key('fromPage'), number: this.getData4Key('fromPageNumber') };
let line = { id: continuesFrom, number: this.getData4Key('fromLineNumber') };
this.continuesFrom = { manuscript: manuscript, page: page, line: line };
}
if (this.continuesFrom != null || this.continuesTo != null) {
let reference = (this.continuesTo != null) ? this.continuesTo : this.continuesFrom;
let manuscript = (this.getData4Key('manuscriptId') == reference.manuscript.id) ? null :
{ id: this.getData4Key('manuscriptId'), title: this.getData4Key('manuscriptTitle') };
let page = (this.page == reference.page.id) ? null :
{ id: this.page, number: this.getData4Key('pageNumber') };
this.source = { manuscript: manuscript, page: page, line: { id: this.id, number: this.number } };
}
}
}
/**
* the internal default key for replacing {@link /classes/TlnLine.html#query|query} by "id"
* in {@link /classes/TlnLine.html#getQuery|getQuery} if "key" is omitted.
**/
TlnLine.default_key = 'page';
TlnLine.use_id = true;
/**
* the SPARQL-query of this datatype.
**/
TlnLine.query = `
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?id ?number ?top ?bottom
?pageNumber ?manuscriptId ?manuscriptTitle
?toLine ?toLineNumber ?toPage ?toPageNumber ?toManuscript ?toManuscriptTitle
?fromLine ?fromLineNumber ?fromPage ?fromPageNumber ?fromManuscript ?fromManuscriptTitle
WHERE {
?page tln:hasLines/rdf:rest*/rdf:first ?id;
tln:hasNumber ?pageNumber.
?id a tln:Line; tln:lineHasNumber ?number;
tln:lineHasTopValueOnTranskription ?top;
tln:lineHasBottomValueOnTranskription ?bottom.
?manuscriptId tln:hasPages/rdf:rest*/rdf:first ?page;
tln:hasTitle ?manuscriptTitle.
OPTIONAL {
?id tln:lineContinuesOn ?toLine.
?toLine tln:lineHasNumber ?toLineNumber.
?toPage tln:hasLines/rdf:rest*/rdf:first ?toLine; tln:hasNumber ?toPageNumber.
?toManuscript tln:hasPages/rdf:rest*/rdf:first ?toPage; tln:hasTitle ?toManuscriptTitle.
}
OPTIONAL {
?id ^tln:lineContinuesOn ?fromLine.
?fromLine tln:lineHasNumber ?fromLineNumber.
?fromPage tln:hasLines/rdf:rest*/rdf:first ?fromLine; tln:hasNumber ?fromPageNumber.
?fromManuscript tln:hasPages/rdf:rest*/rdf:first ?fromPage; tln:hasTitle ?fromManuscriptTitle.
}
} `;
/**
* the public key for replacing {@link /classes/TlnLine.html#query|query} by "id".
**/
TlnLine.query_key = 'page';
/**
* This is the faksimile line instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.
* It extends {@link /classes/TlnLine.html|TlnLine}.
**/
class FaksimileLine extends TlnLine {
}
/**
* the SPARQL-query of this datatype.
**/
FaksimileLine.query = `
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?id ?number ?top ?bottom
?pageNumber ?manuscriptId ?manuscriptTitle
?toLine ?toLineNumber ?toPage ?toPageNumber ?toManuscript ?toManuscriptTitle
?fromLine ?fromLineNumber ?fromPage ?fromPageNumber ?fromManuscript ?fromManuscriptTitle
WHERE {
?page tln:hasLines/rdf:rest*/rdf:first ?id;
tln:hasNumber ?pageNumber.
?id a tln:Line; tln:lineHasNumber ?number;
tln:lineHasInnerTopValueOnFaksimile ?top;
tln:lineHasInnerBottomValueOnFaksimile ?i_bottom.
?manuscriptId tln:hasPages/rdf:rest*/rdf:first ?page;
tln:hasTitle ?manuscriptTitle.
BIND( (?top+?i_bottom)/2 as ?bottom).
OPTIONAL {
?id tln:lineContinuesOn ?toLine.
?toLine tln:lineHasNumber ?toLineNumber.
?toPage tln:hasLines/rdf:rest*/rdf:first ?toLine; tln:hasNumber ?toPageNumber.
?toManuscript tln:hasPages/rdf:rest*/rdf:first ?toPage; tln:hasTitle ?toManuscriptTitle.
}
OPTIONAL {
?id ^tln:lineContinuesOn ?fromLine.
?fromLine tln:lineHasNumber ?fromLineNumber.
?fromPage tln:hasLines/rdf:rest*/rdf:first ?fromLine; tln:hasNumber ?fromPageNumber.
?fromManuscript tln:hasPages/rdf:rest*/rdf:first ?fromPage; tln:hasTitle ?fromManuscriptTitle.
}
} `;
/***/ }),
/***/ "./src/app/tln-edition/datatypes/line_reference.ts":
/*!*********************************************************!*\
!*** ./src/app/tln-edition/datatypes/line_reference.ts ***!
\*********************************************************/
/*! exports provided: TlnLineReference */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnLineReference", function() { return TlnLineReference; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _basic_datatype__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./basic_datatype */ "./src/app/tln-edition/datatypes/basic_datatype.ts");
class TlnLineReference extends _basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"] {
/**
* The constructor creates a datatype from the data.
*
* @param id if omitted the id will be retrieved from data
**/
constructor(data, id, service) {
super(data, id, service);
this.line = { id: this.id, number: this.getData4Key('line_number') };
this.page = { id: this.getData4Key('page_id'), number: this.getData4Key('page') };
this.manuscript = { id: this.getData4Key('manuscript'), title: this.getData4Key('title') };
}
}
/**
* the internal default key for replacing {@link /classes/TlnLine.html#query|query} by "id"
* in {@link /classes/TlnLine.html#getQuery|getQuery} if "key" is omitted.
**/
TlnLineReference.default_key = 'page';
/**
* the SPARQL-query of this datatype.
**/
TlnLineReference.query = `
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?id ?page ?page_id ?manuscript ?title ?line_number WHERE {
?id a tln:Line; tln:lineHasNumber ?line_number.
?page_id tln:hasLines/rdf:rest*/rdf:first ?id; tln:hasNumber ?page.
?manuscript tln:hasPages/rdf:rest*/rdf:first ?page_id; tln:hasTitle ?title.
} `;
/**
* the public key for replacing {@link /classes/TlnLine.html#query|query} by "id".
**/
TlnLineReference.query_key = 'id';
/***/ }),
/***/ "./src/app/tln-edition/datatypes/manuscript.ts":
/*!*****************************************************!*\
!*** ./src/app/tln-edition/datatypes/manuscript.ts ***!
\*****************************************************/
/*! exports provided: ManuscriptStub, TlnExtManuscript, ReconstructedKonvolut, ManuscriptDescription, ManuscriptEarlierDescription */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ManuscriptStub", function() { return ManuscriptStub; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnExtManuscript", function() { return TlnExtManuscript; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ReconstructedKonvolut", function() { return ReconstructedKonvolut; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ManuscriptDescription", function() { return ManuscriptDescription; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ManuscriptEarlierDescription", function() { return ManuscriptEarlierDescription; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _basic_datatype__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./basic_datatype */ "./src/app/tln-edition/datatypes/basic_datatype.ts");
/* harmony import */ var _positional_markup__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./positional-markup */ "./src/app/tln-edition/datatypes/positional-markup.ts");
/* harmony import */ var _page__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./page */ "./src/app/tln-edition/datatypes/page.ts");
class ManuscriptStub extends _basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"] {
constructor(data, id, service) {
super(data, id, service);
this.title = this.getData4Key('title');
this.type = this.getData4Key('type');
}
}
ManuscriptStub.query = `
PREFIX data: <http://rdfh.ch/projects/0068#>
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
SELECT ?id ?title ?type WHERE {
?id a tln:ArchivalManuscriptUnity ;
tln:hasTitle ?title;
tln:hasManuscriptType ?type.
}`;
class TlnExtManuscript extends ManuscriptStub {
constructor(data, id, service) {
super(data, id, service);
this.thumbImage = this.getData4Key('thumbImage');
this.gsaSignature = this.getData4Key('gsaSignature');
this.archivalicSignature = this.getData4Key('archivalicSignature');
}
}
/**
* the internal default key for replacing {@link /classes/TlnLine.html#query|query} by "id"
* in {@link /classes/TlnLine.html#getQuery|getQuery} if "key" is omitted.
**/
TlnExtManuscript.default_key = 'manuscript';
TlnExtManuscript.query = `
PREFIX data: <http://rdfh.ch/projects/0068#>
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX stoff: <http://www.nie.org/ontology/standoff#>
SELECT DISTINCT ?gsaSignature ?title ?thumbImage ?type ?archivalicSignature WHERE {
?manuscript tln:hasPages/rdf:first/tln:hasFaksimileImage/tln:hasThumburl ?thumbImage;
tln:hasGsaSignature ?gsaSignature;
tln:hasTitle ?title;
tln:hasManuscriptType ?type.
OPTIONAL {
?manuscript tln:hasArchivalicSignature ?archivalicSignature.
}
}`;
/**
* the public key for replacing {@link /classes/TlnLine.html#query|query} by "id".
**/
TlnExtManuscript.query_key = 'manuscript';
class ReconstructedKonvolut extends ManuscriptStub {
constructor(data, id, service) {
super(data, id, service);
this.pages = [];
this.title = this.getData4Key('manuscriptTitle');
this.description = this.getData4Key('description');
}
static convertData(data, id, service) {
let elements = [];
let content = this.getContent(data);
for (var i = 0; i < content.length; i++) {
let element = new ReconstructedKonvolut(content[i], id, service);
let pages = [];
if (content[i]['page'] != undefined && content[i]['page'] != null) {
pages = (content[i]['title'] != undefined && content[i]['title'] != null)
? _page__WEBPACK_IMPORTED_MODULE_3__["TlnPage"].convertData({ head: { vars: [] }, results: { bindings: [content[i]] } }, content[i]['page']['value'])
: _page__WEBPACK_IMPORTED_MODULE_3__["PageStub"].convertData({ head: { vars: [] }, results: { bindings: [content[i]] } }, content[i]['page']['value']);
}
if (elements.length > 0 && elements[elements.length - 1].id == element.id) {
if (pages.length > 0) {
elements[elements.length - 1].pages.push(pages[0]);
}
}
else {
if (pages.length > 0) {
element.pages.push(pages[0]);
}
elements.push(element);
}
}
//console.log(elements)
return elements;
}
}
/**
* the internal default key for replacing {@link /classes/TlnLine.html#query|query} by "id"
* in {@link /classes/TlnLine.html#getQuery|getQuery} if "key" is omitted.
**/
ReconstructedKonvolut.default_key = 'manuscript';
ReconstructedKonvolut.query = `
PREFIX data: <http://rdfh.ch/projects/0068#>
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX stoff: <http://www.nie.org/ontology/standoff#>
SELECT DISTINCT ?id ?manuscriptTitle ?title ?type ?page ?number ?description WHERE {
?manuscript tln:partsBelongToReconstructedKonvolut ?id.
?id tln:hasTitle ?manuscriptTitle;
tln:hasDescription/tln:textHasContent ?description;
tln:hasManuscriptType ?type;
tln:hasPages/rdf:rest*/rdf:first ?page.
OPTIONAL { ?page tln:hasNumber ?number.}
OPTIONAL {
?archivalicUnity a tln:ArchivalManuscriptUnity;
tln:hasPages/rdf:rest*/rdf:first ?page;
tln:hasTitle ?title.
}
}`;
/**
* the public key for replacing {@link /classes/TlnLine.html#query|query} by "id".
**/
ReconstructedKonvolut.query_key = 'manuscript';
class ManuscriptDescription extends _basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"] {
constructor(data, id, service) {
super(data, id, service);
this.text = this.getData4Key('text');
this.markups = [];
}
static convertData(data, id, service) {
let elements = [];
let content = this.getContent(data);
for (var i = 0; i < content.length; i++) {
let element = new ManuscriptDescription(content[i], id, service);
let markups = (content[i]['description_markup'] != undefined && content[i]['description_markup'] != null) ?
_positional_markup__WEBPACK_IMPORTED_MODULE_2__["TlnPositionalStyleMarkup"].convertData({ head: { vars: [] }, results: { bindings: [content[i]] } }, content[i]['description_markup']['value']) : [];
if (elements.length > 0 && elements[elements.length - 1].id == element.id) {
if (markups.length > 0) {
elements[elements.length - 1].markups.push(markups[0]);
}
}
else {
if (markups.length > 0) {
element.markups.push(markups[0]);
}
elements.push(element);
}
}
//console.log(elements)
return elements;
}
}
/**
* the internal default key for replacing {@link /classes/TlnLine.html#query|query} by "id"
* in {@link /classes/TlnLine.html#getQuery|getQuery} if "key" is omitted.
**/
ManuscriptDescription.default_key = 'manuscript';
ManuscriptDescription.query = `
PREFIX data: <http://rdfh.ch/projects/0068#>
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX stoff: <http://www.nie.org/ontology/standoff#>
SELECT DISTINCT ?id ?text ?description_markup ?cssStyleTag ?startIndex ?endIndex WHERE {
?manuscript tln:hasDescription ?id.
?id tln:textHasContent ?text.
OPTIONAL { ?id tln:textHasMarkup ?description_markup.
?description_markup stoff:hasCSS ?cssStyleTag;
stoff:standoffMarkupHasStartIndex ?startIndex;
stoff:standoffMarkupHasEndIndex ?endIndex.}
}`;
/**
* the public key for replacing {@link /classes/TlnLine.html#query|query} by "id".
**/
ManuscriptDescription.query_key = 'manuscript';
class ManuscriptEarlierDescription extends _basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"] {
constructor(data, id, service) {
super(data, id, service);
this.text = this.getData4Key('text');
this.author = this.getData4Key('author');
this.citation = this.getData4Key('citation');
this.markups = [];
}
static convertData(data, id, service) {
let elements = [];
let content = this.getContent(data);
for (var i = 0; i < content.length; i++) {
let element = new ManuscriptEarlierDescription(content[i], id, service);
let markups = (content[i]['description_markup'] != undefined && content[i]['description_markup'] != null) ?
_positional_markup__WEBPACK_IMPORTED_MODULE_2__["TlnPositionalStyleMarkup"].convertData({ head: { vars: [] }, results: { bindings: [content[i]] } }, content[i]['description_markup']['value']) : [];
if (elements.length > 0 && elements[elements.length - 1].id == element.id) {
if (markups.length > 0) {
elements[elements.length - 1].markups.push(markups[0]);
}
}
else {
if (markups.length > 0) {
element.markups.push(markups[0]);
}
elements.push(element);
}
}
//console.log(elements)
return elements;
}
}
/**
* the internal default key for replacing {@link /classes/TlnLine.html#query|query} by "id"
* in {@link /classes/TlnLine.html#getQuery|getQuery} if "key" is omitted.
**/
ManuscriptEarlierDescription.default_key = 'manuscript';
ManuscriptEarlierDescription.query = `
PREFIX data: <http://rdfh.ch/projects/0068#>
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
PREFIX stoff: <http://www.nie.org/ontology/standoff#>
SELECT ?id ?text ?author ?citation ?description_markup ?cssStyleTag ?startIndex ?endIndex WHERE {
?manuscript tln:hasEarlierDescriptions ?id.
?id tln:textHasContent ?text;
tln:hasAuthor ?author;
tln:hasCitation ?citation.
OPTIONAL { ?id tln:textHasMarkup ?description_markup.
?description_markup stoff:hasCSS ?cssStyleTag;
stoff:standoffMarkupHasStartIndex ?startIndex;
stoff:standoffMarkupHasEndIndex ?endIndex.}
}`;
/**
* the public key for replacing {@link /classes/TlnLine.html#query|query} by "id".
**/
ManuscriptEarlierDescription.query_key = 'manuscript';
/***/ }),
/***/ "./src/app/tln-edition/datatypes/navigation.ts":
/*!*****************************************************!*\
!*** ./src/app/tln-edition/datatypes/navigation.ts ***!
\*****************************************************/
/*! exports provided: TlnManuscriptUnity, TlnNavigationPage */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnManuscriptUnity", function() { return TlnManuscriptUnity; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnNavigationPage", function() { return TlnNavigationPage; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _basic_datatype__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./basic_datatype */ "./src/app/tln-edition/datatypes/basic_datatype.ts");
class TlnManuscriptUnity extends _basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"] {
constructor(data, id, service) {
super(data, id, service);
this.title = this.getData4Key('title');
this.numberOfPages = this.getData4Key('numberOfPages');
this.firstPage = { id: this.getData4Key('firstItem'), number: this.getData4Key('firstNumber'), title: this.title, index: 1 };
this.lastPage = { id: this.getData4Key('lastItem'), number: this.getData4Key('lastNumber'), title: this.title, index: this.numberOfPages };
}
}
TlnManuscriptUnity.query = `
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX list: <http://jena.apache.org/ARQ/list#>
SELECT ?title ?numberOfPages ?firstItem ?firstNumber ?lastItem ?lastNumber WHERE {
?id a tln:ManuscriptUnity;
tln:hasTitle ?title;
tln:hasPages ?list.
?list list:length ?numberOfPages;
rdf:first ?firstItem;
rdf:rest* ?lastNode.
?lastNode rdf:first ?lastItem;
rdf:rest rdf:nil.
?firstItem tln:hasNumber ?firstNumber.
?lastItem tln:hasNumber ?lastNumber.
}`;
TlnManuscriptUnity.query_key = 'id';
class TlnNavigationPage extends _basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"] {
constructor(data, id, service) {
super(data, id, service);
this.title = this.getData4Key('title');
this.number = this.getData4Key('number');
let previous = this.getData4Key('previous');
let next = this.getData4Key('next');
if (previous != null) {
this.previous = { id: previous, number: this.getData4Key('previousNumber'), title: this.title, index: this.getData4Key('previousIndex') + 1 };
}
if (next != null) {
this.next = { id: next, number: this.getData4Key('nextNumber'), title: this.title, index: this.getData4Key('nextIndex') + 1 };
}
}
}
TlnNavigationPage.query = `
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX list: <http://jena.apache.org/ARQ/list#>
SELECT ?title ?number ?previous ?previousNumber ?next ?nextNumber ?previousIndex ?nextIndex WHERE {
?id tln:hasNumber ?number.
?unity a tln:ArchivalManuscriptUnity;
tln:hasTitle ?title;
tln:hasPages ?list.
?list rdf:rest* ?node.
?node rdf:first ?id.
OPTIONAL { ?node ^rdf:rest/rdf:first ?previous.
?previous tln:hasNumber ?previousNumber.
?list list:index (?previousIndex ?previous);
}
OPTIONAL { ?node rdf:rest/rdf:first ?next.
?next tln:hasNumber ?nextNumber.
?list list:index (?nextIndex ?next);
}
}`;
TlnNavigationPage.query_key = 'id';
/***/ }),
/***/ "./src/app/tln-edition/datatypes/page.ts":
/*!***********************************************!*\
!*** ./src/app/tln-edition/datatypes/page.ts ***!
\***********************************************/
/*! exports provided: PageStub, TlnPage */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PageStub", function() { return PageStub; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnPage", function() { return TlnPage; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _basic_datatype__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./basic_datatype */ "./src/app/tln-edition/datatypes/basic_datatype.ts");
class PageStub extends _basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"] {
constructor(data, id, service) {
super(data, id, service);
this.number = this.getData4Key('number');
}
}
PageStub.query = `
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?id ?number WHERE {
?manuscript a tln:ArchivalManuscriptUnity;
tln:hasPages/rdf:rest*/rdf:first ?id.
?id tln:hasNumber ?number.
FILTER EXISTS { ?id tln:hasImage ?image }
}`;
PageStub.query_key = 'manuscript';
class TlnPage extends PageStub {
constructor(data, id, service) {
super(data, id, service);
this.title = this.getData4Key('title');
this.manuscript = this.getData4Key('manuscript');
if (this.service != null) {
this.service.setCurrentIri(this.id, this.manuscript);
//this.service.setTitle(this.title + ", " + this.number);
}
}
}
TlnPage.query = `
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?id ?title ?number ?manuscript WHERE {
?manuscript a tln:ArchivalManuscriptUnity;
tln:hasTitle ?title;
tln:hasPages/rdf:rest*/rdf:first ?id.
?id a tln:Page; tln:hasNumber ?number.
}`;
TlnPage.query_key = 'id';
/***/ }),
/***/ "./src/app/tln-edition/datatypes/positional-markup.ts":
/*!************************************************************!*\
!*** ./src/app/tln-edition/datatypes/positional-markup.ts ***!
\************************************************************/
/*! exports provided: TlnPositionalStyleMarkup, TlnFilteredPositionalStyleMarkup */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnPositionalStyleMarkup", function() { return TlnPositionalStyleMarkup; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnFilteredPositionalStyleMarkup", function() { return TlnFilteredPositionalStyleMarkup; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _basic_datatype__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./basic_datatype */ "./src/app/tln-edition/datatypes/basic_datatype.ts");
/**
* This is the line instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.
* It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.
**/
class TlnPositionalStyleMarkup extends _basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"] {
/**
* The constructor creates a datatype from the data.
*
* @param id if omitted the id will be retrieved from data
**/
constructor(data, id, service) {
super(data, id, service);
/**
* standoff type: 0 === markup via css tag; 1 === apply css class
**/
this.sType = 0;
this.cssStyleTag = this.getData4Key('cssStyleTag');
this.endIndex = this.getData4Key('endIndex');
this.startIndex = this.getData4Key('startIndex');
}
}
/**
* the internal default key for replacing {@link /classes/TlnLine.html#query|query} by "id"
* in {@link /classes/TlnLine.html#getQuery|getQuery} if "key" is omitted.
**/
TlnPositionalStyleMarkup.default_key = 'word';
/**
* the SPARQL-query of this datatype.
**/
TlnPositionalStyleMarkup.query = `
PREFIX homotypic: <http://www.nie.org/ontology/homotypic#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX stoff: <http://www.nie.org/ontology/standoff#>
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
SELECT ?id ?cssStyleTag ?startIndex ?endIndex WHERE {
?word homotypic:hasMarkup ?id.
?id stoff:hasCSS ?cssStyleTag;
stoff:standoffMarkupHasStartIndex ?startIndex;
stoff:standoffMarkupHasEndIndex ?endIndex.
} `;
TlnPositionalStyleMarkup.query_key = 'word';
class TlnFilteredPositionalStyleMarkup extends TlnPositionalStyleMarkup {
constructor(data, id, service) {
super(data, id, service);
this.regex = new RegExp('font-size:[0-9]\+%[;]*');
this.cssStyleTag = this.cssStyleTag.replace(this.regex, '') + 'filter: invert(1);';
}
}
/***/ }),
/***/ "./src/app/tln-edition/datatypes/positional_object.ts":
/*!************************************************************!*\
!*** ./src/app/tln-edition/datatypes/positional_object.ts ***!
\************************************************************/
/*! exports provided: TlnPositionalObject */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnPositionalObject", function() { return TlnPositionalObject; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _basic_datatype__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./basic_datatype */ "./src/app/tln-edition/datatypes/basic_datatype.ts");
/**
* This is the 'text by foreign hand' instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.
* It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.
**/
class TlnPositionalObject extends _basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"] {
/**
* The constructor creates a datatype from the data.
*
* @param id if omitted the id will be retrieved from data
**/
constructor(data, id, service) {
super(data, id, service);
this.left = this.getData4Key('left');
this.top = this.getData4Key('top');
this.width = this.getData4Key('width');
this.height = this.getData4Key('height');
this.transform = this.getData4Key('transform');
}
}
/**
* the internal default key for replacing {@link /classes/TlnWord.html#query|query} by "id"
* in {@link /classes/TlnWord.html#getQuery|getQuery} if "key" is omitted.
**/
TlnPositionalObject.default_key = 'page';
/**
* the public key for replacing {@link /classes/TlnWord.html#query|query} by "id".
**/
TlnPositionalObject.query_key = 'page';
/***/ }),
/***/ "./src/app/tln-edition/datatypes/preview_data.ts":
/*!*******************************************************!*\
!*** ./src/app/tln-edition/datatypes/preview_data.ts ***!
\*******************************************************/
/*! exports provided: TlnPreviewWord */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnPreviewWord", function() { return TlnPreviewWord; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _word__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./word */ "./src/app/tln-edition/datatypes/word.ts");
/* harmony import */ var _positional_markup__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./positional-markup */ "./src/app/tln-edition/datatypes/positional-markup.ts");
class TlnPreviewWord extends _word__WEBPACK_IMPORTED_MODULE_1__["TlnWord"] {
/**
* The constructor creates a datatype from the data.
*
* @param id if omitted the id will be retrieved from data
**/
constructor(data, id, service) {
super(data, id, service);
this.markups = [];
this.earlier_version = this.getData4Key('earlier_version');
this.left = this.getData4Key('left');
this.top = this.getData4Key('top');
}
static convertData(data, id, service) {
let elements = [];
let content = this.getContent(data);
for (var i = 0; i < content.length; i++) {
let element = new TlnPreviewWord(content[i], id, service);
element.markups = _positional_markup__WEBPACK_IMPORTED_MODULE_2__["TlnFilteredPositionalStyleMarkup"].convertData({ head: { vars: [] }, results: { bindings: [content[i]] } }, content[i]['markup_id']);
if (elements.length > 0 && element.id == elements[elements.length - 1].id) {
elements[elements.length - 1].markups.push(element.markups[0]);
if (element.top < elements[elements.length - 1].top && element.left < elements[elements.length - 1].left) {
elements[elements.length - 1].left = element.left;
}
}
else {
elements.push(element);
}
}
elements.sort((w0, w1) => {
return w0.left - w1.left;
});
return elements;
}
}
/**
* the internal default key for replacing {@link /classes/TlnLine.html#query|query} by "id"
* in {@link /classes/TlnLine.html#getQuery|getQuery} if "key" is omitted.
**/
TlnPreviewWord.default_key = 'line';
TlnPreviewWord.query_key = 'line';
/**
* the SPARQL-query of this datatype.
**/
TlnPreviewWord.query = `
PREFIX homotypic: <http://www.nie.org/ontology/homotypic#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX stoff: <http://www.nie.org/ontology/standoff#>
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
SELECT DISTINCT ?id ?text ?markup_id ?cssStyleTag ?startIndex ?endIndex ?left ?top ?earlier_version WHERE {
?id a tln:Word;
tln:wordBelongsToLine ?line;
tln:hasTranskriptionPosition/tln:hasLeft ?left;
tln:hasTranskriptionPosition/tln:hasTop ?top;
tln:hasText ?text;
homotypic:hasMarkup ?markup_id.
?markup_id stoff:hasCSS ?cssStyleTag;
stoff:standoffMarkupHasStartIndex ?startIndex;
stoff:standoffMarkupHasEndIndex ?endIndex.
FILTER(NOT EXISTS {?word tln:wordHasWordParts/rdf:rest*/rdf:first ?id})
FILTER(NOT EXISTS {?word (tln:wordHasEarlierVersion|tln:overwritesWord) ?id})
OPTIONAL { ?id (tln:wordHasEarlierVersion|tln:overwritesWord)/tln:hasText ?earlier_version}
}`;
/***/ }),
/***/ "./src/app/tln-edition/datatypes/search.ts":
/*!*************************************************!*\
!*** ./src/app/tln-edition/datatypes/search.ts ***!
\*************************************************/
/*! exports provided: TlnExtWord, PageResult, FoundPage */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnExtWord", function() { return TlnExtWord; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PageResult", function() { return PageResult; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FoundPage", function() { return FoundPage; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _basic_datatype__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./basic_datatype */ "./src/app/tln-edition/datatypes/basic_datatype.ts");
/* harmony import */ var _word__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./word */ "./src/app/tln-edition/datatypes/word.ts");
class TlnExtWord extends _word__WEBPACK_IMPORTED_MODULE_2__["TlnWord"] {
constructor(data, id, service) {
super(data, id, service);
this.startLine = this.getData4Key('startLine');
this.endLine = this.getData4Key('endLine');
}
}
class PageResult {
constructor(words) {
this.words = [];
this.words = words;
}
getWords() {
return this.words.map(word => word.id);
}
getStartLine() {
let sortedWords = this.words.sort((word0, word1) => word0.line_number - word1.line_number);
if (sortedWords.length == 0) {
return '';
}
return (sortedWords[0].startLine != undefined && sortedWords[0].startLine != null) ? sortedWords[0].startLine : sortedWords[0].line;
}
getEndLine() {
let sortedWords = this.words.sort((word0, word1) => word0.line_number - word1.line_number);
if (sortedWords.length == 0) {
return '';
}
return (sortedWords[sortedWords.length - 1].endLine != undefined && sortedWords[sortedWords.length - 1].endLine != null)
? sortedWords[sortedWords.length - 1].endLine : sortedWords[sortedWords.length - 1].line;
}
}
class FoundPage extends _basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"] {
constructor(data, id, service) {
super(data, id, service);
this.results = [];
this.title = this.getData4Key('title');
this.number = this.getData4Key('number');
this.manuscript = this.getData4Key('manuscript');
}
removeIncompleteResults(searchTerms) {
this.results = this.results.filter(result => searchTerms.every(searchText => result.words.filter(word => word.text.match('^[^\w\s]*' + searchText + '.*')).length > 0));
}
/**
* This method returns the parametrized SPARQL query of this FoundPage
*
* If "key" is omitted {@link /classes/BasicResultBindingElement.html#default_key|default_key} will be used.
*
* @param find the search text
* @param key will be ignored.
**/
static getQuery(find, key) {
if (find == undefined || find == null) {
return this.query;
}
let words = find.split(' ');
let find_regex = words.join('.*') + '.*';
let filter = 'FILTER regex(?text, "^[^\\\\w]?(' + words.join('.*|') + '.*)")';
let query = this.query.replace('#find#', find_regex).replace('#FILTER()', filter);
//console.log(query);
return query;
}
static convertData(data, id, service) {
let elements = [];
let pages = [];
let searchTerms = service.getSearchTerms();
let content = this.getContent(data);
let currentResult = null;
let currentPage = null;
for (var i = 0; i < content.length; i++) {
let page = new FoundPage(content[i], id, service);
if (content[i]['word'] != undefined && content[i]['word'] != null) {
let words = TlnExtWord.convertData({ head: { vars: [] }, results: { bindings: [content[i]] } }, content[i]['word']['value']);
if (pages.length == 0 || pages.map(page => page.id).indexOf(page.id) == -1) {
currentResult = new PageResult(words);
currentPage = page;
currentPage.results.push(currentResult);
pages.push(currentPage);
}
else {
if (currentResult.words.indexOf(words[0]) == -1) {
if (currentResult.words.length > 0
&& (Math.abs(Math.min(...currentResult.words.map(word => word.line_number)) - words[0].line_number) > 4
|| Math.abs(Math.max(...currentResult.words.map(word => word.line_number)) - words[0].line_number) > 4)) {
currentResult = new PageResult(words);
currentPage.results.push(currentResult);
}
else {
currentResult.words.push(words[0]);
}
}
}
}
}
pages.forEach(page => page.removeIncompleteResults(searchTerms));
return pages.filter(page => page.results.length > 0);
}
}
FoundPage.query = `
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?id ?manuscript ?title ?number ?word ?text ?line ?line_number ?startLine ?endLine WHERE {
?id a tln:Page;
tln:hasNumber ?number;
tln:hasPseudoText ?fulltext.
FILTER regex(?fulltext, "#find#", "s").
?manuscript a tln:ArchivalManuscriptUnity;
tln:hasManuscriptType "Mappe";
tln:hasPages/rdf:rest*/rdf:first ?id;
tln:hasTitle ?title.
?id tln:hasWords/rdf:rest*/rdf:first ?word.
?word tln:hasOutputText ?text;
tln:wordBelongsToLine ?line.
?line tln:lineHasNumber ?line_number.
OPTIONAL{ ?previouseNode rdf:rest/rdf:first ?line;
rdf:first ?startLine.}
OPTIONAL{ ?myNode rdf:first ?line;
rdf:rest/rdf:first ?endLine.}
#FILTER().
} order by ?id ?line_number`;
/***/ }),
/***/ "./src/app/tln-edition/datatypes/svg_image.ts":
/*!****************************************************!*\
!*** ./src/app/tln-edition/datatypes/svg_image.ts ***!
\****************************************************/
/*! exports provided: SVGImage, SVGImageClip */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SVGImage", function() { return SVGImage; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SVGImageClip", function() { return SVGImageClip; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _image__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./image */ "./src/app/tln-edition/datatypes/image.ts");
class SVGImage extends _image__WEBPACK_IMPORTED_MODULE_1__["TlnImage"] {
constructor(data, id, service) {
super(data, id, service);
this.x = this.text_field.left;
this.y = this.text_field.top;
}
}
SVGImage.query = `
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
SELECT ?id ?filename ?width ?height ?URL ?secondaryURL ?t_left ?t_top ?t_width ?t_height ?page WHERE {
?id a tln:SVGImage;
tln:hasPrimaryurl ?URL;
tln:hasSecondaryurl ?secondaryURL;
tln:hasFileName ?filename;
tln:hasWidth ?width;
tln:hasHeight ?height;
tln:hasTextField ?textfield.
?textfield tln:hasLeft ?t_left;
tln:hasTop ?t_top;
tln:hasWidth ?t_width;
tln:hasHeight ?t_height;
^tln:pageIsOnTextField ?page.
}`;
class SVGImageClip extends SVGImage {
constructor(data, id, service) {
super(data, id, service);
this.y = this.getData4Key('y');
}
}
SVGImageClip.query = `
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?id ?filename ?width ?height ?URL ?secondaryURL ?t_left ?t_top ?t_width ?t_height ?page ?y ?end_bottom WHERE {
?id a tln:SVGImage;
tln:hasPrimaryurl ?URL;
tln:hasSecondaryurl ?secondaryURL;
tln:hasFileName ?filename;
tln:hasWidth ?width;
tln:hasHeight ?height;
tln:hasTextField ?textfield.
?textfield tln:hasLeft ?t_left;
tln:hasTop ?y;
tln:hasWidth ?t_width;
^tln:pageIsOnTextField ?page.
?page tln:hasLines ?lines.
?lines rdf:rest* ?start_node;
rdf:rest* ?end_node.
?start_node rdf:first ?startLine;.
?end_node rdf:first ?endLine;.
?startLine tln:lineHasTopValueOnTranskription ?start_top.
?endLine tln:lineHasBottomValueOnTranskription ?end_bottom.
OPTIONAL { ?start_node ^rdf:rest/rdf:first ?previousLine.
?previousLine tln:lineHasBottomValueOnTranskription ?previous_bottom.
}
OPTIONAL { ?end_node rdf:rest/rdf:first/rdf:rest/rdf:first ?nextLine.
?nextLine tln:lineHasTopValueOnTranskription ?next_top.
}
BIND(IF(bound(?previous_bottom), ?previous_bottom+1, ?start_top - 5) as ?t_top)
BIND(IF(bound(?next_top), ?next_top-?t_top, ?end_bottom - ?t_top + 10) as ?t_height)
}`;
/***/ }),
/***/ "./src/app/tln-edition/datatypes/text_version.ts":
/*!*******************************************************!*\
!*** ./src/app/tln-edition/datatypes/text_version.ts ***!
\*******************************************************/
/*! exports provided: TlnTextVersion, TlnTextUnity, TlnTextGeneticOrder, TlnStandaloneTextVersion, TlnPageWithTextGeneticOrder */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnTextVersion", function() { return TlnTextVersion; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnTextUnity", function() { return TlnTextUnity; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnTextGeneticOrder", function() { return TlnTextGeneticOrder; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnStandaloneTextVersion", function() { return TlnStandaloneTextVersion; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnPageWithTextGeneticOrder", function() { return TlnPageWithTextGeneticOrder; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _basic_datatype__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./basic_datatype */ "./src/app/tln-edition/datatypes/basic_datatype.ts");
/* harmony import */ var _page__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./page */ "./src/app/tln-edition/datatypes/page.ts");
class TlnTextVersion extends _basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"] {
constructor(data, id, service) {
super(data, id, service);
this.textUnities = [];
this.title = this.getData4Key('title');
this.extUrl = this.getData4Key('extUrl');
this.manuscript = this.getData4Key('manuscript');
}
}
class TlnTextUnity extends _basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"] {
constructor(data, id, service) {
super(data, id, service);
this.number = this.getData4Key('number');
this.startLine = this.getData4Key('startLine');
this.endLine = this.getData4Key('endLine');
this.belongsToPage = this.getData4Key('text_page');
this.startLineIri = this.getData4Key('startLineIri');
this.endLineIri = this.getData4Key('endLineIri');
this.hasFaksimileImage = this.getData4Key('hasFaksimileImage');
}
}
/**
* This is the text version instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.
* It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.
**/
class TlnTextGeneticOrder extends _basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"] {
/**
* The constructor creates a datatype from the data.
*
* @param id if omitted the id will be retrieved from data
**/
constructor(data, id, service) {
super(data, id, service);
this.textVersions = [];
}
static convertData(data, id, service) {
let elements = [];
let content = this.getContent(data);
for (var i = 0; i < content.length; i++) {
let element = new TlnTextGeneticOrder(content[i], service);
let versions = TlnTextVersion.convertData({ head: { vars: [] }, results: { bindings: [content[i]] } }, content[i]['text_version']['value']);
let text_unities = (content[i]['text_unity'] != undefined) ?
TlnTextUnity.convertData({ head: { vars: [] }, results: { bindings: [content[i]] } }, content[i]['text_unity']['value']) : [];
/*if (text_unities.length > 0){
console.log(text_unities[0]);
}*/
if (elements.length > 0 && elements[elements.length - 1].id == element.id) {
if (elements[elements.length - 1].textVersions.length > 0
&& elements[elements.length - 1].textVersions[elements[elements.length - 1].textVersions.length - 1].id == versions[0].id) {
if (text_unities.length > 0) {
elements[elements.length - 1].textVersions[elements[elements.length - 1].textVersions.length - 1].textUnities.push(text_unities[0]);
}
}
else {
if (text_unities.length > 0) {
versions[0].textUnities.push(text_unities[0]);
}
elements[elements.length - 1].textVersions.push(versions[0]);
}
}
else {
if (text_unities.length > 0) {
versions[0].textUnities.push(text_unities[0]);
}
element.textVersions.push(versions[0]);
elements.push(element);
}
}
//console.log(elements)
return elements;
}
}
/**
* the internal default key for replacing {@link /classes/TlnLine.html#query|query} by "id"
* in {@link /classes/TlnLine.html#getQuery|getQuery} if "key" is omitted.
**/
TlnTextGeneticOrder.default_key = 'page';
/**
* the SPARQL-query of this datatype.
**/
TlnTextGeneticOrder.query = `
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT distinct ?id ?text_version ?text_unity ?text_page ?number ?startLine ?endLine ?title WHERE {
{?version a tln:IdentifiedTextVersion;
tln:identifiesAsVersion/rdf:rest*/rdf:first ?page.
} UNION {
?version a tln:IdentifiedTextVersion;
tln:identifiesAsVersion/rdf:rest*/rdf:first/tln:belongsToPage ?page.
}
?id tln:hasGeneticOrder/rdf:rest*/rdf:first ?version;
tln:hasGeneticOrder/rdf:rest*/rdf:first ?text_version.
OPTIONAL { ?text_version tln:identifiesAsVersion/rdf:rest*/rdf:first ?text_unity.
OPTIONAL { ?text_unity tln:hasNumber ?number.
?manuscript a tln:ArchivalManuscriptUnity;
tln:hasTitle ?title;
tln:hasPages/rdf:rest*/rdf:first ?text_unity.
}
OPTIONAL { ?text_unity tln:belongsToPage ?text_page;
tln:startLine/tln:lineHasNumber?startLine;
tln:endLine/tln:lineHasNumber ?endLine.
?text_page tln:hasNumber ?number.
?manuscript a tln:ArchivalManuscriptUnity;
tln:hasTitle ?title;
tln:hasPages/rdf:rest*/rdf:first ?text_page.
}
}
OPTIONAL { ?text_version tln:textUnitHasTitle ?title.}
}`;
/**
* the public key for replacing {@link /classes/TlnLine.html#query|query} by "id".
**/
TlnTextGeneticOrder.query_key = 'page';
class TlnStandaloneTextVersion extends TlnTextVersion {
constructor(data, id, service) {
super(data, id, service);
if (this.service != null) {
this.service.initSelecteTextVersion(this);
}
}
static convertData(data, id, service) {
let elements = [];
let content = this.getContent(data);
for (var i = 0; i < content.length; i++) {
let element = new TlnStandaloneTextVersion(content[i], id, service);
let text_unities = (content[i]['text_unity'] != undefined) ?
TlnTextUnity.convertData({ head: { vars: [] }, results: { bindings: [content[i]] } }, content[i]['text_unity']['value']) : [];
if (elements.length > 0 && elements[elements.length - 1].id == element.id) {
if (text_unities.length > 0) {
elements[elements.length - 1].textUnities.push(text_unities[0]);
}
}
else {
if (text_unities.length > 0) {
element.textUnities.push(text_unities[0]);
}
elements.push(element);
}
}
//console.log(elements)
return elements;
}
}
/**
* the internal default key for replacing {@link /classes/TlnLine.html#query|query} by "id"
* in {@link /classes/TlnLine.html#getQuery|getQuery} if "key" is omitted.
**/
TlnStandaloneTextVersion.default_key = 'geneticOrder';
/**
* the SPARQL-query of this datatype.
**/
TlnStandaloneTextVersion.query = `
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT distinct ?id ?text_unity ?text_page ?manuscript ?number ?startLine ?startLineIri ?endLine ?endLineIri ?title ?extUrl ?hasFaksimileImage WHERE {
?geneticOrder a tln:TextGenesis;
tln:hasGeneticOrder/rdf:rest*/rdf:first ?id.
OPTIONAL { ?id tln:identifiesAsVersion/rdf:rest*/rdf:first ?text_unity.
OPTIONAL { ?text_unity tln:hasNumber ?number.
?manuscript a tln:ArchivalManuscriptUnity;
tln:hasTitle ?title;
tln:hasPages/rdf:rest*/rdf:first ?text_unity.
BIND(exists{ ?text_unity tln:hasFaksimileImage ?image } as ?hasFaksimileImage)
}
OPTIONAL { ?text_unity tln:belongsToPage ?text_page;
tln:startLine ?startLineIri;
tln:endLine ?endLineIri.
?text_page tln:hasNumber ?number.
?startLineIri tln:lineHasNumber?startLine.
?endLineIri tln:lineHasNumber ?endLine.
?manuscript a tln:ArchivalManuscriptUnity;
tln:hasTitle ?title;
tln:hasPages/rdf:rest*/rdf:first ?text_page.
BIND(exists{ ?text_page tln:hasFaksimileImage ?image } as ?hasFaksimileImage)
}
}
OPTIONAL { ?id tln:textUnitHasTitle ?title; tln:textUnitHasUrl ?extUrl.}
}`;
/**
* the public key for replacing {@link /classes/TlnLine.html#query|query} by "id".
**/
TlnStandaloneTextVersion.query_key = 'geneticOrder';
class TlnPageWithTextGeneticOrder extends _page__WEBPACK_IMPORTED_MODULE_2__["PageStub"] {
}
/**
* the internal default key for replacing {@link /classes/TlnLine.html#query|query} by "id"
* in {@link /classes/TlnLine.html#getQuery|getQuery} if "key" is omitted.
**/
TlnPageWithTextGeneticOrder.default_key = 'manuscript';
/**
* the SPARQL-query of this datatype.
**/
TlnPageWithTextGeneticOrder.query = `
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT distinct ?id ?number WHERE {
?manuscript tln:hasPages/rdf:rest*/rdf:first ?id.
{?version a tln:IdentifiedTextVersion;
tln:identifiesAsVersion/rdf:rest*/rdf:first ?id.
} UNION {
?version a tln:IdentifiedTextVersion;
tln:identifiesAsVersion/rdf:rest*/rdf:first/tln:belongsToPage ?id.
}
?id tln:hasNumber ?number.
}`;
/**
* the public key for replacing {@link /classes/TlnLine.html#query|query} by "id".
**/
TlnPageWithTextGeneticOrder.query_key = 'manuscript';
/***/ }),
/***/ "./src/app/tln-edition/datatypes/word.ts":
/*!***********************************************!*\
!*** ./src/app/tln-edition/datatypes/word.ts ***!
\***********************************************/
/*! exports provided: TlnWord, FaksimileWord */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnWord", function() { return TlnWord; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FaksimileWord", function() { return FaksimileWord; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _positional_object__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./positional_object */ "./src/app/tln-edition/datatypes/positional_object.ts");
/**
* This is the word instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.
* It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.
**/
class TlnWord extends _positional_object__WEBPACK_IMPORTED_MODULE_1__["TlnPositionalObject"] {
/**
* The constructor creates a datatype from the data.
*
* @param id if omitted the id will be retrieved from data
**/
constructor(data, id, service) {
super(data, id, service);
this.text = this.getData4Key('text');
this.edited_text = this.getData4Key('edited_text');
this.line = this.getData4Key('line');
this.line_number = this.getData4Key('line_number');
this.deleted = this.getData4Key('deleted');
this.deletion_path = this.getData4Key('deletion_path');
}
}
/**
* the SPARQL-query of this datatype.
**/
TlnWord.query = `
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?id ?text ?edited_text ?left ?top ?width ?height ?transform ?line ?line_number ?deleted ?deletion_path WHERE {
?page tln:hasWords/rdf:rest*/rdf:first ?id.
?id tln:wordBelongsToLine ?line;
tln:hasText ?text;
tln:hasTranskriptionPosition ?tp.
?tp tln:hasLeft ?left; tln:hasTop ?top; tln:hasWidth ?width; tln:hasHeight ?height.
?line tln:lineHasNumber ?line_number.
BIND(exists{
{?id tln:wordIsDeletedByPath ?path}
UNION{ ?id tln:wordHasWordParts/rdf:rest*/rdf:first ?word_part.
?word_part tln:hasTranskriptionPosition ?tp; tln:wordIsDeletedByPath ?path}
} as ?deleted)
OPTIONAl { ?tp tln:hasTransform ?transform.}
OPTIONAl { ?id tln:hasEditedText ?edited_text.}
OPTIONAl { ?id tln:wordIsDeletedByPath/tln:hasDAttribute ?deletion_path.}
OPTIONAl { ?id tln:wordHasWordParts/rdf:rest*/rdf:first ?word_part.
?word_part tln:hasTranskriptionPosition ?tp; tln:wordIsDeletedByPath/tln:hasDAttribute ?deletion_path}
} `;
/**
* This is the faksimile word instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.
* It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.
**/
class FaksimileWord extends TlnWord {
}
/**
* the SPARQL-query of this datatype.
**/
FaksimileWord.query = `
PREFIX tln: <http://www.nie.org/ontology/nietzsche#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?id ?text ?edited_text ?left ?top ?width ?height ?transform ?line ?line_number ?deleted WHERE {
?page tln:hasWords/rdf:rest*/rdf:first ?id.
?id tln:wordBelongsToLine ?line;
tln:hasText ?text;
tln:hasFaksimilePosition ?fp.
?fp tln:hasLeft ?left; tln:hasTop ?top; tln:hasWidth ?width; tln:hasHeight ?height.
?line tln:lineHasNumber ?line_number.
BIND(exists{{?id tln:wordIsDeletedByPath ?path} UNION { ?id tln:wordHasWordParts/rdf:rest*/rdf:first/tln:wordIsDeletedByPath ?path}
} as ?deleted)
OPTIONAl { ?fp tln:hasTransform ?transform.}
OPTIONAl { ?id tln:hasEditedText ?edited_text.}
} `;
/***/ }),
/***/ "./src/app/tln-edition/debug.pipe.ts":
/*!*******************************************!*\
!*** ./src/app/tln-edition/debug.pipe.ts ***!
\*******************************************/
/*! exports provided: DebugPipe */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DebugPipe", function() { return DebugPipe; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
let DebugPipe = class DebugPipe {
transform(value) {
console.log(value);
return value;
}
};
DebugPipe = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Pipe"])({
name: 'debug'
})
], DebugPipe);
/***/ }),
/***/ "./src/app/tln-edition/route-reader.ts":
/*!*********************************************!*\
!*** ./src/app/tln-edition/route-reader.ts ***!
\*********************************************/
/*! exports provided: RouteReader */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RouteReader", function() { return RouteReader; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
class RouteReader {
constructor(router, activatedRoute) {
this.router = router;
this.activatedRoute = activatedRoute;
}
ngOnInit() {
this.activatedRoute.queryParams.subscribe(params => {
this.readParams(params);
});
}
readParams(params) {
this.routerParams = params;
for (let key of Object.keys(this.mapping)) {
if (this.mapping[key]['ignore'] == undefined || !this.mapping[key]['ignore']) {
let paramsKey = this.mapping[key]['param'];
if (this.routerParams[paramsKey] != null) {
if (this.mapping[key]['type'] == 'number') {
this[key] = Number(this.routerParams[paramsKey]);
}
else if (this.mapping[key]['type'] == 'boolean') {
this[key] = (this.routerParams[paramsKey] == 'true');
}
else if (Array.isArray(this[key]) && !Array.isArray(this.routerParams[paramsKey])) {
this[key] = JSON.parse(this.routerParams[paramsKey]);
}
else {
this[key] = this.routerParams[paramsKey];
}
if (this.mapping[key]['debug'] != null) {
console.log(this.mapping[key]['debug'], this[key]);
}
}
}
}
}
}
/***/ }),
/***/ "./src/app/tln-edition/route-updater.ts":
/*!**********************************************!*\
!*** ./src/app/tln-edition/route-updater.ts ***!
\**********************************************/
/*! exports provided: RouteUpdater */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RouteUpdater", function() { return RouteUpdater; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _route_reader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./route-reader */ "./src/app/tln-edition/route-reader.ts");
class RouteUpdater extends _route_reader__WEBPACK_IMPORTED_MODULE_1__["RouteReader"] {
constructor(router, activatedRoute) {
super(router, activatedRoute);
this.router = router;
this.activatedRoute = activatedRoute;
if (this.currentRoute == undefined || this.currentRoute == null) {
this.currentRoute = (this.activatedRoute.snapshot.routeConfig != null)
? this.activatedRoute.snapshot.routeConfig.path : null;
}
}
updateParams(launch) {
let newRouterParam = {};
for (let key of Object.keys(this.mapping)) {
let paramsKey = this.mapping[key]['param'];
if (this[key] != null) {
if (Array.isArray(this[key]) && this[key].length > 0) {
newRouterParam[paramsKey] = JSON.stringify(this[key]);
}
else {
newRouterParam[paramsKey] = this[key];
}
}
}
for (let key of Object.keys(this.routerParams)) {
if (newRouterParam[key] == null) {
newRouterParam[key] = this.routerParams[key];
}
}
let parentActivatedRoute = (this.activatedRoute.parent != null) ? this.activatedRoute.parent : this.parentActivatedRoute;
if (parentActivatedRoute != undefined && parentActivatedRoute != null) {
parentActivatedRoute.url.subscribe(url => {
let parentPath = url[0].path;
if (launch != undefined && launch) {
let link = this.router.createUrlTree([parentPath + '/' + this.currentRoute], { queryParams: newRouterParam });
window.open(link.toString(), '_blank');
}
else {
this.router.navigate([parentPath + '/' + this.currentRoute], { queryParams: newRouterParam });
}
});
}
else {
if (launch != undefined && launch) {
let link = this.router.createUrlTree([this.currentRoute], { queryParams: newRouterParam });
window.open(link.toString(), '_blank');
}
else {
this.router.navigate([this.currentRoute], { queryParams: newRouterParam });
}
}
}
}
/***/ }),
/***/ "./src/app/tln-edition/services.ts":
/*!*****************************************!*\
!*** ./src/app/tln-edition/services.ts ***!
\*****************************************/
/*! exports provided: TlnQueryService, PageViewService, ConfigurableComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _tln_query_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tln-query.service */ "./src/app/tln-edition/tln-query.service.ts");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TlnQueryService", function() { return _tln_query_service__WEBPACK_IMPORTED_MODULE_1__["TlnQueryService"]; });
/* harmony import */ var _page_view_page_view_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../page-view/page-view.service */ "./src/app/page-view/page-view.service.ts");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PageViewService", function() { return _page_view_page_view_service__WEBPACK_IMPORTED_MODULE_2__["PageViewService"]; });
/* harmony import */ var _page_view_configurable_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../page-view/configurable-component */ "./src/app/page-view/configurable-component.ts");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConfigurableComponent", function() { return _page_view_configurable_component__WEBPACK_IMPORTED_MODULE_3__["ConfigurableComponent"]; });
/***/ }),
/***/ "./src/app/tln-edition/tln-crossref/navigation/navigation.component.css":
/*!******************************************************************************!*\
!*** ./src/app/tln-edition/tln-crossref/navigation/navigation.component.css ***!
\******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = ("#navi {\n width: 100%;\n height: 50px;\n margin: 0;\n padding: 0;\n white-space: nowrap;\n}\n.search {\n margin-left: 8px;\n }\n.mat-button.min-width {\n min-width: 120px;\n max-width: 120px;\n}\n.default-mouse {\n cursor: default;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tY3Jvc3NyZWYvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxXQUFXO0dBQ1gsWUFBWTtHQUNaLFNBQVM7R0FDVCxVQUFVO0dBQ1YsbUJBQW1CO0FBQ3RCO0FBQ0E7R0FDRyxnQkFBZ0I7Q0FDbEI7QUFFRDtHQUNHLGdCQUFnQjtHQUNoQixnQkFBZ0I7QUFDbkI7QUFDQTtHQUNHLGVBQWU7QUFDbEIiLCJmaWxlIjoiYXBwL3Rsbi1lZGl0aW9uL3Rsbi1jcm9zc3JlZi9uYXZpZ2F0aW9uL25hdmlnYXRpb24uY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiNuYXZpIHtcbiAgIHdpZHRoOiAxMDAlO1xuICAgaGVpZ2h0OiA1MHB4O1xuICAgbWFyZ2luOiAwO1xuICAgcGFkZGluZzogMDtcbiAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uc2VhcmNoIHtcbiAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gfVxuXG4ubWF0LWJ1dHRvbi5taW4td2lkdGgge1xuICAgbWluLXdpZHRoOiAxMjBweDtcbiAgIG1heC13aWR0aDogMTIwcHg7XG59XG4uZGVmYXVsdC1tb3VzZSB7XG4gICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4iXX0= */");
+/* harmony default export */ __webpack_exports__["default"] = ("#navi {\n width: 100%;\n height: 50px;\n margin: 0;\n padding: 0;\n white-space: nowrap;\n}\n.search {\n margin-left: 8px;\n }\n.mat-button.min-width {\n min-width: 120px;\n max-width: 120px;\n}\n.default-mouse {\n cursor: default;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1jcm9zc3JlZi9uYXZpZ2F0aW9uL25hdmlnYXRpb24uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLFdBQVc7R0FDWCxZQUFZO0dBQ1osU0FBUztHQUNULFVBQVU7R0FDVixtQkFBbUI7QUFDdEI7QUFDQTtHQUNHLGdCQUFnQjtDQUNsQjtBQUVEO0dBQ0csZ0JBQWdCO0dBQ2hCLGdCQUFnQjtBQUNuQjtBQUNBO0dBQ0csZUFBZTtBQUNsQiIsImZpbGUiOiJ0bG4tZWRpdGlvbi90bG4tY3Jvc3NyZWYvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjbmF2aSB7XG4gICB3aWR0aDogMTAwJTtcbiAgIGhlaWdodDogNTBweDtcbiAgIG1hcmdpbjogMDtcbiAgIHBhZGRpbmc6IDA7XG4gICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnNlYXJjaCB7XG4gICBtYXJnaW4tbGVmdDogOHB4O1xuIH1cblxuLm1hdC1idXR0b24ubWluLXdpZHRoIHtcbiAgIG1pbi13aWR0aDogMTIwcHg7XG4gICBtYXgtd2lkdGg6IDEyMHB4O1xufVxuLmRlZmF1bHQtbW91c2Uge1xuICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuIl19 */");
/***/ }),
/***/ "./src/app/tln-edition/tln-crossref/navigation/navigation.component.ts":
/*!*****************************************************************************!*\
!*** ./src/app/tln-edition/tln-crossref/navigation/navigation.component.ts ***!
\*****************************************************************************/
/*! exports provided: NavigationComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NavigationComponent", function() { return NavigationComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */ var _datatypes_navigation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../datatypes/navigation */ "./src/app/tln-edition/datatypes/navigation.ts");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../constants */ "./src/app/tln-edition/constants.ts");
/* harmony import */ var _datatypes_text_version__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../datatypes/text_version */ "./src/app/tln-edition/datatypes/text_version.ts");
/* harmony import */ var _route_updater__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../route-updater */ "./src/app/tln-edition/route-updater.ts");
/* harmony import */ var _data_handler__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../data_handler */ "./src/app/tln-edition/data_handler.ts");
/* harmony import */ var _services__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../services */ "./src/app/tln-edition/services.ts");
let NavigationComponent = class NavigationComponent extends _route_updater__WEBPACK_IMPORTED_MODULE_6__["RouteUpdater"] {
constructor(pageViewService, localQueryService, router, activatedRoute) {
super(router, activatedRoute);
this.pageViewService = pageViewService;
this.localQueryService = localQueryService;
this.router = router;
this.activatedRoute = activatedRoute;
/**
* whether or not to show page view in fullscreen mode.
**/
this.fullscreen = false;
this.showArchivalManuscriptUnity = false;
this.dataHandler = new _data_handler__WEBPACK_IMPORTED_MODULE_7__["DataHandler"](this);
this.geneticOrders = [];
this.selectedLines = [];
this.PAGE_CONTEXT_VIEW = _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_PAGE_PARAM"];
this.MANUSCRIPT_CONTEXT_VIEW = _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_MANUSCRIPT_PARAM"];
this.contextView = this.PAGE_CONTEXT_VIEW;
this.increment = 0.333;
this.decrement = this.increment * -1;
this.currentRoute = _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_CROSSREF_ROUTE"];
this.mapping = {
contextView: { param: _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_CONTEXT_VIEW_PARAM"], type: "string" },
current_iri: { param: _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_PAGE_PARAM"], type: "string" },
current_manuscript_iri: { param: _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_MANUSCRIPT_PARAM"], type: "string" },
fullscreen: { param: _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_FULLSCREEN_PARAM"], type: "boolean" }
};
this.selectedViewOption = _constants__WEBPACK_IMPORTED_MODULE_4__["DEFAULT_VIEW_OPTION"];
this.updating = false;
this.viewOptions = [_constants__WEBPACK_IMPORTED_MODULE_4__["VIEW_OPTIONS"].TRANSKRIPTION, _constants__WEBPACK_IMPORTED_MODULE_4__["VIEW_OPTIONS"].FAKSIMILE, _constants__WEBPACK_IMPORTED_MODULE_4__["VIEW_OPTIONS"].SYNOPSIS, _constants__WEBPACK_IMPORTED_MODULE_4__["VIEW_OPTIONS"].SYNOPSIS_B];
}
ngOnInit() {
let tlnQueryService = (this.queryService != null) ? this.queryService : this.localQueryService;
this.dataHandler.addHandler('navigation_page', ['current_page', 'geneticOrders']);
this.dataHandler.addHandler('current_page', { 'handler': _datatypes_navigation__WEBPACK_IMPORTED_MODULE_3__["TlnNavigationPage"] });
this.dataHandler.addHandler('geneticOrders', { 'handler': _datatypes_text_version__WEBPACK_IMPORTED_MODULE_5__["TlnTextGeneticOrder"] });
this.dataHandler.setQueryService(tlnQueryService);
this.dataHandler.start_processing.subscribe((started) => {
this.updating = true;
});
this.dataHandler.processing_finished.subscribe((finished) => {
this.updating = false;
});
super.ngOnInit();
}
changeContext() {
this.contextView = (this.contextView == this.PAGE_CONTEXT_VIEW) ? this.MANUSCRIPT_CONTEXT_VIEW : this.PAGE_CONTEXT_VIEW;
//this.current_genetic_order_iri = 'none';
this.updateParams();
}
getPageTitle(page, numPages) {
if (page == null) {
return '';
}
let indexPrefix = (numPages != null) ? page.index + '/' + numPages : page.index;
return indexPrefix + ': ' + page.title + ' ' + page.number;
}
readParams(params) {
super.readParams(params);
if (this.dataHandler.ready && (this.current_page == null || this.current_page.id != this.current_iri)) {
this.dataHandler.resetData('navigation_page');
this.dataHandler.getData('current_page', this.current_iri);
}
}
setCurrentIri(pageIri) {
this.dataHandler.stop_processing.emit(true);
this.current_iri = pageIri;
this.currentRoute = _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_VIEWER_ROUTE"];
this.updateParams();
}
toggleFullscreen() {
this.fullscreen = !this.fullscreen;
this.updateParams();
}
};
NavigationComponent.ctorParameters = () => [
{ type: _services__WEBPACK_IMPORTED_MODULE_8__["PageViewService"] },
{ type: _services__WEBPACK_IMPORTED_MODULE_8__["TlnQueryService"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"] }
];
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], NavigationComponent.prototype, "queryService", void 0);
NavigationComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'crossref-navigation',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./navigation.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/navigation/navigation.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./navigation.component.css */ "./src/app/tln-edition/tln-crossref/navigation/navigation.component.css")).default]
})
], NavigationComponent);
/***/ }),
/***/ "./src/app/tln-edition/tln-crossref/page-version-view/filter.pipe.ts":
/*!***************************************************************************!*\
!*** ./src/app/tln-edition/tln-crossref/page-version-view/filter.pipe.ts ***!
\***************************************************************************/
/*! exports provided: FilterPipe */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterPipe", function() { return FilterPipe; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
let FilterPipe = class FilterPipe {
transform(geneticOrders, iri) {
if (!iri) {
return geneticOrders;
}
return geneticOrders.filter(geneticOrder => geneticOrder.id != iri);
}
};
FilterPipe = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Pipe"])({
name: 'filter'
})
], FilterPipe);
/***/ }),
/***/ "./src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.css":
/*!********************************************************************************************!*\
!*** ./src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.css ***!
\********************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = (".example-radio-group {\n display: flex;\n flex-direction: column;\n margin: 15px 0;\n}\n\n.example-radio-button {\n margin: 5px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tY3Jvc3NyZWYvcGFnZS12ZXJzaW9uLXZpZXcvcGFnZS12ZXJzaW9uLXZpZXcuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsY0FBYztBQUNoQjs7QUFFQTtFQUNFLFdBQVc7QUFDYiIsImZpbGUiOiJhcHAvdGxuLWVkaXRpb24vdGxuLWNyb3NzcmVmL3BhZ2UtdmVyc2lvbi12aWV3L3BhZ2UtdmVyc2lvbi12aWV3LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZXhhbXBsZS1yYWRpby1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1hcmdpbjogMTVweCAwO1xufVxuXG4uZXhhbXBsZS1yYWRpby1idXR0b24ge1xuICBtYXJnaW46IDVweDtcbn1cbiJdfQ== */");
+/* harmony default export */ __webpack_exports__["default"] = (".example-radio-group {\n display: flex;\n flex-direction: column;\n margin: 15px 0;\n}\n\n.example-radio-button {\n margin: 5px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1jcm9zc3JlZi9wYWdlLXZlcnNpb24tdmlldy9wYWdlLXZlcnNpb24tdmlldy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsV0FBVztBQUNiIiwiZmlsZSI6InRsbi1lZGl0aW9uL3Rsbi1jcm9zc3JlZi9wYWdlLXZlcnNpb24tdmlldy9wYWdlLXZlcnNpb24tdmlldy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmV4YW1wbGUtcmFkaW8tZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXJnaW46IDE1cHggMDtcbn1cblxuLmV4YW1wbGUtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luOiA1cHg7XG59XG4iXX0= */");
/***/ }),
/***/ "./src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.ts":
/*!*******************************************************************************************!*\
!*** ./src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.ts ***!
\*******************************************************************************************/
/*! exports provided: PageVersionViewComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PageVersionViewComponent", function() { return PageVersionViewComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */ var _route_updater__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../route-updater */ "./src/app/tln-edition/route-updater.ts");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../constants */ "./src/app/tln-edition/constants.ts");
let PageVersionViewComponent = class PageVersionViewComponent extends _route_updater__WEBPACK_IMPORTED_MODULE_3__["RouteUpdater"] {
constructor(router, activatedRoute) {
super(router, activatedRoute);
this.router = router;
this.activatedRoute = activatedRoute;
/**
* the genetic text order that should be displayed.
**/
this.geneticOrders = [];
this.currentRoute = _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_CROSSREF_ROUTE"];
this.mapping = {
current_iri: { param: _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_PAGE_PARAM"], type: "string" },
current_manuscript_iri: { param: _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_MANUSCRIPT_PARAM"], type: "string" },
contextView: { param: _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_CONTEXT_VIEW_PARAM"], type: "string" },
current_genetic_order: { param: _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_TEXT_GENETIC_ORDER_PARAM"], type: "string" }
};
}
ngOnInit() {
super.ngOnInit();
}
openCrossRef(geneticOrder) {
this.current_genetic_order = geneticOrder.id;
this.current_iri = this.current_page_iri;
this.contextView = _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_PAGE_PARAM"];
this.updateParams();
if (this.bottomSheetRef != undefined && this.bottomSheetRef != null) {
this.bottomSheetRef.dismiss();
}
}
};
PageVersionViewComponent.ctorParameters = () => [
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"] }
];
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], PageVersionViewComponent.prototype, "current_page_iri", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], PageVersionViewComponent.prototype, "geneticOrders", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], PageVersionViewComponent.prototype, "filterGeneticOrder", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], PageVersionViewComponent.prototype, "bottomSheetRef", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], PageVersionViewComponent.prototype, "parentActivatedRoute", void 0);
PageVersionViewComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'page-version-view',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./page-version-view.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./page-version-view.component.css */ "./src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.css")).default]
})
], PageVersionViewComponent);
/***/ }),
/***/ "./src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.css":
/*!************************************************************************************************!*\
!*** ./src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.css ***!
\************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = ("\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhcHAvdGxuLWVkaXRpb24vdGxuLWNyb3NzcmVmL3BhZ2UtdmVyc2lvbi12aWV3L3Rsbi1wYWdlLXZlcnNpb24tdmlldy5jb21wb25lbnQuY3NzIn0= */");
+/* harmony default export */ __webpack_exports__["default"] = ("\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ0bG4tZWRpdGlvbi90bG4tY3Jvc3NyZWYvcGFnZS12ZXJzaW9uLXZpZXcvdGxuLXBhZ2UtdmVyc2lvbi12aWV3LmNvbXBvbmVudC5jc3MifQ== */");
/***/ }),
/***/ "./src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.ts":
/*!***********************************************************************************************!*\
!*** ./src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.ts ***!
\***********************************************************************************************/
/*! exports provided: TlnPageVersionViewComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnPageVersionViewComponent", function() { return TlnPageVersionViewComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _services__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../services */ "./src/app/tln-edition/services.ts");
/* harmony import */ var _data_handler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data_handler */ "./src/app/tln-edition/data_handler.ts");
/* harmony import */ var _datatypes_text_version__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../datatypes/text_version */ "./src/app/tln-edition/datatypes/text_version.ts");
let TlnPageVersionViewComponent = class TlnPageVersionViewComponent {
constructor(queryService) {
this.queryService = queryService;
this.dataHandler = new _data_handler__WEBPACK_IMPORTED_MODULE_3__["DataHandler"](this);
this.geneticOrders = [];
}
ngOnInit() {
this.dataHandler.addHandler('geneticOrders', { 'handler': _datatypes_text_version__WEBPACK_IMPORTED_MODULE_4__["TlnTextGeneticOrder"] });
this.dataHandler.setQueryService(this.queryService);
this.dataHandler.getData('geneticOrders', this.current_iri);
}
};
TlnPageVersionViewComponent.ctorParameters = () => [
{ type: _services__WEBPACK_IMPORTED_MODULE_2__["TlnQueryService"] }
];
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TlnPageVersionViewComponent.prototype, "current_iri", void 0);
TlnPageVersionViewComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'tln-page-version-view',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./tln-page-version-view.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./tln-page-version-view.component.css */ "./src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.css")).default]
})
], TlnPageVersionViewComponent);
/***/ }),
/***/ "./src/app/tln-edition/tln-crossref/tln-crossref.component.css":
/*!*********************************************************************!*\
!*** ./src/app/tln-edition/tln-crossref/tln-crossref.component.css ***!
\*********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = ("#page {\n width: 100%;\n position: relative;\n top: 0px;\n left: 0px;\n}\n.grid-container{ /* Chrome, Safari, Opera */\n -moz-column-count: 2; /* Firefox */\n column-count: 2;\n}\n.extra-space {\n margin-top: 45px;\n}\n.page-crossref-title {\n margin-left: 20px;\n}\n.preview {\n position: relative;\n top: 60px;\n width: 400px;\n height: 100%;\n text-align: center;\n}\n.icon {\n margin-left: 5px;\n}\n.centered {\n margin: auto;\n}\n.text {\n position: absolute;\n top: 0px;\n left: 400px;\n}\n.page-view {\n overflow: auto;\n}\n.external {\n margin-top: 35px;\n background-color: lightblue;\n height: 100px;\n position: relative;\n left: 80px;\n z-index: 2;\n}\n.highlight {\n background-color: lightblue;\n}\n.text-navi {\n position: absolute;\n margin-top: -3px;\n left: 0px;\n height: 38px;\n width: 100%;\n background-color: lightblue;\n z-index: 1;\n}\n.close-text {\n position: absolute;\n height: 38px;\n right: 0px;\n z-index: 2;\n}\n.page-navi {\n float: left;\n margin-top: -3px;\n margin-bottom: 1px;\n height: 38px;\n background-color: lightblue;\n z-index: 2;\n}\n.icon-button {\n width: 15px;\n margin-left: 3px;\n}\n.default-mouse {\n cursor: default;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tY3Jvc3NyZWYvdGxuLWNyb3NzcmVmLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxXQUFXO0dBQ1gsa0JBQWtCO0dBQ2xCLFFBQVE7R0FDUixTQUFTO0FBQ1o7QUFDQSxrQkFDNEIsMEJBQTBCO0VBQ3BELG9CQUFvQixNQUFNLFlBQVk7RUFDdEMsZUFBZTtBQUNqQjtBQUNBO0dBQ0csaUJBQWlCO0FBQ3BCO0FBQ0E7R0FDRyxpQkFBaUI7QUFDcEI7QUFDQTtHQUNHLGtCQUFrQjtHQUNsQixTQUFTO0dBQ1QsWUFBWTtHQUNaLFlBQVk7R0FDWixrQkFBa0I7QUFDckI7QUFDQTtHQUNHLGdCQUFnQjtBQUNuQjtBQUNBO0dBQ0csWUFBWTtBQUNmO0FBQ0E7R0FDRyxrQkFBa0I7R0FDbEIsUUFBUTtHQUNSLFdBQVc7QUFDZDtBQUNBO0dBQ0csY0FBYztBQUNqQjtBQUNBO0dBQ0csZ0JBQWdCO0dBQ2hCLDJCQUEyQjtHQUMzQixhQUFhO0dBQ2Isa0JBQWtCO0dBQ2xCLFVBQVU7R0FDVixVQUFVO0FBQ2I7QUFDQTtHQUNHLDJCQUEyQjtBQUM5QjtBQUNBO0dBQ0csa0JBQWtCO0dBQ2xCLGdCQUFnQjtHQUNoQixTQUFTO0dBQ1QsWUFBWTtHQUNaLFdBQVc7R0FDWCwyQkFBMkI7R0FDM0IsVUFBVTtBQUNiO0FBQ0E7R0FDRyxrQkFBa0I7R0FDbEIsWUFBWTtHQUNaLFVBQVU7R0FDVixVQUFVO0FBQ2I7QUFDQTtHQUNHLFdBQVc7R0FDWCxnQkFBZ0I7R0FDaEIsa0JBQWtCO0dBQ2xCLFlBQVk7R0FDWiwyQkFBMkI7R0FDM0IsVUFBVTtBQUNiO0FBQ0E7R0FDRyxXQUFXO0dBQ1gsZ0JBQWdCO0FBQ25CO0FBQ0E7R0FDRyxlQUFlO0FBQ2xCIiwiZmlsZSI6ImFwcC90bG4tZWRpdGlvbi90bG4tY3Jvc3NyZWYvdGxuLWNyb3NzcmVmLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjcGFnZSB7XG4gICB3aWR0aDogMTAwJTtcbiAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgIHRvcDogMHB4O1xuICAgbGVmdDogMHB4O1xufVxuLmdyaWQtY29udGFpbmVye1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogMjsgIC8qIENocm9tZSwgU2FmYXJpLCBPcGVyYSAqL1xuICAtbW96LWNvbHVtbi1jb3VudDogMjsgICAgIC8qIEZpcmVmb3ggKi9cbiAgY29sdW1uLWNvdW50OiAyO1xufVxuLmV4dHJhLXNwYWNlIHtcbiAgIG1hcmdpbi10b3A6ICA0NXB4O1xufVxuLnBhZ2UtY3Jvc3NyZWYtdGl0bGUge1xuICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG59XG4ucHJldmlldyB7XG4gICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICB0b3A6IDYwcHg7XG4gICB3aWR0aDogNDAwcHg7XG4gICBoZWlnaHQ6IDEwMCU7XG4gICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uaWNvbiB7XG4gICBtYXJnaW4tbGVmdDogNXB4O1xufVxuLmNlbnRlcmVkIHtcbiAgIG1hcmdpbjogYXV0bztcbn1cbi50ZXh0IHtcbiAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgIHRvcDogMHB4O1xuICAgbGVmdDogNDAwcHg7XG59XG4ucGFnZS12aWV3IHtcbiAgIG92ZXJmbG93OiBhdXRvO1xufVxuLmV4dGVybmFsIHtcbiAgIG1hcmdpbi10b3A6IDM1cHg7XG4gICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGJsdWU7XG4gICBoZWlnaHQ6IDEwMHB4O1xuICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgbGVmdDogODBweDtcbiAgIHotaW5kZXg6IDI7XG59XG4uaGlnaGxpZ2h0IHtcbiAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Ymx1ZTtcbn1cbi50ZXh0LW5hdmkge1xuICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgbWFyZ2luLXRvcDogLTNweDtcbiAgIGxlZnQ6IDBweDtcbiAgIGhlaWdodDogMzhweDtcbiAgIHdpZHRoOiAxMDAlO1xuICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRibHVlO1xuICAgei1pbmRleDogMTtcbn1cbi5jbG9zZS10ZXh0IHtcbiAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgIGhlaWdodDogMzhweDtcbiAgIHJpZ2h0OiAwcHg7XG4gICB6LWluZGV4OiAyO1xufVxuLnBhZ2UtbmF2aSB7XG4gICBmbG9hdDogbGVmdDtcbiAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICBtYXJnaW4tYm90dG9tOiAxcHg7XG4gICBoZWlnaHQ6IDM4cHg7XG4gICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGJsdWU7XG4gICB6LWluZGV4OiAyO1xufVxuLmljb24tYnV0dG9uIHtcbiAgIHdpZHRoOiAxNXB4O1xuICAgbWFyZ2luLWxlZnQ6IDNweDtcbn1cbi5kZWZhdWx0LW1vdXNlIHtcbiAgIGN1cnNvcjogZGVmYXVsdDtcbn1cbiJdfQ== */");
+/* harmony default export */ __webpack_exports__["default"] = ("#page {\n width: 100%;\n position: relative;\n top: 0px;\n left: 0px;\n}\n.grid-container{ /* Chrome, Safari, Opera */\n -moz-column-count: 2; /* Firefox */\n column-count: 2;\n}\n.extra-space {\n margin-top: 45px;\n}\n.page-crossref-title {\n margin-left: 20px;\n}\n.preview {\n position: relative;\n top: 60px;\n width: 400px;\n height: 100%;\n text-align: center;\n}\n.icon {\n margin-left: 5px;\n}\n.centered {\n margin: auto;\n}\n.text {\n position: absolute;\n top: 0px;\n left: 400px;\n}\n.page-view {\n overflow: auto;\n}\n.external {\n margin-top: 35px;\n background-color: lightblue;\n height: 100px;\n position: relative;\n left: 80px;\n z-index: 2;\n}\n.highlight {\n background-color: lightblue;\n}\n.text-navi {\n position: absolute;\n margin-top: -3px;\n left: 0px;\n height: 38px;\n width: 100%;\n background-color: lightblue;\n z-index: 1;\n}\n.close-text {\n position: absolute;\n height: 38px;\n right: 0px;\n z-index: 2;\n}\n.page-navi {\n float: left;\n margin-top: -3px;\n margin-bottom: 1px;\n height: 38px;\n background-color: lightblue;\n z-index: 2;\n}\n.icon-button {\n width: 15px;\n margin-left: 3px;\n}\n.default-mouse {\n cursor: default;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1jcm9zc3JlZi90bG4tY3Jvc3NyZWYuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLFdBQVc7R0FDWCxrQkFBa0I7R0FDbEIsUUFBUTtHQUNSLFNBQVM7QUFDWjtBQUNBLGtCQUM0QiwwQkFBMEI7RUFDcEQsb0JBQW9CLE1BQU0sWUFBWTtFQUN0QyxlQUFlO0FBQ2pCO0FBQ0E7R0FDRyxpQkFBaUI7QUFDcEI7QUFDQTtHQUNHLGlCQUFpQjtBQUNwQjtBQUNBO0dBQ0csa0JBQWtCO0dBQ2xCLFNBQVM7R0FDVCxZQUFZO0dBQ1osWUFBWTtHQUNaLGtCQUFrQjtBQUNyQjtBQUNBO0dBQ0csZ0JBQWdCO0FBQ25CO0FBQ0E7R0FDRyxZQUFZO0FBQ2Y7QUFDQTtHQUNHLGtCQUFrQjtHQUNsQixRQUFRO0dBQ1IsV0FBVztBQUNkO0FBQ0E7R0FDRyxjQUFjO0FBQ2pCO0FBQ0E7R0FDRyxnQkFBZ0I7R0FDaEIsMkJBQTJCO0dBQzNCLGFBQWE7R0FDYixrQkFBa0I7R0FDbEIsVUFBVTtHQUNWLFVBQVU7QUFDYjtBQUNBO0dBQ0csMkJBQTJCO0FBQzlCO0FBQ0E7R0FDRyxrQkFBa0I7R0FDbEIsZ0JBQWdCO0dBQ2hCLFNBQVM7R0FDVCxZQUFZO0dBQ1osV0FBVztHQUNYLDJCQUEyQjtHQUMzQixVQUFVO0FBQ2I7QUFDQTtHQUNHLGtCQUFrQjtHQUNsQixZQUFZO0dBQ1osVUFBVTtHQUNWLFVBQVU7QUFDYjtBQUNBO0dBQ0csV0FBVztHQUNYLGdCQUFnQjtHQUNoQixrQkFBa0I7R0FDbEIsWUFBWTtHQUNaLDJCQUEyQjtHQUMzQixVQUFVO0FBQ2I7QUFDQTtHQUNHLFdBQVc7R0FDWCxnQkFBZ0I7QUFDbkI7QUFDQTtHQUNHLGVBQWU7QUFDbEIiLCJmaWxlIjoidGxuLWVkaXRpb24vdGxuLWNyb3NzcmVmL3Rsbi1jcm9zc3JlZi5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI3BhZ2Uge1xuICAgd2lkdGg6IDEwMCU7XG4gICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICB0b3A6IDBweDtcbiAgIGxlZnQ6IDBweDtcbn1cbi5ncmlkLWNvbnRhaW5lcntcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6IDI7ICAvKiBDaHJvbWUsIFNhZmFyaSwgT3BlcmEgKi9cbiAgLW1vei1jb2x1bW4tY291bnQ6IDI7ICAgICAvKiBGaXJlZm94ICovXG4gIGNvbHVtbi1jb3VudDogMjtcbn1cbi5leHRyYS1zcGFjZSB7XG4gICBtYXJnaW4tdG9wOiAgNDVweDtcbn1cbi5wYWdlLWNyb3NzcmVmLXRpdGxlIHtcbiAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xufVxuLnByZXZpZXcge1xuICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgdG9wOiA2MHB4O1xuICAgd2lkdGg6IDQwMHB4O1xuICAgaGVpZ2h0OiAxMDAlO1xuICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmljb24ge1xuICAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cbi5jZW50ZXJlZCB7XG4gICBtYXJnaW46IGF1dG87XG59XG4udGV4dCB7XG4gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICB0b3A6IDBweDtcbiAgIGxlZnQ6IDQwMHB4O1xufVxuLnBhZ2UtdmlldyB7XG4gICBvdmVyZmxvdzogYXV0bztcbn1cbi5leHRlcm5hbCB7XG4gICBtYXJnaW4tdG9wOiAzNXB4O1xuICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRibHVlO1xuICAgaGVpZ2h0OiAxMDBweDtcbiAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgIGxlZnQ6IDgwcHg7XG4gICB6LWluZGV4OiAyO1xufVxuLmhpZ2hsaWdodCB7XG4gICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGJsdWU7XG59XG4udGV4dC1uYXZpIHtcbiAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICBsZWZ0OiAwcHg7XG4gICBoZWlnaHQ6IDM4cHg7XG4gICB3aWR0aDogMTAwJTtcbiAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Ymx1ZTtcbiAgIHotaW5kZXg6IDE7XG59XG4uY2xvc2UtdGV4dCB7XG4gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICBoZWlnaHQ6IDM4cHg7XG4gICByaWdodDogMHB4O1xuICAgei1pbmRleDogMjtcbn1cbi5wYWdlLW5hdmkge1xuICAgZmxvYXQ6IGxlZnQ7XG4gICBtYXJnaW4tdG9wOiAtM3B4O1xuICAgbWFyZ2luLWJvdHRvbTogMXB4O1xuICAgaGVpZ2h0OiAzOHB4O1xuICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRibHVlO1xuICAgei1pbmRleDogMjtcbn1cbi5pY29uLWJ1dHRvbiB7XG4gICB3aWR0aDogMTVweDtcbiAgIG1hcmdpbi1sZWZ0OiAzcHg7XG59XG4uZGVmYXVsdC1tb3VzZSB7XG4gICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4iXX0= */");
/***/ }),
/***/ "./src/app/tln-edition/tln-crossref/tln-crossref.component.ts":
/*!********************************************************************!*\
!*** ./src/app/tln-edition/tln-crossref/tln-crossref.component.ts ***!
\********************************************************************/
/*! exports provided: TlnCrossrefComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnCrossrefComponent", function() { return TlnCrossrefComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../constants */ "./src/app/tln-edition/constants.ts");
/* harmony import */ var _datatypes_navigation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../datatypes/navigation */ "./src/app/tln-edition/datatypes/navigation.ts");
/* harmony import */ var _datatypes_manuscript__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../datatypes/manuscript */ "./src/app/tln-edition/datatypes/manuscript.ts");
/* harmony import */ var _datatypes_text_version__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../datatypes/text_version */ "./src/app/tln-edition/datatypes/text_version.ts");
/* harmony import */ var _route_updater__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../route-updater */ "./src/app/tln-edition/route-updater.ts");
/* harmony import */ var _data_handler__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../data_handler */ "./src/app/tln-edition/data_handler.ts");
/* harmony import */ var _services__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../services */ "./src/app/tln-edition/services.ts");
let TlnCrossrefComponent = class TlnCrossrefComponent extends _route_updater__WEBPACK_IMPORTED_MODULE_7__["RouteUpdater"] {
constructor(pageViewService, localQueryService, router, activatedRoute) {
super(router, activatedRoute);
this.pageViewService = pageViewService;
this.localQueryService = localQueryService;
this.router = router;
this.activatedRoute = activatedRoute;
this.PAGE_CONTEXT_VIEW = _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_PAGE_PARAM"];
this.MANUSCRIPT_CONTEXT_VIEW = _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_MANUSCRIPT_PARAM"];
this.zoomFactor = 1;
this.dataHandler = new _data_handler__WEBPACK_IMPORTED_MODULE_8__["DataHandler"](this);
this.textVersions = [];
this.geneticOrders = [];
this.contextView = this.PAGE_CONTEXT_VIEW;
this.fullscreen = false;
this.pagesWithGeneticOrder = [];
this.max_width = -1;
this.max_height = -1;
this.each_version_height = -1;
this.selectedLines = [];
this.selectedTextVersions = [];
this.increment = 0.333;
this.decrement = this.increment * -1;
this.margin_width = 280;
this.initialPreviewWidth = 400;
this.previewWidth = this.initialPreviewWidth;
this.currentRoute = _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_CROSSREF_ROUTE"];
this.mapping = { findText: { param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_FIND_PARAM"], type: "string" },
fullscreen: { param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_FULLSCREEN_PARAM"], type: "boolean" },
contextView: { param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_CONTEXT_VIEW_PARAM"], type: "string" },
current_iri: { param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_PAGE_PARAM"], type: "string" },
current_manuscript_unity: { param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_MANUSCRIPT_PARAM"], type: "string" },
current_genetic_order_iri: { param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_TEXT_GENETIC_ORDER_PARAM"], type: "string" },
selectedLines: { param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_SELECTED_LINES_PARAM"], type: "string" },
zoomFactor: { param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_ZOOM_PARAM"], type: "number" } };
this.selectedViewOption = _constants__WEBPACK_IMPORTED_MODULE_3__["VIEW_OPTIONS"].TRANSKRIPTION;
this.updating = false;
this.viewOptions = [_constants__WEBPACK_IMPORTED_MODULE_3__["VIEW_OPTIONS"].TRANSKRIPTION, _constants__WEBPACK_IMPORTED_MODULE_3__["VIEW_OPTIONS"].FAKSIMILE];
}
ngOnInit() {
if (screen.availWidth - this.initialPreviewWidth - this.margin_width > 1000) {
this.previewWidth = screen.availWidth - this.initialPreviewWidth - 1000;
}
this.max_width = screen.availWidth - this.previewWidth - this.margin_width;
this.max_height = screen.availHeight - 200;
let tlnQueryService = (this.queryService != null) ? this.queryService : this.localQueryService;
this.dataHandler.addHandler('page_content', ['current_page', 'geneticOrders']);
this.dataHandler.addHandler('manuscript_content', ['current_manuscript', 'pagesWithGeneticOrder']);
this.dataHandler.addHandler('current_manuscript', { 'handler': _datatypes_manuscript__WEBPACK_IMPORTED_MODULE_5__["ManuscriptStub"] });
this.dataHandler.addHandler('current_page', { 'handler': _datatypes_navigation__WEBPACK_IMPORTED_MODULE_4__["TlnNavigationPage"] });
this.dataHandler.addHandler('geneticOrders', { 'handler': _datatypes_text_version__WEBPACK_IMPORTED_MODULE_6__["TlnTextGeneticOrder"] });
this.dataHandler.addHandler('pagesWithGeneticOrder', { 'handler': _datatypes_text_version__WEBPACK_IMPORTED_MODULE_6__["TlnPageWithTextGeneticOrder"] });
this.dataHandler.addHandler('textVersions', { 'handler': _datatypes_text_version__WEBPACK_IMPORTED_MODULE_6__["TlnStandaloneTextVersion"], 'process_data': this });
this.dataHandler.setQueryService(tlnQueryService);
this.dataHandler.start_processing.subscribe((started) => {
this.updating = true;
});
this.dataHandler.processing_finished.subscribe((finished) => {
this.updating = false;
});
super.ngOnInit();
}
processData() {
this.selectedTextVersions = [];
let index = 0;
while (index < this.textVersions.length && this.selectedTextVersions.length < 1) {
if (this.textVersions[index].textUnities != undefined && this.textVersions[index].textUnities.length > 0) {
this.selectedTextVersions.push(this.textVersions[index]);
}
index++;
}
}
addOrRemove(textVersion) {
let index = this.selectedTextVersions.indexOf(textVersion);
if (index == -1) {
this.selectedTextVersions.push(textVersion);
}
else {
this.selectedTextVersions.splice(index, 1);
}
this.each_version_height = (this.selectedTextVersions.length > 0) ? this.max_height / this.selectedTextVersions.length : this.max_height;
}
clearFindText() {
this.findText = '';
this.updateParams();
}
getButtonTitle(textVersion) {
return (this.selectedTextVersions.indexOf(textVersion) == -1) ? 'Textstelle anzeigen' : 'Textstelle ausblenden';
}
readParams(params) {
let old_genetic_order_iri = this.current_genetic_order_iri;
let old_current_iri = this.current_iri;
let old_manuscript_unity = this.current_manuscript_unity;
let old_context_view = this.contextView;
super.readParams(params);
if (this.dataHandler.ready) {
if (this.contextView == this.PAGE_CONTEXT_VIEW
&& (this.contextView != old_context_view || (this.current_iri != null && this.current_iri != old_current_iri))) {
this.dataHandler.resetData('page_content');
this.dataHandler.getData('page_content', this.current_iri);
}
if (this.contextView == this.MANUSCRIPT_CONTEXT_VIEW
&& (this.contextView != old_context_view || (this.current_manuscript_unity != null && this.current_manuscript_unity != old_manuscript_unity))) {
this.dataHandler.resetData('manuscript_content');
this.dataHandler.getData('manuscript_content', this.current_manuscript_unity);
}
if (this.contextView == this.PAGE_CONTEXT_VIEW
&& (this.contextView != old_context_view ||
(this.current_genetic_order_iri != null && (this.textVersions.length == 0 || this.current_genetic_order_iri != old_genetic_order_iri)))) {
this.dataHandler.resetData('textVersions');
this.dataHandler.getData('textVersions', this.current_genetic_order_iri);
}
}
}
openInViewer(pageIri, belongsToPageIri, manuscriptIri, launch) {
this.current_iri = (belongsToPageIri != null) ? belongsToPageIri : pageIri;
if (manuscriptIri != null) {
this.current_manuscript_unity = manuscriptIri;
}
this.currentRoute = _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_VIEWER_ROUTE"];
this.updateParams(launch);
}
setZoomFactor(newZoomFactor) {
if (newZoomFactor > 0) {
this.zoomFactor = Math.round(newZoomFactor * 100) / 100;
}
else {
this.zoomFactor = this.zoomFactor / 2;
}
this.updateParams();
}
};
TlnCrossrefComponent.ctorParameters = () => [
{ type: _services__WEBPACK_IMPORTED_MODULE_9__["PageViewService"] },
{ type: _services__WEBPACK_IMPORTED_MODULE_9__["TlnQueryService"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"] }
];
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TlnCrossrefComponent.prototype, "queryService", void 0);
TlnCrossrefComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'tln-crossref',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./tln-crossref.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/tln-crossref.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./tln-crossref.component.css */ "./src/app/tln-edition/tln-crossref/tln-crossref.component.css")).default]
})
], TlnCrossrefComponent);
/***/ }),
/***/ "./src/app/tln-edition/tln-crossref/version-view/version-view.component.css":
/*!**********************************************************************************!*\
!*** ./src/app/tln-edition/tln-crossref/version-view/version-view.component.css ***!
\**********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = (".highlight {\n text-decoration: underline;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tY3Jvc3NyZWYvdmVyc2lvbi12aWV3L3ZlcnNpb24tdmlldy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0dBQ0csMEJBQTBCO0FBQzdCIiwiZmlsZSI6ImFwcC90bG4tZWRpdGlvbi90bG4tY3Jvc3NyZWYvdmVyc2lvbi12aWV3L3ZlcnNpb24tdmlldy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmhpZ2hsaWdodCB7XG4gICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbiJdfQ== */");
+/* harmony default export */ __webpack_exports__["default"] = (".highlight {\n text-decoration: underline;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1jcm9zc3JlZi92ZXJzaW9uLXZpZXcvdmVyc2lvbi12aWV3LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRywwQkFBMEI7QUFDN0IiLCJmaWxlIjoidGxuLWVkaXRpb24vdGxuLWNyb3NzcmVmL3ZlcnNpb24tdmlldy92ZXJzaW9uLXZpZXcuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5oaWdobGlnaHQge1xuICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4iXX0= */");
/***/ }),
/***/ "./src/app/tln-edition/tln-crossref/version-view/version-view.component.ts":
/*!*********************************************************************************!*\
!*** ./src/app/tln-edition/tln-crossref/version-view/version-view.component.ts ***!
\*********************************************************************************/
/*! exports provided: VersionViewComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VersionViewComponent", function() { return VersionViewComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
let VersionViewComponent = class VersionViewComponent {
constructor() { }
ngOnInit() {
}
};
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], VersionViewComponent.prototype, "version", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], VersionViewComponent.prototype, "current_iri", void 0);
VersionViewComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'version-view',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./version-view.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/version-view/version-view.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./version-view.component.css */ "./src/app/tln-edition/tln-crossref/version-view/version-view.component.css")).default]
})
], VersionViewComponent);
/***/ }),
/***/ "./src/app/tln-edition/tln-edition.module.ts":
/*!***************************************************!*\
!*** ./src/app/tln-edition/tln-edition.module.ts ***!
\***************************************************/
/*! exports provided: TlnEditionModule */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnEditionModule", function() { return TlnEditionModule; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/platform-browser */ "./node_modules/@angular/platform-browser/fesm2015/platform-browser.js");
/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/fesm2015/common.js");
/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/fesm2015/forms.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/material */ "./node_modules/@angular/material/esm2015/material.js");
/* harmony import */ var _lib_ngx_mat_standoff_markup_module__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../lib/ngx-mat-standoff-markup.module */ "./src/app/lib/ngx-mat-standoff-markup.module.ts");
/* harmony import */ var _page_view_page_view_service__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../page-view/page-view.service */ "./src/app/page-view/page-view.service.ts");
/* harmony import */ var _page_view_page_view_module__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../page-view/page-view.module */ "./src/app/page-view/page-view.module.ts");
/* harmony import */ var _tln_page_view_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./tln-page-view.component */ "./src/app/tln-edition/tln-page-view.component.ts");
/* harmony import */ var _tln_query_service__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./tln-query.service */ "./src/app/tln-edition/tln-query.service.ts");
/* harmony import */ var _tooltip_tool_tip_component__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./tooltip/tool-tip.component */ "./src/app/tln-edition/tooltip/tool-tip.component.ts");
/* harmony import */ var _tln_viewer_navigation_tln_viewer_navigation_component__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./tln-viewer-navigation/tln-viewer-navigation.component */ "./src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.ts");
/* harmony import */ var _tln_information_tln_information_component__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./tln-information/tln-information.component */ "./src/app/tln-edition/tln-information/tln-information.component.ts");
/* harmony import */ var _tln_crossref_tln_crossref_component__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./tln-crossref/tln-crossref.component */ "./src/app/tln-edition/tln-crossref/tln-crossref.component.ts");
/* harmony import */ var _tln_crossref_version_view_version_view_component__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./tln-crossref/version-view/version-view.component */ "./src/app/tln-edition/tln-crossref/version-view/version-view.component.ts");
/* harmony import */ var _tln_crossref_page_version_view_page_version_view_component__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./tln-crossref/page-version-view/page-version-view.component */ "./src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.ts");
/* harmony import */ var _tln_crossref_navigation_navigation_component__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./tln-crossref/navigation/navigation.component */ "./src/app/tln-edition/tln-crossref/navigation/navigation.component.ts");
/* harmony import */ var _tln_crossref_page_version_view_filter_pipe__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./tln-crossref/page-version-view/filter.pipe */ "./src/app/tln-edition/tln-crossref/page-version-view/filter.pipe.ts");
/* harmony import */ var _tln_crossref_page_version_view_tln_page_version_view_component__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./tln-crossref/page-version-view/tln-page-version-view.component */ "./src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.ts");
/* harmony import */ var _tln_manuscript_view_tln_manuscript_view_component__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./tln-manuscript-view/tln-manuscript-view.component */ "./src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.ts");
/* harmony import */ var _tln_fulltext_tln_fulltext_component__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./tln-fulltext/tln-fulltext.component */ "./src/app/tln-edition/tln-fulltext/tln-fulltext.component.ts");
/* harmony import */ var _tln_fulltext_navigation_navigation_component__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./tln-fulltext/navigation/navigation.component */ "./src/app/tln-edition/tln-fulltext/navigation/navigation.component.ts");
/* harmony import */ var _tln_fulltext_result_pipe_pipe__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./tln-fulltext/result-pipe.pipe */ "./src/app/tln-edition/tln-fulltext/result-pipe.pipe.ts");
/* harmony import */ var _tln_navigation_elements_search_component__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./tln-navigation-elements/search.component */ "./src/app/tln-edition/tln-navigation-elements/search.component.ts");
/* harmony import */ var _tln_navigation_elements_toggle_navigation_component__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./tln-navigation-elements/toggle-navigation.component */ "./src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.ts");
/* harmony import */ var _tln_navigation_elements_zoom_component__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./tln-navigation-elements/zoom.component */ "./src/app/tln-edition/tln-navigation-elements/zoom.component.ts");
/* harmony import */ var _tln_navigation_elements_zoom_pipe__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./tln-navigation-elements/zoom.pipe */ "./src/app/tln-edition/tln-navigation-elements/zoom.pipe.ts");
/* harmony import */ var _tln_navigation_elements_open_in_viewer_component__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./tln-navigation-elements/open-in-viewer.component */ "./src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.ts");
/* harmony import */ var _debug_pipe__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./debug.pipe */ "./src/app/tln-edition/debug.pipe.ts");
/* harmony import */ var _tln_height_directive__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./tln-height.directive */ "./src/app/tln-edition/tln-height.directive.ts");
/* harmony import */ var _tln_fulltext_page_result_filter_pipe__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./tln-fulltext/page-result-filter.pipe */ "./src/app/tln-edition/tln-fulltext/page-result-filter.pipe.ts");
let TlnEditionModule = class TlnEditionModule {
};
TlnEditionModule = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_4__["NgModule"])({
declarations: [_tln_fulltext_navigation_navigation_component__WEBPACK_IMPORTED_MODULE_22__["FulltextNavigationComponent"], _tln_page_view_component__WEBPACK_IMPORTED_MODULE_9__["TlnPageViewComponent"], _tooltip_tool_tip_component__WEBPACK_IMPORTED_MODULE_11__["ToolTipComponent"], _tln_viewer_navigation_tln_viewer_navigation_component__WEBPACK_IMPORTED_MODULE_12__["TlnViewerNavigation"], _tln_information_tln_information_component__WEBPACK_IMPORTED_MODULE_13__["TlnInformationComponent"], _tln_crossref_tln_crossref_component__WEBPACK_IMPORTED_MODULE_14__["TlnCrossrefComponent"], _tln_crossref_version_view_version_view_component__WEBPACK_IMPORTED_MODULE_15__["VersionViewComponent"], _tln_crossref_page_version_view_page_version_view_component__WEBPACK_IMPORTED_MODULE_16__["PageVersionViewComponent"], _tln_crossref_navigation_navigation_component__WEBPACK_IMPORTED_MODULE_17__["NavigationComponent"], _tln_crossref_page_version_view_filter_pipe__WEBPACK_IMPORTED_MODULE_18__["FilterPipe"], _tln_crossref_page_version_view_tln_page_version_view_component__WEBPACK_IMPORTED_MODULE_19__["TlnPageVersionViewComponent"], _tln_manuscript_view_tln_manuscript_view_component__WEBPACK_IMPORTED_MODULE_20__["TlnManuscriptViewComponent"], _tln_fulltext_tln_fulltext_component__WEBPACK_IMPORTED_MODULE_21__["TlnFulltextComponent"], _tln_fulltext_result_pipe_pipe__WEBPACK_IMPORTED_MODULE_23__["ResultPipePipe"], _tln_navigation_elements_search_component__WEBPACK_IMPORTED_MODULE_24__["SearchComponent"], _tln_navigation_elements_toggle_navigation_component__WEBPACK_IMPORTED_MODULE_25__["ToggleNavigationComponent"], _tln_navigation_elements_zoom_component__WEBPACK_IMPORTED_MODULE_26__["ZoomComponent"], _tln_navigation_elements_zoom_pipe__WEBPACK_IMPORTED_MODULE_27__["ZoomPipe"], _tln_navigation_elements_open_in_viewer_component__WEBPACK_IMPORTED_MODULE_28__["OpenInViewerComponent"], _debug_pipe__WEBPACK_IMPORTED_MODULE_29__["DebugPipe"], _tln_height_directive__WEBPACK_IMPORTED_MODULE_30__["TlnHeightDirective"], _tln_fulltext_page_result_filter_pipe__WEBPACK_IMPORTED_MODULE_31__["PageResultFilterPipe"]],
imports: [
_angular_material__WEBPACK_IMPORTED_MODULE_5__["MatBottomSheetModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_5__["MatButtonModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_5__["MatButtonToggleModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_5__["MatCardModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_5__["MatCheckboxModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_5__["MatDialogModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_5__["MatExpansionModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_5__["MatFormFieldModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_5__["MatIconModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_5__["MatInputModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_5__["MatListModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_5__["MatMenuModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_5__["MatProgressSpinnerModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_5__["MatPaginatorModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_5__["MatRadioModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_5__["MatSelectModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_5__["MatSidenavModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_5__["MatSortModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_5__["MatTableModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_5__["MatTabsModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_5__["MatToolbarModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_5__["MatTooltipModule"],
_angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__["BrowserModule"],
_angular_common__WEBPACK_IMPORTED_MODULE_2__["CommonModule"],
_angular_forms__WEBPACK_IMPORTED_MODULE_3__["FormsModule"],
_lib_ngx_mat_standoff_markup_module__WEBPACK_IMPORTED_MODULE_6__["NgxMatStandoffMarkupModule"],
_page_view_page_view_module__WEBPACK_IMPORTED_MODULE_8__["PageViewModule"]
],
exports: [
_debug_pipe__WEBPACK_IMPORTED_MODULE_29__["DebugPipe"],
_tln_fulltext_navigation_navigation_component__WEBPACK_IMPORTED_MODULE_22__["FulltextNavigationComponent"],
_tln_crossref_navigation_navigation_component__WEBPACK_IMPORTED_MODULE_17__["NavigationComponent"],
_tooltip_tool_tip_component__WEBPACK_IMPORTED_MODULE_11__["ToolTipComponent"],
_tln_crossref_tln_crossref_component__WEBPACK_IMPORTED_MODULE_14__["TlnCrossrefComponent"],
_tln_height_directive__WEBPACK_IMPORTED_MODULE_30__["TlnHeightDirective"],
_tln_manuscript_view_tln_manuscript_view_component__WEBPACK_IMPORTED_MODULE_20__["TlnManuscriptViewComponent"],
_tln_page_view_component__WEBPACK_IMPORTED_MODULE_9__["TlnPageViewComponent"],
_tln_viewer_navigation_tln_viewer_navigation_component__WEBPACK_IMPORTED_MODULE_12__["TlnViewerNavigation"]
],
providers: [
_page_view_page_view_service__WEBPACK_IMPORTED_MODULE_7__["PageViewService"],
_tln_query_service__WEBPACK_IMPORTED_MODULE_10__["TlnQueryService"]
],
entryComponents: [_tln_information_tln_information_component__WEBPACK_IMPORTED_MODULE_13__["TlnInformationComponent"]]
})
], TlnEditionModule);
/***/ }),
/***/ "./src/app/tln-edition/tln-fulltext/navigation/navigation.component.css":
/*!******************************************************************************!*\
!*** ./src/app/tln-edition/tln-fulltext/navigation/navigation.component.css ***!
\******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = ("#navi {\n width: 100%;\n height: 50px;\n margin: 0;\n padding: 0;\n white-space: nowrap;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tZnVsbHRleHQvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxXQUFXO0dBQ1gsWUFBWTtHQUNaLFNBQVM7R0FDVCxVQUFVO0dBQ1YsbUJBQW1CO0FBQ3RCIiwiZmlsZSI6ImFwcC90bG4tZWRpdGlvbi90bG4tZnVsbHRleHQvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjbmF2aSB7XG4gICB3aWR0aDogMTAwJTtcbiAgIGhlaWdodDogNTBweDtcbiAgIG1hcmdpbjogMDtcbiAgIHBhZGRpbmc6IDA7XG4gICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuIl19 */");
+/* harmony default export */ __webpack_exports__["default"] = ("#navi {\n width: 100%;\n height: 50px;\n margin: 0;\n padding: 0;\n white-space: nowrap;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1mdWxsdGV4dC9uYXZpZ2F0aW9uL25hdmlnYXRpb24uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLFdBQVc7R0FDWCxZQUFZO0dBQ1osU0FBUztHQUNULFVBQVU7R0FDVixtQkFBbUI7QUFDdEIiLCJmaWxlIjoidGxuLWVkaXRpb24vdGxuLWZ1bGx0ZXh0L25hdmlnYXRpb24vbmF2aWdhdGlvbi5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI25hdmkge1xuICAgd2lkdGg6IDEwMCU7XG4gICBoZWlnaHQ6IDUwcHg7XG4gICBtYXJnaW46IDA7XG4gICBwYWRkaW5nOiAwO1xuICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiJdfQ== */");
/***/ }),
/***/ "./src/app/tln-edition/tln-fulltext/navigation/navigation.component.ts":
/*!*****************************************************************************!*\
!*** ./src/app/tln-edition/tln-fulltext/navigation/navigation.component.ts ***!
\*****************************************************************************/
/*! exports provided: FulltextNavigationComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FulltextNavigationComponent", function() { return FulltextNavigationComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
let FulltextNavigationComponent = class FulltextNavigationComponent {
constructor() { }
ngOnInit() {
}
};
FulltextNavigationComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'fulltext-navigation',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./navigation.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-fulltext/navigation/navigation.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./navigation.component.css */ "./src/app/tln-edition/tln-fulltext/navigation/navigation.component.css")).default]
})
], FulltextNavigationComponent);
/***/ }),
/***/ "./src/app/tln-edition/tln-fulltext/page-result-filter.pipe.ts":
/*!*********************************************************************!*\
!*** ./src/app/tln-edition/tln-fulltext/page-result-filter.pipe.ts ***!
\*********************************************************************/
/*! exports provided: PageResultFilterPipe */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PageResultFilterPipe", function() { return PageResultFilterPipe; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
let PageResultFilterPipe = class PageResultFilterPipe {
transform(results, range) {
if (results.length <= range.start) {
return results;
}
return results.slice(range.start, range.end);
}
};
PageResultFilterPipe = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Pipe"])({
name: 'pageResultFilter'
})
], PageResultFilterPipe);
/***/ }),
/***/ "./src/app/tln-edition/tln-fulltext/result-pipe.pipe.ts":
/*!**************************************************************!*\
!*** ./src/app/tln-edition/tln-fulltext/result-pipe.pipe.ts ***!
\**************************************************************/
/*! exports provided: ResultPipePipe */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ResultPipePipe", function() { return ResultPipePipe; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
let ResultPipePipe = class ResultPipePipe {
transform(pages) {
if (pages.length == 0) {
return 'Keine Treffer';
}
let pageResult = (pages.length > 1) ? pages.length + ' Seiten' : pages[0].title + ' ' + pages[0].number;
let numFoundWords = 0;
pages.forEach(page => page.results.forEach(result => numFoundWords++));
return numFoundWords + ' Treffer auf ' + pageResult;
}
};
ResultPipePipe = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Pipe"])({
name: 'resultPipe'
})
], ResultPipePipe);
/***/ }),
/***/ "./src/app/tln-edition/tln-fulltext/tln-fulltext.component.css":
/*!*********************************************************************!*\
!*** ./src/app/tln-edition/tln-fulltext/tln-fulltext.component.css ***!
\*********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = ("#page {\n width: 98%;\n position: relative;\n top: 0px;\n left: 0px;\n height: 100%;\n overflow: visible;\n}\n.icon-button {\n width: 15px;\n margin-left: 3px;\n}\n.page-navi {\n float: left;\n margin-top: -3px;\n margin-bottom: 1px;\n height: 38px;\n background-color: lightblue;\n z-index: 2;\n}\n.default-mouse {\n cursor: default;\n}\n.small-grey {\n color: lightgrey;\n font-size: 80%;\n}\n.text {\n position: absolute;\n top: 10px;\n left: 500px;\n}\n.search {\n position: relative;\n top: 60px;\n width: 500px;\n height: 100%;\n text-align: center;\n margin-right: 20px;\n}\n.extra-space {\n margin-top: 45px;\n}\n.title {\n text-align: left;\n margin-left: 20px;\n}\n.form {\n width: 95%;\n}\n.full-width {\n min-width: 150px;\n max-width: 500px;\n width: 80%;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tZnVsbHRleHQvdGxuLWZ1bGx0ZXh0LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxVQUFVO0dBQ1Ysa0JBQWtCO0dBQ2xCLFFBQVE7R0FDUixTQUFTO0dBQ1QsWUFBWTtHQUNaLGlCQUFpQjtBQUNwQjtBQUNBO0dBQ0csV0FBVztHQUNYLGdCQUFnQjtBQUNuQjtBQUNBO0dBQ0csV0FBVztHQUNYLGdCQUFnQjtHQUNoQixrQkFBa0I7R0FDbEIsWUFBWTtHQUNaLDJCQUEyQjtHQUMzQixVQUFVO0FBQ2I7QUFDQTtHQUNHLGVBQWU7QUFDbEI7QUFDQTtHQUNHLGdCQUFnQjtHQUNoQixjQUFjO0FBQ2pCO0FBQ0E7R0FDRyxrQkFBa0I7R0FDbEIsU0FBUztHQUNULFdBQVc7QUFDZDtBQUNBO0dBQ0csa0JBQWtCO0dBQ2xCLFNBQVM7R0FDVCxZQUFZO0dBQ1osWUFBWTtHQUNaLGtCQUFrQjtHQUNsQixrQkFBa0I7QUFDckI7QUFDQTtHQUNHLGlCQUFpQjtBQUNwQjtBQUNBO0dBQ0csZ0JBQWdCO0dBQ2hCLGlCQUFpQjtBQUNwQjtBQUNBO0VBQ0UsVUFBVTtBQUNaO0FBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsZ0JBQWdCO0VBQ2hCLFVBQVU7QUFDWiIsImZpbGUiOiJhcHAvdGxuLWVkaXRpb24vdGxuLWZ1bGx0ZXh0L3Rsbi1mdWxsdGV4dC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI3BhZ2Uge1xuICAgd2lkdGg6IDk4JTtcbiAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgIHRvcDogMHB4O1xuICAgbGVmdDogMHB4O1xuICAgaGVpZ2h0OiAxMDAlO1xuICAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4uaWNvbi1idXR0b24ge1xuICAgd2lkdGg6IDE1cHg7XG4gICBtYXJnaW4tbGVmdDogM3B4O1xufVxuLnBhZ2UtbmF2aSB7XG4gICBmbG9hdDogbGVmdDtcbiAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICBtYXJnaW4tYm90dG9tOiAxcHg7XG4gICBoZWlnaHQ6IDM4cHg7XG4gICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGJsdWU7XG4gICB6LWluZGV4OiAyO1xufVxuLmRlZmF1bHQtbW91c2Uge1xuICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLnNtYWxsLWdyZXkge1xuICAgY29sb3I6IGxpZ2h0Z3JleTtcbiAgIGZvbnQtc2l6ZTogODAlO1xufVxuLnRleHQge1xuICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgdG9wOiAxMHB4O1xuICAgbGVmdDogNTAwcHg7XG59XG4uc2VhcmNoIHtcbiAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgIHRvcDogNjBweDtcbiAgIHdpZHRoOiA1MDBweDtcbiAgIGhlaWdodDogMTAwJTtcbiAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgIG1hcmdpbi1yaWdodDogMjBweDtcbn1cbi5leHRyYS1zcGFjZSB7XG4gICBtYXJnaW4tdG9wOiAgNDVweDtcbn1cbi50aXRsZSB7XG4gICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG59XG4uZm9ybSB7XG4gIHdpZHRoOiA5NSU7XG59XG4uZnVsbC13aWR0aCB7XG4gIG1pbi13aWR0aDogMTUwcHg7XG4gIG1heC13aWR0aDogNTAwcHg7XG4gIHdpZHRoOiA4MCU7XG59XG4iXX0= */");
+/* harmony default export */ __webpack_exports__["default"] = ("#page {\n width: 98%;\n position: relative;\n top: 0px;\n left: 0px;\n height: 100%;\n overflow: visible;\n}\n.icon-button {\n width: 15px;\n margin-left: 3px;\n}\n.page-navi {\n float: left;\n margin-top: -3px;\n margin-bottom: 1px;\n height: 38px;\n background-color: lightblue;\n z-index: 2;\n}\n.default-mouse {\n cursor: default;\n}\n.small-grey {\n color: lightgrey;\n font-size: 80%;\n}\n.text {\n position: absolute;\n top: 10px;\n left: 500px;\n}\n.search {\n position: relative;\n top: 60px;\n width: 500px;\n height: 100%;\n text-align: center;\n margin-right: 20px;\n}\n.extra-space {\n margin-top: 45px;\n}\n.title {\n text-align: left;\n margin-left: 20px;\n}\n.form {\n width: 95%;\n}\n.full-width {\n min-width: 150px;\n max-width: 500px;\n width: 80%;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1mdWxsdGV4dC90bG4tZnVsbHRleHQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLFVBQVU7R0FDVixrQkFBa0I7R0FDbEIsUUFBUTtHQUNSLFNBQVM7R0FDVCxZQUFZO0dBQ1osaUJBQWlCO0FBQ3BCO0FBQ0E7R0FDRyxXQUFXO0dBQ1gsZ0JBQWdCO0FBQ25CO0FBQ0E7R0FDRyxXQUFXO0dBQ1gsZ0JBQWdCO0dBQ2hCLGtCQUFrQjtHQUNsQixZQUFZO0dBQ1osMkJBQTJCO0dBQzNCLFVBQVU7QUFDYjtBQUNBO0dBQ0csZUFBZTtBQUNsQjtBQUNBO0dBQ0csZ0JBQWdCO0dBQ2hCLGNBQWM7QUFDakI7QUFDQTtHQUNHLGtCQUFrQjtHQUNsQixTQUFTO0dBQ1QsV0FBVztBQUNkO0FBQ0E7R0FDRyxrQkFBa0I7R0FDbEIsU0FBUztHQUNULFlBQVk7R0FDWixZQUFZO0dBQ1osa0JBQWtCO0dBQ2xCLGtCQUFrQjtBQUNyQjtBQUNBO0dBQ0csaUJBQWlCO0FBQ3BCO0FBQ0E7R0FDRyxnQkFBZ0I7R0FDaEIsaUJBQWlCO0FBQ3BCO0FBQ0E7RUFDRSxVQUFVO0FBQ1o7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIsVUFBVTtBQUNaIiwiZmlsZSI6InRsbi1lZGl0aW9uL3Rsbi1mdWxsdGV4dC90bG4tZnVsbHRleHQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiNwYWdlIHtcbiAgIHdpZHRoOiA5OCU7XG4gICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICB0b3A6IDBweDtcbiAgIGxlZnQ6IDBweDtcbiAgIGhlaWdodDogMTAwJTtcbiAgIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLmljb24tYnV0dG9uIHtcbiAgIHdpZHRoOiAxNXB4O1xuICAgbWFyZ2luLWxlZnQ6IDNweDtcbn1cbi5wYWdlLW5hdmkge1xuICAgZmxvYXQ6IGxlZnQ7XG4gICBtYXJnaW4tdG9wOiAtM3B4O1xuICAgbWFyZ2luLWJvdHRvbTogMXB4O1xuICAgaGVpZ2h0OiAzOHB4O1xuICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRibHVlO1xuICAgei1pbmRleDogMjtcbn1cbi5kZWZhdWx0LW1vdXNlIHtcbiAgIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5zbWFsbC1ncmV5IHtcbiAgIGNvbG9yOiBsaWdodGdyZXk7XG4gICBmb250LXNpemU6IDgwJTtcbn1cbi50ZXh0IHtcbiAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgIHRvcDogMTBweDtcbiAgIGxlZnQ6IDUwMHB4O1xufVxuLnNlYXJjaCB7XG4gICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICB0b3A6IDYwcHg7XG4gICB3aWR0aDogNTAwcHg7XG4gICBoZWlnaHQ6IDEwMCU7XG4gICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG4uZXh0cmEtc3BhY2Uge1xuICAgbWFyZ2luLXRvcDogIDQ1cHg7XG59XG4udGl0bGUge1xuICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xufVxuLmZvcm0ge1xuICB3aWR0aDogOTUlO1xufVxuLmZ1bGwtd2lkdGgge1xuICBtaW4td2lkdGg6IDE1MHB4O1xuICBtYXgtd2lkdGg6IDUwMHB4O1xuICB3aWR0aDogODAlO1xufVxuIl19 */");
/***/ }),
/***/ "./src/app/tln-edition/tln-fulltext/tln-fulltext.component.ts":
/*!********************************************************************!*\
!*** ./src/app/tln-edition/tln-fulltext/tln-fulltext.component.ts ***!
\********************************************************************/
/*! exports provided: TlnFulltextComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnFulltextComponent", function() { return TlnFulltextComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../constants */ "./src/app/tln-edition/constants.ts");
/* harmony import */ var _data_handler__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../data_handler */ "./src/app/tln-edition/data_handler.ts");
/* harmony import */ var _datatypes_search__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../datatypes/search */ "./src/app/tln-edition/datatypes/search.ts");
/* harmony import */ var _route_updater__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../route-updater */ "./src/app/tln-edition/route-updater.ts");
/* harmony import */ var _services__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../services */ "./src/app/tln-edition/services.ts");
//TODO: german language support for paginator, see: https://github.com/ngx-translate/core
let TlnFulltextComponent = class TlnFulltextComponent extends _route_updater__WEBPACK_IMPORTED_MODULE_6__["RouteUpdater"] {
constructor(tlnQueryService, router, activatedRoute) {
super(router, activatedRoute);
this.tlnQueryService = tlnQueryService;
this.router = router;
this.activatedRoute = activatedRoute;
this.currentRoute = _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_SEARCH_ROUTE"];
this.dataHandler = new _data_handler__WEBPACK_IMPORTED_MODULE_4__["DataHandler"](this);
this.max_width = -1;
this.max_height = -1;
this.resultIndex = 0;
this.resultLength = 5;
this.resultRange = { start: 0, end: 4 };
this.resultsReceived = false;
this.selectedViewOption = _constants__WEBPACK_IMPORTED_MODULE_3__["VIEW_OPTIONS"].TRANSKRIPTION;
this.startSearch = false;
this.mapping = {
current_page_iri: { param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_PAGE_PARAM"], type: "string" },
resultIndex: { param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_RESULT_INDEX_PARAM"], type: "number" },
searchTerm: { param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_FIND_PARAM"], type: "string" },
current_manuscript_unity: { param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_MANUSCRIPT_PARAM"], type: "string" },
fullscreen: { param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_FULLSCREEN_PARAM"], type: "boolean" },
};
this.pages = [];
this.margin_width = 280;
this.initialPreviewWidth = 300;
this.previewWidth = this.initialPreviewWidth;
}
ngOnInit() {
if (screen.availWidth - this.initialPreviewWidth - this.margin_width > 1000) {
this.previewWidth = screen.availWidth - this.initialPreviewWidth - 1000;
}
this.max_width = screen.availWidth - this.previewWidth - this.margin_width;
this.max_height = screen.availHeight - 200;
this.dataHandler.addHandler('pages', { 'handler': _datatypes_search__WEBPACK_IMPORTED_MODULE_5__["FoundPage"] });
this.dataHandler['pages']['service'] = this;
this.dataHandler.setQueryService(this.tlnQueryService);
this.dataHandler.start_processing.subscribe((started) => {
this.resultsReceived = false;
this.startSearch = true;
});
this.dataHandler.processing_finished.subscribe((finished) => {
this.resultsReceived = true;
this.startSearch = false;
});
super.ngOnInit();
}
clearFindText() {
this.searchTerm = '';
this.pages = [];
this.resultIndex = 0;
super.updateParams();
}
search() {
this.resultIndex = 0;
this.updateResultRange();
super.updateParams();
if (this.searchTerm != undefined && this.searchTerm != null && this.searchTerm != '') {
this.dataHandler.resetData('pages');
this.dataHandler.getData('pages', this.searchTerm);
}
}
readParams(params) {
let oldSearchTerm = this.searchTerm;
let oldResultIndex = this.resultIndex;
super.readParams(params);
if (this.searchTerm != undefined && this.searchTerm != null && this.searchTerm != '' && this.searchTerm != oldSearchTerm) {
this.resultIndex = 0;
this.dataHandler.getData('pages', this.searchTerm);
}
if (oldResultIndex != this.resultIndex) {
this.updateResultRange();
}
}
getSearchTerms() {
return this.searchTerm.split(' ');
}
showResults(event) {
this.resultIndex = event.pageIndex;
this.updateResultRange();
this.updateParams();
}
updateResultRange() {
let newStart = this.resultIndex * this.resultLength;
let newEnd = newStart + this.resultLength;
this.resultRange = { start: newStart, end: newEnd };
}
};
TlnFulltextComponent.ctorParameters = () => [
{ type: _services__WEBPACK_IMPORTED_MODULE_7__["TlnQueryService"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"] }
];
TlnFulltextComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'tln-fulltext',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./tln-fulltext.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-fulltext/tln-fulltext.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./tln-fulltext.component.css */ "./src/app/tln-edition/tln-fulltext/tln-fulltext.component.css")).default]
})
], TlnFulltextComponent);
/***/ }),
/***/ "./src/app/tln-edition/tln-height.directive.ts":
/*!*****************************************************!*\
!*** ./src/app/tln-edition/tln-height.directive.ts ***!
\*****************************************************/
/*! exports provided: TlnHeightDirective */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnHeightDirective", function() { return TlnHeightDirective; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
let TlnHeightDirective = class TlnHeightDirective {
constructor(el) {
this.el = el;
}
ngOnInit() {
if (this.pageView != undefined && this.pageView != null) {
this.pageView.max_height = window.innerHeight - this.el.nativeElement.offsetHeight - 15;
}
}
};
TlnHeightDirective.ctorParameters = () => [
{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ElementRef"] }
];
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('setMaxHeightTo')
], TlnHeightDirective.prototype, "pageView", void 0);
TlnHeightDirective = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Directive"])({
selector: '[setMaxHeightTo]'
})
], TlnHeightDirective);
/***/ }),
/***/ "./src/app/tln-edition/tln-information/tln-information.component.css":
/*!***************************************************************************!*\
!*** ./src/app/tln-edition/tln-information/tln-information.component.css ***!
\***************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = (".highlight {\n text-decoration: underline;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4taW5mb3JtYXRpb24vdGxuLWluZm9ybWF0aW9uLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRywwQkFBMEI7QUFDN0IiLCJmaWxlIjoiYXBwL3Rsbi1lZGl0aW9uL3Rsbi1pbmZvcm1hdGlvbi90bG4taW5mb3JtYXRpb24uY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5oaWdobGlnaHQge1xuICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4iXX0= */");
+/* harmony default export */ __webpack_exports__["default"] = (".highlight {\n text-decoration: underline;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1pbmZvcm1hdGlvbi90bG4taW5mb3JtYXRpb24uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLDBCQUEwQjtBQUM3QiIsImZpbGUiOiJ0bG4tZWRpdGlvbi90bG4taW5mb3JtYXRpb24vdGxuLWluZm9ybWF0aW9uLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuaGlnaGxpZ2h0IHtcbiAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuIl19 */");
/***/ }),
/***/ "./src/app/tln-edition/tln-information/tln-information.component.ts":
/*!**************************************************************************!*\
!*** ./src/app/tln-edition/tln-information/tln-information.component.ts ***!
\**************************************************************************/
/*! exports provided: TlnInformationComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnInformationComponent", function() { return TlnInformationComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */ var _angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/material/bottom-sheet */ "./node_modules/@angular/material/esm2015/bottom-sheet.js");
/* harmony import */ var _route_updater__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../route-updater */ "./src/app/tln-edition/route-updater.ts");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../constants */ "./src/app/tln-edition/constants.ts");
let TlnInformationComponent = class TlnInformationComponent extends _route_updater__WEBPACK_IMPORTED_MODULE_4__["RouteUpdater"] {
constructor(data, bottomSheetRef, router, activatedRoute) {
super(router, activatedRoute);
this.data = data;
this.bottomSheetRef = bottomSheetRef;
this.router = router;
this.activatedRoute = activatedRoute;
/**
* the data handler of this component that retrieves
* data and instantiates it according to their proper
* datatypes.
**/
this.geneticOrders = [];
this.currentRoute = _constants__WEBPACK_IMPORTED_MODULE_5__["TLN_CROSSREF_ROUTE"];
this.mapping = {
current_iri: { param: _constants__WEBPACK_IMPORTED_MODULE_5__["TLN_PAGE_PARAM"], type: "string" },
current_manuscript_iri: { param: _constants__WEBPACK_IMPORTED_MODULE_5__["TLN_MANUSCRIPT_PARAM"], type: "string" },
current_genetic_order: { param: _constants__WEBPACK_IMPORTED_MODULE_5__["TLN_TEXT_GENETIC_ORDER_PARAM"], type: "string" }
};
this.current_page = data.page;
this.geneticOrders = data.geneticOrders;
this.current_manuscript_iri = data.manuscript_iri;
}
ngOnInit() {
super.ngOnInit();
}
openCrossRef(geneticOrder) {
this.current_genetic_order = geneticOrder.id;
this.current_iri = this.current_page.id;
this.updateParams();
}
};
TlnInformationComponent.ctorParameters = () => [
{ type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Inject"], args: [_angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_3__["MAT_BOTTOM_SHEET_DATA"],] }] },
{ type: _angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_3__["MatBottomSheetRef"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"] }
];
TlnInformationComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-tln-information',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./tln-information.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-information/tln-information.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./tln-information.component.css */ "./src/app/tln-edition/tln-information/tln-information.component.css")).default]
}),
tslib__WEBPACK_IMPORTED_MODULE_0__["__param"](0, Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Inject"])(_angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_3__["MAT_BOTTOM_SHEET_DATA"]))
], TlnInformationComponent);
/***/ }),
/***/ "./src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.css":
/*!***********************************************************************************!*\
!*** ./src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.css ***!
\***********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = ("img.thumb {\n overflow: auto;\n padding: 0 20px;\n text-align: center;\n}\ntd.author {\n text-align: left;\n width: 150px;\n vertical-align: top;\n padding-right: 10px;\n}\ntd.text {\n text-align: justify;\n width: 600px;\n}\np.text {\n text-align: justify;\n width: 760px;\n}\nbutton.nospace {\n /*margin: -12px;*/\n max-width: 15px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tbWFudXNjcmlwdC12aWV3L3Rsbi1tYW51c2NyaXB0LXZpZXcuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLGNBQWM7R0FDZCxlQUFlO0dBQ2Ysa0JBQWtCO0FBQ3JCO0FBQ0E7R0FDRyxnQkFBZ0I7R0FDaEIsWUFBWTtHQUNaLG1CQUFtQjtHQUNuQixtQkFBbUI7QUFDdEI7QUFDQTtHQUNHLG1CQUFtQjtHQUNuQixZQUFZO0FBQ2Y7QUFDQTtHQUNHLG1CQUFtQjtHQUNuQixZQUFZO0FBQ2Y7QUFDQTtHQUNHLGlCQUFpQjtHQUNqQixlQUFlO0FBQ2xCIiwiZmlsZSI6ImFwcC90bG4tZWRpdGlvbi90bG4tbWFudXNjcmlwdC12aWV3L3Rsbi1tYW51c2NyaXB0LXZpZXcuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbImltZy50aHVtYiB7XG4gICBvdmVyZmxvdzogYXV0bztcbiAgIHBhZGRpbmc6IDAgMjBweDtcbiAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbnRkLmF1dGhvciB7XG4gICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgd2lkdGg6IDE1MHB4O1xuICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG59XG50ZC50ZXh0IHtcbiAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICB3aWR0aDogNjAwcHg7XG59XG5wLnRleHQge1xuICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgIHdpZHRoOiA3NjBweDtcbn1cbmJ1dHRvbi5ub3NwYWNlIHtcbiAgIC8qbWFyZ2luOiAtMTJweDsqL1xuICAgbWF4LXdpZHRoOiAxNXB4O1xufVxuIl19 */");
+/* harmony default export */ __webpack_exports__["default"] = ("img.thumb {\n overflow: auto;\n padding: 0 20px;\n text-align: center;\n}\ntd.author {\n text-align: left;\n width: 150px;\n vertical-align: top;\n padding-right: 10px;\n}\ntd.text {\n text-align: justify;\n width: 600px;\n}\np.text {\n text-align: justify;\n width: 760px;\n}\nbutton.nospace {\n /*margin: -12px;*/\n max-width: 15px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1tYW51c2NyaXB0LXZpZXcvdGxuLW1hbnVzY3JpcHQtdmlldy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0dBQ0csY0FBYztHQUNkLGVBQWU7R0FDZixrQkFBa0I7QUFDckI7QUFDQTtHQUNHLGdCQUFnQjtHQUNoQixZQUFZO0dBQ1osbUJBQW1CO0dBQ25CLG1CQUFtQjtBQUN0QjtBQUNBO0dBQ0csbUJBQW1CO0dBQ25CLFlBQVk7QUFDZjtBQUNBO0dBQ0csbUJBQW1CO0dBQ25CLFlBQVk7QUFDZjtBQUNBO0dBQ0csaUJBQWlCO0dBQ2pCLGVBQWU7QUFDbEIiLCJmaWxlIjoidGxuLWVkaXRpb24vdGxuLW1hbnVzY3JpcHQtdmlldy90bG4tbWFudXNjcmlwdC12aWV3LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJpbWcudGh1bWIge1xuICAgb3ZlcmZsb3c6IGF1dG87XG4gICBwYWRkaW5nOiAwIDIwcHg7XG4gICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG50ZC5hdXRob3Ige1xuICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgIHdpZHRoOiAxNTBweDtcbiAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xufVxudGQudGV4dCB7XG4gICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgd2lkdGg6IDYwMHB4O1xufVxucC50ZXh0IHtcbiAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICB3aWR0aDogNzYwcHg7XG59XG5idXR0b24ubm9zcGFjZSB7XG4gICAvKm1hcmdpbjogLTEycHg7Ki9cbiAgIG1heC13aWR0aDogMTVweDtcbn1cbiJdfQ== */");
/***/ }),
/***/ "./src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.ts":
/*!**********************************************************************************!*\
!*** ./src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.ts ***!
\**********************************************************************************/
/*! exports provided: TlnManuscriptViewComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnManuscriptViewComponent", function() { return TlnManuscriptViewComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../constants */ "./src/app/tln-edition/constants.ts");
/* harmony import */ var _data_handler__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../data_handler */ "./src/app/tln-edition/data_handler.ts");
/* harmony import */ var _datatypes_manuscript__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../datatypes/manuscript */ "./src/app/tln-edition/datatypes/manuscript.ts");
/* harmony import */ var _datatypes_page__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../datatypes/page */ "./src/app/tln-edition/datatypes/page.ts");
/* harmony import */ var _route_updater__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../route-updater */ "./src/app/tln-edition/route-updater.ts");
/* harmony import */ var _services__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../services */ "./src/app/tln-edition/services.ts");
/* harmony import */ var _lib_ngx_mat_standoff_markup_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../lib/ngx-mat-standoff-markup.component */ "./src/app/lib/ngx-mat-standoff-markup.component.ts");
let TlnManuscriptViewComponent = class TlnManuscriptViewComponent extends _route_updater__WEBPACK_IMPORTED_MODULE_7__["RouteUpdater"] {
constructor(tlnQueryService, router, activatedRoute) {
super(router, activatedRoute);
this.tlnQueryService = tlnQueryService;
this.router = router;
this.activatedRoute = activatedRoute;
this.contextView = _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_MANUSCRIPT_PARAM"];
this.currentRoute = _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_MANUSCRIPT_ROUTE"];
this.cssDef = { type: 'text', css: '' };
this.dataHandler = new _data_handler__WEBPACK_IMPORTED_MODULE_4__["DataHandler"](this);
this.earlierDescriptions = [];
this.mapping = {
contextView: { param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_CONTEXT_VIEW_PARAM"], type: "string" },
current_page_iri: { param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_PAGE_PARAM"], type: "string" },
current_manuscript_unity: { param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_MANUSCRIPT_PARAM"], type: "string" },
fullscreen: { param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_FULLSCREEN_PARAM"], type: "boolean" },
};
this.mySettings = new _lib_ngx_mat_standoff_markup_component__WEBPACK_IMPORTED_MODULE_9__["StandoffMarkupSettings"](true, true, false, 1);
this.pages = [];
}
ngOnInit() {
this.dataHandler.addHandler('manuscript_content', ['current_manuscript', 'manuscriptDescription', 'earlierDescriptions', 'pages', 'reconstructedKonvolut']);
this.dataHandler.addHandler('current_manuscript', { 'handler': _datatypes_manuscript__WEBPACK_IMPORTED_MODULE_5__["TlnExtManuscript"] });
this.dataHandler.addHandler('manuscriptDescription', { 'handler': _datatypes_manuscript__WEBPACK_IMPORTED_MODULE_5__["ManuscriptDescription"] });
this.dataHandler.addHandler('earlierDescriptions', { 'handler': _datatypes_manuscript__WEBPACK_IMPORTED_MODULE_5__["ManuscriptEarlierDescription"] });
this.dataHandler.addHandler('pages', { 'handler': _datatypes_page__WEBPACK_IMPORTED_MODULE_6__["PageStub"] });
this.dataHandler.addHandler('reconstructedKonvolut', { 'handler': _datatypes_manuscript__WEBPACK_IMPORTED_MODULE_5__["ReconstructedKonvolut"] });
this.dataHandler.setQueryService(this.tlnQueryService);
super.ngOnInit();
}
readParams(params) {
let old_manuscript_unity = this.current_manuscript_unity;
super.readParams(params);
if (this.dataHandler.ready) {
if (this.current_manuscript_unity != null && this.current_manuscript_unity != old_manuscript_unity) {
this.dataHandler.resetData('manuscript_content');
this.dataHandler.getData('manuscript_content', this.current_manuscript_unity);
}
}
}
openInViewer(pageIri, launch) {
this.current_page_iri = pageIri;
this.currentRoute = _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_VIEWER_ROUTE"];
this.fullscreen = true;
this.updateParams(launch);
}
};
TlnManuscriptViewComponent.ctorParameters = () => [
{ type: _services__WEBPACK_IMPORTED_MODULE_8__["TlnQueryService"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"] }
];
TlnManuscriptViewComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'tln-manuscript-view',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./tln-manuscript-view.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./tln-manuscript-view.component.css */ "./src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.css")).default]
})
], TlnManuscriptViewComponent);
/***/ }),
/***/ "./src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.scss":
/*!***********************************************************************************!*\
!*** ./src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.scss ***!
\***********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = (".icon-button {\n width: 15px;\n margin-left: 3px;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL3Rsbi1lZGl0aW9uL3Rsbi1uYXZpZ2F0aW9uLWVsZW1lbnRzL29wZW4taW4tdmlld2VyLmNvbXBvbmVudC5zY3NzIiwiYXBwL3Rsbi1lZGl0aW9uL3Rsbi1uYXZpZ2F0aW9uLWVsZW1lbnRzL29wZW4taW4tdmlld2VyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0csV0FBQTtFQUNBLGdCQUFBO0FDQ0giLCJmaWxlIjoiYXBwL3Rsbi1lZGl0aW9uL3Rsbi1uYXZpZ2F0aW9uLWVsZW1lbnRzL29wZW4taW4tdmlld2VyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmljb24tYnV0dG9uIHtcbiAgIHdpZHRoOiAxNXB4OyBcbiAgIG1hcmdpbi1sZWZ0OiAzcHg7XG59XG4iLCIuaWNvbi1idXR0b24ge1xuICB3aWR0aDogMTVweDtcbiAgbWFyZ2luLWxlZnQ6IDNweDtcbn0iXX0= */");
+/* harmony default export */ __webpack_exports__["default"] = (".icon-button {\n width: 15px;\n margin-left: 3px;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL3Rsbi1lZGl0aW9uL3Rsbi1uYXZpZ2F0aW9uLWVsZW1lbnRzL29wZW4taW4tdmlld2VyLmNvbXBvbmVudC5zY3NzIiwidGxuLWVkaXRpb24vdGxuLW5hdmlnYXRpb24tZWxlbWVudHMvb3Blbi1pbi12aWV3ZXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRyxXQUFBO0VBQ0EsZ0JBQUE7QUNDSCIsImZpbGUiOiJ0bG4tZWRpdGlvbi90bG4tbmF2aWdhdGlvbi1lbGVtZW50cy9vcGVuLWluLXZpZXdlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5pY29uLWJ1dHRvbiB7XG4gICB3aWR0aDogMTVweDsgXG4gICBtYXJnaW4tbGVmdDogM3B4O1xufVxuIiwiLmljb24tYnV0dG9uIHtcbiAgd2lkdGg6IDE1cHg7XG4gIG1hcmdpbi1sZWZ0OiAzcHg7XG59Il19 */");
/***/ }),
/***/ "./src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.ts":
/*!*********************************************************************************!*\
!*** ./src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.ts ***!
\*********************************************************************************/
/*! exports provided: OpenInViewerComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OpenInViewerComponent", function() { return OpenInViewerComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../constants */ "./src/app/tln-edition/constants.ts");
/* harmony import */ var _route_updater__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../route-updater */ "./src/app/tln-edition/route-updater.ts");
let OpenInViewerComponent = class OpenInViewerComponent extends _route_updater__WEBPACK_IMPORTED_MODULE_4__["RouteUpdater"] {
constructor(router, activatedRoute) {
super(router, activatedRoute);
this.router = router;
this.activatedRoute = activatedRoute;
this.launch = false;
this.currentRoute = _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_VIEWER_ROUTE"];
this.mapping = { current_iri: { param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_PAGE_PARAM"], type: "string" },
current_manuscript_unity: { param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_MANUSCRIPT_PARAM"], type: "string" } };
}
ngOnInit() {
super.ngOnInit();
this.page = { id: this.routerInformation.page,
number: this.routerInformation.number,
title: this.routerInformation.title };
this.launch = (this.routerInformation.launchExternally != undefined
&& this.routerInformation.launchExternally != null
&& this.routerInformation.launchExternally);
}
openInViewer() {
if (this.routerInformation != undefined && this.routerInformation != null) {
this.current_iri = this.routerInformation.page;
if (this.routerInformation.manuscript != undefined && this.routerInformation != null) {
this.current_manuscript_unity = this.routerInformation.manuscript;
}
this.updateParams(this.launch);
}
}
};
OpenInViewerComponent.ctorParameters = () => [
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"] }
];
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], OpenInViewerComponent.prototype, "routerInformation", void 0);
OpenInViewerComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'open-in-viewer',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./open-in-viewer.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./open-in-viewer.component.scss */ "./src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.scss")).default]
})
], OpenInViewerComponent);
/***/ }),
/***/ "./src/app/tln-edition/tln-navigation-elements/search.component.css":
/*!**************************************************************************!*\
!*** ./src/app/tln-edition/tln-navigation-elements/search.component.css ***!
\**************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = (".search {\n margin-left: 8px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tbmF2aWdhdGlvbi1lbGVtZW50cy9zZWFyY2guY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLGdCQUFnQjtBQUNuQiIsImZpbGUiOiJhcHAvdGxuLWVkaXRpb24vdGxuLW5hdmlnYXRpb24tZWxlbWVudHMvc2VhcmNoLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc2VhcmNoIHtcbiAgIG1hcmdpbi1sZWZ0OiA4cHg7XG59XG4iXX0= */");
+/* harmony default export */ __webpack_exports__["default"] = (".search {\n margin-left: 8px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1uYXZpZ2F0aW9uLWVsZW1lbnRzL3NlYXJjaC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0dBQ0csZ0JBQWdCO0FBQ25CIiwiZmlsZSI6InRsbi1lZGl0aW9uL3Rsbi1uYXZpZ2F0aW9uLWVsZW1lbnRzL3NlYXJjaC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnNlYXJjaCB7XG4gICBtYXJnaW4tbGVmdDogOHB4O1xufVxuIl19 */");
/***/ }),
/***/ "./src/app/tln-edition/tln-navigation-elements/search.component.ts":
/*!*************************************************************************!*\
!*** ./src/app/tln-edition/tln-navigation-elements/search.component.ts ***!
\*************************************************************************/
/*! exports provided: SearchComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SearchComponent", function() { return SearchComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../constants */ "./src/app/tln-edition/constants.ts");
/* harmony import */ var _route_updater__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../route-updater */ "./src/app/tln-edition/route-updater.ts");
let SearchComponent = class SearchComponent extends _route_updater__WEBPACK_IMPORTED_MODULE_4__["RouteUpdater"] {
constructor(router, activatedRoute) {
super(router, activatedRoute);
this.router = router;
this.activatedRoute = activatedRoute;
this.mapping = { findText: { param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_FIND_PARAM"], type: "string" } };
}
openFulltextSearch() {
this.currentRoute = _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_SEARCH_ROUTE"];
this.updateParams();
}
clearFindText() {
this.findText = '';
this.updateParams();
}
};
SearchComponent.ctorParameters = () => [
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"] }
];
SearchComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'search',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./search.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-navigation-elements/search.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./search.component.css */ "./src/app/tln-edition/tln-navigation-elements/search.component.css")).default]
})
], SearchComponent);
/***/ }),
/***/ "./src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.css":
/*!*************************************************************************************!*\
!*** ./src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.css ***!
\*************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = ("\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhcHAvdGxuLWVkaXRpb24vdGxuLW5hdmlnYXRpb24tZWxlbWVudHMvdG9nZ2xlLW5hdmlnYXRpb24uY29tcG9uZW50LmNzcyJ9 */");
+/* harmony default export */ __webpack_exports__["default"] = ("\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ0bG4tZWRpdGlvbi90bG4tbmF2aWdhdGlvbi1lbGVtZW50cy90b2dnbGUtbmF2aWdhdGlvbi5jb21wb25lbnQuY3NzIn0= */");
/***/ }),
/***/ "./src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.ts":
/*!************************************************************************************!*\
!*** ./src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.ts ***!
\************************************************************************************/
/*! exports provided: ToggleNavigationComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ToggleNavigationComponent", function() { return ToggleNavigationComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../constants */ "./src/app/tln-edition/constants.ts");
/* harmony import */ var _route_updater__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../route-updater */ "./src/app/tln-edition/route-updater.ts");
let ToggleNavigationComponent = class ToggleNavigationComponent extends _route_updater__WEBPACK_IMPORTED_MODULE_4__["RouteUpdater"] {
constructor(router, activatedRoute) {
super(router, activatedRoute);
this.router = router;
this.activatedRoute = activatedRoute;
this.fullscreen = false;
this.navBarOpenState = false;
this.mapping = {
navBarOpenState: { param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_NAV_BAR_OPEN_STATE_PARAM"], type: "boolean" },
fullscreen: { param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_FULLSCREEN_PARAM"], type: "boolean" }
};
}
toggleFullscreen() {
this.fullscreen = !this.fullscreen;
this.updateParams();
}
toggleNavDrawer() {
this.navBarOpenState = !this.navBarOpenState;
this.updateParams();
}
};
ToggleNavigationComponent.ctorParameters = () => [
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"] }
];
ToggleNavigationComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'toggle-navigation',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./toggle-navigation.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./toggle-navigation.component.css */ "./src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.css")).default]
})
], ToggleNavigationComponent);
/***/ }),
/***/ "./src/app/tln-edition/tln-navigation-elements/zoom.component.css":
/*!************************************************************************!*\
!*** ./src/app/tln-edition/tln-navigation-elements/zoom.component.css ***!
\************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = (".zoom {\n max-width: 20px;\n}\n.zoom-in {\n cursor: zoom-in;\n}\n.zoom-out {\n cursor: zoom-out;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tbmF2aWdhdGlvbi1lbGVtZW50cy96b29tLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxlQUFlO0FBQ2xCO0FBQ0E7R0FDRyxlQUFlO0FBQ2xCO0FBQ0E7R0FDRyxnQkFBZ0I7QUFDbkIiLCJmaWxlIjoiYXBwL3Rsbi1lZGl0aW9uL3Rsbi1uYXZpZ2F0aW9uLWVsZW1lbnRzL3pvb20uY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi56b29tIHtcbiAgIG1heC13aWR0aDogMjBweDtcbn1cbi56b29tLWluIHtcbiAgIGN1cnNvcjogem9vbS1pbjtcbn1cbi56b29tLW91dCB7XG4gICBjdXJzb3I6IHpvb20tb3V0O1xufVxuIl19 */");
+/* harmony default export */ __webpack_exports__["default"] = (".zoom {\n max-width: 20px;\n}\n.zoom-in {\n cursor: zoom-in;\n}\n.zoom-out {\n cursor: zoom-out;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1uYXZpZ2F0aW9uLWVsZW1lbnRzL3pvb20uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLGVBQWU7QUFDbEI7QUFDQTtHQUNHLGVBQWU7QUFDbEI7QUFDQTtHQUNHLGdCQUFnQjtBQUNuQiIsImZpbGUiOiJ0bG4tZWRpdGlvbi90bG4tbmF2aWdhdGlvbi1lbGVtZW50cy96b29tLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuem9vbSB7XG4gICBtYXgtd2lkdGg6IDIwcHg7XG59XG4uem9vbS1pbiB7XG4gICBjdXJzb3I6IHpvb20taW47XG59XG4uem9vbS1vdXQge1xuICAgY3Vyc29yOiB6b29tLW91dDtcbn1cbiJdfQ== */");
/***/ }),
/***/ "./src/app/tln-edition/tln-navigation-elements/zoom.component.ts":
/*!***********************************************************************!*\
!*** ./src/app/tln-edition/tln-navigation-elements/zoom.component.ts ***!
\***********************************************************************/
/*! exports provided: ZoomComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ZoomComponent", function() { return ZoomComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../constants */ "./src/app/tln-edition/constants.ts");
/* harmony import */ var _route_updater__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../route-updater */ "./src/app/tln-edition/route-updater.ts");
let ZoomComponent = class ZoomComponent extends _route_updater__WEBPACK_IMPORTED_MODULE_4__["RouteUpdater"] {
constructor(router, activatedRoute) {
super(router, activatedRoute);
this.router = router;
this.activatedRoute = activatedRoute;
this.increment = 0.25;
this.decrement = this.increment * -1;
this.zoomFactor = 1;
this.mapping = { zoomFactor: { param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_ZOOM_PARAM"], type: "number" } };
}
setZoomFactor(newZoomFactor) {
if (newZoomFactor > 0) {
this.zoomFactor = Math.round(newZoomFactor * 100) / 100;
}
else {
this.zoomFactor = this.zoomFactor / 2;
}
this.updateParams();
}
};
ZoomComponent.ctorParameters = () => [
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"] }
];
ZoomComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'zoom',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./zoom.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-navigation-elements/zoom.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./zoom.component.css */ "./src/app/tln-edition/tln-navigation-elements/zoom.component.css")).default]
})
], ZoomComponent);
/***/ }),
/***/ "./src/app/tln-edition/tln-navigation-elements/zoom.pipe.ts":
/*!******************************************************************!*\
!*** ./src/app/tln-edition/tln-navigation-elements/zoom.pipe.ts ***!
\******************************************************************/
/*! exports provided: ZoomPipe */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ZoomPipe", function() { return ZoomPipe; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
let ZoomPipe = class ZoomPipe {
transform(zoom) {
return (zoom.zoomFactor + zoom.changeValue < 0) ? Math.round(zoom.zoomFactor * 50) + '%' : Math.round((zoom.zoomFactor + zoom.changeValue) * 100) + '%';
}
};
ZoomPipe = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Pipe"])({
name: 'zoomTitle'
})
], ZoomPipe);
/***/ }),
/***/ "./src/app/tln-edition/tln-page-view.component.css":
/*!*********************************************************!*\
!*** ./src/app/tln-edition/tln-page-view.component.css ***!
\*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = ("\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhcHAvdGxuLWVkaXRpb24vdGxuLXBhZ2Utdmlldy5jb21wb25lbnQuY3NzIn0= */");
+/* harmony default export */ __webpack_exports__["default"] = ("\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ0bG4tZWRpdGlvbi90bG4tcGFnZS12aWV3LmNvbXBvbmVudC5jc3MifQ== */");
/***/ }),
/***/ "./src/app/tln-edition/tln-page-view.component.ts":
/*!********************************************************!*\
!*** ./src/app/tln-edition/tln-page-view.component.ts ***!
\********************************************************/
/*! exports provided: TlnPageViewComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnPageViewComponent", function() { return TlnPageViewComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */ var _tln_query_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tln-query.service */ "./src/app/tln-edition/tln-query.service.ts");
/* harmony import */ var _datatypes_faksimile_image__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./datatypes/faksimile_image */ "./src/app/tln-edition/datatypes/faksimile_image.ts");
/* harmony import */ var _datatypes_svg_image__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./datatypes/svg_image */ "./src/app/tln-edition/datatypes/svg_image.ts");
/* harmony import */ var _datatypes_line__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./datatypes/line */ "./src/app/tln-edition/datatypes/line.ts");
/* harmony import */ var _datatypes_word__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./datatypes/word */ "./src/app/tln-edition/datatypes/word.ts");
/* harmony import */ var _datatypes_foreign_text__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./datatypes/foreign_text */ "./src/app/tln-edition/datatypes/foreign_text.ts");
/* harmony import */ var _services__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./services */ "./src/app/tln-edition/services.ts");
/* harmony import */ var _data_handler__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./data_handler */ "./src/app/tln-edition/data_handler.ts");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./constants */ "./src/app/tln-edition/constants.ts");
/* harmony import */ var _route_reader__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./route-reader */ "./src/app/tln-edition/route-reader.ts");
/**
* Given a page IRI, this component will request all relevant information and
* display the data with {@link /components/PageViewComponent.html|PageViewComponent}.
**/
let TlnPageViewComponent = class TlnPageViewComponent extends _route_reader__WEBPACK_IMPORTED_MODULE_12__["RouteReader"] {
/**
* @param localQueryService internal query service that will be used if no external queryService is passed
* to input.
**/
constructor(localQueryService, router, activatedRoute) {
super(router, activatedRoute);
this.localQueryService = localQueryService;
this.router = router;
this.activatedRoute = activatedRoute;
this.configuration = { '*': { 'useExtendedTooltip': true } };
/**
* whether or not to ignore the params
**/
this.ignoreParams = false;
/**
* global zoom factor.
**/
this.zoomFactor = 1;
/**
* identifiers of selected words that should be highlighted.
**/
this.selectedWords = [];
/**
* identifiers of selected lines that should be highlighted.
**/
this.selectedLines = [];
/**
* the (initial) maximum height of the image.
**/
this.max_height = -1;
/**
* the (initial) maximum width of the image, if both height and width are specified prefer width.
**/
this.max_width = -1;
this.dontShowReference = false;
/**
* should primary Url be used for image. Use secondary Url if false.
**/
this.preferPrimaryUrl = true;
/**
* selected view option, i.e. one of the following
* {@link /miscellaneous/enumerations.html#VIEW_OPTIONS|VIEW_OPTIONS}.
* */
this.selectedViewOption = _constants__WEBPACK_IMPORTED_MODULE_11__["DEFAULT_VIEW_OPTION"];
/**
* the data handler of this component that retrieves
* data and instantiates it according to their proper
* datatypes.
**/
this.dataHandler = new _data_handler__WEBPACK_IMPORTED_MODULE_10__["DataHandler"](this);
/**
* whether or not to show page view in fullscreen mode.
**/
this.fullscreen = false;
/**
* texts written by foreign hand
**/
this.foreignTexts = [];
/**
* the Array of lines of the first image that will be displayed by {@link /components/MarginFieldComponent.html|MarginFieldComponent}.
**/
this.lines = [];
/**
* texts written by foreign hand
**/
this.second_foreignTexts = [];
/**
* the Array of lines of the second image that will be displayed by {@link /components/MarginFieldComponent.html|MarginFieldComponent}.
**/
this.second_lines = [];
/**
* the Array of words of the second image that will be displayed by {@link /components/TextFieldComponent.html|TextFieldComponent}.
**/
this.second_words = [];
/**
* the Array of words of the first image that will be displayed by {@link /components/TextFieldComponent.html|TextFieldComponent}.
**/
this.words = [];
this.multiInstanceMode = false;
this.mapping = {
findText: { param: _constants__WEBPACK_IMPORTED_MODULE_11__["TLN_FIND_PARAM"], type: "string" },
fullscreen: { param: _constants__WEBPACK_IMPORTED_MODULE_11__["TLN_FULLSCREEN_PARAM"], type: "boolean" },
selectedViewOption: { param: _constants__WEBPACK_IMPORTED_MODULE_11__["TLN_VIEW_OPTION_PARAM"], type: "string" },
selectedLines: { param: _constants__WEBPACK_IMPORTED_MODULE_11__["TLN_SELECTED_LINES_PARAM"], type: "string" },
current_iri: { param: _constants__WEBPACK_IMPORTED_MODULE_11__["TLN_PAGE_PARAM"], type: "string" },
zoomFactor: { param: _constants__WEBPACK_IMPORTED_MODULE_11__["TLN_ZOOM_PARAM"], type: "number" }
};
}
ngOnInit() {
if (this.multiInstanceMode) {
this.mapping['current_iri']['ignore'] = (this.current_iri != null);
this.mapping['selectedViewOption']['ignore'] = true;
this.dontShowReference = true;
//this.configuration['*']['useExtendedTooltip'] = false;
}
super.ngOnInit();
let tlnQueryService = (this.queryService != null) ? this.queryService : this.localQueryService;
let queryConfiguration = { '*': { 'tlnQueryService': tlnQueryService } };
this.configuration = _services__WEBPACK_IMPORTED_MODULE_9__["ConfigurableComponent"].updateConfiguration(this.configuration, queryConfiguration);
this.dataHandler.addHandler('image', { 'handler': _datatypes_svg_image__WEBPACK_IMPORTED_MODULE_5__["SVGImage"] });
this.dataHandler.addHandler('words', { 'handler': _datatypes_word__WEBPACK_IMPORTED_MODULE_7__["TlnWord"] });
this.dataHandler.addHandler('foreignTexts', { 'handler': _datatypes_foreign_text__WEBPACK_IMPORTED_MODULE_8__["TlnTextByForeignHand"] });
this.dataHandler.addHandler('lines', { 'handler': _datatypes_line__WEBPACK_IMPORTED_MODULE_6__["TlnLine"] });
this.dataHandler.addHandler('second_image', { 'handler': _datatypes_faksimile_image__WEBPACK_IMPORTED_MODULE_4__["FaksimileImage"] });
this.dataHandler.addHandler('second_words', { 'handler': _datatypes_word__WEBPACK_IMPORTED_MODULE_7__["FaksimileWord"] });
this.dataHandler.addHandler('second_lines', { 'handler': _datatypes_line__WEBPACK_IMPORTED_MODULE_6__["FaksimileLine"] });
this.dataHandler.addHandler('second_foreignTexts', { 'handler': _datatypes_foreign_text__WEBPACK_IMPORTED_MODULE_8__["FaksimileTextByForeignHand"] });
this.dataHandler.addHandler('page_content', ['image', 'lines', 'words', 'foreignTexts']);
this.dataHandler.addHandler('second_page_content', ['second_image', 'second_lines', 'second_words', 'second_foreignTexts']);
this.dataHandler.setQueryService(tlnQueryService);
this.updatePageData();
}
ngOnChanges(change) {
if (this.dataHandler.ready
&& (change.current_iri != undefined && change.current_iri != null && !change.current_iri.firstChange)
|| (change.selectedViewOption != undefined && change.selectedViewOption != null && !change.selectedViewOption.firstChange)) {
this.updatePageData();
}
}
readParams(params) {
let old_page_iri = this.current_iri;
let old_selectedViewOption = this.selectedViewOption;
let old_fullscreen = this.fullscreen;
super.readParams(params);
if (this.dataHandler.ready
&& (old_page_iri != this.current_iri || old_selectedViewOption != this.selectedViewOption)) {
this.updatePageData();
}
if (old_fullscreen != this.fullscreen && !this.multiInstanceMode) {
//this.dontShowReference = !this.fullscreen;
//this.configuration['*']['useExtendedTooltip'] = this.fullscreen;
}
}
/**
* This function updates the page data by setting the handlers for the current
* {@link #selectedViewOption|selectedViewOption} and by retrieving the data.
**/
updatePageData() {
this.dataHandler['image']['handler'] = (this.selectedViewOption != _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].FAKSIMILE && this.selectedViewOption != _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].SYNOPSIS_B) ? _datatypes_svg_image__WEBPACK_IMPORTED_MODULE_5__["SVGImage"] : _datatypes_faksimile_image__WEBPACK_IMPORTED_MODULE_4__["FaksimileImage"];
this.dataHandler['words']['handler'] = (this.selectedViewOption != _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].FAKSIMILE && this.selectedViewOption != _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].SYNOPSIS_B) ? _datatypes_word__WEBPACK_IMPORTED_MODULE_7__["TlnWord"] : _datatypes_word__WEBPACK_IMPORTED_MODULE_7__["FaksimileWord"];
this.dataHandler['lines']['handler'] = (this.selectedViewOption != _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].FAKSIMILE && this.selectedViewOption != _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].SYNOPSIS_B) ? _datatypes_line__WEBPACK_IMPORTED_MODULE_6__["TlnLine"] : _datatypes_line__WEBPACK_IMPORTED_MODULE_6__["FaksimileLine"];
this.dataHandler['foreignTexts']['handler'] = (this.selectedViewOption != _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].FAKSIMILE && this.selectedViewOption != _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].SYNOPSIS_B)
? _datatypes_foreign_text__WEBPACK_IMPORTED_MODULE_8__["TlnTextByForeignHand"] : _datatypes_foreign_text__WEBPACK_IMPORTED_MODULE_8__["FaksimileTextByForeignHand"];
if (this.dataHandler['page_content'][this.dataHandler['page_content'].length - 1] == 'second_page_content') {
this.dataHandler['page_content'].pop();
this.second_image = null;
this.second_foreignTexts = [];
this.second_words = [];
this.second_lines = [];
}
if (this.selectedViewOption == _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].SYNOPSIS || this.selectedViewOption == _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].SYNOPSIS_B) {
this.dataHandler['second_image']['handler'] = (this.selectedViewOption == _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].SYNOPSIS_B) ? _datatypes_svg_image__WEBPACK_IMPORTED_MODULE_5__["SVGImage"] : _datatypes_faksimile_image__WEBPACK_IMPORTED_MODULE_4__["FaksimileImage"];
this.dataHandler['second_words']['handler'] = (this.selectedViewOption == _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].SYNOPSIS_B) ? _datatypes_word__WEBPACK_IMPORTED_MODULE_7__["TlnWord"] : _datatypes_word__WEBPACK_IMPORTED_MODULE_7__["FaksimileWord"];
this.dataHandler['second_lines']['handler'] = (this.selectedViewOption == _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].SYNOPSIS_B) ? _datatypes_line__WEBPACK_IMPORTED_MODULE_6__["TlnLine"] : _datatypes_line__WEBPACK_IMPORTED_MODULE_6__["FaksimileLine"];
this.dataHandler['second_foreignTexts']['handler'] = (this.selectedViewOption == _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].SYNOPSIS_B) ? _datatypes_foreign_text__WEBPACK_IMPORTED_MODULE_8__["TlnTextByForeignHand"] : _datatypes_foreign_text__WEBPACK_IMPORTED_MODULE_8__["FaksimileTextByForeignHand"];
this.dataHandler['page_content'].push('second_page_content');
}
if (this.current_iri != null) {
this.dataHandler.resetData('page_content');
if (this.startLine != null && this.startLine != undefined) {
this.dataHandler['image']['handler'] = _datatypes_svg_image__WEBPACK_IMPORTED_MODULE_5__["SVGImageClip"];
let endLine = (this.endLine != null && this.endLine != undefined) ? this.endLine : this.startLine;
let complex = { idIndex: 0,
mapping: [{ key: 'page', iri: this.current_iri }, { key: 'startLine', iri: this.startLine }, { key: 'endLine', iri: endLine }]
};
this.dataHandler['page_content'] = this.dataHandler['page_content'].filter(key => key != 'image');
this.dataHandler.getData4Keys('image', complex);
}
else if (this.dataHandler['page_content'].indexOf('image') == -1) {
this.dataHandler['page_content'].splice(0, 0, 'image');
}
this.dataHandler.getData('page_content', this.current_iri);
}
}
};
TlnPageViewComponent.ctorParameters = () => [
{ type: _tln_query_service__WEBPACK_IMPORTED_MODULE_3__["TlnQueryService"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"] }
];
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TlnPageViewComponent.prototype, "configuration", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('page')
], TlnPageViewComponent.prototype, "current_iri", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TlnPageViewComponent.prototype, "findText", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TlnPageViewComponent.prototype, "queryService", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TlnPageViewComponent.prototype, "zoomFactor", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TlnPageViewComponent.prototype, "selectedWords", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TlnPageViewComponent.prototype, "selectedLines", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TlnPageViewComponent.prototype, "max_height", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TlnPageViewComponent.prototype, "max_width", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TlnPageViewComponent.prototype, "startLine", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TlnPageViewComponent.prototype, "endLine", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TlnPageViewComponent.prototype, "preferPrimaryUrl", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TlnPageViewComponent.prototype, "selectedViewOption", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('assignClass')
], TlnPageViewComponent.prototype, "assignClass", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('assignStyle')
], TlnPageViewComponent.prototype, "assignStyle", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TlnPageViewComponent.prototype, "multiInstanceMode", void 0);
TlnPageViewComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'tln-page-view',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./tln-page-view.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-page-view.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./tln-page-view.component.css */ "./src/app/tln-edition/tln-page-view.component.css")).default]
})
], TlnPageViewComponent);
/***/ }),
/***/ "./src/app/tln-edition/tln-query.service.ts":
/*!**************************************************!*\
!*** ./src/app/tln-edition/tln-query.service.ts ***!
\**************************************************/
/*! exports provided: TlnQueryService */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnQueryService", function() { return TlnQueryService; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/common/http */ "./node_modules/@angular/common/fesm2015/http.js");
/**
* This is the internal query service
* that communicates with the SPARQL-endpoint.
* */
let TlnQueryService = class TlnQueryService {
constructor(http) {
this.http = http;
//baseUrl = 'http://localhost:3030/nietzsche/query';
this.baseUrl = 'https://nietzsche.fuseki.services.dasch.swiss/nietzsche';
this.reset_data = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
}
resetData(key) {
this.reset_data.emit(key);
}
/**
* Gets the data from an endpoint via http post
*
* @param query: The query to run.
* @returns response
*/
getData(query) {
let httpOptions = {
headers: new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpHeaders"]({ 'Content-Type': 'application/sparql-query',
'Accept': 'application/sparql-results+json; charset=UTF-8' })
};
return this.http.post(this.baseUrl, query, httpOptions);
}
};
TlnQueryService.ctorParameters = () => [
{ type: _angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpClient"] }
];
TlnQueryService = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"])()
], TlnQueryService);
/***/ }),
/***/ "./src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.css":
/*!***************************************************************************************!*\
!*** ./src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.css ***!
\***************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = ("#navi {\n width: 100%;\n height: 50px;\n margin: 0;\n padding: 0;\n white-space: nowrap;\n}\n.search {\n margin-left: 8px;\n }\n.zoom {\n max-width: 20px;\n}\n.zoom-in {\n cursor: zoom-in;\n}\n.zoom-out {\n cursor: zoom-out;\n}\n.mat-button.min-width {\n min-width: 120px;\n max-width: 120px;\n}\n.default-mouse {\n cursor: default;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tdmlld2VyLW5hdmlnYXRpb24vdGxuLXZpZXdlci1uYXZpZ2F0aW9uLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxXQUFXO0dBQ1gsWUFBWTtHQUNaLFNBQVM7R0FDVCxVQUFVO0dBQ1YsbUJBQW1CO0FBQ3RCO0FBQ0E7R0FDRyxnQkFBZ0I7Q0FDbEI7QUFDRDtHQUNHLGVBQWU7QUFDbEI7QUFDQTtHQUNHLGVBQWU7QUFDbEI7QUFDQTtHQUNHLGdCQUFnQjtBQUNuQjtBQUNBO0dBQ0csZ0JBQWdCO0dBQ2hCLGdCQUFnQjtBQUNuQjtBQUNBO0dBQ0csZUFBZTtBQUNsQiIsImZpbGUiOiJhcHAvdGxuLWVkaXRpb24vdGxuLXZpZXdlci1uYXZpZ2F0aW9uL3Rsbi12aWV3ZXItbmF2aWdhdGlvbi5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI25hdmkge1xuICAgd2lkdGg6IDEwMCU7XG4gICBoZWlnaHQ6IDUwcHg7XG4gICBtYXJnaW46IDA7XG4gICBwYWRkaW5nOiAwO1xuICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5zZWFyY2gge1xuICAgbWFyZ2luLWxlZnQ6IDhweDtcbiB9XG4uem9vbSB7XG4gICBtYXgtd2lkdGg6IDIwcHg7XG59XG4uem9vbS1pbiB7XG4gICBjdXJzb3I6IHpvb20taW47XG59XG4uem9vbS1vdXQge1xuICAgY3Vyc29yOiB6b29tLW91dDtcbn1cbi5tYXQtYnV0dG9uLm1pbi13aWR0aCB7XG4gICBtaW4td2lkdGg6IDEyMHB4O1xuICAgbWF4LXdpZHRoOiAxMjBweDtcbn1cbi5kZWZhdWx0LW1vdXNlIHtcbiAgIGN1cnNvcjogZGVmYXVsdDtcbn1cbiJdfQ== */");
+/* harmony default export */ __webpack_exports__["default"] = ("#navi {\n width: 100%;\n height: 50px;\n margin: 0;\n padding: 0;\n white-space: nowrap;\n}\n.search {\n margin-left: 8px;\n }\n.zoom {\n max-width: 20px;\n}\n.zoom-in {\n cursor: zoom-in;\n}\n.zoom-out {\n cursor: zoom-out;\n}\n.mat-button.min-width {\n min-width: 120px;\n max-width: 120px;\n}\n.default-mouse {\n cursor: default;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi12aWV3ZXItbmF2aWdhdGlvbi90bG4tdmlld2VyLW5hdmlnYXRpb24uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLFdBQVc7R0FDWCxZQUFZO0dBQ1osU0FBUztHQUNULFVBQVU7R0FDVixtQkFBbUI7QUFDdEI7QUFDQTtHQUNHLGdCQUFnQjtDQUNsQjtBQUNEO0dBQ0csZUFBZTtBQUNsQjtBQUNBO0dBQ0csZUFBZTtBQUNsQjtBQUNBO0dBQ0csZ0JBQWdCO0FBQ25CO0FBQ0E7R0FDRyxnQkFBZ0I7R0FDaEIsZ0JBQWdCO0FBQ25CO0FBQ0E7R0FDRyxlQUFlO0FBQ2xCIiwiZmlsZSI6InRsbi1lZGl0aW9uL3Rsbi12aWV3ZXItbmF2aWdhdGlvbi90bG4tdmlld2VyLW5hdmlnYXRpb24uY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiNuYXZpIHtcbiAgIHdpZHRoOiAxMDAlO1xuICAgaGVpZ2h0OiA1MHB4O1xuICAgbWFyZ2luOiAwO1xuICAgcGFkZGluZzogMDtcbiAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uc2VhcmNoIHtcbiAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gfVxuLnpvb20ge1xuICAgbWF4LXdpZHRoOiAyMHB4O1xufVxuLnpvb20taW4ge1xuICAgY3Vyc29yOiB6b29tLWluO1xufVxuLnpvb20tb3V0IHtcbiAgIGN1cnNvcjogem9vbS1vdXQ7XG59XG4ubWF0LWJ1dHRvbi5taW4td2lkdGgge1xuICAgbWluLXdpZHRoOiAxMjBweDtcbiAgIG1heC13aWR0aDogMTIwcHg7XG59XG4uZGVmYXVsdC1tb3VzZSB7XG4gICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4iXX0= */");
/***/ }),
/***/ "./src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.ts":
/*!**************************************************************************************!*\
!*** ./src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.ts ***!
\**************************************************************************************/
/*! exports provided: TlnViewerNavigation */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TlnViewerNavigation", function() { return TlnViewerNavigation; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */ var _angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/material/bottom-sheet */ "./node_modules/@angular/material/esm2015/bottom-sheet.js");
/* harmony import */ var _datatypes_navigation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../datatypes/navigation */ "./src/app/tln-edition/datatypes/navigation.ts");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../constants */ "./src/app/tln-edition/constants.ts");
/* harmony import */ var _datatypes_basic_datatype__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../datatypes/basic_datatype */ "./src/app/tln-edition/datatypes/basic_datatype.ts");
/* harmony import */ var _datatypes_text_version__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../datatypes/text_version */ "./src/app/tln-edition/datatypes/text_version.ts");
/* harmony import */ var _route_updater__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../route-updater */ "./src/app/tln-edition/route-updater.ts");
/* harmony import */ var _data_handler__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../data_handler */ "./src/app/tln-edition/data_handler.ts");
/* harmony import */ var _services__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../services */ "./src/app/tln-edition/services.ts");
/* harmony import */ var _tln_information_tln_information_component__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../tln-information/tln-information.component */ "./src/app/tln-edition/tln-information/tln-information.component.ts");
let TlnViewerNavigation = class TlnViewerNavigation extends _route_updater__WEBPACK_IMPORTED_MODULE_8__["RouteUpdater"] {
constructor(el, bottomSheet, pageViewService, localQueryService, router, activatedRoute) {
super(router, activatedRoute);
this.bottomSheet = bottomSheet;
this.pageViewService = pageViewService;
this.localQueryService = localQueryService;
this.router = router;
this.activatedRoute = activatedRoute;
/**
* whether or not to show page view in fullscreen mode.
**/
this.fullscreen = false;
this.showArchivalManuscriptUnity = false;
this.dataHandler = new _data_handler__WEBPACK_IMPORTED_MODULE_9__["DataHandler"](this);
this.geneticOrders = [];
this.selectedLines = [];
this.increment = 0.333;
this.decrement = this.increment * -1;
this.currentRoute = _constants__WEBPACK_IMPORTED_MODULE_5__["TLN_VIEWER_ROUTE"];
this.mapping = { findText: { param: _constants__WEBPACK_IMPORTED_MODULE_5__["TLN_FIND_PARAM"], type: "string" },
current_iri: { param: _constants__WEBPACK_IMPORTED_MODULE_5__["TLN_PAGE_PARAM"], type: "string" },
navBarOpenState: { param: _constants__WEBPACK_IMPORTED_MODULE_5__["TLN_NAV_BAR_OPEN_STATE_PARAM"], type: "boolean" },
current_manuscript_iri: { param: _constants__WEBPACK_IMPORTED_MODULE_5__["TLN_MANUSCRIPT_PARAM"], type: "string" },
fullscreen: { param: _constants__WEBPACK_IMPORTED_MODULE_5__["TLN_FULLSCREEN_PARAM"], type: "boolean" },
selectedViewOption: { param: _constants__WEBPACK_IMPORTED_MODULE_5__["TLN_VIEW_OPTION_PARAM"], type: "string" },
selectedLines: { param: _constants__WEBPACK_IMPORTED_MODULE_5__["TLN_SELECTED_LINES_PARAM"], type: "string" } };
this.selectedViewOption = _constants__WEBPACK_IMPORTED_MODULE_5__["DEFAULT_VIEW_OPTION"];
this.updating = false;
this.viewOptions = [_constants__WEBPACK_IMPORTED_MODULE_5__["VIEW_OPTIONS"].TRANSKRIPTION, _constants__WEBPACK_IMPORTED_MODULE_5__["VIEW_OPTIONS"].FAKSIMILE, _constants__WEBPACK_IMPORTED_MODULE_5__["VIEW_OPTIONS"].SYNOPSIS, _constants__WEBPACK_IMPORTED_MODULE_5__["VIEW_OPTIONS"].SYNOPSIS_B];
}
ngOnInit() {
let tlnQueryService = (this.queryService != null) ? this.queryService : this.localQueryService;
this.dataHandler.addHandler('manuscript_unity', { 'handler': _datatypes_navigation__WEBPACK_IMPORTED_MODULE_4__["TlnManuscriptUnity"], 'next_key': 'navigation_page' });
this.dataHandler.addHandler('navigation_page', ['current_page', 'geneticOrders']);
this.dataHandler.addHandler('current_page', { 'handler': _datatypes_navigation__WEBPACK_IMPORTED_MODULE_4__["TlnNavigationPage"] });
this.dataHandler.addHandler('geneticOrders', { 'handler': _datatypes_text_version__WEBPACK_IMPORTED_MODULE_7__["TlnTextGeneticOrder"] });
this.dataHandler.setQueryService(tlnQueryService);
this.dataHandler.start_processing.subscribe((started) => {
this.updating = true;
});
this.dataHandler.processing_finished.subscribe((finished) => {
this.updating = false;
});
super.ngOnInit();
this.pageViewService.reference.subscribe((newReference) => {
this.updatePageToReference(newReference);
});
this.pageViewService.onClickedLine.subscribe((clickedLine) => {
let index = this.selectedLines.indexOf(clickedLine.id);
if (index > -1) {
this.selectedLines.splice(index, 1);
}
else {
this.selectedLines.push(clickedLine.id);
}
this.updateParams();
});
}
clearFindText() {
this.findText = '';
this.updateParams();
}
getPageTitle(page, numPages) {
if (page == null) {
return '';
}
let indexPrefix = (numPages != null) ? page.index + '/' + numPages : page.index;
return indexPrefix + ': ' + page.title + ' ' + page.number;
}
readParams(params) {
super.readParams(params);
if (this.dataHandler.ready && (this.current_page == null || this.current_page.id != this.current_iri)) {
this.dataHandler.resetData('navigation_page');
if (this.current_manuscript_iri != null) {
//this.dataHandler.debug = true;
this.dataHandler.conditionalAddHandler(_datatypes_basic_datatype__WEBPACK_IMPORTED_MODULE_6__["IsReconstructedKonvolut"].getQuery(this.current_manuscript_iri), 'current_page', { handler: _datatypes_navigation__WEBPACK_IMPORTED_MODULE_4__["TlnNavigationPage"] }, { handler: _datatypes_navigation__WEBPACK_IMPORTED_MODULE_4__["TlnNavigationPage"] });
this.dataHandler.getData('manuscript_unity', this.current_manuscript_iri, this.current_iri);
}
else {
this.dataHandler.getData('current_page', this.current_iri);
}
}
}
setCurrentIri(pageIri, manuscriptIir) {
this.dataHandler.stop_processing.emit(true);
this.current_iri = pageIri;
this.updateParams();
}
showInformation() {
let parentData = {
geneticOrders: this.geneticOrders,
page: this.current_page,
manuscript_iri: this.current_manuscript_iri,
parentActivatedRoute: this.activatedRoute.parent
};
this.bottomSheet.open(_tln_information_tln_information_component__WEBPACK_IMPORTED_MODULE_11__["TlnInformationComponent"], {
data: parentData
});
}
updatePageToReference(reference) {
this.current_iri = reference.page.id;
this.selectedLines = [reference.line.id];
this.updateParams();
}
};
TlnViewerNavigation.ctorParameters = () => [
{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ElementRef"] },
{ type: _angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_3__["MatBottomSheet"] },
{ type: _services__WEBPACK_IMPORTED_MODULE_10__["PageViewService"] },
{ type: _services__WEBPACK_IMPORTED_MODULE_10__["TlnQueryService"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"] }
];
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TlnViewerNavigation.prototype, "queryService", void 0);
TlnViewerNavigation = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'tln-viewer-navigation',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./tln-viewer-navigation.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./tln-viewer-navigation.component.css */ "./src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.css")).default]
})
], TlnViewerNavigation);
/***/ }),
/***/ "./src/app/tln-edition/tooltip/tool-tip.component.css":
/*!************************************************************!*\
!*** ./src/app/tln-edition/tooltip/tool-tip.component.css ***!
\************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony default export */ __webpack_exports__["default"] = (".tooltip {\n position: absolute;\n /*color: white;\n background-color: black;*/\n border-radius: 10px;\n padding: 8px;\n font-size: 0.8em;\n opacity: 0.65;\n z-index: 1000;\n}\ndiv .text, .edited_text, .overwritten {\n display: block;\n}\nspan {\n display: inline;\n}\n.deleted {\n text-decoration: line-through;\n -webkit-text-decoration-color: red;\n text-decoration-color: red;\n}\n.blackfg {\n color: black;\n}\n.word { \n opacity: 0.7; \n background-color: black;\n color: white;\n}\n.foreignHand { \n opacity: 0.5; \n background-color: blue; \n color: white;\n}\n.continuation { \n opacity: 1.0; \n background-color: black; \n color: white;\n}\n.copyright { \n opacity: 1.0; \n background-color: white; \n color: black;\n}\n\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90b29sdGlwL3Rvb2wtdGlwLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Q0FDQyxrQkFBa0I7Q0FDbEI7MEJBQ3lCO0NBQ3pCLG9CQUFvQjtDQUNwQixZQUFZO0NBQ1osZ0JBQWdCO0NBQ2hCLGFBQWE7Q0FDYixhQUFhO0FBQ2Q7QUFDQTtHQUNHLGNBQWM7QUFDakI7QUFDQTtHQUNHLGVBQWU7QUFDbEI7QUFDQTtHQUNHLDZCQUE2QjtHQUM3QixrQ0FBMEI7V0FBMUIsMEJBQTBCO0FBQzdCO0FBQ0E7R0FDRyxZQUFZO0FBQ2Y7QUFDQTtHQUNHLFlBQVk7R0FDWix1QkFBdUI7R0FDdkIsWUFBWTtBQUNmO0FBQ0E7R0FDRyxZQUFZO0dBQ1osc0JBQXNCO0dBQ3RCLFlBQVk7QUFDZjtBQUNBO0dBQ0csWUFBWTtHQUNaLHVCQUF1QjtHQUN2QixZQUFZO0FBQ2Y7QUFDQTtHQUNHLFlBQVk7R0FDWix1QkFBdUI7R0FDdkIsWUFBWTtBQUNmIiwiZmlsZSI6ImFwcC90bG4tZWRpdGlvbi90b29sdGlwL3Rvb2wtdGlwLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudG9vbHRpcCB7XG4gcG9zaXRpb246IGFic29sdXRlO1xuIC8qY29sb3I6IHdoaXRlO1xuIGJhY2tncm91bmQtY29sb3I6IGJsYWNrOyovXG4gYm9yZGVyLXJhZGl1czogIDEwcHg7XG4gcGFkZGluZzogOHB4O1xuIGZvbnQtc2l6ZTogMC44ZW07XG4gb3BhY2l0eTogMC42NTtcbiB6LWluZGV4OiAxMDAwO1xufVxuZGl2IC50ZXh0LCAuZWRpdGVkX3RleHQsIC5vdmVyd3JpdHRlbiB7XG4gICBkaXNwbGF5OiBibG9jaztcbn1cbnNwYW4ge1xuICAgZGlzcGxheTogaW5saW5lO1xufVxuLmRlbGV0ZWQge1xuICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHJlZDtcbn1cbi5ibGFja2ZnIHtcbiAgIGNvbG9yOiBibGFjaztcbn1cbi53b3JkIHsgXG4gICBvcGFjaXR5OiAwLjc7IFxuICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gICBjb2xvcjogd2hpdGU7XG59XG4uZm9yZWlnbkhhbmQgeyBcbiAgIG9wYWNpdHk6IDAuNTsgXG4gICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOyBcbiAgIGNvbG9yOiB3aGl0ZTtcbn1cbi5jb250aW51YXRpb24geyBcbiAgIG9wYWNpdHk6IDEuMDsgXG4gICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsgXG4gICBjb2xvcjogd2hpdGU7XG59XG4uY29weXJpZ2h0IHsgXG4gICBvcGFjaXR5OiAxLjA7IFxuICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IFxuICAgY29sb3I6IGJsYWNrO1xufVxuXG4iXX0= */");
+/* harmony default export */ __webpack_exports__["default"] = (".tooltip {\n position: absolute;\n /*color: white;\n background-color: black;*/\n border-radius: 10px;\n padding: 8px;\n font-size: 0.8em;\n opacity: 0.65;\n z-index: 1000;\n}\ndiv .text, .edited_text, .overwritten {\n display: block;\n}\nspan {\n display: inline;\n}\n.deleted {\n text-decoration: line-through;\n -webkit-text-decoration-color: red;\n text-decoration-color: red;\n}\n.blackfg {\n color: black;\n}\n.word { \n opacity: 0.7; \n background-color: black;\n color: white;\n}\n.foreignHand { \n opacity: 0.5; \n background-color: blue; \n color: white;\n}\n.continuation { \n opacity: 1.0; \n background-color: black; \n color: white;\n}\n.copyright { \n opacity: 1.0; \n background-color: white; \n color: black;\n}\n\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rvb2x0aXAvdG9vbC10aXAuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtDQUNDLGtCQUFrQjtDQUNsQjswQkFDeUI7Q0FDekIsb0JBQW9CO0NBQ3BCLFlBQVk7Q0FDWixnQkFBZ0I7Q0FDaEIsYUFBYTtDQUNiLGFBQWE7QUFDZDtBQUNBO0dBQ0csY0FBYztBQUNqQjtBQUNBO0dBQ0csZUFBZTtBQUNsQjtBQUNBO0dBQ0csNkJBQTZCO0dBQzdCLGtDQUEwQjtXQUExQiwwQkFBMEI7QUFDN0I7QUFDQTtHQUNHLFlBQVk7QUFDZjtBQUNBO0dBQ0csWUFBWTtHQUNaLHVCQUF1QjtHQUN2QixZQUFZO0FBQ2Y7QUFDQTtHQUNHLFlBQVk7R0FDWixzQkFBc0I7R0FDdEIsWUFBWTtBQUNmO0FBQ0E7R0FDRyxZQUFZO0dBQ1osdUJBQXVCO0dBQ3ZCLFlBQVk7QUFDZjtBQUNBO0dBQ0csWUFBWTtHQUNaLHVCQUF1QjtHQUN2QixZQUFZO0FBQ2YiLCJmaWxlIjoidGxuLWVkaXRpb24vdG9vbHRpcC90b29sLXRpcC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnRvb2x0aXAge1xuIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAvKmNvbG9yOiB3aGl0ZTtcbiBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsqL1xuIGJvcmRlci1yYWRpdXM6ICAxMHB4O1xuIHBhZGRpbmc6IDhweDtcbiBmb250LXNpemU6IDAuOGVtO1xuIG9wYWNpdHk6IDAuNjU7XG4gei1pbmRleDogMTAwMDtcbn1cbmRpdiAudGV4dCwgLmVkaXRlZF90ZXh0LCAub3ZlcndyaXR0ZW4ge1xuICAgZGlzcGxheTogYmxvY2s7XG59XG5zcGFuIHtcbiAgIGRpc3BsYXk6IGlubGluZTtcbn1cbi5kZWxldGVkIHtcbiAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiByZWQ7XG59XG4uYmxhY2tmZyB7XG4gICBjb2xvcjogYmxhY2s7XG59XG4ud29yZCB7IFxuICAgb3BhY2l0eTogMC43OyBcbiAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgY29sb3I6IHdoaXRlO1xufVxuLmZvcmVpZ25IYW5kIHsgXG4gICBvcGFjaXR5OiAwLjU7IFxuICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsgXG4gICBjb2xvcjogd2hpdGU7XG59XG4uY29udGludWF0aW9uIHsgXG4gICBvcGFjaXR5OiAxLjA7IFxuICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7IFxuICAgY29sb3I6IHdoaXRlO1xufVxuLmNvcHlyaWdodCB7IFxuICAgb3BhY2l0eTogMS4wOyBcbiAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyBcbiAgIGNvbG9yOiBibGFjaztcbn1cblxuIl19 */");
/***/ }),
/***/ "./src/app/tln-edition/tooltip/tool-tip.component.ts":
/*!***********************************************************!*\
!*** ./src/app/tln-edition/tooltip/tool-tip.component.ts ***!
\***********************************************************/
/*! exports provided: ToolTipComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ToolTipComponent", function() { return ToolTipComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _services__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../services */ "./src/app/tln-edition/services.ts");
/* harmony import */ var _datatypes_earlier_version__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../datatypes/earlier_version */ "./src/app/tln-edition/datatypes/earlier_version.ts");
/* harmony import */ var _datatypes_line_reference__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../datatypes/line_reference */ "./src/app/tln-edition/datatypes/line_reference.ts");
/* harmony import */ var _datatypes_preview_data__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../datatypes/preview_data */ "./src/app/tln-edition/datatypes/preview_data.ts");
/* harmony import */ var _datatypes_positional_markup__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../datatypes/positional-markup */ "./src/app/tln-edition/datatypes/positional-markup.ts");
/* harmony import */ var _data_handler__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../data_handler */ "./src/app/tln-edition/data_handler.ts");
/* harmony import */ var _lib_ngx_mat_standoff_markup_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../lib/ngx-mat-standoff-markup.component */ "./src/app/lib/ngx-mat-standoff-markup.component.ts");
/**
* This component can be used to show extended tooltips, i.e. with deleted words and distinguished
* words if they are by foreign hand.
**/
let ToolTipComponent = class ToolTipComponent extends _services__WEBPACK_IMPORTED_MODULE_2__["ConfigurableComponent"] {
constructor(pageViewService, tlnQueryService) {
super();
this.pageViewService = pageViewService;
this.tlnQueryService = tlnQueryService;
this.fullscreen = false;
this.hasMenuIssues = false;
//fullscreen: boolean = false;
/**
* content keys
**/
this.contentKeys = ['word', 'foreignHand', 'copyright', 'continuation'];
this.debug = false;
this.position = 0;
/**
* the data handler of this component that retrieves
* data and instantiates it according to their proper
* datatypes.
**/
this.dataHandler = new _data_handler__WEBPACK_IMPORTED_MODULE_7__["DataHandler"](this);
/**
* a list of positional style markups.
**/
this.positionalStyleMarkups = [];
this.continuation_words = [];
this.cssDef = { type: 'text', css: '' };
this.mySettings = new _lib_ngx_mat_standoff_markup_component__WEBPACK_IMPORTED_MODULE_8__["StandoffMarkupSettings"](true, true, false, 1);
this.width = 300;
/**
* actual tooltip position
**/
this.tooltipPosition = { visible: false, clientX: -1, clientY: -1, layerX: -1, layerY: -1 };
/**
* whether or not to show extended tooltips
**/
this.useExtendedTooltip = true;
/**
* y offset for tooltip position relative to mouse position
**/
this.yOffset = 25;
this.menuIssueOffset = 80;
this.menuIssueXOffset = 55;
this.topOffset = 0;
this.leftOffset = 0;
}
ngOnChanges() {
super.ngOnChanges();
/*if((this.fullscreen && this.fullscreenString != 'true') || (!this.fullscreen && this.fullscreenString == 'true')){
this.fullscreen = (this.fullscreenString == 'true')
}*/
if (this.tlnQueryService != null && !this.dataHandler.ready) {
this.dataHandler.addHandler('earlier_version', { 'handler': _datatypes_earlier_version__WEBPACK_IMPORTED_MODULE_3__["TlnEarlierVersionStub"] });
this.dataHandler.addHandler('overwrittenWord', { 'handler': _datatypes_earlier_version__WEBPACK_IMPORTED_MODULE_3__["TlnOverwrittenStub"] });
this.dataHandler.addHandler('positionalStyleMarkups', { 'handler': _datatypes_positional_markup__WEBPACK_IMPORTED_MODULE_6__["TlnFilteredPositionalStyleMarkup"] });
this.dataHandler.addHandler('sourceLineReference', { 'handler': _datatypes_line_reference__WEBPACK_IMPORTED_MODULE_4__["TlnLineReference"] });
this.dataHandler.addHandler('continuation_words', { 'handler': _datatypes_preview_data__WEBPACK_IMPORTED_MODULE_5__["TlnPreviewWord"] });
this.dataHandler.addHandler('wordStubs', ['earlier_version', 'overwrittenWord', 'positionalStyleMarkups']);
this.dataHandler.setQueryService(this.tlnQueryService);
this.tlnQueryService.reset_data.subscribe((data_key) => {
if (data_key == 'page_content') {
this.resetData();
}
});
}
}
/**
* listen on pageViewService
**/
ngOnInit() {
this.pageViewService.mousePosition.subscribe((newPoint) => {
this.tooltipPosition = newPoint;
//console.log(this.tooltipPosition);
});
this.pageViewService.onHoveredWord.subscribe((newWord) => { this.setContent('word', newWord); this.updateEarlierVersion(); });
this.pageViewService.offHoveredWord.subscribe((newWord) => this.word = null);
this.pageViewService.onHoveredTextByForeignHand.subscribe((newTextByForeignHand) => { this.setContent('foreignHand', newTextByForeignHand); });
this.pageViewService.offHoveredTextByForeignHand.subscribe((newTextByForeignHand) => this.foreignHand = null);
this.pageViewService.copyright.subscribe((copyright) => {
this.setContent('copyright', (this.copyright == null) ? copyright : null);
});
this.pageViewService.onHoveredContinuation.subscribe((newContinuation) => {
if (this.continuation == null) {
this.updateLineContinuation(newContinuation);
}
});
this.pageViewService.offHoveredContinuation.subscribe((newContinuation) => { this.dataHandler.stop_processing.emit(true); this.continuation = null; this.updateLineContinuation(); });
}
/**
* reset data
**/
resetData() {
this.dataHandler.resetData('wordStubs');
this.contentKeys.forEach(key => this[key] = null);
}
/**
* update earlier version of word
**/
updateEarlierVersion() {
if (this.word != null && this.dataHandler.ready) {
this.dataHandler.resetData('wordStubs');
this.dataHandler.getData('wordStubs', this.word.id);
}
}
updateLineContinuation(continuation) {
this.setContent('continuation', continuation);
if (continuation != null && this.dataHandler.ready) {
this.dataHandler.resetData('continuation_words');
if (continuation.source.page != null) {
this.dataHandler.getData('continuation_words', this.continuation.reference.line.id);
}
}
}
getTop(key) {
if (this.menuOffsetPosition != undefined && this.menuOffsetPosition != null && this.container != null && this.container != undefined) {
let containerRect = this.container.getBoundingClientRect();
this.topOffset = containerRect.top;
if (!this.fullscreen) {
this.topOffset = this.topOffset - this.menuOffsetPosition.y;
}
}
return this.tooltipPosition.clientY - this.topOffset + this.yOffset;
}
getLeft(width) {
let containerRect = (this.container != null && this.container != undefined)
? this.container.getBoundingClientRect() : null;
this.leftOffset = (this.menuOffsetPosition != undefined && this.menuOffsetPosition != null && containerRect != null) ? containerRect.left : 0;
let left = this.tooltipPosition.clientX - this.leftOffset;
if (this.menuOffsetPosition != undefined && this.menuOffsetPosition != null) {
left += this.menuOffsetPosition.x;
}
if (!this.tooltipPosition.visible
|| this.continuation == null
|| this.continuation.show == null
|| this.continuation.show != 'to') {
return left;
}
return (left + width <= containerRect.right) ? left : left - (left + width - containerRect.right) - 5;
}
/**
* Set tooltip's content and remove prior content.
* @param key key of content
* @param content new content
**/
setContent(key, content) {
this.contentKeys.forEach(key => this[key] = null);
this[key] = content;
this.currentKey = key;
}
/**
* whether tooltip has any content (i.e. any content of {@link /components/ToolTipComponent.html#contentKeys|contentKeys})
**/
hasAnyContent() {
return this.contentKeys.filter(key => this[key] != null).length > 0;
}
};
ToolTipComponent.ctorParameters = () => [
{ type: _services__WEBPACK_IMPORTED_MODULE_2__["PageViewService"] },
{ type: _services__WEBPACK_IMPORTED_MODULE_2__["TlnQueryService"] }
];
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('fullscreen')
], ToolTipComponent.prototype, "fullscreen", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], ToolTipComponent.prototype, "hasMenuIssues", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], ToolTipComponent.prototype, "menuOffsetPosition", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], ToolTipComponent.prototype, "container", void 0);
ToolTipComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'tool-tip',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./tool-tip.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tooltip/tool-tip.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./tool-tip.component.css */ "./src/app/tln-edition/tooltip/tool-tip.component.css")).default]
})
], ToolTipComponent);
/***/ }),
/***/ "./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; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
// 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 tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_platform_browser_dynamic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/platform-browser-dynamic */ "./node_modules/@angular/platform-browser-dynamic/fesm2015/platform-browser-dynamic.js");
/* harmony import */ var _app_app_module__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./app/app.module */ "./src/app/app.module.ts");
/* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./environments/environment */ "./src/environments/environment.ts");
if (_environments_environment__WEBPACK_IMPORTED_MODULE_4__["environment"].production) {
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["enableProdMode"])();
}
Object(_angular_platform_browser_dynamic__WEBPACK_IMPORTED_MODULE_2__["platformBrowserDynamic"])().bootstrapModule(_app_app_module__WEBPACK_IMPORTED_MODULE_3__["AppModule"])
.catch(err => console.error(err));
/***/ }),
/***/ 0:
/*!***************************!*\
!*** multi ./src/main.ts ***!
\***************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(/*! /data/home/knister0/githubs/NietzscheBeta/nietzsche-beta-app/src/main.ts */"./src/main.ts");
/***/ }),
/***/ 1:
/*!********************!*\
!*** fs (ignored) ***!
\********************/
/*! no static exports found */
/***/ (function(module, exports) {
/* (ignored) */
/***/ }),
/***/ 2:
/*!**********************!*\
!*** path (ignored) ***!
\**********************/
/*! no static exports found */
/***/ (function(module, exports) {
/* (ignored) */
/***/ })
},[[0,"runtime","vendor"]]]);
//# sourceMappingURL=main-es2015.js.map
\ No newline at end of file
diff --git a/nietzsche-beta-app/dist/nietzsche-beta-app/main-es2015.js.map b/nietzsche-beta-app/dist/nietzsche-beta-app/main-es2015.js.map
index 4ef6b4b..6a25b85 100644
--- a/nietzsche-beta-app/dist/nietzsche-beta-app/main-es2015.js.map
+++ b/nietzsche-beta-app/dist/nietzsche-beta-app/main-es2015.js.map
@@ -1 +1 @@
-{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./src/app/app.component.html","./src/app/content-view-tab-component/content-view-tab-component.component.html","./src/app/home.component.html","./src/app/impressum.component.html","./src/app/lib/ngx-mat-standoff-markup.component.html","./src/app/main-menu-component/main-menu-component.component.html","./src/app/manuscript-view-component/manuscript-view-component.component.html","./src/app/navigation-list-component/navigation-list-component.component.html","./src/app/page-view-wrapper-component/page-view-wrapper.component.html","./src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.html","./src/app/page-view/copyright/copyright.component.html","./src/app/page-view/margin-field/line-reference/line-reference.component.html","./src/app/page-view/margin-field/margin-field.component.html","./src/app/page-view/page-view.component.html","./src/app/page-view/textfield-component/textfield.component.html","./src/app/project.component.html","./src/app/rhizome-view-component/rhizome-view-component.component.html","./src/app/tln-edition/tln-crossref/navigation/navigation.component.html","./src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.html","./src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.html","./src/app/tln-edition/tln-crossref/tln-crossref.component.html","./src/app/tln-edition/tln-crossref/version-view/version-view.component.html","./src/app/tln-edition/tln-fulltext/navigation/navigation.component.html","./src/app/tln-edition/tln-fulltext/tln-fulltext.component.html","./src/app/tln-edition/tln-information/tln-information.component.html","./src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.html","./src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.html","./src/app/tln-edition/tln-navigation-elements/search.component.html","./src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.html","./src/app/tln-edition/tln-navigation-elements/zoom.component.html","./src/app/tln-edition/tln-page-view.component.html","./src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.html","./src/app/tln-edition/tooltip/tool-tip.component.html","./node_modules/tslib/tslib.es6.js","./src/app/app.component.css","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/app.routing.ts","./src/app/constants.ts","./src/app/content-view-tab-component/content-view-routes.ts","./src/app/content-view-tab-component/content-view-tab-component.component.scss","./src/app/content-view-tab-component/content-view-tab-component.component.ts","./src/app/content-view-tab-component/lazy-image-load-directive.directive.ts","./src/app/home.component.css","./src/app/home.component.ts","./src/app/impressum.component.css","./src/app/impressum.component.ts","./src/app/lib/ngx-mat-standoff-markup.component.ts","./src/app/lib/ngx-mat-standoff-markup.module.ts","./src/app/lib/ngx-mat-standoff-markup.service.ts","./src/app/main-menu-component/main-menu-component.component.scss","./src/app/main-menu-component/main-menu-component.component.ts","./src/app/manuscript-view-component/manuscript-view-component.component.scss","./src/app/manuscript-view-component/manuscript-view-component.component.ts","./src/app/models/models.ts","./src/app/navigation-list-component/navigation-list-component.component.scss","./src/app/navigation-list-component/navigation-list-component.component.ts","./src/app/navigation-list-component/navtree-directive.directive.ts","./src/app/page-view-wrapper-component/page-view-wrapper.component.scss","./src/app/page-view-wrapper-component/page-view-wrapper.component.ts","./src/app/page-view/configurable-component.ts","./src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.css","./src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.ts","./src/app/page-view/copyright/copyright.component.css","./src/app/page-view/copyright/copyright.component.ts","./src/app/page-view/highlight_status.ts","./src/app/page-view/interacted.directive.ts","./src/app/page-view/margin-field/line-reference/line-reference.component.css","./src/app/page-view/margin-field/line-reference/line-reference.component.ts","./src/app/page-view/margin-field/margin-field.component.css","./src/app/page-view/margin-field/margin-field.component.ts","./src/app/page-view/page-view.component.css","./src/app/page-view/page-view.component.ts","./src/app/page-view/page-view.module.ts","./src/app/page-view/page-view.service.ts","./src/app/page-view/textfield-component/matrix.ts","./src/app/page-view/textfield-component/textfield.component.css","./src/app/page-view/textfield-component/textfield.component.ts","./src/app/project.component.css","./src/app/project.component.ts","./src/app/rhizome-view-component/rhizome-view-component.component.css","./src/app/rhizome-view-component/rhizome-view-component.component.ts","./src/app/services/navigation-service.service.ts","./src/app/services/query.service.ts","./src/app/tln-edition/constants.ts","./src/app/tln-edition/data_handler.ts","./src/app/tln-edition/datatypes/basic_datatype.ts","./src/app/tln-edition/datatypes/earlier_version.ts","./src/app/tln-edition/datatypes/faksimile_image.ts","./src/app/tln-edition/datatypes/foreign_text.ts","./src/app/tln-edition/datatypes/image.ts","./src/app/tln-edition/datatypes/line.ts","./src/app/tln-edition/datatypes/line_reference.ts","./src/app/tln-edition/datatypes/manuscript.ts","./src/app/tln-edition/datatypes/navigation.ts","./src/app/tln-edition/datatypes/page.ts","./src/app/tln-edition/datatypes/positional-markup.ts","./src/app/tln-edition/datatypes/positional_object.ts","./src/app/tln-edition/datatypes/preview_data.ts","./src/app/tln-edition/datatypes/search.ts","./src/app/tln-edition/datatypes/svg_image.ts","./src/app/tln-edition/datatypes/text_version.ts","./src/app/tln-edition/datatypes/word.ts","./src/app/tln-edition/debug.pipe.ts","./src/app/tln-edition/route-reader.ts","./src/app/tln-edition/route-updater.ts","./src/app/tln-edition/services.ts","./src/app/tln-edition/tln-crossref/navigation/navigation.component.css","./src/app/tln-edition/tln-crossref/navigation/navigation.component.ts","./src/app/tln-edition/tln-crossref/page-version-view/filter.pipe.ts","./src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.css","./src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.ts","./src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.css","./src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.ts","./src/app/tln-edition/tln-crossref/tln-crossref.component.css","./src/app/tln-edition/tln-crossref/tln-crossref.component.ts","./src/app/tln-edition/tln-crossref/version-view/version-view.component.css","./src/app/tln-edition/tln-crossref/version-view/version-view.component.ts","./src/app/tln-edition/tln-edition.module.ts","./src/app/tln-edition/tln-fulltext/navigation/navigation.component.css","./src/app/tln-edition/tln-fulltext/navigation/navigation.component.ts","./src/app/tln-edition/tln-fulltext/page-result-filter.pipe.ts","./src/app/tln-edition/tln-fulltext/result-pipe.pipe.ts","./src/app/tln-edition/tln-fulltext/tln-fulltext.component.css","./src/app/tln-edition/tln-fulltext/tln-fulltext.component.ts","./src/app/tln-edition/tln-height.directive.ts","./src/app/tln-edition/tln-information/tln-information.component.css","./src/app/tln-edition/tln-information/tln-information.component.ts","./src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.css","./src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.ts","./src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.scss","./src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.ts","./src/app/tln-edition/tln-navigation-elements/search.component.css","./src/app/tln-edition/tln-navigation-elements/search.component.ts","./src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.css","./src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.ts","./src/app/tln-edition/tln-navigation-elements/zoom.component.css","./src/app/tln-edition/tln-navigation-elements/zoom.component.ts","./src/app/tln-edition/tln-navigation-elements/zoom.pipe.ts","./src/app/tln-edition/tln-page-view.component.css","./src/app/tln-edition/tln-page-view.component.ts","./src/app/tln-edition/tln-query.service.ts","./src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.css","./src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.ts","./src/app/tln-edition/tooltip/tool-tip.component.css","./src/app/tln-edition/tooltip/tool-tip.component.ts","./src/environments/environment.ts","./src/main.ts","fs (ignored)","path (ignored)"],"names":[],"mappings":"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","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\";","export default \"<div [class]=\\\"theme\\\">\\n <mat-card *ngIf=\\\"!fullScreen || fullScreen !== 'true'\\\">\\n <mat-select placeholder=\\\"Standard Theme\\\"\\n disabled=\\\"true\\\"\\n [(ngModel)]=\\\"theme\\\"\\n (change) = \\\"onThemeChange()\\\">\\n <mat-option value=\\\"standard-theme\\\">Beta-Version {{version}}</mat-option>\\n <mat-option value=\\\"green-theme\\\">Green</mat-option>\\n </mat-select>\\n </mat-card>\\n <mat-card *ngIf=\\\"!fullScreen || fullScreen !== 'true'\\\">\\n <h1>Der sp&auml;te Nietzsche</h1>\\n </mat-card>\\n <app-main-menu-component></app-main-menu-component>\\n <router-outlet></router-outlet>\\n <!--<div style = \\\"padding: 60px;\\\"><app-bergwerke></app-bergwerke></div>-->\\n</div>\\n\"","export default \"<mat-drawer-container [hasBackdrop]= false [autosize]=\\\"true\\\">\\n <mat-drawer [mode]=\\\"navBarOpenMode\\\" [disableClose]=\\\"true\\\" [opened]=\\\"navBarOpenState\\\">\\n <app-navigation-list-component></app-navigation-list-component>\\n </mat-drawer>\\n <mat-drawer-content>\\n <div>\\n <mat-card *ngIf=\\\"!fullscreen && queryParams\\\">\\n <nav mat-tab-nav-bar>\\n <a mat-tab-link\\n *ngFor=\\\"let link of navTabLinks\\\"\\n [routerLink]=\\\"link.link\\\"\\n (click)=\\\"this.setActiveLink(link.link)\\\"\\n [queryParams]=\\\"queryParams\\\"\\n [active]=\\\"link.isActive\\\">\\n {{link.label}}\\n </a>\\n </nav>\\n </mat-card>\\n <router-outlet></router-outlet>\\n </div>\\n </mat-drawer-content>\\n</mat-drawer-container>\\n\"","export default \"<mat-card>\\n <mat-card-title>Der sp&auml;te Nietzsche. Digitale Manuskriptedition</mat-card-title>\\n <mat-card-content>\\n <div>Herausgegeben von Beat Röllin, Dominique Steinbach, Christian Steiner, René Stockmar und Hubert Thüring</div>\\n <div>Transkription und philologischer Kommentar: Thomas Riebe, Beat Röllin und René Stockmar unter Mitarbeit von Marie-Luise Haase und Michael Kohlenbach</div>\\n <div>Digitale Edition: Dominique Steinbach und Christian Steiner unter Mitarbeit von Eric Erhardt und Myriam Schmidt</div>\\n </mat-card-content>\\n <mat-card-content>\\n <div>Gefördert durch den Schweizerischen Nationalfonds (<a href=\\\"http://www.snf.ch/de/Seiten/default.aspx\\\">SNF</a>)</div>\\n <div>Unterstützt durch das Projekt \\\"Nationale Infrastruktur für Editionen - Infrastructure nationale pour les éditions\\\" (<a href=\\\"https://www.nie-ine.ch/\\\">NIE - INE</a>)</div>\\n\\n <div class=\\\"skip\\\">Copyright <a href=\\\"https://www.unibas.ch\\\">Universität Basel</a></div>\\n </mat-card-content>\\n <mat-card-content>\\n <h3>Hinweis zur Beta-Version</h3>\\n <div>Bitte nehmen Sie zur Kenntnis, dass die digitale Edition sowie die darin präsentierten Inhalte noch in Entwicklung stehen und dass\\n <ul>\\n <li>die Texte und Bilder noch nicht persistent zitierbar sind </li>\\n <li>die Menüführung oder Features/Funktionalitäten im Verlauf der weiteren Entwicklung ändern können</li>\\n <li>Browserkompatibilität noch nicht übergreifend gegeben ist; wir empfehlen die Verwendung von Mozilla Firefox oder Google Chromium in den aktuellen Versionen </li>\\n <li>erst die Daten zu <a [routerLink]=\\\"manuscriptLink\\\" [queryParams]=\\\"mpXIVParam\\\">Mp XIV</a> eingehend erfasst und &uuml;berpr&uuml;ft wurden. \\n <!--Dagegen befinden sich die Daten zu <a [routerLink]=\\\"manuscriptLink\\\" [queryParams]=\\\"mpXVParam\\\">Mp XV</a> erst in einem fr&uuml;hen Bearbeitungsstadium. -->\\n </li>\\n </ul>\\n </div>\\n </mat-card-content>\\n <mat-card-content>\\n <img height=\\\"52\\\" width=\\\"319\\\" src=\\\"http://www.snf.ch/_layouts/15/Snf.Internet/Images/logo_de.gif\\\"/>\\n <img class=\\\"second\\\" height=\\\"52\\\" width=\\\"164\\\" src=\\\"https://www.unibas.ch/dam/jcr:9a8e9aff-decd-45a7-bd46-284a3da3f86e/UniBas_Logo_DE_Schwarz_RGB_65.jpg\\\"/>\\n <!--<img class=\\\"second\\\" height=\\\"52\\\" width=\\\"164\\\" src=\\\"/assets/uni-basel-logo.svg\\\"/>-->\\n </mat-card-content>\\n\\n</mat-card>\\n\"","export default \"<mat-card>\\n <mat-card-title>Kontakt</mat-card-title>\\n <mat-card-content>\\n <div><a href=\\\"mailto:hubert.thuering@unibas.ch\\\">Prof. Dr. Hubert Thüring</a></div>\\n <div><a href=\\\"https://germanistik.philhist.unibas.ch/de/forschung/forschungsprojekte/ndl/der-spaete-nietzsche/\\\">Nietzsche-Edition</a></div>\\n <div> Deutsches Seminar</div>\\n <div>Universität Basel</div>\\n <div>Nadelberg 4</div>\\n <div>4051 Basel</div>\\n <div> Tel.: +41 (0)61 207 34 29</div>\\n </mat-card-content>\\n</mat-card>\\n<mat-card>\\n <mat-card-title>Rechtliche Hinweise</mat-card-title>\\n <mat-card-content>\\n <mat-card-subtitle>Haftungsbeschränkung</mat-card-subtitle>\\n <div class=\\\"text\\\"><!--Die Inhalte dieser Website werden mit größtmöglicher Sorgfalt erstellt. Der Anbieter übernimmt jedoch keine Gewähr für die Richtigkeit, Vollständigkeit und Aktualität der bereitgestellten Rahmeninhalte, die nicht i.e.S. Bestandteil der Edition sind.--> Die Nutzung der Inhalte der Website erfolgt auf eigene Gefahr der Nutzer*in. Mit der reinen Nutzung der Website der Anbieter*in kommt keinerlei Vertragsverhältnis zwischen der Nutzer*in und der Anbieter*in zustande.</div>\\n </mat-card-content>\\n <mat-card-content>\\n <h3>Urheberrecht und Lizenz</h3>\\n <div class=\\\"subcontent\\\">\\n <mat-card-subtitle>Transkription und Daten der digitalen Edition</mat-card-subtitle>\\n <img src=\\\"/assets/by.svg\\\"/>\\n <div class=\\\"text\\\">Die Transkriptionen und Daten der digitalen Edition sind in ihrem ganzen Umfang frei zugänglich und dürfen zu den Bedingungen der Creative Commons Public Licence „Namensnennung“, Version 4.0 (<a href=\\\"https://creativecommons.org/licenses/by/4.0/deed.de\\\">CC BY 4.0</a>) weitergegeben werden. Das Copyright darauf hat die <a href=\\\"https://www.unibas.ch\\\">Universit&auml;t Basel</a>.</div>\\n </div>\\n <div>\\n <mat-card-subtitle>Faksimiles</mat-card-subtitle>\\n <img src=\\\"/assets/by-nc-nd.svg\\\"/>\\n <div class=\\\"text\\\">Die Faksimiles werden von <a target=\\\"_new\\\" href=\\\"http://www.nietzschesource.org\\\">nietzschesource.org</a> gehostet und werden hier unver&auml;ndert dargestellt. Sie sind veröffentlicht unter der Creative Commons Public License „Namensnennung, Nicht kommerziell, Keine Bearbeitungen”, Version 4.0 <a href=\\\"http://creativecommons.org/licenses/by-nc-nd/4.0/deed.de\\\">(CC BY-NC-ND 4.0)</a>.</div>\\n </div>\\n </mat-card-content>\\n</mat-card>\\n\"","export default \"<span *ngIf=\\\"templateSegments\\\">\\n <link *ngIf=\\\"cssDef.type === 'url'\\\" rel=\\\"stylesheet\\\" type=\\\"text/css\\\" [href]='cssUrl'>\\n <span [style]=\\\"cssDef.type === 'text' ? this.sanitizer.bypassSecurityTrustStyle(cssDef.css) : ''\\\"\\n [attr.id]=\\\"parentId\\\" [class]=\\\"parentClass\\\">\\n <span *ngFor=\\\"let segment of templateSegments\\\"\\n (mousedown)=\\\"setSelectionStartIndex(segment.sStartIndex)\\\"\\n (mouseup)=\\\"setSelectedText(segment.sStartIndex)\\\">\\n <span [ngStyle] = \\\"segment.cssStyleTag\\\"\\n [ngClass] = \\\"segment.cssClass\\\"\\n (click)=\\\"onSegmentClick(segment)\\\">{{segment.sText}}</span>\\n </span>\\n </span>\\n</span>\\n\"","export default \"<mat-toolbar *ngIf=\\\"!fullScreen || fullScreen !== 'true'\\\">\\n <div>\\n <button mat-icon-button mat-button [routerLink]=\\\"homeLink\\\"\\n routerLinkActive=\\\"mat-accent\\\"\\n color=\\\"primary\\\"\\n aria-label=\\\"Go to landing page.\\\">\\n <mat-icon>home</mat-icon>\\n </button>\\n <button mat-button [routerLink]=\\\"contentViewLink\\\" [queryParams]=\\\"queryParams\\\" routerLinkActive=\\\"mat-accent\\\" color=\\\"primary\\\">Digitale Edition</button>\\n <button mat-button [disabled]= true [routerLink] = \\\"['doku']\\\" routerLinkActive=\\\"mat-accent\\\" color=\\\"primary\\\">Dokumentation</button>\\n <button mat-button [disabled]= true [routerLink] = \\\"['']\\\" routerLinkActive=\\\"mat-accent\\\" color=\\\"primary\\\">Daten und Endpunkte</button>\\n <button mat-button [disabled]= true [routerLink]=\\\"projectLink\\\" [queryParams]=\\\"queryParams\\\" routerLinkActive=\\\"mat-accent\\\" color=\\\"primary\\\">Projekt</button>\\n <button mat-button [routerLink]=\\\"impressumLink\\\" [queryParams]=\\\"queryParams\\\" routerLinkActive=\\\"mat-accent\\\" color=\\\"primary\\\">Impressum</button>\\n </div>\\n</mat-toolbar>\\n<router-outlet></router-outlet>\\n\"","export default \"<tln-manuscript-view></tln-manuscript-view>\\n\\n\"","export default \"<div class=\\\"fixed-nav-container\\\">\\n <mat-toolbar>Navigation</mat-toolbar>\\n <div *ngIf=\\\"navTrees && navTabIndex !== -1\\\">\\n <mat-tab-group [selectedIndex]=\\\"navTabIndex\\\" (selectedTabChange)=\\\"changeNavTreeViaRoute($event.index)\\\">\\n <mat-tab\\n *ngFor=\\\"let tree of navigationTreeDefs\\\"\\n label={{tree.label}}>\\n </mat-tab>\\n </mat-tab-group>\\n </div>\\n</div>\\n <div id=\\\"navlist\\\" class=\\\"navlist-container\\\" *ngIf=\\\"navTrees && navTabIndex !== -1\\\">\\n <mat-nav-list *ngIf=\\\"navTrees && navTrees[navTabIndex]\\\">\\n <mat-list-item *ngFor=\\\"let item of navTrees[navTabIndex].entries\\\"\\n (click)=\\\"onSelectNavItem(item)\\\"\\n [id] = \\\"item.tlnEntity.id\\\"\\n [class.active-item]=\\\"item.tlnEntity.id === navTrees[navTabIndex].selectedItem\\\">\\n <mat-card class = \\\"card-item\\\">\\n <mat-card-header>\\n <mat-card-title>\\n <span>{{item.tlnEntity.label}}</span>\\n </mat-card-title>\\n <mat-card-subtitle *ngIf=\\\"item.tlnEntity.description\\\">GSA-Signatur {{item.tlnEntity.description}}</mat-card-subtitle>\\n <mat-card-subtitle *ngIf=\\\"navTrees[navTabIndex].parentLabel\\\">{{navTrees[navTabIndex].parentLabel}}</mat-card-subtitle>\\n <img mat-card-avatar *ngIf=\\\"item.avatar\\\" [src]=\\\"item.avatar\\\"/>\\n </mat-card-header>\\n <mat-card-content>\\n <img class=\\\"thumbnail\\\" *ngIf=\\\"item.thumb\\\" [src]=\\\"item.thumb\\\"/>\\n <img class=\\\"thumbnail\\\" *ngIf=\\\"item.svg\\\" [src]=\\\"item.svg\\\"/>\\n </mat-card-content>\\n </mat-card>\\n </mat-list-item>\\n </mat-nav-list>\\n </div>\\n\\n\"","export default \"<div #tooltipContainer>\\n <tln-viewer-navigation [setMaxHeightTo]=\\\"pageView\\\"></tln-viewer-navigation>\\n <div id=\\\"content\\\">\\n <tln-page-view #pageView></tln-page-view>\\n </div>\\n <!--TODO: queryParams.fullscreen is string, not boolean! -->\\n <tool-tip [fullscreen]=\\\"queryParams.fullscreen == 'true'\\\" [menuOffsetPosition]=\\\"{x: 0, y: 86 }\\\" [container]=\\\"tooltipContainer\\\"></tool-tip>\\n</div>\\n\"","export default \"<div *ngIf=\\\"copyright\\\">\\n <h4 mat-subheader>Copyright Information:</h4>\\n <div [innerHTML]=\\\"copyright.text\\\"></div>\\n <div *ngIf=\\\"copyright.originalUrl\\\">URL: <a target=\\\"_new\\\" [href]=\\\"copyright.originalUrl\\\">{{copyright.originalUrl}}</a></div>\\n <div> Lizenz: \\n <a *ngIf=\\\"copyright.licenseTextUrl\\\" target=\\\"_new\\\" [href]=\\\"copyright.licenseTextUrl\\\">{{copyright.license}} </a>\\n <span *ngIf=\\\"!copyright.licenseTextUrl\\\">{{copyright.license}}</span>\\n </div>\\n</div>\\n\\n\"","export default \"<svg version=\\\"1.0\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" x=\\\"0\\\" y=\\\"0\\\"\\n [attr.width]=\\\"dimension\\\" [attr.height]=\\\"dimension\\\" viewBox=\\\"5.5 -3.5 64 64\\\"\\n (mouseenter)=\\\"setHighlight(true)\\\" (mouseleave)=\\\"setHighlight(false)\\\" (click)=\\\"showCopyrightInformation($event)\\\">\\n <svg:g>\\n <svg:path id=\\\"cc\\\" [style.opacity]=\\\"highlight ? '0.8' : '0.2'\\\" d=\\\"M37.441-3.5c8.951,0,16.572,3.125,22.857,9.372c3.008,3.009,5.295,6.448,6.857,10.314\\n c1.561,3.867,2.344,7.971,2.344,12.314c0,4.381-0.773,8.486-2.314,12.313c-1.543,3.828-3.82,7.21-6.828,10.143\\n c-3.123,3.085-6.666,5.448-10.629,7.086c-3.961,1.638-8.057,2.457-12.285,2.457s-8.276-0.808-12.143-2.429\\n c-3.866-1.618-7.333-3.961-10.4-7.027c-3.067-3.066-5.4-6.524-7-10.372S5.5,32.767,5.5,28.5c0-4.229,0.809-8.295,2.428-12.2\\n c1.619-3.905,3.972-7.4,7.057-10.486C21.08-0.394,28.565-3.5,37.441-3.5z M37.557,2.272c-7.314,0-13.467,2.553-18.458,7.657\\n c-2.515,2.553-4.448,5.419-5.8,8.6c-1.354,3.181-2.029,6.505-2.029,9.972c0,3.429,0.675,6.734,2.029,9.913\\n c1.353,3.183,3.285,6.021,5.8,8.516c2.514,2.496,5.351,4.399,8.515,5.715c3.161,1.314,6.476,1.971,9.943,1.971\\n c3.428,0,6.75-0.665,9.973-1.999c3.219-1.335,6.121-3.257,8.713-5.771c4.99-4.876,7.484-10.99,7.484-18.344\\n c0-3.543-0.648-6.895-1.943-10.057c-1.293-3.162-3.18-5.98-5.654-8.458C50.984,4.844,44.795,2.272,37.557,2.272z M37.156,23.187\\n l-4.287,2.229c-0.458-0.951-1.019-1.619-1.685-2c-0.667-0.38-1.286-0.571-1.858-0.571c-2.856,0-4.286,1.885-4.286,5.657\\n c0,1.714,0.362,3.084,1.085,4.113c0.724,1.029,1.791,1.544,3.201,1.544c1.867,0,3.181-0.915,3.944-2.743l3.942,2\\n c-0.838,1.563-2,2.791-3.486,3.686c-1.484,0.896-3.123,1.343-4.914,1.343c-2.857,0-5.163-0.875-6.915-2.629\\n c-1.752-1.752-2.628-4.19-2.628-7.313c0-3.048,0.886-5.466,2.657-7.257c1.771-1.79,4.009-2.686,6.715-2.686\\n C32.604,18.558,35.441,20.101,37.156,23.187z M55.613,23.187l-4.229,2.229c-0.457-0.951-1.02-1.619-1.686-2\\n c-0.668-0.38-1.307-0.571-1.914-0.571c-2.857,0-4.287,1.885-4.287,5.657c0,1.714,0.363,3.084,1.086,4.113\\n c0.723,1.029,1.789,1.544,3.201,1.544c1.865,0,3.18-0.915,3.941-2.743l4,2c-0.875,1.563-2.057,2.791-3.541,3.686\\n c-1.486,0.896-3.105,1.343-4.857,1.343c-2.896,0-5.209-0.875-6.941-2.629c-1.736-1.752-2.602-4.19-2.602-7.313\\n c0-3.048,0.885-5.466,2.658-7.257c1.77-1.79,4.008-2.686,6.713-2.686C51.117,18.558,53.938,20.101,55.613,23.187z\\\"/>\\n </svg:g>\\n</svg>\\n\"","export default \"<svg version=\\\"1.0\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" x=\\\"0\\\" y=\\\"0\\\"\\n viewBox=\\\"0 0 25 50\\\"\\n (mouseenter)=\\\"showReference(true, $event)\\\" (mouseleave)=\\\"showReference(false, $event)\\\" (click)=\\\"changeLocation()\\\">\\n <defs>\\n <marker id=\\\"arrowhead\\\" markerWidth=\\\"10\\\" markerHeight=\\\"10\\\" refX=\\\"0\\\" refY=\\\"2\\\" orient=\\\"auto\\\">\\n <polygon points=\\\"0 0, 6 2, 0 4\\\"/>\\n </marker>\\n <line id=\\\"arrow\\\" x1=\\\"0\\\" x2=\\\"15\\\" y1=\\\"2\\\" y2=\\\"2\\\" stroke-width=\\\"1\\\" marker-end=\\\"url(#arrowhead)\\\"/>\\n </defs>\\n <rect x=\\\"0\\\" y=\\\"0\\\" height=\\\"100\\\" width=\\\"200\\\" class=\\\"mouse-pointer\\\" [ngClass]=\\\"{ 'unhighlighted' : !highlighted, 'highlighted': highlighted }\\\"/>\\n <use x=\\\"0\\\" y=\\\"3\\\" class=\\\"mouse-pointer\\\" xlink:href=\\\"#arrow\\\" stroke=\\\"black\\\"/>\\n</svg>\\n\"","export default \"<svg xmlns:svg=\\\"http://www.w3.org/2000/svg\\\"\\n xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n xmlns:xhtml=\\\"http://www.w3.org/1999/xhtml\\\"\\n [attr.viewBox]=\\\"viewBox\\\" [attr.height]=\\\"margin_height*local_zoom*zoomFactor\\\" [attr.width]=\\\"margin_width*local_zoom*zoomFactor\\\"\\n class = 'marginfield'>\\n <svg:g *ngFor=\\\"let line of lines\\\">\\n <foreignObject *ngIf=\\\"showReference == 'from' && line.continuesFrom\\\" [attr.x]=\\\"0\\\" [attr.y]=\\\"line.bottom-line_height+1\\\" [attr.height]=\\\"line_height\\\" [attr.width]=\\\"2*line_length\\\">\\n <xhtml:div><line-reference [showReference]=\\\"showReference\\\" [line]=\\\"line\\\"></line-reference></xhtml:div>\\n </foreignObject>\\n <svg:g *ngIf=\\\"line.number % 2 == 0 || \\n ((getHoverStatus(line) == SELECTED_STATUS || getHoverStatus(line) == HOVERED_STATUS) \\n && ((showReference != 'to' && line.continuesFrom) || (showReference == 'to' && line.continuesTo)))\\\">\\n <svg:rect [attr.x]=\\\"line_x-1\\\" [attr.y]=\\\"line.bottom-line_height+1\\\" \\n [attr.height]=\\\"line_height\\\" [attr.width]=\\\"line.number > 9 ? line_length + line_length/2 : line_length\\\"\\n [ngStyle]=\\\"assignStyle(line, hoveredWord, hoveredLine, getHoverStatus(line))\\\"\\n [ngClass]=\\\"{ \\n 'marginfield unhighlighted': getHoverStatus(line) != HOVERED_STATUS,\\n 'marginfield highlight': getHoverStatus(line) == HOVERED_STATUS }\\\" > </svg:rect>\\n <svg:text class=\\\"text\\\" [attr.x]=\\\"line_x\\\" [attr.y]=\\\"line.bottom\\\" [container]=\\\"container\\\"\\n [interactedObject]=\\\"line\\\">{{line.number}}</svg:text>\\n </svg:g>\\n <foreignObject *ngIf=\\\"showReference == 'to' && line.continuesTo\\\" [attr.x]=\\\"line_x+line_length\\\" [attr.y]=\\\"line.bottom-line_height+1\\\" \\n [attr.height]=\\\"line_height\\\" [attr.width]=\\\"2*line_length\\\">\\n <xhtml:div><line-reference [showReference]=\\\"showReference\\\" [line]=\\\"line\\\"></line-reference></xhtml:div>\\n </foreignObject>\\n </svg:g>\\n</svg>\\n\"","export default \"<div id=\\\"page\\\" *ngIf=\\\"first_image\\\" [style.height.px]=\\\"max_height\\\" [ngStyle]=\\\"{ 'overflow': hasColumnStyle() ? 'auto': 'hidden' }\\\">\\n <div #firstContainer [ngClass]=\\\"{ 'inline': hasColumnStyle(), 'breakline': !hasColumnStyle()}\\\">\\n <div id=\\\"margin\\\">\\n <margin-field [text_field]=\\\"first_image.text_field\\\" [lines]=\\\"first_lines\\\" [assignStyle]=\\\"assignStyle\\\"\\n [container]=\\\"firstContainer\\\" [zoomFactor]=\\\"zoomFactor\\\" [max_height]=\\\"max_height\\\" \\n [max_width]=\\\"max_width\\\"\\n [selectedLines]=\\\"selectedLines\\\" [showReference]=\\\"showReferenceLeft\\\"></margin-field>\\n </div>\\n <div class=\\\"gap\\\"></div>\\n <div id=\\\"textfield\\\">\\n <text-field [identity]=\\\"first_textfield_id\\\" [container]=\\\"firstContainer\\\"\\n [image]=\\\"first_image\\\" [findText]=\\\"findText\\\" [words]=\\\"first_words\\\" [zoomFactor]=\\\"zoomFactor\\\" \\n [preferPrimaryUrl]=\\\"preferPrimaryUrl\\\" [max_height]=\\\"max_height\\\" \\n [max_width]=\\\"max_width\\\" \\n [selectedWords]=\\\"selectedWords\\\" [selectedLines]=\\\"selectedLines\\\"\\n [foreign_texts]=\\\"first_foreign_texts\\\" [configuration]=\\\"configuration\\\"\\n [assignClass]=\\\"assignClass\\\" [assignStyle]=\\\"assignStyle\\\"></text-field>\\n </div>\\n <div class=\\\"gap\\\" *ngIf=\\\"!(second_image && second_lines) || !hasColumnStyle()\\\"></div>\\n <div id=\\\"margin\\\" *ngIf=\\\"!(second_image && second_lines) || !hasColumnStyle()\\\">\\n <margin-field [text_field]=\\\"first_image.text_field\\\" [lines]=\\\"first_lines\\\" [assignStyle]=\\\"assignStyle\\\"\\n [max_width]=\\\"max_width\\\" [showReference]=\\\"showReferenceRight\\\"\\n [selectedLines]=\\\"selectedLines\\\" [zoomFactor]=\\\"zoomFactor\\\" [max_height]=\\\"max_height\\\"></margin-field>\\n </div>\\n </div>\\n <div #secondContainer [ngClass]=\\\"{ 'inline': hasColumnStyle(), 'breakline': !hasColumnStyle()}\\\">\\n <div class=\\\"gap\\\"></div>\\n <div id=\\\"margin\\\" *ngIf=\\\"second_image && second_lines && !hasColumnStyle()\\\">\\n <margin-field [text_field]=\\\"second_image.text_field\\\" [lines]=\\\"second_lines\\\" [assignStyle]=\\\"assignStyle\\\"\\n [max_width]=\\\"max_width\\\" \\n [container]=\\\"secondContainer\\\" [zoomFactor]=\\\"zoomFactor\\\" [max_height]=\\\"max_height\\\"\\n [selectedLines]=\\\"selectedLines\\\" [showReference]=\\\"showReferenceLeft\\\"></margin-field>\\n </div>\\n <div id=\\\"textfield\\\" *ngIf=\\\"second_image && second_words\\\">\\n <text-field [identity]=\\\"second_textfield_id\\\" [container]=\\\"secondContainer\\\"\\n [image]=\\\"second_image\\\" [findText]=\\\"findText\\\" [words]=\\\"second_words\\\" [zoomFactor]=\\\"zoomFactor\\\"\\n [max_width]=\\\"max_width\\\"\\n [preferPrimaryUrl]=\\\"preferPrimaryUrl\\\" [max_height]=\\\"max_height\\\" \\n [selectedWords]=\\\"selectedWords\\\" [selectedLines]=\\\"selectedLines\\\"\\n [foreign_texts]=\\\"second_foreign_texts\\\" [configuration]=\\\"configuration\\\"\\n [assignClass]=\\\"assignClass\\\" [assignStyle]=\\\"assignStyle\\\"></text-field>\\n </div>\\n <div class=\\\"gap\\\"></div>\\n <div id=\\\"margin\\\" *ngIf=\\\"second_image && second_lines\\\">\\n <margin-field [text_field]=\\\"second_image.text_field\\\" [lines]=\\\"second_lines\\\" [assignStyle]=\\\"assignStyle\\\"\\n [max_width]=\\\"max_width\\\" [showReference]=\\\"showReferenceRight\\\"\\n [selectedLines]=\\\"selectedLines\\\" [zoomFactor]=\\\"zoomFactor\\\" [max_height]=\\\"max_height\\\"></margin-field>\\n </div>\\n </div>\\n</div>\\n\"","export default \"<svg xmlns:svg=\\\"http://www.w3.org/2000/svg\\\"\\n xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n xmlns:xhtml=\\\"http://www.w3.org/1999/xhtml\\\"\\n [attr.viewBox]=\\\"viewBox\\\" [attr.height]=\\\"image_height*local_zoom*zoomFactor\\\" [attr.width]=\\\"image_width*local_zoom*zoomFactor\\\"\\n class = 'textfield' [attr.transform]='imageSpec.transform'>\\n <svg:g *ngIf=\\\"image\\\">\\n <!--\\n 'xlink:href' is deprecated in SVG2 (see https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/xlink:href).\\n However, some browsers do not support 'href', therefore we use both 'xlink:href' and 'href'.\\n -->\\n <image [attr.xlink:href]=\\\"imageSpec.URL\\\" [attr.href]=\\\"imageSpec.URL\\\" (load)=\\\"msg(imageSpec.URL)\\\" (error)=\\\"updateImageProperties(imageSpec.secondaryURL)\\\"\\n [attr.x]=\\\"imageSpec.x\\\" [attr.y]=\\\"imageSpec.y\\\" [attr.height]=\\\"imageSpec.height\\\" [attr.width]=\\\"imageSpec.width\\\"/>\\n <foreignObject *ngIf=\\\"image.copyright\\\" [ngStyle]=\\\"getCopyrightPosition((local_zoom*zoomFactor > 1) ? 32 : 32/(local_zoom*zoomFactor))\\\" \\n [attr.height]=\\\"(local_zoom*zoomFactor > 1) ? 32 : 32/(local_zoom*zoomFactor)\\\" \\n [attr.width]=\\\"(local_zoom*zoomFactor > 1) ? 32 : 32/(local_zoom*zoomFactor)\\\">\\n <xhtml:div><copyright [copyright]=\\\"image.copyright\\\" [dimension]=\\\"32/(local_zoom*zoomFactor)\\\"></copyright></xhtml:div>\\n </foreignObject>\\n </svg:g>\\n <svg:g *ngFor=\\\"let word of words\\\">\\n <svg:rect [interactedObject]=\\\"word\\\" [identity]=\\\"identity\\\" [container]=\\\"container\\\"\\n [ngStyle]=\\\"assignStyle(word, hoveredWord, hoveredLine, getHoverStatus(word))\\\"\\n [ngClass]=\\\"assignClass(word)\\\"\\n [attr.x]=\\\"word.left\\\" [attr.y]=\\\"word.top\\\" [attr.height]=\\\"word.height\\\" [attr.width]=\\\"word.width\\\" [attr.transform]=\\\"word.transform\\\">\\n <title *ngIf=\\\"!useExtendedTooltip && word\\\">{{ word.edited_text != null ? '> ' + word.edited_text : word.text }}</title>\\n </svg:rect>\\n <svg:g *ngIf=\\\"word.deletion_path\\\">\\n <path #pathRef [ngClass]=\\\"assignClass(word, pathRef.localName)\\\" [attr.d]=\\\"word.deletion_path\\\"/>\\n </svg:g>\\n </svg:g>\\n <svg:g *ngFor=\\\"let foreignText of foreign_texts\\\">\\n <svg:rect [interactedObject]=\\\"foreignText\\\"\\n [ngStyle]=\\\"assignStyle(foreignText, hoveredWord, hoveredLine, getHoverStatus(foreignText))\\\"\\n [ngClass]=\\\"assignClass(foreignText)\\\"\\n [attr.x]=\\\"foreignText.left\\\" [attr.y]=\\\"foreignText.top\\\" [attr.height]=\\\"foreignText.height\\\" [attr.width]=\\\"foreignText.width\\\" [attr.transform]=\\\"foreignText.transform\\\">\\n <title *ngIf=\\\"!useExtendedTooltip && foreignText\\\">{{foreignText.text}}, {{ foreignText.pen }}</title>\\n </svg:rect>\\n </svg:g>\\n</svg>\\n\"","export default \"<mat-card>\\n <mat-card-title>Das Editionsprojekt „Der späte Nietzsche“</mat-card-title>\\n <mat-card-content>\\n <div class=\\\"text\\\"> Das deutsch-schweizerische Editionsprojekt „Der späte\\n Nietzsche“ veröffentlicht Friedrich Nietzsches späten&nbsp;Nachlass erstmals\\n vollständig und manuskriptgetreu. Die Manuskriptedition erscheint seit 2001\\n in der von Giorgio Colli und Mazzino Montinari begründeten Kritischen\\n Gesamtausgabe der Werke als neunte Abteilung (KGW IX).&nbsp;Die Publikation der\\n noch ausstehenden sp&auml;ten Manuskripte aus den Archivmappen (Mp\\n XIV-XVIII) erfolgt zusätzlich in <i>dieser</i> an der Universität Basel\\n entwickelten und betreuten und durch den SNF gef&ouml;rderten digitalen\\n Edition.</div> <div class=\\\"text\\\">Mit der differenzierten Transkription und\\n digitalen Faksimilierung der Handschriften sowie einem editorischen\\n Nachbericht schließt KGW IX die Edition und Kommentierung des späten\\n Nachlasses in KGW ab. Vorrangige Absicht ist es, die Manuskripte in ihrer\\n Gesamtheit zu dokumentieren und den typischen Notatcharakter der\\n Aufzeichnungen aufzuzeigen. Statt in Form geglätteter, linearer Lesetexte\\n einen falsch-eindeutigen Text zu bieten, werden in einer diplomatischen\\n Umschrift alle Korrekturvorgänge, Streichungen,&nbsp;späteren\\n Überarbeitungen etc. wiedergegeben.&nbsp;Und statt die Aufzeichnungen in\\n eine chronologische Ordnung zu zwängen, die sich in vielen Fällen gar nicht\\n ermitteln lässt und darum immer auch editorisch willkürlich bleibt, wird die\\n ursprüngliche topologische Anordnung beibehalten. Die Manuskriptedition\\n ermöglicht dadurch neue Einsichten in den Schreibprozess und die Textgenese\\nbeim späten Nietzsche.</div>\\n <div class=\\\"text\\\">In der Onlineausgabe werden die Manuskripte mit sämtlichen\\n editorischen Informationen sowohl als Faksimile wie auch in der\\n differenzierten Transkription je einzeln und in synoptischer Darstellung\\n offen zugänglich sowie zitier-, durchsuch- und auswertbar sein.</div>\\n <div class=\\\"img\\\">\\n <img src=\\\"http://www.snf.ch/_layouts/15/Snf.Internet/Images/logo_de.gif\\\">\\n </div>\\n </mat-card-content>\\n</mat-card>\\n\"","export default \"<div #tooltipContainer id=\\\"page\\\">\\n <tln-crossref></tln-crossref>\\n <!--TODO: queryParams.fullscreen is string, not boolean! -->\\n <tool-tip [fullscreen]=\\\"queryParams.fullscreen == 'true'\\\" [menuOffsetPosition]=\\\"{x: 0, y: 100 }\\\" [container]=\\\"tooltipContainer\\\"></tool-tip>\\n</div>\\n\"","export default \"<div id=\\\"navi\\\">\\n <toggle-navigation></toggle-navigation>\\n <button mat-icon-button *ngIf=\\\"current_page && contextView == PAGE_CONTEXT_VIEW\\\" \\n [title]=\\\"'Alle Querverweise von ' + current_page.title + ' anzeigen'\\\" (click)=\\\"changeContext()\\\">\\n <mat-icon>auto_stories</mat-icon>\\n </button>\\n <button mat-icon-button *ngIf=\\\"current_page && contextView != PAGE_CONTEXT_VIEW\\\" \\n [title]=\\\"'Querverweise von ' + current_page.title + ' ' + current_page.number + ' anzeigen'\\\" (click)=\\\"changeContext()\\\">\\n <mat-icon>description</mat-icon>\\n </button>\\n <button *ngIf=\\\"current_page && contextView == PAGE_CONTEXT_VIEW\\\" \\n mat-icon-button [title]=\\\"current_page.title + ' ' + current_page.number +' in Seitenansicht anzeigen'\\\" (click)=\\\"setCurrentIri(current_page.id)\\\">\\n <mat-icon>chrome_reader_mode</mat-icon>\\n </button>\\n <zoom></zoom>\\n <search *ngIf=\\\"contextView == PAGE_CONTEXT_VIEW\\\"></search>\\n</div>\\n\\n\"","export default \"<mat-list role=\\\"list\\\" *ngIf=\\\"current_page_iri\\\">\\n <mat-list-item *ngFor=\\\"let geneticOrder of geneticOrders | filter:filterGeneticOrder\\\">\\n <button mat-button title=\\\"Querverweis anzeigen\\\" (click)=\\\"openCrossRef(geneticOrder)\\\">\\n <span *ngFor=\\\"let version of geneticOrder.textVersions; let i = index\\\">\\n <version-view [version]=\\\"version\\\" [current_iri]=\\\"current_page_iri\\\"></version-view>\\n <mat-icon *ngIf=\\\"i+1 < geneticOrder.textVersions.length\\\" [inline]=\\\"true\\\">east</mat-icon>\\n </span>\\n </button>\\n </mat-list-item>\\n</mat-list>\\n\"","export default \"<page-version-view [current_page_iri]=\\\"current_iri\\\" [geneticOrders]=\\\"geneticOrders\\\"></page-version-view>\\n\"","export default \"<div id=\\\"page\\\">\\n <crossref-navigation></crossref-navigation>\\n <div *ngIf=\\\"current_manuscript && contextView == MANUSCRIPT_CONTEXT_VIEW\\\" class=\\\"grid-container\\\">\\n <h2 class=\\\"page-crossref-title extra-space\\\">Querverweise von {{current_manuscript.title}}</h2>\\n <div *ngFor=\\\"let page of pagesWithGeneticOrder\\\">\\n <h4 class=\\\"page-crossref-title\\\">{{current_manuscript.title}} {{page.number}}</h4>\\n <tln-page-version-view [current_iri]=\\\"page.id\\\"></tln-page-version-view>\\n </div>\\n </div>\\n <div *ngIf=\\\"current_page && contextView == PAGE_CONTEXT_VIEW\\\">\\n <h3 class=\\\"page-crossref-title\\\">Querverweise von {{current_page.title}} {{current_page.number}}</h3>\\n <page-version-view [parentActivatedRoute]=\\\"activatedRoute.parent\\\" [current_page_iri]=\\\"current_page.id\\\" \\n [filterGeneticOrder]=\\\"current_genetic_order_iri\\\" [geneticOrders]=\\\"geneticOrders\\\"></page-version-view>\\n </div>\\n <div class=\\\"preview\\\" *ngIf=\\\"current_page && textVersions.length > 0 && contextView == PAGE_CONTEXT_VIEW\\\" [style.width.px]=\\\"previewWidth\\\">\\n <h4 *ngIf=\\\"geneticOrders.length > 1\\\">Ausgew&auml;hlte Querverweise</h4>\\n <div *ngFor=\\\"let version of textVersions; let i = index\\\">\\n <button mat-button [ngClass]=\\\"{'highlight': selectedTextVersions.indexOf(version) > -1 }\\\"\\n [title]=\\\"getButtonTitle(version)\\\" (click)=\\\"addOrRemove(version)\\\">\\n <version-view [version]=\\\"version\\\"></version-view>\\n <mat-icon *ngIf=\\\"selectedTextVersions.indexOf(version) > -1\\\" [inline]=\\\"true\\\">close</mat-icon>\\n <mat-icon *ngIf=\\\"selectedTextVersions.indexOf(version) == -1\\\" [inline]=\\\"true\\\">chevron_right</mat-icon>\\n </button>\\n <div>\\n <mat-icon *ngIf=\\\"i+1 < textVersions.length\\\">south</mat-icon>\\n </div>\\n </div>\\n </div>\\n <div *ngIf=\\\"current_page && contextView == PAGE_CONTEXT_VIEW\\\" class=\\\"text\\\" [style.left.px]=\\\"previewWidth\\\" [style.width.px]=\\\"max_width+margin_width\\\">\\n <div class=\\\"page-view\\\" *ngFor=\\\"let version of selectedTextVersions\\\" [style.height.px]=\\\"each_version_height\\\">\\n <div class=\\\"text-navi\\\">\\n <button [title]=\\\"getButtonTitle(version)\\\" class=\\\"close-text\\\" mat-button (click)=\\\"addOrRemove(version)\\\">\\n <version-view [version]=\\\"version\\\"></version-view>\\n <mat-icon *ngIf=\\\"selectedTextVersions.indexOf(version) > -1\\\" [inline]=\\\"true\\\">close</mat-icon>\\n </button>\\n </div>\\n <div *ngFor=\\\"let textUnity of version.textUnities\\\">\\n <span class=\\\"mat-button default-mouse page-navi\\\">\\n <span>{{version.title}}, {{textUnity.number}}<span *ngIf=\\\"textUnity.startLine\\\">, {{textUnity.startLine}}-{{textUnity.endLine}}</span>\\n </span>\\n <open-in-viewer *ngIf=\\\"textUnity.hasFaksimileImage\\\"\\n [routerInformation]=\\\"{ title: version.title, number: textUnity.number, \\n page: textUnity.belongsToPage ? textUnity.belongsToPage : textUnity.id,\\n manuscript: version.manuscript, launchExternally: false \\n }\\\"></open-in-viewer>\\n <open-in-viewer *ngIf=\\\"textUnity.hasFaksimileImage\\\"\\n [routerInformation]=\\\"{ title: version.title, number: textUnity.number,\\n page: textUnity.belongsToPage ? textUnity.belongsToPage : textUnity.id,\\n manuscript: version.manuscript, launchExternally: true\\n }\\\"></open-in-viewer>\\n </span>\\n <div *ngIf=\\\"!textUnity.belongsToPage\\\">\\n <tln-page-view \\n [page]=\\\"textUnity.id\\\"\\n [multiInstanceMode]=\\\"true\\\"\\n [selectedViewOption]=\\\"selectedViewOption\\\"\\n [selectedLines]=\\\"selectedLines\\\"\\n [queryService]=\\\"queryService\\\" [preferPrimaryUrl]=\\\"preferPrimaryUrl\\\" \\n [max_width]=\\\"max_width\\\"></tln-page-view>\\n </div>\\n <div *ngIf=\\\"textUnity.belongsToPage\\\">\\n <tln-page-view *ngIf=\\\"textUnity.belongsToPage\\\"\\n [multiInstanceMode]=\\\"true\\\"\\n [startLine]=\\\"textUnity.startLineIri\\\"\\n [endLine]=\\\"textUnity.endLineIri\\\"\\n [page]=\\\"textUnity.belongsToPage\\\"\\n [selectedViewOption]=\\\"selectedViewOption\\\"\\n [selectedLines]=\\\"selectedLines\\\"\\n [queryService]=\\\"queryService\\\" [preferPrimaryUrl]=\\\"preferPrimaryUrl\\\" \\n [max_width]=\\\"max_width\\\" ></tln-page-view>\\n </div>\\n </div>\\n <div class=\\\"external\\\" [style.width.px]=\\\"max_width\\\" *ngIf=\\\"version.textUnities.length == 0 && version.extUrl\\\">\\n <a mat-button [href]=\\\"version.extUrl\\\" target=\\\"_new\\\">Text auf nietzschesource.org <mat-icon>link</mat-icon></a>\\n </div>\\n </div>\\n </div>\\n</div>\\n\"","export default \"<span *ngIf=\\\"version && version.title\\\">\\n {{version.title}}<span *ngIf=\\\"version.textUnities.length > 0\\\">,</span>\\n <span [ngClass]=\\\"{ 'highlight': current_iri != null && current_iri != undefined && (textUnity.id == current_iri || textUnity.belongsToPage == current_iri) }\\\"\\n *ngFor=\\\"let textUnity of version.textUnities; let j = index\\\">\\n {{textUnity.number}}<span *ngIf=\\\"textUnity.startLine && textUnity.endLine\\\">, {{textUnity.startLine}}-{{textUnity.endLine}}</span>\\n <span *ngIf=\\\"textUnity.startLine && j+1 < version.textUnities.length\\\">;</span>\\n <span *ngIf=\\\"!textUnity.startLine && j+1 < version.textUnities.length\\\">,</span>\\n </span>\\n</span>\\n\"","export default \"<div id=\\\"navi\\\">\\n <toggle-navigation></toggle-navigation>\\n <zoom></zoom>\\n</div>\\n\"","export default \"<div id=\\\"page\\\" #tooltipContainer>\\n <fulltext-navigation></fulltext-navigation>\\n <div class=\\\"search\\\" [style.width.px]=\\\"previewWidth\\\">\\n <mat-card>\\n <mat-card-header>\\n <mat-card-title>Suche<span *ngIf=\\\"searchTerm\\\">: <span class=\\\"small-grey\\\">{{searchTerm}}</span></span></mat-card-title>\\n </mat-card-header>\\n <mat-card-content>\\n <mat-form-field class=\\\"full-width\\\">\\n <mat-label>Text</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"searchTerm\\\" (keydown.enter)=\\\"search()\\\" (keydown.esc)=\\\"clearFindText()\\\">\\n <button mat-button *ngIf=\\\"searchTerm\\\" matSuffix mat-icon-button aria-label=\\\"Clear\\\" (click)=\\\"clearFindText()\\\">\\n <mat-icon>close</mat-icon>\\n </button>\\n </mat-form-field>\\n <button mat-button (click)=\\\"search()\\\"><mat-icon>search</mat-icon></button>\\n <mat-spinner *ngIf=\\\"startSearch && !resultsReceived && searchTerm\\\"></mat-spinner>\\n <div *ngIf=\\\"resultsReceived && searchTerm\\\">\\n {{ pages | resultPipe }}\\n </div>\\n <mat-paginator *ngIf=\\\"!fullscreen && pages.length > resultLength\\\" \\n [length]=\\\"pages.length\\\"\\n [pageSize]=\\\"resultLength\\\"\\n [pageIndex]=\\\"resultIndex\\\"\\n (page)=\\\"showResults($event)\\\">\\n </mat-paginator>\\n </mat-card-content>\\n </mat-card>\\n </div>\\n <div *ngIf=\\\"pages.length > 0\\\" class=\\\"text\\\" [style.left.px]=\\\"previewWidth+20\\\" [style.width.px]=\\\"max_width+margin_width-25\\\">\\n <div class=\\\"page-view\\\" *ngFor=\\\"let page of pages | pageResultFilter:resultRange\\\">\\n <span class=\\\"mat-button default-mouse page-navi\\\">\\n <span>{{page.title}}, {{page.number}}</span>\\n <open-in-viewer [routerInformation]=\\\"{ title: page.title, number: page.number, page: page.id,\\n manuscript: page.manuscript, launchExternally: false }\\\"></open-in-viewer>\\n <open-in-viewer [routerInformation]=\\\"{ title: page.title, number: page.number, page: page.id,\\n manuscript: page.manuscript, launchExternally: true }\\\"></open-in-viewer>\\n </span>\\n <tln-page-view *ngFor=\\\"let result of page.results\\\"\\n [page]=\\\"page.id\\\"\\n [multiInstanceMode]=\\\"true\\\"\\n [selectedViewOption]=\\\"selectedViewOption\\\"\\n [startLine]=\\\"result.getStartLine()\\\"\\n [endLine]=\\\"result.getEndLine()\\\"\\n [selectedWords]=\\\"result.getWords()\\\"\\n [max_width]=\\\"max_width\\\"></tln-page-view>\\n </div>\\n <mat-paginator *ngIf=\\\"pages.length > resultLength\\\" \\n [length]=\\\"pages.length\\\"\\n [pageSize]=\\\"resultLength\\\"\\n [pageIndex]=\\\"resultIndex\\\"\\n (page)=\\\"showResults($event)\\\">\\n </mat-paginator>\\n </div>\\n <tool-tip [container]=\\\"tooltipContainer\\\" [menuOffsetPosition]=\\\"{x: 0, y: 0 }\\\"></tool-tip>\\n</div>\\n\"","export default \"<div *ngIf=\\\"current_page\\\">\\n <h3>{{current_page.title}} {{current_page.number}}:</h3>\\n <h4 mat-subheader>Querverweise:</h4>\\n <page-version-view [bottomSheetRef]=\\\"bottomSheetRef\\\" [parentActivatedRoute]=\\\"data.parentActivatedRoute\\\"\\n [current_page_iri]=\\\"current_page.id\\\" [geneticOrders]=\\\"geneticOrders\\\"></page-version-view>\\n</div>\\n\"","export default \"<toggle-navigation></toggle-navigation>\\n<mat-card *ngIf=\\\"current_manuscript\\\">\\n <mat-card-header>\\n <mat-card-title *ngIf=\\\"current_manuscript.archivalicSignature\\\">{{current_manuscript.archivalicSignature}}</mat-card-title>\\n <mat-card-title *ngIf=\\\"!current_manuscript.archivalicSignature\\\">{{current_manuscript.title}}</mat-card-title>\\n <mat-card-subtitle *ngIf=\\\"current_manuscript.gsaSignature\\\">GSA-Signatur {{current_manuscript.gsaSignature}}</mat-card-subtitle>\\n <!--<mat-card-subtitle>{{current_manuscript.type}}</mat-card-subtitle>-->\\n <img mat-card-avatar *ngIf=\\\"current_manuscript.thumbImage\\\" [src]=\\\"current_manuscript.thumbImage\\\"/>\\n </mat-card-header>\\n <mat-card-content *ngIf=\\\"earlierDescriptions.length > 0\\\">\\n <h4 mat-subheader>Fr&uuml;here Manuskriptbeschreibungen</h4>\\n <table>\\n <tr *ngFor=\\\"let earlierDescription of earlierDescriptions\\\">\\n <td class=\\\"author\\\">{{earlierDescription.author}}:</td>\\n <td class=\\\"text\\\">\\n <span *ngIf=\\\"earlierDescription.markups.length == 0\\\">{{earlierDescription.text}}</span>\\n <NgxMat-NgxMatStandoffMarkup *ngIf=\\\"earlierDescription.markups.length > 0\\\"\\n [cssDef]=\\\"cssDef\\\" [markupSettings]=\\\"mySettings\\\" \\n [textToStyle]=\\\"earlierDescription.text\\\" \\n [posStyleMarkup]=\\\"earlierDescription.markups\\\"></NgxMat-NgxMatStandoffMarkup>\\n {{earlierDescription.citation}}\\n </td>\\n </tr>\\n </table>\\n </mat-card-content>\\n <mat-card-content *ngIf=\\\"manuscriptDescription\\\">\\n <h4 mat-subheader *ngIf=\\\"current_manuscript.type == 'Mappe'\\\">Beschreibung der Archivmappe</h4>\\n <h4 mat-subheader *ngIf=\\\"current_manuscript.type != 'Mappe'\\\">Heftbeschreibung</h4>\\n <p class=\\\"text\\\">\\n <span *ngIf=\\\"manuscriptDescription.markups.length == 0\\\">{{manuscriptDescription.text}}</span>\\n <NgxMat-NgxMatStandoffMarkup *ngIf=\\\"manuscriptDescription.markups.length > 0\\\"\\n [cssDef]=\\\"cssDef\\\" [markupSettings]=\\\"mySettings\\\" \\n [textToStyle]=\\\"manuscriptDescription.text\\\" \\n [posStyleMarkup]=\\\"manuscriptDescription.markups\\\"></NgxMat-NgxMatStandoffMarkup>\\n </p>\\n </mat-card-content>\\n <mat-card-content *ngIf=\\\"current_manuscript.archivalicSignature && current_manuscript.archivalicSignature != current_manuscript.title\\\">\\n <h4 mat-subheader>In {{current_manuscript.title}} wiedergegebene Manuskriptseiten</h4>\\n <span *ngFor=\\\"let page of pages; let i = index\\\">{{page.number}}\\n <open-in-viewer class=\\\"nospace\\\" [routerInformation]=\\\"{ title: current_manuscript.title, number: page.number, page: page.id }\\\"></open-in-viewer>\\n <open-in-viewer class=\\\"nospace\\\" [routerInformation]=\\\"{ title: current_manuscript.title, number: page.number, \\n page: page.id, launchExternally: true }\\\"></open-in-viewer>\\n <span *ngIf=\\\"i+1 < pages.length\\\">, </span></span>\\n </mat-card-content>\\n <mat-card-content *ngIf=\\\"reconstructedKonvolut\\\">\\n <h4 mat-subheader>Konvolute, Rekonstruktionen</h4>\\n <p class=\\\"text\\\" *ngIf=\\\"reconstructedKonvolut.description\\\">{{reconstructedKonvolut.description}}</p>\\n <!-- TODO: WAITING FOR DATA\\n <span *ngFor=\\\"let page of reconstructedKonvolut.pages; let i = index\\\">{{page.number}}\\n <button *ngIf=\\\"page.title\\\" mat-icon-button class=\\\"nospace\\\" \\n [title]=\\\"page.title + ' ' + page.number + ' in Seitenansicht &ouml;ffnen'\\\" \\n (click)=\\\"openInViewer(page.id)\\\"><mat-icon [inline]=\\\"true\\\">launch</mat-icon></button>\\n <span *ngIf=\\\"i+1 < reconstructedKonvolut.pages.length\\\">, </span></span>-->\\n </mat-card-content>\\n</mat-card>\\n\"","export default \"<button *ngIf=\\\"!launch\\\" mat-icon-button (click)=\\\"openInViewer()\\\" \\n [title]=\\\"page.title + ' ' + page.number + ' in Seitenansicht &ouml;ffnen'\\\" class=\\\"icon-button\\\">\\n <mat-icon [inline]=\\\"true\\\">chrome_reader_mode</mat-icon>\\n</button>\\n<button *ngIf=\\\"launch\\\" mat-icon-button (click)=\\\"openInViewer()\\\" \\n [title]=\\\"page.title + ' ' + page.number + ' in neuem Tab in Seitenansicht &ouml;ffnen'\\\" class=\\\"icon-button\\\">\\n <mat-icon [inline]=\\\"true\\\">launch</mat-icon>\\n</button>\\n\"","export default \"<mat-form-field class=\\\"search\\\">\\n <mat-label>Suche</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"findText\\\" (ngModelChange)=\\\"updateParams()\\\" (keydown.esc)=\\\"clearFindText()\\\">\\n <button mat-button *ngIf=\\\"findText\\\" matSuffix mat-icon-button aria-label=\\\"Clear\\\" (click)=\\\"clearFindText()\\\">\\n <mat-icon>close</mat-icon>\\n </button>\\n <button mat-button matSuffix mat-icon-button title=\\\"Volltextsuche\\\" aria-label=\\\"Volltextsuche\\\" (click)=\\\"openFulltextSearch()\\\">\\n <mat-icon>search</mat-icon>\\n </button>\\n</mat-form-field>\\n\\n\"","export default \"<button mat-button [title]=\\\"navBarOpenState ? 'Navigationsleiste aus' : 'Navigationsleiste ein'\\\" (click)=\\\"toggleNavDrawer()\\\">\\n <mat-icon class=\\\"mat-accent\\\">{{ navBarOpenState ? 'chevron_left' : 'chevron_right' }}</mat-icon>\\n</button>\\n<button mat-icon-button [title]=\\\"fullscreen ? 'Vollbild aus' : 'Vollbild ein'\\\" (click)=\\\"toggleFullscreen()\\\">\\n <mat-icon>{{ fullscreen ? 'fullscreen_exit' : 'fullscreen'}}</mat-icon>\\n</button>\\n\\n\"","export default \"<button mat-icon-button class=\\\"zoom zoom-in\\\" [title]=\\\"{ 'zoomFactor': zoomFactor, 'changeValue': increment } | zoomTitle\\\" \\n (click)=\\\"setZoomFactor(zoomFactor+increment)\\\"><mat-icon>zoom_in</mat-icon></button>\\n<button mat-icon-button [ngClass]=\\\"{ 'zoom-in': zoomFactor < 1, 'zoom-out': zoomFactor > 1 }\\\" \\n title=\\\"Zoom zur&uuml;cksetzen\\\" (click)=\\\"setZoomFactor(1)\\\">{{zoomFactor * 100 | number:'1.0-0'}}%</button>\\n<button mat-icon-button class=\\\"zoom zoom-out\\\" [title]=\\\"{ 'zoomFactor': zoomFactor, 'changeValue': decrement} | zoomTitle\\\"\\n (click)=\\\"setZoomFactor(zoomFactor+decrement)\\\"><mat-icon>zoom_out</mat-icon></button>\\n\\n\"","export default \"<div #tooltipContainer>\\n <page-view [assignClass]=\\\"assignClass\\\" [assignStyle]=\\\"assignStyle\\\" \\n [dontShowReference]=\\\"dontShowReference\\\"\\n [configuration]=\\\"configuration\\\" [max_height]=\\\"max_height\\\"\\n [max_width]=\\\"max_width\\\"\\n [findText]=\\\"findText\\\" [first_image]=\\\"image\\\" \\n [first_lines]=\\\"lines\\\" [first_words]=\\\"words\\\" \\n [first_foreign_texts]=\\\"foreignTexts\\\" [second_foreign_texts]=\\\"second_foreignTexts\\\"\\n [second_image]=\\\"second_image\\\" [second_lines]=\\\"second_lines\\\" [second_words]=\\\"second_words\\\" \\n [selectedWords]=\\\"selectedWords\\\" [selectedLines]=\\\"selectedLines\\\"\\n [preferPrimaryUrl]=\\\"preferPrimaryUrl\\\" [zoomFactor]=\\\"zoomFactor\\\"></page-view>\\n</div>\\n\"","export default \"<div id=\\\"navi\\\">\\n <toggle-navigation></toggle-navigation>\\n <button *ngIf=\\\"!current_page || !manuscript_unity\\\" mat-icon-button disabled=\\\"true\\\"><mat-icon>first_page</mat-icon></button>\\n <button *ngIf=\\\"current_page && manuscript_unity\\\"\\n mat-icon-button [title]=\\\"getPageTitle(manuscript_unity.firstPage)\\\" (click)=\\\"setCurrentIri(manuscript_unity.firstPage.id)\\\" \\n [disabled]=\\\"updating || manuscript_unity.firstPage.id == current_page.id\\\">\\n <mat-icon>first_page</mat-icon>\\n </button>\\n <button *ngIf=\\\"!current_page || !manuscript_unity\\\" mat-icon-button disabled=\\\"true\\\"><mat-icon>chevron_left</mat-icon></button>\\n <button *ngIf=\\\"current_page && manuscript_unity\\\" mat-icon-button [title]=\\\"getPageTitle(current_page.previous, manuscript_unity.numberOfPages)\\\" \\n (click)=\\\"setCurrentIri(current_page.previous.id)\\\" [disabled]=\\\"updating || !current_page.previous\\\">\\n <mat-icon>chevron_left</mat-icon>\\n </button>\\n <mat-form-field appearance=\\\"legacy\\\">\\n <mat-select [(value)]=\\\"selectedViewOption\\\" (selectionChange)=\\\"updateParams()\\\">\\n <mat-option *ngFor=\\\"let viewOption of viewOptions\\\" [value]=\\\"viewOption\\\">{{viewOption}}</mat-option>\\n </mat-select>\\n </mat-form-field>\\n <zoom></zoom>\\n <span class=\\\"mat-button min-width default-mouse\\\" *ngIf=\\\"!current_page\\\">Loading ...</span>\\n <span class=\\\"mat-button min-width default-mouse\\\" *ngIf=\\\"geneticOrders.length == 0 && current_page\\\">{{current_page.title}} {{current_page.number}}</span>\\n <button mat-button class=\\\"min-width\\\" title=\\\"Seiteninformationen\\\" (click)=\\\"showInformation()\\\" *ngIf=\\\"geneticOrders.length > 0 && current_page\\\">\\n {{current_page.title}} {{current_page.number}}\\n <mat-icon inline=\\\"true\\\">info</mat-icon>\\n </button>\\n <search></search>\\n <button *ngIf=\\\"!current_page || !manuscript_unity\\\" mat-icon-button disabled=\\\"true\\\"><mat-icon>chevron_right</mat-icon></button>\\n <button *ngIf=\\\"current_page && manuscript_unity\\\" mat-icon-button [title]=\\\"getPageTitle(current_page.next, manuscript_unity.numberOfPages)\\\" \\n (click)=\\\"setCurrentIri(current_page.next.id)\\\" [disabled]=\\\"updating || !current_page.next\\\">\\n <mat-icon>chevron_right</mat-icon>\\n </button>\\n <button *ngIf=\\\"!current_page || !manuscript_unity\\\" mat-icon-button disabled=\\\"true\\\"><mat-icon>last_page</mat-icon></button>\\n <button *ngIf=\\\"manuscript_unity && current_page\\\" \\n mat-icon-button [title]=\\\"getPageTitle(manuscript_unity.lastPage)\\\" (click)=\\\"setCurrentIri(manuscript_unity.lastPage.id)\\\" \\n [disabled]=\\\"updating || manuscript_unity.lastPage.id == current_page.id\\\">\\n <mat-icon>last_page</mat-icon>\\n </button>\\n</div>\\n\\n\"","export default \"<div #myElement *ngIf=\\\"useExtendedTooltip && tooltipPosition.visible && hasAnyContent()\\\"\\n [ngClass]=\\\"[ 'tooltip', currentKey ]\\\" [style.top.px]=\\\"getTop(currentKey)\\\" [style.left.px]=\\\"getLeft(myElement.offsetWidth)\\\">\\n <div *ngIf=\\\"word\\\">\\n <div *ngIf=\\\"debug\\\">\\n {{tooltipPosition.clientY+yOffset}}, {{topOffset}}\\n <!--<div *ngFor=\\\"let markup of positionalStyleMarkups\\\">\\n <div ><span>{{markup.startIndex}} </span><span>{{markup.endIndex}} </span><span>{{markup.cssStyleTag}}</span></div>\\n </div>-->\\n </div>\\n <div class=\\\"earlier-version\\\" *ngIf=\\\"earlier_version\\\"><i>0:</i> {{earlier_version.text}}</div>\\n <div class=\\\"text\\\" >\\n <span *ngIf=\\\"earlier_version\\\"><i>1:</i>&nbsp;</span>\\n <span *ngIf=\\\"!positionalStyleMarkups || positionalStyleMarkups.length == 0\\\" [ngClass]=\\\"{'deleted': word.deleted}\\\">{{word.text}}</span>\\n <NgxMat-NgxMatStandoffMarkup *ngIf=\\\"positionalStyleMarkups && positionalStyleMarkups.length > 0\\\" \\n [cssDef]=\\\"cssDef\\\" [markupSettings]=\\\"mySettings\\\"\\n [textToStyle]=\\\"word.text\\\" [posStyleMarkup]=\\\"positionalStyleMarkups\\\"></NgxMat-NgxMatStandoffMarkup>\\n </div>\\n <span class=\\\"edited_text\\\" *ngIf=\\\"word.edited_text\\\">&gt;{{word.edited_text}}</span>\\n <div class=\\\"overwritten\\\" *ngIf=\\\"overwrittenWord\\\"><i>&uuml;berschreibt: </i>{{overwrittenWord.text}}</div>\\n </div>\\n <div *ngIf=\\\"foreignHand\\\">\\n {{foreignHand.text}}, <i>{{foreignHand.pen}}</i>\\n </div>\\n <!--<div *ngIf=\\\"copyright\\\" class=\\\"blackfg\\\" (click)=\\\"copyright = null\\\">\\n <div [innerHTML]=\\\"copyright.text\\\"></div>\\n <div *ngIf=\\\"copyright.originalUrl\\\">URL: <a target=\\\"_new\\\" [href]=\\\"copyright.originalUrl\\\">{{copyright.originalUrl}}</a></div>\\n <div> Lizenz: \\n <a *ngIf=\\\"copyright.licenseTextUrl\\\" target=\\\"_new\\\" [href]=\\\"copyright.licenseTextUrl\\\">{{copyright.license}} </a>\\n <span *ngIf=\\\"!copyright.licenseTextUrl\\\">{{copyright.license}}</span>\\n </div>\\n </div>-->\\n <div *ngIf=\\\"continuation\\\">\\n <span *ngIf=\\\"continuation.show == 'to'\\\"><i>{{continuation.source.line.number}}</i>&nbsp;nach&nbsp;</span>\\n <i>\\n <span *ngIf=\\\"continuation.source.manuscript\\\">{{continuation.reference.manuscript.title}} </span>\\n <span *ngIf=\\\"continuation.source.page\\\">{{continuation.reference.page.number}}, </span>\\n {{continuation.reference.line.number}}\\n </i>\\n <span *ngIf=\\\"continuation.show != 'to'\\\">&nbsp;nach&nbsp;<i>{{continuation.source.line.number}}</i></span>\\n </div>\\n <div *ngIf=\\\"continuation && continuation_words.length > 0\\\">\\n <span *ngIf=\\\"continuation.show == 'to'\\\">&rarr; </span>\\n <span *ngFor=\\\"let word of continuation_words\\\">\\n {{ (word.earlier_version) ? '[0:' + word.earlier_version + '|1:' : ''}}\\n <NgxMat-NgxMatStandoffMarkup [cssDef]=\\\"cssDef\\\" [markupSettings]=\\\"mySettings\\\"\\n [textToStyle]=\\\"word.text\\\" [posStyleMarkup]=\\\"word.markups\\\"></NgxMat-NgxMatStandoffMarkup>\\n {{ (word.earlier_version) ? ']' : ''}}</span>\\n <span *ngIf=\\\"continuation.show != 'to'\\\">&rarr; </span>\\n </div>\\n</div>\\n\"","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export default \"\\nbody {\\n padding-right: 50px;\\n}\\n\\n.rect, .rect.unhovered {\\n opacity:0.0;\\n}\\n\\n.rect:hover, .rect.hovered {\\n opacity:0.34000017;\\n fill:#e2fa00;\\n fill-opacity:0.98431373\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9hcHAuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7R0FDRyxtQkFBbUI7QUFDdEI7O0FBRUE7RUFDRSxXQUFXO0FBQ2I7O0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsWUFBWTtFQUNaO0FBQ0YiLCJmaWxlIjoiYXBwL2FwcC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXG5ib2R5IHtcbiAgIHBhZGRpbmctcmlnaHQ6IDUwcHg7XG59XG5cbi5yZWN0LCAucmVjdC51bmhvdmVyZWQge1xuICBvcGFjaXR5OjAuMDtcbn1cbi5yZWN0OmhvdmVyLCAucmVjdC5ob3ZlcmVkIHtcbiAgb3BhY2l0eTowLjM0MDAwMDE3O1xuICBmaWxsOiNlMmZhMDA7XG4gIGZpbGwtb3BhY2l0eTowLjk4NDMxMzczXG59XG4iXX0= */\"","import {Component, OnInit} from '@angular/core';\nimport { OverlayContainer} from '@angular/cdk/overlay';\nimport {Subscription} from 'rxjs';\nimport {ActivatedRoute, Params} from '@angular/router';\ndeclare var require: any;\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent implements OnInit {\n title = 'Digitale Manuskriptedition: Der späte Nietzsche';\n theme = 'standard-theme';\n version: string;\n\n fullScreen: string;\n queryParamSub: Subscription;\n\n constructor(private overlayContainer: OverlayContainer, private activatedRoute: ActivatedRoute) {\n this.version = require( '../../package.json').version;\n }\n\n ngOnInit() {\n this.overlayContainer.getContainerElement().classList.add(this.theme);\n this.queryParamSub = this.activatedRoute.queryParams.subscribe( (queryParams: Params ) => {\n this.fullScreen = queryParams.fullscreen;\n });\n\n }\n\n onThemeChange() {\n this.overlayContainer.getContainerElement().classList.add(this.theme);\n }\n}\n","import { AppComponent } from './app.component';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport { NgModule } from '@angular/core';\nimport {MatCardModule} from '@angular/material/card';\nimport { MatToolbarModule, MatButtonModule} from '@angular/material';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport {MatIconModule} from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule} from '@angular/material/menu';\nimport { MatSidenavModule } from '@angular/material';\nimport { MatSelectModule } from '@angular/material/select';\nimport {MatTabsModule} from '@angular/material/tabs';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { QueryService } from './services/query.service';\nimport {routing} from './app.routing';\nimport {HomeComponent} from './home.component';\nimport { ManuscriptViewComponentComponent } from './manuscript-view-component/manuscript-view-component.component';\nimport { ContentViewTabComponentComponent } from './content-view-tab-component/content-view-tab-component.component';\nimport { RhizomeViewComponentComponent } from './rhizome-view-component/rhizome-view-component.component';\nimport { MainMenuComponentComponent } from './main-menu-component/main-menu-component.component';\nimport { PageViewWrapperComponent } from './page-view-wrapper-component/page-view-wrapper.component';\nimport { NavigationListComponentComponent } from './navigation-list-component/navigation-list-component.component';\nimport {NavigationServiceService} from './services/navigation-service.service';\nimport { TlnEditionModule} from './tln-edition/tln-edition.module';\nimport { NavTree } from './navigation-list-component/navtree-directive.directive';\nimport { LazyImageLoadDirectiveDirective } from './content-view-tab-component/lazy-image-load-directive.directive';\nimport { ImpressumComponent } from './impressum.component';\nimport { ProjectComponent } from './project.component';\n\n\n@NgModule({\n declarations: [\n AppComponent,\n HomeComponent,\n ManuscriptViewComponentComponent,\n ContentViewTabComponentComponent,\n RhizomeViewComponentComponent,\n MainMenuComponentComponent,\n PageViewWrapperComponent,\n NavigationListComponentComponent,\n NavTree,\n LazyImageLoadDirectiveDirective,\n ImpressumComponent,\n ProjectComponent\n ],\n imports: [\n routing,\n BrowserModule,\n BrowserAnimationsModule,\n CommonModule,\n HttpClientModule,\n MatButtonModule,\n MatCardModule,\n MatExpansionModule,\n MatIconModule,\n MatListModule,\n MatMenuModule,\n MatSelectModule, // for themes selection\n MatSidenavModule,\n MatTabsModule,\n MatToolbarModule,\n FormsModule,\n TlnEditionModule,\n ReactiveFormsModule\n ],\n providers: [ NavigationServiceService, QueryService ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import {RouterModule, Routes} from '@angular/router';\nimport {HomeComponent} from './home.component';\nimport {ImpressumComponent} from './impressum.component';\nimport {ProjectComponent} from './project.component';\nimport {ContentViewTabComponentComponent} from './content-view-tab-component/content-view-tab-component.component';\nimport {CONTENT_ROUTES} from './content-view-tab-component/content-view-routes';\nimport { CONTENT_VIEW_ROUTE, DOCUMENTATION_ROUTE, HOME_ROUTE, IMPRESSUM_ROUTE, PROJECT_ROUTE } from './constants';\n\nconst APP_ROUTES: Routes = [\n {path: '', redirectTo: HOME_ROUTE, pathMatch: 'prefix'},\n {path: HOME_ROUTE, component: HomeComponent},\n {path: CONTENT_VIEW_ROUTE, component: ContentViewTabComponentComponent, children: CONTENT_ROUTES},\n {path: PROJECT_ROUTE, component: ProjectComponent},\n {path: IMPRESSUM_ROUTE, component: ImpressumComponent},\n {path: '**', redirectTo: HOME_ROUTE, pathMatch: 'prefix'} // any other unknown url will be forwarded to home\n];\n\nexport const routing = RouterModule.forRoot(APP_ROUTES);\n","export const CONTENT_VIEW_ROUTE: string = 'contentView';\nexport const DOCUMENTATION_ROUTE: string = 'doku';\nexport const HOME_ROUTE: string = 'home';\nexport const IMPRESSUM_ROUTE: string = 'impressum';\nexport const PROJECT_ROUTE: string = 'project';\n","import { Routes } from '@angular/router';\nimport {ManuscriptViewComponentComponent} from \"../manuscript-view-component/manuscript-view-component.component\";\nimport {RhizomeViewComponentComponent} from \"../rhizome-view-component/rhizome-view-component.component\";\nimport {PageViewWrapperComponent} from \"../page-view-wrapper-component/page-view-wrapper.component\";\nimport { TLN_CROSSREF_ROUTE, TLN_MANUSCRIPT_ROUTE, TLN_SEARCH_ROUTE, TLN_VIEWER_ROUTE } from '../tln-edition/constants';\nimport { TlnFulltextComponent } from '../tln-edition/tln-fulltext/tln-fulltext.component';\n\nexport const CONTENT_ROUTES: Routes = [\n { path: TLN_MANUSCRIPT_ROUTE, component: ManuscriptViewComponentComponent },\n { path: TLN_VIEWER_ROUTE, component: PageViewWrapperComponent },\n { path: TLN_CROSSREF_ROUTE, component: RhizomeViewComponentComponent },\n { path: TLN_SEARCH_ROUTE, component: TlnFulltextComponent},\n { path: '', redirectTo: TLN_MANUSCRIPT_ROUTE, pathMatch: 'prefix' }\n];\n","export default \".mat-drawer-container {\\n width: 100%;\\n}\\n\\n.mat-drawer {\\n overflow: hidden;\\n padding: 10px;\\n margin-right: 10px;\\n max-height: 100%;\\n min-height: 90%;\\n}\\n\\n.mat-card {\\n width: 100%;\\n}\\n\\n.mat-drawer-content {\\n min-height: 100vh;\\n width: 100%;\\n height: 100%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL2NvbnRlbnQtdmlldy10YWItY29tcG9uZW50L2NvbnRlbnQtdmlldy10YWItY29tcG9uZW50LmNvbXBvbmVudC5zY3NzIiwiYXBwL2NvbnRlbnQtdmlldy10YWItY29tcG9uZW50L2NvbnRlbnQtdmlldy10YWItY29tcG9uZW50LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0VBQ0UsV0FBQTtBQ0FGOztBREdBO0VBQ0UsZ0JBQUE7RUFDQSxhQUFBO0VBQ0Esa0JBQUE7RUFFQSxnQkFBQTtFQUNBLGVBQUE7QUNERjs7QURJQTtFQUNFLFdBQUE7QUNERjs7QURJQTtFQUNFLGlCQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7QUNERiIsImZpbGUiOiJhcHAvY29udGVudC12aWV3LXRhYi1jb21wb25lbnQvY29udGVudC12aWV3LXRhYi1jb21wb25lbnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0aGUgbmF2aWdhdGlvbiBkcmF3ZXIgb24gdGhlIHZlcnkgbGVmdCBjb250YWluaW5nIHRoZSBpdGVtcyB0byBjaG9vc2UgZnJvbVxuLm1hdC1kcmF3ZXItY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5tYXQtZHJhd2VyIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMTBweDtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuXG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDkwJTtcbn1cblxuLm1hdC1jYXJkIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5tYXQtZHJhd2VyLWNvbnRlbnQge1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbiIsIi5tYXQtZHJhd2VyLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubWF0LWRyYXdlciB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogOTAlO1xufVxuXG4ubWF0LWNhcmQge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLm1hdC1kcmF3ZXItY29udGVudCB7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufSJdfQ== */\"","import {Component, OnInit} from '@angular/core';\nimport {ActivatedRoute, Params, Router} from '@angular/router';\nimport {Subscription} from \"rxjs/index\";\nimport {NavigationServiceService} from \"../services/navigation-service.service\";\nimport { TLN_CROSSREF_ROUTE, TLN_MANUSCRIPT_ROUTE, TLN_SEARCH_ROUTE, TLN_VIEWER_ROUTE } from '../tln-edition/constants';\n\n@Component({\n selector: 'app-content-view-tab-component',\n templateUrl: './content-view-tab-component.component.html',\n styleUrls: ['./content-view-tab-component.component.scss'],\n providers: [ NavigationServiceService ]\n})\nexport class ContentViewTabComponentComponent implements OnInit {\n // navigation tabs for the content view (manuscript view, page view, rhizome view)\n navTabLinks: any[];\n // navbar on th left for navigating\n navBarOpenState = false;\n fullscreen = false;\n\n navBarOpenMode: string;\n queryParams: Params = {};\n queryParamSubscription: Subscription;\n\n constructor(private router: Router,\n private activatedRoute: ActivatedRoute,\n private naviService: NavigationServiceService) {\n\n // The links/tabs for routing the correct view-component\n this.navTabLinks = [\n {\n label: 'Manuskriptansicht',\n link: TLN_MANUSCRIPT_ROUTE,\n index: 0,\n isActive: false,\n context: 'manuscript'\n }, {\n label: 'Seitenansicht',\n link: TLN_VIEWER_ROUTE,\n index: 1,\n isActive: false,\n context: 'page'\n }, {\n label: 'Querverweise',\n link: TLN_CROSSREF_ROUTE,\n index: 2,\n isActive: false\n }, {\n label: 'Suche',\n link: TLN_SEARCH_ROUTE,\n index: 3,\n isActive: false\n },\n ];\n\n this.queryParamSubscription = this.activatedRoute.queryParams.subscribe( (queryParams: Params ) => {\n this.queryParams = queryParams;\n if (queryParams.navBarOpenState) {\n this.navBarOpenState = JSON.parse(queryParams.navBarOpenState.toLowerCase());\n }\n if (queryParams.fullscreen) {\n this.fullscreen = JSON.parse(queryParams.fullscreen.toLowerCase());\n }\n });\n }\n\n ngOnInit() {\n // this.mesurePerformance();\n this.navBarOpenMode = 'side'; // side || over || push\n this.setParamsOnInit();\n // If url pasted or page refreshed --> resetting this.queryparams to the query params of the url;\n // needed for active routing in the nav tabs & for general use in the template\n }\n\n // Sets the isActive prop of a navTabLink to true and all others to false .\n setActiveLink(link: string) {\n this.navTabLinks.forEach((navTabLink, index ) => {\n if (navTabLink.link === link) {\n this.navTabLinks[index].isActive = true;\n if (navTabLink.context) {\n window.setTimeout(() => this.naviService.updateRoute({navContext : navTabLink.context}), 300);\n }\n } else {\n this.navTabLinks[index].isActive = false;\n }\n });\n }\n\n\n mesurePerformance() {\n const perfData = window.performance.timing;\n const pageLoadTime = perfData.loadEventEnd - perfData.navigationStart;\n console.log('content load performance is: ', pageLoadTime);\n }\n\n setParamsOnInit() {\n const qParams: Params = {};\n // Set the NavBarOpenstate to true if it is not defined explicitely as false in the url query param onInit.\n if (this.activatedRoute.snapshot.queryParamMap.get('navBarOpenState') !== 'false') {\n qParams.navBarOpenState = 'true'; }\n // viewMode\n if (!this.activatedRoute.snapshot.queryParamMap.get('viewMode')) {\n qParams.viewMode = 'Transkription/Faksimile';\n }\n if (!this.activatedRoute.snapshot.queryParamMap.get('navContext')) {\n qParams.navContext = 'manuscript';\n this.setActiveLink('tln-manuscript');\n } else {\n if (this.activatedRoute.snapshot.queryParamMap.get('navContext') === 'manuscript') {\n this.setActiveLink('tln-manuscript');\n } else {this.setActiveLink('tln-viewer'); } }\n this.naviService.updateRoute(qParams);\n }\n}\n","import { Directive, ElementRef } from '@angular/core';\n\n@Directive({\n selector: 'img'\n})\n\nexport class LazyImageLoadDirectiveDirective {\n\n constructor({ nativeElement }: ElementRef<HTMLImageElement>) {\n const supports = 'loading' in HTMLImageElement.prototype;\n if (supports) {\n nativeElement.setAttribute('loading', 'lazy');\n }\n }\n}\n\n// IF NOT SUPPORTED IN CHROME: Open chrome://flags in Chromium or Chrome Canary.\n// Search for lazy.\n// Enable both the “Enable lazy image loading” and the “Enable lazy frame loading” flag.\n// Restart the browser with the button in the lower right corner of the screen.\n","export default \".skip {\\n margin-top: 20px;\\n}\\n.second{\\n margin-left: 10px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9ob21lLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxnQkFBZ0I7QUFDbkI7QUFDQTtHQUNHLGlCQUFpQjtBQUNwQiIsImZpbGUiOiJhcHAvaG9tZS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnNraXAge1xuICAgbWFyZ2luLXRvcDogMjBweDtcbn1cbi5zZWNvbmR7XG4gICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbiJdfQ== */\"","import { Component, OnInit } from '@angular/core';\nimport { Params } from '@angular/router';\nimport { CONTENT_VIEW_ROUTE } from './constants';\nimport { TLN_MANUSCRIPT_ROUTE, TLN_MANUSCRIPT_PARAM } from './tln-edition/constants';\n\n\n@Component({\n selector: 'app-home-component',\n templateUrl: './home.component.html',\n styleUrls: ['./home.component.css']\n})\nexport class HomeComponent implements OnInit {\n manuscriptLink: string[] = [ '/' + CONTENT_VIEW_ROUTE, TLN_MANUSCRIPT_ROUTE ];\n mpXIVParam: Params = {}\n mpXVParam: Params = {}\n ngOnInit(){\n this.mpXIVParam[TLN_MANUSCRIPT_PARAM] = 'http://rdfh.ch/projects/0068#_Mp_XIV';\n this.mpXVParam[TLN_MANUSCRIPT_PARAM] = 'http://rdfh.ch/projects/0068#_Mp_XV';\n }\n}\n\n\n","export default \".text {\\n text-align: justify;\\n width: 800px;\\n}\\n.subcontent {\\n margin-bottom: 20px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9pbXByZXNzdW0uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLG1CQUFtQjtHQUNuQixZQUFZO0FBQ2Y7QUFDQTtHQUNHLG1CQUFtQjtBQUN0QiIsImZpbGUiOiJhcHAvaW1wcmVzc3VtLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudGV4dCB7XG4gICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgd2lkdGg6IDgwMHB4O1xufVxuLnN1YmNvbnRlbnQge1xuICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cbiJdfQ== */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-impressum',\n templateUrl: './impressum.component.html',\n styleUrls: ['./impressum.component.css']\n})\nexport class ImpressumComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import {Component, Input, OnChanges} from '@angular/core';\nimport {DomSanitizer, SafeResourceUrl, SafeStyle} from '@angular/platform-browser'\nimport {NgxMatStandoffMarkupService} from \"./ngx-mat-standoff-markup.service\";\nimport {Style} from \"@angular/cli/lib/config/schema\";\n\n\n@Component({\n selector: 'NgxMat-NgxMatStandoffMarkup',\n templateUrl: './ngx-mat-standoff-markup.component.html'\n})\n/**\n* Simple and leightweight component marking up/styling a text input textToStyle with standoff markupDataMerged.\n* @param standoffData: the standoff data for style markup/semantic markup.\n* @param textToStyle: the text which will be styled acc. to the standoffData.\n* @param startIndices: the final startindices to segment the text for markup. Does NOT simply equal all startindices of standoffData. It\n* also contains all startindices of segments which are not styled/marked up.\n* @param templateSegments: the resulting text segments with their individual markup information. Overlaps are supported\n*/\nexport class NgxMatStandoffMarkupComponent implements OnChanges {\n @Input() textToStyle: string;\n @Input() markupSettings: StandoffMarkupSettings;\n @Input() standoffData: (SemanticPositonalAnnotation | PositionalStyleMarkup )[]; // both combined in one array\n @Input() posStyleMarkup?: PositionalStyleMarkup[];\n @Input() semPosAnnotation?: SemanticPositonalAnnotation[];\n @Input() cssDef?: StyleSheetDef;\n @Input() parentId?: string;\n @Input() parentClass?: string;\n cssUrl: SafeResourceUrl; // the url if a file path is passed acc. to the cssDef\n markupDataMerged: (SemanticPositonalAnnotation | PositionalStyleMarkup )[];\n\n startIndices: Array<number> = []; // the start indices of all style segments\n templateSegments: Segment[]; // the resulting style segments with their css styles\n\n selectionStartIndex: number;\n\n constructor( public sanitizer: DomSanitizer, private standoffService: NgxMatStandoffMarkupService) {\n }\n\n ngOnChanges() {\n if (this.cssDef.type === 'url') {\n this.cssUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.cssDef.css); // the actual url of the css for embetting.\n }\n this.mergeInputData();\n this.startIndices = this.getStartIndices(this.markupDataMerged);\n this.segmentText();\n }\n\n /**\n * Merging the different data inputs to one data array if multiple inputs\n */\n private mergeInputData() {\n if (this.standoffData && this.standoffData.length) {\n this.markupDataMerged = this.standoffData;\n if ((this.posStyleMarkup && this.posStyleMarkup.length) || (this.semPosAnnotation && this.semPosAnnotation.length)) {\n console.log('WARNING: posStyleMarkup or semPosAnnotation input ignored.')\n }\n } else {\n if ((this.posStyleMarkup && this.posStyleMarkup.length) && (this.semPosAnnotation && this.semPosAnnotation.length)) {\n this.markupDataMerged.concat(this.posStyleMarkup, this.semPosAnnotation);\n } else {\n if (this.posStyleMarkup && this.posStyleMarkup.length) { this.markupDataMerged = this.posStyleMarkup }\n if (this.semPosAnnotation && this.semPosAnnotation.length) { this.markupDataMerged = this.semPosAnnotation }\n }\n }\n }\n\n\n /**\n * Creates the final text segments and styles (this.templateSegments) which will\n * be *ngFored as <span> and styled with *ngStyle in the template.\n * Iterates through all startindices defined, pushes the corresponding substring\n * of our text to style together with its matching styles to this.templateSegments\n *\n */\n private segmentText() {\n this.templateSegments = [];\n let c = 1; // counter for getting the end index of the substring() via this.startIndices[c]\n for (const startIndex of this.startIndices) {\n // the text from startIndex to the next startIndex, i.e. the endIndex ...\n const segmentText = this.textToStyle.substring(startIndex, this.startIndices[c]);\n // all segmentDefs within the given range ...\n const segmentDefsInRange = this.markupDataMerged.filter((def) => {\n return def.startIndex <= startIndex && startIndex <= def.endIndex});\n let segment2 = new Segment(segmentText, startIndex, this.markupSettings, segmentDefsInRange);\n this.templateSegments.push(segment2);\n c += 1;\n }\n }\n\n /**\n * Creates an array of startindices defining the final text/style segments.\n * Hence every end index can be described as a startindex minus one (an end\n * index equals a start index of sth. new -1), end indices are also covered implicitly.\n * So every endIndex +1 is also pushed to the startIndices array if not yet existing.\n * If a defined range is ending at the very last character, there is obviously not a new\n * style starting and an additive startIndex is wrong. Therefore the last startIndex\n * is simply popped from the array if its value exceeds textToStyle.length.\n *\n * @return startIndices: Array of all distinct startIndices of the final text segments.\n */\n private getStartIndices(standoffData: StandoffDef[]) {\n\n const startIndices: Array<number> = [];\n // Push every startindex to startIndices if not yet there to get a distinct array of startindices for segmenting the text.\n // Hence every every end means a start of sth new, every endIndex equals a startIndex -1. Therefore we simply add also\n // every endIndex +1 to the Array of startIndices (if there is not yet a start defined for that character).\n\n standoffData.forEach(defEntry => {\n if (startIndices.indexOf(defEntry.startIndex) === -1) { // if the startIndex of the defEntry is not yet in startIndices\n startIndices.push(defEntry.startIndex);\n }\n if (startIndices.indexOf(defEntry.endIndex + 1) === -1) {\n startIndices.push(defEntry.endIndex + 1);\n }\n });\n // if there is no startindex of 0, we have to add it to define the first text segment.\n if (startIndices.indexOf(0) === -1) {\n startIndices.push(0); }\n // sort it\n startIndices.sort((n1, n2) => n1 - n2);\n // If the last endIndex is the very last character of the string to style, we must not generate a startIndex at endIndex+1.\n // In any other case we have to start a new style.\n // If the last generated startIndex is bigger than this.textToStyle.length\n // we have to pop that last startIndex (from the right) from our startIndices.\n // If the textToStyle.length is bigger or equals the last startIndex, that last startIndex simply means the end of the style\n // one character before. In these cases a last style range with font style undefined (style:normal) has to start,\n // so the last end ist also defined.\n if (this.textToStyle.length < startIndices[startIndices.length - 1]) { startIndices.pop(); }\n return startIndices;\n }\n\n private onSegmentClick(segment: Segment){\n const sel = window.getSelection(); // needed for preventing onclicks when selecting text\n if (sel.type != 'Range' && segment.interact) {\n let seg = new InteractedSegment(this.parentId, this.parentClass, segment);\n this.standoffService.interactedSegmentEmitter.emit(seg);\n }\n }\n\n // Text selection only works within a parent element (div). If you have several ngx-mat-standoff-components, e.g.\n // in an ngFor loop, you have to read the window data out yourself in your component.\n private setSelectedText(selectionEndstartIndex: number){\n if (window.getSelection) {\n let sel = window.getSelection();\n if (!sel.isCollapsed) {\n let totalRangeStartIndex = this.selectionStartIndex + sel.anchorOffset;\n let totalRangeEndIndexFocus = selectionEndstartIndex + sel.focusOffset;\n // all standoff definitions in that range ...\n const segmentDefsInRange = this.markupDataMerged.filter((def) => {\n return def.endIndex >= totalRangeStartIndex && def.startIndex <= totalRangeEndIndexFocus\n });\n let selectedText = this.textToStyle.substring(totalRangeStartIndex, totalRangeEndIndexFocus);\n this.standoffService.selectedTextEmitter.emit(\n new TextSelection(selectedText, totalRangeStartIndex, totalRangeEndIndexFocus, this.parentId, segmentDefsInRange));\n }\n }\n }\n\n private setSelectionStartIndex(startIndex) {\n this.selectionStartIndex = startIndex;\n }\n}\n\nexport class StandoffDef { // extendended by both types\n sType: number; // 0 === markup via css tag; 1 === apply css class\n startIndex: number; // character where the style/class starts\n endIndex: number; // character where the style/class ends\n\n\n constructor( sType: number, startIndex: number, endIndex: number ) {\n this.sType = sType;\n this.startIndex = startIndex;\n this.endIndex = endIndex;\n }\n}\n\nexport class PositionalStyleMarkup extends StandoffDef {\n cssStyleTag: string; // one or multiple css style tags like 'font-weight: bold;' or 'font-weight: bold; font-style: italic'\n constructor( sType: number, startIndex: number, endIndex: number, cssStyleTag: string) {\n super( sType, startIndex, endIndex);\n this.cssStyleTag = cssStyleTag;\n }\n}\n\nexport class SemanticPositonalAnnotation extends StandoffDef {\n cssClass?: string; // class name or subclass path with or without dots like '.animal.dog' or 'animal dog'\n iri?: string; // a desired iri or id\n description?: string;\n custom?: any;\n constructor( sType: number,\n startIndex: number,\n endIndex: number,\n cssClass?: string,\n iri?: string,\n description?: string,\n custom?: any) {\n super(sType, startIndex, endIndex);\n this.cssClass = cssClass;\n this.iri = iri;\n this.description = description;\n this.custom = custom; }\n}\n\nexport class Segment {\n sType: number; // 0 = markup only, 1 = semAnnotation only\n sText: string;\n sStartIndex: number;\n interact: boolean;\n originalDefs?: OriginalStandoffDef; // all originalDefs no matter whatsoever\n cssStyleTag?: StyleDef;\n cssClass?: StyleDef;\n\n constructor( text,\n sStartIndex: number,\n settings: StandoffMarkupSettings,\n standoffDef?: (SemanticPositonalAnnotation[] | PositionalStyleMarkup[])) {\n this.sText = text; //the string (=== subString) of the segment\n this.sStartIndex = sStartIndex; // the startIndex of the segment within the whole text\n this.originalDefs = new OriginalStandoffDef(standoffDef);\n this.setSegment(standoffDef, settings);\n\n }\n\n /**\n * sets the sType, interact and sStyleDef\n *\n */\n private setSegment(defs, settings) {\n if (defs && defs.length > 0) { // If there are definitions ...\n // check for markup type overlaps, e.g. definitions for type 0 and type 1\n // by checking the length of a Set (= distinct) of all sTypes in defs.\n if (Array.from(new Set(defs.map((item: any) => item.sType))).length > 1) { // If >1 there is an overlap\n // set the sType depending on the markupPreference ...\n this.sType = settings.markupPreference;\n this.sType === 0? this.setSyle(defs): this.setClass(defs, settings.polysemanticWrapper);\n\n } else { this.sType = defs[0].sType } // if there is only one sType within defs we set that\n // setting the interact according to the sType.\n this.sType === 0? this.interact = settings.interactWithStyles : this.interact = settings.interactWithAnnotations;\n let filteredDefs = defs.filter((def) => { return def.sType === this.sType; }); // subset of all defs which type === sType\n this.sType === 0? this.setSyle(filteredDefs): this.setClass(filteredDefs, settings.polysemanticWrapper);\n } else {\n // If there is nothing defined for the text segment at all ...\n this.setUndefinedSegmentParts(settings.interactWithUndefined) }\n }\n\n setSyle(defs) {\n defs.forEach( def => {\n const posStyle = def as PositionalStyleMarkup;\n // Adds every css property/value to the markup object\n // splitting multiple styles at ';'\n // removes leading and ending spaces, deletes \";\" and assigns it as an object as css property:\"value\"\n this.cssStyleTag = {};\n posStyle.cssStyleTag.split(';').forEach( style => {\n if (style.trim().length > 0) { this.cssStyleTag[style.split(':')[0].trim()] = style.split(':')[1].trim()}\n }\n );\n });\n }\n\n setClass(defs, polysemanticWrapper?: string) {\n this.cssClass = {};\n if (polysemanticWrapper && defs.length > 1) { this.cssClass[polysemanticWrapper]= true;} else {\n defs.forEach( def => {\n const posSem = def as SemanticPositonalAnnotation;\n // adding a class\n this.cssClass[posSem.cssClass.trim().replace('.', ' ' )]= true;\n });\n }\n }\n\n setUndefinedSegmentParts(interact: boolean) {\n this.sType = 0;\n this.cssStyleTag = []; // {'font-style': 'normal'}\n this.interact = interact;\n }\n}\n\nexport class InteractedSegment{\n parentId: string;\n parentClass: string;\n segment;\n constructor(parentId: string, parentClass:string, segment: Segment) {\n this.parentClass = parentClass;\n this.parentId = parentId;\n this.segment = segment;\n }\n}\n\nexport class OriginalStandoffDef {\n positionalMarkup: PositionalStyleMarkup[];\n semanticAnnotation: SemanticPositonalAnnotation[];\n\n constructor(standOffDef: any[]) {\n this.positionalMarkup = standOffDef.filter((def) => { return def.sType === 0; }); // subset of all defs which type === 0\n this.semanticAnnotation = standOffDef.filter((def) => { return def.sType === 1; }); // subset of all defs which type === 1\n }\n}\n\nexport interface StyleDef {\n [klass: string]: any; // font-weight: bold; myCssClass = true; ...\n}\n\nexport class StyleSheetDef {\n css: string; // the url to the file or the css iteself as plain text\n type: string; // 'url' for a path to the css file or 'text' for plain css text;\n\n constructor(css: string, type: string) {\n this.css = css;\n this.type = type;\n }\n}\n\nexport class StandoffMarkupSettings {\n\n interactWithStyles?: boolean; // clickable style segments && emitting the style definition of the segment to service\n interactWithAnnotations?: boolean; // clickable anotation segments && emitting the definition back to service\n interactWithUndefined?: boolean; // clickable segments for which nothing is defined\n markupPreference?: number; // The preference on overlaps of styles and classes. Defines the winner: 0 === styles win; 1 === classes win;\n polysemanticWrapper?: string; // optional class name for all polysemantics. In case of semantic overlaps/polysemantics this css class will be applied\n\n constructor(interactWithStyles: boolean = false,\n interactWithAnnotations: boolean = true,\n interactWithUndefined: boolean = false,\n markupPreference: number = 1,\n polysemanticWrapper?: string) {\n\n this.interactWithStyles = interactWithStyles;\n this.interactWithAnnotations = interactWithAnnotations;\n this.interactWithUndefined = interactWithUndefined;\n this.markupPreference = markupPreference;\n this.polysemanticWrapper = polysemanticWrapper;\n }\n}\n\nexport class TextSelection {\n text: string;\n startIndex: number;\n endIndex: number;\n parentId: string;\n standoffDefsInRange?: (SemanticPositonalAnnotation | PositionalStyleMarkup )[];\n\n constructor(text: string, startIndex: number, endIndex: number, parentId?: string, standoffDefsInRange? ) {\n this.text = text;\n this.startIndex = startIndex;\n this.endIndex = endIndex;\n this.parentId = parentId;\n this.standoffDefsInRange = standoffDefsInRange;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { NgxMatStandoffMarkupComponent } from './ngx-mat-standoff-markup.component';\nimport { MatTooltipModule } from '@angular/material';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { NgxMatStandoffMarkupService} from \"./ngx-mat-standoff-markup.service\";\n\n@NgModule({\n declarations: [\n NgxMatStandoffMarkupComponent],\n imports: [\n MatTooltipModule,\n BrowserModule,\n BrowserAnimationsModule\n ],\n exports: [NgxMatStandoffMarkupComponent],\n providers: [NgxMatStandoffMarkupService]\n})\nexport class NgxMatStandoffMarkupModule { }\n","import { Injectable, EventEmitter } from '@angular/core';\nimport {\n PositionalStyleMarkup, SemanticPositonalAnnotation, Segment,\n TextSelection, InteractedSegment\n} from \"./ngx-mat-standoff-markup.component\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgxMatStandoffMarkupService {\n\n // subscribe here to the selected things. For editing your standoff markup/semantic annotations\n public interactedSegmentEmitter = new EventEmitter<InteractedSegment>();\n public selectedTextEmitter = new EventEmitter<TextSelection>(); // multiple spaces removed\n\n constructor() {\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhcHAvbWFpbi1tZW51LWNvbXBvbmVudC9tYWluLW1lbnUtY29tcG9uZW50LmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\nimport {MatButtonModule} from '@angular/material/button';\nimport {Subscription} from 'rxjs';\nimport {ActivatedRoute, Params} from '@angular/router';\nimport { CONTENT_VIEW_ROUTE, DOCUMENTATION_ROUTE, HOME_ROUTE, IMPRESSUM_ROUTE, PROJECT_ROUTE } from '../constants';\n\n@Component({\n selector: 'app-main-menu-component',\n templateUrl: './main-menu-component.component.html',\n styleUrls: ['./main-menu-component.component.scss']\n})\nexport class MainMenuComponentComponent implements OnInit {\n contentViewLink: string[] = [ CONTENT_VIEW_ROUTE ];\n fullScreen: string;\n impressumLink: string[] = [ IMPRESSUM_ROUTE ];\n homeLink: string[] = [ HOME_ROUTE ];\n projectLink: string[] = [ PROJECT_ROUTE];\n queryParamSub: Subscription;\n queryParams: Params;\n\n constructor(private activatedRoute: ActivatedRoute) { }\n\n ngOnInit() {\n this.queryParamSub = this.activatedRoute.queryParams.subscribe( (queryParams: Params ) => {\n this.fullScreen = queryParams.fullscreen;\n this.queryParams = queryParams;\n\n });\n }\n\n}\n","export default \".content-area {\\n height: 100%;\\n display: table;\\n}\\n\\n.nav-container {\\n height: 100%;\\n width: 50%;\\n display: table-cell;\\n}\\n\\n.content-container {\\n height: 100%;\\n display: table-cell;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL21hbnVzY3JpcHQtdmlldy1jb21wb25lbnQvbWFudXNjcmlwdC12aWV3LWNvbXBvbmVudC5jb21wb25lbnQuc2NzcyIsImFwcC9tYW51c2NyaXB0LXZpZXctY29tcG9uZW50L21hbnVzY3JpcHQtdmlldy1jb21wb25lbnQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxZQUFBO0VBQ0EsY0FBQTtBQ0NGOztBREVBO0VBQ0UsWUFBQTtFQUVBLFVBQUE7RUFDQSxtQkFBQTtBQ0FGOztBREdBO0VBQ0UsWUFBQTtFQUdBLG1CQUFBO0FDRkYiLCJmaWxlIjoiYXBwL21hbnVzY3JpcHQtdmlldy1jb21wb25lbnQvbWFudXNjcmlwdC12aWV3LWNvbXBvbmVudC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jb250ZW50LWFyZWEge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6dGFibGU7XG59XG5cbi5uYXYtY29udGFpbmVyIHtcbiAgaGVpZ2h0OjEwMCU7XG4gIC8vbWluLXdpZHRoOiB1bnNldDsgLy8gbmVlZGVkIGJlY2F1c2UgYW5ndWxhciBzZXRzIGFuIG93biBtaW4gd2lkdGghP1xuICB3aWR0aDo1MCU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG5cbi5jb250ZW50LWNvbnRhaW5lciB7XG4gIGhlaWdodDoxMDAlO1xuICAvLyBtaW4td2lkdGg6IHVuc2V0OyAvLyBuZWVkZWQgYmVjYXVzZSBhbmd1bGFyIHNldHMgYW4gb3duIG1pbiB3aWR0aCE/XG4gIC8vIHdpZHRoOjIwcHg7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG4iLCIuY29udGVudC1hcmVhIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLm5hdi1jb250YWluZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiA1MCU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG5cbi5jb250ZW50LWNvbnRhaW5lciB7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-manuscript-view-component',\n templateUrl: './manuscript-view-component.component.html',\n styleUrls: ['./manuscript-view-component.component.scss']\n})\nexport class ManuscriptViewComponentComponent implements OnInit {\n constructor() { }\n\n ngOnInit() {\n }\n}\n","// class for Everything: extended by NavigationEntity, Manuscript, Page, Word with all common properties\nimport {SafeUrl} from '@angular/platform-browser';\n\nexport class TlnEntity {\n id: string; // Short id, iri in most cases\n iri: string; // iri\n type: string; // rdfs:type\n navContext: string;\n label?: string;\n description?: string;\n\n constructor(id: string, iri: string, type: string, navContext: string, label?: string, description?: string) {\n this.id = id;\n this.iri = iri;\n this.type = type;\n this.navContext = navContext;\n this.label = label;\n this.description = description;\n }\n}\n\nexport class TlnQueryParams {\n navBarOpenState: boolean;\n navContext: string;\n manuscript: string;\n page: string;\n selectedLines: string;\n selectedWords: string;\n viewMode: string; // '\n fullscreen: boolean;\n zoom: number;\n\n constructor(navBarOpenState: boolean, navContext: string, manuscript: string, page: string, selectedLines: string, selectedWords: string, viewMode: string, fullscreen: boolean, zoom: number ) {\n this.navBarOpenState = navBarOpenState; //proposed solution: JSON.parse(navBarOpenState)\n this.navContext = navContext; // proposed solution: Number(navTabIndex)\n this.manuscript = manuscript;\n this.page = page;\n this.selectedLines = selectedLines;\n this.selectedWords = selectedWords;\n this.viewMode = viewMode;\n this.fullscreen = fullscreen; // proposed solution: JSON.parse(fullscreen)\n this.zoom = zoom; // proposed solution: Number(zoom)\n // console.log('TlnQueryParams.fullscreen typeof:', typeof this.fullscreen, 'TlnQueryParams.zoom typeof:', typeof this.zoom);\n }\n}\n\n// The navigation entries in each tree for each viewtab (TlnManuscript, TlnPage, PositionalEntity) used by navigation\n//\nexport class NavigationEntity {\n idx: number;\n tlnEntity: TlnEntity;\n thumb?: SafeUrl; // url of image (Thumbnail)\n img?: SafeUrl; // full image url\n svg?: SafeUrl; // svg url\n avatar?: SafeUrl; // img for avatar\n\n constructor(idx: number, tlnEntity: TlnEntity, thumb?: string, img?, svg?: SafeUrl, avatar?: SafeUrl) {\n this.idx = idx;\n this.tlnEntity = tlnEntity;\n this.thumb = thumb;\n this.img = img;\n this.svg = svg;\n this.avatar = avatar;\n }\n}\n\nexport interface NavTreeDef {\n id: string; // name of the tree, also set as queryParam\n idx: number; // order\n label: string;\n itemQParam: string;\n entries: NavigationEntity[];\n description?: string;\n apiDef?: ApiDef;\n isActive?: boolean;\n}\n\nexport class ApiDef {\n type: number; // 0 === sparql 1.1., 1 === nietzscheSource API, 2 === existDB\n baseUrl: string;\n dataArray: string;\n query?: string;\n mapping?: TlnEntityMapping; // positive Filter ids: only these id's should be loaded into manuscript nav tree\n\n constructor( type: number, baseUrl: string, dataArray: string, query?: string, mapping?: TlnEntityMapping) {\n this.type = type;\n this.baseUrl = baseUrl;\n this.dataArray = dataArray;\n this.query = query;\n this.mapping = mapping;\n\n }\n}\n\nexport class TlnEntityMapping { // Is used for mapping the response from any given apiDef/response to a TlnEntity Instance\n id: string; // Short id, iri in most cases\n iri?: string; // iri\n idx?: string;\n type?: string; // rdfs:type\n label?: string;\n description?: string;\n avatar?: string;\n svg?: string;\n thumb?: string;\n\n constructor(id: string, iri?: string, idx?: string, type?: string, label?: string, description?: string, avatar?: string, svg?: string, thumb?: string) {\n this.id = id;\n this.iri = iri;\n this.idx = idx;\n this.type = type;\n this.label = label;\n this.description = description;\n this.avatar = avatar;\n this.svg = svg;\n this.thumb = thumb;\n }\n}\n","export default \".fixed-nav-container {\\n position: -webkit-sticky;\\n position: sticky;\\n max-height: 15vh;\\n}\\n\\n.navlist-container {\\n position: -webkit-sticky;\\n position: sticky;\\n max-height: 85vh;\\n overflow-x: hidden;\\n overflow-y: auto;\\n scroll-behavior: smooth;\\n}\\n\\n.mat-nav-list {\\n scroll-behavior: smooth;\\n}\\n\\n.mat-nav-list .mat-list-item {\\n width: 100%;\\n min-height: 72px;\\n height: 100%;\\n /* default is 72px */\\n padding: 0 !important;\\n margin: 0 !important;\\n}\\n\\n.thumbnail {\\n max-width: 100px;\\n max-height: 100px;\\n}\\n\\n.card-item {\\n width: 100%;\\n min-width: 100%;\\n margin-top: 5px;\\n background-color: rgba(255, 255, 255, 0) !important;\\n}\\n\\n.active-item {\\n background: linear-gradient(to right, rgba(255, 255, 255, 0), #dadada);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL25hdmlnYXRpb24tbGlzdC1jb21wb25lbnQvbmF2aWdhdGlvbi1saXN0LWNvbXBvbmVudC5jb21wb25lbnQuc2NzcyIsImFwcC9uYXZpZ2F0aW9uLWxpc3QtY29tcG9uZW50L25hdmlnYXRpb24tbGlzdC1jb21wb25lbnQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSx3QkFBQTtFQUFBLGdCQUFBO0VBQ0EsZ0JBQUE7QUNDRjs7QURFQTtFQUNFLHdCQUFBO0VBQUEsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSx1QkFBQTtBQ0NGOztBREVBO0VBQ0UsdUJBQUE7QUNDRjs7QURFQTtFQUNFLFdBQUE7RUFDQSxnQkFBQTtFQUNBLFlBQUE7RUFBYyxvQkFBQTtFQUNkLHFCQUFBO0VBQ0Esb0JBQUE7QUNFRjs7QURDQTtFQUNFLGdCQUFBO0VBQ0EsaUJBQUE7QUNFRjs7QURDQTtFQUNFLFdBQUE7RUFDQSxlQUFBO0VBQ0EsZUFBQTtFQUNBLG1EQUFBO0FDRUY7O0FEQ0E7RUFDRSxzRUFBQTtBQ0VGIiwiZmlsZSI6ImFwcC9uYXZpZ2F0aW9uLWxpc3QtY29tcG9uZW50L25hdmlnYXRpb24tbGlzdC1jb21wb25lbnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZml4ZWQtbmF2LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIG1heC1oZWlnaHQ6IDE1dmg7XG59XG5cbi5uYXZsaXN0LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIG1heC1oZWlnaHQ6IDg1dmg7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG59XG5cbi5tYXQtbmF2LWxpc3Qge1xuICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbn1cblxuLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiA3MnB4O1xuICBoZWlnaHQ6IDEwMCU7IC8qIGRlZmF1bHQgaXMgNzJweCAqL1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cblxuLnRodW1ibmFpbCB7XG4gIG1heC13aWR0aDogMTAwcHg7XG4gIG1heC1oZWlnaHQ6IDEwMHB4O1xufVxuXG4uY2FyZC1pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMTAwJTtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApICFpbXBvcnRhbnQ7XG59XG5cbi5hY3RpdmUtaXRlbSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAsICNkYWRhZGEpO1xufVxuIiwiLmZpeGVkLW5hdi1jb250YWluZXIge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBtYXgtaGVpZ2h0OiAxNXZoO1xufVxuXG4ubmF2bGlzdC1jb250YWluZXIge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBtYXgtaGVpZ2h0OiA4NXZoO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xufVxuXG4ubWF0LW5hdi1saXN0IHtcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG59XG5cbi5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW0ge1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogNzJweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICAvKiBkZWZhdWx0IGlzIDcycHggKi9cbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cblxuLnRodW1ibmFpbCB7XG4gIG1heC13aWR0aDogMTAwcHg7XG4gIG1heC1oZWlnaHQ6IDEwMHB4O1xufVxuXG4uY2FyZC1pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMTAwJTtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApICFpbXBvcnRhbnQ7XG59XG5cbi5hY3RpdmUtaXRlbSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSwgI2RhZGFkYSk7XG59Il19 */\"","import {AfterViewInit, Component, ElementRef, EventEmitter, OnInit, ViewChildren} from '@angular/core';\nimport {NavigationServiceService} from '../services/navigation-service.service';\nimport {NavigationEntity, NavTreeDef, TlnQueryParams} from '../models/models';\nimport {Subscription} from 'rxjs/index';\nimport {ActivatedRoute, Params, Router} from '@angular/router';\nimport {QueryService} from '../services/query.service';\nimport {NavTree} from './navtree-directive.directive';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'app-navigation-list-component',\n templateUrl: './navigation-list-component.component.html',\n styleUrls: ['./navigation-list-component.component.scss']\n})\n/**\n * NavigationListComponent\n * Does sinply consume data coming from naviservice && activated route. triggers click event to service.\n */\nexport class NavigationListComponentComponent implements OnInit, AfterViewInit {\n\n navigationTreeDefs: NavTreeDef[];\n navTrees: NavTree[]; // The actual Navtrees which are displayed\n\n oldQueryParams: Params;\n queryParams: Params;\n queryParamSubscription: Subscription;\n navTabIndex: number;\n\n constructor( public naviService: NavigationServiceService,\n private router: Router,\n private activatedRoute: ActivatedRoute,\n private queryService: QueryService) {\n\n this.navigationTreeDefs = [\n { id: 'manuscript',\n idx: 0,\n isActive: true,\n label: 'Manuskripte',\n itemQParam: 'manuscript',\n entries: [],\n apiDef: {\n type: 0, // rdf\n baseUrl: 'https://nietzsche.fuseki.services.dasch.swiss/nietzsche',//'http://fuseki.nie-ine.ch/nietzsche-rw/query',\n dataArray: 'results.bindings',\n query: 'manuscripts.rq',\n mapping: { // maps the properties of the reponse to tha NavTabDef properties, which are displayed\n id: 'manuscript.value', // Short id, iri in most cases\n iri: 'manuscript.value', // iri\n type: 'type.value',\n label: 'title.value',\n description: 'gsaSignature.value',\n avatar: 'thumbImage.value'\n }\n }\n }, {\n id: 'page',\n idx: 1,\n isActive: false,\n label: 'Seiten',\n itemQParam: 'page',\n entries: [],\n apiDef: {\n type: 0, // rdf\n baseUrl: 'https://nietzsche.fuseki.services.dasch.swiss/nietzsche',//'http://fuseki.nie-ine.ch/nietzsche-rw/query',\n dataArray: 'results.bindings',\n query: 'getPageData.rq',\n mapping: {\n id: 'page.value', // Short id, iri in most cases\n iri: 'page.value', // iri\n label: 'pageNumber.value',\n thumb: 'thumb.value',\n idx: 'pageNumber.value',\n svg: 'svgFileName.value',\n }\n }\n }\n ];\n // If url pasted or page refreshed --> resetting this.queryparams to the query params of the url;\n // needed for the template hence service instances can not be accessed in the template\n this.queryParamSubscription = this.activatedRoute.queryParams.subscribe( (queryParams: Params ) => {\n const navTabIndex = this.getActiveNavTabIndex(queryParams.navContext);\n if (this.oldQueryParams && queryParams.navContext) { // only if there are any oldParams\n this.reactOnContextChange(queryParams.navContext, this.oldQueryParams.navContext, navTabIndex );\n this.reactOnItemChange('page', queryParams.page, this.oldQueryParams.page);\n this.reactOnItemChange('manuscript', queryParams.manuscript, this.oldQueryParams.manuscript);\n }\n this.oldQueryParams = queryParams;\n });\n }\n\n async ngOnInit() {\n await this.createTreesOnInit();\n this.navTabIndex = await this.getActiveNavTabIndex();\n await this.populateNavTrees();\n // set selected things in url\n this.navTrees.forEach(tree => {\n // if there is no selected item for each tree, we have to listen to the selectedItemSet/tree population and set them per default\n if (!this.activatedRoute.snapshot.queryParamMap.get(tree.qParam)) {\n tree.selectedItemSet.subscribe(item => {\n this.setSelectedItemAndRoute(item.itemId, item.tabId);\n });\n }\n });\n // change navTree according to chosen route per default\n // set NavContext if unset according to selected component: manuscriptView, tln-page view\n if (this.activatedRoute.snapshot.firstChild.url[0].path === 'tln-viewer'\n && !this.activatedRoute.snapshot.queryParamMap.get('navContext')) {\n this.naviService.updateRoute({navContext: 'page'});\n }\n }\n\n ngAfterViewInit() {\n const selectedItem = this.activatedRoute.snapshot.queryParamMap.get(this.activatedRoute.snapshot.queryParamMap.get('navContext'));\n this.scrollOnToSelectedItem(selectedItem);\n }\n\n reactOnItemChange(param: string, itemId: string, oldItemId) {\n if (itemId && itemId !== '' && oldItemId) {\n if (itemId !== oldItemId) {\n const tab = this.navTrees.findIndex(tree => tree.id === param);\n this.setSelectedItem(itemId, tab);\n if (tab === this.navTabIndex) {\n window.setTimeout(() => this.scrollOnToSelectedItem(itemId), 100);\n }\n }\n }\n }\n\n reactOnContextChange(context: string, oldContext: string, activeTab: number) {\n if (context !== oldContext) {\n this.navTabIndex = activeTab;\n // must time out here hence document is not ready to scroll\n window.setTimeout(() => this.scrollOnToSelectedItem(this.oldQueryParams[context]), 100);\n }\n }\n\n scrollOnToSelectedItem(itemId: string ) {\n if (document.getElementById(itemId)) {\n const offSetTop = document.getElementById(itemId).offsetTop;\n document.getElementById('navlist').scrollTop = offSetTop - 100;\n }\n }\n\n /**\n * getActiveNavTabIndexOnInit\n * gets the active navTabIndex either from a passed navConText, from active qParam or or from definition\n */\n getActiveNavTabIndex(con?: string) {\n let navConText;\n if (!con || con === '') {\n navConText = this.activatedRoute.snapshot.queryParamMap.get('navContext');\n } else { navConText = con; }\n let navTabIndex = 0;\n if (navConText && navConText !== '') {\n const nIndex = this.navigationTreeDefs.findIndex(tree => tree.id === navConText);\n navTabIndex = this.navigationTreeDefs[nIndex].idx;\n } else { navTabIndex = 0; }\n return navTabIndex;\n }\n\n createTreesOnInit() {\n this.navTrees = [];\n this.navigationTreeDefs.forEach( def =>\n this.navTrees.push(new NavTree(def.id, def.idx, def.label, [], def.itemQParam, def.description, def.apiDef)));\n }\n\n async onSelectNavItem(item: NavigationEntity) {\n // If a new item is clicked\n if (this.navTrees[this.navTabIndex].selectedItem !== item.tlnEntity.id) {\n // get new data for subTrees and set new params accordingly\n await this.emptyChildTrees(this.navTabIndex);\n await this.removeAllChildTreeQParams(this.navTabIndex);\n await this.setSelectedItemAndRoute(item.tlnEntity.id, this.navTabIndex);\n await this.populateChildren(this.navTabIndex, item.tlnEntity.id);\n // Only if context !== 'page', e.g. view is tln-viewer), we change to the second page tab\n const navContext = this.activatedRoute.snapshot.queryParamMap.get('navContext');\n if (navContext !== this.navTrees[this.getActiveNavTabIndex()].qParam) {\n this.changeNavTreeViaRoute(this.navTabIndex + 1);\n }\n } else { // if an already selected item is clicked again, it changes the tree/tab\n this.changeNavTreeViaRoute(this.navTabIndex + 1); }\n }\n\n removeAllChildTreeQParams(tabId) {\n this.navTrees.forEach((tree, index) => {\n if (tree.idx > tabId) {\n this.navTrees[index].selectedItem = null;\n this.naviService.updateRoute({[tree.qParam]: null});\n }\n });\n }\n\n emptyChildTrees(parentIdx) {\n this.navTrees.forEach((tree, index) => {\n if (tree.idx > parentIdx) {\n this.navTrees[index].entries = [];\n }\n });\n }\n\n setSelectedItem(navItemId: string, tabId: number) {\n this.navTrees[tabId].selectedItem = navItemId;\n }\n\n // Will route, the qParamSubscription reacts and trees are built further\n async setSelectedItemAndRoute(navItemId: string, tabId: number) {\n this.navTrees[tabId].selectedItem = navItemId;\n const idx = this.navigationTreeDefs.findIndex(tree => tree.idx === tabId);\n // set new qParam\n const newParams = {};\n const qParam = this.navigationTreeDefs[idx].itemQParam;\n newParams[qParam] = navItemId;\n this.naviService.updateRoute(newParams);\n }\n\n\n populateChildren(activeTab, itemId?: string) {\n if (activeTab + 1 < this.navigationTreeDefs.length) {\n // if an item in a tab with sub tabs is selected, the subtree should be loaded according to that selection and the tab should change\n this.populateNavTrees(activeTab + 1, itemId );\n }\n }\n\n // switches tabs in navtab ov navigation bar\n changeNavTreeViaRoute(idx: number) {\n if (idx < this.navTrees.length) {\n this.naviService.updateRoute({navContext: this.navTrees[idx].qParam}); }\n }\n\n /**\n * populateNavTrees creates the first trees if no query params are available in the url:\n * It ceates the manuscripNavTree and the activePageNavTreeData of the first manuscript per default.\n *\n */\n async populateNavTrees(tabIdx?: number, itemId?: string) {\n const tabStartIndex = tabIdx || 0; // where to start refreshing navtrees\n for ( const treeDef of this.navigationTreeDefs.sort(def => (def.idx ))) {\n if (treeDef.idx >= tabStartIndex) { // only create trees if needed\n this.queryService.getQueryfromFilename(treeDef.apiDef.query).subscribe(async query => {\n let queryToRun: string;\n // If there is a selectedItem we have to parametrize the query\n if (treeDef.idx > 0) { // so we have to parametrize the query\n if (itemId) {\n queryToRun = this.queryService.parametrizeQueryWithItem(query, itemId);\n this.populateNavTree(treeDef, queryToRun);\n } else {\n // wait for selected item of the previous tab and parametrize then the query\n this.navTrees[treeDef.idx - 1].selectedItemSet.subscribe(item => {\n if (item.tabId === treeDef.idx - 1) {\n queryToRun = this.queryService.parametrizeQueryWithItem(query, item.itemId);\n this.populateNavTree(treeDef, queryToRun); }\n });\n }\n } else {\n this.populateNavTree(treeDef, query); }\n });\n }\n }\n }\n\n\n populateNavTree(def: NavTreeDef, query) {\n const idx = this.navTrees.findIndex(item => item.id === def.id);\n let parentLabel;\n if (idx > 0) { parentLabel = this.navTrees[idx - 1].selectedItemLabel; }\n if (idx !== -1) {\n this.queryService.getData(def.apiDef.baseUrl, query, 'SELECT').subscribe(data => {\n this.navTrees[idx].setNavTreeData(_.get(data, def.apiDef.dataArray),\n this.activatedRoute.snapshot.queryParams, parentLabel); });\n }\n }\n}\n","import {Directive, EventEmitter} from '@angular/core';\nimport {Params} from '@angular/router';\nimport {ApiDef, NavigationEntity, TlnEntity} from '../models/models';\nimport * as _ from 'lodash';\n\n@Directive({\n selector: '[appNavtreeDirective]'\n})\n\nexport class NavTree {\n id: string;\n idx: number;\n label: string;\n entries: NavigationEntity[];\n qParam: string;\n description?: string;\n apiDef?: ApiDef;\n selectedItem?: string;\n selectedItemLabel?: string;\n parentLabel?: string;\n\n selectedItemSet: EventEmitter<SelectedItem>\n\n constructor(id: string,\n idx: number,\n label: string,\n entries: NavigationEntity[],\n qParam: string,\n description?: string,\n apiDef?: ApiDef,\n selectedItem?: string,\n selectedItemLabel?: string,\n parentLabel?: string) {\n this.id = id;\n this.idx = idx;\n this.label = label;\n this.qParam = qParam;\n this.entries = entries || [];\n this.description = description;\n this.apiDef = apiDef;\n this.selectedItem = selectedItem;\n this.selectedItemLabel = selectedItemLabel;\n this.selectedItemSet = new EventEmitter();\n this.parentLabel = parentLabel;\n }\n\n setNavTreeData(data: any, queryParams: Params, parentLabel?: string) {\n this.parentLabel = parentLabel;\n this.selectedItemLabel = _.get(data[0], this.apiDef.mapping.label);\n if (queryParams[this.qParam] && queryParams[this.qParam] !== '') {\n this.setSelected(queryParams[this.qParam]); } else {\n this.setSelected(_.get(data[0], this.apiDef.mapping.id));\n }\n\n this.entries = []; // resetting tree data of the given tab\n data.forEach((entry, index) => {\n // (id: string, iri: string, type: string, navIndex: number, label?: string)\n const entity = new TlnEntity(_.get(entry, this.apiDef.mapping.id),\n _.get(entry, this.apiDef.mapping.iri), _.get(entry, this.apiDef.mapping.type) ||\n null, index , _.get(entry, this.apiDef.mapping.label) || '', _.get(entry, this.apiDef.mapping.description || ''));\n const thumb = _.get(entry, this.apiDef.mapping.thumb);\n let svg;\n if (_.get(entry, this.apiDef.mapping.svg)) {\n svg = 'http://existdb-test.dasch.swiss/exist/rest/db/storage/nietzsche/' + _.get(entry, this.apiDef.mapping.svg);\n }\n const avatar = _.get(entry, this.apiDef.mapping.avatar);\n const navEntity = new NavigationEntity(index, entity, thumb, '', svg, avatar);\n this.entries.push(navEntity);\n });\n }\n\n setSelected(itemId: string) {\n this.selectedItem = itemId;\n this.selectedItemSet.emit({tabId: this.idx, itemId});\n }\n}\n\nexport interface SelectedItem {\n tabId: number;\n itemId: string;\n}\n","export default \"mat-card {\\n height: 85vh;\\n overflow: hidden;\\n}\\n\\n.drawer {\\n padding: 10px;\\n width: 25%;\\n}\\n\\n.in-drawer-content-area {\\n min-height: 300px;\\n height: 70vh;\\n min-width: 95%;\\n display: table;\\n}\\n\\n.in-drawer-toggle-button-container {\\n height: 100%;\\n vertical-align: top;\\n min-width: 10%;\\n width: 10%;\\n display: table-cell;\\n}\\n\\n.in-drawer-content-container {\\n height: 100%;\\n align-content: left;\\n width: 90%;\\n display: table-cell;\\n padding: 10px;\\n}\\n\\n.main-content-container {\\n min-height: 300px;\\n width: 100%;\\n height: 100%;\\n margin: 0;\\n padding: 0;\\n}\\n\\n.outer-content-area {\\n min-height: 300px;\\n height: 100%;\\n display: table;\\n}\\n\\n.content-container {\\n height: 100%;\\n vertical-align: top;\\n align-content: left;\\n width: 80%;\\n display: table-cell;\\n padding: 10px;\\n}\\n\\n.page-turn-button-container {\\n height: 100%;\\n vertical-align: middle;\\n min-width: unset;\\n width: 20px;\\n display: table-cell;\\n}\\n\\n.page-turn-button {\\n height: 100px;\\n min-width: unset;\\n width: 15px;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n margin: 0;\\n padding: 0;\\n}\\n\\n.toggle-button-container {\\n height: 100%;\\n display: table-cell;\\n vertical-align: top;\\n align-content: right;\\n align-items: right;\\n min-width: 5%;\\n width: 100%;\\n padding: 1em;\\n}\\n\\n.toggle-button {\\n height: 100px;\\n min-width: unset;\\n width: 15px;\\n display: flex;\\n justify-content: center;\\n margin: 0;\\n padding: 0;\\n}\\n\\n.right-outer-element {\\n margin-right: 3em;\\n}\\n\\n.right-inner-element {\\n margin-left: 1em;\\n}\\n\\n.mat-button-toggle-group.mat-button-toggle-group {\\n display: flex;\\n align-items: right;\\n}\\n\\n.images-container {\\n display: table;\\n}\\n\\n.image-sell-container {\\n display: table-cell;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL3BhZ2Utdmlldy13cmFwcGVyLWNvbXBvbmVudC9wYWdlLXZpZXctd3JhcHBlci5jb21wb25lbnQuc2NzcyIsImFwcC9wYWdlLXZpZXctd3JhcHBlci1jb21wb25lbnQvcGFnZS12aWV3LXdyYXBwZXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7RUFDRSxZQUFBO0VBQ0EsZ0JBQUE7QUNERjs7QURLQTtFQUNFLGFBQUE7RUFDQSxVQUFBO0FDRkY7O0FETUE7RUFDRSxpQkFBQTtFQUNBLFlBQUE7RUFDQSxjQUFBO0VBQ0EsY0FBQTtBQ0hGOztBRE1BO0VBQ0UsWUFBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTtFQUNBLFVBQUE7RUFDQSxtQkFBQTtBQ0hGOztBRE1BO0VBQ0UsWUFBQTtFQUVBLG1CQUFBO0VBQ0EsVUFBQTtFQUNBLG1CQUFBO0VBQ0EsYUFBQTtBQ0pGOztBRFFBO0VBQ0UsaUJBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0FDTEY7O0FEU0E7RUFDRSxpQkFBQTtFQUNBLFlBQUE7RUFDQSxjQUFBO0FDTkY7O0FEU0E7RUFDRSxZQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLFVBQUE7RUFDQSxtQkFBQTtFQUNBLGFBQUE7QUNORjs7QURTQTtFQUNFLFlBQUE7RUFDQSxzQkFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0FDTkY7O0FEU0E7RUFDRSxhQUFBO0VBQ0EsZ0JBQUE7RUFDQSxXQUFBO0VBQ0EsYUFBQTtFQUNBLHVCQUFBO0VBQ0EsbUJBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtBQ05GOztBRFVBO0VBQ0UsWUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFQUNBLGtCQUFBO0VBQ0EsYUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0FDUEY7O0FEVUE7RUFDRSxhQUFBO0VBQ0EsZ0JBQUE7RUFDQSxXQUFBO0VBQ0EsYUFBQTtFQUNBLHVCQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7QUNQRjs7QURXQTtFQUNFLGlCQUFBO0FDUkY7O0FEV0E7RUFDRSxnQkFBQTtBQ1JGOztBRFdBO0VBQ0UsYUFBQTtFQUNBLGtCQUFBO0FDUkY7O0FEV0E7RUFDRSxjQUFBO0FDUkY7O0FEV0E7RUFDRSxtQkFBQTtBQ1JGIiwiZmlsZSI6ImFwcC9wYWdlLXZpZXctd3JhcHBlci1jb21wb25lbnQvcGFnZS12aWV3LXdyYXBwZXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0aGUgb3ZlcmFsbCBtYXQtY2FyZFxuXG5tYXQtY2FyZCB7XG4gIGhlaWdodDogODV2aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8gdGhlIGRldGFpbHMgZHJhd2VyIG9uIHRoZSB2ZXJ5IHJpZ2h0XG4uZHJhd2VyIHtcbiAgcGFkZGluZzogMTBweDtcbiAgd2lkdGg6IDI1JTtcbn1cblxuLy8gVGhlIGNvbnRlbnQgYXJlYSBvZiB0aGUgZHJhd2VyIGFzIGEgdGFibGUgY29udGFpbmluZyBidXR0b24gJiBjb250ZW50XG4uaW4tZHJhd2VyLWNvbnRlbnQtYXJlYSB7XG4gIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICBoZWlnaHQ6IDcwdmg7XG4gIG1pbi13aWR0aDogOTUlO1xuICBkaXNwbGF5OnRhYmxlO1xufVxuXG4uaW4tZHJhd2VyLXRvZ2dsZS1idXR0b24tY29udGFpbmVyIHtcbiAgaGVpZ2h0OjEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIG1pbi13aWR0aDogMTAlO1xuICB3aWR0aDoxMCU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG5cbi5pbi1kcmF3ZXItY29udGVudC1jb250YWluZXIge1xuICBoZWlnaHQ6MTAwJTtcbiAgLy8gdmVydGljYWwtYWxpZ246IHRvcDtcbiAgYWxpZ24tY29udGVudDogbGVmdDtcbiAgd2lkdGg6OTAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBwYWRkaW5nOiAxMHB4O1xufVxuXG4vLyB0aGUgY29udGVudCBjb250YWluZXIgY29udGFpbmluZyB0aGUgY29udGVudCBhcmVhXG4ubWFpbi1jb250ZW50LWNvbnRhaW5lciB7XG4gIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8vIFRoZSBjb250ZW50IGFyZWEgYXMgYSB0YWJsZSBjb250YWluaW5nIHRoZSBtYWluIGNvbnRlbnQgYW5kIHRoZSBvdXRlciB0b2dnbGUgYnV0dG9uIGNvbnRhaW5lclxuLm91dGVyLWNvbnRlbnQtYXJlYSB7XG4gIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6dGFibGU7XG59XG5cbi5jb250ZW50LWNvbnRhaW5lciB7XG4gIGhlaWdodDoxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBhbGlnbi1jb250ZW50OiBsZWZ0O1xuICB3aWR0aDo4MCU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG4vLyBuYXYgYnV0dG9uc1xuLnBhZ2UtdHVybi1idXR0b24tY29udGFpbmVyIHtcbiAgaGVpZ2h0OjEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1pbi13aWR0aDogdW5zZXQ7IC8vIG5lZWRlZCBiZWNhdXNlIGFuZ3VsYXIgc2V0cyBhbiBvd24gbWluIHdpZHRoIT9cbiAgd2lkdGg6MjBweDtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbn1cblxuLnBhZ2UtdHVybi1idXR0b24geyAvLyBmaWxscyBzaWRlbmF2LWJ1dHRvbi1jb250YWluZXIgY29tcGxldGVseSwgc28gYWxsIGlzIG9uZSBidXR0b25cbiAgaGVpZ2h0OiAxMDBweDtcbiAgbWluLXdpZHRoOiB1bnNldDsgLy8gbmVlZGVkIGJlY2F1c2UgYW5ndWxhciBzZXRzIGFuIG93biBtaW4gd2lkdGghP1xuICB3aWR0aDogMTVweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLy8gdGhlIGNlbGwgd2hlcmUgdGhlIGJ1dHRvbiB3aWxsIGJlIGluIHRoZSBtYWluIGNvbnRlbnQgYXJlYVxuLnRvZ2dsZS1idXR0b24tY29udGFpbmVyIHtcbiAgaGVpZ2h0OjEwMCU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGFsaWduLWNvbnRlbnQ6IHJpZ2h0O1xuICBhbGlnbi1pdGVtczogcmlnaHQ7XG4gIG1pbi13aWR0aDogNSU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxZW07XG59XG5cbi50b2dnbGUtYnV0dG9uIHsgLy8gZmlsbHMgc2lkZW5hdi1idXR0b24tY29udGFpbmVyIGNvbXBsZXRlbHksIHNvIGFsbCBpcyBvbmUgYnV0dG9uXG4gIGhlaWdodDogMTAwcHg7XG4gIG1pbi13aWR0aDogdW5zZXQ7IC8vIG5lZWRlZCBiZWNhdXNlIGFuZ3VsYXIgc2V0cyBhbiBvd24gbWluIHdpZHRoIT9cbiAgd2lkdGg6IDE1cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8vIGZvciBvcHRpb25zXG4ucmlnaHQtb3V0ZXItZWxlbWVudCB7XG4gIG1hcmdpbi1yaWdodDogM2VtO1xufVxuXG4ucmlnaHQtaW5uZXItZWxlbWVudCB7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG59XG5cbi5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiByaWdodDtcbn1cblxuLmltYWdlcy1jb250YWluZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLmltYWdlLXNlbGwtY29udGFpbmVyIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbn1cbiIsIm1hdC1jYXJkIHtcbiAgaGVpZ2h0OiA4NXZoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZHJhd2VyIHtcbiAgcGFkZGluZzogMTBweDtcbiAgd2lkdGg6IDI1JTtcbn1cblxuLmluLWRyYXdlci1jb250ZW50LWFyZWEge1xuICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgaGVpZ2h0OiA3MHZoO1xuICBtaW4td2lkdGg6IDk1JTtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi5pbi1kcmF3ZXItdG9nZ2xlLWJ1dHRvbi1jb250YWluZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIG1pbi13aWR0aDogMTAlO1xuICB3aWR0aDogMTAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuXG4uaW4tZHJhd2VyLWNvbnRlbnQtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBhbGlnbi1jb250ZW50OiBsZWZ0O1xuICB3aWR0aDogOTAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBwYWRkaW5nOiAxMHB4O1xufVxuXG4ubWFpbi1jb250ZW50LWNvbnRhaW5lciB7XG4gIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5vdXRlci1jb250ZW50LWFyZWEge1xuICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLmNvbnRlbnQtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBhbGlnbi1jb250ZW50OiBsZWZ0O1xuICB3aWR0aDogODAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBwYWRkaW5nOiAxMHB4O1xufVxuXG4ucGFnZS10dXJuLWJ1dHRvbi1jb250YWluZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1pbi13aWR0aDogdW5zZXQ7XG4gIHdpZHRoOiAyMHB4O1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuXG4ucGFnZS10dXJuLWJ1dHRvbiB7XG4gIGhlaWdodDogMTAwcHg7XG4gIG1pbi13aWR0aDogdW5zZXQ7XG4gIHdpZHRoOiAxNXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4udG9nZ2xlLWJ1dHRvbi1jb250YWluZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGFsaWduLWNvbnRlbnQ6IHJpZ2h0O1xuICBhbGlnbi1pdGVtczogcmlnaHQ7XG4gIG1pbi13aWR0aDogNSU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxZW07XG59XG5cbi50b2dnbGUtYnV0dG9uIHtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgbWluLXdpZHRoOiB1bnNldDtcbiAgd2lkdGg6IDE1cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5yaWdodC1vdXRlci1lbGVtZW50IHtcbiAgbWFyZ2luLXJpZ2h0OiAzZW07XG59XG5cbi5yaWdodC1pbm5lci1lbGVtZW50IHtcbiAgbWFyZ2luLWxlZnQ6IDFlbTtcbn1cblxuLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IHJpZ2h0O1xufVxuXG4uaW1hZ2VzLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuXG4uaW1hZ2Utc2VsbC1jb250YWluZXIge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufSJdfQ== */\"","import {Component, OnInit} from '@angular/core';\nimport {ActivatedRoute, Params, Router} from '@angular/router';\nimport { TlnQueryParams} from '../models/models';\n\n@Component({\n selector: 'app-page-view-wrapper-component',\n templateUrl: './page-view-wrapper.component.html',\n styleUrls: ['./page-view-wrapper.component.scss']\n})\nexport class PageViewWrapperComponent implements OnInit {\n queryParams: TlnQueryParams;\n\n constructor(private router: Router,\n private activatedRoute: ActivatedRoute) { }\n\n ngOnInit() {\n\n this.activatedRoute.queryParams.subscribe( (queryParams: Params ) => {\n this.queryParams = new TlnQueryParams(\n queryParams.navBarOpenState,\n queryParams.NavContext,\n queryParams.manuscript,\n queryParams.page,\n queryParams.selectedLines,\n queryParams.selectedWords,\n queryParams.viewMode,\n queryParams.fullscreen,\n queryParams.zoom\n );\n });\n\n }\n}\n","import { Input, OnChanges } from '@angular/core';\nimport { Configuration } from './models';\n/**\n * This is a super class of components that can be configured by passing\n * a configuration to their inputs and running 'processConfiguration' in \n * 'ngOnChanges'.\n *\n * E.g. given a configuration '{\"ComponentName\": { \"ComponentProperty\": value }}' \n * if \"ComponentName\" is the name of the subclass component then\n * 'processConfiguration' will update its property with name\n * \"ComponentProperty\" to this value. If configuration uses wildcard \"*\" then\n * all components that have a property with name \"ComponentProperty\" will\n * update to this value.\n **/\nexport class ConfigurableComponent implements OnChanges {\n /**\n * the configuration\n **/\n @Input() configuration: Configuration;\n /**\n * index of configuration_listeners pointing to primary name of component\n **/\n private readonly primary_name_index: number = 1;\n /**\n * list of configuration keys \n **/\n protected configuration_listeners: string[] = [ '*', this.constructor.name ];\n\n /**\n * Process configuration by updating properties to given values if the keys\n * in configuration_listeners are part of the configuration.\n **/\n protected processConfiguration(){\n this.configuration_listeners.forEach(key =>{\n if (key in this.configuration){\n Object.getOwnPropertyNames(this.configuration[key]).forEach(conf_key =>{\n if (conf_key in this){\n this[conf_key] = this.configuration[key][conf_key]\n }\n });\n }\n });\n }\n /**\n * Add a further configuration key\n **/\n public addConfigurationName(configuration_listener: string){\n if (this.configuration_listeners.indexOf(configuration_listener) == -1){\n this.configuration_listeners.push(configuration_listener);\n }\n }\n /**\n * Get the primary name of the component.\n **/\n public getConfigurationName(): string {\n return this.configuration_listeners[this.primary_name_index];\n }\n /**\n * update configuration\n **/\n ngOnChanges (){\n if (this.configuration != null){\n this.processConfiguration();\n }\n }\n public static updateConfiguration(oldConfiguration: Configuration, newConfiguration: Configuration): Configuration {\n if (oldConfiguration != null){\n Object.getOwnPropertyNames(newConfiguration).forEach(key =>{\n if (key in oldConfiguration && typeof oldConfiguration[key] == 'object' && typeof newConfiguration[key] == 'object') {\n oldConfiguration[key] = this.updateConfiguration(oldConfiguration[key], newConfiguration[key]);\n } else {\n oldConfiguration[key] = newConfiguration[key]\n }\n }); return oldConfiguration;\n } else {\n return newConfiguration;\n }\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhcHAvcGFnZS12aWV3L2NvcHlyaWdodC9jb3B5cmlnaHQtc2hlZXQvY29weXJpZ2h0LXNoZWV0LmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_BOTTOM_SHEET_DATA} from '@angular/material/bottom-sheet';\nimport { Copyright } from '../../models';\n\n@Component({\n selector: 'copyright-sheet',\n templateUrl: './copyright-sheet.component.html',\n styleUrls: ['./copyright-sheet.component.css']\n})\nexport class CopyrightSheetComponent implements OnInit {\n\n constructor(@Inject(MAT_BOTTOM_SHEET_DATA) private copyright: Copyright) { }\n\n ngOnInit() {\n }\n\n}\n","export default \"#circle {\\n fill: none;\\n}\\n#cc {\\n fill: grey;\\n opacity: 0.2;\\n cursor: pointer;\\n}\\n\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9wYWdlLXZpZXcvY29weXJpZ2h0L2NvcHlyaWdodC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0dBQ0csVUFBVTtBQUNiO0FBQ0E7R0FDRyxVQUFVO0dBQ1YsWUFBWTtHQUNaLGVBQWU7QUFDbEIiLCJmaWxlIjoiYXBwL3BhZ2Utdmlldy9jb3B5cmlnaHQvY29weXJpZ2h0LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjY2lyY2xlIHtcbiAgIGZpbGw6IG5vbmU7XG59XG4jY2Mge1xuICAgZmlsbDogZ3JleTtcbiAgIG9wYWNpdHk6IDAuMjtcbiAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuIl19 */\"","import { Component, OnInit, Input, ElementRef } from '@angular/core';\nimport {MatBottomSheet, MatBottomSheetRef} from '@angular/material/bottom-sheet';\nimport { PageViewService } from '../page-view.service';\nimport { CopyrightSheetComponent } from './copyright-sheet/copyright-sheet.component';\nimport { Copyright, Point } from '../models';\n\n\n@Component({\n selector: 'copyright',\n templateUrl: './copyright.component.html',\n styleUrls: ['./copyright.component.css']\n})\nexport class CopyrightComponent implements OnInit {\n @Input() dimension: number;\n highlight: boolean = false;\n @Input() copyright: Copyright;\n\n constructor(private bottomSheet: MatBottomSheet, private pageViewService: PageViewService) { }\n\n ngOnInit() {\n }\n private setHighlight(highlight: boolean){\n this.highlight = highlight;\n }\n private showCopyrightInformation(e: MouseEvent){\n /*let point: Point = { visible: true, clientX: e.clientX, clientY: e.clientY, layerX: e.layerX, layerY: e.layerY }\n this.pageViewService.copyrightService(this.copyright, point);*/\n this.bottomSheet.open(CopyrightSheetComponent, {\n data: this.copyright \n });\n\n }\n}\n","export enum HIGHTLIGHT_CASES {\n DEFAULT = 'default',\n LINE_HOVERED = 'hovered line',\n SEARCHED_WORD = 'text of word == findText',\n SELECTED_LINE = 'selected line',\n SELECTED_WORD = 'selected word',\n WORD_HOVERED = 'hovered word' \n}\n\n","import { Directive, HostListener, Input, ElementRef, OnInit} from '@angular/core';\nimport { PageViewService } from './page-view.service';\nimport { Interactable, Word, Line } from './models';\n\nexport interface XYOffset {\n x: number;\n y: number;\n}\n/**\n * This directive informs the {@link /injectables/PageViewService.html|PageViewService} about\n * mouse events on interactable objects and scrolls interactable objects in view if they are \n * invisible.\n **/\n@Directive({\n selector: '[interactedObject]'\n})\nexport class InteractedDirective implements OnInit {\n /**\n * the object of this rect\n **/\n @Input('interactedObject') interactedObject: Interactable;\n /**\n * the identification string of this Interactable's textfield (e.g. 'first textfield' or 'second textfield')\n **/\n @Input() identity: string = 'first textfield';\n /**\n * the scrollable HTML-container of this Interactable's textfield.\n **/\n @Input() container: HTMLElement;\n /**\n * The time (in milliseconds) the timer should wait before\n * the element is scrolled in view.\n **/\n delay: number = 500;\n /**\n * The ID of the timeout set by {@link /directives/InteractedDirective.html#timeoutScroll|timeoutScroll}.\n **/\n timeoutID: number = -1;\n /**\n * Whether or not the element should scroll into view when the timer expires.\n **/\n doScroll: boolean = false;\n xyOffset: XYOffset = { x: 0, y: 0 };\n\n constructor(private pageViewService: PageViewService, private el: ElementRef) {}\n\n /**\n * Subscribe to on/offHovered and onClicked methods of the {@link /injectables/PageViewService.html|PageViewService}\n * and scroll hovered object in view if it is invisible.\n **/\n ngOnInit(){\n if (this.container != null && this.container != undefined){\n let containerRect: DOMRect = <DOMRect>this.container.getBoundingClientRect();\n this.xyOffset = { x: containerRect.left, y: containerRect.top };\n }\n this.interactedObject.textfield_identity = this.identity;\n this.pageViewService.onClickedWord.subscribe(\n (clickedWord: Word) => { this.scrollIntoViewIfNeeded(clickedWord, 'Word', 0)\n });\n this.pageViewService.onHoveredWord.subscribe(\n (hoveredWord: Word) => { this.scrollIntoViewIfNeeded(hoveredWord, 'Word')\n });\n this.pageViewService.offHoveredWord.subscribe(\n (hoveredWord: Word) => { \n this.clearTimeout()\n });\n this.pageViewService.offHoveredLine.subscribe(\n (hoveredLine: Line) => { this.clearTimeout()\n });\n this.pageViewService.onHoveredLine.subscribe(\n (hoveredLine: Line) => { this.scrollIntoViewIfNeeded(hoveredLine, 'Line')\n });\n this.pageViewService.onClickedLine.subscribe(\n (clickedLine: Line) => { this.scrollIntoViewIfNeeded(clickedLine, 'Line', 0)\n });\n }\n /**\n * Clear timeout and prevent element from scrolling into view.\n **/\n private clearTimeout(){\n if(this.timeoutID != -1){\n this.doScroll = false;\n clearTimeout(this.timeoutID);\n this.timeoutID = -1;\n }\n }\n /**\n * Scroll interactable object in view if it is invisible.\n * @param hoveredItem interactable object that is hovered \n * @param hoveredType string representation of object's type (i.e. 'Word' | 'Line')\n **/\n private scrollIntoViewIfNeeded(hoveredItem: Interactable, hoveredType: String, delay: number= this.delay){\n if (hoveredType == 'Word' && this.interactedObject.datatype == 'Word' && this.identity != hoveredItem.textfield_identity){\n let hoveredWord = <Word>hoveredItem\n let currentWord = <Word>this.interactedObject\n if (currentWord.id == hoveredWord.id && currentWord.is_top_object && this.isElementInvisible()){\n this.timeoutScroll(delay);\n }\n } else if (hoveredType =='Line' && this.interactedObject.datatype == 'Line'){\n let hoveredLine = <Line>hoveredItem\n let currentLine = <Line>this.interactedObject\n if (currentLine !== hoveredLine && currentLine.id == hoveredLine.id && this.isElementInvisible()){\n this.timeoutScroll(delay)\n }\n }\n }\n /**\n * Scroll element in view if timeout has not been canceled during its countdown.\n **/\n private timeoutScroll(delay: number) {\n let behavior = (delay == 0) ? \"instant\" : \"smooth\";\n this.doScroll = true;\n this.timeoutID = window.setTimeout(()=>{\n if (this.doScroll){\n this.el.nativeElement.scrollIntoView({ 'behavior': behavior}); \n }\n }, delay);\n }\n /**\n * Return whether interactable object is invisible, i.e. whether it is outside of\n * its scrollable container's viewport.\n **/\n private isElementInvisible(): boolean {\n if (this.container == null || this.container == undefined || this.container.getAttribute('class') == 'inline'){\n return false;\n }\n let myRect: DOMRect = <DOMRect>this.el.nativeElement.getBoundingClientRect(); \n let containerRect: DOMRect = <DOMRect>this.container.getBoundingClientRect();\n return myRect.top < containerRect.top \n || myRect.bottom > containerRect.bottom\n || myRect.left < containerRect.left\n || myRect.right > containerRect.right;\n }\n /**\n * informs the {@link /injectables/PageViewService.html|PageViewService} about\n * click events on {@link #interactedObject|interactedObject}.\n **/\n @HostListener('click', ['$event']) onMouseClick( e: MouseEvent) {\n this.pageViewService.onClickService(this.interactedObject, { visible: true, layerX: e.layerX, layerY: e.layerY, clientX: e.clientX, clientY: e.clientY });\n }\n /**\n * informs the {@link /injectables/PageViewService.html|PageViewService} about\n * mouse enter events on {@link #interactedObject|interactedObject}.\n **/\n @HostListener('mouseenter', ['$event']) onMouseEnter( e: MouseEvent) {\n this.pageViewService.onHoverService(this.interactedObject, { visible: true, layerX: e.layerX, layerY: e.layerY, clientX: e.clientX, clientY: e.clientY });\n }\n /**\n * informs the {@link /injectables/PageViewService.html|PageViewService} about\n * mouse leave events on {@link #interactedObject|interactedObject}.\n **/\n @HostListener('mouseleave') onMouseLeave() {\n this.pageViewService.offHoverService(this.interactedObject);\n }\n}\n","export default \".unhighlighted {\\n fill: white;\\n opacity: 0.0;\\n}\\n.highlighted {\\n fill: lightgrey;\\n opacity: 0.3;\\n}\\n.mouse-pointer {\\n cursor: pointer;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9wYWdlLXZpZXcvbWFyZ2luLWZpZWxkL2xpbmUtcmVmZXJlbmNlL2xpbmUtcmVmZXJlbmNlLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxXQUFXO0dBQ1gsWUFBWTtBQUNmO0FBQ0E7R0FDRyxlQUFlO0dBQ2YsWUFBWTtBQUNmO0FBQ0E7R0FDRyxlQUFlO0FBQ2xCIiwiZmlsZSI6ImFwcC9wYWdlLXZpZXcvbWFyZ2luLWZpZWxkL2xpbmUtcmVmZXJlbmNlL2xpbmUtcmVmZXJlbmNlLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudW5oaWdobGlnaHRlZCB7XG4gICBmaWxsOiB3aGl0ZTtcbiAgIG9wYWNpdHk6IDAuMDtcbn1cbi5oaWdobGlnaHRlZCB7XG4gICBmaWxsOiBsaWdodGdyZXk7XG4gICBvcGFjaXR5OiAwLjM7XG59XG4ubW91c2UtcG9pbnRlciB7XG4gICBjdXJzb3I6IHBvaW50ZXI7XG59XG4iXX0= */\"","import { Component, OnInit, Input } from '@angular/core';\nimport { Line, Continuation, Point, Reference } from '../../models';\nimport { PageViewService } from '../../page-view.service';\n\n@Component({\n selector: 'line-reference',\n templateUrl: './line-reference.component.html',\n styleUrls: ['./line-reference.component.css']\n})\nexport class LineReferenceComponent implements OnInit {\n @Input() line: Line;\n @Input('showReference') referenceName: string;\n highlighted: boolean = false;\n continuation: Continuation;\n reference: Reference;\n\n constructor(private pageViewService: PageViewService) { }\n\n ngOnInit() { \n if (this.line != null && this.referenceName != '' && ((this.referenceName == 'to' && this.line.continuesTo != null)\n || (this.referenceName == 'from' && this.line.continuesFrom != null))){\n this.reference = (this.referenceName == 'to') ? this.line.continuesTo : this.line.continuesFrom;\n this.continuation = { source: this.line.source, reference: this.reference, datatype: 'Continuation', show: this.referenceName }\n }\n }\n\n private showReference(show: boolean, e: MouseEvent){\n this.highlighted = show;\n let point: Point = { visible: show, clientX: e.clientX-10, clientY: e.clientY-80, layerX: e.layerX, layerY: e.layerY }\n if (show){\n this.pageViewService.onHoverService(this.continuation, point);\n this.pageViewService.onHoverService(this.line)\n } else {\n this.pageViewService.offHoverService(this.continuation);\n this.pageViewService.offHoverService(this.line)\n }\n }\n private changeLocation(){\n this.pageViewService.referenceService(this.reference);\n }\n}\n","export default \".marginfield {\\n background-color: white;\\n cursor: default;\\n}\\n\\n.marginfield .text {\\n font-size: 8px;\\n}\\n\\n.marginfield .unhighlighted {\\n fill: white;\\n opacity: 0.0;\\n}\\n\\n.marginfield .highlight {\\n fill: yellow;\\n opacity: 0.3;\\n}\\n\\n.marginfield .border {\\n stroke: #e2fa00;\\n stroke-width:5;\\n opacity: 0.3;\\n}\\n\\n.marginfield .howered_line {\\n fill: #fa301c;\\n opacity: 0.3;\\n}\\n\\n.marginfield .same_word {\\n fill: #c9fac5;\\n opacity: 0.3;\\n}\\n\\n.text_fadeout {\\n fill: #a4a4a4;\\n}\\n\\n.hover {\\n transform: scale(1.5);\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9wYWdlLXZpZXcvbWFyZ2luLWZpZWxkL21hcmdpbi1maWVsZC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsdUJBQXVCO0VBQ3ZCLGVBQWU7QUFDakI7O0FBRUE7R0FDRyxjQUFjO0FBQ2pCOztBQUVBO0dBQ0csV0FBVztHQUNYLFlBQVk7QUFDZjs7QUFDQTtHQUNHLFlBQVk7R0FDWixZQUFZO0FBQ2Y7O0FBQ0E7RUFDRSxlQUFlO0VBQ2YsY0FBYztFQUNkLFlBQVk7QUFDZDs7QUFDQTtFQUNFLGFBQWE7RUFDYixZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsWUFBWTtBQUNkOztBQUVBO0VBQ0UsYUFBYTtBQUNmOztBQUVBO0VBQ0UscUJBQXFCO0FBQ3ZCIiwiZmlsZSI6ImFwcC9wYWdlLXZpZXcvbWFyZ2luLWZpZWxkL21hcmdpbi1maWVsZC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1hcmdpbmZpZWxkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLm1hcmdpbmZpZWxkIC50ZXh0IHtcbiAgIGZvbnQtc2l6ZTogOHB4O1xufVxuXG4ubWFyZ2luZmllbGQgLnVuaGlnaGxpZ2h0ZWQge1xuICAgZmlsbDogd2hpdGU7XG4gICBvcGFjaXR5OiAwLjA7XG59XG4ubWFyZ2luZmllbGQgLmhpZ2hsaWdodCB7XG4gICBmaWxsOiB5ZWxsb3c7XG4gICBvcGFjaXR5OiAwLjM7XG59XG4ubWFyZ2luZmllbGQgLmJvcmRlciB7XG4gIHN0cm9rZTogI2UyZmEwMDtcbiAgc3Ryb2tlLXdpZHRoOjU7XG4gIG9wYWNpdHk6IDAuMztcbn1cbi5tYXJnaW5maWVsZCAuaG93ZXJlZF9saW5lIHtcbiAgZmlsbDogI2ZhMzAxYztcbiAgb3BhY2l0eTogMC4zO1xufVxuXG4ubWFyZ2luZmllbGQgLnNhbWVfd29yZCB7XG4gIGZpbGw6ICNjOWZhYzU7XG4gIG9wYWNpdHk6IDAuMztcbn1cblxuLnRleHRfZmFkZW91dCB7XG4gIGZpbGw6ICNhNGE0YTQ7XG59XG5cbi5ob3ZlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbn1cbiJdfQ== */\"","import { Component, Input, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { externalAssignStyle, Continuation, Identifier, Line, LineStub, TextField, Word} from '../models';\nimport { PageViewService } from '../page-view.service';\nimport { HIGHTLIGHT_CASES } from '../highlight_status';\n/**\n * This component displays an Array of lines.\n **/\n@Component({\n selector: 'margin-field',\n templateUrl: './margin-field.component.html',\n styleUrls: ['./margin-field.component.css']\n})\nexport class MarginFieldComponent implements OnInit, OnChanges {\n /**\n * scrollable HTML-container of this textfield\n **/\n @Input() container: HTMLElement;\n /**\n * the hovered status for a line\n **/\n HOVERED_STATUS: string = HIGHTLIGHT_CASES.LINE_HOVERED\n SELECTED_STATUS: string = HIGHTLIGHT_CASES.SELECTED_LINE\n /**\n * the currently hovered line\n * */\n hoveredLine?: Line;\n /**\n * the currently hovered reference line\n * */\n hoveredReferenceLine?: LineStub;\n /**\n * the currently hovered word\n * */\n hoveredWord?: Word;\n /**\n * an Array of lines that will be displayed.\n **/\n @Input() lines: Line[];\n /**\n * the height of a line rect.\n **/\n line_height: number = 8;\n /**\n * the length of the line rect.\n **/\n line_length: number = 10;\n /**\n * x coordinate of the line rect.\n **/\n line_x: number = 5;\n /**\n * the height of the margin field.\n **/\n margin_height: number = 973.91998;\n /**\n * geometrical top position of the margin field.\n **/\n margin_top: number = 0;\n /**\n * the width of the margin field.\n **/\n margin_width: number = 30;\n /**\n * specifies reference type that should be displayed\n **/\n @Input() showReference: string = \"to\"\n /**\n * The area of the image that will be displayed by {@link /components/TextFieldComponent.html|TextFieldComponent}.\n * The height of the text_field determines {@link #margin_height|margin_height}, while its top position\n * determines {@link #margin_top|margin_top}.\n **/\n @Input() text_field: TextField;\n /**\n * The viewbox of this svg component.\n **/\n viewBox: string = '';\n /**\n * initial maximum height of margin field.\n **/\n @Input() max_height: number = -1;\n /**\n * initial maximum width of margin field.\n **/\n @Input() max_width: number = -1;\n /**\n * identifiers of selected lines that should be highlighted.\n **/\n @Input() selectedLines: Identifier[] = [];\n /**\n * global zoom factor\n **/\n @Input() zoomFactor: number = 1;\n /**\n * An optional function that can be passed to this component in order to return a (svg-)style object \n * to the line rects. This function allows the user to extend the style of this component.\n * E.g. by returning { fill: blue } the function overwrites the default behaviour and sets\n * the default highlight color to blue.\n **/\n @Input('assignStyle') extAssignStyle?: externalAssignStyle;\n /**\n * local zoom factor\n **/\n local_zoom: number = 1;\n\n /**\n * @param lineservice an information source about (un-)hovered and clicked Lines/Words.\n **/\n constructor( private lineservice: PageViewService) { }\n\n /**\n * Initialize geometrical information and subscribe to {@link /injectables/PageViewService.html|PageViewService}.\n **/\n ngOnInit() {\n if (this.max_height == -1 && this.max_width == -1){\n this.max_height = screen.availHeight;\n }\n this.viewBox = 0 + ' ' + this.margin_top + ' ' + this.margin_width + ' ' + this.margin_height;\n if (this.text_field != null) {\n this.updateViewBox()\n } \n this.lineservice.onHoveredLine.subscribe(\n (changedLine: Line) => { this.hoveredLine = changedLine;}\n );\n this.lineservice.onHoveredContinuation.subscribe(\n (changedContinuation: Continuation) => { this.hoveredReferenceLine = changedContinuation.reference.line;}\n );\n this.lineservice.offHoveredContinuation.subscribe(\n (changedContinuation: Continuation) => { this.hoveredReferenceLine = null}\n );\n this.lineservice.offHoveredLine.subscribe(\n (changedLine: Line) => { this.hoveredLine = null; }\n );\n this.lineservice.onHoveredWord.subscribe(\n (changedWord: Word) => { this.hoveredWord = changedWord;}\n );\n this.lineservice.offHoveredWord.subscribe(\n (changedWord: Word) => { this.hoveredWord = null; }\n );\n }\n /**\n * Update viewBox if there is a change.\n **/\n ngOnChanges(changes: SimpleChanges) {\n if (this.text_field != null) {\n this.updateViewBox()\n } \n }\n /**\n * Update viewBox: set \n * {@link #margin_height|margin_height}, \n * {@link #margin_top|margin_top},\n * {@link #viewBox|viewBox}\n * and {@link #local_zoom|local_zoom} according to \n * {@link #text_field|text_field}.\n **/\n private updateViewBox(){\n this.lines.forEach(line =>line.datatype = \"Line\");\n if (this.showReference == 'to'){\n this.margin_width = (this.lines.some(line =>line.continuesTo != null || line.continuesTo != undefined)) ? this.line_length*2+30 : 30;\n } else {\n let hasReference = this.lines.some(line =>line.continuesFrom != null || line.continuesFrom != undefined)\n this.margin_width = (this.showReference == 'from' && hasReference) ? this.line_length*2+30 : 30;\n this.line_x = (this.showReference == 'from' && hasReference) ? 2*this.line_length : 5;\n }\n this.margin_height = this.text_field.height;\n this.margin_top = this.text_field.top;\n this.viewBox = 0 + ' ' + this.margin_top + ' ' + this.margin_width + ' ' + this.margin_height;\n this.local_zoom = (this.max_height != -1 && this.max_width == -1) \n ? this.max_height/this.text_field.height : this.max_width/this.text_field.width;\n if (this.max_width == -1 && this.text_field.height < this.text_field.width){\n this.local_zoom = (window.innerWidth/2-100)/this.text_field.width;\n }\n\n }\n /**\n * Get the hover status of a line, i.e. whether it is hovered \n * ({@link /miscellaneous/enumerations.html#HIGHTLIGHT_CASES|HIGHTLIGHT_CASES.LINE_HOVERED})\n * or not ({@link /miscellaneous/enumerations.html#HIGHTLIGHT_CASES|HIGHTLIGHT_CASES.DEFAULT}).\n **/\n private getHoverStatus(line: Line): string {\n if ( (this.hoveredLine != undefined && this.hoveredLine != null && line.id == this.hoveredLine.id) \n || (this.hoveredReferenceLine != undefined && this.hoveredReferenceLine != null && line.id == this.hoveredReferenceLine.id)\n || (this.hoveredWord != undefined && this.hoveredWord != null && line.id == this.hoveredWord.line)) {\n return HIGHTLIGHT_CASES.LINE_HOVERED; \n } else if (this.selectedLines.length > 0 && this.selectedLines.indexOf(line.id) > -1) {\n return HIGHTLIGHT_CASES.SELECTED_LINE\n } else {\n return HIGHTLIGHT_CASES.DEFAULT; \n }\n }\n /**\n * Assign a style to the rects of a line.\n **/\n private assignStyle(line: Line, hoveredWord: Word, hoveredLine: Line, hoverStatus: string): Object {\n return (this.extAssignStyle != null) ? this.extAssignStyle(line, hoveredWord, hoveredLine, hoverStatus) : {};\n }\n\n}\n","export default \"#page {\\n width: 100%;\\n margin: 0;\\n padding: 0;\\n white-space: nowrap;\\n}\\n.inline {\\n display: inline-block;\\n}\\n.breakline {\\n display: block;\\n height: 50%;\\n overflow: scroll;\\n}\\n.gap {\\n display: inline-block;\\n width: 1px;\\n height: 100%;\\n margin: 0;\\n}\\n#margin {\\n display: inline-block;\\n height: 100%;\\n margin: 0;\\n}\\n#textfield {\\n display: inline-block;\\n /*width: 95%;*/\\n height: 100%;\\n margin: 0;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9wYWdlLXZpZXcvcGFnZS12aWV3LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxXQUFXO0dBQ1gsU0FBUztHQUNULFVBQVU7R0FDVixtQkFBbUI7QUFDdEI7QUFDQTtHQUNHLHFCQUFxQjtBQUN4QjtBQUNBO0dBQ0csY0FBYztHQUNkLFdBQVc7R0FDWCxnQkFBZ0I7QUFDbkI7QUFDQTtHQUNHLHFCQUFxQjtHQUNyQixVQUFVO0dBQ1YsWUFBWTtHQUNaLFNBQVM7QUFDWjtBQUNBO0dBQ0cscUJBQXFCO0dBQ3JCLFlBQVk7R0FDWixTQUFTO0FBQ1o7QUFDQTtHQUNHLHFCQUFxQjtHQUNyQixjQUFjO0dBQ2QsWUFBWTtHQUNaLFNBQVM7QUFDWiIsImZpbGUiOiJhcHAvcGFnZS12aWV3L3BhZ2Utdmlldy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI3BhZ2Uge1xuICAgd2lkdGg6IDEwMCU7XG4gICBtYXJnaW46IDA7XG4gICBwYWRkaW5nOiAwO1xuICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5pbmxpbmUge1xuICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLmJyZWFrbGluZSB7XG4gICBkaXNwbGF5OiBibG9jaztcbiAgIGhlaWdodDogNTAlO1xuICAgb3ZlcmZsb3c6IHNjcm9sbDtcbn1cbi5nYXAge1xuICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgd2lkdGg6IDFweDtcbiAgIGhlaWdodDogMTAwJTtcbiAgIG1hcmdpbjogMDtcbn1cbiNtYXJnaW4ge1xuICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgaGVpZ2h0OiAxMDAlO1xuICAgbWFyZ2luOiAwO1xufVxuI3RleHRmaWVsZCB7XG4gICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAvKndpZHRoOiA5NSU7Ki9cbiAgIGhlaWdodDogMTAwJTtcbiAgIG1hcmdpbjogMDtcbn1cbiJdfQ== */\"","import { Component, Input, OnInit, OnChanges} from '@angular/core';\nimport { externalAssignClass, externalAssignStyle, Configuration, Identifier, Image, Line, TextField, TextByForeignHand, Word} from './models';\n/**\n * This component displays one or two {@link /components/TextFieldComponent.html|TextFieldComponent(s)} \n * and its or their {@link /components/MarginFieldComponent.html|MarginFieldComponent(s)}.\n **/\n@Component({\n selector: 'page-view',\n templateUrl: './page-view.component.html',\n styleUrls: ['./page-view.component.css']\n})\nexport class PageViewComponent implements OnInit, OnChanges {\n @Input() configuration: Configuration;\n /**\n * the search text of words that should be highlighted as {@link /miscellaneous/enumerations.html#HIGHTLIGHT_CASES|HIGHTLIGHT_CASES.SEARCHED_WORD}.\n **/\n @Input() findText: string;\n /**\n * first texts written by foreign hand \n **/\n @Input() first_foreign_texts: TextByForeignHand[] = [];\n /**\n * the first image that will be displayed by {@link /components/TextFieldComponent.html|TextFieldComponent}.\n **/\n @Input() first_image: Image;\n /**\n * the Array of lines of the first image that will be displayed by {@link /components/MarginFieldComponent.html|MarginFieldComponent}.\n **/\n @Input() first_lines: Line[];\n /**\n * Identification of first textfield.\n **/\n first_textfield_id: string = 'first textfield'\n /**\n * the Array of words of the first image that will be displayed by {@link /components/TextFieldComponent.html|TextFieldComponent}.\n **/\n @Input() first_words: Word[];\n /**\n * the (initial) maximum height of the image(s).\n **/\n @Input() max_height: number = -1;\n /**\n * the (initial) maximum width of the image(s).\n **/\n @Input() max_width: number = -1;\n /**\n * should primary Url be used for image. Use secondary Url if false.\n **/\n @Input() preferPrimaryUrl: boolean = true;\n /**\n * second texts written by foreign hand \n **/\n @Input() second_foreign_texts: TextByForeignHand[] = [];\n /**\n * the second image that will be displayed by {@link /components/TextFieldComponent.html|TextFieldComponent}.\n **/\n @Input() second_image: Image;\n /**\n * the Array of lines of the second image that will be displayed by {@link /components/MarginFieldComponent.html|MarginFieldComponent}.\n **/\n @Input() second_lines: Line[];\n /**\n * Identification of second textfield.\n **/\n second_textfield_id: string = 'second textfield'\n /**\n * the Array of words of the second image that will be displayed by {@link /components/TextFieldComponent.html|TextFieldComponent}.\n **/\n @Input() second_words: Word[];\n /**\n * An optional function that will be passed to {@link /components/TextFieldComponent.html|TextFieldComponent} \n * in order to return a further highlight class\n * to the word rects when the internal function would return 'textfield unhighlighted'. \n **/\n @Input('assignClass') assignClass?: externalAssignClass;\n /**\n * An optional function that will be passed to {@link /components/TextFieldComponent.html|TextFieldComponent}\n * and {@link /components/MarginFieldComponent.html|MarginFieldComponent}\n * in order to return a (svg-)style object \n * to the word and line rects. This function allows the user to extend the style of this component.\n * E.g. by returning { fill: blue } the function overwrites the default behaviour and sets\n * the default highlight color to blue.\n **/\n @Input('assignStyle') assignStyle?: externalAssignStyle;\n /**\n * global zoom factor.\n **/\n @Input() zoomFactor: number = 1;\n /**\n * identifiers of selected words that should be highlighted.\n **/\n @Input() selectedWords: Identifier[] = [];\n /**\n * identifiers of selected lines that should be highlighted.\n **/\n @Input() selectedLines: Identifier[] = [];\n @Input('startLine') startLineId: Identifier;\n @Input('endLine') endLineId: Identifier;\n @Input() dontShowReference: boolean;\n showReferenceLeft: string = 'from';\n showReferenceRight: string = 'to';\n\n constructor() {}\n \n /**\n * sets {@link /components/PageViewComponent.html#max_height|max_height} if it is unset.\n **/\n ngOnInit() {\n if (this.max_height == -1 && this.max_width == -1){\n this.max_height = screen.availHeight;\n }\n this.checkImages();\n }\n ngOnChanges(){\n if (this.dontShowReference != undefined && this.dontShowReference != null && this.dontShowReference){\n this.showReferenceLeft = ''; \n this.showReferenceRight = '';\n } else {\n this.showReferenceLeft = 'from'; \n this.showReferenceRight = 'to';\n }\n this.checkImages();\n if (this.first_image != null && this.first_image != undefined && this.first_image.transform != null){\n this.updateLines(this.first_words, this.first_lines)\n }\n if (this.second_image != null && this.second_image != undefined && this.second_image.transform != null){\n this.updateLines(this.second_words, this.second_lines)\n }\n }\n private checkImages(){\n if (this.first_image != null && this.first_image != undefined && this.startLineId != null && this.startLineId != undefined){\n if(this.first_lines != null && this.first_lines != undefined && this.first_lines.length > 0){\n this.first_image = this.updateTextField(this.first_image, this.first_lines);\n }\n if(this.second_lines != null && this.second_lines != undefined && this.second_lines.length > 0){\n this.second_image = this.updateTextField(this.second_image, this.second_lines);\n }\n }\n }\n private updateLines(words: Word[], lines: Line[]) {\n for (var i = 0; i < lines.length; i++){\n if (words.filter(word =>word.line == lines[i].id).length > 0){\n lines[i].top = words.filter(word =>word.line == lines[i].id).map(word =>Number(word.top)).sort(function(a,b){ return a-b; })[0]\n lines[i].bottom = words.filter(word =>word.line == lines[i].id).map(word =>Number(word.top)+Number(word.height)).sort(function(a,b){ return b-a; })[0]\n }\n }\n }\n private updateTextField(image: Image, lines: Line[]): Image {\n let endLineId = (this.endLineId != null && this.endLineId != undefined) ? this.endLineId : this.startLineId;\n let startLines = lines.filter(line =>line.id == this.startLineId)\n let endLines = lines.filter(line =>line.id == endLineId)\n if (startLines.length > 0 && endLines.length > 0){\n let top = (startLines[0].top > 10) ? startLines[0].top-10 : startLines[0].top;\n let height = (endLines[0].bottom-top)+10;\n let text_field: TextField = { top: top, left: image.text_field.left, width: image.text_field.width, height: height }\n return { x: image.x, y: image.y, width: image.width, height: image.height, filename: image.filename,\n URL: image.URL, secondaryURL: image.secondaryURL, text_field: text_field, transform: image.transform, \n copyright: image.copyright }\n }\n return image;\n }\n /**\n * Returns whether the two images can be displayed as columns.\n **/\n private hasColumnStyle(): boolean {\n if (this.zoomFactor <= 1 || this.first_image == null || this.second_image == null){\n return true \n }\n let newLeftWidth = this.max_height/this.first_image.text_field.height*this.zoomFactor*this.first_image.text_field.width;\n let newRightWidth = this.max_height/this.second_image.text_field.height*this.zoomFactor*this.second_image.text_field.width;\n return newLeftWidth + newRightWidth < screen.availWidth;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MatBottomSheetModule,MatButtonModule,MatCheckboxModule,MatDialogModule,MatExpansionModule,MatFormFieldModule,MatInputModule,MatListModule,MatPaginatorModule,MatRadioModule,MatSelectModule,MatSidenavModule,MatSortModule,MatTableModule,MatToolbarModule,MatButtonToggleModule,MatCardModule,MatIconModule,MatMenuModule,MatTabsModule,MatTooltipModule\n} from '@angular/material';\nimport { NgxMatStandoffMarkupModule } from '../lib/ngx-mat-standoff-markup.module';\nimport { MarginFieldComponent } from './margin-field/margin-field.component';\nimport { TextFieldComponent} from './textfield-component/textfield.component';\nimport { InteractedDirective } from './interacted.directive';\nimport { PageViewComponent } from './page-view.component';\nimport { PageViewService } from './page-view.service';\nimport { CopyrightComponent } from './copyright/copyright.component';\nimport { LineReferenceComponent } from './margin-field/line-reference/line-reference.component';\nimport { CopyrightSheetComponent } from './copyright/copyright-sheet/copyright-sheet.component';\n\n@NgModule({\n declarations: [\n InteractedDirective,\n MarginFieldComponent,\n TextFieldComponent,\n PageViewComponent,\n CopyrightComponent,\n LineReferenceComponent,\n CopyrightSheetComponent\n ],\n imports: [\n MatBottomSheetModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatCardModule,\n MatCheckboxModule,\n MatDialogModule,\n MatExpansionModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatPaginatorModule,\n MatRadioModule,\n MatSelectModule,\n MatSidenavModule,\n MatSortModule,\n MatTableModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n CommonModule\n ],\n providers: [\n PageViewService\n ],\n exports: [\n MarginFieldComponent,\n TextFieldComponent,\n PageViewComponent,\n CopyrightComponent\n ],\n entryComponents: [CopyrightSheetComponent]\n})\nexport class PageViewModule { }\n","import {EventEmitter, Injectable} from '@angular/core';\nimport { Configuration, Continuation, Copyright, Interactable, Line, Point, Reference, TextByForeignHand, Word } from './models';\n/**\n * This is an information service about clicked and (un-)hovered\n * {@link /interfaces/Line.html|Lines}, \n * {@link /miscellaneous/typealiases.html#Word|Words}.\n * and {@link /interfaces/TextByForeignHand.html|TextByForeignHands}.\n * */\n@Injectable()\nexport class PageViewService {\n /**\n * hovered line emitter\n **/\n onHoveredLine = new EventEmitter<Line>();\n /**\n * off hovered line emitter\n **/\n offHoveredLine = new EventEmitter<Line>();\n /**\n * clicked line emitter\n **/\n onClickedLine = new EventEmitter<Line>();\n /**\n * hovered word emitter\n **/\n onHoveredWord = new EventEmitter<Word>();\n /**\n * off hovered word emitter\n **/\n offHoveredWord = new EventEmitter<Word>();\n /**\n * clicked word emitter\n **/\n onClickedWord = new EventEmitter<Word>();\n /**\n * clicked text by foreign hand emitter\n **/\n onClickedTextByForeignHand = new EventEmitter<TextByForeignHand>();\n /**\n * hovered text by foreign hand emitter\n **/\n onHoveredTextByForeignHand = new EventEmitter<TextByForeignHand>();\n /**\n * off hovered text by foreign hand emitter\n **/\n offHoveredTextByForeignHand = new EventEmitter<TextByForeignHand>();\n /**\n * hovered line continuation \n **/\n onHoveredContinuation = new EventEmitter<Continuation>();\n /**\n * off hovered line continuation \n **/\n offHoveredContinuation = new EventEmitter<Continuation>();\n /**\n * point where mouse hovered/clicked\n **/\n mousePosition = new EventEmitter<Point>();\n /**\n * Reference change emitter, subscribe in order to navigate to reference.\n **/\n reference = new EventEmitter<Reference>();\n /**\n * copyright change emitter\n * */\n copyright = new EventEmitter<Copyright>();\n\n public referenceService(reference: Reference){\n this.reference.emit(reference);\n }\n public copyrightService(copyright: Copyright, point?: Point){\n this.copyright.emit(copyright);\n if (point != null && point != undefined){\n this.mousePosition.emit(point);\n }\n }\n /**\n * emit an event on 'onClicked' + interactable.datatype\n **/\n public onClickService(interactable: Interactable, point?: Point){\n this['onClicked' + interactable.datatype].emit(interactable);\n if (interactable.datatype != 'Line' && point != null && point != undefined){\n this.mousePosition.emit(point);\n }\n }\n /**\n * emit an event on 'onHover' + interactable.datatype\n **/\n public onHoverService(interactable: Interactable, point?: Point){\n this['onHovered' + interactable.datatype].emit(interactable);\n if (interactable.datatype != 'Line' && point != null && point != undefined){\n this.mousePosition.emit(point);\n }\n }\n /**\n * emit an event on 'offHover' + interactable.datatype\n **/\n public offHoverService(interactable: Interactable){\n this['offHovered' + interactable.datatype].emit(interactable);\n this.mousePosition.emit({visible: false, clientX: -1, clientY: -1, layerX: -1, layerY: -1 });\n }\n}\n","export class Matrix {\n private readonly offset: number = -140;\n private readonly A: number = 0\n private readonly B: number = 1\n private readonly C: number = 2\n private readonly D: number = 3\n private readonly E: number = 4\n private readonly F: number = 5\n matrix: number[] = [ 1, 0, 0, 1, 0, 0 ]\n\n constructor(matrix_string: string, zoomFactor?: number){\n if (matrix_string.startsWith('matrix')){\n this.matrix = matrix_string.replace('matrix(','').replace(')','').split(' ').map(n =>Number(n))\n } else if (matrix_string.startsWith('rotation')){\n let angle = Number(matrix_string.replace('rotation(','').replace(')',''))\n let radians = Math.PI/180*angle\n this.matrix[this.A] = Math.round(Math.cos(radians))\n this.matrix[this.B] = Math.sin(radians)\n this.matrix[this.C] = Math.sin(radians)*-1\n this.matrix[this.D] = Math.round(Math.cos(radians))\n }\n if (zoomFactor != null){\n this.matrix[this.E] = zoomFactor*this.offset\n this.matrix[this.F] = zoomFactor*this.offset\n }\n }\n\n public toString(): string {\n return 'matrix(' + this.matrix.map(n =>String(n)).join(' ') + ')'\n }\n}\n","export default \".textfield {\\n background-color: #DADADA;\\n}\\n.textfield .deleted {\\n fill: grey;\\n opacity: 0.3;\\n}\\n.textfield .highlight_red {\\n fill: #e20000;\\n opacity: 0.3;\\n}\\n.textfield .highlight_yellow {\\n fill: #e2fa00;\\n opacity: 0.3;\\n}\\n.textfield .highlight_magenta {\\n fill: #FF00FF;\\n opacity: 0.3;\\n}\\n.textfield .highlight_foreign_text {\\n fill: blue;\\n opacity: 0.5;\\n}\\n.textfield .unhighlighted {\\n opacity: 0.0;\\n}\\n.textfield .highlight_path {\\n stroke: red;\\n fill: none;\\n stroke-width: 0.2;\\n}\\n.textfield .unhighlighted_path {\\n stroke: none;\\n fill: none;\\n opacity: 0.0;\\n}\\n.textfield .border {\\n stroke: #e2fa00;\\n stroke-width:5;\\n opacity: 0.3;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9wYWdlLXZpZXcvdGV4dGZpZWxkLWNvbXBvbmVudC90ZXh0ZmllbGQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UsVUFBVTtFQUNWLFlBQVk7QUFDZDtBQUNBO0VBQ0UsYUFBYTtFQUNiLFlBQVk7QUFDZDtBQUNBO0VBQ0UsYUFBYTtFQUNiLFlBQVk7QUFDZDtBQUNBO0VBQ0UsYUFBYTtFQUNiLFlBQVk7QUFDZDtBQUNBO0VBQ0UsVUFBVTtFQUNWLFlBQVk7QUFDZDtBQUNBO0VBQ0UsWUFBWTtBQUNkO0FBQ0E7R0FDRyxXQUFXO0dBQ1gsVUFBVTtHQUNWLGlCQUFpQjtBQUNwQjtBQUNBO0dBQ0csWUFBWTtHQUNaLFVBQVU7R0FDVixZQUFZO0FBQ2Y7QUFDQTtFQUNFLGVBQWU7RUFDZixjQUFjO0VBQ2QsWUFBWTtBQUNkIiwiZmlsZSI6ImFwcC9wYWdlLXZpZXcvdGV4dGZpZWxkLWNvbXBvbmVudC90ZXh0ZmllbGQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi50ZXh0ZmllbGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREFEQURBO1xufVxuLnRleHRmaWVsZCAuZGVsZXRlZCB7XG4gIGZpbGw6IGdyZXk7XG4gIG9wYWNpdHk6IDAuMztcbn1cbi50ZXh0ZmllbGQgLmhpZ2hsaWdodF9yZWQge1xuICBmaWxsOiAjZTIwMDAwO1xuICBvcGFjaXR5OiAwLjM7XG59XG4udGV4dGZpZWxkIC5oaWdobGlnaHRfeWVsbG93IHtcbiAgZmlsbDogI2UyZmEwMDtcbiAgb3BhY2l0eTogMC4zO1xufVxuLnRleHRmaWVsZCAuaGlnaGxpZ2h0X21hZ2VudGEge1xuICBmaWxsOiAjRkYwMEZGO1xuICBvcGFjaXR5OiAwLjM7XG59XG4udGV4dGZpZWxkIC5oaWdobGlnaHRfZm9yZWlnbl90ZXh0IHtcbiAgZmlsbDogYmx1ZTtcbiAgb3BhY2l0eTogMC41O1xufVxuLnRleHRmaWVsZCAudW5oaWdobGlnaHRlZCB7XG4gIG9wYWNpdHk6IDAuMDtcbn1cbi50ZXh0ZmllbGQgLmhpZ2hsaWdodF9wYXRoIHtcbiAgIHN0cm9rZTogcmVkO1xuICAgZmlsbDogbm9uZTtcbiAgIHN0cm9rZS13aWR0aDogMC4yO1xufVxuLnRleHRmaWVsZCAudW5oaWdobGlnaHRlZF9wYXRoIHtcbiAgIHN0cm9rZTogbm9uZTtcbiAgIGZpbGw6IG5vbmU7XG4gICBvcGFjaXR5OiAwLjA7XG59XG4udGV4dGZpZWxkIC5ib3JkZXIge1xuICBzdHJva2U6ICNlMmZhMDA7XG4gIHN0cm9rZS13aWR0aDo1O1xuICBvcGFjaXR5OiAwLjM7XG59XG4iXX0= */\"","import { Component, ElementRef, Input, Output, EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { externalAssignClass, externalAssignStyle, Configuration, Continuation, Identifier, Image, Line, Position, PositionalObject, TextByForeignHand, Word, USE_EXTERNAL_TOOLTIP} from '../models';\nimport { PageViewService } from '../page-view.service';\nimport { HIGHTLIGHT_CASES } from '../highlight_status';\nimport { ConfigurableComponent } from '../configurable-component';\nimport { Matrix } from './matrix';\n/**\n * This component displays an image with word hovers.\n **/\n@Component({\n selector: 'text-field',\n templateUrl: './textfield.component.html',\n styleUrls: ['./textfield.component.css']\n})\nexport class TextFieldComponent extends ConfigurableComponent implements OnInit, OnChanges {\n /**\n * scrollable HTML-container of this textfield\n **/\n @Input() container: HTMLElement;\n /**\n * the currently clicked word\n * */\n clickedWord?: Word;\n /**\n * Debug mode.\n **/\n debug: boolean = false;\n /**\n * the search text of words that should be highlighted as {@link /miscellaneous/enumerations.html#HIGHTLIGHT_CASES|HIGHTLIGHT_CASES.SEARCHED_WORD}.\n **/\n @Input() findText: string;\n /**\n * texts written by foreign hand\n **/\n @Input() foreign_texts: TextByForeignHand[] = [];\n /**\n * the currently hovered line\n * */\n hoveredLine?: Line;\n /**\n * the currently hovered text by foreign hand\n * */\n hoveredTextByForeignHand?: TextByForeignHand;\n /**\n * the currently hovered word\n * */\n hoveredWord?: Word;\n /**\n * the image that will be displayed.\n **/\n @Input() image: Image;\n /**\n * textfield's identity.\n **/\n @Input() identity: string = 'first textfield';\n /**\n * The (unzoomed) height of the root svg.\n *\n * (The actual height is 'image_height*local_zoom*zoomFactor'\n * */\n image_height: number = 400;\n /**\n * image properties for the svg-image.\n * */\n imageSpec = { x: 0, y: 0, height: 973.91998, width: 2038.5601, URL: null, secondaryURL: null, transform: 'matrix(1 0 0 1 0 0)' };\n /**\n * The (unzoomed) width of the root svg.\n *\n * (The actual width is 'image_width*local_zoom*zoomFactor'\n * */\n image_width: number = 300;\n /**\n * the viewBox of the root svg specifying the area of the svg that will be shown.\n * */\n viewBox: string = '';\n /**\n * the (initial) maximum height of the image.\n **/\n @Input() max_height: number = -1;\n /**\n * the (initial) maximum width of the image.\n **/\n @Input() max_width: number = -1;\n /**\n * should primary Url be used for image. Use secondary Url if false.\n **/\n @Input() preferPrimaryUrl: boolean = true;\n /**\n * Use extended tooltip.\n **/\n @Input() useExtendedTooltip: boolean = false;\n /**\n * the words that will be displayed as rects on the image.\n **/\n @Input() words: Word[];\n /**\n * global zoom factor.\n **/\n @Input() zoomFactor: number = 1;\n /**\n * local zoom factor that sets the height and width of the image according to {@link #max_height|max_height}.\n * */\n local_zoom: number = 1;\n /**\n * An optional function that can be passed to this component in order to return a further highlight class\n * to the word rects when the internal function would return 'textfield unhighlighted'.\n **/\n @Input('assignClass') externalAssignClassAfter?: externalAssignClass;\n /**\n * An optional function that can be passed to this component in order to return a (svg-)style object\n * to the word rects. This function allows the user to extend the style of this component.\n * E.g. by returning { fill: blue } the function overwrites the default behaviour and sets\n * the default highlight color to blue.\n **/\n @Input('assignStyle') extAssignStyle?: externalAssignStyle;\n /**\n * identifiers of selected words that should be highlighted.\n **/\n @Input() selectedWords: Identifier[] = [];\n /**\n * identifiers of selected lines that should be highlighted.\n **/\n @Input() selectedLines: Identifier[] = [];\n /**\n * @param pageViewService an information source about (un-)hovered and clicked Lines/Words.\n * */\n constructor( protected pageViewService: PageViewService) {\n super()\n }\n ngOnInit() {\n if (this.max_height == -1 && this.max_width == -1){\n this.max_height = screen.availHeight;\n }\n if (this.image.text_field != null) {\n this.updateImageProperties();\n } else if (this.imageSpec != null) {\n this.image_width = this.imageSpec.width;\n this.image_height = this.imageSpec.height;\n this.viewBox = '0 0 ' + this.image_width + ' ' + this.image_height;\n }\n this.pageViewService.onClickedWord.subscribe(\n (changedWord: Word ) => this.clickedWord = changedWord\n );\n this.pageViewService.onHoveredWord.subscribe(\n (changedWord: Word) => this.hoveredWord = changedWord\n );\n this.pageViewService.offHoveredWord.subscribe(\n (changedWord: Word) => { this.hoveredWord = null; }\n );\n this.pageViewService.onHoveredLine.subscribe(\n (changedLine: Line) => { this.hoveredLine = changedLine}\n );\n this.pageViewService.offHoveredLine.subscribe(\n (changedLine: Line) => { this.hoveredLine = null; }\n );\n this.pageViewService.onHoveredTextByForeignHand.subscribe(\n (changedForeignText: TextByForeignHand) => { this.hoveredTextByForeignHand = changedForeignText;}\n );\n this.pageViewService.offHoveredTextByForeignHand.subscribe(\n (changedForeignText: TextByForeignHand) => { this.hoveredTextByForeignHand = null; }\n );\n\n }\n ngOnChanges() {\n super.ngOnChanges()\n if (this.image.text_field != null) {\n this.updateImageProperties();\n }\n if(this.debug && this.findText != null && this.findText != ''){\n let words = this.words.filter(word =>word.text == this.findText)\n if (words.length > 0){\n this.pageViewService.onHoverService(words[0], {visible: true, clientX: 100, clientY: 100, layerX: -1, layerY: -1 })\n }\n }\n }\n /**\n * Update image properties: use textfield in order to specify the area of the image that will be shown.\n *\n * @param URL set alternative image url. This will be used on image load error (see Template)\n **/\n private updateImageProperties(URL?: string){\n let previous_word: Word = null;\n for (var i = 0; i < this.words.length; i++){\n this.words[i].datatype = \"Word\";\n if (previous_word == null || previous_word.id != this.words[i].id){\n previous_word = this.words[i]\n previous_word.is_top_object = true;\n } else if (previous_word.top > this.words[i].top){\n previous_word.is_top_object = false;\n previous_word = this.words[i]\n previous_word.is_top_object = true;\n } else {\n this.words[i].is_top_object = false;\n }\n }\n this.foreign_texts.forEach(foreignText =>foreignText.datatype = \"TextByForeignHand\");\n let image_left = this.image.text_field.left;\n let image_top = this.image.text_field.top;\n this.image_width = this.image.text_field.width;\n this.image_height = this.image.text_field.height;\n this.local_zoom = (this.max_height != -1 && this.max_width == -1)\n ? this.max_height/this.image.text_field.height : this.max_width/this.image.text_field.width;\n if (this.max_width == -1 && this.image_height < this.image_width){\n this.local_zoom = (window.innerWidth/2-100)/this.image.text_field.width;\n }\n this.imageSpec.x = this.image.x;\n this.imageSpec.y = this.image.y;\n this.imageSpec.height = this.image.height;\n this.imageSpec.width = this.image.width;\n this.imageSpec.URL = (this.preferPrimaryUrl) ? this.image.URL : this.image.secondaryURL;\n this.imageSpec.secondaryURL = (this.preferPrimaryUrl) ? this.image.URL : this.image.URL;\n if (URL != null){\n this.imageSpec.secondaryURL = this.imageSpec.URL\n this.imageSpec.URL = URL;\n }\n if(this.image.transform != null){\n this.local_zoom = this.max_height/this.image.text_field.width;\n let matrix = new Matrix(this.image.transform, this.local_zoom*this.zoomFactor);\n this.imageSpec.transform = matrix.toString()\n }\n this.viewBox = image_left + ' ' + image_top + ' ' + this.image_width + ' ' + this.image_height;\n }\n /**\n * Return the position (i.e. '{ x: x, y: y }') for the copyright symbol.\n * @param dimension dimension of the copyright symbol.\n **/\n private getCopyrightPosition(dimension: number): Object {\n if (this.image.text_field != null && this.image.text_field != undefined){\n let positions: Position[] = [\n { x: Number(this.image.text_field.left) +10/this.zoomFactor,\n y: Number(this.image.text_field.top) +10/this.zoomFactor },\n { x: Number(this.image.text_field.left),\n y: Number(this.image.text_field.top)},\n { x: Number(this.image.text_field.width) + Number(this.image.text_field.left) -15/this.zoomFactor - dimension,\n y: Number(this.image.text_field.height) + Number(this.image.text_field.top) -15/this.zoomFactor - dimension },\n { x: Number(this.image.text_field.width) + Number(this.image.text_field.left) - dimension,\n y: Number(this.image.text_field.height) + Number(this.image.text_field.top) - dimension },\n { x: Number(this.image.text_field.left) +10/this.zoomFactor,\n y: Number(this.image.text_field.height) + Number(this.image.text_field.top) -10/this.zoomFactor - dimension },\n { x: Number(this.image.text_field.width) + Number(this.image.text_field.left) -10/this.zoomFactor - dimension,\n y: Number(this.image.text_field.top) +10/this.zoomFactor},\n { x: Number(this.image.text_field.width) + Number(this.image.text_field.left) - dimension,\n y: Number(this.image.text_field.top)}\n ]\n let default_index = 1\n let index = 0;\n let position_found = false;\n while (!position_found && index < positions.length){\n let left = positions[index].x\n let top = positions[index].y\n if(!this.doesPositionConflict(left, top, dimension, this.words)\n && !this.doesPositionConflict(left, top, dimension, this.foreign_texts)){\n position_found = true;\n } else {\n index++\n }\n }\n let left = (index < positions.length) ? positions[index].x : positions[default_index].x;\n let top = (index < positions.length) ? positions[index].y : positions[default_index].y;\n return { x: `${left}px`, y: `${top}px` }\n } else {\n return { x: '0px', y: '0px' }\n }\n }\n /**\n * Return whether position specified by left, top and dimension does conflict with one of the positional objects' position.\n *\n * @param left left of position\n * @param top top of position\n * @param dimension dimension of position\n * @param positionalObjects Array of positions\n **/\n private doesPositionConflict(left: number, top: number, dimension: number, positionalObjects: PositionalObject[]): boolean {\n let conflicts = positionalObjects.filter(positionalObject =>\n !(Number(positionalObject.left) + Number(positionalObject.width) < left || Number(positionalObject.left) > left + dimension\n || Number(positionalObject.top) > top + dimension || Number(positionalObject.top) + Number(positionalObject.height) < top)\n )\n return conflicts.length > 0\n }\n /**\n * Get the hover status of the word as one of the {@link /miscellaneous/enumerations.html#HIGHTLIGHT_CASES|HIGHTLIGHT_CASES}.\n **/\n private getHoverStatus(word: Word, skipFindText: boolean = false): string {\n if (this.selectedWords.indexOf(word.id) > -1\n || this.selectedLines.indexOf(word.line) > -1){\n return HIGHTLIGHT_CASES.SELECTED_WORD;\n }\n if (!skipFindText && this.findText != null && this.findText != ''){\n let findRegex = '^[^\\\\w]*(' + this.findText.split(' ').join('|') + ')'\n return (word.text.match(findRegex)\n || (word.edited_text != null && word.edited_text.match(findRegex))\n ) ? HIGHTLIGHT_CASES.SEARCHED_WORD : this.getHoverStatus(word, true);\n }\n if (typeof this.hoveredLine !== 'undefined' && this.hoveredLine !== null) {\n return (this.hoveredLine.id == word.line\n || (this.hoveredLine.continuesTo != undefined && this.hoveredLine.continuesTo != null && this.hoveredLine.continuesTo.line.id == word.line)\n || (this.hoveredLine.continuesFrom != undefined && this.hoveredLine.continuesFrom != null && this.hoveredLine.continuesFrom.line.id == word.line))\n ? HIGHTLIGHT_CASES.LINE_HOVERED : HIGHTLIGHT_CASES.DEFAULT;\n } else if (typeof this.hoveredWord !== 'undefined' && this.hoveredWord !== null){\n return (this.hoveredWord.id == word.id) ? HIGHTLIGHT_CASES.WORD_HOVERED : HIGHTLIGHT_CASES.DEFAULT;\n }\n return HIGHTLIGHT_CASES.DEFAULT;\n }\n /**\n * Return a css class for word that will be used with [ngClass] in order to (un-)highlight the word's rect.\n *\n * If a function has been passed to Input {@link #assignClass|assignClass},\n * this function will call it if {@link #getHoverStatus|getHoverStatus(word)} == {@link /miscellaneous/enumerations.html#HIGHTLIGHT_CASES|HIGHTLIGHT_CASES.DEFAULT}.\n **/\n private assignClass(positionalObject: PositionalObject, elementName?: string): string {\n if (positionalObject.datatype == 'TextByForeignHand'){\n return (this.hoveredTextByForeignHand != null && this.hoveredTextByForeignHand.id == positionalObject.id) ?\n 'text_field highlight_foreign_text' : 'text_field unhighlighted'\n }\n let word = <Word>positionalObject;\n if (elementName != null) {\n return (this.getHoverStatus(word) == HIGHTLIGHT_CASES.DEFAULT) ? `text_field unhighlighted_${elementName}` : `text_field highlight_${elementName}`;\n }\n switch(this.getHoverStatus(word)) {\n case HIGHTLIGHT_CASES.SELECTED_WORD: {\n return 'textfield highlight_magenta';\n }\n case HIGHTLIGHT_CASES.SEARCHED_WORD: {\n return 'textfield highlight_red';\n }\n case HIGHTLIGHT_CASES.LINE_HOVERED: {\n return (word.deleted) ? 'textfield deleted' : 'textfield highlight_yellow';\n }\n case HIGHTLIGHT_CASES.WORD_HOVERED: {\n return (word.deleted) ? 'textfield deleted' : 'textfield highlight_yellow';\n }\n case HIGHTLIGHT_CASES.DEFAULT: {\n return (this.externalAssignClassAfter != null) ? this.externalAssignClassAfter(word, this.hoveredWord, this.hoveredLine) : 'textfield unhighlighted';\n }\n }\n }\n /**\n * Assign a style to the rects of a line.\n **/\n private assignStyle(word: Word, hoveredWord: Word, hoveredLine: Line, hoverStatus: string): Object {\n return (this.extAssignStyle != null) ? this.extAssignStyle(word, hoveredWord, hoveredLine, hoverStatus) : {};\n }\n private msg(URL: string){\n if(this.preferPrimaryUrl){\n // console.log(URL + ' TODO: show smaller image during loading');\n }\n }\n}\n","export default \".text {\\n text-align: justify;\\n width: 600px;\\n}\\n.img {\\n margin-top: 20px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9wcm9qZWN0LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxtQkFBbUI7R0FDbkIsWUFBWTtBQUNmO0FBQ0E7R0FDRyxnQkFBZ0I7QUFDbkIiLCJmaWxlIjoiYXBwL3Byb2plY3QuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi50ZXh0IHtcbiAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICB3aWR0aDogNjAwcHg7XG59XG4uaW1nIHtcbiAgIG1hcmdpbi10b3A6IDIwcHg7XG59XG4iXX0= */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-project',\n templateUrl: './project.component.html',\n styleUrls: ['./project.component.css']\n})\nexport class ProjectComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","export default \"#page {\\n margin-top: 10px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9yaGl6b21lLXZpZXctY29tcG9uZW50L3JoaXpvbWUtdmlldy1jb21wb25lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLGdCQUFnQjtBQUNuQiIsImZpbGUiOiJhcHAvcmhpem9tZS12aWV3LWNvbXBvbmVudC9yaGl6b21lLXZpZXctY29tcG9uZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjcGFnZSB7XG4gICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuIl19 */\"","import { Component, OnInit } from '@angular/core';\nimport {ActivatedRoute, Params, Router} from '@angular/router';\nimport { TlnQueryParams} from '../models/models';\n\n@Component({\n selector: 'app-rhizome-view-component',\n templateUrl: './rhizome-view-component.component.html',\n styleUrls: ['./rhizome-view-component.component.css']\n})\nexport class RhizomeViewComponentComponent implements OnInit {\n queryParams: TlnQueryParams;\n constructor(private router: Router,\n private activatedRoute: ActivatedRoute) { }\n\n ngOnInit() {\n this.activatedRoute.queryParams.subscribe( (queryParams: Params ) => {\n this.queryParams = new TlnQueryParams(\n queryParams.navBarOpenState,\n queryParams.navContext,\n queryParams.manuscript,\n queryParams.page,\n queryParams.selectedLines,\n queryParams.selectedWords,\n queryParams.viewMode,\n queryParams.fullscreen,\n queryParams.zoom\n );\n });\n\n }\n\n}\n","import {Injectable} from '@angular/core';\nimport {TlnQueryParams, NavTreeDef } from '../models/models';\nimport * as _ from 'lodash';\nimport {Subscription} from 'rxjs';\nimport {ActivatedRoute, Params, Router} from '@angular/router';\n\n@Injectable()\nexport class NavigationServiceService {\n\n constructor( private router: Router,\n private activatedRoute: ActivatedRoute ) {\n }\n\n /**\n * updateRoute\n * routes to the active url with the actual or passed query params of this class.\n */\n updateRoute(qParams?: Params) {\n this.router.navigate([], { relativeTo: this.activatedRoute, queryParams: qParams, queryParamsHandling: 'merge' });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Parser, Generator, Wildcard } from 'sparqljs';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\n\n\n@Injectable()\nexport class QueryService {\n constructor(private http: HttpClient) {\n }\n\n parser = new Parser();\n sparqlGenerator = new Generator({});\n\n /**\n * Gets the data from an endpoint via http post\n *\n * @param baseUrl: The url of the endpoint.\n * @param query: The query to run.\n * @param queryType: \"CONSTRUCT\" or \"QUERY\"\n * @returns the response.\n */\n public getData(baseUrl: string, query: string, queryType?: string ) {\n let httpOptions;\n if (queryType === 'CONSTRUCT') {\n // A construct does contain a text as response, not a json, so responseType must be 'text' to avoid parse errors\n httpOptions = { headers: new HttpHeaders({'Content-Type': 'application/sparql-query', 'Accept': 'text/turtle'}),\n responseType: 'text'};\n return this.http.post(baseUrl, query, httpOptions);\n } else {\n httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/sparql-query',\n 'Accept': 'application/sparql-results+json; charset=UTF-8'})};\n return this.http.post(baseUrl, query, httpOptions);\n }\n }\n\n /**\n * Gets a text file by its name from the directory assets/queries.\n *\n * @param filename The name of the file + file name extension.\n * @returns the text of the file.\n */\n public getQueryfromFilename(filename) {\n return this.http.get('../assets/queries/' + filename, {responseType: 'text'});\n }\n\n /**\n * Gets a query string from a given file in the directory assets/queries.\n *\n * @param filename The name of the file + file name extension.\n * @returns The JSON equivalence of the parsed query.\n */\n public parseQueryFromFile(filename) {\n return this.getQueryfromFilename(filename )\n .subscribe(query => {\n this.parser.parse(query);\n } );\n }\n\n /**\n * getQueryForItem()\n * Parametrizes a given baseQuery with a iri passed, so the iri will be the subject of the where clause\n *\n * @param itemIri: The iri of the selected resource\n * @param baseQuery: name of the query to parametrize\n * @returns the query for the resource.\n */\n public parametrizeQueryWithItem(baseQuery: string, itemIri: string) {\n const parsedQuery = this.parser.parse(baseQuery);\n // console.log('parsedQuery', parsedQuery);\n // parametrize/reset the subject iri to the word's iri we like to query for\n const resourceOfInterest = {'termType': 'NamedNode', 'value': decodeURI(itemIri) };\n parsedQuery.where[0].triples[0].subject = resourceOfInterest;\n // generate the new query string and return it\n // console.log('parametrized query', this.sparqlGenerator.stringify(parsedQuery));\n return this.sparqlGenerator.stringify(parsedQuery);\n }\n\n}\n","export {HIGHTLIGHT_CASES} from '../page-view/highlight_status';\n\nexport enum VIEW_OPTIONS {\n TRANSKRIPTION = 'Transkription', \n FAKSIMILE = 'Faksimile',\n SYNOPSIS = 'Transkription/Faksimile',\n SYNOPSIS_B = 'Faksimile/Transkription'\n}\nexport const DEFAULT_VIEW_OPTION: string = VIEW_OPTIONS.SYNOPSIS_B;\nexport const ONTOLOTY_PREFIX: string = 'http://www.nie.org/ontology/nietzsche#'\n/**\n * Route for TlnCrossrefComponent\n **/\nexport const TLN_CROSSREF_ROUTE: string = 'tln-crossref';\n/**\n * Route for TlnFulltextComponent\n **/\nexport const TLN_SEARCH_ROUTE: string = 'tln-search';\n/**\n * Route for TlnManuscriptViewComponent\n **/\nexport const TLN_MANUSCRIPT_ROUTE: string = 'tln-manuscript';\n/**\n * Route for TlnViewerComponent\n **/\nexport const TLN_VIEWER_ROUTE: string = 'tln-viewer';\n/**\n * Param that refers to the context that should be shown, i.e. 'page' or 'manuscript'.\n **/\nexport const TLN_CONTEXT_VIEW_PARAM: string = 'contextView';\n/**\n * Param that toggles fullscreen, value type: boolean.\n **/\nexport const TLN_FULLSCREEN_PARAM: string = 'fullscreen';\n/**\n * Param for find text in page.\n **/\nexport const TLN_FIND_PARAM: string = 'find';\n/**\n * Param for manuscript iri.\n **/\nexport const TLN_MANUSCRIPT_PARAM: string = 'manuscript';\n/**\n * Param for navigation bar open state.\n **/\nexport const TLN_NAV_BAR_OPEN_STATE_PARAM: string = 'navBarOpenState';\n/**\n * Param for page iri.\n **/\nexport const TLN_PAGE_PARAM: string = 'page';\n/**\n * Param for result index, type: number.\n **/\nexport const TLN_RESULT_INDEX_PARAM: string = 'resutlIndex';\n/**\n * Param for selected lines.\n **/\nexport const TLN_SELECTED_LINES_PARAM: string = 'selectedLines';\n/**\n * Param for selected lines.\n **/\nexport const TLN_SELECTED_WORDS_PARAM: string = 'selectedWords';\n/**\n * Param for iri of a genetic order of text versions.\n **/\nexport const TLN_TEXT_GENETIC_ORDER_PARAM: string = 'geneticOrder';\n/**\n * Param for selected view option, e.g. 'Transkription', 'Faksimile', etc.\n **/\nexport const TLN_VIEW_OPTION_PARAM: string = 'viewMode';\n/**\n * Param for zoom.\n **/\nexport const TLN_ZOOM_PARAM: string = 'zoom';\n","import { OnInit, EventEmitter} from '@angular/core';\nimport { first, takeUntil } from 'rxjs/operators';\nimport { BasicResultBindingElement, AskResult} from './datatypes/basic_datatype';\nimport { DataProcessor, TlnQueryServiceInterface } from './models';\n\nexport interface KeyIriMapping {\n key: string;\n iri: string;\n}\nexport interface ComplexKeyIriMapping {\n idIndex: number;\n mapping: KeyIriMapping[];\n}\n\n/**\n * This interface can be used in order to handle data \n * of type {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.\n **/\nexport interface Handler {\n /**\n * a class that instantiates data of type {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}\n **/\n handler: typeof BasicResultBindingElement;\n /**\n * data handler's next key for retrieving and instantiating data.\n **/\n next_key?: string;\n /**\n * a service that informs its listeners about its handler's data.\n **/\n service?: any;\n process_data?: DataProcessor;\n}\n/**\n * This class retrieves data from a query service and instantiates it using \n * corresponding handlers.\n **/\nexport class DataHandler {\n /**\n * the query services with which data is retrieved\n **/\n queryService: TlnQueryServiceInterface;\n debug: boolean = false;\n /**\n * whether or not DataHandler is ready to retrieve data\n **/\n ready: boolean = false;\n stop_processing = new EventEmitter<boolean>();\n start_processing = new EventEmitter<boolean>();\n processing_finished = new EventEmitter<boolean>();\n /**\n * @param component the component that uses this data handler\n **/\n constructor(private component: OnInit){}\n /**\n * add a {@link /interfaces/Handler.html|Handler} \n * or an Array of handler keys to DataHandler.\n **/\n public addHandler(key: string, handler: Handler | string[]) {\n this[key] = handler;\n }\n /**\n * Retrieve and instantiate data\n * @param key data handler key\n * @param iri iri that should be passed to query\n * @param next_iri use next_iri instead of the iri of the first item in the current data array.\n **/\n public getData(key: string, iri?: string, next_iri?: string) {\n if (Array.isArray(this[key])){ \n this[key].forEach(value =>this.getData(value, iri));\n if (next_iri != null && this[key]['next_key'] != null){\n this.getData(this[key]['next_key'], next_iri);\n }\n } else {\n this.start_processing.emit(true);\n let handler = this[key]['handler'];\n if (this.debug && key == 'textVersions' ) {\n //console.log(this[key]['handler'], key, iri);\n //console.log(handler.getQuery(iri, handler.query_key))\n //console.log(this[key]['service']);\n }\n let is_target_array = Array.isArray(this.component[key]);\n if (!is_target_array){\n this.queryService.getData(handler.getQuery(iri, handler.query_key)).pipe(takeUntil(this.stop_processing) || first()).subscribe(results => {\n this.component[key] = handler.convertData(results, iri, this[key]['service'])[0];\n if (next_iri != null && this[key]['next_key'] != null){\n this.getData(this[key]['next_key'], next_iri);\n } else if(this[key]['process_data'] != undefined && this[key]['process_data'] != null){\n this[key]['process_data'].processData();\n } \n });\n } else {\n this.queryService.getData(handler.getQuery(iri, handler.query_key)).pipe(takeUntil(this.stop_processing)).subscribe(results => {\n this.component[key] = (handler.use_id) ? handler.convertData(results, iri, this[key]['service']) : handler.convertData(results,null, this[key]['service']);\n if (this.component[key].length > 0 && this[key]['next_key'] != null){\n let use_next_iri = (next_iri != null) ? next_iri : this.component[key][0].id;\n this.getData(this[key]['next_key'], use_next_iri);\n } else if(this[key]['process_data'] != undefined && this[key]['process_data'] != null){\n this[key]['process_data'].processData();\n } \n });\n }\n this.processing_finished.emit(true);\n }\n }\n public getData4Keys(key: string, datatypeKeyIriMapping: ComplexKeyIriMapping) {\n if (Array.isArray(this[key])){ \n this[key].forEach(value =>this.getData4Keys(value, datatypeKeyIriMapping));\n } else {\n let handler = this[key]['handler'];\n if (this.debug) {\n console.log(this[key]['handler'], datatypeKeyIriMapping);\n }\n let is_target_array = Array.isArray(this.component[key]);\n let iri = datatypeKeyIriMapping.mapping[datatypeKeyIriMapping.idIndex];\n if (!is_target_array){\n this.queryService.getData(handler.getComplexQuery(datatypeKeyIriMapping.mapping)).pipe(takeUntil(this.stop_processing) || first()).subscribe(results => {\n this.component[key] = handler.convertData(results, iri, this[key]['service'])[0];\n });\n } else {\n this.queryService.getData(handler.getQuery(datatypeKeyIriMapping.mapping)).pipe(takeUntil(this.stop_processing)).subscribe(results => {\n this.component[key] = (handler.use_id) ? handler.convertData(results, iri) : handler.convertData(results);\n if (this.component[key].length > 0 && this[key]['next_key'] != null){\n datatypeKeyIriMapping.mapping[datatypeKeyIriMapping.idIndex] = this.component[key][0].id;\n this.getData4Keys(this[key]['next_key'], datatypeKeyIriMapping);\n } \n });\n }\n }\n }\n public getDataWithNewHandlerIf(key: string, subjectIri: string, typeIri: string, handlerTrue: Handler, handlerFalse: Handler, iri?: string, next_iri?: string) {\n let complexMapping: KeyIriMapping[] = [ { key: 'id', iri: subjectIri }, { key: 'type', iri: typeIri } ] \n this.queryService.getData(AskResult.getComplexQuery(complexMapping)).pipe(first()).subscribe(result => {\n this[key] = (AskResult.getAnswer(result)) ? handlerTrue : handlerFalse;\n console.log(key, subjectIri, typeIri, result, this[key]);\n this.getData(key, iri, next_iri);\n });\n }\n public conditionalAddHandler(askQuery: string, key: string, handlerTrue: Handler, handlerFalse: Handler) {\n this.queryService.getData(askQuery).pipe(first()).subscribe(result => {\n this[key] = (AskResult.getAnswer(result)) ? handlerTrue : handlerFalse;\n });\n }\n\n /**\n * reset all data belonging to key\n **/\n public resetData(key){\n this.queryService.resetData(key)\n if (Array.isArray(this[key])){ \n this[key].forEach(value =>this.resetData(value));\n } else {\n this.component[key] = (Array.isArray(this.component[key])) ? [] : null;\n }\n }\n /**\n * set a query service to DataHandler and switch status ready to true.\n **/\n public setQueryService(queryService: TlnQueryServiceInterface){\n this.queryService = queryService;\n this.ready = true;\n }\n}\n","import { Parser, Generator } from 'sparqljs';\nimport { KeyIriMapping } from '../data_handler';\n/** \n * this interface specifies the head of {@link /interfaces/FusekiResults.html|FusekiResults}.\n **/\ninterface FusekiVars {\n vars: string[];\n}\n/** \n * this interface specifies the bindings of {@link /interfaces/FusekiResults.html|FusekiResults}.\n **/\ninterface FusekiBindings {\n bindings: [];\n}\n/** \n * this interface specifies the results as they are retrieved from an Apache Jena Fuseki server.\n **/\nexport interface FusekiResults {\n results: FusekiBindings; \n head: FusekiVars\n}\nexport interface FusekiBoolean {\n head: any;\n boolean: boolean;\n}\n/**\n * This is the basic datatype that instantiates an element of {@link /interfaces/FusekiResults.html|FusekiResults}.\n *\n * All datatypes can be subclassed from this type in order to create SPARQL-queries, retrieve data and convert it\n * to the corresponding datatypes.\n **/\nexport class BasicResultBindingElement {\n /** \n * the internal default key for replacing {@link /classes/BasicResultBindingElement.html#query|query} by \"id\"\n * in {@link /classes/BasicResultBindingElement.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n protected static readonly default_key: string = 'id';\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `SELECT ?id ?p ?o WHERE { ?id ?p ?o. }`;\n /** \n * the public key for replacing {@link /classes/BasicResultBindingElement.html#query|query} by \"id\".\n **/\n public static readonly query_key: string = null;\n /**\n * the id of this datatype.\n **/\n public id: string;\n /**\n * the raw data of this datatype, i.e. a singular bindings element of {@link /interfaces/FusekiBindings.html|FusekiBindings}.\n **/\n protected data: any;\n /**\n * whether or not to pass the id used for the query to the constructor and \n * use it as the value of the property specified by query_key.\n **/\n public static readonly use_id: boolean = false; \n /**\n * a service that this datatype can use in order to communicate with its data holder.\n **/\n protected service: any;\n\n /**\n * The constructor creates a datatype from the data.\n *\n * @param id if omitted the id will be retrieved from data\n **/\n constructor(data: any, id?: string, service?: any){\n this.data = data;\n this.service = service;\n if (id != undefined && id != null && id != ''){\n let key = (Object.getPrototypeOf(this).constructor.use_id \n && Object.getPrototypeOf(this).constructor.query_key != null) \n ? Object.getPrototypeOf(this).constructor.query_key : 'id';\n this[key] = id;\n } \n if (this.id == null){\n this.id = this.getData4Key('id'); \n }\n }\n /**\n * This function returns the value of the content specified by \"key\" from {@link /classes/BasicResultBindingElement.html#data|data}.\n * \n * @param key the key that specifies the content\n *\n * @returns {any} the value of the content if key exists else null\n **/\n protected getData4Key(key: string): any {\n if (!this.data.hasOwnProperty(key)) {\n return null;\n }\n if (this.data[key].datatype == 'http://www.w3.org/2001/XMLSchema#boolean'){\n return JSON.parse(this.data[key].value);\n } else if (this.data[key].datatype == 'http://www.w3.org/2001/XMLSchema#integer'){\n return Number(this.data[key].value);\n }\n return this.data[key].value;\n }\n /**\n * This method returns the SPARQL query of this BasicResultBindingElement.\n * The query can be modified by providing an \"id\" and \"key\" such that every \"key\" in\n * the query will be replaced by \"id\".\n *\n * If \"key\" is omitted {@link /classes/BasicResultBindingElement.html#default_key|default_key} will be used.\n *\n * @param id will replace key in query\n * @param key will be replaced by id. \n **/\n public static getQuery(id?: string, key?: string): string {\n if (typeof(id) === 'undefined' || id === null || id == ''){\n return this.query;\n } else {\n if (key == null || key == ''){\n key = this.default_key;\n }\n let parser = new Parser();\n let sparqlGenerator = new Generator({});\n let parsedQuery = parser.parse(this.query)\n for (var k = 0; k < parsedQuery.where.length; k++){\n if (parsedQuery.where[k].patterns != undefined){\n for (var j = 0; j < parsedQuery.where[k].patterns.length; j++){\n if (parsedQuery.where[k].patterns[j].triples != undefined) {\n for (var i = 0; i < parsedQuery.where[k].patterns[j].triples.length; i++){\n if(parsedQuery.where[k].patterns[j].triples[i]['subject']['value'] == key){\n parsedQuery.where[k].patterns[j].triples[i]['subject'] = { termType: \"NamedNode\", value: id };\n } else if(parsedQuery.where[k].patterns[j].triples[i]['object']['value'] == key){\n parsedQuery.where[k].patterns[j].triples[i]['object'] = { termType: \"NamedNode\", value: id };\n } else if(parsedQuery.where[k].patterns[j].triples[i]['predicate']['value'] == key){\n parsedQuery.where[k].patterns[j].triples[i]['predicate'] = { termType: \"NamedNode\", value: id };\n }\n }\n }\n }\n } else if (parsedQuery.where[k].triples != undefined){\n for (var i = 0; i < parsedQuery.where[k].triples.length; i++){\n if(parsedQuery.where[k].triples[i]['subject']['value'] == key){\n parsedQuery.where[k].triples[i]['subject'] = { termType: \"NamedNode\", value: id };\n } else if (parsedQuery.where[k].triples[i]['object']['value'] == key){\n parsedQuery.where[k].triples[i]['object'] = { termType: \"NamedNode\", value: id };\n } else if (parsedQuery.where[k].triples[i]['predicate']['value'] == key){\n parsedQuery.where[k].triples[i]['predicate'] = { termType: \"NamedNode\", value: id };\n }\n }\n }\n }\n return sparqlGenerator.stringify(parsedQuery);\n }\n }\n public static getComplexQuery(keyIriMapping: KeyIriMapping[]): string {\n let parser = new Parser();\n let sparqlGenerator = new Generator({});\n let parsedQuery = parser.parse(this.query)\n for (let mapping of keyIriMapping){\n let key = mapping.key;\n let id = mapping.iri;\n for (var i = 0; i < parsedQuery.where[0].triples.length; i++){\n if(parsedQuery.where[0].triples[i]['subject']['value'] == key){\n parsedQuery.where[0].triples[i]['subject'] = { termType: \"NamedNode\", value: id };\n } else if (parsedQuery.where[0].triples[i]['object']['value'] == key){\n parsedQuery.where[0].triples[i]['object'] = { termType: \"NamedNode\", value: id };\n } else if (parsedQuery.where[0].triples[i]['predicate']['value'] == key){\n parsedQuery.where[0].triples[i]['predicate'] = { termType: \"NamedNode\", value: id };\n }\n }\n }\n return sparqlGenerator.stringify(parsedQuery);\n }\n\n /**\n * This function returns 'results.bindings' of {@link /interfaces/FusekiResults.html|FusekiResults}.\n **/\n public static getContent(data: FusekiResults): [] {\n return data['results']['bindings'];\n }\n /**\n * This static function instantiates the subclasses of {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement} from\n * the data retrieved by executing the query that is provided by {@link /classes/BasicResultBindingElement.html#getQuery|getQuery}.\n *\n * @param this a subclass of BasicResultBindingElement\n * @param data the fuseki result json\n * @param id the id that has been used in order to retrieve the data and that will identify the instantiation of the subclass.\n * @param service a means to communicate with the data holder.\n *\n * @returns Array of subclass instantiations\n **/\n public static convertData<T extends typeof BasicResultBindingElement>(this: T, data: FusekiResults, id?: string, service?: any): Array<InstanceType<T>> {\n let elements = []; \n let content = this.getContent(data);\n for (var i = 0; i < content.length; i++){\n let element = new this(content[i], id, service) as InstanceType<T>;\n elements.push(element);\n }\n return elements;\n }\n}\nexport class AskResult extends BasicResultBindingElement {\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n ASK { \n ?id a ?type.\n }`;\n\n public static getAnswer(answer: FusekiBoolean): boolean {\n return answer.boolean;\n }\n}\nexport class IsReconstructedKonvolut extends AskResult {\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n ASK { \n ?id a tln:ReconstructedKonvolut.\n }`;\n\n public static readonly query_key: string = 'id';\n}\n\n\n","import { BasicResultBindingElement } from './basic_datatype';\n/**\n * This is the 'earlier version' stub instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.\n * It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.\n **/\nexport class TlnEarlierVersionStub extends BasicResultBindingElement {\n /** \n * the internal default key for replacing {@link /classes/TlnWord.html#query|query} by \"id\"\n * in {@link /classes/TlnWord.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n static readonly default_key: string = 'word';\n /** \n * the public key for replacing {@link /classes/TlnWord.html#query|query} by \"id\".\n **/\n static readonly query_key: string = 'word';\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?text WHERE {\n ?word tln:wordHasEarlierVersion ?id.\n ?id tln:hasText ?text.\n }`;\n /**\n * text of earlier version\n **/\n text: string;\n \n /**\n * The constructor creates a datatype from the data.\n *\n * @param id if omitted the id will be retrieved from data\n **/\n constructor(data: any, id?: string, service?: any){\n super(data, id, service)\n this.text = this.getData4Key('text');\n }\n}\nexport class TlnOverwrittenStub extends TlnEarlierVersionStub {\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?text WHERE {\n ?word (tln:wordHasWordParts/rdf:rest*/rdf:first/tln:overwritesWord|tln:overwritesWord) ?id. \n ?id tln:hasText ?text.\n }`;\n}\n","import { TlnImage } from './image';\nimport { Copyright, Image } from '../models';\n/**\n * This is the faksimile image instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.\n * It extends {@link /classes/TlnImage.html|TlnImage}.\n **/\nexport class FaksimileImage extends TlnImage {\n /**\n * the SPARQL-query of this datatype\n **/\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n\n SELECT ?id ?filename ?URL ?secondaryURL ?width ?height ?t_left ?t_top ?t_width ?t_height ?page ?transform WHERE {\n ?id a tln:FaksimileImage;\n tln:hasFileName ?filename;\n tln:hasPrimaryurl ?URL;\n tln:hasSecondaryurl ?secondaryURL;\n tln:hasWidth ?width;\n tln:hasHeight ?height;\n tln:hasTextField ?textfield.\n ?textfield tln:hasLeft ?t_left;\n tln:hasTop ?t_top;\n tln:hasWidth ?t_width;\n tln:hasHeight ?t_height;\n ^tln:pageIsOnFaksimileTextField ?page.\n OPTIONAL { ?id tln:hasTransform ?transform. }\n }`;\n /**\n * Copyright information of image\n **/\n copyright: Copyright;\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.copyright = { \n originalUrl: 'http://www.nietzschesource.org/DFGA/' + this.filename.replace('.jpg', ''),\n licenseTextUrl: 'http://creativecommons.org/licenses/by-nc-nd/4.0/deed.de',\n license: 'CC BY-NC-ND 4.0',\n text: 'Dieses Faksimile wird von <a target=\"_new\" href=\"http://www.nietzschesource.org\">nietzschesource.org</a> gehostet und wird hier unver&auml;ndert dargestellt.'\n }\n }\n}\n","import { TlnPositionalObject } from './positional_object';\nimport { TextByForeignHand } from '../models';\n/**\n * This is the 'text by foreign hand' instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.\n * It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.\n **/\nexport class TlnTextByForeignHand extends TlnPositionalObject implements TextByForeignHand {\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?text ?pen ?left ?top ?width ?height ?transform WHERE {\n ?page tln:hasMarkForeignHands/rdf:rest*/rdf:first ?id.\n ?id tln:textOfForeignHands/tln:textHasContent ?text;\n tln:penOfForeignHands ?pen;\n tln:hasTranskriptionPosition ?tp.\n \t?tp tln:hasLeft ?left; tln:hasTop ?top; tln:hasWidth ?width; tln:hasHeight ?height.\n OPTIONAl { ?tp tln:hasTransform ?transform.}\n } `;\n /**\n * the text of this word\n **/\n text: string;\n /**\n * the text of this word as it has been edited by the editors.\n **/\n pen: string;\n \n /**\n * The constructor creates a datatype from the data.\n *\n * @param id if omitted the id will be retrieved from data\n **/\n constructor(data: any, id?: string, service?: any){\n super(data, id, service)\n this.text = this.getData4Key('text');\n this.pen = this.getData4Key('pen');\n }\n}\n/**\n * This is the faksimile text by foreign hand instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.\n * It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.\n **/\nexport class FaksimileTextByForeignHand extends TlnTextByForeignHand {\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?text ?pen ?left ?top ?width ?height ?transform WHERE {\n ?page tln:hasMarkForeignHands/rdf:rest*/rdf:first ?id.\n ?id tln:textOfForeignHands/tln:textHasContent ?text;\n tln:penOfForeignHands ?pen;\n tln:hasFaksimilePosition ?fp.\n \t?fp tln:hasLeft ?left; tln:hasTop ?top; tln:hasWidth ?width; tln:hasHeight ?height.\n OPTIONAl { ?fp tln:hasTransform ?transform.}\n } `;\n}\n","import { BasicResultBindingElement } from './basic_datatype';\nimport { Image, TextField} from '../models';\n\nexport class TlnImage extends BasicResultBindingElement implements Image {\n static readonly default_key: string = 'page';\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n\n SELECT ?id ?filename ?width ?height ?URL ?secondaryURL ?t_left ?t_top ?t_width ?t_height ?page ?transform WHERE {\n ?id a tln:Image;\n tln:hasPrimaryurl ?URL;\n tln:hasSecondaryurl ?secondaryURL;\n tln:hasFileName ?filename;\n tln:hasWidth ?width;\n tln:hasHeight ?height;\n tln:hasTextField ?textfield.\n ?textfield tln:hasLeft ?t_left;\n tln:hasTop ?t_top;\n tln:hasWidth ?t_width;\n tln:hasHeight ?t_height;\n ^tln:pageIsOnTextField ?page.\n OPTIONAL { ?id tln:hasTransform ?transform. }\n }`;\n filename: string;\n x: number;\n y: number;\n width: number;\n height: number;\n text_field: TextField;\n URL: string;\n secondaryURL: string;\n transform: string;\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.x = 0;\n this.y = 0;\n this.filename = this.getData4Key('filename');\n this.width = this.getData4Key('width');\n this.height = this.getData4Key('height');\n this.URL = this.getData4Key('URL');\n this.secondaryURL = this.getData4Key('secondaryURL');\n this.transform = this.getData4Key('transform')\n this.text_field = new TlnTextField(this.getData4Key('t_left'),\n this.getData4Key('t_top'),\n this.getData4Key('t_width'),\n this.getData4Key('t_height'));\n }\n}\n\nexport class TlnTextField implements TextField {\n left: number;\n top: number;\n width: number;\n height: number;\n bottom: number;\n \n constructor(left: number, top: number, width: number, height: number){\n this.left = left;\n this.top = top;\n this.width = width;\n this.height = height;\n }\n}\n","import { BasicResultBindingElement } from './basic_datatype';\nimport { Identifier, Line, LineStub, Manuscript, Page, Reference } from '../models';\n/**\n * This is the line instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.\n * It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.\n **/\nexport class TlnLine extends BasicResultBindingElement implements Line {\n /** \n * the internal default key for replacing {@link /classes/TlnLine.html#query|query} by \"id\"\n * in {@link /classes/TlnLine.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n static readonly default_key: string = 'page';\n static readonly use_id: boolean = true;\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?number ?top ?bottom \n ?pageNumber ?manuscriptId ?manuscriptTitle\n ?toLine ?toLineNumber ?toPage ?toPageNumber ?toManuscript ?toManuscriptTitle \n ?fromLine ?fromLineNumber ?fromPage ?fromPageNumber ?fromManuscript ?fromManuscriptTitle \n WHERE {\n ?page tln:hasLines/rdf:rest*/rdf:first ?id;\n tln:hasNumber ?pageNumber.\n ?id a tln:Line; tln:lineHasNumber ?number;\n tln:lineHasTopValueOnTranskription ?top;\n tln:lineHasBottomValueOnTranskription ?bottom.\n ?manuscriptId tln:hasPages/rdf:rest*/rdf:first ?page;\n tln:hasTitle ?manuscriptTitle.\n OPTIONAL { \n ?id tln:lineContinuesOn ?toLine.\n ?toLine tln:lineHasNumber ?toLineNumber.\n ?toPage tln:hasLines/rdf:rest*/rdf:first ?toLine; tln:hasNumber ?toPageNumber.\n ?toManuscript tln:hasPages/rdf:rest*/rdf:first ?toPage; tln:hasTitle ?toManuscriptTitle.\n }\n OPTIONAL { \n ?id ^tln:lineContinuesOn ?fromLine.\n ?fromLine tln:lineHasNumber ?fromLineNumber.\n ?fromPage tln:hasLines/rdf:rest*/rdf:first ?fromLine; tln:hasNumber ?fromPageNumber.\n ?fromManuscript tln:hasPages/rdf:rest*/rdf:first ?fromPage; tln:hasTitle ?fromManuscriptTitle.\n }\n } `;\n /** \n * the number of this line.\n **/\n number: number;\n /** \n * the public key for replacing {@link /classes/TlnLine.html#query|query} by \"id\".\n **/\n static readonly query_key: string = 'page';\n /** \n * the geometrical top position of this line.\n **/\n top: number;\n /** \n * the geometrical bottom position of this line.\n **/\n bottom: number;\n continuesFrom?: Reference;\n continuesTo?: Reference;\n source?: Reference;\n page?: string;\n\n /**\n * The constructor creates a datatype from the data.\n *\n * @param id if omitted the id will be retrieved from data\n **/\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.number = this.getData4Key('number');\n this.top = this.getData4Key('top');\n this.bottom = this.getData4Key('bottom');\n let pageNumber = this.getData4Key('pageNumber')\n let manuscriptTitle = this.getData4Key('manuscriptTitle')\n let continuesTo = this.getData4Key('toLine')\n let continuesFrom = this.getData4Key('fromLine')\n if (continuesTo != null){\n let manuscript: Manuscript = { id: this.getData4Key('toManuscript'), title: this.getData4Key('toManuscriptTitle') } \n let page: Page = { id: this.getData4Key('toPage'), number: this.getData4Key('toPageNumber') }\n let line: LineStub = { id: continuesTo, number: this.getData4Key('toLineNumber') }\n this.continuesTo = { manuscript: manuscript, page: page, line: line }\n }\n if (continuesFrom != null){\n let manuscript: Manuscript = { id: this.getData4Key('fromManuscript'), title: this.getData4Key('fromManuscriptTitle') } \n let page: Page = { id: this.getData4Key('fromPage'), number: this.getData4Key('fromPageNumber') }\n let line: LineStub = { id: continuesFrom, number: this.getData4Key('fromLineNumber') }\n this.continuesFrom = { manuscript: manuscript, page: page, line: line }\n }\n if (this.continuesFrom != null || this.continuesTo != null){\n let reference = (this.continuesTo != null) ? this.continuesTo : this.continuesFrom;\n let manuscript: Manuscript = (this.getData4Key('manuscriptId') == reference.manuscript.id) ? null :\n { id: this.getData4Key('manuscriptId'), title: this.getData4Key('manuscriptTitle') }\n let page: Page = (this.page == reference.page.id) ? null:\n { id: this.page, number: this.getData4Key('pageNumber') }\n this.source = { manuscript: manuscript, page: page, line: { id: this.id, number: this.number } }\n }\n }\n}\n/**\n * This is the faksimile line instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.\n * It extends {@link /classes/TlnLine.html|TlnLine}.\n **/\nexport class FaksimileLine extends TlnLine implements Line {\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?number ?top ?bottom\n ?pageNumber ?manuscriptId ?manuscriptTitle\n ?toLine ?toLineNumber ?toPage ?toPageNumber ?toManuscript ?toManuscriptTitle \n ?fromLine ?fromLineNumber ?fromPage ?fromPageNumber ?fromManuscript ?fromManuscriptTitle \n WHERE {\n ?page tln:hasLines/rdf:rest*/rdf:first ?id;\n tln:hasNumber ?pageNumber.\n ?id a tln:Line; tln:lineHasNumber ?number;\n tln:lineHasInnerTopValueOnFaksimile ?top;\n tln:lineHasInnerBottomValueOnFaksimile ?i_bottom.\n ?manuscriptId tln:hasPages/rdf:rest*/rdf:first ?page;\n tln:hasTitle ?manuscriptTitle.\n BIND( (?top+?i_bottom)/2 as ?bottom).\n OPTIONAL { \n ?id tln:lineContinuesOn ?toLine.\n ?toLine tln:lineHasNumber ?toLineNumber.\n ?toPage tln:hasLines/rdf:rest*/rdf:first ?toLine; tln:hasNumber ?toPageNumber.\n ?toManuscript tln:hasPages/rdf:rest*/rdf:first ?toPage; tln:hasTitle ?toManuscriptTitle.\n }\n OPTIONAL { \n ?id ^tln:lineContinuesOn ?fromLine.\n ?fromLine tln:lineHasNumber ?fromLineNumber.\n ?fromPage tln:hasLines/rdf:rest*/rdf:first ?fromLine; tln:hasNumber ?fromPageNumber.\n ?fromManuscript tln:hasPages/rdf:rest*/rdf:first ?fromPage; tln:hasTitle ?fromManuscriptTitle.\n }\n } `;\n}\n","import { BasicResultBindingElement } from './basic_datatype';\nimport { Identifier, LineStub, Manuscript, Page, Reference} from '../models';\n\nexport class TlnLineReference extends BasicResultBindingElement implements Reference {\n /** \n * the internal default key for replacing {@link /classes/TlnLine.html#query|query} by \"id\"\n * in {@link /classes/TlnLine.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n static readonly default_key: string = 'page';\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?page ?page_id ?manuscript ?title ?line_number WHERE {\n ?id a tln:Line; tln:lineHasNumber ?line_number.\n ?page_id tln:hasLines/rdf:rest*/rdf:first ?id; tln:hasNumber ?page.\n ?manuscript tln:hasPages/rdf:rest*/rdf:first ?page_id; tln:hasTitle ?title.\n } `;\n /** \n * the public key for replacing {@link /classes/TlnLine.html#query|query} by \"id\".\n **/\n static readonly query_key: string = 'id';\n /** \n * the manuscript.\n **/\n manuscript: Manuscript;\n /** \n * the line.\n **/\n line: LineStub;\n /**\n * the page.\n **/\n page: Page;\n\n /**\n * The constructor creates a datatype from the data.\n *\n * @param id if omitted the id will be retrieved from data\n **/\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.line = { id: this.id, number: this.getData4Key('line_number') }\n this.page = { id: this.getData4Key('page_id'), number: this.getData4Key('page') }\n this.manuscript = { id: this.getData4Key('manuscript'), title: this.getData4Key('title') }\n }\n}\n\n","import { BasicResultBindingElement, FusekiResults } from './basic_datatype';\nimport { Manuscript, Page } from '../models';\nimport { TlnPositionalStyleMarkup } from './positional-markup';\nimport { PageStub, TlnPage } from './page';\n\nexport class ManuscriptStub extends BasicResultBindingElement implements Manuscript {\n static readonly query: string = `\n PREFIX data: <http://rdfh.ch/projects/0068#>\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n\n SELECT ?id ?title ?type WHERE {\n ?id a tln:ArchivalManuscriptUnity ;\n tln:hasTitle ?title;\n tln:hasManuscriptType ?type.\n }`;\n title: string;\n type: string;\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.title = this.getData4Key('title'); \n this.type = this.getData4Key('type');\n }\n}\nexport class TlnExtManuscript extends ManuscriptStub {\n /** \n * the internal default key for replacing {@link /classes/TlnLine.html#query|query} by \"id\"\n * in {@link /classes/TlnLine.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n static readonly default_key: string = 'manuscript';\n static readonly query: string = `\n PREFIX data: <http://rdfh.ch/projects/0068#>\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n PREFIX stoff: <http://www.nie.org/ontology/standoff#>\n\n SELECT DISTINCT ?gsaSignature ?title ?thumbImage ?type ?archivalicSignature WHERE {\n ?manuscript tln:hasPages/rdf:first/tln:hasFaksimileImage/tln:hasThumburl ?thumbImage;\n tln:hasGsaSignature ?gsaSignature;\n tln:hasTitle ?title;\n tln:hasManuscriptType ?type. \n OPTIONAL {\n ?manuscript tln:hasArchivalicSignature ?archivalicSignature. \n }\n }`;\n /** \n * the public key for replacing {@link /classes/TlnLine.html#query|query} by \"id\".\n **/\n static readonly query_key: string = 'manuscript';\n thumbImage: string;\n gsaSignature?: string;\n archivalicSignature?: string;\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.thumbImage = this.getData4Key('thumbImage');\n this.gsaSignature = this.getData4Key('gsaSignature');\n this.archivalicSignature = this.getData4Key('archivalicSignature');\n }\n}\nexport class ReconstructedKonvolut extends ManuscriptStub {\n /** \n * the internal default key for replacing {@link /classes/TlnLine.html#query|query} by \"id\"\n * in {@link /classes/TlnLine.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n static readonly default_key: string = 'manuscript';\n static readonly query: string = `\n PREFIX data: <http://rdfh.ch/projects/0068#>\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n PREFIX stoff: <http://www.nie.org/ontology/standoff#>\n\n SELECT DISTINCT ?id ?manuscriptTitle ?title ?type ?page ?number ?description WHERE {\n ?manuscript tln:partsBelongToReconstructedKonvolut ?id. \n ?id tln:hasTitle ?manuscriptTitle;\n tln:hasDescription/tln:textHasContent ?description;\n tln:hasManuscriptType ?type;\n tln:hasPages/rdf:rest*/rdf:first ?page. \n OPTIONAL { ?page tln:hasNumber ?number.}\n OPTIONAL { \n ?archivalicUnity a tln:ArchivalManuscriptUnity;\n tln:hasPages/rdf:rest*/rdf:first ?page;\n tln:hasTitle ?title.\n }\n }`;\n /** \n * the public key for replacing {@link /classes/TlnLine.html#query|query} by \"id\".\n **/\n static readonly query_key: string = 'manuscript';\n pages: Page[] = [];\n description: string;\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.title = this.getData4Key('manuscriptTitle');\n this.description = this.getData4Key('description');\n }\n public static convertData<T extends typeof BasicResultBindingElement>(this: T, data: FusekiResults, id?: string, service?: any): Array<InstanceType<T>> {\n let elements = []; \n let content = this.getContent(data);\n for (var i = 0; i < content.length; i++){\n let element = new ReconstructedKonvolut(content[i], id, service);\n let pages = [];\n if (content[i]['page'] != undefined && content[i]['page'] != null){\n pages = (content[i]['title'] != undefined && content[i]['title'] != null) \n ? TlnPage.convertData({ head: { vars: []}, results: { bindings: <any>[ content[i] ] } }, content[i]['page']['value']) \n : PageStub.convertData({ head: { vars: []}, results: { bindings: <any>[ content[i] ] } }, content[i]['page']['value']);\n }\n if (elements.length > 0 && elements[elements.length-1].id == element.id){\n if (pages.length > 0){\n elements[elements.length-1].pages.push(pages[0]);\n }\n } else {\n if (pages.length > 0){\n element.pages.push(pages[0]);\n }\n elements.push(element)\n }\n }\n //console.log(elements)\n return elements;\n }\n\n}\nexport class ManuscriptDescription extends BasicResultBindingElement {\n /** \n * the internal default key for replacing {@link /classes/TlnLine.html#query|query} by \"id\"\n * in {@link /classes/TlnLine.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n static readonly default_key: string = 'manuscript';\n static readonly query: string = `\n PREFIX data: <http://rdfh.ch/projects/0068#>\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n PREFIX stoff: <http://www.nie.org/ontology/standoff#>\n\n SELECT DISTINCT ?id ?text ?description_markup ?cssStyleTag ?startIndex ?endIndex WHERE {\n ?manuscript tln:hasDescription ?id.\n ?id tln:textHasContent ?text.\n OPTIONAL { ?id tln:textHasMarkup ?description_markup.\n ?description_markup stoff:hasCSS ?cssStyleTag;\n stoff:standoffMarkupHasStartIndex ?startIndex;\n stoff:standoffMarkupHasEndIndex ?endIndex.}\n }`;\n /** \n * the public key for replacing {@link /classes/TlnLine.html#query|query} by \"id\".\n **/\n static readonly query_key: string = 'manuscript';\n text: string;\n markups: TlnPositionalStyleMarkup[];\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.text = this.getData4Key('text');\n this.markups = [];\n }\n public static convertData<T extends typeof BasicResultBindingElement>(this: T, data: FusekiResults, id?: string, service?: any): Array<InstanceType<T>> {\n let elements = []; \n let content = this.getContent(data);\n for (var i = 0; i < content.length; i++){\n let element = new ManuscriptDescription(content[i], id, service);\n let markups = (content[i]['description_markup'] != undefined && content[i]['description_markup'] != null) ? \n TlnPositionalStyleMarkup.convertData({ head: { vars: []}, results: { bindings: <any>[ content[i] ] } }, content[i]['description_markup']['value']) : [];\n if (elements.length > 0 && elements[elements.length-1].id == element.id){\n if (markups.length > 0){\n elements[elements.length-1].markups.push(markups[0]);\n }\n } else {\n if (markups.length > 0){\n element.markups.push(markups[0]);\n }\n elements.push(element)\n }\n }\n //console.log(elements)\n return elements;\n }\n}\nexport class ManuscriptEarlierDescription extends BasicResultBindingElement {\n /** \n * the internal default key for replacing {@link /classes/TlnLine.html#query|query} by \"id\"\n * in {@link /classes/TlnLine.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n static readonly default_key: string = 'manuscript';\n static readonly query: string = `\n PREFIX data: <http://rdfh.ch/projects/0068#>\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX stoff: <http://www.nie.org/ontology/standoff#>\n\n SELECT ?id ?text ?author ?citation ?description_markup ?cssStyleTag ?startIndex ?endIndex WHERE {\n ?manuscript tln:hasEarlierDescriptions ?id. \n ?id tln:textHasContent ?text;\n tln:hasAuthor ?author;\n tln:hasCitation ?citation.\n OPTIONAL { ?id tln:textHasMarkup ?description_markup.\n ?description_markup stoff:hasCSS ?cssStyleTag;\n stoff:standoffMarkupHasStartIndex ?startIndex;\n stoff:standoffMarkupHasEndIndex ?endIndex.}\n }`;\n /** \n * the public key for replacing {@link /classes/TlnLine.html#query|query} by \"id\".\n **/\n static readonly query_key: string = 'manuscript';\n text: string;\n author: string;\n citation: string;\n markups: TlnPositionalStyleMarkup[];\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.text = this.getData4Key('text');\n this.author = this.getData4Key('author');\n this.citation = this.getData4Key('citation');\n this.markups = [];\n }\n public static convertData<T extends typeof BasicResultBindingElement>(this: T, data: FusekiResults, id?: string, service?: any): Array<InstanceType<T>> {\n let elements = []; \n let content = this.getContent(data);\n for (var i = 0; i < content.length; i++){\n let element = new ManuscriptEarlierDescription(content[i], id, service);\n let markups = (content[i]['description_markup'] != undefined && content[i]['description_markup'] != null) ? \n TlnPositionalStyleMarkup.convertData({ head: { vars: []}, results: { bindings: <any>[ content[i] ] } }, content[i]['description_markup']['value']) : [];\n if (elements.length > 0 && elements[elements.length-1].id == element.id){\n if (markups.length > 0){\n elements[elements.length-1].markups.push(markups[0]);\n }\n } else {\n if (markups.length > 0){\n element.markups.push(markups[0]);\n }\n elements.push(element)\n }\n }\n //console.log(elements)\n return elements;\n }\n}\n","import { BasicResultBindingElement } from './basic_datatype';\nimport { ManuscriptUnity, NavigationPage } from '../models';\n\nexport class TlnManuscriptUnity extends BasicResultBindingElement implements ManuscriptUnity {\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n PREFIX list: <http://jena.apache.org/ARQ/list#>\n\n SELECT ?title ?numberOfPages ?firstItem ?firstNumber ?lastItem ?lastNumber WHERE {\n ?id a tln:ManuscriptUnity;\n tln:hasTitle ?title;\n tln:hasPages ?list.\n ?list list:length ?numberOfPages;\n rdf:first ?firstItem;\n rdf:rest* ?lastNode.\n ?lastNode rdf:first ?lastItem;\n rdf:rest rdf:nil.\n ?firstItem tln:hasNumber ?firstNumber.\n ?lastItem tln:hasNumber ?lastNumber.\n }`;\n static readonly query_key: string = 'id';\n title: string;\n numberOfPages: number;\n firstPage: NavigationPage;\n lastPage: NavigationPage;\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.title = this.getData4Key('title');\n this.numberOfPages = this.getData4Key('numberOfPages')\n this.firstPage = { id: this.getData4Key('firstItem'), number: this.getData4Key('firstNumber'), title: this.title, index: 1 };\n this.lastPage = { id: this.getData4Key('lastItem'), number: this.getData4Key('lastNumber'), title: this.title, index: this.numberOfPages };\n }\n}\n\nexport class TlnNavigationPage extends BasicResultBindingElement {\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n PREFIX list: <http://jena.apache.org/ARQ/list#>\n\n SELECT ?title ?number ?previous ?previousNumber ?next ?nextNumber ?previousIndex ?nextIndex WHERE {\n ?id tln:hasNumber ?number.\n ?unity a tln:ArchivalManuscriptUnity;\n tln:hasTitle ?title;\n tln:hasPages ?list.\n ?list rdf:rest* ?node.\n ?node rdf:first ?id.\n OPTIONAL { ?node ^rdf:rest/rdf:first ?previous.\n ?previous tln:hasNumber ?previousNumber.\n ?list list:index (?previousIndex ?previous);\n }\n OPTIONAL { ?node rdf:rest/rdf:first ?next.\n ?next tln:hasNumber ?nextNumber.\n ?list list:index (?nextIndex ?next);\n }\n }`;\n static readonly query_key: string = 'id';\n title: string; \n number: string;\n previous?: NavigationPage;\n next?: NavigationPage;\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.title = this.getData4Key('title');\n this.number = this.getData4Key('number');\n let previous = this.getData4Key('previous');\n let next = this.getData4Key('next');\n if (previous != null){\n this.previous = { id: previous, number: this.getData4Key('previousNumber'), title: this.title, index: this.getData4Key('previousIndex')+1 };\n }\n if (next != null){\n this.next = { id: next, number: this.getData4Key('nextNumber'), title: this.title, index: this.getData4Key('nextIndex')+1 };\n }\n }\n}\n\n","import { BasicResultBindingElement } from './basic_datatype';\nimport { Page} from '../models';\n\nexport class PageStub extends BasicResultBindingElement implements Page {\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?number WHERE {\n ?manuscript a tln:ArchivalManuscriptUnity;\n tln:hasPages/rdf:rest*/rdf:first ?id.\n ?id tln:hasNumber ?number.\n FILTER EXISTS { ?id tln:hasImage ?image }\n }`;\n static readonly query_key: string = 'manuscript';\n number: string;\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.number = this.getData4Key('number');\n }\n}\nexport class TlnPage extends PageStub {\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?title ?number ?manuscript WHERE {\n ?manuscript a tln:ArchivalManuscriptUnity;\n tln:hasTitle ?title;\n tln:hasPages/rdf:rest*/rdf:first ?id.\n ?id a tln:Page; tln:hasNumber ?number.\n }`;\n static readonly query_key: string = 'id';\n title: string; \n manuscript: string;\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.title = this.getData4Key('title');\n this.manuscript = this.getData4Key('manuscript');\n if (this.service != null) {\n this.service.setCurrentIri(this.id, this.manuscript);\n //this.service.setTitle(this.title + \", \" + this.number);\n }\n }\n}\n\n","import { BasicResultBindingElement } from './basic_datatype';\n/**\n * This is the line instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.\n * It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.\n **/\nexport class TlnPositionalStyleMarkup extends BasicResultBindingElement {\n /** \n * the internal default key for replacing {@link /classes/TlnLine.html#query|query} by \"id\"\n * in {@link /classes/TlnLine.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n static readonly default_key: string = 'word';\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX homotypic: <http://www.nie.org/ontology/homotypic#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n PREFIX stoff: <http://www.nie.org/ontology/standoff#>\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n\n SELECT ?id ?cssStyleTag ?startIndex ?endIndex WHERE {\n ?word homotypic:hasMarkup ?id. \n ?id stoff:hasCSS ?cssStyleTag;\n stoff:standoffMarkupHasStartIndex ?startIndex;\n stoff:standoffMarkupHasEndIndex ?endIndex.\n } `;\n /**\n * one or multiple css style tags like 'font-weight: bold;' or 'font-weight: bold; font-style: italic'\n **/\n cssStyleTag: string;\n /** \n * character where the style ends.\n **/\n endIndex: number; // character where the style/class ends\n /** \n * standoff type: 0 === markup via css tag; 1 === apply css class\n **/\n sType: number = 0;\n /** \n * character where the style starts.\n **/\n startIndex: number;\n static readonly query_key: string = 'word';\n\n /**\n * The constructor creates a datatype from the data.\n *\n * @param id if omitted the id will be retrieved from data\n **/\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.cssStyleTag = this.getData4Key('cssStyleTag');\n this.endIndex = this.getData4Key('endIndex');\n this.startIndex = this.getData4Key('startIndex');\n }\n}\n\nexport class TlnFilteredPositionalStyleMarkup extends TlnPositionalStyleMarkup {\n protected readonly regex: RegExp = new RegExp('font-size:[0-9]\\+%[;]*');\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.cssStyleTag = this.cssStyleTag.replace(this.regex,'') + 'filter: invert(1);';\n }\n}\n","import { BasicResultBindingElement } from './basic_datatype';\nimport { PositionalObject } from '../models';\n/**\n * This is the 'text by foreign hand' instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.\n * It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.\n **/\nexport class TlnPositionalObject extends BasicResultBindingElement implements PositionalObject {\n /** \n * the internal default key for replacing {@link /classes/TlnWord.html#query|query} by \"id\"\n * in {@link /classes/TlnWord.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n static readonly default_key: string = 'page';\n /** \n * the public key for replacing {@link /classes/TlnWord.html#query|query} by \"id\".\n **/\n static readonly query_key: string = 'page';\n /**\n * the geometrical left position of this word's rect.\n **/\n left: number;\n /**\n * the geometrical top position of this word's rect.\n **/\n top: number;\n /**\n * the width of this word's rect.\n **/\n width: number;\n /**\n * the height of this word's rect.\n **/\n height: number;\n /** \n * the matrix transformation string of the geometrical position of this word's rect.\n * */\n transform?: string;\n \n /**\n * The constructor creates a datatype from the data.\n *\n * @param id if omitted the id will be retrieved from data\n **/\n constructor(data: any, id?: string, service?: any){\n super(data, id, service)\n this.left = this.getData4Key('left');\n this.top = this.getData4Key('top');\n this.width = this.getData4Key('width');\n this.height = this.getData4Key('height');\n this.transform = this.getData4Key('transform');\n }\n}\n","import { BasicResultBindingElement, FusekiResults } from './basic_datatype';\nimport { TlnWord } from './word';\nimport { TlnPositionalStyleMarkup, TlnFilteredPositionalStyleMarkup } from './positional-markup';\n\nexport class TlnPreviewWord extends TlnWord {\n /** \n * the internal default key for replacing {@link /classes/TlnLine.html#query|query} by \"id\"\n * in {@link /classes/TlnLine.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n static readonly default_key: string = 'line';\n static readonly query_key: string = 'line';\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX homotypic: <http://www.nie.org/ontology/homotypic#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n PREFIX stoff: <http://www.nie.org/ontology/standoff#>\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n\n SELECT DISTINCT ?id ?text ?markup_id ?cssStyleTag ?startIndex ?endIndex ?left ?top ?earlier_version WHERE {\n ?id a tln:Word; \n tln:wordBelongsToLine ?line; \n tln:hasTranskriptionPosition/tln:hasLeft ?left;\n tln:hasTranskriptionPosition/tln:hasTop ?top;\n tln:hasText ?text;\n homotypic:hasMarkup ?markup_id. \n ?markup_id stoff:hasCSS ?cssStyleTag;\n stoff:standoffMarkupHasStartIndex ?startIndex;\n stoff:standoffMarkupHasEndIndex ?endIndex.\n\n FILTER(NOT EXISTS {?word tln:wordHasWordParts/rdf:rest*/rdf:first ?id})\n FILTER(NOT EXISTS {?word (tln:wordHasEarlierVersion|tln:overwritesWord) ?id})\n OPTIONAL { ?id (tln:wordHasEarlierVersion|tln:overwritesWord)/tln:hasText ?earlier_version}\n }`;\n earlier_version?: string;\n left: number;\n top: number;\n markups: TlnPositionalStyleMarkup[] = [];\n /**\n * The constructor creates a datatype from the data.\n *\n * @param id if omitted the id will be retrieved from data\n **/\n constructor(data: any, id?: string, service?: any){\n super(data, id, service)\n this.earlier_version = this.getData4Key('earlier_version')\n this.left = this.getData4Key('left')\n this.top = this.getData4Key('top')\n }\n public static convertData<T extends typeof BasicResultBindingElement>(this: T, data: FusekiResults, id?: string, service?: any): Array<InstanceType<T>> {\n let elements = []; \n let content = this.getContent(data);\n for (var i = 0; i < content.length; i++){\n let element = new TlnPreviewWord(content[i], id, service);\n element.markups = TlnFilteredPositionalStyleMarkup.convertData({ head: { vars: []}, results: { bindings: <any>[ content[i] ] } }, content[i]['markup_id'])\n if (elements.length > 0 && element.id == elements[elements.length-1].id){\n elements[elements.length-1].markups.push(element.markups[0])\n if (element.top < elements[elements.length-1].top && element.left < elements[elements.length-1].left){\n elements[elements.length-1].left = element.left;\n }\n } else {\n elements.push(element);\n }\n }\n elements.sort((w0: TlnPreviewWord, w1: TlnPreviewWord)=>{\n return w0.left - w1.left\n })\n return elements;\n }\n}\n","import { BasicResultBindingElement, FusekiResults} from './basic_datatype';\nimport { TlnWord } from './word';\nexport class TlnExtWord extends TlnWord {\n startLine?: string; \n endLine?: string;\n\n constructor(data: any, id?: string, service?: any){\n super(data, id, service)\n this.startLine = this.getData4Key('startLine');\n this.endLine = this.getData4Key('endLine');\n }\n}\nexport class PageResult {\n words: TlnExtWord[] = [];\n\n constructor(words: TlnExtWord[]){\n this.words = words;\n }\n public getWords(): string[] {\n return this.words.map(word =>word.id);\n }\n public getStartLine(): string {\n let sortedWords = this.words.sort((word0, word1) =>word0.line_number - word1.line_number)\n if (sortedWords.length == 0){\n return '';\n }\n return (sortedWords[0].startLine != undefined && sortedWords[0].startLine != null) ? sortedWords[0].startLine : sortedWords[0].line;\n }\n public getEndLine(): string {\n let sortedWords = this.words.sort((word0, word1) =>word0.line_number - word1.line_number)\n if (sortedWords.length == 0){\n return '';\n }\n return (sortedWords[sortedWords.length-1].endLine != undefined && sortedWords[sortedWords.length-1].endLine != null) \n ? sortedWords[sortedWords.length-1].endLine : sortedWords[sortedWords.length-1].line;\n }\n}\n\nexport class FoundPage extends BasicResultBindingElement{\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT DISTINCT ?id ?manuscript ?title ?number ?word ?text ?line ?line_number ?startLine ?endLine WHERE {\n ?id a tln:Page;\n tln:hasNumber ?number; \n tln:hasPseudoText ?fulltext.\n FILTER regex(?fulltext, \"#find#\", \"s\").\n ?manuscript a tln:ArchivalManuscriptUnity;\n tln:hasManuscriptType \"Mappe\";\n tln:hasPages/rdf:rest*/rdf:first ?id;\n tln:hasTitle ?title.\n ?id tln:hasWords/rdf:rest*/rdf:first ?word.\n ?word tln:hasOutputText ?text;\n tln:wordBelongsToLine ?line.\n ?line tln:lineHasNumber ?line_number.\n OPTIONAL{ ?previouseNode rdf:rest/rdf:first ?line;\n rdf:first ?startLine.}\n OPTIONAL{ ?myNode rdf:first ?line;\n rdf:rest/rdf:first ?endLine.}\n #FILTER().\n } order by ?id ?line_number`;\n title: string\n number: string;\n manuscript: string\n results: PageResult[] = [];\n\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.title = this.getData4Key('title'); \n this.number = this.getData4Key('number');\n this.manuscript = this.getData4Key('manuscript');\n }\n public removeIncompleteResults(searchTerms: string[]) {\n this.results = this.results.filter(result =>searchTerms.every(searchText =>result.words.filter(word =>word.text.match('^[^\\w\\s]*' + searchText + '.*')).length > 0))\n }\n /**\n * This method returns the parametrized SPARQL query of this FoundPage\n *\n * If \"key\" is omitted {@link /classes/BasicResultBindingElement.html#default_key|default_key} will be used.\n *\n * @param find the search text\n * @param key will be ignored. \n **/\n public static getQuery(find?: string, key?: string): string {\n if(find == undefined || find == null){\n return this.query;\n }\n let words = find.split(' ')\n let find_regex = words.join('.*') + '.*'\n let filter = 'FILTER regex(?text, \"^[^\\\\\\\\w]?(' + words.join('.*|') + '.*)\")';\n let query = this.query.replace('#find#', find_regex).replace('#FILTER()', filter);\n //console.log(query);\n return query;\n }\n public static convertData<T extends typeof BasicResultBindingElement>(this: T, data: FusekiResults, id?: string, service?: any): Array<InstanceType<T>> {\n let elements = []; \n let pages = []; \n let searchTerms = service.getSearchTerms();\n let content = this.getContent(data);\n let currentResult: PageResult = null;\n let currentPage: FoundPage = null;\n for (var i = 0; i < content.length; i++){\n let page = new FoundPage(content[i], id, service);\n if(content[i]['word'] != undefined && content[i]['word'] != null) { \n let words = TlnExtWord.convertData({ head: { vars: []}, results: { bindings: <any>[ content[i] ] } }, content[i]['word']['value']);\n if (pages.length == 0 || pages.map(page =>page.id).indexOf(page.id) == -1){\n currentResult = new PageResult(words);\n currentPage = page;\n currentPage.results.push(currentResult)\n pages.push(currentPage)\n } else {\n if (currentResult.words.indexOf(words[0]) == -1){\n if (currentResult.words.length > 0 \n && (Math.abs(Math.min(...currentResult.words.map(word =>word.line_number)) - words[0].line_number) > 4\n || Math.abs(Math.max(...currentResult.words.map(word =>word.line_number)) - words[0].line_number) > 4)){\n currentResult = new PageResult(words);\n currentPage.results.push(currentResult);\n } else {\n currentResult.words.push(words[0]);\n }\n }\n }\n }\n }\n pages.forEach(page =>page.removeIncompleteResults(searchTerms));\n return pages.filter(page =>page.results.length > 0);\n }\n}\n","import { TlnImage } from './image';\nimport { Image } from '../models';\n\nexport class SVGImage extends TlnImage {\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n\n SELECT ?id ?filename ?width ?height ?URL ?secondaryURL ?t_left ?t_top ?t_width ?t_height ?page WHERE {\n ?id a tln:SVGImage;\n tln:hasPrimaryurl ?URL;\n tln:hasSecondaryurl ?secondaryURL;\n tln:hasFileName ?filename;\n tln:hasWidth ?width;\n tln:hasHeight ?height;\n tln:hasTextField ?textfield.\n ?textfield tln:hasLeft ?t_left;\n tln:hasTop ?t_top;\n tln:hasWidth ?t_width;\n tln:hasHeight ?t_height;\n ^tln:pageIsOnTextField ?page.\n }`;\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.x = this.text_field.left;\n this.y = this.text_field.top;\n }\n}\nexport class SVGImageClip extends SVGImage {\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?filename ?width ?height ?URL ?secondaryURL ?t_left ?t_top ?t_width ?t_height ?page ?y ?end_bottom WHERE {\n ?id a tln:SVGImage;\n tln:hasPrimaryurl ?URL;\n tln:hasSecondaryurl ?secondaryURL;\n tln:hasFileName ?filename;\n tln:hasWidth ?width;\n tln:hasHeight ?height;\n tln:hasTextField ?textfield.\n ?textfield tln:hasLeft ?t_left;\n tln:hasTop ?y;\n tln:hasWidth ?t_width;\n ^tln:pageIsOnTextField ?page.\n ?page tln:hasLines ?lines.\n ?lines rdf:rest* ?start_node;\n rdf:rest* ?end_node.\n ?start_node rdf:first ?startLine;.\n ?end_node rdf:first ?endLine;.\n ?startLine tln:lineHasTopValueOnTranskription ?start_top.\n ?endLine tln:lineHasBottomValueOnTranskription ?end_bottom.\n OPTIONAL { ?start_node ^rdf:rest/rdf:first ?previousLine.\n ?previousLine tln:lineHasBottomValueOnTranskription ?previous_bottom. \n }\n OPTIONAL { ?end_node rdf:rest/rdf:first/rdf:rest/rdf:first ?nextLine.\n ?nextLine tln:lineHasTopValueOnTranskription ?next_top. \n }\n BIND(IF(bound(?previous_bottom), ?previous_bottom+1, ?start_top - 5) as ?t_top)\n BIND(IF(bound(?next_top), ?next_top-?t_top, ?end_bottom - ?t_top + 10) as ?t_height)\n }`;\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.y = this.getData4Key('y');\n }\n}\n","import { FusekiResults, BasicResultBindingElement } from './basic_datatype';\nimport { TextGeneticOrder, TextUnity, TextVersion } from '../models';\nimport { PageStub } from './page';\nexport class TlnTextVersion extends BasicResultBindingElement implements TextVersion {\n id: string;\n title: string; \n extUrl?: string;\n manuscript?: string;\n textUnities: TlnTextUnity[] = [];\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.title = this.getData4Key('title');\n this.extUrl = this.getData4Key('extUrl');\n this.manuscript = this.getData4Key('manuscript');\n }\n}\nexport class TlnTextUnity extends BasicResultBindingElement implements TextUnity {\n number: string;\n startLine?: number;\n endLine?: number;\n belongsToPage?: string;\n endLineIri?: string;\n startLineIri? : string;\n hasFaksimileImage?: boolean;\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.number = this.getData4Key('number');\n this.startLine = this.getData4Key('startLine');\n this.endLine = this.getData4Key('endLine');\n this.belongsToPage = this.getData4Key('text_page');\n this.startLineIri = this.getData4Key('startLineIri');\n this.endLineIri = this.getData4Key('endLineIri');\n this.hasFaksimileImage = this.getData4Key('hasFaksimileImage');\n }\n}\n/**\n * This is the text version instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.\n * It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.\n **/\nexport class TlnTextGeneticOrder extends BasicResultBindingElement implements TextGeneticOrder {\n /** \n * the internal default key for replacing {@link /classes/TlnLine.html#query|query} by \"id\"\n * in {@link /classes/TlnLine.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n static readonly default_key: string = 'page';\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n \n SELECT distinct ?id ?text_version ?text_unity ?text_page ?number ?startLine ?endLine ?title WHERE {\n {?version a tln:IdentifiedTextVersion;\n \t\t tln:identifiesAsVersion/rdf:rest*/rdf:first ?page.\n } UNION {\n ?version a tln:IdentifiedTextVersion;\n \t\t tln:identifiesAsVersion/rdf:rest*/rdf:first/tln:belongsToPage ?page.\n }\n ?id tln:hasGeneticOrder/rdf:rest*/rdf:first ?version;\n tln:hasGeneticOrder/rdf:rest*/rdf:first ?text_version.\n \n OPTIONAL { ?text_version tln:identifiesAsVersion/rdf:rest*/rdf:first ?text_unity.\n OPTIONAL { ?text_unity tln:hasNumber ?number.\n ?manuscript a tln:ArchivalManuscriptUnity;\n tln:hasTitle ?title;\n tln:hasPages/rdf:rest*/rdf:first ?text_unity.\n }\n OPTIONAL { ?text_unity tln:belongsToPage ?text_page; \n tln:startLine/tln:lineHasNumber?startLine;\n tln:endLine/tln:lineHasNumber ?endLine.\n \t\t\t ?text_page tln:hasNumber ?number.\n \t\t\t ?manuscript a tln:ArchivalManuscriptUnity;\n tln:hasTitle ?title;\n tln:hasPages/rdf:rest*/rdf:first ?text_page.\n }\n }\n OPTIONAL { ?text_version tln:textUnitHasTitle ?title.}\n }`;\n /** \n * the public key for replacing {@link /classes/TlnLine.html#query|query} by \"id\".\n **/\n static readonly query_key: string = 'page';\n textVersions: TlnTextVersion[] = []; \n\n /**\n * The constructor creates a datatype from the data.\n *\n * @param id if omitted the id will be retrieved from data\n **/\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n }\n public static convertData<T extends typeof BasicResultBindingElement>(this: T, data: FusekiResults, id?: string, service?: any): Array<InstanceType<T>> {\n let elements = []; \n let content = this.getContent(data);\n for (var i = 0; i < content.length; i++){\n let element = new TlnTextGeneticOrder(content[i], service);\n let versions = TlnTextVersion.convertData({ head: { vars: []}, results: { bindings: <any>[ content[i] ] } }, content[i]['text_version']['value'])\n let text_unities = (content[i]['text_unity'] != undefined) ? \n TlnTextUnity.convertData({ head: { vars: []}, results: { bindings: <any>[ content[i] ] } }, content[i]['text_unity']['value']) : [];\n /*if (text_unities.length > 0){\n console.log(text_unities[0]);\n }*/\n if (elements.length > 0 && elements[elements.length-1].id == element.id){\n if (elements[elements.length-1].textVersions.length > 0 \n && elements[elements.length-1].textVersions[elements[elements.length-1].textVersions.length-1].id == versions[0].id){\n if (text_unities.length > 0){\n elements[elements.length-1].textVersions[elements[elements.length-1].textVersions.length-1].textUnities.push(text_unities[0]);\n }\n } else {\n if (text_unities.length > 0){\n versions[0].textUnities.push(text_unities[0])\n }\n elements[elements.length-1].textVersions.push(versions[0]);\n }\n } else {\n if (text_unities.length > 0){\n versions[0].textUnities.push(text_unities[0])\n }\n element.textVersions.push(versions[0])\n elements.push(element)\n }\n }\n //console.log(elements)\n return elements;\n }\n\n}\nexport class TlnStandaloneTextVersion extends TlnTextVersion {\n /** \n * the internal default key for replacing {@link /classes/TlnLine.html#query|query} by \"id\"\n * in {@link /classes/TlnLine.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n static readonly default_key: string = 'geneticOrder';\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n \n SELECT distinct ?id ?text_unity ?text_page ?manuscript ?number ?startLine ?startLineIri ?endLine ?endLineIri ?title ?extUrl ?hasFaksimileImage WHERE {\n ?geneticOrder a tln:TextGenesis;\n tln:hasGeneticOrder/rdf:rest*/rdf:first ?id.\n \n OPTIONAL { ?id tln:identifiesAsVersion/rdf:rest*/rdf:first ?text_unity.\n OPTIONAL { ?text_unity tln:hasNumber ?number.\n ?manuscript a tln:ArchivalManuscriptUnity;\n tln:hasTitle ?title;\n tln:hasPages/rdf:rest*/rdf:first ?text_unity.\n BIND(exists{ ?text_unity tln:hasFaksimileImage ?image } as ?hasFaksimileImage)\n }\n OPTIONAL { ?text_unity tln:belongsToPage ?text_page; \n tln:startLine ?startLineIri;\n tln:endLine ?endLineIri.\n \t\t\t ?text_page tln:hasNumber ?number.\n ?startLineIri tln:lineHasNumber?startLine.\n ?endLineIri tln:lineHasNumber ?endLine.\n \t\t\t ?manuscript a tln:ArchivalManuscriptUnity;\n tln:hasTitle ?title;\n tln:hasPages/rdf:rest*/rdf:first ?text_page.\n BIND(exists{ ?text_page tln:hasFaksimileImage ?image } as ?hasFaksimileImage)\n }\n }\n OPTIONAL { ?id tln:textUnitHasTitle ?title; tln:textUnitHasUrl ?extUrl.}\n }`;\n /** \n * the public key for replacing {@link /classes/TlnLine.html#query|query} by \"id\".\n **/\n static readonly query_key: string = 'geneticOrder';\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n if(this.service != null){\n this.service.initSelecteTextVersion(this);\n }\n }\n\n public static convertData<T extends typeof BasicResultBindingElement>(this: T, data: FusekiResults, id?: string, service?: any): Array<InstanceType<T>> {\n let elements = []; \n let content = this.getContent(data);\n for (var i = 0; i < content.length; i++){\n let element = new TlnStandaloneTextVersion(content[i], id, service);\n let text_unities = (content[i]['text_unity'] != undefined) ? \n TlnTextUnity.convertData({ head: { vars: []}, results: { bindings: <any>[ content[i] ] } }, content[i]['text_unity']['value']) : [];\n if (elements.length > 0 && elements[elements.length-1].id == element.id){\n if (text_unities.length > 0){\n elements[elements.length-1].textUnities.push(text_unities[0]);\n }\n } else {\n if (text_unities.length > 0){\n element.textUnities.push(text_unities[0]);\n }\n elements.push(element)\n }\n }\n //console.log(elements)\n return elements;\n }\n\n}\nexport class TlnPageWithTextGeneticOrder extends PageStub {\n /** \n * the internal default key for replacing {@link /classes/TlnLine.html#query|query} by \"id\"\n * in {@link /classes/TlnLine.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n static readonly default_key: string = 'manuscript';\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n \n SELECT distinct ?id ?number WHERE {\n ?manuscript tln:hasPages/rdf:rest*/rdf:first ?id.\n {?version a tln:IdentifiedTextVersion;\n \t\t tln:identifiesAsVersion/rdf:rest*/rdf:first ?id.\n } UNION {\n ?version a tln:IdentifiedTextVersion;\n \t\t tln:identifiesAsVersion/rdf:rest*/rdf:first/tln:belongsToPage ?id.\n }\n ?id tln:hasNumber ?number.\n }`;\n /** \n * the public key for replacing {@link /classes/TlnLine.html#query|query} by \"id\".\n **/\n static readonly query_key: string = 'manuscript';\n\n}\n\n","import { TlnPositionalObject } from './positional_object';\nimport { Word } from '../models';\n/**\n * This is the word instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.\n * It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.\n **/\nexport class TlnWord extends TlnPositionalObject implements Word {\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?text ?edited_text ?left ?top ?width ?height ?transform ?line ?line_number ?deleted ?deletion_path WHERE {\n ?page tln:hasWords/rdf:rest*/rdf:first ?id.\n ?id tln:wordBelongsToLine ?line; \n tln:hasText ?text;\n tln:hasTranskriptionPosition ?tp.\n \t?tp tln:hasLeft ?left; tln:hasTop ?top; tln:hasWidth ?width; tln:hasHeight ?height.\n ?line tln:lineHasNumber ?line_number.\n BIND(exists{\n {?id tln:wordIsDeletedByPath ?path} \n UNION{ ?id tln:wordHasWordParts/rdf:rest*/rdf:first ?word_part.\n ?word_part tln:hasTranskriptionPosition ?tp; tln:wordIsDeletedByPath ?path}\n } as ?deleted)\n\n OPTIONAl { ?tp tln:hasTransform ?transform.}\n OPTIONAl { ?id tln:hasEditedText ?edited_text.}\n OPTIONAl { ?id tln:wordIsDeletedByPath/tln:hasDAttribute ?deletion_path.}\n OPTIONAl { ?id tln:wordHasWordParts/rdf:rest*/rdf:first ?word_part.\n ?word_part tln:hasTranskriptionPosition ?tp; tln:wordIsDeletedByPath/tln:hasDAttribute ?deletion_path}\n } `;\n /**\n * the text of this word\n **/\n text: string;\n /**\n * the text of this word as it has been edited by the editors.\n **/\n edited_text?: string;\n /**\n * the id of the line to which this word belongs.\n **/\n line: string;\n /**\n * the number of the line to which this word belongs.\n * */\n line_number: number;\n /**\n * is this word deleted.\n **/\n deleted: boolean;\n /** \n * a deletion path\n **/\n deletion_path?: string;\n \n /**\n * The constructor creates a datatype from the data.\n *\n * @param id if omitted the id will be retrieved from data\n **/\n constructor(data: any, id?: string, service?: any){\n super(data, id, service)\n this.text = this.getData4Key('text');\n this.edited_text = this.getData4Key('edited_text');\n this.line = this.getData4Key('line');\n this.line_number = this.getData4Key('line_number');\n this.deleted = this.getData4Key('deleted');\n this.deletion_path = this.getData4Key('deletion_path');\n }\n}\n/**\n * This is the faksimile word instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.\n * It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.\n **/\nexport class FaksimileWord extends TlnWord {\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?text ?edited_text ?left ?top ?width ?height ?transform ?line ?line_number ?deleted WHERE {\n ?page tln:hasWords/rdf:rest*/rdf:first ?id.\n ?id tln:wordBelongsToLine ?line; \n tln:hasText ?text;\n tln:hasFaksimilePosition ?fp.\n \t?fp tln:hasLeft ?left; tln:hasTop ?top; tln:hasWidth ?width; tln:hasHeight ?height.\n ?line tln:lineHasNumber ?line_number.\n BIND(exists{{?id tln:wordIsDeletedByPath ?path} UNION { ?id tln:wordHasWordParts/rdf:rest*/rdf:first/tln:wordIsDeletedByPath ?path}\n } as ?deleted)\n OPTIONAl { ?fp tln:hasTransform ?transform.}\n OPTIONAl { ?id tln:hasEditedText ?edited_text.}\n } `;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'debug'\n})\nexport class DebugPipe implements PipeTransform {\n\n transform(value: any): any {\n console.log(value)\n return value;\n }\n\n}\n","import { OnInit } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\n\nexport interface ParamContent {\n param: string;\n type: string;\n debug?: string;\n ignore?: boolean;\n}\nexport interface Mapping {\n [name: string]: ParamContent; \n}\n\nexport class RouteReader implements OnInit {\n protected mapping: Mapping; \n protected routerParams: Params;\n\n constructor(protected router: Router, protected activatedRoute: ActivatedRoute ) { }\n\n ngOnInit() {\n this.activatedRoute.queryParams.subscribe(params => {\n this.readParams(params)\n });\n }\n protected readParams(params: Params) {\n this.routerParams = params;\n for(let key of Object.keys(this.mapping)){\n if (this.mapping[key]['ignore'] == undefined || !this.mapping[key]['ignore']){\n let paramsKey = this.mapping[key]['param'];\n if (this.routerParams[paramsKey] != null){\n if (this.mapping[key]['type'] == 'number'){\n this[key] = Number(this.routerParams[paramsKey])\n } else if (this.mapping[key]['type'] == 'boolean'){\n this[key] = (this.routerParams[paramsKey] == 'true')\n } else if (Array.isArray(this[key]) && !Array.isArray(this.routerParams[paramsKey])) {\n this[key] = JSON.parse(this.routerParams[paramsKey])\n } else {\n this[key] = this.routerParams[paramsKey];\n } \n if (this.mapping[key]['debug'] != null){\n console.log(this.mapping[key]['debug'], this[key]);\n }\n }\n }\n }\n }\n}\n","import { Router, ActivatedRoute, Params } from '@angular/router';\nimport { Mapping, RouteReader } from './route-reader';\n\nexport class RouteUpdater extends RouteReader {\n protected mapping: Mapping;\n protected routerParams: Params;\n protected currentRoute: string;\n parentActivatedRoute: ActivatedRoute;\n\n constructor(protected router: Router, protected activatedRoute: ActivatedRoute ) { \n super(router, activatedRoute);\n if(this.currentRoute == undefined || this.currentRoute == null){\n this.currentRoute = (this.activatedRoute.snapshot.routeConfig != null)\n ? this.activatedRoute.snapshot.routeConfig.path : null;\n }\n }\n protected updateParams(launch?: boolean) {\n let newRouterParam = {};\n for(let key of Object.keys(this.mapping)){\n let paramsKey = this.mapping[key]['param'];\n if(this[key] != null){\n if (Array.isArray(this[key]) && this[key].length > 0){\n newRouterParam[paramsKey] = JSON.stringify(this[key]);\n } else {\n newRouterParam[paramsKey] = this[key];\n }\n }\n }\n for(let key of Object.keys(this.routerParams)){\n if(newRouterParam[key] == null){\n newRouterParam[key] = this.routerParams[key];\n }\n }\n let parentActivatedRoute = (this.activatedRoute.parent != null) ? this.activatedRoute.parent : this.parentActivatedRoute;\n if(parentActivatedRoute != undefined && parentActivatedRoute != null){\n parentActivatedRoute.url.subscribe(url=>{\n let parentPath = url[0].path;\n if (launch != undefined && launch){\n let link = this.router.createUrlTree([ parentPath + '/' + this.currentRoute], { queryParams: newRouterParam });\n window.open(link.toString(), '_blank')\n } else {\n this.router.navigate([ parentPath + '/' + this.currentRoute], { queryParams: newRouterParam });\n }\n });\n } else {\n if (launch != undefined && launch){\n let link = this.router.createUrlTree([ this.currentRoute], { queryParams: newRouterParam });\n window.open(link.toString(), '_blank')\n } else {\n this.router.navigate([ this.currentRoute], { queryParams: newRouterParam });\n }\n }\n }\n}\n","export { TlnQueryService } from './tln-query.service';\nexport { PageViewService } from '../page-view/page-view.service';\nexport { ConfigurableComponent } from '../page-view/configurable-component';\n","export default \"#navi {\\n width: 100%;\\n height: 50px;\\n margin: 0;\\n padding: 0;\\n white-space: nowrap;\\n}\\n.search {\\n margin-left: 8px;\\n }\\n.mat-button.min-width {\\n min-width: 120px;\\n max-width: 120px;\\n}\\n.default-mouse {\\n cursor: default;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tY3Jvc3NyZWYvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxXQUFXO0dBQ1gsWUFBWTtHQUNaLFNBQVM7R0FDVCxVQUFVO0dBQ1YsbUJBQW1CO0FBQ3RCO0FBQ0E7R0FDRyxnQkFBZ0I7Q0FDbEI7QUFFRDtHQUNHLGdCQUFnQjtHQUNoQixnQkFBZ0I7QUFDbkI7QUFDQTtHQUNHLGVBQWU7QUFDbEIiLCJmaWxlIjoiYXBwL3Rsbi1lZGl0aW9uL3Rsbi1jcm9zc3JlZi9uYXZpZ2F0aW9uL25hdmlnYXRpb24uY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiNuYXZpIHtcbiAgIHdpZHRoOiAxMDAlO1xuICAgaGVpZ2h0OiA1MHB4O1xuICAgbWFyZ2luOiAwO1xuICAgcGFkZGluZzogMDtcbiAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uc2VhcmNoIHtcbiAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gfVxuXG4ubWF0LWJ1dHRvbi5taW4td2lkdGgge1xuICAgbWluLXdpZHRoOiAxMjBweDtcbiAgIG1heC13aWR0aDogMTIwcHg7XG59XG4uZGVmYXVsdC1tb3VzZSB7XG4gICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4iXX0= */\"","import { Component, OnInit, Input } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { TlnQueryServiceInterface, Reference, ManuscriptUnity, NavigationPage } from '../../models';\nimport { TlnManuscriptUnity, TlnNavigationPage} from '../../datatypes/navigation';\nimport { DEFAULT_VIEW_OPTION, TLN_VIEWER_ROUTE, TLN_CROSSREF_ROUTE, TLN_CONTEXT_VIEW_PARAM, TLN_FULLSCREEN_PARAM, TLN_FIND_PARAM, TLN_PAGE_PARAM, TLN_MANUSCRIPT_PARAM,\n TLN_SELECTED_LINES_PARAM, TLN_VIEW_OPTION_PARAM, TLN_ZOOM_PARAM, VIEW_OPTIONS, ONTOLOTY_PREFIX } from '../../constants';\nimport { IsReconstructedKonvolut } from '../../datatypes/basic_datatype';\nimport { TlnLine} from '../../datatypes/line';\nimport { TlnTextGeneticOrder} from '../../datatypes/text_version';\nimport { Mapping } from '../../route-reader';\nimport { RouteUpdater } from '../../route-updater';\nimport { ComplexKeyIriMapping, DataHandler, KeyIriMapping } from '../../data_handler';\nimport { PageViewService, TlnQueryService } from '../../services';\nimport { TlnInformationComponent, ParentInformation } from '../../tln-information/tln-information.component';\nimport { PageInformation } from '../../tln-information/page-information';\n\n@Component({\n selector: 'crossref-navigation',\n templateUrl: './navigation.component.html',\n styleUrls: ['./navigation.component.css']\n})\nexport class NavigationComponent extends RouteUpdater {\n /**\n * OPTIONAL pass a queryService with method \n * {@link /interfaces/TlnQueryServiceInterface.html#getData|getData}\n * to TlnPageViewComponent.\n **/\n @Input() queryService: TlnQueryServiceInterface;\n /**\n * whether or not to show page view in fullscreen mode.\n **/\n fullscreen: boolean = false;\n current_iri: string;\n current_manuscript_iri: string;\n current_page: NavigationPage;\n pageInformation: PageInformation;\n previous_page: NavigationPage;\n next_page: NavigationPage;\n showArchivalManuscriptUnity: boolean = false;\n dataHandler: DataHandler = new DataHandler(this);\n geneticOrders: TlnTextGeneticOrder[] = [];\n selectedLines: string[] = [];\n private readonly PAGE_CONTEXT_VIEW: string = TLN_PAGE_PARAM;\n private readonly MANUSCRIPT_CONTEXT_VIEW: string = TLN_MANUSCRIPT_PARAM;\n contextView: string = this.PAGE_CONTEXT_VIEW;\n private readonly increment: number = 0.333;\n private readonly decrement: number = this.increment*-1;\n protected currentRoute: string = TLN_CROSSREF_ROUTE;\n protected mapping: Mapping = { \n contextView: { param: TLN_CONTEXT_VIEW_PARAM, type: \"string\" },\n current_iri: { param: TLN_PAGE_PARAM, type: \"string\" },\n current_manuscript_iri: { param: TLN_MANUSCRIPT_PARAM, type: \"string\" },\n fullscreen: { param: TLN_FULLSCREEN_PARAM, type: \"boolean\" }\n }\n routerParams: Params;\n selectedViewOption: string = DEFAULT_VIEW_OPTION\n updating: boolean = false;\n viewOptions: string[] = [ VIEW_OPTIONS.TRANSKRIPTION, VIEW_OPTIONS.FAKSIMILE, VIEW_OPTIONS.SYNOPSIS, VIEW_OPTIONS.SYNOPSIS_B ];\n\n constructor(private pageViewService: PageViewService, private localQueryService: TlnQueryService, protected router: Router, protected activatedRoute: ActivatedRoute ) { \n super(router, activatedRoute);\n }\n ngOnInit() {\n let tlnQueryService = (this.queryService != null) ? this.queryService : this.localQueryService;\n this.dataHandler.addHandler('navigation_page', ['current_page', 'geneticOrders'] );\n this.dataHandler.addHandler('current_page', { 'handler': TlnNavigationPage });\n this.dataHandler.addHandler('geneticOrders', { 'handler': TlnTextGeneticOrder});\n this.dataHandler.setQueryService(tlnQueryService);\n this.dataHandler.start_processing.subscribe(\n (started: boolean) =>{ this.updating = true;\n });\n this.dataHandler.processing_finished.subscribe(\n (finished: boolean) =>{ this.updating = false;\n });\n super.ngOnInit();\n }\n changeContext(){\n this.contextView = (this.contextView == this.PAGE_CONTEXT_VIEW) ? this.MANUSCRIPT_CONTEXT_VIEW : this.PAGE_CONTEXT_VIEW;\n //this.current_genetic_order_iri = 'none'; \n this.updateParams();\n }\n private getPageTitle(page?: NavigationPage, numPages?: number): string {\n if (page == null){\n return '';\n }\n let indexPrefix = (numPages != null) ? page.index + '/' + numPages : page.index;\n return indexPrefix + ': ' + page.title + ' ' + page.number;\n }\n protected readParams(params: Params){\n super.readParams(params);\n if (this.dataHandler.ready && (this.current_page == null || this.current_page.id != this.current_iri)){\n this.dataHandler.resetData('navigation_page')\n this.dataHandler.getData('current_page', this.current_iri);\n } \n }\n private setCurrentIri(pageIri: string){\n this.dataHandler.stop_processing.emit(true);\n this.current_iri = pageIri;\n this.currentRoute = TLN_VIEWER_ROUTE;\n this.updateParams();\n }\n private toggleFullscreen(){\n this.fullscreen = !this.fullscreen;\n this.updateParams();\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TlnTextGeneticOrder} from '../../datatypes/text_version';\n\n@Pipe({\n name: 'filter'\n})\nexport class FilterPipe implements PipeTransform {\n\n transform(geneticOrders: TlnTextGeneticOrder[], iri?: string): TlnTextGeneticOrder[] {\n if(!iri){\n return geneticOrders\n }\n return geneticOrders.filter(geneticOrder =>geneticOrder.id != iri);\n }\n\n}\n","export default \".example-radio-group {\\n display: flex;\\n flex-direction: column;\\n margin: 15px 0;\\n}\\n\\n.example-radio-button {\\n margin: 5px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tY3Jvc3NyZWYvcGFnZS12ZXJzaW9uLXZpZXcvcGFnZS12ZXJzaW9uLXZpZXcuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsY0FBYztBQUNoQjs7QUFFQTtFQUNFLFdBQVc7QUFDYiIsImZpbGUiOiJhcHAvdGxuLWVkaXRpb24vdGxuLWNyb3NzcmVmL3BhZ2UtdmVyc2lvbi12aWV3L3BhZ2UtdmVyc2lvbi12aWV3LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZXhhbXBsZS1yYWRpby1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1hcmdpbjogMTVweCAwO1xufVxuXG4uZXhhbXBsZS1yYWRpby1idXR0b24ge1xuICBtYXJnaW46IDVweDtcbn1cbiJdfQ== */\"","import { Component, Input, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { MatBottomSheetRef} from '@angular/material/bottom-sheet';\nimport { ManuscriptUnity, NavigationPage} from '../../models';\nimport { Mapping, RouteReader } from '../../route-reader';\nimport { RouteUpdater } from '../../route-updater';\nimport { TlnTextGeneticOrder} from '../../datatypes/text_version';\nimport { TLN_CONTEXT_VIEW_PARAM, TLN_PAGE_PARAM, TLN_MANUSCRIPT_PARAM, TLN_TEXT_GENETIC_ORDER_PARAM, TLN_CROSSREF_ROUTE } from '../../constants';\n\n@Component({\n selector: 'page-version-view',\n templateUrl: './page-version-view.component.html',\n styleUrls: ['./page-version-view.component.css']\n})\nexport class PageVersionViewComponent extends RouteUpdater implements OnInit {\n /**\n * IRI of the current page\n **/\n current_iri: string;\n /**\n * the current page\n **/\n @Input() current_page_iri: string;\n /**\n * the genetic text order that should be displayed.\n **/\n @Input() geneticOrders: TlnTextGeneticOrder[] = [];\n @Input() filterGeneticOrder: string;\n @Input() bottomSheetRef: MatBottomSheetRef;\n @Input() parentActivatedRoute: ActivatedRoute;\n current_manuscript_iri: string;\n current_genetic_order: string;\n contextView: string;\n protected currentRoute: string = TLN_CROSSREF_ROUTE;\n protected mapping: Mapping = { \n current_iri: { param: TLN_PAGE_PARAM, type: \"string\" },\n current_manuscript_iri: { param: TLN_MANUSCRIPT_PARAM, type: \"string\" },\n contextView: { param: TLN_CONTEXT_VIEW_PARAM, type: \"string\" },\n current_genetic_order: { param: TLN_TEXT_GENETIC_ORDER_PARAM, type: \"string\" } \n }\n\n constructor(protected router: Router, protected activatedRoute: ActivatedRoute ){ \n super(router, activatedRoute);\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n private openCrossRef(geneticOrder: TlnTextGeneticOrder){\n this.current_genetic_order = geneticOrder.id; \n this.current_iri = this.current_page_iri\n this.contextView = TLN_PAGE_PARAM;\n this.updateParams();\n if(this.bottomSheetRef != undefined && this.bottomSheetRef != null){\n this.bottomSheetRef.dismiss();\n }\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhcHAvdGxuLWVkaXRpb24vdGxuLWNyb3NzcmVmL3BhZ2UtdmVyc2lvbi12aWV3L3Rsbi1wYWdlLXZlcnNpb24tdmlldy5jb21wb25lbnQuY3NzIn0= */\"","import { Component, Input, OnInit } from '@angular/core';\nimport { TlnQueryService } from '../../services';\nimport { DataHandler } from '../../data_handler';\nimport { TlnTextGeneticOrder} from '../../datatypes/text_version';\n\n@Component({\n selector: 'tln-page-version-view',\n templateUrl: './tln-page-version-view.component.html',\n styleUrls: ['./tln-page-version-view.component.css']\n})\nexport class TlnPageVersionViewComponent implements OnInit {\n @Input() current_iri: string;\n dataHandler: DataHandler = new DataHandler(this);\n geneticOrders: TlnTextGeneticOrder[] = [];\n\n\n constructor(private queryService: TlnQueryService) { }\n\n ngOnInit() {\n this.dataHandler.addHandler('geneticOrders', { 'handler': TlnTextGeneticOrder});\n this.dataHandler.setQueryService(this.queryService);\n this.dataHandler.getData('geneticOrders', this.current_iri);\n }\n\n}\n","export default \"#page {\\n width: 100%;\\n position: relative;\\n top: 0px;\\n left: 0px;\\n}\\n.grid-container{ /* Chrome, Safari, Opera */\\n -moz-column-count: 2; /* Firefox */\\n column-count: 2;\\n}\\n.extra-space {\\n margin-top: 45px;\\n}\\n.page-crossref-title {\\n margin-left: 20px;\\n}\\n.preview {\\n position: relative;\\n top: 60px;\\n width: 400px;\\n height: 100%;\\n text-align: center;\\n}\\n.icon {\\n margin-left: 5px;\\n}\\n.centered {\\n margin: auto;\\n}\\n.text {\\n position: absolute;\\n top: 0px;\\n left: 400px;\\n}\\n.page-view {\\n overflow: auto;\\n}\\n.external {\\n margin-top: 35px;\\n background-color: lightblue;\\n height: 100px;\\n position: relative;\\n left: 80px;\\n z-index: 2;\\n}\\n.highlight {\\n background-color: lightblue;\\n}\\n.text-navi {\\n position: absolute;\\n margin-top: -3px;\\n left: 0px;\\n height: 38px;\\n width: 100%;\\n background-color: lightblue;\\n z-index: 1;\\n}\\n.close-text {\\n position: absolute;\\n height: 38px;\\n right: 0px;\\n z-index: 2;\\n}\\n.page-navi {\\n float: left;\\n margin-top: -3px;\\n margin-bottom: 1px;\\n height: 38px;\\n background-color: lightblue;\\n z-index: 2;\\n}\\n.icon-button {\\n width: 15px;\\n margin-left: 3px;\\n}\\n.default-mouse {\\n cursor: default;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tY3Jvc3NyZWYvdGxuLWNyb3NzcmVmLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxXQUFXO0dBQ1gsa0JBQWtCO0dBQ2xCLFFBQVE7R0FDUixTQUFTO0FBQ1o7QUFDQSxrQkFDNEIsMEJBQTBCO0VBQ3BELG9CQUFvQixNQUFNLFlBQVk7RUFDdEMsZUFBZTtBQUNqQjtBQUNBO0dBQ0csaUJBQWlCO0FBQ3BCO0FBQ0E7R0FDRyxpQkFBaUI7QUFDcEI7QUFDQTtHQUNHLGtCQUFrQjtHQUNsQixTQUFTO0dBQ1QsWUFBWTtHQUNaLFlBQVk7R0FDWixrQkFBa0I7QUFDckI7QUFDQTtHQUNHLGdCQUFnQjtBQUNuQjtBQUNBO0dBQ0csWUFBWTtBQUNmO0FBQ0E7R0FDRyxrQkFBa0I7R0FDbEIsUUFBUTtHQUNSLFdBQVc7QUFDZDtBQUNBO0dBQ0csY0FBYztBQUNqQjtBQUNBO0dBQ0csZ0JBQWdCO0dBQ2hCLDJCQUEyQjtHQUMzQixhQUFhO0dBQ2Isa0JBQWtCO0dBQ2xCLFVBQVU7R0FDVixVQUFVO0FBQ2I7QUFDQTtHQUNHLDJCQUEyQjtBQUM5QjtBQUNBO0dBQ0csa0JBQWtCO0dBQ2xCLGdCQUFnQjtHQUNoQixTQUFTO0dBQ1QsWUFBWTtHQUNaLFdBQVc7R0FDWCwyQkFBMkI7R0FDM0IsVUFBVTtBQUNiO0FBQ0E7R0FDRyxrQkFBa0I7R0FDbEIsWUFBWTtHQUNaLFVBQVU7R0FDVixVQUFVO0FBQ2I7QUFDQTtHQUNHLFdBQVc7R0FDWCxnQkFBZ0I7R0FDaEIsa0JBQWtCO0dBQ2xCLFlBQVk7R0FDWiwyQkFBMkI7R0FDM0IsVUFBVTtBQUNiO0FBQ0E7R0FDRyxXQUFXO0dBQ1gsZ0JBQWdCO0FBQ25CO0FBQ0E7R0FDRyxlQUFlO0FBQ2xCIiwiZmlsZSI6ImFwcC90bG4tZWRpdGlvbi90bG4tY3Jvc3NyZWYvdGxuLWNyb3NzcmVmLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjcGFnZSB7XG4gICB3aWR0aDogMTAwJTtcbiAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgIHRvcDogMHB4O1xuICAgbGVmdDogMHB4O1xufVxuLmdyaWQtY29udGFpbmVye1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogMjsgIC8qIENocm9tZSwgU2FmYXJpLCBPcGVyYSAqL1xuICAtbW96LWNvbHVtbi1jb3VudDogMjsgICAgIC8qIEZpcmVmb3ggKi9cbiAgY29sdW1uLWNvdW50OiAyO1xufVxuLmV4dHJhLXNwYWNlIHtcbiAgIG1hcmdpbi10b3A6ICA0NXB4O1xufVxuLnBhZ2UtY3Jvc3NyZWYtdGl0bGUge1xuICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG59XG4ucHJldmlldyB7XG4gICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICB0b3A6IDYwcHg7XG4gICB3aWR0aDogNDAwcHg7XG4gICBoZWlnaHQ6IDEwMCU7XG4gICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uaWNvbiB7XG4gICBtYXJnaW4tbGVmdDogNXB4O1xufVxuLmNlbnRlcmVkIHtcbiAgIG1hcmdpbjogYXV0bztcbn1cbi50ZXh0IHtcbiAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgIHRvcDogMHB4O1xuICAgbGVmdDogNDAwcHg7XG59XG4ucGFnZS12aWV3IHtcbiAgIG92ZXJmbG93OiBhdXRvO1xufVxuLmV4dGVybmFsIHtcbiAgIG1hcmdpbi10b3A6IDM1cHg7XG4gICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGJsdWU7XG4gICBoZWlnaHQ6IDEwMHB4O1xuICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgbGVmdDogODBweDtcbiAgIHotaW5kZXg6IDI7XG59XG4uaGlnaGxpZ2h0IHtcbiAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Ymx1ZTtcbn1cbi50ZXh0LW5hdmkge1xuICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgbWFyZ2luLXRvcDogLTNweDtcbiAgIGxlZnQ6IDBweDtcbiAgIGhlaWdodDogMzhweDtcbiAgIHdpZHRoOiAxMDAlO1xuICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRibHVlO1xuICAgei1pbmRleDogMTtcbn1cbi5jbG9zZS10ZXh0IHtcbiAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgIGhlaWdodDogMzhweDtcbiAgIHJpZ2h0OiAwcHg7XG4gICB6LWluZGV4OiAyO1xufVxuLnBhZ2UtbmF2aSB7XG4gICBmbG9hdDogbGVmdDtcbiAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICBtYXJnaW4tYm90dG9tOiAxcHg7XG4gICBoZWlnaHQ6IDM4cHg7XG4gICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGJsdWU7XG4gICB6LWluZGV4OiAyO1xufVxuLmljb24tYnV0dG9uIHtcbiAgIHdpZHRoOiAxNXB4O1xuICAgbWFyZ2luLWxlZnQ6IDNweDtcbn1cbi5kZWZhdWx0LW1vdXNlIHtcbiAgIGN1cnNvcjogZGVmYXVsdDtcbn1cbiJdfQ== */\"","import { Component, OnInit, Input } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { DataProcessor, TlnQueryServiceInterface, TextVersion, NavigationPage} from '../models';\nimport { TLN_CROSSREF_ROUTE, TLN_VIEWER_ROUTE, TLN_CONTEXT_VIEW_PARAM, TLN_FULLSCREEN_PARAM, TLN_FIND_PARAM, TLN_PAGE_PARAM, TLN_MANUSCRIPT_PARAM,\n TLN_SELECTED_LINES_PARAM, TLN_TEXT_GENETIC_ORDER_PARAM, TLN_VIEW_OPTION_PARAM, TLN_ZOOM_PARAM, VIEW_OPTIONS, ONTOLOTY_PREFIX } from '../constants';\nimport { IsReconstructedKonvolut } from '../datatypes/basic_datatype';\nimport { TlnNavigationPage} from '../datatypes/navigation';\nimport { TlnLine} from '../datatypes/line';\nimport { ManuscriptStub } from '../datatypes/manuscript';\nimport { TlnPageWithTextGeneticOrder, TlnTextGeneticOrder, TlnStandaloneTextVersion} from '../datatypes/text_version';\nimport { Mapping } from '../route-reader';\nimport { RouteUpdater } from '../route-updater';\nimport { ComplexKeyIriMapping, DataHandler, KeyIriMapping } from '../data_handler';\nimport { PageViewService, TlnQueryService } from '../services';\nimport { TlnInformationComponent, ParentInformation } from '../tln-information/tln-information.component';\nimport { PageInformation } from '../tln-information/page-information';\n\n@Component({\n selector: 'tln-crossref',\n templateUrl: './tln-crossref.component.html',\n styleUrls: ['./tln-crossref.component.css']\n})\nexport class TlnCrossrefComponent extends RouteUpdater implements DataProcessor {\n /**\n * OPTIONAL pass a queryService with method \n * {@link /interfaces/TlnQueryServiceInterface.html#getData|getData}\n * to TlnPageViewComponent.\n **/\n @Input() queryService: TlnQueryServiceInterface;\n private readonly PAGE_CONTEXT_VIEW: string = TLN_PAGE_PARAM;\n private readonly MANUSCRIPT_CONTEXT_VIEW: string = TLN_MANUSCRIPT_PARAM;\n zoomFactor: number = 1;\n findText: string;\n dataHandler: DataHandler = new DataHandler(this);\n textVersions: TextVersion[] = [];\n geneticOrders: TlnTextGeneticOrder[] = [];\n contextView: string = this.PAGE_CONTEXT_VIEW;\n current_genetic_order_iri: string;\n current_manuscript_unity: string;\n current_manuscript: ManuscriptStub;\n current_iri: string;\n current_page: NavigationPage;\n fullscreen: boolean = false;\n pagesWithGeneticOrder: TlnPageWithTextGeneticOrder[] = [];\n max_width: number = -1;\n max_height: number = -1;\n next_page_iri: string;\n each_version_height: number = -1;\n selectedLines: string[] = [];\n selectedTextVersions: TextVersion[] = []\n private readonly increment: number = 0.333;\n private readonly decrement: number = this.increment*-1;\n private readonly margin_width: number = 280;\n private readonly initialPreviewWidth : number = 400;\n previewWidth: number = this.initialPreviewWidth;\n protected currentRoute: string = TLN_CROSSREF_ROUTE;\n protected mapping: Mapping = { findText: { param: TLN_FIND_PARAM, type: \"string\" },\n fullscreen: { param: TLN_FULLSCREEN_PARAM, type: \"boolean\" },\n contextView: { param: TLN_CONTEXT_VIEW_PARAM, type: \"string\" },\n current_iri: { param: TLN_PAGE_PARAM, type: \"string\" },\n current_manuscript_unity: { param: TLN_MANUSCRIPT_PARAM, type: \"string\" },\n current_genetic_order_iri: { param: TLN_TEXT_GENETIC_ORDER_PARAM, type: \"string\" },\n selectedLines: { param: TLN_SELECTED_LINES_PARAM, type: \"string\" },\n zoomFactor: { param: TLN_ZOOM_PARAM, type: \"number\" } }\n routerParams: Params;\n selectedViewOption: string = VIEW_OPTIONS.TRANSKRIPTION\n updating: boolean = false;\n viewOptions: string[] = [ VIEW_OPTIONS.TRANSKRIPTION, VIEW_OPTIONS.FAKSIMILE ];\n\n constructor(private pageViewService: PageViewService, private localQueryService: TlnQueryService, protected router: Router, protected activatedRoute: ActivatedRoute ) { \n super(router, activatedRoute);\n }\n ngOnInit() {\n if (screen.availWidth - this.initialPreviewWidth - this.margin_width > 1000){\n this.previewWidth = screen.availWidth - this.initialPreviewWidth - 1000;\n }\n this.max_width = screen.availWidth - this.previewWidth - this.margin_width;\n this.max_height = screen.availHeight - 200;\n let tlnQueryService = (this.queryService != null) ? this.queryService : this.localQueryService;\n this.dataHandler.addHandler('page_content', ['current_page', 'geneticOrders'] );\n this.dataHandler.addHandler('manuscript_content', ['current_manuscript', 'pagesWithGeneticOrder'] );\n this.dataHandler.addHandler('current_manuscript', { 'handler': ManuscriptStub});\n this.dataHandler.addHandler('current_page', { 'handler': TlnNavigationPage });\n this.dataHandler.addHandler('geneticOrders', { 'handler': TlnTextGeneticOrder});\n this.dataHandler.addHandler('pagesWithGeneticOrder', { 'handler': TlnPageWithTextGeneticOrder });\n this.dataHandler.addHandler('textVersions', { 'handler': TlnStandaloneTextVersion, 'process_data': this });\n this.dataHandler.setQueryService(tlnQueryService);\n this.dataHandler.start_processing.subscribe(\n (started: boolean) =>{ this.updating = true;\n });\n this.dataHandler.processing_finished.subscribe(\n (finished: boolean) =>{ this.updating = false;\n });\n super.ngOnInit();\n }\n public processData(): void {\n this.selectedTextVersions = [];\n let index = 0;\n while (index < this.textVersions.length && this.selectedTextVersions.length < 1){\n if(this.textVersions[index].textUnities != undefined && this.textVersions[index].textUnities.length > 0){\n this.selectedTextVersions.push(this.textVersions[index]);\n }\n index++\n }\n }\n private addOrRemove(textVersion: TextVersion) {\n let index = this.selectedTextVersions.indexOf(textVersion);\n if (index == -1){\n this.selectedTextVersions.push(textVersion);\n } else {\n this.selectedTextVersions.splice(index, 1);\n }\n this.each_version_height = (this.selectedTextVersions.length > 0) ? this.max_height/this.selectedTextVersions.length : this.max_height;\n }\n private clearFindText() {\n this.findText = '';\n this.updateParams();\n }\n private getButtonTitle(textVersion: TextVersion): string {\n return (this.selectedTextVersions.indexOf(textVersion) == -1) ? 'Textstelle anzeigen' : 'Textstelle ausblenden';\n }\n protected readParams(params: Params){\n let old_genetic_order_iri = this.current_genetic_order_iri;\n let old_current_iri = this.current_iri;\n let old_manuscript_unity = this.current_manuscript_unity;\n let old_context_view = this.contextView;\n super.readParams(params);\n if (this.dataHandler.ready){\n if (this.contextView == this.PAGE_CONTEXT_VIEW \n && (this.contextView != old_context_view || (this.current_iri != null && this.current_iri != old_current_iri))){\n this.dataHandler.resetData('page_content')\n this.dataHandler.getData('page_content', this.current_iri);\n }\n if (this.contextView == this.MANUSCRIPT_CONTEXT_VIEW \n && (this.contextView != old_context_view || (this.current_manuscript_unity != null && this.current_manuscript_unity != old_manuscript_unity))){\n this.dataHandler.resetData('manuscript_content')\n this.dataHandler.getData('manuscript_content', this.current_manuscript_unity);\n }\n if (this.contextView == this.PAGE_CONTEXT_VIEW \n && (this.contextView != old_context_view || \n (this.current_genetic_order_iri != null && (this.textVersions.length == 0 || this.current_genetic_order_iri != old_genetic_order_iri)))){\n this.dataHandler.resetData('textVersions')\n this.dataHandler.getData('textVersions', this.current_genetic_order_iri);\n }\n }\n }\n private openInViewer(pageIri: string, belongsToPageIri?: string, manuscriptIri?: string, launch?: boolean){\n this.current_iri = (belongsToPageIri != null) ? belongsToPageIri : pageIri;\n if(manuscriptIri != null){\n this.current_manuscript_unity = manuscriptIri;\n }\n this.currentRoute = TLN_VIEWER_ROUTE;\n this.updateParams(launch);\n }\n private setZoomFactor(newZoomFactor: number){\n if (newZoomFactor > 0){\n this.zoomFactor = Math.round(newZoomFactor*100)/100;\n } else {\n this.zoomFactor = this.zoomFactor/2\n }\n this.updateParams();\n }\n}\n","export default \".highlight {\\n text-decoration: underline;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tY3Jvc3NyZWYvdmVyc2lvbi12aWV3L3ZlcnNpb24tdmlldy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0dBQ0csMEJBQTBCO0FBQzdCIiwiZmlsZSI6ImFwcC90bG4tZWRpdGlvbi90bG4tY3Jvc3NyZWYvdmVyc2lvbi12aWV3L3ZlcnNpb24tdmlldy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmhpZ2hsaWdodCB7XG4gICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbiJdfQ== */\"","import { Component, OnInit, Input } from '@angular/core';\nimport { TextVersion} from '../../models';\n\n@Component({\n selector: 'version-view',\n templateUrl: './version-view.component.html',\n styleUrls: ['./version-view.component.css']\n})\nexport class VersionViewComponent implements OnInit {\n @Input() version: TextVersion;\n @Input() current_iri: string;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { BrowserModule } from '@angular/platform-browser';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { NgModule } from '@angular/core';\nimport { MatProgressSpinnerModule,MatBottomSheetModule,MatButtonModule,MatCheckboxModule,MatDialogModule,MatExpansionModule,MatFormFieldModule,MatInputModule,MatListModule,MatPaginatorModule,MatRadioModule,MatSelectModule,MatSidenavModule,MatSortModule,MatTableModule,MatToolbarModule,MatButtonToggleModule,MatCardModule,MatIconModule,MatMenuModule,MatTabsModule,MatTooltipModule\n} from '@angular/material';\nimport { NgxMatStandoffMarkupModule } from '../lib/ngx-mat-standoff-markup.module';\nimport { PageViewService } from '../page-view/page-view.service';\nimport { PageViewModule } from '../page-view/page-view.module';\nimport { TlnPageViewComponent } from './tln-page-view.component';\nimport { TlnQueryService } from './tln-query.service';\nimport { ToolTipComponent } from './tooltip/tool-tip.component';\nimport { TlnViewerNavigation } from './tln-viewer-navigation/tln-viewer-navigation.component';\nimport { TlnInformationComponent } from './tln-information/tln-information.component';\nimport { TlnCrossrefComponent } from './tln-crossref/tln-crossref.component';\nimport { VersionViewComponent } from './tln-crossref/version-view/version-view.component';\nimport { PageVersionViewComponent } from './tln-crossref/page-version-view/page-version-view.component';\nimport { NavigationComponent } from './tln-crossref/navigation/navigation.component';\nimport { FilterPipe } from './tln-crossref/page-version-view/filter.pipe';\nimport { TlnPageVersionViewComponent } from './tln-crossref/page-version-view/tln-page-version-view.component';\nimport { TlnManuscriptViewComponent } from './tln-manuscript-view/tln-manuscript-view.component';\nimport { TlnFulltextComponent } from './tln-fulltext/tln-fulltext.component';\nimport { FulltextNavigationComponent } from './tln-fulltext/navigation/navigation.component';\nimport { ResultPipePipe } from './tln-fulltext/result-pipe.pipe';\nimport { SearchComponent } from './tln-navigation-elements/search.component';\nimport { ToggleNavigationComponent } from './tln-navigation-elements/toggle-navigation.component';\nimport { ZoomComponent } from './tln-navigation-elements/zoom.component';\nimport { ZoomPipe } from './tln-navigation-elements/zoom.pipe';\nimport { OpenInViewerComponent } from './tln-navigation-elements/open-in-viewer.component';\nimport { DebugPipe } from './debug.pipe';\nimport { TlnHeightDirective } from './tln-height.directive';\nimport { PageResultFilterPipe } from './tln-fulltext/page-result-filter.pipe';\n\n\n@NgModule({\n declarations: [FulltextNavigationComponent, TlnPageViewComponent, ToolTipComponent, TlnViewerNavigation, TlnInformationComponent, TlnCrossrefComponent, VersionViewComponent, PageVersionViewComponent, NavigationComponent, FilterPipe, TlnPageVersionViewComponent, TlnManuscriptViewComponent, TlnFulltextComponent, ResultPipePipe, SearchComponent, ToggleNavigationComponent, ZoomComponent, ZoomPipe, OpenInViewerComponent, DebugPipe, TlnHeightDirective, PageResultFilterPipe],\n imports: [\n MatBottomSheetModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatCardModule,\n MatCheckboxModule,\n MatDialogModule,\n MatExpansionModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatProgressSpinnerModule,\n MatPaginatorModule,\n MatRadioModule,\n MatSelectModule,\n MatSidenavModule,\n MatSortModule,\n MatTableModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n BrowserModule,\n CommonModule,\n FormsModule,\n NgxMatStandoffMarkupModule,\n PageViewModule\n ],\n exports: [\n DebugPipe,\n FulltextNavigationComponent,\n NavigationComponent,\n ToolTipComponent,\n TlnCrossrefComponent,\n TlnHeightDirective,\n TlnManuscriptViewComponent,\n TlnPageViewComponent,\n TlnViewerNavigation\n ], \n providers: [\n PageViewService,\n TlnQueryService\n ],\n entryComponents: [TlnInformationComponent]\n})\nexport class TlnEditionModule { }\n","export default \"#navi {\\n width: 100%;\\n height: 50px;\\n margin: 0;\\n padding: 0;\\n white-space: nowrap;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tZnVsbHRleHQvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxXQUFXO0dBQ1gsWUFBWTtHQUNaLFNBQVM7R0FDVCxVQUFVO0dBQ1YsbUJBQW1CO0FBQ3RCIiwiZmlsZSI6ImFwcC90bG4tZWRpdGlvbi90bG4tZnVsbHRleHQvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjbmF2aSB7XG4gICB3aWR0aDogMTAwJTtcbiAgIGhlaWdodDogNTBweDtcbiAgIG1hcmdpbjogMDtcbiAgIHBhZGRpbmc6IDA7XG4gICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuIl19 */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'fulltext-navigation',\n templateUrl: './navigation.component.html',\n styleUrls: ['./navigation.component.css']\n})\nexport class FulltextNavigationComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { FoundPage} from '../datatypes/search';\n\nexport interface ResultRange {\n start: number;\n end: number;\n}\n\n@Pipe({\n name: 'pageResultFilter'\n})\nexport class PageResultFilterPipe implements PipeTransform {\n\n transform(results: FoundPage[], range: ResultRange): FoundPage[] {\n if (results.length <= range.start){\n return results;\n }\n return results.slice(range.start, range.end);\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { FoundPage} from '../datatypes/search';\n@Pipe({\n name: 'resultPipe'\n})\nexport class ResultPipePipe implements PipeTransform {\n\n transform(pages: FoundPage[]): string {\n if (pages.length == 0){\n return 'Keine Treffer'\n }\n let pageResult = (pages.length > 1) ? pages.length + ' Seiten' : pages[0].title + ' ' + pages[0].number;\n let numFoundWords = 0;\n pages.forEach(page =>page.results.forEach(result =>numFoundWords++));\n return numFoundWords + ' Treffer auf ' + pageResult;\n }\n\n}\n","export default \"#page {\\n width: 98%;\\n position: relative;\\n top: 0px;\\n left: 0px;\\n height: 100%;\\n overflow: visible;\\n}\\n.icon-button {\\n width: 15px;\\n margin-left: 3px;\\n}\\n.page-navi {\\n float: left;\\n margin-top: -3px;\\n margin-bottom: 1px;\\n height: 38px;\\n background-color: lightblue;\\n z-index: 2;\\n}\\n.default-mouse {\\n cursor: default;\\n}\\n.small-grey {\\n color: lightgrey;\\n font-size: 80%;\\n}\\n.text {\\n position: absolute;\\n top: 10px;\\n left: 500px;\\n}\\n.search {\\n position: relative;\\n top: 60px;\\n width: 500px;\\n height: 100%;\\n text-align: center;\\n margin-right: 20px;\\n}\\n.extra-space {\\n margin-top: 45px;\\n}\\n.title {\\n text-align: left;\\n margin-left: 20px;\\n}\\n.form {\\n width: 95%;\\n}\\n.full-width {\\n min-width: 150px;\\n max-width: 500px;\\n width: 80%;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tZnVsbHRleHQvdGxuLWZ1bGx0ZXh0LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxVQUFVO0dBQ1Ysa0JBQWtCO0dBQ2xCLFFBQVE7R0FDUixTQUFTO0dBQ1QsWUFBWTtHQUNaLGlCQUFpQjtBQUNwQjtBQUNBO0dBQ0csV0FBVztHQUNYLGdCQUFnQjtBQUNuQjtBQUNBO0dBQ0csV0FBVztHQUNYLGdCQUFnQjtHQUNoQixrQkFBa0I7R0FDbEIsWUFBWTtHQUNaLDJCQUEyQjtHQUMzQixVQUFVO0FBQ2I7QUFDQTtHQUNHLGVBQWU7QUFDbEI7QUFDQTtHQUNHLGdCQUFnQjtHQUNoQixjQUFjO0FBQ2pCO0FBQ0E7R0FDRyxrQkFBa0I7R0FDbEIsU0FBUztHQUNULFdBQVc7QUFDZDtBQUNBO0dBQ0csa0JBQWtCO0dBQ2xCLFNBQVM7R0FDVCxZQUFZO0dBQ1osWUFBWTtHQUNaLGtCQUFrQjtHQUNsQixrQkFBa0I7QUFDckI7QUFDQTtHQUNHLGlCQUFpQjtBQUNwQjtBQUNBO0dBQ0csZ0JBQWdCO0dBQ2hCLGlCQUFpQjtBQUNwQjtBQUNBO0VBQ0UsVUFBVTtBQUNaO0FBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsZ0JBQWdCO0VBQ2hCLFVBQVU7QUFDWiIsImZpbGUiOiJhcHAvdGxuLWVkaXRpb24vdGxuLWZ1bGx0ZXh0L3Rsbi1mdWxsdGV4dC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI3BhZ2Uge1xuICAgd2lkdGg6IDk4JTtcbiAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgIHRvcDogMHB4O1xuICAgbGVmdDogMHB4O1xuICAgaGVpZ2h0OiAxMDAlO1xuICAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4uaWNvbi1idXR0b24ge1xuICAgd2lkdGg6IDE1cHg7XG4gICBtYXJnaW4tbGVmdDogM3B4O1xufVxuLnBhZ2UtbmF2aSB7XG4gICBmbG9hdDogbGVmdDtcbiAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICBtYXJnaW4tYm90dG9tOiAxcHg7XG4gICBoZWlnaHQ6IDM4cHg7XG4gICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGJsdWU7XG4gICB6LWluZGV4OiAyO1xufVxuLmRlZmF1bHQtbW91c2Uge1xuICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLnNtYWxsLWdyZXkge1xuICAgY29sb3I6IGxpZ2h0Z3JleTtcbiAgIGZvbnQtc2l6ZTogODAlO1xufVxuLnRleHQge1xuICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgdG9wOiAxMHB4O1xuICAgbGVmdDogNTAwcHg7XG59XG4uc2VhcmNoIHtcbiAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgIHRvcDogNjBweDtcbiAgIHdpZHRoOiA1MDBweDtcbiAgIGhlaWdodDogMTAwJTtcbiAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgIG1hcmdpbi1yaWdodDogMjBweDtcbn1cbi5leHRyYS1zcGFjZSB7XG4gICBtYXJnaW4tdG9wOiAgNDVweDtcbn1cbi50aXRsZSB7XG4gICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG59XG4uZm9ybSB7XG4gIHdpZHRoOiA5NSU7XG59XG4uZnVsbC13aWR0aCB7XG4gIG1pbi13aWR0aDogMTUwcHg7XG4gIG1heC13aWR0aDogNTAwcHg7XG4gIHdpZHRoOiA4MCU7XG59XG4iXX0= */\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport {PageEvent} from '@angular/material/paginator';\nimport { TLN_CROSSREF_ROUTE, TLN_SEARCH_ROUTE, TLN_MANUSCRIPT_ROUTE, TLN_VIEWER_ROUTE, TLN_CONTEXT_VIEW_PARAM, TLN_FULLSCREEN_PARAM, TLN_FIND_PARAM, TLN_PAGE_PARAM, TLN_MANUSCRIPT_PARAM,\n TLN_RESULT_INDEX_PARAM,TLN_SELECTED_LINES_PARAM, TLN_TEXT_GENETIC_ORDER_PARAM, TLN_VIEW_OPTION_PARAM, TLN_ZOOM_PARAM, VIEW_OPTIONS, ONTOLOTY_PREFIX } from '../constants';\nimport { DataHandler } from '../data_handler';\nimport { FoundPage} from '../datatypes/search';\nimport { Mapping } from '../route-reader';\nimport { RouteUpdater } from '../route-updater';\nimport { TlnQueryService } from '../services';\nimport { ResultRange } from './page-result-filter.pipe';\n//TODO: german language support for paginator, see: https://github.com/ngx-translate/core\n@Component({\n selector: 'tln-fulltext',\n templateUrl: './tln-fulltext.component.html',\n styleUrls: ['./tln-fulltext.component.css']\n})\nexport class TlnFulltextComponent extends RouteUpdater implements OnInit {\n protected currentRoute: string = TLN_SEARCH_ROUTE;\n current_page_iri: string;\n current_manuscript_unity: string;\n dataHandler: DataHandler = new DataHandler(this);\n fullscreen: boolean;\n max_width: number = -1;\n max_height: number = -1;\n searchTerm: string;\n resultIndex: number = 0;\n resultLength: number = 5;\n resultRange: ResultRange = { start: 0, end: 4 }; \n resultsReceived: boolean = false;\n selectedViewOption: string = VIEW_OPTIONS.TRANSKRIPTION\n startSearch: boolean = false;\n protected mapping: Mapping = { \n current_page_iri: { param: TLN_PAGE_PARAM, type: \"string\" },\n resultIndex: { param: TLN_RESULT_INDEX_PARAM, type: \"number\" },\n searchTerm: { param: TLN_FIND_PARAM, type: \"string\" },\n current_manuscript_unity: { param: TLN_MANUSCRIPT_PARAM, type: \"string\" },\n fullscreen: { param: TLN_FULLSCREEN_PARAM, type: \"boolean\" },\n }\n pages: FoundPage[] = [];\n private readonly margin_width: number = 280;\n private readonly initialPreviewWidth : number = 300;\n previewWidth: number = this.initialPreviewWidth;\n\n constructor(private tlnQueryService: TlnQueryService, protected router: Router, protected activatedRoute: ActivatedRoute ) { \n super(router, activatedRoute);\n }\n\n ngOnInit() {\n if (screen.availWidth - this.initialPreviewWidth - this.margin_width > 1000){\n this.previewWidth = screen.availWidth - this.initialPreviewWidth - 1000;\n }\n this.max_width = screen.availWidth - this.previewWidth - this.margin_width;\n this.max_height = screen.availHeight - 200;\n this.dataHandler.addHandler('pages', { 'handler': FoundPage});\n this.dataHandler['pages']['service'] = this\n this.dataHandler.setQueryService(this.tlnQueryService);\n this.dataHandler.start_processing.subscribe(\n (started: boolean) =>{ \n this.resultsReceived = false;\n this.startSearch = true;\n });\n this.dataHandler.processing_finished.subscribe(\n (finished: boolean) =>{ \n this.resultsReceived = true;\n this.startSearch = false;\n });\n super.ngOnInit();\n }\n private clearFindText() {\n this.searchTerm = '';\n this.pages = [];\n this.resultIndex = 0;\n super.updateParams();\n }\n private search(){\n this.resultIndex = 0;\n this.updateResultRange();\n super.updateParams();\n if (this.searchTerm != undefined && this.searchTerm != null && this.searchTerm != ''){\n this.dataHandler.resetData('pages');\n this.dataHandler.getData('pages', this.searchTerm);\n }\n }\n protected readParams(params: Params){\n let oldSearchTerm = this.searchTerm;\n let oldResultIndex = this.resultIndex;\n super.readParams(params);\n if (this.searchTerm != undefined && this.searchTerm != null && this.searchTerm != '' && this.searchTerm != oldSearchTerm){\n this.resultIndex = 0;\n this.dataHandler.getData('pages', this.searchTerm);\n } \n if(oldResultIndex != this.resultIndex){\n this.updateResultRange();\n }\n }\n getSearchTerms(): string[] {\n return this.searchTerm.split(' '); \n }\n showResults(event: PageEvent){\n this.resultIndex = event.pageIndex; \n this.updateResultRange();\n this.updateParams()\n }\n private updateResultRange(){\n let newStart = this.resultIndex*this.resultLength\n let newEnd = newStart+this.resultLength;\n this.resultRange = { start: newStart, end: newEnd };\n }\n}\n","import { Directive, ElementRef, OnInit, Input } from '@angular/core';\nimport { TlnPageViewComponent } from './tln-page-view.component';\n\n@Directive({\n selector: '[setMaxHeightTo]'\n})\nexport class TlnHeightDirective implements OnInit{\n @Input('setMaxHeightTo') pageView: TlnPageViewComponent;\n constructor(public el: ElementRef) { }\n\n ngOnInit(){\n if (this.pageView != undefined && this.pageView != null){\n this.pageView.max_height = window.innerHeight - this.el.nativeElement.offsetHeight -15;\n }\n }\n}\n","export default \".highlight {\\n text-decoration: underline;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4taW5mb3JtYXRpb24vdGxuLWluZm9ybWF0aW9uLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRywwQkFBMEI7QUFDN0IiLCJmaWxlIjoiYXBwL3Rsbi1lZGl0aW9uL3Rsbi1pbmZvcm1hdGlvbi90bG4taW5mb3JtYXRpb24uY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5oaWdobGlnaHQge1xuICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4iXX0= */\"","import { Component, Inject, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { MAT_BOTTOM_SHEET_DATA, MatBottomSheetRef} from '@angular/material/bottom-sheet';\nimport { ManuscriptUnity, NavigationPage} from '../models';\nimport { Mapping, RouteReader } from '../route-reader';\nimport { RouteUpdater } from '../route-updater';\nimport { TlnTextGeneticOrder} from '../datatypes/text_version';\nimport { TLN_PAGE_PARAM, TLN_MANUSCRIPT_PARAM, TLN_TEXT_GENETIC_ORDER_PARAM, TLN_CROSSREF_ROUTE } from '../constants';\nimport { TlnViewerNavigation } from '../tln-viewer-navigation/tln-viewer-navigation.component';\nimport { PositionalStyleMarkup, StyleSheetDef, StandoffMarkupSettings} from '../../lib/ngx-mat-standoff-markup.component';\nimport { TlnPositionalStyleMarkup, TlnFilteredPositionalStyleMarkup } from '../datatypes/positional-markup';\n\nexport interface ParentInformation {\n geneticOrders: TlnTextGeneticOrder[];\n page: NavigationPage;\n manuscript_iri: string;\n parentActivatedRoute?: ActivatedRoute;\n}\n\n@Component({\n selector: 'app-tln-information',\n templateUrl: './tln-information.component.html',\n styleUrls: ['./tln-information.component.css']\n})\nexport class TlnInformationComponent extends RouteUpdater implements OnInit {\n /**\n * IRI of the current page\n **/\n current_iri: string;\n /**\n * the current page\n **/\n current_page: NavigationPage;\n /**\n * the data handler of this component that retrieves\n * data and instantiates it according to their proper \n * datatypes.\n **/\n geneticOrders: TlnTextGeneticOrder[] = [];\n current_manuscript_iri: string;\n current_genetic_order: string;\n protected currentRoute: string = TLN_CROSSREF_ROUTE;\n protected mapping: Mapping = { \n current_iri: { param: TLN_PAGE_PARAM, type: \"string\" },\n current_manuscript_iri: { param: TLN_MANUSCRIPT_PARAM, type: \"string\" },\n current_genetic_order: { param: TLN_TEXT_GENETIC_ORDER_PARAM, type: \"string\" } \n }\n\n constructor(@Inject(MAT_BOTTOM_SHEET_DATA) private data: ParentInformation, private bottomSheetRef: MatBottomSheetRef<TlnViewerNavigation>, protected router: Router, protected activatedRoute: ActivatedRoute ){ \n super(router, activatedRoute);\n this.current_page = data.page;\n this.geneticOrders = data.geneticOrders;\n this.current_manuscript_iri = data.manuscript_iri;\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n private openCrossRef(geneticOrder: TlnTextGeneticOrder){\n this.current_genetic_order = geneticOrder.id; \n this.current_iri = <string>this.current_page.id\n this.updateParams();\n }\n\n}\n","export default \"img.thumb {\\n overflow: auto;\\n padding: 0 20px;\\n text-align: center;\\n}\\ntd.author {\\n text-align: left;\\n width: 150px;\\n vertical-align: top;\\n padding-right: 10px;\\n}\\ntd.text {\\n text-align: justify;\\n width: 600px;\\n}\\np.text {\\n text-align: justify;\\n width: 760px;\\n}\\nbutton.nospace {\\n /*margin: -12px;*/\\n max-width: 15px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tbWFudXNjcmlwdC12aWV3L3Rsbi1tYW51c2NyaXB0LXZpZXcuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLGNBQWM7R0FDZCxlQUFlO0dBQ2Ysa0JBQWtCO0FBQ3JCO0FBQ0E7R0FDRyxnQkFBZ0I7R0FDaEIsWUFBWTtHQUNaLG1CQUFtQjtHQUNuQixtQkFBbUI7QUFDdEI7QUFDQTtHQUNHLG1CQUFtQjtHQUNuQixZQUFZO0FBQ2Y7QUFDQTtHQUNHLG1CQUFtQjtHQUNuQixZQUFZO0FBQ2Y7QUFDQTtHQUNHLGlCQUFpQjtHQUNqQixlQUFlO0FBQ2xCIiwiZmlsZSI6ImFwcC90bG4tZWRpdGlvbi90bG4tbWFudXNjcmlwdC12aWV3L3Rsbi1tYW51c2NyaXB0LXZpZXcuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbImltZy50aHVtYiB7XG4gICBvdmVyZmxvdzogYXV0bztcbiAgIHBhZGRpbmc6IDAgMjBweDtcbiAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbnRkLmF1dGhvciB7XG4gICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgd2lkdGg6IDE1MHB4O1xuICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG59XG50ZC50ZXh0IHtcbiAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICB3aWR0aDogNjAwcHg7XG59XG5wLnRleHQge1xuICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgIHdpZHRoOiA3NjBweDtcbn1cbmJ1dHRvbi5ub3NwYWNlIHtcbiAgIC8qbWFyZ2luOiAtMTJweDsqL1xuICAgbWF4LXdpZHRoOiAxNXB4O1xufVxuIl19 */\"","import { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { TLN_CROSSREF_ROUTE, TLN_MANUSCRIPT_ROUTE, TLN_VIEWER_ROUTE, TLN_CONTEXT_VIEW_PARAM, TLN_FULLSCREEN_PARAM, TLN_FIND_PARAM, TLN_PAGE_PARAM, TLN_MANUSCRIPT_PARAM,\n TLN_SELECTED_LINES_PARAM, TLN_TEXT_GENETIC_ORDER_PARAM, TLN_VIEW_OPTION_PARAM, TLN_ZOOM_PARAM, VIEW_OPTIONS, ONTOLOTY_PREFIX } from '../constants';\nimport { DataHandler } from '../data_handler';\nimport { ReconstructedKonvolut, TlnExtManuscript, ManuscriptEarlierDescription, ManuscriptDescription } from '../datatypes/manuscript';\nimport { PageStub } from '../datatypes/page';\nimport { Mapping } from '../route-reader';\nimport { RouteUpdater } from '../route-updater';\nimport { TlnQueryService } from '../services';\nimport { PositionalStyleMarkup, StyleSheetDef, StandoffMarkupSettings} from '../../lib/ngx-mat-standoff-markup.component';\n\n@Component({\n selector: 'tln-manuscript-view',\n templateUrl: './tln-manuscript-view.component.html',\n styleUrls: ['./tln-manuscript-view.component.css']\n})\nexport class TlnManuscriptViewComponent extends RouteUpdater implements OnInit {\n contextView: string = TLN_MANUSCRIPT_PARAM;\n protected currentRoute: string = TLN_MANUSCRIPT_ROUTE;\n current_manuscript: TlnExtManuscript;\n current_manuscript_unity: string;\n current_page_iri: string;\n cssDef: StyleSheetDef = { type: 'text', css: '' }\n dataHandler: DataHandler = new DataHandler(this);\n earlierDescriptions: ManuscriptEarlierDescription[] = [];\n fullscreen: boolean;\n manuscriptDescription?: ManuscriptDescription;\n reconstructedKonvolut?: ReconstructedKonvolut;\n protected mapping: Mapping = { \n contextView: { param: TLN_CONTEXT_VIEW_PARAM, type: \"string\" },\n current_page_iri: { param: TLN_PAGE_PARAM, type: \"string\" },\n current_manuscript_unity: { param: TLN_MANUSCRIPT_PARAM, type: \"string\" },\n fullscreen: { param: TLN_FULLSCREEN_PARAM, type: \"boolean\" },\n }\n mySettings = new StandoffMarkupSettings(true, true, false, 1);\n pages: PageStub[] = [];\n\n constructor(private tlnQueryService: TlnQueryService, protected router: Router, protected activatedRoute: ActivatedRoute ) { \n super(router, activatedRoute);\n }\n\n ngOnInit() {\n this.dataHandler.addHandler('manuscript_content', ['current_manuscript','manuscriptDescription', 'earlierDescriptions', 'pages', 'reconstructedKonvolut'] );\n this.dataHandler.addHandler('current_manuscript', { 'handler': TlnExtManuscript });\n this.dataHandler.addHandler('manuscriptDescription', { 'handler': ManuscriptDescription});\n this.dataHandler.addHandler('earlierDescriptions', { 'handler': ManuscriptEarlierDescription});\n this.dataHandler.addHandler('pages', { 'handler': PageStub });\n this.dataHandler.addHandler('reconstructedKonvolut', { 'handler': ReconstructedKonvolut});\n this.dataHandler.setQueryService(this.tlnQueryService);\n super.ngOnInit();\n }\n protected readParams(params: Params){\n let old_manuscript_unity = this.current_manuscript_unity;\n super.readParams(params);\n if (this.dataHandler.ready){\n if (this.current_manuscript_unity != null && this.current_manuscript_unity != old_manuscript_unity){\n this.dataHandler.resetData('manuscript_content')\n this.dataHandler.getData('manuscript_content', this.current_manuscript_unity);\n }\n }\n }\n private openInViewer(pageIri: string, launch: boolean){\n this.current_page_iri = pageIri;\n this.currentRoute = TLN_VIEWER_ROUTE;\n this.fullscreen = true;\n this.updateParams(launch);\n }\n\n}\n","export default \".icon-button {\\n width: 15px;\\n margin-left: 3px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL3Rsbi1lZGl0aW9uL3Rsbi1uYXZpZ2F0aW9uLWVsZW1lbnRzL29wZW4taW4tdmlld2VyLmNvbXBvbmVudC5zY3NzIiwiYXBwL3Rsbi1lZGl0aW9uL3Rsbi1uYXZpZ2F0aW9uLWVsZW1lbnRzL29wZW4taW4tdmlld2VyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0csV0FBQTtFQUNBLGdCQUFBO0FDQ0giLCJmaWxlIjoiYXBwL3Rsbi1lZGl0aW9uL3Rsbi1uYXZpZ2F0aW9uLWVsZW1lbnRzL29wZW4taW4tdmlld2VyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmljb24tYnV0dG9uIHtcbiAgIHdpZHRoOiAxNXB4OyBcbiAgIG1hcmdpbi1sZWZ0OiAzcHg7XG59XG4iLCIuaWNvbi1idXR0b24ge1xuICB3aWR0aDogMTVweDtcbiAgbWFyZ2luLWxlZnQ6IDNweDtcbn0iXX0= */\"","import { Component, Input, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { TLN_VIEWER_ROUTE, TLN_PAGE_PARAM, TLN_MANUSCRIPT_PARAM } from '../constants';\nimport { Mapping } from '../route-reader';\nimport { RouteUpdater } from '../route-updater';\nimport { NavigationPage } from '../models';\n\ninterface ViewerRouteInformation {\n title: string;\n number: string;\n page: string;\n manuscript?: string;\n launchExternally?: boolean;\n}\n@Component({\n selector: 'open-in-viewer',\n templateUrl: './open-in-viewer.component.html',\n styleUrls: ['./open-in-viewer.component.scss']\n})\nexport class OpenInViewerComponent extends RouteUpdater {\n @Input() routerInformation: ViewerRouteInformation;\n launch: boolean = false;\n page: NavigationPage;\n protected currentRoute: string = TLN_VIEWER_ROUTE;\n current_iri: string;\n current_manuscript_unity: string;\n protected mapping: Mapping = { current_iri: { param: TLN_PAGE_PARAM, type: \"string\" },\n current_manuscript_unity: { param: TLN_MANUSCRIPT_PARAM, type: \"string\" }}\n\n constructor(protected router: Router, protected activatedRoute: ActivatedRoute ) { \n super(router, activatedRoute);\n }\n ngOnInit(){\n super.ngOnInit();\n this.page = { id: this.routerInformation.page, \n number: this.routerInformation.number,\n title: this.routerInformation.title };\n this.launch = (this.routerInformation.launchExternally != undefined \n && this.routerInformation.launchExternally != null\n && this.routerInformation.launchExternally)\n }\n private openInViewer(){\n if (this.routerInformation != undefined && this.routerInformation != null){\n this.current_iri = this.routerInformation.page;\n if (this.routerInformation.manuscript != undefined && this.routerInformation != null){\n this.current_manuscript_unity = this.routerInformation.manuscript;\n }\n this.updateParams(this.launch);\n }\n }\n\n}\n","export default \".search {\\n margin-left: 8px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tbmF2aWdhdGlvbi1lbGVtZW50cy9zZWFyY2guY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLGdCQUFnQjtBQUNuQiIsImZpbGUiOiJhcHAvdGxuLWVkaXRpb24vdGxuLW5hdmlnYXRpb24tZWxlbWVudHMvc2VhcmNoLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc2VhcmNoIHtcbiAgIG1hcmdpbi1sZWZ0OiA4cHg7XG59XG4iXX0= */\"","import { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { TLN_SEARCH_ROUTE, TLN_FIND_PARAM } from '../constants';\nimport { Mapping } from '../route-reader';\nimport { RouteUpdater } from '../route-updater';\n\n@Component({\n selector: 'search',\n templateUrl: './search.component.html',\n styleUrls: ['./search.component.css']\n})\nexport class SearchComponent extends RouteUpdater {\n findText: string;\n protected mapping: Mapping = { findText: { param: TLN_FIND_PARAM, type: \"string\" }}\n\n constructor(protected router: Router, protected activatedRoute: ActivatedRoute ) { \n super(router, activatedRoute);\n }\n openFulltextSearch(){\n this.currentRoute = TLN_SEARCH_ROUTE\n this.updateParams();\n }\n private clearFindText() {\n this.findText = '';\n this.updateParams();\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhcHAvdGxuLWVkaXRpb24vdGxuLW5hdmlnYXRpb24tZWxlbWVudHMvdG9nZ2xlLW5hdmlnYXRpb24uY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { TLN_SEARCH_ROUTE, TLN_FULLSCREEN_PARAM, TLN_NAV_BAR_OPEN_STATE_PARAM} from '../constants';\nimport { Mapping } from '../route-reader';\nimport { RouteUpdater } from '../route-updater';\n\n\n@Component({\n selector: 'toggle-navigation',\n templateUrl: './toggle-navigation.component.html',\n styleUrls: ['./toggle-navigation.component.css']\n})\n\nexport class ToggleNavigationComponent extends RouteUpdater {\n fullscreen: boolean = false;\n navBarOpenState: boolean = false;\n protected mapping: Mapping = { \n navBarOpenState: { param: TLN_NAV_BAR_OPEN_STATE_PARAM, type: \"boolean\" },\n fullscreen: { param: TLN_FULLSCREEN_PARAM, type: \"boolean\" }\n }\n\n constructor(protected router: Router, protected activatedRoute: ActivatedRoute ) { \n super(router, activatedRoute);\n }\n private toggleFullscreen(){\n this.fullscreen = !this.fullscreen;\n this.updateParams();\n }\n toggleNavDrawer(){\n this.navBarOpenState = !this.navBarOpenState;\n this.updateParams();\n }\n}\n","export default \".zoom {\\n max-width: 20px;\\n}\\n.zoom-in {\\n cursor: zoom-in;\\n}\\n.zoom-out {\\n cursor: zoom-out;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tbmF2aWdhdGlvbi1lbGVtZW50cy96b29tLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxlQUFlO0FBQ2xCO0FBQ0E7R0FDRyxlQUFlO0FBQ2xCO0FBQ0E7R0FDRyxnQkFBZ0I7QUFDbkIiLCJmaWxlIjoiYXBwL3Rsbi1lZGl0aW9uL3Rsbi1uYXZpZ2F0aW9uLWVsZW1lbnRzL3pvb20uY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi56b29tIHtcbiAgIG1heC13aWR0aDogMjBweDtcbn1cbi56b29tLWluIHtcbiAgIGN1cnNvcjogem9vbS1pbjtcbn1cbi56b29tLW91dCB7XG4gICBjdXJzb3I6IHpvb20tb3V0O1xufVxuIl19 */\"","import { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { TLN_ZOOM_PARAM } from '../constants';\nimport { Mapping } from '../route-reader';\nimport { RouteUpdater } from '../route-updater';\n\n@Component({\n selector: 'zoom',\n templateUrl: './zoom.component.html',\n styleUrls: ['./zoom.component.css']\n})\nexport class ZoomComponent extends RouteUpdater {\n private readonly increment: number = 0.25;\n private readonly decrement: number = this.increment*-1;\n zoomFactor: number = 1;\n protected mapping: Mapping = { zoomFactor: { param: TLN_ZOOM_PARAM, type: \"number\" }}\n\n constructor(protected router: Router, protected activatedRoute: ActivatedRoute ) { \n super(router, activatedRoute);\n }\n private setZoomFactor(newZoomFactor: number){\n if (newZoomFactor > 0){\n this.zoomFactor = Math.round(newZoomFactor*100)/100;\n } else {\n this.zoomFactor = this.zoomFactor/2\n }\n this.updateParams();\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\ninterface ZoomObject {\n zoomFactor: number;\n changeValue: number;\n}\n\n@Pipe({\n name: 'zoomTitle'\n})\nexport class ZoomPipe implements PipeTransform {\n\n transform(zoom: ZoomObject): string {\n return (zoom.zoomFactor+zoom.changeValue < 0) ? Math.round(zoom.zoomFactor*50) + '%' : Math.round((zoom.zoomFactor+zoom.changeValue)*100) + '%';\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhcHAvdGxuLWVkaXRpb24vdGxuLXBhZ2Utdmlldy5jb21wb25lbnQuY3NzIn0= */\"","import { Component, Input, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { TlnQueryServiceInterface } from './models';\nimport { TlnQueryService } from './tln-query.service';\nimport { TlnPage} from './datatypes/page';\nimport { FaksimileImage } from './datatypes/faksimile_image';\nimport { SVGImage, SVGImageClip } from './datatypes/svg_image';\nimport { TlnImage } from './datatypes/image';\nimport { TlnLine, FaksimileLine } from './datatypes/line';\nimport { TlnWord, FaksimileWord } from './datatypes/word';\nimport { TlnTextByForeignHand, FaksimileTextByForeignHand } from './datatypes/foreign_text';\nimport { externalAssignClass, externalAssignStyle, Configuration, Identifier, Image, Line, Word } from './models';\nimport { ConfigurableComponent } from './services';\nimport { ComplexKeyIriMapping, DataHandler } from './data_handler';\nimport { DEFAULT_VIEW_OPTION, VIEW_OPTIONS, TLN_FULLSCREEN_PARAM, TLN_FIND_PARAM, TLN_PAGE_PARAM, TLN_SELECTED_LINES_PARAM, TLN_VIEW_OPTION_PARAM, TLN_ZOOM_PARAM } from './constants';\nimport { Mapping, RouteReader } from './route-reader';\n\n/**\n * Given a page IRI, this component will request all relevant information and\n * display the data with {@link /components/PageViewComponent.html|PageViewComponent}.\n **/\n@Component({\n selector: 'tln-page-view',\n templateUrl: './tln-page-view.component.html',\n styleUrls: ['./tln-page-view.component.css']\n})\nexport class TlnPageViewComponent extends RouteReader implements OnInit, OnChanges {\n @Input() configuration: Configuration = { '*': { 'useExtendedTooltip': true }};\n /**\n * IRI of the current page, the component will ignore page iri's from params if set.\n **/\n @Input('page') current_iri: string;\n /**\n * the search text of words that should be highlighted as {@link /miscellaneous/enumerations.html#HIGHTLIGHT_CASES|HIGHTLIGHT_CASES.SEARCHED_WORD}.\n **/\n @Input() findText: string;\n /**\n * whether or not to ignore the params\n **/\n private ignoreParams: boolean = false;\n /**\n * OPTIONAL pass a queryService with method \n * {@link /interfaces/TlnQueryServiceInterface.html#getData|getData}\n * to TlnPageViewComponent.\n **/\n @Input() queryService: TlnQueryServiceInterface;\n /**\n * global zoom factor.\n **/\n @Input() zoomFactor: number = 1;\n /**\n * identifiers of selected words that should be highlighted.\n **/\n @Input() selectedWords: Identifier[] = [];\n /**\n * identifiers of selected lines that should be highlighted.\n **/\n @Input() selectedLines: Identifier[] = [];\n /**\n * the (initial) maximum height of the image.\n **/\n @Input() max_height: number = -1;\n /**\n * the (initial) maximum width of the image, if both height and width are specified prefer width.\n **/\n @Input() max_width: number = -1;\n dontShowReference: boolean = false;\n @Input() startLine: Identifier;\n @Input() endLine: Identifier;\n /**\n * should primary Url be used for image. Use secondary Url if false.\n **/\n @Input() preferPrimaryUrl: boolean = true;\n /**\n * selected view option, i.e. one of the following \n * {@link /miscellaneous/enumerations.html#VIEW_OPTIONS|VIEW_OPTIONS}.\n * */\n @Input() selectedViewOption: string = DEFAULT_VIEW_OPTION;\n /**\n * An optional function that will be passed to {@link /components/TextFieldComponent.html|TextFieldComponent} \n * in order to return a further highlight class\n * to the word rects when the internal function would return 'textfield unhighlighted'. \n **/\n @Input('assignClass') assignClass?: externalAssignClass;\n /**\n * An optional function that will be passed to {@link /components/TextFieldComponent.html|TextFieldComponent}\n * and {@link /components/MarginFieldComponent.html|MarginFieldComponent}\n * in order to return a (svg-)style object \n * to the word and line rects. This function allows the user to extend the style of this component.\n * E.g. by returning { fill: blue } the function overwrites the default behaviour and sets\n * the default highlight color to blue.\n **/\n @Input('assignStyle') assignStyle?: externalAssignStyle;\n /**\n * the data handler of this component that retrieves\n * data and instantiates it according to their proper \n * datatypes.\n **/\n dataHandler: DataHandler = new DataHandler(this);\n /**\n * whether or not to show page view in fullscreen mode.\n **/\n fullscreen: boolean = false;\n /**\n * texts written by foreign hand \n **/\n foreignTexts: TlnTextByForeignHand[] = [];\n /**\n * the (first) image to be displayed by \n * {@link /components/PageViewComponent.html|PageViewComponent}.\n **/\n image: Image;\n /**\n * the Array of lines of the first image that will be displayed by {@link /components/MarginFieldComponent.html|MarginFieldComponent}.\n **/\n lines: Line[] = [];\n /**\n * texts written by foreign hand \n **/\n second_foreignTexts: FaksimileTextByForeignHand[] = [];\n /**\n * the second image that will be displayed by {@link /components/TextFieldComponent.html|TextFieldComponent}.\n **/\n second_image: Image;\n /**\n * the Array of lines of the second image that will be displayed by {@link /components/MarginFieldComponent.html|MarginFieldComponent}.\n **/\n second_lines: Line[] = [];\n /**\n * the Array of words of the second image that will be displayed by {@link /components/TextFieldComponent.html|TextFieldComponent}.\n **/\n second_words: Word[] = [];\n /**\n * the Array of words of the first image that will be displayed by {@link /components/TextFieldComponent.html|TextFieldComponent}.\n **/\n words: Word[] = [];\n @Input() multiInstanceMode: boolean = false;\n protected mapping: Mapping = { \n findText: { param: TLN_FIND_PARAM, type: \"string\" },\n fullscreen: { param: TLN_FULLSCREEN_PARAM, type: \"boolean\" },\n selectedViewOption: { param: TLN_VIEW_OPTION_PARAM, type: \"string\" },\n selectedLines: { param: TLN_SELECTED_LINES_PARAM, type: \"string\" },\n current_iri: { param: TLN_PAGE_PARAM, type: \"string\" },\n zoomFactor: { param: TLN_ZOOM_PARAM, type: \"number\" }\n }\n\n /**\n * @param localQueryService internal query service that will be used if no external queryService is passed \n * to input.\n **/\n constructor(private localQueryService: TlnQueryService, protected router: Router, protected activatedRoute: ActivatedRoute){ \n super(router, activatedRoute);\n }\n\n ngOnInit() {\n if (this.multiInstanceMode){\n this.mapping['current_iri']['ignore'] = (this.current_iri != null);\n this.mapping['selectedViewOption']['ignore'] = true;\n this.dontShowReference = true;\n //this.configuration['*']['useExtendedTooltip'] = false;\n }\n super.ngOnInit();\n let tlnQueryService = (this.queryService != null) ? this.queryService : this.localQueryService;\n let queryConfiguration: Configuration = { '*': { 'tlnQueryService': tlnQueryService }}\n this.configuration = ConfigurableComponent.updateConfiguration(this.configuration, queryConfiguration)\n this.dataHandler.addHandler('image', { 'handler': SVGImage });\n this.dataHandler.addHandler('words', { 'handler': TlnWord });\n this.dataHandler.addHandler('foreignTexts', { 'handler': TlnTextByForeignHand});\n this.dataHandler.addHandler('lines', { 'handler': TlnLine });\n this.dataHandler.addHandler('second_image',{ 'handler': FaksimileImage });\n this.dataHandler.addHandler('second_words',{ 'handler': FaksimileWord });\n this.dataHandler.addHandler('second_lines',{ 'handler': FaksimileLine });\n this.dataHandler.addHandler('second_foreignTexts', { 'handler': FaksimileTextByForeignHand});\n this.dataHandler.addHandler('page_content',[ 'image', 'lines', 'words', 'foreignTexts' ]);\n this.dataHandler.addHandler('second_page_content', [ 'second_image', 'second_lines', 'second_words', 'second_foreignTexts' ] );\n this.dataHandler.setQueryService(tlnQueryService);\n this.updatePageData();\n }\n ngOnChanges(change: SimpleChanges) {\n if (this.dataHandler.ready \n && (change.current_iri != undefined && change.current_iri != null && !change.current_iri.firstChange)\n || (change.selectedViewOption != undefined && change.selectedViewOption != null && !change.selectedViewOption.firstChange)) {\n this.updatePageData();\n } \n }\n protected readParams(params: Params){\n let old_page_iri = this.current_iri;\n let old_selectedViewOption = this.selectedViewOption;\n let old_fullscreen = this.fullscreen\n super.readParams(params);\n if (this.dataHandler.ready \n && (old_page_iri != this.current_iri || old_selectedViewOption != this.selectedViewOption)){\n this.updatePageData();\n }\n if (old_fullscreen != this.fullscreen && !this.multiInstanceMode){\n //this.dontShowReference = !this.fullscreen; \n //this.configuration['*']['useExtendedTooltip'] = this.fullscreen;\n }\n }\n /**\n * This function updates the page data by setting the handlers for the current \n * {@link #selectedViewOption|selectedViewOption} and by retrieving the data.\n **/\n private updatePageData(){\n this.dataHandler['image']['handler'] = (this.selectedViewOption != VIEW_OPTIONS.FAKSIMILE && this.selectedViewOption != VIEW_OPTIONS.SYNOPSIS_B) ? SVGImage : FaksimileImage ; \n this.dataHandler['words']['handler'] = (this.selectedViewOption != VIEW_OPTIONS.FAKSIMILE && this.selectedViewOption != VIEW_OPTIONS.SYNOPSIS_B) ? TlnWord : FaksimileWord ; \n this.dataHandler['lines']['handler'] = (this.selectedViewOption != VIEW_OPTIONS.FAKSIMILE && this.selectedViewOption != VIEW_OPTIONS.SYNOPSIS_B) ? TlnLine : FaksimileLine ; \n this.dataHandler['foreignTexts']['handler'] = (this.selectedViewOption != VIEW_OPTIONS.FAKSIMILE && this.selectedViewOption != VIEW_OPTIONS.SYNOPSIS_B) \n ? TlnTextByForeignHand : FaksimileTextByForeignHand ; \n if (this.dataHandler['page_content'][this.dataHandler['page_content'].length-1] == 'second_page_content'){\n this.dataHandler['page_content'].pop(); \n this.second_image = null;\n this.second_foreignTexts = [];\n this.second_words = [];\n this.second_lines = [];\n }\n if (this.selectedViewOption == VIEW_OPTIONS.SYNOPSIS || this.selectedViewOption == VIEW_OPTIONS.SYNOPSIS_B){\n this.dataHandler['second_image']['handler'] = (this.selectedViewOption == VIEW_OPTIONS.SYNOPSIS_B) ? SVGImage : FaksimileImage ; \n this.dataHandler['second_words']['handler'] = (this.selectedViewOption == VIEW_OPTIONS.SYNOPSIS_B) ? TlnWord : FaksimileWord ; \n this.dataHandler['second_lines']['handler'] = (this.selectedViewOption == VIEW_OPTIONS.SYNOPSIS_B) ? TlnLine : FaksimileLine ; \n this.dataHandler['second_foreignTexts']['handler'] = (this.selectedViewOption == VIEW_OPTIONS.SYNOPSIS_B) ? TlnTextByForeignHand : FaksimileTextByForeignHand ; \n this.dataHandler['page_content'].push('second_page_content');\n } \n if (this.current_iri != null){\n this.dataHandler.resetData('page_content');\n if (this.startLine != null && this.startLine != undefined){\n this.dataHandler['image']['handler'] = SVGImageClip ; \n let endLine = (this.endLine != null && this.endLine != undefined) ? this.endLine : this.startLine;\n let complex: ComplexKeyIriMapping = { idIndex: 0, \n mapping: [ { key: 'page', iri: this.current_iri}, { key: 'startLine', iri: <string>this.startLine}, {key: 'endLine', iri: <string>endLine} ]\n }\n this.dataHandler['page_content'] = this.dataHandler['page_content'].filter(key =>key != 'image')\n this.dataHandler.getData4Keys('image', complex);\n } else if (this.dataHandler['page_content'].indexOf('image') == -1){\n this.dataHandler['page_content'].splice(0, 0, 'image')\n }\n this.dataHandler.getData('page_content', this.current_iri);\n }\n }\n\n}\n","import { Injectable, EventEmitter } from '@angular/core';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { TlnQueryServiceInterface } from './models';\n/**\n * This is the internal query service \n * that communicates with the SPARQL-endpoint.\n * */\n@Injectable()\nexport class TlnQueryService implements TlnQueryServiceInterface {\n //baseUrl = 'http://localhost:3030/nietzsche/query';\n baseUrl = 'https://nietzsche.fuseki.services.dasch.swiss/nietzsche'\n reset_data = new EventEmitter<string>();\n\n constructor(private http: HttpClient) { }\n\n public resetData(key: string){\n this.reset_data.emit(key);\n }\n /**\n * Gets the data from an endpoint via http post\n *\n * @param query: The query to run.\n * @returns response\n */\n public getData(query: string): Observable<any> {\n let httpOptions = { \n headers: new HttpHeaders(\n { 'Content-Type': 'application/sparql-query',\n 'Accept': 'application/sparql-results+json; charset=UTF-8'}\n )\n };\n return this.http.post(this.baseUrl, query, httpOptions); \n }\n\n}\n\n\n","export default \"#navi {\\n width: 100%;\\n height: 50px;\\n margin: 0;\\n padding: 0;\\n white-space: nowrap;\\n}\\n.search {\\n margin-left: 8px;\\n }\\n.zoom {\\n max-width: 20px;\\n}\\n.zoom-in {\\n cursor: zoom-in;\\n}\\n.zoom-out {\\n cursor: zoom-out;\\n}\\n.mat-button.min-width {\\n min-width: 120px;\\n max-width: 120px;\\n}\\n.default-mouse {\\n cursor: default;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tdmlld2VyLW5hdmlnYXRpb24vdGxuLXZpZXdlci1uYXZpZ2F0aW9uLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxXQUFXO0dBQ1gsWUFBWTtHQUNaLFNBQVM7R0FDVCxVQUFVO0dBQ1YsbUJBQW1CO0FBQ3RCO0FBQ0E7R0FDRyxnQkFBZ0I7Q0FDbEI7QUFDRDtHQUNHLGVBQWU7QUFDbEI7QUFDQTtHQUNHLGVBQWU7QUFDbEI7QUFDQTtHQUNHLGdCQUFnQjtBQUNuQjtBQUNBO0dBQ0csZ0JBQWdCO0dBQ2hCLGdCQUFnQjtBQUNuQjtBQUNBO0dBQ0csZUFBZTtBQUNsQiIsImZpbGUiOiJhcHAvdGxuLWVkaXRpb24vdGxuLXZpZXdlci1uYXZpZ2F0aW9uL3Rsbi12aWV3ZXItbmF2aWdhdGlvbi5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI25hdmkge1xuICAgd2lkdGg6IDEwMCU7XG4gICBoZWlnaHQ6IDUwcHg7XG4gICBtYXJnaW46IDA7XG4gICBwYWRkaW5nOiAwO1xuICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5zZWFyY2gge1xuICAgbWFyZ2luLWxlZnQ6IDhweDtcbiB9XG4uem9vbSB7XG4gICBtYXgtd2lkdGg6IDIwcHg7XG59XG4uem9vbS1pbiB7XG4gICBjdXJzb3I6IHpvb20taW47XG59XG4uem9vbS1vdXQge1xuICAgY3Vyc29yOiB6b29tLW91dDtcbn1cbi5tYXQtYnV0dG9uLm1pbi13aWR0aCB7XG4gICBtaW4td2lkdGg6IDEyMHB4O1xuICAgbWF4LXdpZHRoOiAxMjBweDtcbn1cbi5kZWZhdWx0LW1vdXNlIHtcbiAgIGN1cnNvcjogZGVmYXVsdDtcbn1cbiJdfQ== */\"","import { Component, OnInit, Input, ElementRef } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport {MatBottomSheet, MatBottomSheetRef} from '@angular/material/bottom-sheet';\nimport { TlnQueryServiceInterface, Reference, ManuscriptUnity, NavigationPage } from '../models';\nimport { TlnManuscriptUnity, TlnNavigationPage} from '../datatypes/navigation';\nimport { DEFAULT_VIEW_OPTION, TLN_VIEWER_ROUTE, TLN_FULLSCREEN_PARAM, TLN_FIND_PARAM, TLN_NAV_BAR_OPEN_STATE_PARAM, TLN_PAGE_PARAM, TLN_MANUSCRIPT_PARAM,\n TLN_SELECTED_LINES_PARAM, TLN_VIEW_OPTION_PARAM, TLN_ZOOM_PARAM, VIEW_OPTIONS, ONTOLOTY_PREFIX } from '../constants';\nimport { IsReconstructedKonvolut } from '../datatypes/basic_datatype';\nimport { TlnLine} from '../datatypes/line';\nimport { TlnTextGeneticOrder} from '../datatypes/text_version';\nimport { Mapping } from '../route-reader';\nimport { RouteUpdater } from '../route-updater';\nimport { ComplexKeyIriMapping, DataHandler, KeyIriMapping } from '../data_handler';\nimport { PageViewService, TlnQueryService } from '../services';\nimport { TlnInformationComponent, ParentInformation } from '../tln-information/tln-information.component';\nimport { PageInformation } from '../tln-information/page-information';\n\n@Component({\n selector: 'tln-viewer-navigation',\n templateUrl: './tln-viewer-navigation.component.html',\n styleUrls: ['./tln-viewer-navigation.component.css']\n})\nexport class TlnViewerNavigation extends RouteUpdater {\n /**\n * OPTIONAL pass a queryService with method \n * {@link /interfaces/TlnQueryServiceInterface.html#getData|getData}\n * to TlnPageViewComponent.\n **/\n @Input() queryService: TlnQueryServiceInterface;\n /**\n * whether or not to show page view in fullscreen mode.\n **/\n fullscreen: boolean = false;\n findText: string;\n current_iri: string;\n current_manuscript_iri: string;\n manuscript_unity: ManuscriptUnity;\n current_page: NavigationPage;\n pageInformation: PageInformation;\n previous_page: NavigationPage;\n next_page: NavigationPage;\n navBarOpenState: boolean;\n showArchivalManuscriptUnity: boolean = false;\n dataHandler: DataHandler = new DataHandler(this);\n geneticOrders: TlnTextGeneticOrder[] = [];\n selectedLines: string[] = [];\n private readonly increment: number = 0.333;\n private readonly decrement: number = this.increment*-1;\n protected currentRoute: string = TLN_VIEWER_ROUTE;\n protected mapping: Mapping = { findText: { param: TLN_FIND_PARAM, type: \"string\" },\n current_iri: { param: TLN_PAGE_PARAM, type: \"string\" },\n navBarOpenState: { param: TLN_NAV_BAR_OPEN_STATE_PARAM, type: \"boolean\" },\n current_manuscript_iri: { param: TLN_MANUSCRIPT_PARAM, type: \"string\" },\n fullscreen: { param: TLN_FULLSCREEN_PARAM, type: \"boolean\" },\n selectedViewOption: { param: TLN_VIEW_OPTION_PARAM, type: \"string\" },\n selectedLines: { param: TLN_SELECTED_LINES_PARAM, type: \"string\" } }\n routerParams: Params;\n selectedViewOption: string = DEFAULT_VIEW_OPTION\n updating: boolean = false;\n viewOptions: string[] = [ VIEW_OPTIONS.TRANSKRIPTION, VIEW_OPTIONS.FAKSIMILE, VIEW_OPTIONS.SYNOPSIS, VIEW_OPTIONS.SYNOPSIS_B ];\n\n constructor(el: ElementRef, private bottomSheet: MatBottomSheet, private pageViewService: PageViewService, private localQueryService: TlnQueryService, protected router: Router, protected activatedRoute: ActivatedRoute ) { \n super(router, activatedRoute);\n }\n ngOnInit() {\n let tlnQueryService = (this.queryService != null) ? this.queryService : this.localQueryService;\n this.dataHandler.addHandler('manuscript_unity', { 'handler': TlnManuscriptUnity, 'next_key': 'navigation_page'});\n this.dataHandler.addHandler('navigation_page', ['current_page', 'geneticOrders'] );\n this.dataHandler.addHandler('current_page', { 'handler': TlnNavigationPage });\n this.dataHandler.addHandler('geneticOrders', { 'handler': TlnTextGeneticOrder});\n this.dataHandler.setQueryService(tlnQueryService);\n this.dataHandler.start_processing.subscribe(\n (started: boolean) =>{ this.updating = true;\n });\n this.dataHandler.processing_finished.subscribe(\n (finished: boolean) =>{ this.updating = false;\n });\n super.ngOnInit();\n this.pageViewService.reference.subscribe(\n (newReference: Reference) => {\n this.updatePageToReference(newReference)\n }) \n this.pageViewService.onClickedLine.subscribe(\n (clickedLine: TlnLine) => { \n let index = this.selectedLines.indexOf(clickedLine.id)\n if (index > -1){\n this.selectedLines.splice(index, 1);\n } else {\n this.selectedLines.push(clickedLine.id);\n }\n this.updateParams();\n });\n }\n private clearFindText() {\n this.findText = '';\n this.updateParams();\n }\n private getPageTitle(page?: NavigationPage, numPages?: number): string {\n if (page == null){\n return '';\n }\n let indexPrefix = (numPages != null) ? page.index + '/' + numPages : page.index;\n return indexPrefix + ': ' + page.title + ' ' + page.number;\n }\n protected readParams(params: Params){\n super.readParams(params);\n if (this.dataHandler.ready && (this.current_page == null || this.current_page.id != this.current_iri)){\n this.dataHandler.resetData('navigation_page')\n if(this.current_manuscript_iri != null){\n //this.dataHandler.debug = true;\n this.dataHandler.conditionalAddHandler(IsReconstructedKonvolut.getQuery(this.current_manuscript_iri),\n 'current_page',{ handler: TlnNavigationPage}, { handler: TlnNavigationPage});\n this.dataHandler.getData('manuscript_unity', this.current_manuscript_iri, this.current_iri);\n } else {\n this.dataHandler.getData('current_page', this.current_iri);\n }\n } \n }\n private setCurrentIri(pageIri: string, manuscriptIir?: string){\n this.dataHandler.stop_processing.emit(true);\n this.current_iri = pageIri;\n this.updateParams();\n }\n private showInformation() {\n let parentData: ParentInformation = {\n geneticOrders: this.geneticOrders,\n page: this.current_page,\n manuscript_iri: this.current_manuscript_iri,\n parentActivatedRoute: this.activatedRoute.parent\n }\n this.bottomSheet.open(TlnInformationComponent, {\n data: parentData\n });\n }\n private updatePageToReference(reference: Reference){\n this.current_iri = <string>reference.page.id;\n this.selectedLines = [ <string>reference.line.id ]\n this.updateParams();\n }\n}\n","export default \".tooltip {\\n position: absolute;\\n /*color: white;\\n background-color: black;*/\\n border-radius: 10px;\\n padding: 8px;\\n font-size: 0.8em;\\n opacity: 0.65;\\n z-index: 1000;\\n}\\ndiv .text, .edited_text, .overwritten {\\n display: block;\\n}\\nspan {\\n display: inline;\\n}\\n.deleted {\\n text-decoration: line-through;\\n -webkit-text-decoration-color: red;\\n text-decoration-color: red;\\n}\\n.blackfg {\\n color: black;\\n}\\n.word { \\n opacity: 0.7; \\n background-color: black;\\n color: white;\\n}\\n.foreignHand { \\n opacity: 0.5; \\n background-color: blue; \\n color: white;\\n}\\n.continuation { \\n opacity: 1.0; \\n background-color: black; \\n color: white;\\n}\\n.copyright { \\n opacity: 1.0; \\n background-color: white; \\n color: black;\\n}\\n\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90b29sdGlwL3Rvb2wtdGlwLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Q0FDQyxrQkFBa0I7Q0FDbEI7MEJBQ3lCO0NBQ3pCLG9CQUFvQjtDQUNwQixZQUFZO0NBQ1osZ0JBQWdCO0NBQ2hCLGFBQWE7Q0FDYixhQUFhO0FBQ2Q7QUFDQTtHQUNHLGNBQWM7QUFDakI7QUFDQTtHQUNHLGVBQWU7QUFDbEI7QUFDQTtHQUNHLDZCQUE2QjtHQUM3QixrQ0FBMEI7V0FBMUIsMEJBQTBCO0FBQzdCO0FBQ0E7R0FDRyxZQUFZO0FBQ2Y7QUFDQTtHQUNHLFlBQVk7R0FDWix1QkFBdUI7R0FDdkIsWUFBWTtBQUNmO0FBQ0E7R0FDRyxZQUFZO0dBQ1osc0JBQXNCO0dBQ3RCLFlBQVk7QUFDZjtBQUNBO0dBQ0csWUFBWTtHQUNaLHVCQUF1QjtHQUN2QixZQUFZO0FBQ2Y7QUFDQTtHQUNHLFlBQVk7R0FDWix1QkFBdUI7R0FDdkIsWUFBWTtBQUNmIiwiZmlsZSI6ImFwcC90bG4tZWRpdGlvbi90b29sdGlwL3Rvb2wtdGlwLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudG9vbHRpcCB7XG4gcG9zaXRpb246IGFic29sdXRlO1xuIC8qY29sb3I6IHdoaXRlO1xuIGJhY2tncm91bmQtY29sb3I6IGJsYWNrOyovXG4gYm9yZGVyLXJhZGl1czogIDEwcHg7XG4gcGFkZGluZzogOHB4O1xuIGZvbnQtc2l6ZTogMC44ZW07XG4gb3BhY2l0eTogMC42NTtcbiB6LWluZGV4OiAxMDAwO1xufVxuZGl2IC50ZXh0LCAuZWRpdGVkX3RleHQsIC5vdmVyd3JpdHRlbiB7XG4gICBkaXNwbGF5OiBibG9jaztcbn1cbnNwYW4ge1xuICAgZGlzcGxheTogaW5saW5lO1xufVxuLmRlbGV0ZWQge1xuICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHJlZDtcbn1cbi5ibGFja2ZnIHtcbiAgIGNvbG9yOiBibGFjaztcbn1cbi53b3JkIHsgXG4gICBvcGFjaXR5OiAwLjc7IFxuICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gICBjb2xvcjogd2hpdGU7XG59XG4uZm9yZWlnbkhhbmQgeyBcbiAgIG9wYWNpdHk6IDAuNTsgXG4gICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOyBcbiAgIGNvbG9yOiB3aGl0ZTtcbn1cbi5jb250aW51YXRpb24geyBcbiAgIG9wYWNpdHk6IDEuMDsgXG4gICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsgXG4gICBjb2xvcjogd2hpdGU7XG59XG4uY29weXJpZ2h0IHsgXG4gICBvcGFjaXR5OiAxLjA7IFxuICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IFxuICAgY29sb3I6IGJsYWNrO1xufVxuXG4iXX0= */\"","import { Component, Input, OnInit, OnChanges, ElementRef, ViewChild} from '@angular/core';\nimport { ConfigurableComponent, PageViewService, TlnQueryService } from '../services';\nimport { Configuration, Continuation, Copyright, Point, Position, PositionalObject, Reference, TextByForeignHand, TlnQueryServiceInterface, Word } from '../models';\nimport { TlnEarlierVersionStub, TlnOverwrittenStub } from '../datatypes/earlier_version';\nimport { TlnLineReference } from '../datatypes/line_reference';\nimport { TlnPreviewWord } from '../datatypes/preview_data';\nimport { TlnPositionalStyleMarkup, TlnFilteredPositionalStyleMarkup } from '../datatypes/positional-markup';\nimport { DataHandler } from '../data_handler';\nimport { PositionalStyleMarkup, StyleSheetDef, StandoffMarkupSettings} from '../../lib/ngx-mat-standoff-markup.component';\n\n/**\n * This component can be used to show extended tooltips, i.e. with deleted words and distinguished\n * words if they are by foreign hand.\n **/\n@Component({\n selector: 'tool-tip',\n templateUrl: './tool-tip.component.html',\n styleUrls: ['./tool-tip.component.css']\n})\nexport class ToolTipComponent extends ConfigurableComponent implements OnInit, OnChanges {\n @Input('fullscreen') fullscreen: boolean = false;\n @Input() hasMenuIssues: boolean = false;\n @Input() menuOffsetPosition: Position;\n @Input() container: HTMLElement;\n //fullscreen: boolean = false;\n /**\n * content keys\n **/\n private readonly contentKeys: string[] = [ 'word', 'foreignHand', 'copyright', 'continuation' ]\n /**\n * copyright information to be shown in the tooltip.\n **/\n copyright: Copyright;\n /**\n * current key of contentKeys\n **/\n currentKey: string;\n debug: boolean = false;\n position: number = 0;\n /**\n * the data handler of this component that retrieves\n * data and instantiates it according to their proper \n * datatypes.\n **/\n dataHandler: DataHandler = new DataHandler(this);\n /**\n * text by foreign hand to be shown in tooltip\n **/\n foreignHand: TextByForeignHand;\n /**\n * earlier version of word\n **/\n earlier_version: TlnEarlierVersionStub;\n /**\n * overwritten word\n **/\n overwrittenWord: TlnOverwrittenStub;\n /**\n * a line continuation\n **/\n continuation: Continuation;\n /**\n * a list of positional style markups.\n **/\n positionalStyleMarkups: PositionalStyleMarkup[] = [];\n continuation_words: TlnPreviewWord[] = [];\n cssDef: StyleSheetDef = { type: 'text', css: '' }\n mySettings = new StandoffMarkupSettings(true, true, false, 1);\n width: number = 300;\n /**\n * line reference from\n **/\n sourceLineReference: TlnLineReference;\n /**\n * actual tooltip position\n **/\n tooltipPosition: Point = { visible: false, clientX: -1, clientY: -1, layerX: -1, layerY: -1 };\n /**\n * whether or not to show extended tooltips\n **/\n useExtendedTooltip: boolean = true;\n /**\n * word to be shown in tooltip\n **/\n word: Word;\n /**\n * y offset for tooltip position relative to mouse position\n **/\n private readonly yOffset: number = 25;\n private readonly menuIssueOffset: number = 80;\n private readonly menuIssueXOffset: number = 55;\n topOffset: number = 0; \n leftOffset: number = 0; \n constructor(protected pageViewService: PageViewService, private tlnQueryService: TlnQueryService) { \n super()\n }\n ngOnChanges(){\n super.ngOnChanges();\n /*if((this.fullscreen && this.fullscreenString != 'true') || (!this.fullscreen && this.fullscreenString == 'true')){\n this.fullscreen = (this.fullscreenString == 'true')\n }*/\n if (this.tlnQueryService != null && !this.dataHandler.ready){\n this.dataHandler.addHandler('earlier_version', { 'handler': TlnEarlierVersionStub });\n this.dataHandler.addHandler('overwrittenWord', { 'handler': TlnOverwrittenStub});\n this.dataHandler.addHandler('positionalStyleMarkups', { 'handler': TlnFilteredPositionalStyleMarkup });\n this.dataHandler.addHandler('sourceLineReference', { 'handler': TlnLineReference});\n this.dataHandler.addHandler('continuation_words', { 'handler': TlnPreviewWord});\n this.dataHandler.addHandler('wordStubs', ['earlier_version', 'overwrittenWord', 'positionalStyleMarkups' ]);\n this.dataHandler.setQueryService(this.tlnQueryService);\n this.tlnQueryService.reset_data.subscribe(\n (data_key: string) =>{\n if (data_key == 'page_content'){\n this.resetData()\n }\n });\n }\n }\n /**\n * listen on pageViewService\n **/\n ngOnInit() {\n this.pageViewService.mousePosition.subscribe(\n (newPoint: Point) =>{ this.tooltipPosition = newPoint;\n //console.log(this.tooltipPosition);\n });\n this.pageViewService.onHoveredWord.subscribe(\n (newWord: Word) => { this.setContent('word', newWord);this.updateEarlierVersion() }\n );\n this.pageViewService.offHoveredWord.subscribe(\n (newWord: Word) => this.word = null \n );\n this.pageViewService.onHoveredTextByForeignHand.subscribe(\n (newTextByForeignHand: TextByForeignHand) => { this.setContent('foreignHand',newTextByForeignHand) }\n );\n this.pageViewService.offHoveredTextByForeignHand.subscribe(\n (newTextByForeignHand: TextByForeignHand) => this.foreignHand = null \n );\n this.pageViewService.copyright.subscribe(\n (copyright: Copyright) =>{ \n this.setContent('copyright', (this.copyright == null) ? copyright : null)\n });\n this.pageViewService.onHoveredContinuation.subscribe(\n (newContinuation: Continuation) => { \n if(this.continuation == null){\n this.updateLineContinuation(newContinuation) \n }\n });\n this.pageViewService.offHoveredContinuation.subscribe(\n (newContinuation: Continuation) => { this.dataHandler.stop_processing.emit(true);this.continuation = null;this.updateLineContinuation(); }\n );\n }\n /**\n * reset data\n **/\n private resetData(){\n this.dataHandler.resetData('wordStubs')\n this.contentKeys.forEach(key=>this[key] = null);\n }\n /**\n * update earlier version of word\n **/\n private updateEarlierVersion(){\n if (this.word != null && this.dataHandler.ready) {\n this.dataHandler.resetData('wordStubs')\n this.dataHandler.getData('wordStubs', <string>this.word.id);\n }\n }\n private updateLineContinuation(continuation?: Continuation){\n this.setContent('continuation', continuation);\n if(continuation != null && this.dataHandler.ready){\n this.dataHandler.resetData('continuation_words')\n if (continuation.source.page != null){\n this.dataHandler.getData('continuation_words', <string>this.continuation.reference.line.id)\n }\n }\n }\n private getTop(key: string): number {\n if (this.menuOffsetPosition != undefined && this.menuOffsetPosition != null && this.container != null && this.container != undefined){\n let containerRect: DOMRect = <DOMRect>this.container.getBoundingClientRect();\n this.topOffset = containerRect.top;\n if (!this.fullscreen){\n this.topOffset = this.topOffset - this.menuOffsetPosition.y;\n }\n }\n return this.tooltipPosition.clientY - this.topOffset + this.yOffset;\n }\n private getLeft(width: number): number {\n let containerRect: DOMRect = (this.container != null && this.container != undefined) \n ? <DOMRect>this.container.getBoundingClientRect() : null;\n this.leftOffset = (this.menuOffsetPosition != undefined && this.menuOffsetPosition != null && containerRect != null) ? containerRect.left : 0;\n let left = this.tooltipPosition.clientX - this.leftOffset;\n if (this.menuOffsetPosition != undefined && this.menuOffsetPosition != null){\n left += this.menuOffsetPosition.x;\n }\n if (!this.tooltipPosition.visible \n || this.continuation == null\n || this.continuation.show == null\n || this.continuation.show != 'to'){\n return left;\n }\n return (left + width <= containerRect.right) ? left : left-(left+width-containerRect.right)-5;\n }\n /**\n * Set tooltip's content and remove prior content.\n * @param key key of content\n * @param content new content\n **/\n private setContent(key: string, content: Continuation|Copyright|PositionalObject){\n this.contentKeys.forEach(key=>this[key] = null);\n this[key] = content;\n this.currentKey = key;\n }\n /**\n * whether tooltip has any content (i.e. any content of {@link /components/ToolTipComponent.html#contentKeys|contentKeys})\n **/\n private hasAnyContent(): boolean {\n return this.contentKeys.filter(key =>this[key] != null).length > 0 \n }\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","/* (ignored) */","/* (ignored) */"],"sourceRoot":"webpack:///"}
\ No newline at end of file
+{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./src/app/app.component.html","./src/app/content-view-tab-component/content-view-tab-component.component.html","./src/app/home.component.html","./src/app/impressum.component.html","./src/app/lib/ngx-mat-standoff-markup.component.html","./src/app/main-menu-component/main-menu-component.component.html","./src/app/manuscript-view-component/manuscript-view-component.component.html","./src/app/navigation-list-component/navigation-list-component.component.html","./src/app/page-view-wrapper-component/page-view-wrapper.component.html","./src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.html","./src/app/page-view/copyright/copyright.component.html","./src/app/page-view/margin-field/line-reference/line-reference.component.html","./src/app/page-view/margin-field/margin-field.component.html","./src/app/page-view/page-view.component.html","./src/app/page-view/textfield-component/textfield.component.html","./src/app/project.component.html","./src/app/rhizome-view-component/rhizome-view-component.component.html","./src/app/tln-edition/tln-crossref/navigation/navigation.component.html","./src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.html","./src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.html","./src/app/tln-edition/tln-crossref/tln-crossref.component.html","./src/app/tln-edition/tln-crossref/version-view/version-view.component.html","./src/app/tln-edition/tln-fulltext/navigation/navigation.component.html","./src/app/tln-edition/tln-fulltext/tln-fulltext.component.html","./src/app/tln-edition/tln-information/tln-information.component.html","./src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.html","./src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.html","./src/app/tln-edition/tln-navigation-elements/search.component.html","./src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.html","./src/app/tln-edition/tln-navigation-elements/zoom.component.html","./src/app/tln-edition/tln-page-view.component.html","./src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.html","./src/app/tln-edition/tooltip/tool-tip.component.html","./node_modules/tslib/tslib.es6.js","./src/app/app.component.css","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/app.routing.ts","./src/app/constants.ts","./src/app/content-view-tab-component/content-view-routes.ts","./src/app/content-view-tab-component/content-view-tab-component.component.scss","./src/app/content-view-tab-component/content-view-tab-component.component.ts","./src/app/content-view-tab-component/lazy-image-load-directive.directive.ts","./src/app/home.component.css","./src/app/home.component.ts","./src/app/impressum.component.css","./src/app/impressum.component.ts","./src/app/lib/ngx-mat-standoff-markup.component.ts","./src/app/lib/ngx-mat-standoff-markup.module.ts","./src/app/lib/ngx-mat-standoff-markup.service.ts","./src/app/main-menu-component/main-menu-component.component.scss","./src/app/main-menu-component/main-menu-component.component.ts","./src/app/manuscript-view-component/manuscript-view-component.component.scss","./src/app/manuscript-view-component/manuscript-view-component.component.ts","./src/app/models/models.ts","./src/app/navigation-list-component/navigation-list-component.component.scss","./src/app/navigation-list-component/navigation-list-component.component.ts","./src/app/navigation-list-component/navtree-directive.directive.ts","./src/app/page-view-wrapper-component/page-view-wrapper.component.scss","./src/app/page-view-wrapper-component/page-view-wrapper.component.ts","./src/app/page-view/configurable-component.ts","./src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.css","./src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.ts","./src/app/page-view/copyright/copyright.component.css","./src/app/page-view/copyright/copyright.component.ts","./src/app/page-view/highlight_status.ts","./src/app/page-view/interacted.directive.ts","./src/app/page-view/margin-field/line-reference/line-reference.component.css","./src/app/page-view/margin-field/line-reference/line-reference.component.ts","./src/app/page-view/margin-field/margin-field.component.css","./src/app/page-view/margin-field/margin-field.component.ts","./src/app/page-view/page-view.component.css","./src/app/page-view/page-view.component.ts","./src/app/page-view/page-view.module.ts","./src/app/page-view/page-view.service.ts","./src/app/page-view/textfield-component/matrix.ts","./src/app/page-view/textfield-component/textfield.component.css","./src/app/page-view/textfield-component/textfield.component.ts","./src/app/project.component.css","./src/app/project.component.ts","./src/app/rhizome-view-component/rhizome-view-component.component.css","./src/app/rhizome-view-component/rhizome-view-component.component.ts","./src/app/services/navigation-service.service.ts","./src/app/services/query.service.ts","./src/app/tln-edition/constants.ts","./src/app/tln-edition/data_handler.ts","./src/app/tln-edition/datatypes/basic_datatype.ts","./src/app/tln-edition/datatypes/earlier_version.ts","./src/app/tln-edition/datatypes/faksimile_image.ts","./src/app/tln-edition/datatypes/foreign_text.ts","./src/app/tln-edition/datatypes/image.ts","./src/app/tln-edition/datatypes/line.ts","./src/app/tln-edition/datatypes/line_reference.ts","./src/app/tln-edition/datatypes/manuscript.ts","./src/app/tln-edition/datatypes/navigation.ts","./src/app/tln-edition/datatypes/page.ts","./src/app/tln-edition/datatypes/positional-markup.ts","./src/app/tln-edition/datatypes/positional_object.ts","./src/app/tln-edition/datatypes/preview_data.ts","./src/app/tln-edition/datatypes/search.ts","./src/app/tln-edition/datatypes/svg_image.ts","./src/app/tln-edition/datatypes/text_version.ts","./src/app/tln-edition/datatypes/word.ts","./src/app/tln-edition/debug.pipe.ts","./src/app/tln-edition/route-reader.ts","./src/app/tln-edition/route-updater.ts","./src/app/tln-edition/services.ts","./src/app/tln-edition/tln-crossref/navigation/navigation.component.css","./src/app/tln-edition/tln-crossref/navigation/navigation.component.ts","./src/app/tln-edition/tln-crossref/page-version-view/filter.pipe.ts","./src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.css","./src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.ts","./src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.css","./src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.ts","./src/app/tln-edition/tln-crossref/tln-crossref.component.css","./src/app/tln-edition/tln-crossref/tln-crossref.component.ts","./src/app/tln-edition/tln-crossref/version-view/version-view.component.css","./src/app/tln-edition/tln-crossref/version-view/version-view.component.ts","./src/app/tln-edition/tln-edition.module.ts","./src/app/tln-edition/tln-fulltext/navigation/navigation.component.css","./src/app/tln-edition/tln-fulltext/navigation/navigation.component.ts","./src/app/tln-edition/tln-fulltext/page-result-filter.pipe.ts","./src/app/tln-edition/tln-fulltext/result-pipe.pipe.ts","./src/app/tln-edition/tln-fulltext/tln-fulltext.component.css","./src/app/tln-edition/tln-fulltext/tln-fulltext.component.ts","./src/app/tln-edition/tln-height.directive.ts","./src/app/tln-edition/tln-information/tln-information.component.css","./src/app/tln-edition/tln-information/tln-information.component.ts","./src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.css","./src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.ts","./src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.scss","./src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.ts","./src/app/tln-edition/tln-navigation-elements/search.component.css","./src/app/tln-edition/tln-navigation-elements/search.component.ts","./src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.css","./src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.ts","./src/app/tln-edition/tln-navigation-elements/zoom.component.css","./src/app/tln-edition/tln-navigation-elements/zoom.component.ts","./src/app/tln-edition/tln-navigation-elements/zoom.pipe.ts","./src/app/tln-edition/tln-page-view.component.css","./src/app/tln-edition/tln-page-view.component.ts","./src/app/tln-edition/tln-query.service.ts","./src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.css","./src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.ts","./src/app/tln-edition/tooltip/tool-tip.component.css","./src/app/tln-edition/tooltip/tool-tip.component.ts","./src/environments/environment.ts","./src/main.ts","fs (ignored)","path (ignored)"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,wE;;;;;;;;;;;;ACZA;AAAe,2XAA4T,SAAS,8LAA8L,+JAA+J,sD;;;;;;;;;;;;ACAjrB;AAAe,gsBAAioB,YAAY,2J;;;;;;;;;;;;ACA5pB;AAAe,0GAA2C,mgDAAmgD,0GAA0G,+BAA+B,2PAA2P,iQAAiQ,kJAAkJ,WAAW,+JAA+J,+e;;;;;;;;;;;;ACA9/E;AAAe,22DAA4yD,mUAAmU,+S;;;;;;;;;;;;ACA9nE;AAAe,+qBAAgnB,eAAe,2C;;;;;;;;;;;;ACA9oB;AAAe,qrC;;;;;;;;;;;;ACAf;AAAe,gH;;;;;;;;;;;;ACAf;AAAe,sYAAuU,YAAY,onBAAonB,sBAAsB,2HAA2H,4BAA4B,mGAAmG,mCAAmC,ib;;;;;;;;;;;;ACAzwC;AAAe,wZAAyV,aAAa,0D;;;;;;;;;;;;ACArX;AAAe,4RAA6N,uBAAuB,gIAAgI,mBAAmB,yDAAyD,mBAAmB,+B;;;;;;;;;;;;ACAle;AAAe,0kF;;;;;;;;;;;;ACAf;AAAe,stBAAupB,8DAA8D,wG;;;;;;;;;;;;ACApuB;AAAe,u1CAAwxC,oLAAoL,0LAA0L,aAAa,ka;;;;;;;;;;;;ACAlqD;AAAe,qJAAsF,kDAAkD,0CAA0C,4DAA4D,2tDAA2tD,4DAA4D,ktD;;;;;;;;;;;;ACAphE;AAAe,45DAA61D,kEAAkE,suBAAsuB,kBAAkB,IAAI,mBAAmB,mD;;;;;;;;;;;;ACA7rF;AAAe,gUAAiQ,+OAA+O,kDAAkD,+KAA+K,2lBAA2lB,sDAAsD,g1B;;;;;;;;;;;;ACAj3C;AAAe,+RAAgO,cAAc,0D;;;;;;;;;;;;ACA7P;AAAe,ugC;;;;;;;;;;;;ACAf;AAAe,kXAAmT,8R;;;;;;;;;;;;ACAlU;AAAe,+K;;;;;;;;;;;;ACAf;AAAe,oTAAqP,0BAA0B,8GAA8G,0BAA0B,GAAG,aAAa,oPAAoP,oBAAoB,GAAG,qBAAqB,sdAAsd,wEAAwE,4DAA4D,yDAAyD,o1CAAo1C,eAAe,IAAI,kBAAkB,wCAAwC,qBAAqB,GAAG,mBAAmB,gJAAgJ,2RAA2R,qIAAqI,wRAAwR,65C;;;;;;;;;;;;ACA7nH;AAAe,gHAAiD,eAAe,+EAA+E,0IAA0I,wDAAwD,2BAA2B,kBAAkB,6DAA6D,qBAAqB,GAAG,mBAAmB,wFAAwF,wH;;;;;;;;;;;;ACA7kB;AAAe,0J;;;;;;;;;;;;ACAf;AAAe,2VAA4R,YAAY,8zBAA8zB,sBAAsB,usBAAusB,YAAY,IAAI,aAAa,+DAA+D,8IAA8I,4EAA4E,6IAA6I,+yBAA+yB,YAAY,yB;;;;;;;;;;;;ACAhlG;AAAe,uGAAwC,oBAAoB,GAAG,qBAAqB,+R;;;;;;;;;;;;ACAnG;AAAe,iPAAkL,wCAAwC,6FAA6F,0BAA0B,qGAAqG,iCAAiC,qDAAqD,yBAAyB,kQAAkQ,6KAA6K,2BAA2B,6HAA6H,yBAAyB,6XAA6X,6BAA6B,mcAAmc,4BAA4B,giBAAgiB,0BAA0B,iFAAiF,mBAAmB,aAAa,uEAAuE,sEAAsE,2FAA2F,mKAAmK,4SAA4S,mCAAmC,6GAA6G,mBAAmB,aAAa,uLAAuL,yQ;;;;;;;;;;;;ACAttH;AAAe,+MAAgJ,oQAAoQ,+F;;;;;;;;;;;;ACAna;AAAe,4oB;;;;;;;;;;;;ACAf;AAAe,uOAAwK,sDAAsD,yJAAyJ,gDAAgD,2B;;;;;;;;;;;;ACAtb;AAAe,0HAA2D,qDAAqD,qKAAqK,wDAAwD,mDAAmD,0CAA0C,mCAAmC,uEAAuE,oDAAoD,mI;;;;;;;;;;;;ACAvlB;AAAe,20B;;;;;;;;;;;;ACAf;AAAe,quCAAsqC,YAAY,0RAA0R,oBAAoB,GAAG,qBAAqB,4KAA4K,oBAAoB,GAAG,qBAAqB,+9B;;;;;;;;;;;;ACA/tD;AAAe,oWAAqS,iCAAiC,IAAI,WAAW,kGAAkG,mBAAmB,gBAAgB,iBAAiB,gBAAgB,oBAAoB,6HAA6H,sBAAsB,8FAA8F,8GAA8G,wBAAwB,KAAK,WAAW,gYAAgY,kBAAkB,8EAA8E,mBAAmB,sBAAsB,8DAA8D,kBAAkB,OAAO,iBAAiB,8PAA8P,uBAAuB,yIAAyI,mBAAmB,6DAA6D,mBAAmB,+HAA+H,iCAAiC,UAAU,UAAU,+EAA+E,yCAAyC,8DAA8D,oCAAoC,sBAAsB,oCAAoC,sEAAsE,UAAU,KAAK,iCAAiC,mJAAmJ,+EAA+E,qEAAqE,kNAAkN,oCAAoC,gEAAgE,+B;;;;;;;;;;;;ACAlrG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;;AAEO;AACP;AACA,mBAAmB,sBAAsB;AACzC;AACA;;AAEO;AACP;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,4DAA4D,cAAc;AAC1E;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;;AAEO;AACP,mCAAmC,oCAAoC;AACvE;;AAEO;AACP;AACA;;AAEO;AACP,2BAA2B,+DAA+D,gBAAgB,EAAE,EAAE;AAC9G;AACA,mCAAmC,MAAM,6BAA6B,EAAE,YAAY,WAAW,EAAE;AACjG,kCAAkC,MAAM,iCAAiC,EAAE,YAAY,WAAW,EAAE;AACpG,+BAA+B,qFAAqF;AACpH;AACA,KAAK;AACL;;AAEO;AACP,aAAa,6BAA6B,0BAA0B,aAAa,EAAE,qBAAqB;AACxG,gBAAgB,qDAAqD,oEAAoE,aAAa,EAAE;AACxJ,sBAAsB,sBAAsB,qBAAqB,GAAG;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,kCAAkC,SAAS;AAC3C,kCAAkC,WAAW,UAAU;AACvD,yCAAyC,cAAc;AACvD;AACA,6GAA6G,OAAO,UAAU;AAC9H,gFAAgF,iBAAiB,OAAO;AACxG,wDAAwD,gBAAgB,QAAQ,OAAO;AACvF,8CAA8C,gBAAgB,gBAAgB,OAAO;AACrF;AACA,iCAAiC;AACjC;AACA;AACA,SAAS,YAAY,aAAa,OAAO,EAAE,UAAU,WAAW;AAChE,mCAAmC,SAAS;AAC5C;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,MAAM,gBAAgB;AACzC;AACA;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;;AAEO;AACP,4BAA4B,sBAAsB;AAClD;AACA;AACA;;AAEO;AACP,iDAAiD,QAAQ;AACzD,wCAAwC,QAAQ;AAChD,wDAAwD,QAAQ;AAChE;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA,iBAAiB,sFAAsF,aAAa,EAAE;AACtH,sBAAsB,gCAAgC,qCAAqC,0CAA0C,EAAE,EAAE,GAAG;AAC5I,2BAA2B,MAAM,eAAe,EAAE,YAAY,oBAAoB,EAAE;AACpF,sBAAsB,oGAAoG;AAC1H,6BAA6B,uBAAuB;AACpD,4BAA4B,wBAAwB;AACpD,2BAA2B,yDAAyD;AACpF;;AAEO;AACP;AACA,iBAAiB,4CAA4C,SAAS,EAAE,qDAAqD,aAAa,EAAE;AAC5I,yBAAyB,6BAA6B,oBAAoB,gDAAgD,gBAAgB,EAAE,KAAK;AACjJ;;AAEO;AACP;AACA;AACA,2GAA2G,sFAAsF,aAAa,EAAE;AAChN,sBAAsB,8BAA8B,gDAAgD,uDAAuD,EAAE,EAAE,GAAG;AAClK,4CAA4C,sCAAsC,UAAU,oBAAoB,EAAE,EAAE,UAAU;AAC9H;;AAEO;AACP,gCAAgC,uCAAuC,aAAa,EAAE,EAAE,OAAO,kBAAkB;AACjH;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,4CAA4C;AAC5C;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACzNA;AAAe,wEAAS,yBAAyB,GAAG,4BAA4B,gBAAgB,GAAG,gCAAgC,uBAAuB,iBAAiB,8BAA8B,+CAA+C,+gB;;;;;;;;;;;;;;;;;;;ACAxM;AACO;AAEA;AAQvD,IAAa,YAAY,GAAzB,MAAa,YAAY;IAQtB,YAAoB,gBAAkC,EAAU,cAA8B;QAA1E,qBAAgB,GAAhB,gBAAgB,CAAkB;QAAU,mBAAc,GAAd,cAAc,CAAgB;QAP9F,UAAK,GAAG,iDAAiD,CAAC;QAC1D,UAAK,GAAG,gBAAgB,CAAC;QAOvB,IAAI,CAAC,OAAO,GAAG,mBAAO,CAAE,0CAAoB,CAAC,CAAC,OAAO,CAAC;IACxD,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAE,CAAC,WAAmB,EAAG,EAAE;YACvF,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;QAC3C,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,aAAa;QACX,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxE,CAAC;CACH;;YAfwC,qEAAgB;YAA0B,8DAAc;;AARpF,YAAY;IALxB,+DAAS,CAAC;QACR,QAAQ,EAAE,UAAU;QACpB,yMAAmC;;KAErC,CAAC;GACW,YAAY,CAuBxB;AAvBwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXsB;AACW;AACqB;AACd;AACxB;AACY;AACgB;AACJ;AACZ;AACE;AACD;AACD;AACM;AACN;AACN;AACS;AACA;AAClB;AACS;AACoE;AACE;AACX;AACT;AACI;AACc;AACpC;AACZ;AACe;AACiC;AACxD;AACJ;AAyCvD,IAAa,SAAS,GAAtB,MAAa,SAAS;CAAI;AAAb,SAAS;IAtCrB,8DAAQ,CAAC;QACR,YAAY,EAAE;YACX,2DAAY;YACZ,8DAAa;YACb,gIAAgC;YAChC,kIAAgC;YAChC,uHAA6B;YAC7B,8GAA0B;YAC1B,kHAAwB;YACxB,gIAAgC;YAChC,+FAAO;YACP,gIAA+B;YAC/B,wEAAkB;YAClB,oEAAgB;SAClB;QACD,OAAO,EAAE;YACP,qDAAO;YACP,uEAAa;YACb,4FAAuB;YACvB,6DAAY;YACZ,sEAAgB;YAChB,iEAAe;YACf,oEAAa;YACb,8EAAkB;YAClB,oEAAa;YACb,qEAAa;YACb,qEAAa;YACb,yEAAe;YACf,kEAAgB;YAChB,qEAAa;YACb,kEAAgB;YAChB,0DAAW;YACX,iFAAgB;YAChB,kEAAmB;SACpB;QACD,SAAS,EAAE,CAAE,8FAAwB,EAAE,qEAAY,CAAE;QACrD,SAAS,EAAE,CAAC,2DAAY,CAAC;KAC1B,CAAC;GACW,SAAS,CAAI;AAAJ;;;;;;;;;;;;;;;;;;;;;;;;ACvE+B;AACN;AACU;AACJ;AAC8D;AACnC;AACkC;AAElH,MAAM,UAAU,GAAW;IACzB,EAAC,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,qDAAU,EAAE,SAAS,EAAE,QAAQ,EAAC;IACvD,EAAC,IAAI,EAAE,qDAAU,EAAE,SAAS,EAAE,6DAAa,EAAC;IAC5C,EAAC,IAAI,EAAE,6DAAkB,EAAE,SAAS,EAAE,iIAAgC,EAAE,QAAQ,EAAE,8FAAc,EAAC;IACjG,EAAC,IAAI,EAAE,wDAAa,EAAE,SAAS,EAAE,mEAAgB,EAAC;IAClD,EAAC,IAAI,EAAE,0DAAe,EAAE,SAAS,EAAE,uEAAkB,EAAC;IACtD,EAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,qDAAU,EAAE,SAAS,EAAE,QAAQ,EAAC,CAAC,kDAAkD;CAC7G,CAAC;AAEK,MAAM,OAAO,GAAG,4DAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;ACjBjD,MAAM,kBAAkB,GAAW,aAAa,CAAC;AACjD,MAAM,mBAAmB,GAAW,MAAM,CAAC;AAC3C,MAAM,UAAU,GAAW,MAAM,CAAC;AAClC,MAAM,eAAe,GAAW,WAAW,CAAC;AAC5C,MAAM,aAAa,GAAW,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;ACHmE;AACT;AACL;AACoB;AAC9B;AAEnF,MAAM,cAAc,GAAW;IACpC,EAAE,IAAI,EAAE,2EAAoB,EAAE,SAAS,EAAE,+HAAgC,EAAE;IAC3E,EAAE,IAAI,EAAE,uEAAgB,EAAE,SAAS,EAAE,iHAAwB,EAAE;IAC/D,EAAE,IAAI,EAAE,yEAAkB,EAAE,SAAS,EAAE,sHAA6B,EAAE;IACtE,EAAE,IAAI,EAAE,uEAAgB,EAAE,SAAS,EAAE,qGAAoB,EAAC;IAC1D,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,2EAAoB,EAAE,SAAS,EAAE,QAAQ,EAAE;CACpE,CAAC;;;;;;;;;;;;;ACbF;AAAe,uFAAwB,gBAAgB,GAAG,iBAAiB,qBAAqB,kBAAkB,uBAAuB,qBAAqB,oBAAoB,GAAG,eAAe,gBAAgB,GAAG,yBAAyB,sBAAsB,gBAAgB,iBAAiB,GAAG,6CAA6C,mhD;;;;;;;;;;;;;;;;;;;;ACAvS;AACe;AAEiB;AACwC;AAQxH,IAAa,gCAAgC,GAA7C,MAAa,gCAAgC;IAW3C,YAAoB,MAAc,EACd,cAA8B,EAC9B,WAAqC;QAFrC,WAAM,GAAN,MAAM,CAAQ;QACd,mBAAc,GAAd,cAAc,CAAgB;QAC9B,gBAAW,GAAX,WAAW,CAA0B;QAVzD,mCAAmC;QACnC,oBAAe,GAAG,KAAK,CAAC;QACxB,eAAU,GAAG,KAAK,CAAC;QAGnB,gBAAW,GAAW,EAAE,CAAC;QAOvB,wDAAwD;QACxD,IAAI,CAAC,WAAW,GAAG;YACjB;gBACE,KAAK,EAAE,mBAAmB;gBAC1B,IAAI,EAAE,2EAAoB;gBAC1B,KAAK,EAAE,CAAC;gBACR,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,YAAY;aACtB,EAAE;gBACD,KAAK,EAAE,eAAe;gBACtB,IAAI,EAAE,uEAAgB;gBACtB,KAAK,EAAE,CAAC;gBACR,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,MAAM;aAChB,EAAE;gBACD,KAAK,EAAE,cAAc;gBACrB,IAAI,EAAE,yEAAkB;gBACxB,KAAK,EAAE,CAAC;gBACR,QAAQ,EAAE,KAAK;aAChB,EAAE;gBACD,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,uEAAgB;gBACtB,KAAK,EAAE,CAAC;gBACR,QAAQ,EAAE,KAAK;aAChB;SACF,CAAC;QAEF,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAE,CAAC,WAAmB,EAAG,EAAE;YAChG,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAC/B,IAAI,WAAW,CAAC,eAAe,EAAE;gBAC/B,IAAI,CAAC,eAAe,GAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,CAAC;aAC/E;YACD,IAAI,WAAW,CAAC,UAAU,EAAE;gBAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;aACpE;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,4BAA4B;QAC5B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,CAAC,uBAAuB;QACrD,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,iGAAiG;QACjG,8EAA8E;IAChF,CAAC;IAED,2EAA2E;IAC3E,aAAa,CAAC,IAAY;QACxB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,KAAK,EAAG,EAAE;YAC9C,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI,EAAE;gBAC5B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACxC,IAAI,UAAU,CAAC,OAAO,EAAE;oBACtB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAC,UAAU,EAAG,UAAU,CAAC,OAAO,EAAC,CAAC,EAAE,GAAG,CAAC,CAAC;iBAC/F;aACF;iBAAM;gBACL,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;aAC1C;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,iBAAiB;QACf,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;QAC3C,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,eAAe,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,YAAY,CAAC,CAAC;IAC7D,CAAC;IAED,eAAe;QACb,MAAM,OAAO,GAAW,EAAE,CAAC;QAC3B,2GAA2G;QAC3G,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,OAAO,EAAE;YACnF,OAAO,CAAC,eAAe,GAAG,MAAM,CAAC;SAAE;QACnC,WAAW;QACX,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YAC/D,OAAO,CAAC,QAAQ,GAAG,yBAAyB,CAAC;SAC9C;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YACjE,OAAO,CAAC,UAAU,GAAG,YAAY,CAAC;YAClC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;SACtC;aAAM;YACL,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,YAAY,EAAE;gBACjF,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;aACtC;iBAAM;gBAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;aAAE;SAAE;QAC/C,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;CACF;;YAzF6B,sDAAM;YACE,8DAAc;YACjB,6FAAwB;;AAb9C,gCAAgC;IAN5C,+DAAS,CAAC;QACT,QAAQ,EAAE,gCAAgC;QAC1C,kRAA0D;QAE1D,SAAS,EAAE,CAAE,6FAAwB,CAAE;;KACxC,CAAC;GACW,gCAAgC,CAoG5C;AApG4C;;;;;;;;;;;;;;;;;;ACZS;AAMtD,IAAa,+BAA+B,GAA5C,MAAa,+BAA+B;IAE1C,YAAY,EAAE,aAAa,EAAgC;QACzD,MAAM,QAAQ,GAAG,SAAS,IAAI,gBAAgB,CAAC,SAAS,CAAC;QACzD,IAAI,QAAQ,EAAE;YACZ,aAAa,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;SAC/C;IACH,CAAC;CACF;;YANgC,wDAAU;;AAF9B,+BAA+B;IAJ3C,+DAAS,CAAC;QACT,QAAQ,EAAE,KAAK;KAChB,CAAC;GAEW,+BAA+B,CAQ3C;AAR2C;AAU5C,gFAAgF;AAChF,qBAAqB;AACrB,0FAA0F;AAC1F,iFAAiF;;;;;;;;;;;;;ACnBjF;AAAe,uEAAQ,sBAAsB,GAAG,UAAU,uBAAuB,GAAG,SAAS,kBAAkB,GAAG,+CAA+C,2Y;;;;;;;;;;;;;;;;;;;ACA/G;AAED;AACoC;AAQrF,IAAa,aAAa,GAA1B,MAAa,aAAa;IAL1B;QAMG,mBAAc,GAAa,CAAE,GAAG,GAAG,6DAAkB,EAAE,2EAAoB,CAAE,CAAC;QAC9E,eAAU,GAAW,EAAE;QACvB,cAAS,GAAW,EAAE;IAKzB,CAAC;IAJE,QAAQ;QACL,IAAI,CAAC,UAAU,CAAC,2EAAoB,CAAC,GAAG,sCAAsC,CAAC;QAC/E,IAAI,CAAC,SAAS,CAAC,2EAAoB,CAAC,GAAG,qCAAqC,CAAC;IAChF,CAAC;CACH;AARY,aAAa;IALzB,+DAAS,CAAC;QACT,QAAQ,EAAE,oBAAoB;QAC9B,2MAAoC;;KAErC,CAAC;GACW,aAAa,CAQzB;AARyB;;;;;;;;;;;;;ACX1B;AAAe,uEAAQ,yBAAyB,kBAAkB,GAAG,eAAe,yBAAyB,GAAG,+CAA+C,uY;;;;;;;;;;;;;;;;;ACA7G;AAOlD,IAAa,kBAAkB,GAA/B,MAAa,kBAAkB;IAE7B,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;CAEF;AAPY,kBAAkB;IAL9B,+DAAS,CAAC;QACT,QAAQ,EAAE,eAAe;QACzB,qNAAyC;;KAE1C,CAAC;GACW,kBAAkB,CAO9B;AAP8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACP2B;AACwB;AACJ;AAgB9E,IAAa,6BAA6B;AAR1C;;;;;;;EAOE;AACF,MAAa,6BAA6B;IAiBxC,YAAoB,SAAuB,EAAU,eAA4C;QAA7E,cAAS,GAAT,SAAS,CAAc;QAAU,oBAAe,GAAf,eAAe,CAA6B;QALjG,iBAAY,GAAkB,EAAE,CAAC,CAAC,0CAA0C;IAM5E,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE;YAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,2CAA2C;SAC1H;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAChE,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,cAAc;QACpB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YACjD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE;gBAClH,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC;aAC1E;SACF;aAAM;YACL,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE;gBAClH,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;aAC1E;iBAAM;gBACL,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;oBAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc;iBAAE;gBACtG,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;oBAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB;iBAAE;aACzG;SACN;IACH,CAAC;IAGD;;;;;;OAMG;IACK,WAAW;QACjB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,gFAAgF;QAC3F,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE;YAC1C,yEAAyE;YACzE,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YACjF,6CAA6C;YAC7C,MAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC9D,OAAO,GAAG,CAAC,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,GAAG,CAAC,QAAQ;YAAA,CAAC,CAAC,CAAC;YACtE,IAAI,QAAQ,GAAG,IAAI,OAAO,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAC7F,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrC,CAAC,IAAI,CAAC,CAAC;SACR;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACK,eAAe,CAAC,YAA2B;QAEjD,MAAM,YAAY,GAAkB,EAAE,CAAC;QACvC,0HAA0H;QAC1H,sHAAsH;QACtH,2GAA2G;QAE3G,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC9B,IAAI,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,+DAA+D;gBACrH,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;aACxC;YACD,IAAI,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;gBACtD,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;aAC1C;QACH,CAAC,CAAC,CAAC;QACH,sFAAsF;QACtF,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;YAClC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAAE;QACzB,UAAU;QACV,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACvC,2HAA2H;QAC3H,kDAAkD;QAClD,0EAA0E;QAC1E,8EAA8E;QAC9E,4HAA4H;QAC5H,iHAAiH;QACjH,oCAAoC;QACpC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;YAAE,YAAY,CAAC,GAAG,EAAE,CAAC;SAAE;QAC5F,OAAO,YAAY,CAAC;IACtB,CAAC;IAEO,cAAc,CAAC,OAAgB;QACrC,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,qDAAqD;QACxF,IAAI,GAAG,CAAC,IAAI,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE;YAC3C,IAAI,GAAG,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC1E,IAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACzD;IACH,CAAC;IAED,iHAAiH;IACjH,qFAAqF;IAC7E,eAAe,CAAC,sBAA8B;QACpD,IAAI,MAAM,CAAC,YAAY,EAAE;YACvB,IAAI,GAAG,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;gBACpB,IAAI,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC,YAAY,CAAC;gBACvE,IAAI,uBAAuB,GAAG,sBAAsB,GAAG,GAAG,CAAC,WAAW,CAAC;gBACvE,6CAA6C;gBAC7C,MAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC9D,OAAO,GAAG,CAAC,QAAQ,IAAI,oBAAoB,IAAI,GAAG,CAAC,UAAU,IAAI,uBAAuB;gBAC1F,CAAC,CAAC,CAAC;gBACH,IAAI,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,CAAC;gBAC7F,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,IAAI,CAC3C,IAAI,aAAa,CAAC,YAAY,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC;aACtH;SACF;IACH,CAAC;IAEO,sBAAsB,CAAC,UAAU;QACvC,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC;IACxC,CAAC;CACF;;YA9HgC,sEAAY;YAA2B,4FAA2B;;AAhBxF;IAAR,2DAAK,EAAE;kEAAqB;AACpB;IAAR,2DAAK,EAAE;qEAAwC;AACvC;IAAR,2DAAK,EAAE;mEAAwE;AACvE;IAAR,2DAAK,EAAE;qEAA0C;AACzC;IAAR,2DAAK,EAAE;uEAAkD;AACjD;IAAR,2DAAK,EAAE;6DAAwB;AACvB;IAAR,2DAAK,EAAE;+DAAmB;AAClB;IAAR,2DAAK,EAAE;kEAAsB;AARnB,6BAA6B;IAZzC,+DAAS,CAAC;QACT,QAAQ,EAAE,6BAA6B;QACvC,qPAAuD;KACxD,CAAC;IACF;;;;;;;MAOE;GACW,6BAA6B,CA+IzC;AA/IyC;AAiJnC,MAAM,WAAW;IAMtB,YAAa,KAAa,EAAE,UAAkB,EAAE,QAAgB;QAC9D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAEM,MAAM,qBAAsB,SAAQ,WAAW;IAEpD,YAAc,KAAa,EAAE,UAAkB,EAAE,QAAgB,EAAE,WAAmB;QACpF,KAAK,CAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF;AAEM,MAAM,2BAA4B,SAAQ,WAAW;IAK1D,YAAa,KAAa,EACb,UAAkB,EAClB,QAAgB,EAChB,QAAiB,EACjB,GAAY,EACZ,WAAoB,EACpB,MAAY;QACvB,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IAAC,CAAC;CAC1B;AAEM,MAAM,OAAO;IASlB,YAAa,IAAI,EACJ,WAAmB,EACnB,QAAgC,EAChC,WAAuE;QAClF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,2CAA2C;QAC9D,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,sDAAsD;QACtF,IAAI,CAAC,YAAY,GAAG,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAEzC,CAAC;IAED;;;OAGG;IACK,UAAU,CAAC,IAAI,EAAE,QAAQ;QAC/B,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,+BAA+B;YAC5D,0EAA0E;YAC1E,sEAAsE;YACtE,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,4BAA4B;gBACrG,sDAAsD;gBACtD,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,gBAAgB,CAAC;gBACvC,IAAI,CAAC,KAAK,KAAK,CAAC,EAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC;aAEzF;iBAAM;gBAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK;aAAE,CAAC,qDAAqD;YAC3F,+CAA+C;YAC/C,IAAI,CAAC,KAAK,KAAK,CAAC,EAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,uBAAuB,CAAC;YACjH,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0CAA0C;YACzH,IAAI,CAAC,KAAK,KAAK,CAAC,EAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC;SACzG;aAAM;YACL,8DAA8D;YAC9D,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,qBAAqB,CAAC;SAAE;IACnE,CAAC;IAED,OAAO,CAAC,IAAI;QACV,IAAI,CAAC,OAAO,CAAE,GAAG,CAAC,EAAE;YAClB,MAAM,QAAQ,GAAG,GAA4B,CAAC;YAC9C,qDAAqD;YACrD,mCAAmC;YACnC,qGAAqG;YACrG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAE,KAAK,CAAC,EAAE;gBAC/C,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;oBAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;iBAAC;YACzG,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,IAAI,EAAE,mBAA4B;QACzC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,mBAAmB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YAAE,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,GAAE,IAAI,CAAC;SAAC;aAAM;YAC5F,IAAI,CAAC,OAAO,CAAE,GAAG,CAAC,EAAE;gBAClB,MAAM,MAAM,GAAG,GAAkC,CAAC;gBAClD,iBAAiB;gBACjB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAE,CAAC,GAAE,IAAI,CAAC;YACjE,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,wBAAwB,CAAC,QAAiB;QACxC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,2BAA2B;QAClD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAEM,MAAM,iBAAiB;IAI5B,YAAY,QAAgB,EAAE,WAAkB,EAAE,OAAgB;QAClE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACvB,CAAC;CACF;AAEM,MAAM,mBAAmB;IAI9B,YAAY,WAAkB;QAC5B,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sCAAsC;QACxH,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sCAAsC;IAC5H,CAAC;CACF;AAMM,MAAM,aAAa;IAIxB,YAAY,GAAW,EAAE,IAAY;QACnC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAEM,MAAM,sBAAsB;IAQjC,YAAY,qBAA8B,KAAK,EACnC,0BAAmC,IAAI,EACvC,wBAAiC,KAAK,EACtC,mBAA2B,CAAC,EAC5B,mBAA4B;QAEtC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;IACjD,CAAC;CACF;AAEM,MAAM,aAAa;IAOxB,YAAY,IAAY,EAAE,UAAkB,EAAE,QAAgB,EAAE,QAAiB,EAAE,mBAAoB;QACrG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;IACjD,CAAC;CACF;;;;;;;;;;;;;;;;;;;;;;;AC7VwC;AAC2C;AAC/B;AACK;AACqB;AACA;AAa/E,IAAa,0BAA0B,GAAvC,MAAa,0BAA0B;CAAI;AAA9B,0BAA0B;IAXtC,8DAAQ,CAAC;QACR,YAAY,EAAE;YACZ,gGAA6B;SAAC;QAChC,OAAO,EAAE;YACP,kEAAgB;YAChB,uEAAa;YACb,4FAAuB;SACxB;QACD,OAAO,EAAE,CAAC,gGAA6B,CAAC;QACxC,SAAS,EAAE,CAAC,4FAA2B,CAAC;KACzC,CAAC;GACW,0BAA0B,CAAI;AAAJ;;;;;;;;;;;;;;;;;;AClBkB;AASzD,IAAa,2BAA2B,GAAxC,MAAa,2BAA2B;IAMtC;QAJA,+FAA+F;QACxF,6BAAwB,GAAG,IAAI,0DAAY,EAAqB,CAAC;QACjE,wBAAmB,GAAG,IAAI,0DAAY,EAAiB,CAAC,CAAC,0BAA0B;IAG1F,CAAC;CACF;AARY,2BAA2B;IAHvC,gEAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,2BAA2B,CAQvC;AARuC;;;;;;;;;;;;;ACTxC;AAAe,6GAA8C,uK;;;;;;;;;;;;;;;;;;;ACAX;AAGK;AAC4D;AAOnH,IAAa,0BAA0B,GAAvC,MAAa,0BAA0B;IASrC,YAAoB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QARlD,oBAAe,GAAa,CAAE,6DAAkB,CAAE,CAAC;QAEnD,kBAAa,GAAa,CAAE,0DAAe,CAAE,CAAC;QAC9C,aAAQ,GAAa,CAAE,qDAAU,CAAE,CAAC;QACpC,gBAAW,GAAa,CAAE,wDAAa,CAAC,CAAC;IAIa,CAAC;IAEvD,QAAQ;QACN,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAE,CAAC,WAAmB,EAAG,EAAE;YACvF,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;YACzC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAEjC,CAAC,CAAC,CAAC;IACL,CAAC;CAEF;;YAVqC,8DAAc;;AATvC,0BAA0B;IALtC,+DAAS,CAAC;QACT,QAAQ,EAAE,yBAAyB;QACnC,6PAAmD;;KAEpD,CAAC;GACW,0BAA0B,CAmBtC;AAnBsC;;;;;;;;;;;;;ACXvC;AAAe,+EAAgB,iBAAiB,mBAAmB,GAAG,oBAAoB,iBAAiB,eAAe,wBAAwB,GAAG,wBAAwB,iBAAiB,wBAAwB,GAAG,6CAA6C,m2C;;;;;;;;;;;;;;;;;ACApN;AAOlD,IAAa,gCAAgC,GAA7C,MAAa,gCAAgC;IAC3C,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;CACF;AALY,gCAAgC;IAL5C,+DAAS,CAAC;QACT,QAAQ,EAAE,+BAA+B;QACzC,+QAAyD;;KAE1D,CAAC;GACW,gCAAgC,CAK5C;AAL4C;;;;;;;;;;;;;;;;;;;;;ACJtC,MAAM,SAAS;IAQpB,YAAY,EAAU,EAAE,GAAW,EAAE,IAAY,EAAE,UAAkB,EAAE,KAAc,EAAE,WAAoB;QACzG,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF;AAEM,MAAO,cAAc;IAW1B,YAAY,eAAwB,EAAE,UAAkB,EAAE,UAAkB,EAAE,IAAY,EAAE,aAAqB,EAAE,aAAqB,EAAE,QAAgB,EAAE,UAAmB,EAAE,IAAY;QAC3L,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC,CAAC,gDAAgD;QACxF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,CAAS,yCAAyC;QAC/E,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC,4CAA4C;QAC1E,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAa,kCAAkC;QAChE,6HAA6H;IAC/H,CAAC;CACF;AAED,qHAAqH;AACrH,EAAE;AACK,MAAM,gBAAgB;IAQ3B,YAAY,GAAW,EAAE,SAAoB,EAAE,KAAc,EAAE,GAAI,EAAE,GAAa,EAAE,MAAgB;QAClG,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAaM,MAAM,MAAM;IAOjB,YAAa,IAAY,EAAE,OAAe,EAAE,SAAiB,EAAE,KAAc,EAAE,OAA0B;QACvG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAEzB,CAAC;CACF;AAEM,MAAM,gBAAgB;IAW3B,YAAY,EAAU,EAAE,GAAY,EAAE,GAAY,EAAE,IAAa,EAAE,KAAc,EAAE,WAAoB,EAAE,MAAe,EAAE,GAAY,EAAE,KAAc;QACpJ,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;;;;;;;;;;;;;ACpHD;AAAe,sFAAuB,6BAA6B,qBAAqB,qBAAqB,GAAG,wBAAwB,6BAA6B,qBAAqB,qBAAqB,uBAAuB,qBAAqB,4BAA4B,GAAG,mBAAmB,4BAA4B,GAAG,kCAAkC,gBAAgB,qBAAqB,iBAAiB,mDAAmD,yBAAyB,GAAG,gBAAgB,qBAAqB,sBAAsB,GAAG,gBAAgB,gBAAgB,oBAAoB,oBAAoB,wDAAwD,GAAG,kBAAkB,2EAA2E,GAAG,6CAA6C,2wF;;;;;;;;;;;;;;;;;;;;;;;ACA1tB;AACvB;AAGjB;AACR;AACD;AAC1B;AAW5B,IAAa,gCAAgC;AAJ7C;;;GAGG;AACH,MAAa,gCAAgC;IAU3C,YAAoB,WAAqC,EACpC,MAAc,EACd,cAA8B,EAC9B,YAA0B;QAH3B,gBAAW,GAAX,WAAW,CAA0B;QACpC,WAAM,GAAN,MAAM,CAAQ;QACd,mBAAc,GAAd,cAAc,CAAgB;QAC9B,iBAAY,GAAZ,YAAY,CAAc;QAE7C,IAAI,CAAC,kBAAkB,GAAG;YACxB,EAAE,EAAE,EAAE,YAAY;gBAChB,GAAG,EAAE,CAAC;gBACN,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,aAAa;gBACpB,UAAU,EAAE,YAAY;gBACxB,OAAO,EAAE,EAAE;gBACX,MAAM,EAAE;oBACN,IAAI,EAAE,CAAC;oBACP,OAAO,EAAE,yDAAyD;oBAClE,SAAS,EAAE,kBAAkB;oBAC7B,KAAK,EAAE,gBAAgB;oBACvB,OAAO,EAAE;wBACP,EAAE,EAAE,kBAAkB;wBACtB,GAAG,EAAE,kBAAkB;wBACvB,IAAI,EAAE,YAAY;wBAClB,KAAK,EAAE,aAAa;wBACpB,WAAW,EAAE,oBAAoB;wBACjC,MAAM,EAAE,kBAAkB;qBAC3B;iBACF;aACF,EAAE;gBACD,EAAE,EAAE,MAAM;gBACV,GAAG,EAAE,CAAC;gBACN,QAAQ,EAAE,KAAK;gBACf,KAAK,EAAE,QAAQ;gBACf,UAAU,EAAE,MAAM;gBAClB,OAAO,EAAE,EAAE;gBACX,MAAM,EAAE;oBACN,IAAI,EAAE,CAAC;oBACP,OAAO,EAAE,yDAAyD;oBAClE,SAAS,EAAE,kBAAkB;oBAC7B,KAAK,EAAE,gBAAgB;oBACvB,OAAO,EAAE;wBACP,EAAE,EAAE,YAAY;wBAChB,GAAG,EAAE,YAAY;wBACjB,KAAK,EAAE,kBAAkB;wBACzB,KAAK,EAAE,aAAa;wBACpB,GAAG,EAAE,kBAAkB;wBACvB,GAAG,EAAE,mBAAmB;qBACzB;iBACA;aACJ;SACF,CAAC;QACF,iGAAiG;QACjG,sFAAsF;QACtF,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAE,CAAC,WAAmB,EAAG,EAAE;YAChG,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YACtE,IAAI,IAAI,CAAC,cAAc,IAAI,WAAW,CAAC,UAAU,EAAE,EAAE,kCAAkC;gBACrF,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,WAAW,CAAE,CAAC;gBAChG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBAC3E,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;aAC9F;YACD,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAEK,QAAQ;;YACZ,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC/B,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACrD,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC9B,6BAA6B;YAC7B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC3B,gIAAgI;gBAChI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBAChE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;wBACpC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBACxD,CAAC,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC,CAAC;YACH,uDAAuD;YACrD,yFAAyF;YAC3F,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY;mBACnE,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;gBAChE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAC,CAAC;aACpD;QACL,CAAC;KAAA;IAED,eAAe;QACb,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QAClI,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC;IAED,iBAAiB,CAAC,KAAa,EAAE,MAAc,EAAE,SAAS;QACxD,IAAI,MAAM,IAAI,MAAM,KAAK,EAAE,IAAI,SAAS,EAAE;YACxC,IAAI,MAAM,KAAK,SAAS,EAAE;gBACxB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC;gBAC/D,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAClC,IAAI,GAAG,KAAK,IAAI,CAAC,WAAW,EAAE;oBAC5B,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;iBACnE;aACF;SACF;IACH,CAAC;IAED,oBAAoB,CAAC,OAAe,EAAE,UAAkB,EAAE,SAAiB;QACvE,IAAI,OAAO,KAAK,UAAU,EAAE;YAC1B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;YAC7B,2DAA2D;YAC3D,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACzF;IACL,CAAC;IAED,sBAAsB,CAAC,MAAc;QACnC,IAAI,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;YACnC,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC;YAC5D,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,SAAS,GAAG,SAAS,GAAG,GAAG,CAAC;SAChE;IACH,CAAC;IAED;;;OAGG;IACH,oBAAoB,CAAC,GAAY;QAC/B,IAAI,UAAU,CAAC;QACf,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,EAAE;YACtB,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;SAC3E;aAAM;YAAE,UAAU,GAAG,GAAG,CAAC;SAAE;QAC5B,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,UAAU,IAAI,UAAU,KAAK,EAAE,EAAE;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;YACjF,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC;SACnD;aAAM;YAAE,WAAW,GAAG,CAAC,CAAC;SAAE;QAC3B,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAE,GAAG,CAAC,EAAE,CACrC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,oEAAO,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAClH,CAAC;IAEK,eAAe,CAAC,IAAsB;;YAC1C,2BAA2B;YAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,YAAY,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE;gBACtE,2DAA2D;gBAC3D,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC7C,MAAM,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvD,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBACxE,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBACjE,0FAA0F;gBAC1F,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBAChF,IAAI,UAAU,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE;oBACpE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;iBAClD;aACF;iBAAM,EAAE,wEAAwE;gBAC/E,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;aAAE;QACvD,CAAC;KAAA;IAED,yBAAyB,CAAC,KAAK;QAC7B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,GAAG,GAAG,KAAK,EAAE;gBACpB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAC,CAAC,CAAC;aACrD;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,SAAS;QACvB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,GAAG,GAAG,SAAS,EAAE;gBACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC;aACnC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,SAAiB,EAAE,KAAa;QAC9C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,SAAS,CAAC;IAChD,CAAC;IAED,wEAAwE;IAClE,uBAAuB,CAAC,SAAiB,EAAE,KAAa;;YAC5D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,SAAS,CAAC;YAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC;YAC1E,iBAAiB;YACjB,MAAM,SAAS,GAAG,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;YACvD,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC;KAAA;IAGD,gBAAgB,CAAC,SAAS,EAAE,MAAe;QACzC,IAAI,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;YAClD,oIAAoI;YACpI,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,CAAC,EAAE,MAAM,CAAE,CAAC;SAC/C;IACH,CAAC;IAED,4CAA4C;IAC5C,qBAAqB,CAAC,GAAW;QAC/B,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC9B,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAC,CAAC,CAAC;SAAE;IAC1E,CAAC;IAEH;;;;OAIG;IACG,gBAAgB,CAAC,MAAe,EAAE,MAAe;;YACrD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,qCAAqC;YACxE,KAAM,MAAM,OAAO,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,EAAE;gBACtE,IAAI,OAAO,CAAC,GAAG,IAAI,aAAa,EAAE,EAAE,8BAA8B;oBAChE,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAM,KAAK,EAAC,EAAE,CAAC;wBACpF,IAAI,UAAkB,CAAC;wBACvB,8DAA8D;wBAC9D,IAAI,OAAO,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE,sCAAsC;4BAC3D,IAAI,MAAM,EAAE;gCACV,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gCACvE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;6BAC3C;iCAAM;gCACL,4EAA4E;gCAC5E,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oCAC9D,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,GAAG,GAAG,CAAC,EAAE;wCAClC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;wCAC5E,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;qCAAE;gCAChD,CAAC,CAAC,CAAC;6BACJ;yBACF;6BAAM;4BACL,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;yBAAE;oBAC3C,CAAC,EAAC,CAAC;iBACJ;aACF;QACH,CAAC;KAAA;IAGD,eAAe,CAAC,GAAe,EAAE,KAAK;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;QAChE,IAAI,WAAW,CAAC;QAChB,IAAI,GAAG,GAAG,CAAC,EAAE;YAAE,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC;SAAE;QACxE,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;YACd,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAC9E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,0CAAK,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EACjC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YAAC,CAAC,CAAC,CAAC;SAChG;IACH,CAAC;CACF;;YAnPkC,6FAAwB;YAC5B,sDAAM;YACE,8DAAc;YAChB,oEAAY;;AAbpC,gCAAgC;IAT5C,+DAAS,CAAC;QACT,QAAQ,EAAE,+BAA+B;QACzC,+QAAyD;;KAE1D,CAAC;IACF;;;OAGG;GACU,gCAAgC,CA6P5C;AA7P4C;;;;;;;;;;;;;;;;;;;;;AClBS;AAEe;AACzC;AAM5B,IAAa,OAAO,GAApB,MAAa,OAAO;IAclB,YAAY,EAAU,EACV,GAAW,EACX,KAAa,EACb,OAA2B,EAC3B,MAAc,EACd,WAAoB,EACpB,MAAe,EACf,YAAqB,EACrB,iBAA0B,EAC1B,WAAoB;QAC9B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,eAAe,GAAG,IAAI,0DAAY,EAAE,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,cAAc,CAAC,IAAS,EAAE,WAAmB,EAAE,WAAoB;QACjE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,0CAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnE,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE;YAC/D,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;SAAE;aAAM;YACnD,IAAI,CAAC,WAAW,CAAC,0CAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;SAC1D;QAED,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,uCAAuC;QAC1D,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC5B,4EAA4E;YAC5E,MAAM,MAAM,GAAG,IAAI,wDAAS,CAAC,0CAAK,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAC/D,0CAAK,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,0CAAK,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC7E,IAAI,EAAE,KAAK,EAAG,0CAAK,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,0CAAK,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC;YACpH,MAAM,KAAK,GAAG,0CAAK,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,GAAG,CAAC;YACR,IAAI,0CAAK,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACzC,GAAG,GAAG,kEAAkE,GAAG,0CAAK,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;aAClH;YACD,MAAM,MAAM,GAAG,0CAAK,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACxD,MAAM,SAAS,GAAG,IAAI,+DAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAC9E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,MAAc;QACxB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAC,CAAC,CAAC;IACvD,CAAC;CACF;;;;;;;;YA9CsB,qDAAM;;;;;AApBhB,OAAO;IAJnB,+DAAS,CAAC;QACT,QAAQ,EAAE,uBAAuB;KAClC,CAAC;GAEW,OAAO,CAkEnB;AAlEmB;;;;;;;;;;;;;ACTpB;AAAe,0EAAW,iBAAiB,qBAAqB,GAAG,aAAa,kBAAkB,eAAe,GAAG,6BAA6B,sBAAsB,iBAAiB,mBAAmB,mBAAmB,GAAG,wCAAwC,iBAAiB,wBAAwB,mBAAmB,eAAe,wBAAwB,GAAG,kCAAkC,iBAAiB,wBAAwB,eAAe,wBAAwB,kBAAkB,GAAG,6BAA6B,sBAAsB,gBAAgB,iBAAiB,cAAc,eAAe,GAAG,yBAAyB,sBAAsB,iBAAiB,mBAAmB,GAAG,wBAAwB,iBAAiB,wBAAwB,wBAAwB,eAAe,wBAAwB,kBAAkB,GAAG,iCAAiC,iBAAiB,2BAA2B,qBAAqB,gBAAgB,wBAAwB,GAAG,uBAAuB,kBAAkB,qBAAqB,gBAAgB,kBAAkB,4BAA4B,wBAAwB,cAAc,eAAe,GAAG,8BAA8B,iBAAiB,wBAAwB,wBAAwB,yBAAyB,uBAAuB,kBAAkB,gBAAgB,iBAAiB,GAAG,oBAAoB,kBAAkB,qBAAqB,gBAAgB,kBAAkB,4BAA4B,cAAc,eAAe,GAAG,0BAA0B,sBAAsB,GAAG,0BAA0B,qBAAqB,GAAG,sDAAsD,kBAAkB,uBAAuB,GAAG,uBAAuB,mBAAmB,GAAG,2BAA2B,wBAAwB,GAAG,6CAA6C,msO;;;;;;;;;;;;;;;;;;;ACA3xD;AACe;AACd;AAOjD,IAAa,wBAAwB,GAArC,MAAa,wBAAwB;IAGnC,YAAoB,MAAc,EACd,cAA8B;QAD9B,WAAM,GAAN,MAAM,CAAQ;QACd,mBAAc,GAAd,cAAc,CAAgB;IAAI,CAAC;IAEvD,QAAQ;QAEN,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAE,CAAC,WAAmB,EAAG,EAAE;YAClE,IAAI,CAAC,WAAW,GAAG,IAAI,6DAAc,CACnC,WAAW,CAAC,eAAe,EAC3B,WAAW,CAAC,UAAU,EACtB,WAAW,CAAC,UAAU,EACtB,WAAW,CAAC,IAAI,EAChB,WAAW,CAAC,aAAa,EACzB,WAAW,CAAC,aAAa,EACzB,WAAW,CAAC,QAAQ,EACpB,WAAW,CAAC,UAAU,EACtB,WAAW,CAAC,IAAI,CACjB,CAAC;QACJ,CAAC,CAAC,CAAC;IAEJ,CAAC;CACH;;YApB6B,sDAAM;YACE,8DAAc;;AAJvC,wBAAwB;IALpC,+DAAS,CAAC;QACT,QAAQ,EAAE,iCAAiC;QAC3C,iQAAiD;;KAElD,CAAC;GACW,wBAAwB,CAuBpC;AAvBoC;;;;;;;;;;;;;;;;;;ACTY;AAEjD;;;;;;;;;;;IAWI;AACG,MAAM,qBAAqB;IAAlC;QAKG;;YAEI;QACa,uBAAkB,GAAW,CAAC,CAAC;QAChD;;YAEI;QACM,4BAAuB,GAAa,CAAE,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAE,CAAC;IAoDhF,CAAC;IAlDE;;;QAGI;IACM,oBAAoB;QAC3B,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACxC,IAAI,GAAG,IAAI,IAAI,CAAC,aAAa,EAAC;gBAC3B,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;oBACpE,IAAI,QAAQ,IAAI,IAAI,EAAC;wBAClB,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;qBACpD;gBACJ,CAAC,CAAC,CAAC;aACL;QACJ,CAAC,CAAC,CAAC;IACN,CAAC;IACD;;QAEI;IACG,oBAAoB,CAAC,sBAA8B;QACvD,IAAI,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,EAAC;YACpE,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;SAC5D;IACJ,CAAC;IACD;;QAEI;IACG,oBAAoB;QACxB,OAAO,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAChE,CAAC;IACF;;QAEI;IACJ,WAAW;QACP,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAC;YAC5B,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC9B;IACL,CAAC;IACM,MAAM,CAAC,mBAAmB,CAAC,gBAA+B,EAAE,gBAA+B;QAC9F,IAAI,gBAAgB,IAAI,IAAI,EAAC;YAC1B,MAAM,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACxD,IAAI,GAAG,IAAI,gBAAgB,IAAI,OAAO,gBAAgB,CAAC,GAAG,CAAC,IAAI,QAAQ,IAAI,OAAO,gBAAgB,CAAC,GAAG,CAAC,IAAI,QAAQ,EAAE;oBAC/G,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;iBACpG;qBAAM;oBACJ,gBAAgB,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,GAAG,CAAC;iBAC/C;YACJ,CAAC,CAAC,CAAC;YAAC,OAAO,gBAAgB,CAAC;SAC9B;aAAM;YACJ,OAAO,gBAAgB,CAAC;SAC1B;IACL,CAAC;CACF;AA5DW;IAAR,2DAAK,EAAE;4DAA8B;;;;;;;;;;;;;AClBzC;AAAe,6GAA8C,mL;;;;;;;;;;;;;;;;;;ACAH;AACY;AAQtE,IAAa,uBAAuB,GAApC,MAAa,uBAAuB;IAElC,YAAmD,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAI,CAAC;IAE5E,QAAQ;IACR,CAAC;CAEF;;4CALc,oDAAM,SAAC,oFAAqB;;AAF9B,uBAAuB;IALnC,+DAAS,CAAC;QACT,QAAQ,EAAE,iBAAiB;QAC3B,qQAA+C;;KAEhD,CAAC;IAGa,6GAAM,CAAC,oFAAqB,CAAC;GAF/B,uBAAuB,CAOnC;AAPmC;;;;;;;;;;;;;ACTpC;AAAe,yEAAU,gBAAgB,GAAG,OAAO,gBAAgB,kBAAkB,qBAAqB,GAAG,iDAAiD,mc;;;;;;;;;;;;;;;;;;;;ACAzF;AACY;AAC1B;AAC+B;AAStF,IAAa,kBAAkB,GAA/B,MAAa,kBAAkB;IAK7B,YAAoB,WAA2B,EAAU,eAAgC;QAArE,gBAAW,GAAX,WAAW,CAAgB;QAAU,oBAAe,GAAf,eAAe,CAAiB;QAHxF,cAAS,GAAY,KAAK,CAAC;IAGiE,CAAC;IAE9F,QAAQ;IACR,CAAC;IACO,YAAY,CAAC,SAAkB;QACnC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IACO,wBAAwB,CAAC,CAAa;QAC3C;uEAC+D;QAC/D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kGAAuB,EAAE;YAC5C,IAAI,EAAE,IAAI,CAAC,SAAS;SACtB,CAAC,CAAC;IAEN,CAAC;CACF;;YAfkC,6EAAc;YAA2B,kEAAe;;AAJ/E;IAAR,2DAAK,EAAE;qDAAmB;AAElB;IAAR,2DAAK,EAAE;qDAAsB;AAHpB,kBAAkB;IAL9B,+DAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,yOAAyC;;KAE1C,CAAC;GACW,kBAAkB,CAoB9B;AApB8B;;;;;;;;;;;;;;;;;ACZ/B,IAAY,gBAOX;AAPD,WAAY,gBAAgB;IACzB,uCAAoB;IACpB,iDAA6B;IAC7B,8DAA0C;IAC1C,mDAA+B;IAC/B,mDAA+B;IAC/B,iDAA6B;AAChC,CAAC,EAPW,gBAAgB,KAAhB,gBAAgB,QAO3B;;;;;;;;;;;;;;;;;;;ACPiF;AAC5B;AAOtD;;;;IAII;AAIJ,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IA4B7B,YAAoB,eAAgC,EAAU,EAAc;QAAxD,oBAAe,GAAf,eAAe,CAAiB;QAAU,OAAE,GAAF,EAAE,CAAY;QAvB5E;;YAEI;QACK,aAAQ,GAAW,iBAAiB,CAAC;QAK9C;;;YAGI;QACJ,UAAK,GAAW,GAAG,CAAC;QACpB;;YAEI;QACJ,cAAS,GAAW,CAAC,CAAC,CAAC;QACvB;;YAEI;QACJ,aAAQ,GAAY,KAAK,CAAC;QAC1B,aAAQ,GAAa,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAE2C,CAAC;IAEhF;;;QAGI;IACJ,QAAQ;QACL,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,SAAS,EAAC;YACvD,IAAI,aAAa,GAAqB,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC;YAC7E,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC;SAClE;QACD,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC;QACzD,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,SAAS,CACzC,CAAC,WAAiB,EAAE,EAAE;YAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,SAAS,CACzC,CAAC,WAAiB,EAAE,EAAE;YAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,MAAM,CAAC;QAC5E,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,SAAS,CAC1C,CAAC,WAAiB,EAAE,EAAE;YACnB,IAAI,CAAC,YAAY,EAAE;QACzB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,SAAS,CAC1C,CAAC,WAAiB,EAAE,EAAE;YAAG,IAAI,CAAC,YAAY,EAAE;QAC/C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,SAAS,CACzC,CAAC,WAAiB,EAAE,EAAE;YAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,MAAM,CAAC;QAC5E,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,SAAS,CACzC,CAAC,WAAiB,EAAE,EAAE;YAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;IACN,CAAC;IACD;;QAEI;IACI,YAAY;QACjB,IAAG,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,EAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7B,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;SACtB;IACJ,CAAC;IACD;;;;QAII;IACI,sBAAsB,CAAC,WAAyB,EAAE,WAAmB,EAAE,QAAe,IAAI,CAAC,KAAK;QACrG,IAAI,WAAW,IAAI,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,IAAI,MAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,kBAAkB,EAAC;YACtH,IAAI,WAAW,GAAS,WAAW;YACnC,IAAI,WAAW,GAAS,IAAI,CAAC,gBAAgB;YAC7C,IAAI,WAAW,CAAC,EAAE,IAAI,WAAW,CAAC,EAAE,IAAI,WAAW,CAAC,aAAa,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAC;gBAC5F,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;aAC5B;SACH;aAAM,IAAI,WAAW,IAAG,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,IAAI,MAAM,EAAC;YACzE,IAAI,WAAW,GAAS,WAAW;YACnC,IAAI,WAAW,GAAS,IAAI,CAAC,gBAAgB;YAC7C,IAAI,WAAW,KAAK,WAAW,IAAI,WAAW,CAAC,EAAE,IAAI,WAAW,CAAC,EAAE,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAC;gBAC9F,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;aAC3B;SACH;IACJ,CAAC;IACD;;QAEI;IACI,aAAa,CAAC,KAAa;QAChC,IAAI,QAAQ,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QACnD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,GAAE,EAAE;YACpC,IAAI,IAAI,CAAC,QAAQ,EAAC;gBACf,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAC,CAAC,CAAC;aAChE;QACJ,CAAC,EAAE,KAAK,CAAC,CAAC;IACb,CAAC;IACD;;;QAGI;IACI,kBAAkB;QACvB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,QAAQ,EAAC;YAC3G,OAAO,KAAK,CAAC;SACf;QACD,IAAI,MAAM,GAAqB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QAC7E,IAAI,aAAa,GAAqB,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC;QAC7E,OAAO,MAAM,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG;eAC/B,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM;eACpC,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI;eAChC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;IAC5C,CAAC;IACD;;;QAGI;IAC+B,YAAY,CAAE,CAAa;QAC3D,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7J,CAAC;IACD;;;QAGI;IACoC,YAAY,CAAE,CAAa;QAChE,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7J,CAAC;IACD;;;QAGI;IACwB,YAAY;QACtC,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC9D,CAAC;CACH;;YA9GuC,kEAAe;YAAc,wDAAU;;AAxBjD;IAA1B,2DAAK,CAAC,kBAAkB,CAAC;6DAAgC;AAIjD;IAAR,2DAAK,EAAE;qDAAsC;AAIrC;IAAR,2DAAK,EAAE;sDAAwB;AA6GG;IAAlC,kEAAY,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;uDAEjC;AAKuC;IAAvC,kEAAY,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC;uDAEtC;AAK2B;IAA3B,kEAAY,CAAC,YAAY,CAAC;uDAE1B;AAzIS,mBAAmB;IAH/B,+DAAS,CAAC;QACR,QAAQ,EAAE,oBAAoB;KAChC,CAAC;GACW,mBAAmB,CA0I/B;AA1I+B;;;;;;;;;;;;;AChBhC;AAAe,gFAAiB,iBAAiB,kBAAkB,GAAG,gBAAgB,qBAAqB,kBAAkB,GAAG,kBAAkB,qBAAqB,GAAG,+CAA+C,umB;;;;;;;;;;;;;;;;;;ACAhK;AAEC;AAO1D,IAAa,sBAAsB,GAAnC,MAAa,sBAAsB;IAOjC,YAAoB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;QAJnD,gBAAW,GAAY,KAAK,CAAC;IAI0B,CAAC;IAEzD,QAAQ;QACL,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC;eACvF,CAAC,IAAI,CAAC,aAAa,IAAI,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,EAAC;YAC3F,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;YAChG,IAAI,CAAC,YAAY,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE;SAClI;IACJ,CAAC;IAEO,aAAa,CAAC,IAAa,EAAE,CAAa;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,KAAK,GAAU,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,GAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,GAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QACtH,IAAI,IAAI,EAAC;YACL,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YAC9D,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;SACjD;aAAM;YACH,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACxD,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;SAClD;IACJ,CAAC;IACO,cAAc;QACnB,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;CACF;;YAxBsC,kEAAe;;AAN1C;IAAR,2DAAK,EAAE;oDAAY;AACI;IAAvB,2DAAK,CAAC,eAAe,CAAC;6DAAuB;AAFpC,sBAAsB;IALlC,+DAAS,CAAC;QACT,QAAQ,EAAE,gBAAgB;QAC1B,qQAA8C;;KAE/C,CAAC;GACW,sBAAsB,CA+BlC;AA/BkC;;;;;;;;;;;;;ACTnC;AAAe,8EAAe,4BAA4B,oBAAoB,GAAG,wBAAwB,oBAAoB,GAAG,iCAAiC,iBAAiB,kBAAkB,GAAG,6BAA6B,kBAAkB,kBAAkB,GAAG,0BAA0B,oBAAoB,mBAAmB,iBAAiB,GAAG,gCAAgC,kBAAkB,iBAAiB,GAAG,6BAA6B,kBAAkB,iBAAiB,GAAG,mBAAmB,kBAAkB,GAAG,YAAY,0BAA0B,GAAG,+CAA+C,+zC;;;;;;;;;;;;;;;;;;;ACAthB;AAE5B;AACA;AACvD;;IAEI;AAMJ,IAAa,oBAAoB,GAAjC,MAAa,oBAAoB;IA4F9B;;QAEI;IACJ,YAAqB,WAA4B;QAA5B,gBAAW,GAAX,WAAW,CAAiB;QA1FjD;;YAEI;QACJ,mBAAc,GAAW,kEAAgB,CAAC,YAAY;QACtD,oBAAe,GAAW,kEAAgB,CAAC,aAAa;QAiBxD;;YAEI;QACJ,gBAAW,GAAW,CAAC,CAAC;QACxB;;YAEI;QACJ,gBAAW,GAAW,EAAE,CAAC;QACzB;;YAEI;QACJ,WAAM,GAAW,CAAC,CAAC;QACnB;;YAEI;QACJ,kBAAa,GAAW,SAAS,CAAC;QAClC;;YAEI;QACJ,eAAU,GAAW,CAAC,CAAC;QACvB;;YAEI;QACJ,iBAAY,GAAW,EAAE,CAAC;QAC1B;;YAEI;QACK,kBAAa,GAAW,IAAI;QAOrC;;YAEI;QACJ,YAAO,GAAW,EAAE,CAAC;QACrB;;YAEI;QACK,eAAU,GAAW,CAAC,CAAC,CAAC;QACjC;;YAEI;QACK,cAAS,GAAW,CAAC,CAAC,CAAC;QAChC;;YAEI;QACK,kBAAa,GAAiB,EAAE,CAAC;QAC1C;;YAEI;QACK,eAAU,GAAW,CAAC,CAAC;QAQhC;;YAEI;QACJ,eAAU,GAAW,CAAC,CAAC;IAK8B,CAAC;IAEtD;;OAEG;IACH,QAAQ;QACL,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,EAAC;YAC/C,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;SACvC;QACD,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,GAAG,GAAI,IAAI,CAAC,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/F,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;YAC1B,IAAI,CAAC,aAAa,EAAE;SACtB;QACD,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CACrC,CAAC,WAAiB,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,EAAC,CAC3D,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,SAAS,CAC7C,CAAC,mBAAiC,EAAE,EAAE,GAAG,IAAI,CAAC,oBAAoB,GAAG,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC,CAC3G,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,SAAS,CAC9C,CAAC,mBAAiC,EAAE,EAAE,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,GAAC,CAC5E,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,SAAS,CACxC,CAAC,WAAiB,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CACnD,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CACrC,CAAC,WAAiB,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,EAAC,CAC3D,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,SAAS,CACxC,CAAC,WAAiB,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CACnD,CAAC;IACL,CAAC;IACD;;OAEG;IACH,WAAW,CAAC,OAAsB;QAC/B,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;YAC1B,IAAI,CAAC,aAAa,EAAE;SACtB;IACJ,CAAC;IACD;;;;;;;OAOG;IACK,aAAa;QACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAC;YAC7B,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,GAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtI;aAAM;YACL,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,IAAI,SAAS,CAAC;YACxG,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,GAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;SACvF;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,GAAG,GAAI,IAAI,CAAC,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/F,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;YAC7D,CAAC,CAAC,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,GAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QACnF,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC;YACxE,IAAI,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC,UAAU,GAAC,CAAC,GAAC,GAAG,CAAC,GAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;SACpE;IAEJ,CAAC;IACD;;;;OAIG;IACK,cAAc,CAAC,IAAU;QAC/B,IAAK,CAAC,IAAI,CAAC,WAAW,IAAI,SAAS,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;eAC/F,CAAC,IAAI,CAAC,oBAAoB,IAAI,SAAS,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;eACxH,CAAC,IAAI,CAAC,WAAW,IAAI,SAAS,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAG;YACjG,OAAO,kEAAgB,CAAC,YAAY,CAAC;SACxC;aAAM,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;YACnF,OAAO,kEAAgB,CAAC,aAAa;SACvC;aAAM;YACH,OAAO,kEAAgB,CAAC,OAAO,CAAC;SACnC;IACH,CAAC;IACD;;QAEI;IACI,WAAW,CAAC,IAAU,EAAE,WAAiB,EAAE,WAAiB,EAAE,WAAmB;QACtF,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChH,CAAC;CAEH;;YA1FoC,kEAAe;;AA3FxC;IAAR,2DAAK,EAAE;uDAAwB;AAqBvB;IAAR,2DAAK,EAAE;mDAAe;AA4Bd;IAAR,2DAAK,EAAE;2DAA6B;AAM5B;IAAR,2DAAK,EAAE;wDAAuB;AAQtB;IAAR,2DAAK,EAAE;wDAAyB;AAIxB;IAAR,2DAAK,EAAE;uDAAwB;AAIvB;IAAR,2DAAK,EAAE;2DAAkC;AAIjC;IAAR,2DAAK,EAAE;wDAAwB;AAOV;IAArB,2DAAK,CAAC,aAAa,CAAC;4DAAsC;AAtFjD,oBAAoB;IALhC,+DAAS,CAAC;QACT,QAAQ,EAAE,cAAc;QACxB,kPAA4C;;KAE7C,CAAC;GACW,oBAAoB,CAyLhC;AAzLgC;;;;;;;;;;;;;ACZjC;AAAe,uEAAQ,iBAAiB,eAAe,gBAAgB,yBAAyB,GAAG,WAAW,2BAA2B,GAAG,cAAc,oBAAoB,iBAAiB,sBAAsB,GAAG,QAAQ,2BAA2B,gBAAgB,kBAAkB,eAAe,GAAG,WAAW,2BAA2B,kBAAkB,eAAe,GAAG,cAAc,2BAA2B,kBAAkB,oBAAoB,eAAe,GAAG,+CAA+C,+pC;;;;;;;;;;;;;;;;;ACAtc;AAEnE;;;IAGI;AAMJ,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;IA2F5B;QArFC;;YAEI;QACK,wBAAmB,GAAwB,EAAE,CAAC;QASvD;;YAEI;QACJ,uBAAkB,GAAW,iBAAiB;QAK9C;;YAEI;QACK,eAAU,GAAW,CAAC,CAAC,CAAC;QACjC;;YAEI;QACK,cAAS,GAAW,CAAC,CAAC,CAAC;QAChC;;YAEI;QACK,qBAAgB,GAAY,IAAI,CAAC;QAC1C;;YAEI;QACK,yBAAoB,GAAwB,EAAE,CAAC;QASxD;;YAEI;QACJ,wBAAmB,GAAW,kBAAkB;QAoBhD;;YAEI;QACK,eAAU,GAAW,CAAC,CAAC;QAChC;;YAEI;QACK,kBAAa,GAAiB,EAAE,CAAC;QAC1C;;YAEI;QACK,kBAAa,GAAiB,EAAE,CAAC;QAI1C,sBAAiB,GAAW,MAAM,CAAC;QACnC,uBAAkB,GAAW,IAAI,CAAC;IAEpB,CAAC;IAEhB;;QAEI;IACJ,QAAQ;QACL,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,EAAC;YAC9C,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;SACxC;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;IACtB,CAAC;IACD,WAAW;QACR,IAAI,IAAI,CAAC,iBAAiB,IAAI,SAAS,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,IAAI,IAAI,CAAC,iBAAiB,EAAC;YAChG,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;SAChC;aAAM;YACH,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;YAChC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAClC;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,IAAI,IAAI,EAAC;YAChG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC;SACvD;QACD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,IAAI,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,IAAI,EAAC;YACnG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC;SACzD;IACL,CAAC;IACO,WAAW;QACd,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,SAAS,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,SAAS,EAAC;YACxH,IAAG,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAC;gBACzF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;aAC9E;YACD,IAAG,IAAI,CAAC,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,IAAI,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAC;gBAC5F,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;aACjF;SACJ;IACJ,CAAC;IACO,WAAW,CAAC,KAAa,EAAE,KAAa;QAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YACnC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAI,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAC;gBACzD,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAI,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC,EAAC,CAAC,IAAG,OAAO,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/H,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAI,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC,EAAC,CAAC,IAAG,OAAO,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACzJ;SACH;IACJ,CAAC;IACQ,eAAe,CAAC,KAAY,EAAE,KAAa;QAChD,IAAI,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QAC5G,IAAI,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAI,CAAC,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC;QACjE,IAAI,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAI,CAAC,EAAE,IAAI,SAAS,CAAC;QACxD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAC;YAC9C,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,GAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC9E,IAAI,MAAM,GAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,GAAC,GAAG,CAAC,GAAC,EAAE,CAAC;YAC1C,IAAI,UAAU,GAAc,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;YACpH,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBAC7F,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS;gBACpG,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;SACpC;QACD,OAAO,KAAK,CAAC;IAChB,CAAC;IACF;;QAEI;IACI,cAAc;QACnB,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAC;YAC/E,OAAO,IAAI;SACb;QACD,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,GAAC,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC;QACxH,IAAI,aAAa,GAAG,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,GAAC,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC;QAC3H,OAAO,YAAY,GAAG,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC;IAC3D,CAAC;CACF;AAhKW;IAAR,2DAAK,EAAE;wDAA8B;AAI7B;IAAR,2DAAK,EAAE;mDAAkB;AAIjB;IAAR,2DAAK,EAAE;8DAA+C;AAI9C;IAAR,2DAAK,EAAE;sDAAoB;AAInB;IAAR,2DAAK,EAAE;sDAAqB;AAQpB;IAAR,2DAAK,EAAE;sDAAqB;AAIpB;IAAR,2DAAK,EAAE;qDAAyB;AAIxB;IAAR,2DAAK,EAAE;oDAAwB;AAIvB;IAAR,2DAAK,EAAE;2DAAkC;AAIjC;IAAR,2DAAK,EAAE;+DAAgD;AAI/C;IAAR,2DAAK,EAAE;uDAAqB;AAIpB;IAAR,2DAAK,EAAE;uDAAsB;AAQrB;IAAR,2DAAK,EAAE;uDAAsB;AAMR;IAArB,2DAAK,CAAC,aAAa,CAAC;sDAAmC;AASlC;IAArB,2DAAK,CAAC,aAAa,CAAC;sDAAmC;AAI/C;IAAR,2DAAK,EAAE;qDAAwB;AAIvB;IAAR,2DAAK,EAAE;wDAAkC;AAIjC;IAAR,2DAAK,EAAE;wDAAkC;AACtB;IAAnB,2DAAK,CAAC,WAAW,CAAC;sDAAyB;AAC1B;IAAjB,2DAAK,CAAC,SAAS,CAAC;oDAAuB;AAC/B;IAAR,2DAAK,EAAE;4DAA4B;AAvF1B,iBAAiB;IAL7B,+DAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,+NAAyC;;KAE1C,CAAC;GACW,iBAAiB,CAiK7B;AAjK6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXW;AACM;AAGpB;AAEkD;AACC;AACjB;AACH;AACJ;AACe;AAC2B;AACA;AA+ChG,IAAa,cAAc,GAA3B,MAAa,cAAc;CAAI;AAAlB,cAAc;IA7C1B,8DAAQ,CAAC;QACP,YAAY,EAAE;YACX,yEAAmB;YACnB,yFAAoB;YACpB,2FAAkB;YAClB,sEAAiB;YACjB,iFAAkB;YAClB,6GAAsB;YACtB,6GAAuB;SACzB;QACD,OAAO,EAAE;YACP,sEAAoB;YACrB,iEAAe;YACf,uEAAqB;YACrB,+DAAa;YACb,mEAAiB;YACjB,iEAAe;YACf,oEAAkB;YAClB,oEAAkB;YAClB,+DAAa;YACb,gEAAc;YACd,+DAAa;YACb,+DAAa;YACb,oEAAkB;YAClB,gEAAc;YACd,iEAAe;YACf,kEAAgB;YAChB,+DAAa;YACb,gEAAc;YACd,+DAAa;YACb,kEAAgB;YAChB,kEAAgB;YAChB,4DAAY;SACZ;QACD,SAAS,EAAE;YACR,kEAAe;SACjB;QACD,OAAO,EAAE;YACN,yFAAoB;YACpB,2FAAkB;YAClB,sEAAiB;YACjB,iFAAkB;SACpB;QACD,eAAe,EAAE,CAAC,6GAAuB,CAAC;KAC5C,CAAC;GACW,cAAc,CAAI;AAAJ;;;;;;;;;;;;;;;;;;AC5D4B;AAEvD;;;;;KAKK;AAEL,IAAa,eAAe,GAA5B,MAAa,eAAe;IAP5B;;;;;SAKK;IACL;QAEE;;YAEI;QACJ,kBAAa,GAAG,IAAI,0DAAY,EAAQ,CAAC;QACzC;;YAEI;QACJ,mBAAc,GAAG,IAAI,0DAAY,EAAQ,CAAC;QAC1C;;YAEI;QACJ,kBAAa,GAAG,IAAI,0DAAY,EAAQ,CAAC;QACzC;;YAEI;QACJ,kBAAa,GAAG,IAAI,0DAAY,EAAQ,CAAC;QACzC;;YAEI;QACJ,mBAAc,GAAG,IAAI,0DAAY,EAAQ,CAAC;QAC1C;;YAEI;QACJ,kBAAa,GAAG,IAAI,0DAAY,EAAQ,CAAC;QACzC;;YAEI;QACJ,+BAA0B,GAAG,IAAI,0DAAY,EAAqB,CAAC;QACnE;;YAEI;QACJ,+BAA0B,GAAI,IAAI,0DAAY,EAAqB,CAAC;QACpE;;YAEI;QACJ,gCAA2B,GAAI,IAAI,0DAAY,EAAqB,CAAC;QACrE;;YAEI;QACJ,0BAAqB,GAAI,IAAI,0DAAY,EAAgB,CAAC;QAC1D;;YAEI;QACJ,2BAAsB,GAAG,IAAI,0DAAY,EAAgB,CAAC;QAC1D;;YAEI;QACH,kBAAa,GAAG,IAAI,0DAAY,EAAS,CAAC;QAC1C;;YAEI;QACJ,cAAS,GAAG,IAAI,0DAAY,EAAa,CAAC;QAC1C;;aAEK;QACL,cAAS,GAAG,IAAI,0DAAY,EAAa,CAAC;IAoC7C,CAAC;IAlCS,gBAAgB,CAAC,SAAoB;QAC1C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IACK,gBAAgB,CAAC,SAAoB,EAAE,KAAa;QACxD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,SAAS,EAAC;YACpC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClC;IACJ,CAAC;IACD;;QAEI;IACG,cAAc,CAAC,YAA0B,EAAE,KAAa;QAC5D,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7D,IAAI,YAAY,CAAC,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,SAAS,EAAC;YACvE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClC;IACJ,CAAC;IACD;;QAEI;IACG,cAAc,CAAC,YAA0B,EAAE,KAAa;QAC5D,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7D,IAAI,YAAY,CAAC,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,SAAS,EAAC;YACvE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClC;IACJ,CAAC;IACD;;QAEI;IACG,eAAe,CAAC,YAA0B;QAC9C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAChG,CAAC;CACF;AA5FY,eAAe;IAD3B,gEAAU,EAAE;GACA,eAAe,CA4F3B;AA5F2B;;;;;;;;;;;;;;;;;ACTrB,MAAM,MAAM;IAUhB,YAAY,aAAqB,EAAE,UAAmB;QATrC,WAAM,GAAW,CAAC,GAAG,CAAC;QACtB,MAAC,GAAW,CAAC;QACb,MAAC,GAAW,CAAC;QACb,MAAC,GAAW,CAAC;QACb,MAAC,GAAW,CAAC;QACb,MAAC,GAAW,CAAC;QACb,MAAC,GAAW,CAAC;QAC9B,WAAM,GAAa,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE;QAGpC,IAAI,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAC;YACpC,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,EAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAM,CAAC,CAAC,CAAC,CAAC;SACjG;aAAM,IAAI,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,EAAC;YAC7C,IAAI,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,EAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAC,EAAE,CAAC,CAAC;YACzE,IAAI,OAAO,GAAG,IAAI,CAAC,EAAE,GAAC,GAAG,GAAC,KAAK;YAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SACrD;QACD,IAAI,UAAU,IAAI,IAAI,EAAC;YACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,GAAC,IAAI,CAAC,MAAM;YAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,GAAC,IAAI,CAAC,MAAM;SAC9C;IACJ,CAAC;IAEM,QAAQ;QACZ,OAAO,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;IACpE,CAAC;CACH;;;;;;;;;;;;;AC9BD;AAAe,4EAAa,8BAA8B,GAAG,uBAAuB,eAAe,iBAAiB,GAAG,6BAA6B,kBAAkB,iBAAiB,GAAG,gCAAgC,kBAAkB,iBAAiB,GAAG,iCAAiC,kBAAkB,iBAAiB,GAAG,sCAAsC,eAAe,iBAAiB,GAAG,6BAA6B,iBAAiB,GAAG,8BAA8B,iBAAiB,gBAAgB,uBAAuB,GAAG,kCAAkC,kBAAkB,gBAAgB,kBAAkB,GAAG,sBAAsB,oBAAoB,mBAAmB,iBAAiB,GAAG,+CAA+C,2kD;;;;;;;;;;;;;;;;;;;;;ACA9nB;AAE9D;AACA;AACW;AAChC;AAClC;;IAEI;AAMJ,IAAa,kBAAkB,GAA/B,MAAa,kBAAmB,SAAQ,6EAAqB;IA6G1D;;SAEK;IACL,YAAuB,eAAgC;QACpD,KAAK,EAAE;QADa,oBAAe,GAAf,eAAe,CAAiB;QAvGvD;;YAEI;QACJ,UAAK,GAAY,KAAK,CAAC;QAKvB;;YAEI;QACK,kBAAa,GAAwB,EAAE,CAAC;QAiBjD;;YAEI;QACK,aAAQ,GAAW,iBAAiB,CAAC;QAC9C;;;;aAIK;QACL,iBAAY,GAAW,GAAG,CAAC;QAC3B;;aAEK;QACL,cAAS,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;QACjI;;;;aAIK;QACL,gBAAW,GAAW,GAAG,CAAC;QAC1B;;aAEK;QACL,YAAO,GAAW,EAAE,CAAC;QACrB;;YAEI;QACK,eAAU,GAAW,CAAC,CAAC,CAAC;QACjC;;YAEI;QACK,cAAS,GAAW,CAAC,CAAC,CAAC;QAChC;;YAEI;QACK,qBAAgB,GAAY,IAAI,CAAC;QAC1C;;YAEI;QACK,uBAAkB,GAAY,KAAK,CAAC;QAK7C;;YAEI;QACK,eAAU,GAAW,CAAC,CAAC;QAChC;;aAEK;QACL,eAAU,GAAW,CAAC,CAAC;QAavB;;YAEI;QACK,kBAAa,GAAiB,EAAE,CAAC;QAC1C;;YAEI;QACK,kBAAa,GAAiB,EAAE,CAAC;IAM1C,CAAC;IACD,QAAQ;QACL,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,EAAC;YAC/C,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;SACvC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,EAAE;YAChC,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAC/B;aAAM,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAC1C,IAAI,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC;SACrE;QACF,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,SAAS,CAC1C,CAAC,WAAiB,EAAG,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,WAAW,CACtD,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,SAAS,CAC1C,CAAC,WAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,WAAW,CACtD,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,SAAS,CAC3C,CAAC,WAAiB,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CACpD,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,SAAS,CACxC,CAAC,WAAiB,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,GAAG,WAAW,GAAC,CAC1D,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,SAAS,CAC3C,CAAC,WAAiB,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CACpD,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,0BAA0B,CAAC,SAAS,CACrD,CAAC,kBAAqC,EAAE,EAAE,GAAG,IAAI,CAAC,wBAAwB,GAAG,kBAAkB,CAAC,EAAC,CACnG,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,2BAA2B,CAAC,SAAS,CACxD,CAAC,kBAAqC,EAAE,EAAE,GAAG,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAC,CAAC,CACrF,CAAC;IAEJ,CAAC;IACD,WAAW;QACR,KAAK,CAAC,WAAW,EAAE;QACnB,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,EAAE;YAChC,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAC/B;QACD,IAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAC;YAC3D,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC;YAChE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAC;gBAClB,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC;aACrH;SACH;IACJ,CAAC;IACD;;;;QAII;IACI,qBAAqB,CAAC,GAAY;QACvC,IAAI,aAAa,GAAS,IAAI,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YACxC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,MAAM,CAAC;YAChC,IAAI,aAAa,IAAI,IAAI,IAAI,aAAa,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC;gBAC/D,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC7B,aAAa,CAAC,aAAa,GAAG,IAAI,CAAC;aACrC;iBAAM,IAAI,aAAa,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAC;gBAC9C,aAAa,CAAC,aAAa,GAAG,KAAK,CAAC;gBACpC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC7B,aAAa,CAAC,aAAa,GAAG,IAAI,CAAC;aACrC;iBAAM;gBACJ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,KAAK,CAAC;aACtC;SACH;QACD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,YAAW,CAAC,QAAQ,GAAG,mBAAmB,CAAC,CAAC;QACrF,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;QAC5C,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;QACjD,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;YAC9D,CAAC,CAAC,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,GAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;QAC/F,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,EAAC;YAC9D,IAAI,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC,UAAU,GAAC,CAAC,GAAC,GAAG,CAAC,GAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;SAC1E;QACD,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC1C,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;QACxF,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QACxF,IAAI,GAAG,IAAI,IAAI,EAAC;YACb,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG;YAChD,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC;SAC3B;QACD,IAAG,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,EAAC;YAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;YAC9D,IAAI,MAAM,GAAG,IAAI,8CAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/E,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE;SAC9C;QACD,IAAI,CAAC,OAAO,GAAG,UAAU,GAAG,GAAG,GAAI,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC;IACnG,CAAC;IACD;;;QAGI;IACI,oBAAoB,CAAC,SAAiB;QAC3C,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,SAAS,EAAC;YACrE,IAAI,SAAS,GAAe;gBACzB,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAE,EAAE,GAAC,IAAI,CAAC,UAAU;oBACzD,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAE,EAAE,GAAC,IAAI,CAAC,UAAU,EAAE;gBAC3D,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;oBACpC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAC;gBACzC,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAE,EAAE,GAAC,IAAI,CAAC,UAAU,GAAG,SAAS;oBAC3G,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAE,EAAE,GAAC,IAAI,CAAC,UAAU,GAAG,SAAS,EAAE;gBAC/G,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS;oBACvF,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE;gBAC3F,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAE,EAAE,GAAC,IAAI,CAAC,UAAU;oBACzD,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAE,EAAE,GAAC,IAAI,CAAC,UAAU,GAAG,SAAS,EAAE;gBAC/G,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAE,EAAE,GAAC,IAAI,CAAC,UAAU,GAAG,SAAS;oBAC3G,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAE,EAAE,GAAC,IAAI,CAAC,UAAU,EAAC;gBAC3D,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS;oBACvF,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAC;aACnC;YACP,IAAI,aAAa,GAAG,CAAC;YACrB,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,cAAc,GAAG,KAAK,CAAC;YAC3B,OAAO,CAAC,cAAc,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,EAAC;gBAChD,IAAI,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC7B,IAAI,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC5B,IAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC;uBACzD,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,EAAC;oBACxE,cAAc,GAAG,IAAI,CAAC;iBACxB;qBAAM;oBACJ,KAAK,EAAE;iBACT;aACH;YACD,IAAI,IAAI,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACxF,IAAI,GAAG,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACvF,OAAO,EAAE,CAAC,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE;SAC1C;aAAM;YACJ,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE;SAC/B;IACJ,CAAC;IACD;;;;;;;QAOI;IACI,oBAAoB,CAAC,IAAY,EAAE,GAAW,EAAE,SAAiB,EAAE,iBAAqC;QAC7G,IAAI,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CACzD,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS;eACxH,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,SAAS,IAAI,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAC5H;QACD,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC;IAC9B,CAAC;IACD;;QAEI;IACI,cAAc,CAAC,IAAU,EAAE,eAAwB,KAAK;QAC5D,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;eACtC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC;YAC/C,OAAO,kEAAgB,CAAC,aAAa,CAAC;SACvC;QACD,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAC;YAChE,IAAI,SAAS,GAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;YACvE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;mBACxB,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CACxE,CAAC,CAAC,CAAC,kEAAgB,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACvE;QACD,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,WAAW,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;YACvE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI;mBAClC,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,IAAI,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC;mBACxI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,IAAI,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClJ,CAAC,CAAC,kEAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,kEAAgB,CAAC,OAAO,CAAC;SAChE;aAAM,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,WAAW,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAC;YAC7E,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,kEAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,kEAAgB,CAAC,OAAO,CAAC;SACtG;QACD,OAAO,kEAAgB,CAAC,OAAO,CAAC;IACnC,CAAC;IACD;;;;;QAKI;IACI,WAAW,CAAC,gBAAkC,EAAE,WAAoB;QACzE,IAAI,gBAAgB,CAAC,QAAQ,IAAI,mBAAmB,EAAC;YAClD,OAAO,CAAC,IAAI,CAAC,wBAAwB,IAAI,IAAI,IAAI,IAAI,CAAC,wBAAwB,CAAC,EAAE,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;gBACxG,mCAAmC,CAAC,CAAC,CAAC,0BAA0B;SACrE;QACD,IAAI,IAAI,GAAS,gBAAgB,CAAC;QAClC,IAAI,WAAW,IAAI,IAAI,EAAE;YACtB,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,kEAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,4BAA4B,WAAW,EAAE,CAAC,CAAC,CAAC,wBAAwB,WAAW,EAAE,CAAC;SACrJ;QACD,QAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YAC/B,KAAK,kEAAgB,CAAC,aAAa,CAAC,CAAC;gBAClC,OAAO,6BAA6B,CAAC;aACvC;YACD,KAAK,kEAAgB,CAAC,aAAa,CAAC,CAAC;gBAClC,OAAO,yBAAyB,CAAC;aACnC;YACD,KAAK,kEAAgB,CAAC,YAAY,CAAC,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,4BAA4B,CAAC;aAC7E;YACD,KAAK,kEAAgB,CAAC,YAAY,CAAC,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,4BAA4B,CAAC;aAC7E;YACD,KAAK,kEAAgB,CAAC,OAAO,CAAC,CAAC;gBAC5B,OAAO,CAAC,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC;aACvJ;SACH;IACL,CAAC;IACD;;OAEG;IACK,WAAW,CAAC,IAAU,EAAE,WAAiB,EAAE,WAAiB,EAAE,WAAmB;QACrF,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjH,CAAC;IACO,GAAG,CAAC,GAAW;QACpB,IAAG,IAAI,CAAC,gBAAgB,EAAC;YACrB,iEAAiE;SACpE;IACJ,CAAC;CACF;;YA7N0C,kEAAe;;AA5G9C;IAAR,2DAAK,EAAE;qDAAwB;AAYvB;IAAR,2DAAK,EAAE;oDAAkB;AAIjB;IAAR,2DAAK,EAAE;yDAAyC;AAgBxC;IAAR,2DAAK,EAAE;iDAAc;AAIb;IAAR,2DAAK,EAAE;oDAAsC;AAwBrC;IAAR,2DAAK,EAAE;sDAAyB;AAIxB;IAAR,2DAAK,EAAE;qDAAwB;AAIvB;IAAR,2DAAK,EAAE;4DAAkC;AAIjC;IAAR,2DAAK,EAAE;8DAAqC;AAIpC;IAAR,2DAAK,EAAE;iDAAe;AAId;IAAR,2DAAK,EAAE;sDAAwB;AASV;IAArB,2DAAK,CAAC,aAAa,CAAC;oEAAgD;AAO/C;IAArB,2DAAK,CAAC,aAAa,CAAC;0DAAsC;AAIlD;IAAR,2DAAK,EAAE;yDAAkC;AAIjC;IAAR,2DAAK,EAAE;yDAAkC;AA5GhC,kBAAkB;IAL9B,+DAAS,CAAC;QACR,QAAQ,EAAE,YAAY;QACtB,mPAAyC;;KAE3C,CAAC;GACW,kBAAkB,CA6U9B;AA7U8B;;;;;;;;;;;;;ACd/B;AAAe,uEAAQ,yBAAyB,kBAAkB,GAAG,QAAQ,sBAAsB,GAAG,+CAA+C,mX;;;;;;;;;;;;;;;;;ACAnG;AAOlD,IAAa,gBAAgB,GAA7B,MAAa,gBAAgB;IAE3B,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;CAEF;AAPY,gBAAgB;IAL5B,+DAAS,CAAC;QACT,QAAQ,EAAE,aAAa;QACvB,iNAAuC;;KAExC,CAAC;GACW,gBAAgB,CAO5B;AAP4B;;;;;;;;;;;;;ACP7B;AAAe,uEAAQ,sBAAsB,GAAG,+CAA+C,uW;;;;;;;;;;;;;;;;;;;ACA7C;AACa;AACd;AAOjD,IAAa,6BAA6B,GAA1C,MAAa,6BAA6B;IAExC,YAAoB,MAAc,EACd,cAA8B;QAD9B,WAAM,GAAN,MAAM,CAAQ;QACd,mBAAc,GAAd,cAAc,CAAgB;IAAI,CAAC;IAEvD,QAAQ;QACN,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAE,CAAC,WAAmB,EAAG,EAAE;YAClE,IAAI,CAAC,WAAW,GAAG,IAAI,6DAAc,CACnC,WAAW,CAAC,eAAe,EAC3B,WAAW,CAAC,UAAU,EACtB,WAAW,CAAC,UAAU,EACtB,WAAW,CAAC,IAAI,EAChB,WAAW,CAAC,aAAa,EACzB,WAAW,CAAC,aAAa,EACzB,WAAW,CAAC,QAAQ,EACpB,WAAW,CAAC,UAAU,EACtB,WAAW,CAAC,IAAI,CACjB,CAAC;QACJ,CAAC,CAAC,CAAC;IAEL,CAAC;CAEF;;YApB6B,sDAAM;YACE,8DAAc;;AAHvC,6BAA6B;IALzC,+DAAS,CAAC;QACT,QAAQ,EAAE,4BAA4B;QACtC,sQAAsD;;KAEvD,CAAC;GACW,6BAA6B,CAsBzC;AAtByC;;;;;;;;;;;;;;;;;;;ACTD;AAIsB;AAG/D,IAAa,wBAAwB,GAArC,MAAa,wBAAwB;IAEnC,YAAqB,MAAc,EACd,cAA8B;QAD9B,WAAM,GAAN,MAAM,CAAQ;QACd,mBAAc,GAAd,cAAc,CAAgB;IACnD,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,OAAgB;QAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC,CAAC;IACpH,CAAC;CACF;;YAX8B,sDAAM;YACE,8DAAc;;AAHxC,wBAAwB;IADpC,gEAAU,EAAE;GACA,wBAAwB,CAapC;AAboC;;;;;;;;;;;;;;;;;;;;;ACPM;AACY;AACM;AAI7D,IAAa,YAAY,GAAzB,MAAa,YAAY;IACvB,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAGpC,WAAM,GAAG,IAAI,+CAAM,EAAE,CAAC;QACtB,oBAAe,GAAG,IAAI,kDAAS,CAAC,EAAE,CAAC,CAAC;IAHpC,CAAC;IAKD;;;;;;;OAOG;IACI,OAAO,CAAC,OAAe,EAAE,KAAa,EAAE,SAAkB;QAC/D,IAAI,WAAW,CAAC;QAChB,IAAI,SAAS,KAAK,WAAW,EAAE;YAC7B,iHAAiH;YAC/G,WAAW,GAAG,EAAE,OAAO,EAAE,IAAI,gEAAW,CAAC,EAAC,cAAc,EAAE,0BAA0B,EAAE,QAAQ,EAAE,aAAa,EAAC,CAAC;gBAC/F,YAAY,EAAE,MAAM,EAAC,CAAC;YACtC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;SACtD;aAAM;YACL,WAAW,GAAG,EAAE,OAAO,EAAE,IAAI,gEAAW,CAAC,EAAE,cAAc,EAAE,0BAA0B;oBAC3B,QAAQ,EAAE,gDAAgD,EAAC,CAAC,EAAC,CAAC;YACxH,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;SACpD;IACH,CAAC;IAED;;;;;OAKG;IACI,oBAAoB,CAAC,QAAQ;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,GAAG,QAAQ,EAAE,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC,CAAC;IAChF,CAAC;IAED;;;;;OAKG;IACI,kBAAkB,CAAC,QAAQ;QAChC,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAE;aACxC,SAAS,CAAC,KAAK,CAAC,EAAE;YACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAE,CAAC;IACR,CAAC;IAED;;;;;;;OAOG;IACI,wBAAwB,CAAC,SAAiB,EAAE,OAAe;QAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjD,2CAA2C;QAC3C,2EAA2E;QAC3E,MAAM,kBAAkB,GAAI,EAAC,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QACpF,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,kBAAkB,CAAC;QAC7D,8CAA8C;QAC9C,kFAAkF;QAClF,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACrD,CAAC;CAEJ;;YAtE2B,+DAAU;;AADzB,YAAY;IADxB,gEAAU,EAAE;GACA,YAAY,CAuExB;AAvEwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNsC;AAE/D,IAAY,YAKX;AALD,WAAY,YAAY;IACrB,+CAA+B;IAC/B,uCAAuB;IACvB,oDAAoC;IACpC,sDAAsC;AACzC,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AACM,MAAM,mBAAmB,GAAW,YAAY,CAAC,UAAU,CAAC;AAC5D,MAAM,eAAe,GAAW,wCAAwC;AAC/E;;IAEI;AACG,MAAM,kBAAkB,GAAW,cAAc,CAAC;AACzD;;IAEI;AACG,MAAM,gBAAgB,GAAW,YAAY,CAAC;AACrD;;IAEI;AACG,MAAM,oBAAoB,GAAW,gBAAgB,CAAC;AAC7D;;IAEI;AACG,MAAM,gBAAgB,GAAW,YAAY,CAAC;AACrD;;IAEI;AACG,MAAM,sBAAsB,GAAW,aAAa,CAAC;AAC5D;;IAEI;AACG,MAAM,oBAAoB,GAAW,YAAY,CAAC;AACzD;;IAEI;AACG,MAAM,cAAc,GAAW,MAAM,CAAC;AAC7C;;IAEI;AACG,MAAM,oBAAoB,GAAW,YAAY,CAAC;AACzD;;IAEI;AACG,MAAM,4BAA4B,GAAW,iBAAiB,CAAC;AACtE;;IAEI;AACG,MAAM,cAAc,GAAW,MAAM,CAAC;AAC7C;;IAEI;AACG,MAAM,sBAAsB,GAAW,aAAa,CAAC;AAC5D;;IAEI;AACG,MAAM,wBAAwB,GAAW,eAAe,CAAC;AAChE;;IAEI;AACG,MAAM,wBAAwB,GAAW,eAAe,CAAC;AAChE;;IAEI;AACG,MAAM,4BAA4B,GAAW,cAAc,CAAC;AACnE;;IAEI;AACG,MAAM,qBAAqB,GAAW,UAAU,CAAC;AACxD;;IAEI;AACG,MAAM,cAAc,GAAW,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;ACzEO;AACF;AAC+B;AA+BjF;;;IAGI;AACG,MAAM,WAAW;IAarB;;QAEI;IACJ,YAAoB,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;QAXrC,UAAK,GAAY,KAAK,CAAC;QACvB;;YAEI;QACJ,UAAK,GAAY,KAAK,CAAC;QACvB,oBAAe,GAAG,IAAI,0DAAY,EAAW,CAAC;QAC9C,qBAAgB,GAAG,IAAI,0DAAY,EAAW,CAAC;QAC/C,wBAAmB,GAAG,IAAI,0DAAY,EAAW,CAAC;IAIX,CAAC;IACxC;;;QAGI;IACG,UAAU,CAAC,GAAW,EAAE,OAA2B;QACvD,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;IACvB,CAAC;IACD;;;;;QAKI;IACG,OAAO,CAAC,GAAW,EAAE,GAAY,EAAE,QAAiB;QACxD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YACpD,IAAI,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,EAAC;gBACnD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC;aAChD;SACH;aAAM;YACJ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;YACnC,IAAI,IAAI,CAAC,KAAK,IAAI,GAAG,IAAI,cAAc,EAAG;gBACvC,8CAA8C;gBAC9C,uDAAuD;gBACvD,oCAAoC;aACtC;YACD,IAAI,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACzD,IAAI,CAAC,eAAe,EAAC;gBAClB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,gEAAS,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,4DAAK,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBACtI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjF,IAAI,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,EAAC;wBAClD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC;qBACjD;yBAAM,IAAG,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,IAAI,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,IAAI,IAAI,EAAC;wBACnF,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;qBAC1C;gBACJ,CAAC,CAAC,CAAC;aACL;iBAAM;gBACJ,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,gEAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBAC3H,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBAC3J,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,EAAC;wBAChE,IAAI,YAAY,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC7E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;qBACrD;yBAAM,IAAG,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,IAAI,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,IAAI,IAAI,EAAC;wBACnF,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;qBAC1C;gBACH,CAAC,CAAC,CAAC;aACL;YACD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACvC;IACJ,CAAC;IACM,YAAY,CAAC,GAAW,EAAE,qBAA2C;QACzE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAI,CAAC,YAAY,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC;SAC7E;aAAM;YACJ,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;YACnC,IAAI,IAAI,CAAC,KAAK,EAAE;gBACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,qBAAqB,CAAC,CAAC;aAC3D;YACD,IAAI,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACzD,IAAI,GAAG,GAAG,qBAAqB,CAAC,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;YACvE,IAAI,CAAC,eAAe,EAAC;gBAClB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,gEAAS,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,4DAAK,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBACpJ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpF,CAAC,CAAC,CAAC;aACL;iBAAM;gBACJ,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,gEAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBAClI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBAC1G,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,EAAC;wBAChE,qBAAqB,CAAC,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBACzF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,qBAAqB,CAAC,CAAC;qBACnE;gBACH,CAAC,CAAC,CAAC;aACL;SACJ;IACJ,CAAC;IACM,uBAAuB,CAAC,GAAW,EAAE,UAAkB,EAAE,OAAe,EAAE,WAAoB,EAAE,YAAqB,EAAE,GAAY,EAAE,QAAiB;QAC1J,IAAI,cAAc,GAAoB,CAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAE;QACvG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,mEAAS,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,4DAAK,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACnG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,mEAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;YACvE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACzD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACN,CAAC;IACM,qBAAqB,CAAC,QAAgB,EAAE,GAAW,EAAE,WAAoB,EAAE,YAAqB;QACpG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,4DAAK,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAClE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,mEAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;QAC1E,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;QAEI;IACG,SAAS,CAAC,GAAG;QACjB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC;QAChC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;SACnD;aAAM;YACJ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SACzE;IACJ,CAAC;IACD;;QAEI;IACG,eAAe,CAAC,YAAsC;QAC1D,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACrB,CAAC;CACH;;;;;;;;;;;;;;;;;;;;;AClK4C;AAyB7C;;;;;IAKI;AACG,MAAM,yBAAyB;IAgCnC;;;;QAII;IACJ,YAAY,IAAS,EAAE,EAAW,EAAE,OAAa;QAC9C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,EAAE,IAAI,SAAS,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,EAAC;YAC3C,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM;mBAC5C,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,SAAS,IAAI,IAAI,CAAC;gBAC7D,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;YACrE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;SACjB;QACD,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,EAAC;YACjB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SACnC;IACJ,CAAC;IACD;;;;;;QAMI;IACM,WAAW,CAAC,GAAW;QAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;YACjC,OAAO,IAAI,CAAC;SACd;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,0CAA0C,EAAC;YACvE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;SAC1C;aAAM,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,0CAA0C,EAAC;YAC9E,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;SACtC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;IAC/B,CAAC;IACD;;;;;;;;;QASI;IACG,MAAM,CAAC,QAAQ,CAAC,EAAW,EAAE,GAAY;QAC7C,IAAI,OAAM,CAAC,EAAE,CAAC,KAAK,WAAW,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,EAAC;YACvD,OAAO,IAAI,CAAC,KAAK,CAAC;SACpB;aAAM;YACJ,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,EAAC;gBAC1B,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;aACzB;YACD,IAAI,MAAM,GAAG,IAAI,+CAAM,EAAE,CAAC;YAC1B,IAAI,eAAe,GAAG,IAAI,kDAAS,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;gBAC/C,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,SAAS,EAAC;oBAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;wBAC3D,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,EAAE;4BACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;gCACtE,IAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,EAAC;oCACvE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;iCAChG;qCAAM,IAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,EAAC;oCAC7E,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;iCAC/F;qCAAM,IAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,EAAC;oCAChF,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;iCAClG;6BACH;yBACH;qBACH;iBACH;qBAAM,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,EAAC;oBAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;wBAC1D,IAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,EAAC;4BAC3D,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;yBACpF;6BAAM,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,EAAC;4BAClE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;yBACnF;6BAAM,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,EAAC;4BACrE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;yBACtF;qBACH;iBACH;aACH;YACD,OAAO,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;SAChD;IACJ,CAAC;IACM,MAAM,CAAC,eAAe,CAAC,aAA8B;QAC1D,IAAI,MAAM,GAAG,IAAI,+CAAM,EAAE,CAAC;QAC1B,IAAI,eAAe,GAAG,IAAI,kDAAS,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1C,KAAK,IAAI,OAAO,IAAI,aAAa,EAAC;YAC9B,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;YACtB,IAAI,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;gBAC1D,IAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,EAAC;oBAC3D,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;iBACpF;qBAAM,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,EAAC;oBAClE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;iBACnF;qBAAM,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,EAAC;oBACrE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;iBACtF;aACH;SACH;QACD,OAAO,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACjD,CAAC;IAED;;QAEI;IACG,MAAM,CAAC,UAAU,CAAC,IAAmB;QACzC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IACD;;;;;;;;;;QAUI;IACG,MAAM,CAAC,WAAW,CAAsD,IAAmB,EAAE,EAAW,EAAE,OAAa;QAC3H,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YACrC,IAAI,OAAO,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAoB,CAAC;YACnE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACzB;QACD,OAAO,QAAQ,CAAC;IACnB,CAAC;;AAlKD;;;IAGI;AACsB,qCAAW,GAAW,IAAI,CAAC;AACrD;;IAEI;AACY,+BAAK,GAAW,uCAAuC,CAAC;AACxE;;IAEI;AACmB,mCAAS,GAAW,IAAI,CAAC;AAShD;;;IAGI;AACmB,gCAAM,GAAY,KAAK,CAAC;AA2I3C,MAAM,SAAU,SAAQ,yBAAyB;IAO9C,MAAM,CAAC,SAAS,CAAC,MAAqB;QAC1C,OAAO,MAAM,CAAC,OAAO,CAAC;IACzB,CAAC;;AARe,eAAK,GAAW;;;;KAI9B,CAAC;AAMC,MAAM,uBAAwB,SAAQ,SAAS;;AACnC,6BAAK,GAAW;;;;KAI9B,CAAC;AAEoB,iCAAS,GAAW,IAAI,CAAC;;;;;;;;;;;;;;;;;;;ACtNU;AAC7D;;;IAGI;AACG,MAAM,qBAAsB,SAAQ,yEAAyB;IA0BhE;;;;OAIG;IACJ,YAAY,IAAS,EAAE,EAAW,EAAE,OAAa;QAC9C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;;AAjCD;;;IAGI;AACY,iCAAW,GAAW,MAAM,CAAC;AAC7C;;IAEI;AACY,+BAAS,GAAW,MAAM,CAAC;AAC3C;;IAEI;AACY,2BAAK,GAAW;;;;;;;KAO9B,CAAC;AAgBC,MAAM,kBAAmB,SAAQ,qBAAqB;;AAC1D;;IAEI;AACY,wBAAK,GAAW;;;;;;;KAO9B,CAAC;;;;;;;;;;;;;;;;;;ACpD6B;AAEnC;;;IAGI;AACG,MAAM,cAAe,SAAQ,+CAAQ;IA2BzC,YAAa,IAAS,EAAE,EAAW,EAAE,OAAa;QAC/C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG;YACd,WAAW,EAAE,sCAAsC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACvF,cAAc,EAAE,0DAA0D;YAC1E,OAAO,EAAE,iBAAiB;YAC1B,IAAI,EAAE,gKAAgK;SACxK;IACJ,CAAC;;AAlCD;;IAEI;AACY,oBAAK,GAAW;;;;;;;;;;;;;;;;;KAiB9B,CAAC;;;;;;;;;;;;;;;;;;;AC3BoD;AAE1D;;;IAGI;AACG,MAAM,oBAAqB,SAAQ,sEAAmB;IAyBzD;;;;OAIG;IACJ,YAAY,IAAS,EAAE,EAAW,EAAE,OAAa;QAC9C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;;AAjCD;;IAEI;AACY,0BAAK,GAAW;;;;;;;;;;;MAW7B,CAAC;AAqBP;;;IAGI;AACG,MAAM,0BAA2B,SAAQ,oBAAoB;;AACjE;;IAEI;AACa,gCAAK,GAAW;;;;;;;;;;;MAW9B,CAAC;;;;;;;;;;;;;;;;;;;AC7DsD;AAGtD,MAAM,QAAS,SAAQ,yEAAyB;IA8BpD,YAAa,IAAS,EAAE,EAAW,EAAE,OAAa;QAC/C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACrD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAC5B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EACzB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAC3B,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;IAClE,CAAC;;AA3Ce,oBAAW,GAAW,MAAM,CAAC;AAC7B,cAAK,GAAW;;;;;;;;;;;;;;;;;KAiB9B,CAAC;AA4BC,MAAM,YAAY;IAOtB,YAAY,IAAY,EAAE,GAAW,EAAE,KAAa,EAAE,MAAc;QACjE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACxB,CAAC;CACH;;;;;;;;;;;;;;;;;;;AC/D4D;AAE7D;;;IAGI;AACG,MAAM,OAAQ,SAAQ,yEAAyB;IA4DnD;;;;QAII;IACJ,YAAa,IAAS,EAAE,EAAW,EAAE,OAAa;QAC/C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;QAC/C,IAAI,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC;QACzD,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;QAC5C,IAAI,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;QAChD,IAAI,WAAW,IAAI,IAAI,EAAC;YACrB,IAAI,UAAU,GAAe,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE;YACnH,IAAI,IAAI,GAAS,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE;YAC7F,IAAI,IAAI,GAAa,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE;YAClF,IAAI,CAAC,WAAW,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;SACvE;QACD,IAAI,aAAa,IAAI,IAAI,EAAC;YACvB,IAAI,UAAU,GAAe,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,EAAE;YACvH,IAAI,IAAI,GAAS,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE;YACjG,IAAI,IAAI,GAAa,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE;YACtF,IAAI,CAAC,aAAa,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;SACzE;QACD,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAC;YACxD,IAAI,SAAS,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;YACnF,IAAI,UAAU,GAAe,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrF,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE;YAClG,IAAI,IAAI,GAAS,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAC;gBACzC,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE;YACzE,IAAI,CAAC,MAAM,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE;SAClG;IACJ,CAAC;;AA7FD;;;IAGI;AACY,mBAAW,GAAW,MAAM,CAAC;AAC7B,cAAM,GAAY,IAAI,CAAC;AACvC;;IAEI;AACY,aAAK,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA4B7B,CAAC;AAKJ;;IAEI;AACY,iBAAS,GAAW,MAAM,CAAC;AAkD9C;;;IAGI;AACG,MAAM,aAAc,SAAQ,OAAO;;AACvC;;IAEI;AACY,mBAAK,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6B7B,CAAC;;;;;;;;;;;;;;;;;;AC3IsD;AAGtD,MAAM,gBAAiB,SAAQ,yEAAyB;IAmC5D;;;;QAII;IACJ,YAAa,IAAS,EAAE,EAAW,EAAE,OAAa;QAC/C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE;QACpE,IAAI,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;QACjF,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;IAC7F,CAAC;;AA5CD;;;IAGI;AACY,4BAAW,GAAW,MAAM,CAAC;AAC7C;;IAEI;AACY,sBAAK,GAAW;;;;;;;;MAQ7B,CAAC;AACJ;;IAEI;AACY,0BAAS,GAAW,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACxBgC;AAEb;AACpB;AAEpC,MAAM,cAAe,SAAQ,yEAAyB;IAa1D,YAAa,IAAS,EAAE,EAAW,EAAE,OAAa;QAC/C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;;AAhBe,oBAAK,GAAW;;;;;;;;KAQ9B,CAAC;AAUC,MAAM,gBAAiB,SAAQ,cAAc;IA6BjD,YAAa,IAAS,EAAE,EAAW,EAAE,OAAa;QAC/C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACrD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;IACtE,CAAC;;AAjCD;;;IAGI;AACY,4BAAW,GAAW,YAAY,CAAC;AACnC,sBAAK,GAAW;;;;;;;;;;;;;;KAc9B,CAAC;AACH;;IAEI;AACY,0BAAS,GAAW,YAAY,CAAC;AAY7C,MAAM,qBAAsB,SAAQ,cAAc;IAgCtD,YAAa,IAAS,EAAE,EAAW,EAAE,OAAa;QAC/C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAJ5B,UAAK,GAAW,EAAE,CAAC;QAKhB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QACjD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IACtD,CAAC;IACM,MAAM,CAAC,WAAW,CAAsD,IAAmB,EAAE,EAAW,EAAE,OAAa;QAC3H,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YACrC,IAAI,OAAO,GAAG,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YACjE,IAAI,KAAK,GAAG,EAAE,CAAC;YACf,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,EAAC;gBAC/D,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;oBACtE,CAAC,CAAE,6CAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAO,CAAE,OAAO,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;oBACtH,CAAC,CAAE,8CAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAO,CAAE,OAAO,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;aAC7H;YACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,EAAC;gBACrE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAC;oBAClB,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;iBACnD;aACH;iBAAM;gBACJ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAC;oBAClB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/B;gBACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;aACxB;SACH;QACD,uBAAuB;QACvB,OAAO,QAAQ,CAAC;IACnB,CAAC;;AA5DD;;;IAGI;AACY,iCAAW,GAAW,YAAY,CAAC;AACnC,2BAAK,GAAW;;;;;;;;;;;;;;;;;;KAkB9B,CAAC;AACH;;IAEI;AACY,+BAAS,GAAW,YAAY,CAAC;AAoC7C,MAAM,qBAAsB,SAAQ,yEAAyB;IA2BjE,YAAa,IAAS,EAAE,EAAW,EAAE,OAAa;QAC/C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACrB,CAAC;IACM,MAAM,CAAC,WAAW,CAAsD,IAAmB,EAAE,EAAW,EAAE,OAAa;QAC3H,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YACrC,IAAI,OAAO,GAAG,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YACjE,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;gBACxG,2EAAwB,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAO,CAAE,OAAO,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3J,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,EAAC;gBACrE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAC;oBACpB,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvD;aACH;iBAAM;gBACJ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAC;oBACpB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;iBACnC;gBACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;aACxB;SACH;QACD,uBAAuB;QACvB,OAAO,QAAQ,CAAC;IACnB,CAAC;;AAnDD;;;IAGI;AACY,iCAAW,GAAW,YAAY,CAAC;AACnC,2BAAK,GAAW;;;;;;;;;;;;;KAa9B,CAAC;AACH;;IAEI;AACY,+BAAS,GAAW,YAAY,CAAC;AA+B7C,MAAM,4BAA8B,SAAQ,yEAAyB;IA8BzE,YAAa,IAAS,EAAE,EAAW,EAAE,OAAa;QAC/C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACrB,CAAC;IACM,MAAM,CAAC,WAAW,CAAsD,IAAmB,EAAE,EAAW,EAAE,OAAa;QAC3H,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YACrC,IAAI,OAAO,GAAG,IAAI,4BAA4B,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YACxE,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;gBACxG,2EAAwB,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAO,CAAE,OAAO,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3J,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,EAAC;gBACrE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAC;oBACpB,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvD;aACH;iBAAM;gBACJ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAC;oBACpB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;iBACnC;gBACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;aACxB;SACH;QACD,uBAAuB;QACvB,OAAO,QAAQ,CAAC;IACnB,CAAC;;AAxDD;;;IAGI;AACY,wCAAW,GAAW,YAAY,CAAC;AACnC,kCAAK,GAAW;;;;;;;;;;;;;;KAc9B,CAAC;AACH;;IAEI;AACY,sCAAS,GAAW,YAAY,CAAC;;;;;;;;;;;;;;;;;;;AC1MS;AAGtD,MAAM,kBAAmB,SAAQ,yEAAyB;IAwB9D,YAAa,IAAS,EAAE,EAAW,EAAE,OAAa;QAC/C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,GAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC;QACtD,IAAI,CAAC,SAAS,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC7H,IAAI,CAAC,QAAQ,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;IAC9I,CAAC;;AA7Be,wBAAK,GAAW;;;;;;;;;;;;;;;;KAgB9B,CAAC;AACa,4BAAS,GAAW,IAAI,CAAC;AAerC,MAAM,iBAAkB,SAAQ,yEAAyB;IA4B7D,YAAa,IAAS,EAAE,EAAW,EAAE,OAAa;QAC/C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,GAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,GAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,IAAI,GAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,QAAQ,IAAI,IAAI,EAAC;YAClB,IAAI,CAAC,QAAQ,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,GAAC,CAAC,EAAE,CAAC;SAC9I;QACD,IAAI,IAAI,IAAI,IAAI,EAAC;YACd,IAAI,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,GAAC,CAAC,EAAE,CAAC;SAC9H;IACJ,CAAC;;AAvCe,uBAAK,GAAW;;;;;;;;;;;;;;;;;;;;KAoB9B,CAAC;AACa,2BAAS,GAAW,IAAI,CAAC;;;;;;;;;;;;;;;;;;;AC1DiB;AAGtD,MAAM,QAAS,SAAQ,yEAAyB;IAcpD,YAAa,IAAS,EAAE,EAAW,EAAE,OAAa;QAC/C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,MAAM,GAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;;AAhBe,cAAK,GAAW;;;;;;;;;KAS9B,CAAC;AACa,kBAAS,GAAW,YAAY,CAAC;AAQ7C,MAAM,OAAQ,SAAQ,QAAQ;IAelC,YAAa,IAAS,EAAE,EAAW,EAAE,OAAa;QAC/C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,GAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,GAAI,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACrD,yDAAyD;SAC3D;IACJ,CAAC;;AAtBe,aAAK,GAAW;;;;;;;;;KAS9B,CAAC;AACa,iBAAS,GAAW,IAAI,CAAC;;;;;;;;;;;;;;;;;;;ACjCiB;AAC7D;;;IAGI;AACG,MAAM,wBAAyB,SAAQ,yEAAyB;IAuCpE;;;;QAII;IACJ,YAAa,IAAS,EAAE,EAAW,EAAE,OAAa;QAC/C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAhB5B;;YAEI;QACJ,UAAK,GAAW,CAAC,CAAC;QAcf,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACpD,CAAC;;AAhDD;;;IAGI;AACY,oCAAW,GAAW,MAAM,CAAC;AAC7C;;IAEI;AACY,8BAAK,GAAW;;;;;;;;;;;MAW7B,CAAC;AAiBY,kCAAS,GAAW,MAAM,CAAC;AAevC,MAAM,gCAAiC,SAAQ,wBAAwB;IAG3E,YAAa,IAAS,EAAE,EAAW,EAAE,OAAa;QAC/C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAHT,UAAK,GAAW,IAAI,MAAM,CAAC,wBAAwB,CAAC,CAAC;QAIrE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC;IACrF,CAAC;CACH;;;;;;;;;;;;;;;;;;AChE4D;AAE7D;;;IAGI;AACG,MAAM,mBAAoB,SAAQ,yEAAyB;IA+B9D;;;;OAIG;IACJ,YAAY,IAAS,EAAE,EAAW,EAAE,OAAa;QAC9C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;;AA1CD;;;IAGI;AACY,+BAAW,GAAW,MAAM,CAAC;AAC7C;;IAEI;AACY,6BAAS,GAAW,MAAM,CAAC;;;;;;;;;;;;;;;;;;;ACdb;AACgE;AAE1F,MAAM,cAAe,SAAQ,6CAAO;IAmCvC;;;;OAIG;IACJ,YAAY,IAAS,EAAE,EAAW,EAAE,OAAa;QAC9C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC;QAP3B,YAAO,GAA+B,EAAE,CAAC;QAQtC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC;QAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QACpC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;IACrC,CAAC;IACM,MAAM,CAAC,WAAW,CAAsD,IAAmB,EAAE,EAAW,EAAE,OAAa;QAC3H,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YACrC,IAAI,OAAO,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YAC1D,OAAO,CAAC,OAAO,GAAG,mFAAgC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAO,CAAE,OAAO,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAC1J,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,EAAE,EAAC;gBACrE,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC5D,IAAI,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,IAAI,EAAC;oBAClG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;iBAClD;aACH;iBAAM;gBACJ,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACzB;SACH;QACD,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAkB,EAAE,EAAkB,EAAC,EAAE;YACrD,OAAO,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI;QAC3B,CAAC,CAAC;QACF,OAAO,QAAQ,CAAC;IACnB,CAAC;;AAhED;;;IAGI;AACY,0BAAW,GAAW,MAAM,CAAC;AAC7B,wBAAS,GAAW,MAAM,CAAC;AAC3C;;IAEI;AACY,oBAAK,GAAW;;;;;;;;;;;;;;;;;;;;KAoB9B,CAAC;;;;;;;;;;;;;;;;;;;;;AClCqE;AAC1C;AAC1B,MAAM,UAAW,SAAQ,6CAAO;IAIpC,YAAY,IAAS,EAAE,EAAW,EAAE,OAAa;QAC9C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;CACH;AACM,MAAM,UAAU;IAGpB,YAAY,KAAmB;QAF/B,UAAK,GAAiB,EAAE,CAAC;QAGtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACtB,CAAC;IACM,QAAQ;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAI,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC;IACM,YAAY;QAChB,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,MAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACzF,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAC;YACzB,OAAO,EAAE,CAAC;SACZ;QACD,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,SAAS,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvI,CAAC;IACM,UAAU;QACd,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,MAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACzF,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAC;YACzB,OAAO,EAAE,CAAC;SACZ;QACD,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,IAAI,WAAW,CAAC,WAAW,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;YACjH,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3F,CAAC;CACH;AAEM,MAAM,SAAU,SAAQ,yEAAyB;IA8BrD,YAAa,IAAS,EAAE,EAAW,EAAE,OAAa;QAC/C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAJ5B,YAAO,GAAiB,EAAE,CAAC;QAKxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,GAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAI,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACrD,CAAC;IACM,uBAAuB,CAAC,WAAqB;QACjD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,YAAW,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,OAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvK,CAAC;IACD;;;;;;;QAOI;IACG,MAAM,CAAC,QAAQ,CAAC,IAAa,EAAE,GAAY;QAC/C,IAAG,IAAI,IAAI,SAAS,IAAI,IAAI,IAAI,IAAI,EAAC;YAClC,OAAO,IAAI,CAAC,KAAK,CAAC;SACpB;QACD,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAC3B,IAAI,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI;QACxC,IAAI,MAAM,GAAG,kCAAkC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;QAC9E,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAClF,qBAAqB;QACrB,OAAO,KAAK,CAAC;IAChB,CAAC;IACM,MAAM,CAAC,WAAW,CAAsD,IAAmB,EAAE,EAAW,EAAE,OAAa;QAC3H,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3C,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,aAAa,GAAe,IAAI,CAAC;QACrC,IAAI,WAAW,GAAc,IAAI,CAAC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YACrC,IAAI,IAAI,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YAClD,IAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;gBAC/D,IAAI,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAO,CAAE,OAAO,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBACnI,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAC;oBACvE,aAAa,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;oBACtC,WAAW,GAAG,IAAI,CAAC;oBACnB,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;oBACvC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;iBACzB;qBAAM;oBACJ,IAAI,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC;wBAC7C,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;+BAC5B,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAI,CAAC,WAAW,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC;mCAChG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAI,CAAC,WAAW,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAC;4BAC1G,aAAa,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;4BACtC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;yBAC1C;6BAAM;4BACJ,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;yBACrC;qBACH;iBACH;aACH;SACH;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC;QAChE,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvD,CAAC;;AAzFe,eAAK,GAAW;;;;;;;;;;;;;;;;;;;;;;+BAsBJ,CAAC;;;;;;;;;;;;;;;;;;;AC7DG;AAG5B,MAAM,QAAS,SAAQ,+CAAQ;IAmBnC,YAAa,IAAS,EAAE,EAAW,EAAE,OAAa;QAC/C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;IAChC,CAAC;;AAtBe,cAAK,GAAW;;;;;;;;;;;;;;;;KAgB9B,CAAC;AAQC,MAAM,YAAa,SAAQ,QAAQ;IAkCvC,YAAa,IAAS,EAAE,EAAW,EAAE,OAAa;QAC/C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;;AApCe,kBAAK,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+B9B,CAAC;;;;;;;;;;;;;;;;;;;;;;;AC5DsE;AAE1C;AAC3B,MAAM,cAAe,SAAQ,yEAAyB;IAO1D,YAAa,IAAS,EAAE,EAAW,EAAE,OAAa;QAC/C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAH5B,gBAAW,GAAmB,EAAE,CAAC;QAI9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACpD,CAAC;CACH;AACM,MAAM,YAAa,SAAQ,yEAAyB;IAQxD,YAAa,IAAS,EAAE,EAAW,EAAE,OAAa;QAC/C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAClE,CAAC;CACH;AACD;;;IAGI;AACG,MAAM,mBAAoB,SAAQ,yEAAyB;IA8C/D;;;;QAII;IACJ,YAAa,IAAS,EAAE,EAAW,EAAE,OAAa;QAC/C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAR5B,iBAAY,GAAqB,EAAE,CAAC;IASpC,CAAC;IACM,MAAM,CAAC,WAAW,CAAsD,IAAmB,EAAE,EAAW,EAAE,OAAa;QAC3H,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YACrC,IAAI,OAAO,GAAG,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC3D,IAAI,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAO,CAAE,OAAO,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC;YACjJ,IAAI,YAAY,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC;gBACzD,YAAY,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAO,CAAE,OAAO,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACvI;;eAEG;YACH,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,EAAC;gBACrE,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;uBACjD,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC;oBACpH,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAC;wBACzB,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;qBAChI;iBACH;qBAAM;oBACJ,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAC;wBACzB,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;qBAC/C;oBACD,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC7D;aACH;iBAAM;gBACJ,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAC;oBACzB,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;iBAC/C;gBACD,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACtC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;aACxB;SACH;QACD,uBAAuB;QACvB,OAAO,QAAQ,CAAC;IACnB,CAAC;;AAtFD;;;IAGI;AACY,+BAAW,GAAW,MAAM,CAAC;AAC7C;;IAEI;AACY,yBAAK,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8B9B,CAAC;AACH;;IAEI;AACY,6BAAS,GAAW,MAAM,CAAC;AA+CvC,MAAM,wBAAyB,SAAQ,cAAc;IA2CzD,YAAa,IAAS,EAAE,EAAW,EAAE,OAAa;QAC/C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACzB,IAAG,IAAI,CAAC,OAAO,IAAI,IAAI,EAAC;YACrB,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;SAC5C;IACJ,CAAC;IAEM,MAAM,CAAC,WAAW,CAAsD,IAAmB,EAAE,EAAW,EAAE,OAAa;QAC3H,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YACrC,IAAI,OAAO,GAAG,IAAI,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YACpE,IAAI,YAAY,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC;gBACzD,YAAY,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAO,CAAE,OAAO,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACvI,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,EAAC;gBACrE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAC;oBACzB,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;iBAChE;aACH;iBAAM;gBACJ,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAC;oBACzB,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC5C;gBACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;aACxB;SACH;QACD,uBAAuB;QACvB,OAAO,QAAQ,CAAC;IACnB,CAAC;;AArED;;;IAGI;AACY,oCAAW,GAAW,cAAc,CAAC;AACrD;;IAEI;AACY,8BAAK,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA4B9B,CAAC;AACH;;IAEI;AACY,kCAAS,GAAW,cAAc,CAAC;AAgC/C,MAAM,2BAA4B,SAAQ,8CAAQ;;AACtD;;;IAGI;AACY,uCAAW,GAAW,YAAY,CAAC;AACnD;;IAEI;AACY,iCAAK,GAAW;;;;;;;;;;;;;OAa5B,CAAC;AACL;;IAEI;AACY,qCAAS,GAAW,YAAY,CAAC;;;;;;;;;;;;;;;;;;;ACrOM;AAE1D;;;IAGI;AACG,MAAM,OAAQ,SAAQ,sEAAmB;IAoD5C;;;;OAIG;IACJ,YAAY,IAAS,EAAE,EAAW,EAAE,OAAa;QAC9C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAC1D,CAAC;;AAhED;;IAEI;AACY,aAAK,GAAW;;;;;;;;;;;;;;;;;;;;;;MAsB7B,CAAC;AAyCP;;;IAGI;AACG,MAAM,aAAc,SAAQ,OAAO;;AACvC;;IAEI;AACa,mBAAK,GAAW;;;;;;;;;;;;;;;MAe9B,CAAC;;;;;;;;;;;;;;;;;;AChG6C;AAKpD,IAAa,SAAS,GAAtB,MAAa,SAAS;IAEpB,SAAS,CAAC,KAAU;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;QAClB,OAAO,KAAK,CAAC;IACf,CAAC;CAEF;AAPY,SAAS;IAHrB,0DAAI,CAAC;QACJ,IAAI,EAAE,OAAO;KACd,CAAC;GACW,SAAS,CAOrB;AAPqB;;;;;;;;;;;;;;;;;ACQf,MAAM,WAAW;IAItB,YAAsB,MAAc,EAAY,cAA8B;QAAxD,WAAM,GAAN,MAAM,CAAQ;QAAY,mBAAc,GAAd,cAAc,CAAgB;IAAK,CAAC;IAEpF,QAAQ;QACJ,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAChD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAC1B,CAAC,CAAC,CAAC;IACP,CAAC;IACS,UAAU,CAAC,MAAc;QAC/B,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC3B,KAAI,IAAI,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAC;YACtC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAC;gBACzE,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC3C,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,IAAI,EAAC;oBACtC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,QAAQ,EAAC;wBACxC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;qBACjD;yBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,SAAS,EAAC;wBAChD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC;qBACrD;yBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE;wBAClF,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;qBACtD;yBAAM;wBACJ,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;qBAC3C;oBACD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,EAAC;wBACnC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;qBACtD;iBACH;aACJ;SACH;IACL,CAAC;CACF;;;;;;;;;;;;;;;;;;AC7CqD;AAE/C,MAAM,YAAa,SAAQ,yDAAW;IAM3C,YAAsB,MAAc,EAAY,cAA8B;QAC1E,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QADZ,WAAM,GAAN,MAAM,CAAQ;QAAY,mBAAc,GAAd,cAAc,CAAgB;QAE1E,IAAG,IAAI,CAAC,YAAY,IAAI,SAAS,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAC;YAC5D,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC;gBACnE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;SAC5D;IACL,CAAC;IACS,YAAY,CAAC,MAAgB;QACpC,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,KAAI,IAAI,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAC;YACrC,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAG,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,EAAC;gBAClB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAC;oBAClD,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;iBACxD;qBAAM;oBACJ,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;iBACxC;aACH;SACJ;QACD,KAAI,IAAI,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAC;YAC1C,IAAG,cAAc,CAAC,GAAG,CAAC,IAAI,IAAI,EAAC;gBAC5B,cAAc,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;aAC/C;SACJ;QACD,IAAI,oBAAoB,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC;QACzH,IAAG,oBAAoB,IAAI,SAAS,IAAI,oBAAoB,IAAI,IAAI,EAAC;YAClE,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,GAAE;gBACrC,IAAI,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC7B,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,EAAC;oBAC9B,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAE,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC;oBAC/G,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC;iBACzC;qBAAM;oBACH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAE,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC;iBAClG;YACJ,CAAC,CAAC,CAAC;SACL;aAAM;YACJ,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,EAAC;gBAC9B,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAE,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC;gBAC5F,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC;aACzC;iBAAM;gBACH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAE,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC;aAC/E;SACH;IACJ,CAAC;CACF;;;;;;;;;;;;;;;;;;;;;;;;;ACrDqD;AACW;AACW;;;;;;;;;;;;;ACF5E;AAAe,uEAAQ,iBAAiB,kBAAkB,eAAe,gBAAgB,yBAAyB,GAAG,WAAW,sBAAsB,IAAI,yBAAyB,sBAAsB,sBAAsB,GAAG,kBAAkB,qBAAqB,GAAG,+CAA+C,+yB;;;;;;;;;;;;;;;;;;;;;;;;ACAlQ;AACQ;AAEiB;AAEyC;AAGzD;AAEf;AACmC;AACnB;AASnE,IAAa,mBAAmB,GAAhC,MAAa,mBAAoB,SAAQ,2DAAY;IAsClD,YAAoB,eAAgC,EAAU,iBAAkC,EAAY,MAAc,EAAY,cAA8B;QACjK,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QADb,oBAAe,GAAf,eAAe,CAAiB;QAAU,sBAAiB,GAAjB,iBAAiB,CAAiB;QAAY,WAAM,GAAN,MAAM,CAAQ;QAAY,mBAAc,GAAd,cAAc,CAAgB;QA/BrK;;YAEI;QACJ,eAAU,GAAY,KAAK,CAAC;QAO5B,gCAA2B,GAAY,KAAK,CAAC;QAC7C,gBAAW,GAAgB,IAAI,yDAAW,CAAC,IAAI,CAAC,CAAC;QACjD,kBAAa,GAA0B,EAAE,CAAC;QAC1C,kBAAa,GAAa,EAAE,CAAC;QACZ,sBAAiB,GAAW,yDAAc,CAAC;QAC3C,4BAAuB,GAAW,+DAAoB,CAAC;QACxE,gBAAW,GAAW,IAAI,CAAC,iBAAiB,CAAC;QAC5B,cAAS,GAAW,KAAK,CAAC;QAC1B,cAAS,GAAW,IAAI,CAAC,SAAS,GAAC,CAAC,CAAC,CAAC;QAC7C,iBAAY,GAAW,6DAAkB,CAAC;QAC1C,YAAO,GAAY;YACjB,WAAW,EAAE,EAAE,KAAK,EAAE,iEAAsB,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9D,WAAW,EAAE,EAAE,KAAK,EAAE,yDAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;YACtD,sBAAsB,EAAE,EAAE,KAAK,EAAE,+DAAoB,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvE,UAAU,EAAE,EAAE,KAAK,EAAE,+DAAoB,EAAE,IAAI,EAAE,SAAS,EAAE;SACvE;QAED,uBAAkB,GAAW,8DAAmB;QAChD,aAAQ,GAAY,KAAK,CAAC;QAC1B,gBAAW,GAAa,CAAE,uDAAY,CAAC,aAAa,EAAE,uDAAY,CAAC,SAAS,EAAE,uDAAY,CAAC,QAAQ,EAAE,uDAAY,CAAC,UAAU,CAAE,CAAC;IAI9H,CAAC;IACD,QAAQ;QACL,IAAI,eAAe,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAC/F,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC,CAAE,CAAC;QACnF,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,uEAAiB,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,2EAAmB,EAAC,CAAC,CAAC;QAChF,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,CACxC,CAAC,OAAgB,EAAE,EAAE;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,SAAS,CAC3C,CAAC,QAAiB,EAAE,EAAE;YAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,QAAQ,EAAE,CAAC;IACrB,CAAC;IACD,aAAa;QACT,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACxH,2CAA2C;QAC3C,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IACO,YAAY,CAAC,IAAqB,EAAE,QAAiB;QAC1D,IAAI,IAAI,IAAI,IAAI,EAAC;YACd,OAAO,EAAE,CAAC;SACZ;QACD,IAAI,WAAW,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAChF,OAAO,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;IAC9D,CAAC;IACS,UAAU,CAAC,MAAc;QAChC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,EAAC;YACnG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,iBAAiB,CAAC;YAC7C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SAC7D;IACJ,CAAC;IACO,aAAa,CAAC,OAAe;QACjC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,2DAAgB,CAAC;QACrC,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IACO,gBAAgB;QACrB,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,YAAY,EAAE,CAAC;IACvB,CAAC;CAEF;;YA/CuC,yDAAe;YAA6B,yDAAe;YAAoB,sDAAM;YAA4B,8DAAc;;AAhC5J;IAAR,2DAAK,EAAE;yDAAwC;AANrC,mBAAmB;IAL/B,+DAAS,CAAC;QACT,QAAQ,EAAE,qBAAqB;QAC/B,2PAA0C;;KAE3C,CAAC;GACW,mBAAmB,CAqF/B;AArF+B;;;;;;;;;;;;;;;;;;ACrBoB;AAMpD,IAAa,UAAU,GAAvB,MAAa,UAAU;IAErB,SAAS,CAAC,aAAoC,EAAE,GAAY;QACzD,IAAG,CAAC,GAAG,EAAC;YACJ,OAAO,aAAa;SACvB;QACD,OAAO,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,aAAY,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;IACtE,CAAC;CAEF;AATY,UAAU;IAHtB,0DAAI,CAAC;QACJ,IAAI,EAAE,QAAQ;KACf,CAAC;GACW,UAAU,CAStB;AATsB;;;;;;;;;;;;;ACNvB;AAAe,sFAAuB,kBAAkB,2BAA2B,mBAAmB,GAAG,2BAA2B,gBAAgB,GAAG,+CAA+C,+kB;;;;;;;;;;;;;;;;;;;;ACA7I;AACQ;AAId;AAE8F;AAOjJ,IAAa,wBAAwB,GAArC,MAAa,wBAAyB,SAAQ,2DAAY;IA2BvD,YAAsB,MAAc,EAAY,cAA8B;QAC3E,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QADX,WAAM,GAAN,MAAM,CAAQ;QAAY,mBAAc,GAAd,cAAc,CAAgB;QAlB9E;;YAEI;QACK,kBAAa,GAA0B,EAAE,CAAC;QAOzC,iBAAY,GAAW,6DAAkB,CAAC;QAC1C,YAAO,GAAY;YAClB,WAAW,EAAE,EAAE,KAAK,EAAE,yDAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9D,sBAAsB,EAAE,EAAE,KAAK,EAAE,+DAAoB,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvE,WAAW,EAAE,EAAE,KAAK,EAAE,iEAAsB,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9D,qBAAqB,EAAE,EAAE,KAAK,EAAE,uEAA4B,EAAE,IAAI,EAAE,QAAQ,EAAE;SAChF;IAID,CAAC;IAEF,QAAQ;QACL,KAAK,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC;IACO,YAAY,CAAC,YAAiC;QACnD,IAAI,CAAC,qBAAqB,GAAG,YAAY,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB;QACxC,IAAI,CAAC,WAAW,GAAG,yDAAc,CAAC;QAClC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAG,IAAI,CAAC,cAAc,IAAI,SAAS,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAC;YAC/D,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;SACjC;IACJ,CAAC;CAEF;;YAjBgC,sDAAM;YAA4B,8DAAc;;AAnBrE;IAAR,2DAAK,EAAE;kEAA0B;AAIzB;IAAR,2DAAK,EAAE;+DAA2C;AAC1C;IAAR,2DAAK,EAAE;oEAA4B;AAC3B;IAAR,2DAAK,EAAE;gEAAmC;AAClC;IAAR,2DAAK,EAAE;sEAAsC;AAfpC,wBAAwB;IALpC,+DAAS,CAAC;QACT,QAAQ,EAAE,mBAAmB;QAC7B,gRAAiD;;KAElD,CAAC;GACW,wBAAwB,CA4CpC;AA5CoC;;;;;;;;;;;;;ACdrC;AAAe,6GAA8C,uM;;;;;;;;;;;;;;;;;;;;ACAJ;AACP;AACD;AACiB;AAOlE,IAAa,2BAA2B,GAAxC,MAAa,2BAA2B;IAMrC,YAAoB,YAA6B;QAA7B,iBAAY,GAAZ,YAAY,CAAiB;QAJjD,gBAAW,GAAgB,IAAI,yDAAW,CAAC,IAAI,CAAC,CAAC;QACjD,kBAAa,GAA0B,EAAE,CAAC;IAGW,CAAC;IAEtD,QAAQ;QACL,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,2EAAmB,EAAC,CAAC,CAAC;QAChF,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/D,CAAC;CAEH;;YARoC,yDAAe;;AALxC;IAAR,2DAAK,EAAE;gEAAqB;AADnB,2BAA2B;IALvC,+DAAS,CAAC;QACT,QAAQ,EAAE,uBAAuB;QACjC,wRAAqD;;KAEtD,CAAC;GACW,2BAA2B,CAcvC;AAduC;;;;;;;;;;;;;ACVxC;AAAe,uEAAQ,iBAAiB,wBAAwB,cAAc,eAAe,GAAG,kBAAkB,sDAAsD,sCAAsC,GAAG,gBAAgB,uBAAuB,GAAG,wBAAwB,uBAAuB,GAAG,YAAY,wBAAwB,eAAe,kBAAkB,kBAAkB,wBAAwB,GAAG,SAAS,sBAAsB,GAAG,aAAa,kBAAkB,GAAG,SAAS,wBAAwB,cAAc,iBAAiB,GAAG,cAAc,oBAAoB,GAAG,aAAa,sBAAsB,iCAAiC,mBAAmB,wBAAwB,gBAAgB,gBAAgB,GAAG,cAAc,iCAAiC,GAAG,cAAc,wBAAwB,sBAAsB,eAAe,kBAAkB,iBAAiB,iCAAiC,gBAAgB,GAAG,eAAe,wBAAwB,kBAAkB,gBAAgB,gBAAgB,GAAG,cAAc,iBAAiB,sBAAsB,wBAAwB,kBAAkB,iCAAiC,gBAAgB,GAAG,gBAAgB,iBAAiB,sBAAsB,GAAG,kBAAkB,qBAAqB,GAAG,+CAA+C,u3F;;;;;;;;;;;;;;;;;;;;;;;;;ACA1vC;AACQ;AAIqF;AAE3F;AAEF;AAC6D;AAEtE;AACmC;AACnB;AAShE,IAAa,oBAAoB,GAAjC,MAAa,oBAAqB,SAAQ,2DAAY;IA+CnD,YAAoB,eAAgC,EAAU,iBAAkC,EAAY,MAAc,EAAY,cAA8B;QACjK,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QADb,oBAAe,GAAf,eAAe,CAAiB;QAAU,sBAAiB,GAAjB,iBAAiB,CAAiB;QAAY,WAAM,GAAN,MAAM,CAAQ;QAAY,mBAAc,GAAd,cAAc,CAAgB;QAxCpJ,sBAAiB,GAAW,yDAAc,CAAC;QAC3C,4BAAuB,GAAW,+DAAoB,CAAC;QACxE,eAAU,GAAW,CAAC,CAAC;QAEvB,gBAAW,GAAgB,IAAI,yDAAW,CAAC,IAAI,CAAC,CAAC;QACjD,iBAAY,GAAkB,EAAE,CAAC;QACjC,kBAAa,GAA0B,EAAE,CAAC;QAC1C,gBAAW,GAAW,IAAI,CAAC,iBAAiB,CAAC;QAM7C,eAAU,GAAY,KAAK,CAAC;QAC5B,0BAAqB,GAAkC,EAAE,CAAC;QAC1D,cAAS,GAAW,CAAC,CAAC,CAAC;QACvB,eAAU,GAAW,CAAC,CAAC,CAAC;QAExB,wBAAmB,GAAW,CAAC,CAAC,CAAC;QACjC,kBAAa,GAAa,EAAE,CAAC;QAC7B,yBAAoB,GAAkB,EAAE;QACvB,cAAS,GAAW,KAAK,CAAC;QAC1B,cAAS,GAAW,IAAI,CAAC,SAAS,GAAC,CAAC,CAAC,CAAC;QACtC,iBAAY,GAAW,GAAG,CAAC;QAC3B,wBAAmB,GAAY,GAAG,CAAC;QACpD,iBAAY,GAAW,IAAI,CAAC,mBAAmB,CAAC;QACtC,iBAAY,GAAW,6DAAkB,CAAC;QAC1C,YAAO,GAAY,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,yDAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;YACtE,UAAU,EAAE,EAAE,KAAK,EAAE,+DAAoB,EAAE,IAAI,EAAE,SAAS,EAAE;YAC5D,WAAW,EAAE,EAAE,KAAK,EAAE,iEAAsB,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9D,WAAW,EAAE,EAAE,KAAK,EAAE,yDAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;YACtD,wBAAwB,EAAE,EAAE,KAAK,EAAE,+DAAoB,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzE,yBAAyB,EAAE,EAAE,KAAK,EAAE,uEAA4B,EAAE,IAAI,EAAE,QAAQ,EAAE;YAClF,aAAa,EAAE,EAAE,KAAK,EAAE,mEAAwB,EAAE,IAAI,EAAE,QAAQ,EAAE;YAClE,UAAU,EAAE,EAAE,KAAK,EAAE,yDAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QAEnE,uBAAkB,GAAW,uDAAY,CAAC,aAAa;QACvD,aAAQ,GAAY,KAAK,CAAC;QAC1B,gBAAW,GAAa,CAAE,uDAAY,CAAC,aAAa,EAAE,uDAAY,CAAC,SAAS,CAAE,CAAC;IAI9E,CAAC;IACD,QAAQ;QACL,IAAI,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,EAAC;YACzE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;SAC1E;QACD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC3E,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC;QAC3C,IAAI,eAAe,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAC/F,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC,CAAE,CAAC;QAChF,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,CAAE,CAAC;QACpG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,oBAAoB,EAAE,EAAE,SAAS,EAAE,oEAAc,EAAC,CAAC,CAAC;QAChF,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,uEAAiB,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,2EAAmB,EAAC,CAAC,CAAC;QAChF,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,uBAAuB,EAAE,EAAE,SAAS,EAAE,mFAA2B,EAAE,CAAC,CAAC;QACjG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,gFAAwB,EAAE,cAAc,EAAG,IAAI,EAAE,CAAC,CAAC;QAC5G,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,CACxC,CAAC,OAAgB,EAAE,EAAE;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,SAAS,CAC3C,CAAC,QAAiB,EAAE,EAAE;YAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC;IACM,WAAW;QACf,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAC;YAC7E,IAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,WAAW,IAAI,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAC;gBACrG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;aAC3D;YACD,KAAK,EAAE;SACT;IACJ,CAAC;IACO,WAAW,CAAC,WAAwB;QACzC,IAAI,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC3D,IAAI,KAAK,IAAI,CAAC,CAAC,EAAC;YACb,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC9C;aAAM;YACJ,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SAC7C;QACD,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;IAC1I,CAAC;IACO,aAAa;QACnB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IACO,cAAc,CAAC,WAAwB;QAC5C,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,uBAAuB,CAAC;IACnH,CAAC;IACS,UAAU,CAAC,MAAc;QACjC,IAAI,qBAAqB,GAAG,IAAI,CAAC,yBAAyB,CAAC;QAC3D,IAAI,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC;QACvC,IAAI,oBAAoB,GAAG,IAAI,CAAC,wBAAwB,CAAC;QACzD,IAAI,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC;QACxC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAC;YACxB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,iBAAiB;mBACxC,CAAC,IAAI,CAAC,WAAW,IAAI,gBAAgB,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,eAAe,CAAC,CAAC,EAAC;gBAC9G,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC;gBAC1C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;aAC9D;YACD,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,uBAAuB;mBAC9C,CAAC,IAAI,CAAC,WAAW,IAAI,gBAAgB,IAAI,CAAC,IAAI,CAAC,wBAAwB,IAAI,IAAI,IAAI,IAAI,CAAC,wBAAwB,IAAI,oBAAoB,CAAC,CAAC,EAAC;gBAC7I,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,oBAAoB,CAAC;gBAChD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,oBAAoB,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;aACjF;YACD,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,iBAAiB;mBACxC,CAAC,IAAI,CAAC,WAAW,IAAI,gBAAgB;oBACxC,CAAC,IAAI,CAAC,yBAAyB,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,yBAAyB,IAAI,qBAAqB,CAAC,CAAC,CAAC,EAAC;gBACvI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC;gBAC1C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;aAC5E;SACH;IACH,CAAC;IACO,YAAY,CAAC,OAAe,EAAE,gBAAyB,EAAE,aAAsB,EAAE,MAAgB;QACtG,IAAI,CAAC,WAAW,GAAG,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC;QAC3E,IAAG,aAAa,IAAI,IAAI,EAAC;YACtB,IAAI,CAAC,wBAAwB,GAAG,aAAa,CAAC;SAChD;QACD,IAAI,CAAC,YAAY,GAAG,2DAAgB,CAAC;QACrC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IACO,aAAa,CAAC,aAAqB;QACzC,IAAI,aAAa,GAAG,CAAC,EAAC;YAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAC,GAAG,CAAC,GAAC,GAAG,CAAC;SACvD;aAAM;YACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAC,CAAC;SACtC;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;CACH;;YA7FuC,yDAAe;YAA6B,yDAAe;YAAoB,sDAAM;YAA4B,8DAAc;;AAzC3J;IAAR,2DAAK,EAAE;0DAAwC;AANtC,oBAAoB;IALhC,+DAAS,CAAC;QACT,QAAQ,EAAE,cAAc;QACxB,oPAA4C;;KAE7C,CAAC;GACW,oBAAoB,CA4IhC;AA5IgC;;;;;;;;;;;;;ACvBjC;AAAe,4EAAa,gCAAgC,GAAG,+CAA+C,uY;;;;;;;;;;;;;;;;;ACArD;AAQzD,IAAa,oBAAoB,GAAjC,MAAa,oBAAoB;IAI/B,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;CAEF;AARW;IAAR,2DAAK,EAAE;qDAAsB;AACrB;IAAR,2DAAK,EAAE;yDAAqB;AAFnB,oBAAoB;IALhC,+DAAS,CAAC;QACT,QAAQ,EAAE,cAAc;QACxB,iQAA4C;;KAE7C,CAAC;GACW,oBAAoB,CAShC;AATgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRyB;AACX;AACF;AAEJ;AAEd;AACwD;AAClB;AACD;AACC;AACX;AACU;AAC8B;AACR;AACT;AACa;AACc;AACnB;AACX;AACqC;AACd;AACpB;AACgB;AAC5B;AACY;AACqB;AACzB;AACV;AAC4B;AAClD;AACmB;AACkB;AAmD9E,IAAa,gBAAgB,GAA7B,MAAa,gBAAgB;CAAI;AAApB,gBAAgB;IAhD5B,8DAAQ,CAAC;QACR,YAAY,EAAE,CAAC,0GAA2B,EAAE,6EAAoB,EAAE,6EAAgB,EAAE,2GAAmB,EAAE,mGAAuB,EAAE,0FAAoB,EAAE,uGAAoB,EAAE,qHAAwB,EAAE,kGAAmB,EAAE,uFAAU,EAAE,4HAA2B,EAAE,8GAA0B,EAAE,0FAAoB,EAAE,8EAAc,EAAE,0FAAe,EAAE,+GAAyB,EAAE,sFAAa,EAAE,4EAAQ,EAAE,wGAAqB,EAAE,sDAAS,EAAE,yEAAkB,EAAE,2FAAoB,CAAC;QACxd,OAAO,EAAE;YACN,sEAAoB;YACrB,iEAAe;YACf,uEAAqB;YACrB,+DAAa;YACb,mEAAiB;YACjB,iEAAe;YACf,oEAAkB;YAClB,oEAAkB;YAClB,+DAAa;YACb,gEAAc;YACd,+DAAa;YACb,+DAAa;YACb,0EAAwB;YACxB,oEAAkB;YAClB,gEAAc;YACd,iEAAe;YACf,kEAAgB;YAChB,+DAAa;YACb,gEAAc;YACd,+DAAa;YACb,kEAAgB;YAChB,kEAAgB;YAChB,uEAAa;YACb,4DAAY;YACZ,0DAAW;YACX,8FAA0B;YAC1B,0EAAc;SACf;QACA,OAAO,EAAE;YACN,sDAAS;YACT,0GAA2B;YAC3B,kGAAmB;YACnB,6EAAgB;YAChB,0FAAoB;YACpB,yEAAkB;YAClB,8GAA0B;YAC1B,6EAAoB;YACpB,2GAAmB;SACrB;QACD,SAAS,EAAE;YACR,4EAAe;YACf,mEAAe;SACjB;QACD,eAAe,EAAE,CAAC,mGAAuB,CAAC;KAC5C,CAAC;GACW,gBAAgB,CAAI;AAAJ;;;;;;;;;;;;;ACnF7B;AAAe,uEAAQ,iBAAiB,kBAAkB,eAAe,gBAAgB,yBAAyB,GAAG,+CAA+C,2f;;;;;;;;;;;;;;;;;ACAlH;AAOlD,IAAa,2BAA2B,GAAxC,MAAa,2BAA2B;IAEtC,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;CAEF;AAPY,2BAA2B;IALvC,+DAAS,CAAC;QACT,QAAQ,EAAE,qBAAqB;QAC/B,2PAA0C;;KAE3C,CAAC;GACW,2BAA2B,CAOvC;AAPuC;;;;;;;;;;;;;;;;;;ACPY;AAWpD,IAAa,oBAAoB,GAAjC,MAAa,oBAAoB;IAE/B,SAAS,CAAC,OAAoB,EAAE,KAAkB;QAChD,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,EAAC;YAChC,OAAO,OAAO,CAAC;SAChB;QACD,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC;CAEF;AATY,oBAAoB;IAHhC,0DAAI,CAAC;QACJ,IAAI,EAAE,kBAAkB;KACzB,CAAC;GACW,oBAAoB,CAShC;AATgC;;;;;;;;;;;;;;;;;;ACXmB;AAKpD,IAAa,cAAc,GAA3B,MAAa,cAAc;IAExB,SAAS,CAAC,KAAkB;QACzB,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAC;YACnB,OAAO,eAAe;SACxB;QACD,IAAI,UAAU,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACxG,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,cAAa,EAAE,CAAC,CAAC,CAAC;QACrE,OAAO,aAAa,GAAG,eAAe,GAAG,UAAU,CAAC;IACvD,CAAC;CAEH;AAZY,cAAc;IAH1B,0DAAI,CAAC;QACJ,IAAI,EAAE,YAAY;KACnB,CAAC;GACW,cAAc,CAY1B;AAZ0B;;;;;;;;;;;;;ACL3B;AAAe,uEAAQ,gBAAgB,wBAAwB,cAAc,eAAe,kBAAkB,uBAAuB,GAAG,gBAAgB,iBAAiB,sBAAsB,GAAG,cAAc,iBAAiB,sBAAsB,wBAAwB,kBAAkB,iCAAiC,gBAAgB,GAAG,kBAAkB,qBAAqB,GAAG,eAAe,sBAAsB,oBAAoB,GAAG,SAAS,wBAAwB,eAAe,iBAAiB,GAAG,WAAW,wBAAwB,eAAe,kBAAkB,kBAAkB,wBAAwB,wBAAwB,GAAG,gBAAgB,uBAAuB,GAAG,UAAU,sBAAsB,uBAAuB,GAAG,SAAS,eAAe,GAAG,eAAe,qBAAqB,qBAAqB,eAAe,GAAG,+CAA+C,2+D;;;;;;;;;;;;;;;;;;;;;;;ACAp0B;AACI;AAG4G;AAC/H;AACC;AAEC;AACD;AAE/C,yFAAyF;AAMzF,IAAa,oBAAoB,GAAjC,MAAa,oBAAqB,SAAQ,2DAAY;IA2BnD,YAAoB,eAAgC,EAAY,MAAc,EAAY,cAA8B;QACrH,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QADb,oBAAe,GAAf,eAAe,CAAiB;QAAY,WAAM,GAAN,MAAM,CAAQ;QAAY,mBAAc,GAAd,cAAc,CAAgB;QA1B9G,iBAAY,GAAW,2DAAgB,CAAC;QAGlD,gBAAW,GAAgB,IAAI,yDAAW,CAAC,IAAI,CAAC,CAAC;QAEjD,cAAS,GAAW,CAAC,CAAC,CAAC;QACvB,eAAU,GAAW,CAAC,CAAC,CAAC;QAExB,gBAAW,GAAW,CAAC,CAAC;QACxB,iBAAY,GAAW,CAAC,CAAC;QACzB,gBAAW,GAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QAChD,oBAAe,GAAY,KAAK,CAAC;QACjC,uBAAkB,GAAW,uDAAY,CAAC,aAAa;QACvD,gBAAW,GAAY,KAAK,CAAC;QACnB,YAAO,GAAY;YAClB,gBAAgB,EAAE,EAAE,KAAK,EAAE,yDAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3D,WAAW,EAAE,EAAE,KAAK,EAAE,iEAAsB,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9D,UAAU,EAAE,EAAE,KAAK,EAAE,yDAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;YACrD,wBAAwB,EAAE,EAAE,KAAK,EAAE,+DAAoB,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzE,UAAU,EAAE,EAAE,KAAK,EAAE,+DAAoB,EAAE,IAAI,EAAE,SAAS,EAAE;SACtE;QACD,UAAK,GAAgB,EAAE,CAAC;QACP,iBAAY,GAAW,GAAG,CAAC;QAC3B,wBAAmB,GAAY,GAAG,CAAC;QACpD,iBAAY,GAAW,IAAI,CAAC,mBAAmB,CAAC;IAIhD,CAAC;IAED,QAAQ;QACL,IAAI,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,EAAC;YACzE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;SAC1E;QACD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC3E,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC;QAC3C,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,2DAAS,EAAC,CAAC,CAAC;QAC9D,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI;QAC3C,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACvD,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,CACxC,CAAC,OAAgB,EAAE,EAAE;YAClB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,SAAS,CAC3C,CAAC,QAAiB,EAAE,EAAE;YACnB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC;IACM,aAAa;QAClB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,KAAK,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IACQ,MAAM;QACX,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,KAAK,CAAC,YAAY,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,UAAU,IAAI,SAAS,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,EAAC;YAClF,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACpC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;SACrD;IACJ,CAAC;IACS,UAAU,CAAC,MAAc;QAChC,IAAI,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC;QACpC,IAAI,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC;QACtC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,IAAI,CAAC,UAAU,IAAI,SAAS,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,IAAI,aAAa,EAAC;YACtH,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;SACrD;QACD,IAAG,cAAc,IAAI,IAAI,CAAC,WAAW,EAAC;YACpC,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;IACJ,CAAC;IACD,cAAc;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IACD,WAAW,CAAC,KAAgB;QACzB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,EAAE;IACtB,CAAC;IACO,iBAAiB;QACtB,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,GAAC,IAAI,CAAC,YAAY;QACjD,IAAI,MAAM,GAAG,QAAQ,GAAC,IAAI,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IACvD,CAAC;CACH;;YAjEuC,yDAAe;YAAoB,sDAAM;YAA4B,8DAAc;;AA3B9G,oBAAoB;IALhC,+DAAS,CAAC;QACT,QAAQ,EAAE,cAAc;QACxB,oPAA4C;;KAE7C,CAAC;GACW,oBAAoB,CA4FhC;AA5FgC;;;;;;;;;;;;;;;;;;ACjBoC;AAMrE,IAAa,kBAAkB,GAA/B,MAAa,kBAAkB;IAE5B,YAAmB,EAAc;QAAd,OAAE,GAAF,EAAE,CAAY;IAAI,CAAC;IAEtC,QAAQ;QACL,IAAI,IAAI,CAAC,QAAQ,IAAI,SAAS,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,GAAE,EAAE,CAAC;SACzF;IACJ,CAAC;CACH;;YAPyB,wDAAU;;AADR;IAAxB,2DAAK,CAAC,gBAAgB,CAAC;oDAAgC;AAD9C,kBAAkB;IAH9B,+DAAS,CAAC;QACT,QAAQ,EAAE,kBAAkB;KAC7B,CAAC;GACW,kBAAkB,CAS9B;AAT8B;;;;;;;;;;;;;ACN/B;AAAe,4EAAa,gCAAgC,GAAG,+CAA+C,mX;;;;;;;;;;;;;;;;;;;;;ACApD;AACO;AACwB;AAGzC;AAEsE;AAiBtH,IAAa,uBAAuB,GAApC,MAAa,uBAAwB,SAAQ,2DAAY;IAwBtD,YAAmD,IAAuB,EAAU,cAAsD,EAAY,MAAc,EAAY,cAA8B;QAC3M,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QADkB,SAAI,GAAJ,IAAI,CAAmB;QAAU,mBAAc,GAAd,cAAc,CAAwC;QAAY,WAAM,GAAN,MAAM,CAAQ;QAAY,mBAAc,GAAd,cAAc,CAAgB;QAf9M;;;;YAII;QACJ,kBAAa,GAA0B,EAAE,CAAC;QAGhC,iBAAY,GAAW,6DAAkB,CAAC;QAC1C,YAAO,GAAY;YAClB,WAAW,EAAE,EAAE,KAAK,EAAE,yDAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9D,sBAAsB,EAAE,EAAE,KAAK,EAAE,+DAAoB,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvE,qBAAqB,EAAE,EAAE,KAAK,EAAE,uEAA4B,EAAE,IAAI,EAAE,QAAQ,EAAE;SAChF;QAIE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,cAAc,CAAC;IACrD,CAAC;IAEF,QAAQ;QACL,KAAK,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC;IACO,YAAY,CAAC,YAAiC;QACnD,IAAI,CAAC,qBAAqB,GAAG,YAAY,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAW,IAAI,CAAC,YAAY,CAAC,EAAE;QAC/C,IAAI,CAAC,YAAY,EAAE,CAAC;IACvB,CAAC;CAEF;;4CAhBe,oDAAM,SAAC,oFAAqB;YAA2D,gFAAiB;YAAyC,sDAAM;YAA4B,8DAAc;;AAxBpM,uBAAuB;IALnC,+DAAS,CAAC;QACT,QAAQ,EAAE,qBAAqB;QAC/B,6PAA+C;;KAEhD,CAAC;IAyBc,6GAAM,CAAC,oFAAqB,CAAC;GAxBhC,uBAAuB,CAwCnC;AAxCmC;;;;;;;;;;;;;ACxBpC;AAAe,2EAAY,oBAAoB,qBAAqB,wBAAwB,GAAG,aAAa,sBAAsB,kBAAkB,yBAAyB,yBAAyB,GAAG,WAAW,yBAAyB,kBAAkB,GAAG,UAAU,yBAAyB,kBAAkB,GAAG,kBAAkB,qBAAqB,uBAAuB,GAAG,+CAA+C,+hC;;;;;;;;;;;;;;;;;;;;;;;;;ACAxX;AACe;AAEqF;AACxG;AACyF;AAC1F;AAEG;AACD;AAC2E;AAO1H,IAAa,0BAA0B,GAAvC,MAAa,0BAA2B,SAAQ,2DAAY;IAqBzD,YAAoB,eAAgC,EAAY,MAAc,EAAY,cAA8B;QACrH,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QADb,oBAAe,GAAf,eAAe,CAAiB;QAAY,WAAM,GAAN,MAAM,CAAQ;QAAY,mBAAc,GAAd,cAAc,CAAgB;QApBxH,gBAAW,GAAW,+DAAoB,CAAC;QACjC,iBAAY,GAAW,+DAAoB,CAAC;QAItD,WAAM,GAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE;QACjD,gBAAW,GAAgB,IAAI,yDAAW,CAAC,IAAI,CAAC,CAAC;QACjD,wBAAmB,GAAmC,EAAE,CAAC;QAI/C,YAAO,GAAY;YAClB,WAAW,EAAE,EAAE,KAAK,EAAE,iEAAsB,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9D,gBAAgB,EAAE,EAAE,KAAK,EAAE,yDAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3D,wBAAwB,EAAE,EAAE,KAAK,EAAE,+DAAoB,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzE,UAAU,EAAE,EAAE,KAAK,EAAE,+DAAoB,EAAE,IAAI,EAAE,SAAS,EAAE;SACtE;QACD,eAAU,GAAG,IAAI,6FAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC9D,UAAK,GAAe,EAAE,CAAC;IAIvB,CAAC;IAED,QAAQ;QACL,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,oBAAoB,EAAC,uBAAuB,EAAE,qBAAqB,EAAE,OAAO,EAAE,uBAAuB,CAAC,CAAE,CAAC;QAC5J,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,oBAAoB,EAAE,EAAE,SAAS,EAAE,sEAAgB,EAAE,CAAC,CAAC;QACnF,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,uBAAuB,EAAE,EAAE,SAAS,EAAE,2EAAqB,EAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,qBAAqB,EAAE,EAAE,SAAS,EAAE,kFAA4B,EAAC,CAAC,CAAC;QAC/F,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,wDAAQ,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,uBAAuB,EAAE,EAAE,SAAS,EAAE,2EAAqB,EAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACvD,KAAK,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC;IACS,UAAU,CAAC,MAAc;QACjC,IAAI,oBAAoB,GAAG,IAAI,CAAC,wBAAwB,CAAC;QACzD,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAC;YACxB,IAAI,IAAI,CAAC,wBAAwB,IAAI,IAAI,IAAI,IAAI,CAAC,wBAAwB,IAAI,oBAAoB,EAAC;gBAC/F,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,oBAAoB,CAAC;gBAChD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,oBAAoB,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;aACjF;SACH;IACH,CAAC;IACO,YAAY,CAAC,OAAe,EAAE,MAAe;QAClD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,2DAAgB,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;CAEH;;YA/BuC,yDAAe;YAAoB,sDAAM;YAA4B,8DAAc;;AArB9G,0BAA0B;IALtC,+DAAS,CAAC;QACT,QAAQ,EAAE,qBAAqB;QAC/B,yQAAmD;;KAEpD,CAAC;GACW,0BAA0B,CAoDtC;AApDsC;;;;;;;;;;;;;ACjBvC;AAAe,8EAAe,gBAAgB,qBAAqB,GAAG,6CAA6C,mqB;;;;;;;;;;;;;;;;;;;;ACA1D;AACQ;AACqB;AAEtC;AAehD,IAAa,qBAAqB,GAAlC,MAAa,qBAAsB,SAAQ,2DAAY;IAUpD,YAAsB,MAAc,EAAY,cAA8B;QAC3E,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QADX,WAAM,GAAN,MAAM,CAAQ;QAAY,mBAAc,GAAd,cAAc,CAAgB;QAR9E,WAAM,GAAY,KAAK,CAAC;QAEd,iBAAY,GAAW,2DAAgB,CAAC;QAGxC,YAAO,GAAY,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,yDAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1E,wBAAwB,EAAE,EAAE,KAAK,EAAE,+DAAoB,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAC;IAIrF,CAAC;IACD,QAAQ;QACL,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI;YAC1C,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM;YACrC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,IAAI,SAAS;eACjD,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,IAAI,IAAI;eAC/C,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;IAC7D,CAAC;IACO,YAAY;QACjB,IAAI,IAAI,CAAC,iBAAiB,IAAI,SAAS,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,EAAC;YACvE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;YAC/C,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,IAAI,SAAS,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,EAAC;gBAClF,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC;aACpE;YACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACjC;IACJ,CAAC;CAEH;;YAtBgC,sDAAM;YAA4B,8DAAc;;AATrE;IAAR,2DAAK,EAAE;gEAA2C;AADzC,qBAAqB;IALjC,+DAAS,CAAC;QACT,QAAQ,EAAE,gBAAgB;QAC1B,mQAA8C;;KAE/C,CAAC;GACW,qBAAqB,CAgCjC;AAhCiC;;;;;;;;;;;;;ACnBlC;AAAe,yEAAU,sBAAsB,GAAG,+CAA+C,+V;;;;;;;;;;;;;;;;;;;;ACA/C;AACe;AACD;AAEhB;AAOhD,IAAa,eAAe,GAA5B,MAAa,eAAgB,SAAQ,2DAAY;IAI/C,YAAsB,MAAc,EAAY,cAA8B;QAC1E,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QADZ,WAAM,GAAN,MAAM,CAAQ;QAAY,mBAAc,GAAd,cAAc,CAAgB;QAFpE,YAAO,GAAY,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,yDAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAC;IAInF,CAAC;IACD,kBAAkB;QACf,IAAI,CAAC,YAAY,GAAG,2DAAgB;QACpC,IAAI,CAAC,YAAY,EAAE,CAAC;IACvB,CAAC;IACO,aAAa;QAClB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,EAAE,CAAC;IACvB,CAAC;CAEF;;YAZ+B,sDAAM;YAA4B,8DAAc;;AAJnE,eAAe;IAL3B,+DAAS,CAAC;QACT,QAAQ,EAAE,QAAQ;QAClB,mPAAsC;;KAEvC,CAAC;GACW,eAAe,CAgB3B;AAhB2B;;;;;;;;;;;;;ACX5B;AAAe,6GAA8C,uL;;;;;;;;;;;;;;;;;;;;ACAX;AACe;AACkC;AAEnD;AAShD,IAAa,yBAAyB,GAAtC,MAAa,yBAA0B,SAAQ,2DAAY;IAQxD,YAAsB,MAAc,EAAY,cAA8B;QAC3E,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QADX,WAAM,GAAN,MAAM,CAAQ;QAAY,mBAAc,GAAd,cAAc,CAAgB;QAP9E,eAAU,GAAY,KAAK,CAAC;QAC5B,oBAAe,GAAY,KAAK,CAAC;QACvB,YAAO,GAAY;YAC1B,eAAe,EAAE,EAAE,KAAK,EAAE,uEAA4B,EAAE,IAAI,EAAE,SAAS,EAAE;YACzE,UAAU,EAAE,EAAE,KAAK,EAAE,+DAAoB,EAAE,IAAI,EAAE,SAAS,EAAE;SAC9D;IAID,CAAC;IACO,gBAAgB;QACtB,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IACD,eAAe;QACZ,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC;QAC7C,IAAI,CAAC,YAAY,EAAE,CAAC;IACvB,CAAC;CACH;;YAXgC,sDAAM;YAA4B,8DAAc;;AARpE,yBAAyB;IANrC,+DAAS,CAAC;QACT,QAAQ,EAAE,mBAAmB;QAC7B,yQAAiD;;KAElD,CAAC;GAEW,yBAAyB,CAmBrC;AAnBqC;;;;;;;;;;;;;ACbtC;AAAe,uEAAQ,qBAAqB,GAAG,YAAY,qBAAqB,GAAG,aAAa,sBAAsB,GAAG,+CAA+C,mf;;;;;;;;;;;;;;;;;;;;ACAtH;AACe;AACnB;AAEE;AAOhD,IAAa,aAAa,GAA1B,MAAa,aAAe,SAAQ,2DAAY;IAM7C,YAAsB,MAAc,EAAY,cAA8B;QAC3E,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QADX,WAAM,GAAN,MAAM,CAAQ;QAAY,mBAAc,GAAd,cAAc,CAAgB;QAL7D,cAAS,GAAW,IAAI,CAAC;QACzB,cAAS,GAAW,IAAI,CAAC,SAAS,GAAC,CAAC,CAAC,CAAC;QACvD,eAAU,GAAW,CAAC,CAAC;QACb,YAAO,GAAY,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,yDAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAC;IAIrF,CAAC;IACO,aAAa,CAAC,aAAqB;QACxC,IAAI,aAAa,GAAG,CAAC,EAAC;YACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAC,GAAG,CAAC,GAAC,GAAG,CAAC;SACtD;aAAM;YACJ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAC,CAAC;SACrC;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;IACvB,CAAC;CACH;;YAXgC,sDAAM;YAA4B,8DAAc;;AANpE,aAAa;IALzB,+DAAS,CAAC;QACT,QAAQ,EAAE,MAAM;QAChB,+OAAoC;;KAErC,CAAC;GACW,aAAa,CAiBzB;AAjByB;;;;;;;;;;;;;;;;;;ACX0B;AAUpD,IAAa,QAAQ,GAArB,MAAa,QAAQ;IAEnB,SAAS,CAAC,IAAgB;QACvB,OAAO,CAAC,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,GAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC,WAAW,CAAC,GAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACnJ,CAAC;CAEF;AANY,QAAQ;IAHpB,0DAAI,CAAC;QACJ,IAAI,EAAE,WAAW;KAClB,CAAC;GACW,QAAQ,CAMpB;AANoB;;;;;;;;;;;;;ACVrB;AAAe,6GAA8C,mJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAsB;AAClB;AAEX;AAEO;AACE;AAEL;AACA;AACkC;AAEzC;AACgB;AACoH;AACjI;AAEtD;;;IAGI;AAMJ,IAAa,oBAAoB,GAAjC,MAAa,oBAAqB,SAAQ,0DAAW;IAwHlD;;;QAGI;IACJ,YAAoB,iBAAkC,EAAY,MAAc,EAAY,cAA8B;QACvH,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QADb,sBAAiB,GAAjB,iBAAiB,CAAiB;QAAY,WAAM,GAAN,MAAM,CAAQ;QAAY,mBAAc,GAAd,cAAc,CAAgB;QA3HjH,kBAAa,GAAkB,EAAE,GAAG,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAC,CAAC;QAS/E;;YAEI;QACI,iBAAY,GAAY,KAAK,CAAC;QAOtC;;YAEI;QACK,eAAU,GAAW,CAAC,CAAC;QAChC;;YAEI;QACK,kBAAa,GAAiB,EAAE,CAAC;QAC1C;;YAEI;QACK,kBAAa,GAAiB,EAAE,CAAC;QAC1C;;YAEI;QACK,eAAU,GAAW,CAAC,CAAC,CAAC;QACjC;;YAEI;QACK,cAAS,GAAW,CAAC,CAAC,CAAC;QAChC,sBAAiB,GAAY,KAAK,CAAC;QAGnC;;YAEI;QACK,qBAAgB,GAAY,IAAI,CAAC;QAC1C;;;aAGK;QACI,uBAAkB,GAAW,+DAAmB,CAAC;QAgB1D;;;;YAII;QACJ,gBAAW,GAAgB,IAAI,0DAAW,CAAC,IAAI,CAAC,CAAC;QACjD;;YAEI;QACJ,eAAU,GAAY,KAAK,CAAC;QAC5B;;YAEI;QACJ,iBAAY,GAA2B,EAAE,CAAC;QAM1C;;YAEI;QACJ,UAAK,GAAW,EAAE,CAAC;QACnB;;YAEI;QACJ,wBAAmB,GAAiC,EAAE,CAAC;QAKvD;;YAEI;QACJ,iBAAY,GAAW,EAAE,CAAC;QAC1B;;YAEI;QACJ,iBAAY,GAAW,EAAE,CAAC;QAC1B;;YAEI;QACJ,UAAK,GAAW,EAAE,CAAC;QACV,sBAAiB,GAAY,KAAK,CAAC;QAClC,YAAO,GAAY;YAC1B,QAAQ,EAAE,EAAE,KAAK,EAAE,0DAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;YACnD,UAAU,EAAE,EAAE,KAAK,EAAE,gEAAoB,EAAE,IAAI,EAAE,SAAS,EAAE;YAC5D,kBAAkB,EAAE,EAAE,KAAK,EAAE,iEAAqB,EAAE,IAAI,EAAE,QAAQ,EAAE;YACpE,aAAa,EAAE,EAAE,KAAK,EAAE,oEAAwB,EAAE,IAAI,EAAE,QAAQ,EAAE;YAClE,WAAW,EAAE,EAAE,KAAK,EAAE,0DAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;YACtD,UAAU,EAAE,EAAE,KAAK,EAAE,0DAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;SACvD;IAQD,CAAC;IAED,QAAQ;QACL,IAAI,IAAI,CAAC,iBAAiB,EAAC;YACxB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC;YACnE,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;YACpD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,wDAAwD;SAC1D;QACD,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,eAAe,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAC/F,IAAI,kBAAkB,GAAkB,EAAE,GAAG,EAAE,EAAG,iBAAiB,EAAE,eAAe,EAAE,EAAC;QACvF,IAAI,CAAC,aAAa,GAAG,+DAAqB,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC;QACtG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,6DAAQ,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,uDAAO,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,4EAAoB,EAAC,CAAC,CAAC;QAChF,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,EAAQ,EAAE,SAAS,EAAE,uDAAO,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,EAAC,EAAE,SAAS,EAAE,yEAAc,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,EAAC,EAAE,SAAS,EAAE,6DAAa,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,EAAC,EAAE,SAAS,EAAE,6DAAa,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,qBAAqB,EAAE,EAAE,SAAS,EAAE,kFAA0B,EAAC,CAAC,CAAC;QAC7F,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,EAAC,CAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAE,CAAC,CAAC;QAC1F,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,qBAAqB,CAAE,CAAE,CAAC;QAC/H,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QAClD,IAAI,CAAC,cAAc,EAAE,CAAC;IACzB,CAAC;IACD,WAAW,CAAC,MAAqB;QAC9B,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK;eACpB,CAAC,MAAM,CAAC,WAAW,IAAI,SAAS,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;eAC/F,CAAC,MAAM,CAAC,kBAAkB,IAAI,SAAS,IAAI,MAAM,CAAC,kBAAkB,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE;YAC/H,IAAI,CAAC,cAAc,EAAE,CAAC;SACxB;IACJ,CAAC;IACS,UAAU,CAAC,MAAc;QAChC,IAAI,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACrD,IAAI,cAAc,GAAG,IAAI,CAAC,UAAU;QACpC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK;eACpB,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,IAAI,sBAAsB,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAC;YAC3F,IAAI,CAAC,cAAc,EAAE,CAAC;SACxB;QACD,IAAI,cAAc,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAC;YAC9D,6CAA6C;YAC7C,kEAAkE;SACpE;IACJ,CAAC;IACD;;;QAGI;IACI,cAAc;QACnB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,wDAAY,CAAC,SAAS,IAAI,IAAI,CAAC,kBAAkB,IAAI,wDAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,6DAAQ,CAAC,CAAC,CAAC,yEAAc,CAAE;QAC9K,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,GAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,wDAAY,CAAC,SAAS,IAAI,IAAI,CAAC,kBAAkB,IAAI,wDAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,uDAAO,CAAC,CAAC,CAAC,6DAAa,CAAE;QAC7K,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,GAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,wDAAY,CAAC,SAAS,IAAI,IAAI,CAAC,kBAAkB,IAAI,wDAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,uDAAO,CAAC,CAAC,CAAC,6DAAa,CAAE;QAC7K,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,GAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,wDAAY,CAAC,SAAS,IAAI,IAAI,CAAC,kBAAkB,IAAI,wDAAY,CAAC,UAAU,CAAC;YACzG,CAAC,CAAC,4EAAoB,CAAC,CAAC,CAAC,kFAA0B,CAAE;QACpG,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,IAAI,qBAAqB,EAAC;YACtG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;SACzB;QACD,IAAI,IAAI,CAAC,kBAAkB,IAAI,wDAAY,CAAC,QAAQ,IAAI,IAAI,CAAC,kBAAkB,IAAI,wDAAY,CAAC,UAAU,EAAC;YACxG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,wDAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,6DAAQ,CAAC,CAAC,CAAC,yEAAc,CAAE;YAChI,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,GAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,wDAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,uDAAO,CAAC,CAAC,CAAC,6DAAa,CAAE;YAC/H,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,GAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,wDAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,uDAAO,CAAC,CAAC,CAAC,6DAAa,CAAE;YAC/H,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,GAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,wDAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,4EAAoB,CAAC,CAAC,CAAC,kFAA0B,CAAE;YAChK,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SAC/D;QACD,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAC;YAC1B,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAC3C,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,SAAS,EAAC;gBACvD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,GAAG,iEAAY,CAAE;gBACrD,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;gBAClG,IAAI,OAAO,GAAyB,EAAE,OAAO,EAAE,CAAC;oBAC7C,OAAO,EAAE,CAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,EAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAU,IAAI,CAAC,SAAS,EAAC,EAAE,EAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAU,OAAO,EAAC,CAAE;iBAC9I;gBACD,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAG,IAAI,OAAO,CAAC;gBAChG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;aAClD;iBAAM,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAC;gBAChE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;aACxD;YACD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SAC7D;IACJ,CAAC;CAEH;;YA1FyC,kEAAe;YAAoB,sDAAM;YAA4B,8DAAc;;AA3HjH;IAAR,2DAAK,EAAE;2DAAuE;AAIhE;IAAd,2DAAK,CAAC,MAAM,CAAC;yDAAqB;AAI1B;IAAR,2DAAK,EAAE;sDAAkB;AAUjB;IAAR,2DAAK,EAAE;0DAAwC;AAIvC;IAAR,2DAAK,EAAE;wDAAwB;AAIvB;IAAR,2DAAK,EAAE;2DAAkC;AAIjC;IAAR,2DAAK,EAAE;2DAAkC;AAIjC;IAAR,2DAAK,EAAE;wDAAyB;AAIxB;IAAR,2DAAK,EAAE;uDAAwB;AAEvB;IAAR,2DAAK,EAAE;uDAAuB;AACtB;IAAR,2DAAK,EAAE;qDAAqB;AAIpB;IAAR,2DAAK,EAAE;8DAAkC;AAKjC;IAAR,2DAAK,EAAE;gEAAkD;AAMpC;IAArB,2DAAK,CAAC,aAAa,CAAC;yDAAmC;AASlC;IAArB,2DAAK,CAAC,aAAa,CAAC;yDAAmC;AA4C/C;IAAR,2DAAK,EAAE;+DAAoC;AA9GlC,oBAAoB;IALhC,+DAAS,CAAC;QACT,QAAQ,EAAE,eAAe;QACzB,yOAA6C;;KAE9C,CAAC;GACW,oBAAoB,CAsNhC;AAtNgC;;;;;;;;;;;;;;;;;;;AC1BwB;AACI;AAG7D;;;KAGK;AAEL,IAAa,eAAe,GAA5B,MAAa,eAAe;IAK1B,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAJnC,oDAAoD;QACpD,YAAO,GAAG,yDAAyD;QACpE,eAAU,GAAG,IAAI,0DAAY,EAAU,CAAC;IAEA,CAAC;IAElC,SAAS,CAAC,GAAW;QACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD;;;;;OAKG;IACK,OAAO,CAAC,KAAa;QAC3B,IAAI,WAAW,GAAG;YACd,OAAO,EAAE,IAAI,gEAAW,CACpB,EAAE,cAAc,EAAE,0BAA0B;gBAC7C,QAAQ,EAAE,gDAAgD,EAAC,CAC7D;SACH,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAC3D,CAAC;CAEF;;YArB2B,+DAAU;;AALzB,eAAe;IAD3B,gEAAU,EAAE;GACA,eAAe,CA0B3B;AA1B2B;;;;;;;;;;;;;ACT5B;AAAe,uEAAQ,iBAAiB,kBAAkB,eAAe,gBAAgB,yBAAyB,GAAG,WAAW,sBAAsB,IAAI,SAAS,qBAAqB,GAAG,YAAY,qBAAqB,GAAG,aAAa,sBAAsB,GAAG,yBAAyB,sBAAsB,sBAAsB,GAAG,kBAAkB,qBAAqB,GAAG,+CAA+C,2iC;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAjW;AACJ;AACgB;AAEF;AAEyC;AAClD;AAEP;AAEf;AACmC;AACnB;AAC0C;AAQ1G,IAAa,mBAAmB,GAAhC,MAAa,mBAAoB,SAAQ,2DAAY;IAuClD,YAAY,EAAc,EAAU,WAA2B,EAAU,eAAgC,EAAU,iBAAkC,EAAY,MAAc,EAAY,cAA8B;QACtN,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QADG,gBAAW,GAAX,WAAW,CAAgB;QAAU,oBAAe,GAAf,eAAe,CAAiB;QAAU,sBAAiB,GAAjB,iBAAiB,CAAiB;QAAY,WAAM,GAAN,MAAM,CAAQ;QAAY,mBAAc,GAAd,cAAc,CAAgB;QAhC1N;;YAEI;QACJ,eAAU,GAAY,KAAK,CAAC;QAU5B,gCAA2B,GAAY,KAAK,CAAC;QAC7C,gBAAW,GAAgB,IAAI,yDAAW,CAAC,IAAI,CAAC,CAAC;QACjD,kBAAa,GAA0B,EAAE,CAAC;QAC1C,kBAAa,GAAa,EAAE,CAAC;QACZ,cAAS,GAAW,KAAK,CAAC;QAC1B,cAAS,GAAW,IAAI,CAAC,SAAS,GAAC,CAAC,CAAC,CAAC;QAC7C,iBAAY,GAAW,2DAAgB,CAAC;QACxC,YAAO,GAAY,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,yDAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;YACtE,WAAW,EAAE,EAAE,KAAK,EAAE,yDAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;YACtD,eAAe,EAAE,EAAE,KAAK,EAAE,uEAA4B,EAAE,IAAI,EAAE,SAAS,EAAE;YACzE,sBAAsB,EAAE,EAAE,KAAK,EAAE,+DAAoB,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvE,UAAU,EAAE,EAAE,KAAK,EAAE,+DAAoB,EAAE,IAAI,EAAE,SAAS,EAAE;YAC5D,kBAAkB,EAAE,EAAE,KAAK,EAAE,gEAAqB,EAAE,IAAI,EAAE,QAAQ,EAAE;YACpE,aAAa,EAAE,EAAE,KAAK,EAAE,mEAAwB,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QAEhF,uBAAkB,GAAW,8DAAmB;QAChD,aAAQ,GAAY,KAAK,CAAC;QAC1B,gBAAW,GAAa,CAAE,uDAAY,CAAC,aAAa,EAAE,uDAAY,CAAC,SAAS,EAAE,uDAAY,CAAC,QAAQ,EAAE,uDAAY,CAAC,UAAU,CAAE,CAAC;IAI9H,CAAC;IACD,QAAQ;QACL,IAAI,eAAe,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAC/F,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,wEAAkB,EAAE,UAAU,EAAE,iBAAiB,EAAC,CAAC,CAAC;QACjH,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC,CAAE,CAAC;QACnF,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,uEAAiB,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,2EAAmB,EAAC,CAAC,CAAC;QAChF,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,CACxC,CAAC,OAAgB,EAAE,EAAE;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,SAAS,CAC3C,CAAC,QAAiB,EAAE,EAAE;YAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CACrC,CAAC,YAAuB,EAAE,EAAE;YACzB,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC;QAC9C,CAAC,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,SAAS,CACzC,CAAC,WAAoB,EAAE,EAAE;YACtB,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YACtD,IAAI,KAAK,GAAG,CAAC,CAAC,EAAC;gBACZ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aACtC;iBAAM;gBACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;aAC1C;YACD,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;IACP,CAAC;IACO,aAAa;QAClB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,EAAE,CAAC;IACvB,CAAC;IACO,YAAY,CAAC,IAAqB,EAAE,QAAiB;QAC1D,IAAI,IAAI,IAAI,IAAI,EAAC;YACd,OAAO,EAAE,CAAC;SACZ;QACD,IAAI,WAAW,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAChF,OAAO,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;IAC9D,CAAC;IACS,UAAU,CAAC,MAAc;QAChC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,EAAC;YACnG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,iBAAiB,CAAC;YAC7C,IAAG,IAAI,CAAC,sBAAsB,IAAI,IAAI,EAAC;gBACnC,gCAAgC;gBAChC,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,iFAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAC5E,cAAc,EAAC,EAAE,OAAO,EAAE,uEAAiB,EAAC,EAAE,EAAE,OAAO,EAAE,uEAAiB,EAAC,CAAC,CAAC;gBACrG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;aAC/F;iBAAM;gBACH,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;aAC9D;SACH;IACJ,CAAC;IACO,aAAa,CAAC,OAAe,EAAE,aAAsB;QACzD,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC3B,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IACO,eAAe;QACpB,IAAI,UAAU,GAAsB;YACjC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,IAAI,EAAE,IAAI,CAAC,YAAY;YACvB,cAAc,EAAE,IAAI,CAAC,sBAAsB;YAC3C,oBAAoB,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;SAClD;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mGAAuB,EAAE;YAC5C,IAAI,EAAE,UAAU;SAClB,CAAC,CAAC;IACN,CAAC;IACO,qBAAqB,CAAC,SAAoB;QAC/C,IAAI,CAAC,WAAW,GAAW,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,aAAa,GAAG,CAAU,SAAS,CAAC,IAAI,CAAC,EAAE,CAAE;QAClD,IAAI,CAAC,YAAY,EAAE,CAAC;IACvB,CAAC;CACF;;YA9EkB,wDAAU;YAAuB,6EAAc;YAA2B,0DAAe;YAA6B,0DAAe;YAAoB,sDAAM;YAA4B,8DAAc;;AAjCjN;IAAR,2DAAK,EAAE;yDAAwC;AANrC,mBAAmB;IAL/B,+DAAS,CAAC;QACT,QAAQ,EAAE,uBAAuB;QACjC,+QAAqD;;KAEtD,CAAC;GACW,mBAAmB,CAqH/B;AArH+B;;;;;;;;;;;;;ACtBhC;AAAe,0EAAW,sBAAsB,kBAAkB,2BAA2B,0BAA0B,gBAAgB,oBAAoB,iBAAiB,iBAAiB,GAAG,yCAAyC,oBAAoB,GAAG,QAAQ,qBAAqB,GAAG,YAAY,mCAAmC,wCAAwC,wCAAwC,GAAG,YAAY,kBAAkB,GAAG,SAAS,mBAAmB,8BAA8B,kBAAkB,GAAG,gBAAgB,mBAAmB,6BAA6B,mBAAmB,GAAG,iBAAiB,mBAAmB,8BAA8B,mBAAmB,GAAG,cAAc,mBAAmB,8BAA8B,mBAAmB,GAAG,iDAAiD,2qD;;;;;;;;;;;;;;;;;;;;;;;;ACA5uB;AACJ;AAEG;AAC1B;AACJ;AACiD;AAC9D;AAC4E;AAE1H;;;IAGI;AAMJ,IAAa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,+DAAqB;IA0ExD,YAAsB,eAAgC,EAAU,eAAgC;QAC7F,KAAK,EAAE;QADY,oBAAe,GAAf,eAAe,CAAiB;QAAU,oBAAe,GAAf,eAAe,CAAiB;QAzE3E,eAAU,GAAY,KAAK,CAAC;QACxC,kBAAa,GAAY,KAAK,CAAC;QAGxC,8BAA8B;QAC9B;;YAEI;QACa,gBAAW,GAAa,CAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,CAAE;QAS/F,UAAK,GAAY,KAAK,CAAC;QACvB,aAAQ,GAAW,CAAC,CAAC;QACrB;;;;YAII;QACJ,gBAAW,GAAgB,IAAI,yDAAW,CAAC,IAAI,CAAC,CAAC;QAiBjD;;YAEI;QACJ,2BAAsB,GAA4B,EAAE,CAAC;QACrD,uBAAkB,GAAqB,EAAE,CAAC;QAC1C,WAAM,GAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE;QACjD,eAAU,GAAG,IAAI,6FAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC9D,UAAK,GAAW,GAAG,CAAC;QAKpB;;YAEI;QACJ,oBAAe,GAAU,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC;QAC9F;;YAEI;QACJ,uBAAkB,GAAY,IAAI,CAAC;QAKnC;;YAEI;QACa,YAAO,GAAW,EAAE,CAAC;QACrB,oBAAe,GAAW,EAAE,CAAC;QAC7B,qBAAgB,GAAW,EAAE,CAAC;QAC/C,cAAS,GAAW,CAAC,CAAC;QACtB,eAAU,GAAW,CAAC,CAAC;IAGvB,CAAC;IACD,WAAW;QACR,KAAK,CAAC,WAAW,EAAE,CAAC;QACpB;;WAEG;QACH,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAC;YACzD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,gFAAqB,EAAE,CAAC,CAAC;YACrF,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,6EAAkB,EAAC,CAAC,CAAC;YACjF,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,wBAAwB,EAAE,EAAE,SAAS,EAAE,6FAAgC,EAAE,CAAC,CAAC;YACvG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,qBAAqB,EAAE,EAAE,SAAS,EAAE,0EAAgB,EAAC,CAAC,CAAC;YACnF,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,oBAAoB,EAAE,EAAE,SAAS,EAAE,sEAAc,EAAC,CAAC,CAAC;YAChF,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,wBAAwB,CAAE,CAAC,CAAC;YAC5G,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACvD,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,SAAS,CACtC,CAAC,QAAgB,EAAE,EAAE;gBAClB,IAAI,QAAQ,IAAI,cAAc,EAAC;oBAC5B,IAAI,CAAC,SAAS,EAAE;iBAClB;YACP,CAAC,CAAC,CAAC;SACL;IACJ,CAAC;IACD;;QAEI;IACJ,QAAQ;QACN,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,SAAS,CACzC,CAAC,QAAe,EAAE,EAAE;YAAG,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;YACpD,oCAAoC;QACvC,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,SAAS,CACzC,CAAC,OAAa,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAI,CAAC,oBAAoB,EAAE,EAAC,CAAC,CACrF,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,SAAS,CACvC,CAAC,OAAa,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CACxC,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,0BAA0B,CAAC,SAAS,CACtD,CAAC,oBAAuC,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAC,oBAAoB,CAAC,EAAC,CAAC,CACtG,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,2BAA2B,CAAC,SAAS,CACpD,CAAC,oBAAuC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CACzE,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CACrC,CAAC,SAAoB,EAAE,EAAE;YACtB,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/E,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,SAAS,CACjD,CAAC,eAA6B,EAAE,EAAE;YAC/B,IAAG,IAAI,CAAC,YAAY,IAAI,IAAI,EAAC;gBAC1B,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC;aAC9C;QACP,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,SAAS,CAClD,CAAC,eAA6B,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,CAC5I,CAAC;IACN,CAAC;IACD;;QAEI;IACI,SAAS;QACb,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,GAAE,KAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACpD,CAAC;IACD;;QAEI;IACI,oBAAoB;QACxB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;YAC9C,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC;YACvC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,EAAU,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC9D;IACL,CAAC;IACO,sBAAsB,CAAC,YAA2B;QACtD,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QAC9C,IAAG,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAC;YAC/C,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,oBAAoB,CAAC;YAChD,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,EAAC;gBAClC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,oBAAoB,EAAU,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;aAC7F;SACH;IACL,CAAC;IACO,MAAM,CAAC,GAAW;QACtB,IAAI,IAAI,CAAC,kBAAkB,IAAI,SAAS,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,SAAS,EAAC;YAClI,IAAI,aAAa,GAAsB,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC;YAC9E,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAC;gBAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;aAC9D;SACH;QACF,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;IACvE,CAAC;IACO,OAAO,CAAC,KAAa;QAC1B,IAAI,aAAa,GAAY,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC;YACjF,CAAC,CAAU,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5D,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,SAAS,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,IAAI,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9I,IAAI,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC;QAC1D,IAAI,IAAI,CAAC,kBAAkB,IAAI,SAAS,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,EAAC;YACxE,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;SACrC;QACD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO;eAC3B,IAAI,CAAC,YAAY,IAAI,IAAI;eACzB,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,IAAI;eAC9B,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,IAAI,EAAC;YACjC,OAAO,IAAI,CAAC;SACd;QACD,OAAO,CAAC,IAAI,GAAG,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,CAAC,CAAC,IAAI,GAAC,CAAC,IAAI,GAAC,KAAK,GAAC,aAAa,CAAC,KAAK,CAAC,GAAC,CAAC,CAAC;IACnG,CAAC;IACD;;;;QAII;IACI,UAAU,CAAC,GAAW,EAAE,OAAgD;QAC7E,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,GAAE,KAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;IACzB,CAAC;IACD;;QAEI;IACI,aAAa;QAClB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;IACrE,CAAC;CACF;;YA7HyC,yDAAe;YAA2B,yDAAe;;AAzE3E;IAApB,2DAAK,CAAC,YAAY,CAAC;oDAA6B;AACxC;IAAR,2DAAK,EAAE;uDAAgC;AAC/B;IAAR,2DAAK,EAAE;4DAA8B;AAC7B;IAAR,2DAAK,EAAE;mDAAwB;AAJtB,gBAAgB;IAL5B,+DAAS,CAAC;QACT,QAAQ,EAAE,UAAU;QACpB,uOAAwC;;KAEzC,CAAC;GACW,gBAAgB,CAuM5B;AAvM4B;;;;;;;;;;;;;ACnB7B;AAAA;AAAA;AAAA,gFAAgF;AAChF,0EAA0E;AAC1E,gEAAgE;;AAEzD,MAAM,WAAW,GAAG;IACzB,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF;;;;;;GAMG;AACH,mEAAmE;;;;;;;;;;;;;;;;;;;;ACfpB;AAC4B;AAE9B;AACY;AAEzD,IAAI,qEAAW,CAAC,UAAU,EAAE;IAC1B,oEAAc,EAAE,CAAC;CAClB;AAED,gGAAsB,EAAE,CAAC,eAAe,CAAC,yDAAS,CAAC;KAChD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACXpC,e;;;;;;;;;;;ACAA,e","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\";","export default \"<div [class]=\\\"theme\\\">\\n <mat-card *ngIf=\\\"!fullScreen || fullScreen !== 'true'\\\">\\n <mat-select placeholder=\\\"Standard Theme\\\"\\n disabled=\\\"true\\\"\\n [(ngModel)]=\\\"theme\\\"\\n (change) = \\\"onThemeChange()\\\">\\n <mat-option value=\\\"standard-theme\\\">Beta-Version {{version}}</mat-option>\\n <mat-option value=\\\"green-theme\\\">Green</mat-option>\\n </mat-select>\\n </mat-card>\\n <mat-card *ngIf=\\\"!fullScreen || fullScreen !== 'true'\\\">\\n <h1>Der sp&auml;te Nietzsche</h1>\\n </mat-card>\\n <app-main-menu-component></app-main-menu-component>\\n <router-outlet></router-outlet>\\n <!--<div style = \\\"padding: 60px;\\\"><app-bergwerke></app-bergwerke></div>-->\\n</div>\\n\"","export default \"<mat-drawer-container [hasBackdrop]= false [autosize]=\\\"true\\\">\\n <mat-drawer [mode]=\\\"navBarOpenMode\\\" [disableClose]=\\\"true\\\" [opened]=\\\"navBarOpenState\\\">\\n <app-navigation-list-component></app-navigation-list-component>\\n </mat-drawer>\\n <mat-drawer-content>\\n <div>\\n <mat-card *ngIf=\\\"!fullscreen && queryParams\\\">\\n <nav mat-tab-nav-bar>\\n <a mat-tab-link\\n *ngFor=\\\"let link of navTabLinks\\\"\\n [routerLink]=\\\"link.link\\\"\\n (click)=\\\"this.setActiveLink(link.link)\\\"\\n [queryParams]=\\\"queryParams\\\"\\n [active]=\\\"link.isActive\\\">\\n {{link.label}}\\n </a>\\n </nav>\\n </mat-card>\\n <router-outlet></router-outlet>\\n </div>\\n </mat-drawer-content>\\n</mat-drawer-container>\\n\"","export default \"<mat-card>\\n <mat-card-title>Der sp&auml;te Nietzsche. Digitale Manuskriptedition</mat-card-title>\\n <mat-card-content>\\n <div>Herausgegeben von Beat Röllin, Dominique Steinbach, Christian Steiner, René Stockmar und Hubert Thüring</div>\\n <div class=\\\"skip\\\">Transkription und philologischer Kommentar: Thomas Riebe, Beat Röllin und René Stockmar unter Mitarbeit von Marie-Luise Haase und Michael Kohlenbach</div>\\n <div>Digitale Edition: Dominique Steinbach und Christian Steiner unter Mitarbeit von Eric Erhardt und Myriam Schmidt</div>\\n <div>Projektleitung: Hubert Thüring</div>\\n </mat-card-content>\\n <mat-card-content>\\n <div>Gefördert durch den Schweizerischen Nationalfonds (<a href=\\\"http://www.snf.ch/de/Seiten/default.aspx\\\">SNF</a>)</div>\\n <div>Unterstützt durch das Projekt \\\"Nationale Infrastruktur für Editionen - Infrastructure nationale pour les éditions\\\" (<a href=\\\"https://www.nie-ine.ch/\\\">NIE - INE</a>)</div>\\n\\n <div class=\\\"skip\\\">Copyright <a href=\\\"https://www.unibas.ch\\\">Universität Basel</a></div>\\n </mat-card-content>\\n <mat-card-content>\\n <h3>Hinweis zur Beta-Version</h3>\\n <div>Bitte nehmen Sie zur Kenntnis, dass die digitale Edition sowie die darin präsentierten Inhalte noch in Entwicklung stehen und dass\\n <ul class=\\\"hint\\\">\\n <li>die Texte und Bilder noch nicht persistent zitierbar sind </li>\\n <li>die Menüführung oder Features/Funktionalitäten im Verlauf der weiteren Entwicklung ändern können</li>\\n <li>Browserkompatibilität noch nicht übergreifend gegeben ist; wir empfehlen die Verwendung von Mozilla Firefox in einer aktuellen Version (zur\\n Zeit k&ouml;nnen die Faksimiles erst &uuml;ber eine unsichere HTTP-Verbindung geladen werden, deshalb zeigen Browser eine \\n <a target=\\\"_new\\\" href=\\\"https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content\\\">\\\"Mixed content\\\"-Warnung</a> an oder blockieren diese Inhalte; lesen\\n Sie <a href=\\\"https://experienceleague.adobe.com/docs/target/using/experiences/vec/troubleshoot-composer/mixed-content.html?lang=de\\\" target=\\\"_new\\\">hier</a>, \\n wie die blockierten Inhalte dieser Seite angezeigt werden k&ouml;nnen)</li>\\n <li>erst die Daten zu <a [routerLink]=\\\"manuscriptLink\\\" [queryParams]=\\\"mpXIVParam\\\">Mp XIV</a> eingehend erfasst und &uuml;berpr&uuml;ft wurden. \\n <!--Dagegen befinden sich die Daten zu <a [routerLink]=\\\"manuscriptLink\\\" [queryParams]=\\\"mpXVParam\\\">Mp XV</a> erst in einem fr&uuml;hen Bearbeitungsstadium. -->\\n </li>\\n </ul>\\n </div>\\n </mat-card-content>\\n <mat-card-content>\\n <img height=\\\"52\\\" width=\\\"319\\\" src=\\\"/assets/logo_de.gif\\\"/>\\n <img class=\\\"second\\\" height=\\\"52\\\" width=\\\"164\\\" src=\\\"https://www.unibas.ch/dam/jcr:9a8e9aff-decd-45a7-bd46-284a3da3f86e/UniBas_Logo_DE_Schwarz_RGB_65.jpg\\\"/>\\n <!--<img class=\\\"second\\\" height=\\\"52\\\" width=\\\"164\\\" src=\\\"/assets/uni-basel-logo.svg\\\"/>-->\\n </mat-card-content>\\n\\n</mat-card>\\n\"","export default \"<mat-card>\\n <mat-card-title>Kontakt</mat-card-title>\\n <mat-card-content>\\n <div><a href=\\\"mailto:hubert.thuering@unibas.ch\\\">Prof. Dr. Hubert Thüring</a></div>\\n <div><a href=\\\"https://germanistik.philhist.unibas.ch/de/forschung/forschungsprojekte/ndl/der-spaete-nietzsche/\\\">Nietzsche-Edition</a></div>\\n <div> Deutsches Seminar</div>\\n <div>Universität Basel</div>\\n <div>Nadelberg 4</div>\\n <div>4051 Basel</div>\\n <div> Tel.: +41 (0)61 207 34 29</div>\\n </mat-card-content>\\n</mat-card>\\n<mat-card>\\n <mat-card-title>Rechtliche Hinweise</mat-card-title>\\n <mat-card-content>\\n <mat-card-subtitle>Haftungsbeschränkung</mat-card-subtitle>\\n <div class=\\\"text\\\"><!--Die Inhalte dieser Website werden mit größtmöglicher Sorgfalt erstellt. Der Anbieter übernimmt jedoch keine Gewähr für die Richtigkeit, Vollständigkeit und Aktualität der bereitgestellten Rahmeninhalte, die nicht i.e.S. Bestandteil der Edition sind.--> Die Nutzung der Inhalte der Website erfolgt auf eigene Gefahr der Nutzer*in. Mit der reinen Nutzung der Website der Anbieter*in kommt keinerlei Vertragsverhältnis zwischen der Nutzer*in und der Anbieter*in zustande.</div>\\n </mat-card-content>\\n <mat-card-content>\\n <h3>Urheberrecht und Lizenz</h3>\\n <div class=\\\"subcontent\\\">\\n <mat-card-subtitle>Transkription und Daten der digitalen Edition</mat-card-subtitle>\\n <img src=\\\"/assets/by.svg\\\"/>\\n <div class=\\\"text\\\">Die Transkriptionen und Daten der digitalen Edition sind in ihrem ganzen Umfang frei zugänglich und dürfen zu den Bedingungen der Creative Commons Public Licence „Namensnennung“, Version 4.0 (<a href=\\\"https://creativecommons.org/licenses/by/4.0/deed.de\\\">CC BY 4.0</a>) weitergegeben werden. Das Copyright darauf hat die <a href=\\\"https://www.unibas.ch\\\">Universit&auml;t Basel</a>.</div>\\n </div>\\n <div>\\n <mat-card-subtitle>Faksimiles</mat-card-subtitle>\\n <img src=\\\"/assets/by-nc-nd.svg\\\"/>\\n <div class=\\\"text\\\">Die Faksimiles werden von <a target=\\\"_new\\\" href=\\\"http://www.nietzschesource.org\\\">nietzschesource.org</a> gehostet und werden hier unver&auml;ndert dargestellt. Sie sind veröffentlicht unter der Creative Commons Public License „Namensnennung, Nicht kommerziell, Keine Bearbeitungen”, Version 4.0 <a href=\\\"http://creativecommons.org/licenses/by-nc-nd/4.0/deed.de\\\">(CC BY-NC-ND 4.0)</a>.</div>\\n </div>\\n </mat-card-content>\\n</mat-card>\\n\"","export default \"<span *ngIf=\\\"templateSegments\\\">\\n <link *ngIf=\\\"cssDef.type === 'url'\\\" rel=\\\"stylesheet\\\" type=\\\"text/css\\\" [href]='cssUrl'>\\n <span [style]=\\\"cssDef.type === 'text' ? this.sanitizer.bypassSecurityTrustStyle(cssDef.css) : ''\\\"\\n [attr.id]=\\\"parentId\\\" [class]=\\\"parentClass\\\">\\n <span *ngFor=\\\"let segment of templateSegments\\\"\\n (mousedown)=\\\"setSelectionStartIndex(segment.sStartIndex)\\\"\\n (mouseup)=\\\"setSelectedText(segment.sStartIndex)\\\">\\n <span [ngStyle] = \\\"segment.cssStyleTag\\\"\\n [ngClass] = \\\"segment.cssClass\\\"\\n (click)=\\\"onSegmentClick(segment)\\\">{{segment.sText}}</span>\\n </span>\\n </span>\\n</span>\\n\"","export default \"<mat-toolbar *ngIf=\\\"!fullScreen || fullScreen !== 'true'\\\">\\n <div>\\n <button mat-icon-button mat-button [routerLink]=\\\"homeLink\\\"\\n routerLinkActive=\\\"mat-accent\\\"\\n color=\\\"primary\\\"\\n aria-label=\\\"Go to landing page.\\\">\\n <mat-icon>home</mat-icon>\\n </button>\\n <button mat-button [routerLink]=\\\"contentViewLink\\\" [queryParams]=\\\"queryParams\\\" routerLinkActive=\\\"mat-accent\\\" color=\\\"primary\\\">Digitale Edition</button>\\n <button mat-button [disabled]= true [routerLink] = \\\"['doku']\\\" routerLinkActive=\\\"mat-accent\\\" color=\\\"primary\\\">Dokumentation</button>\\n <button mat-button [disabled]= true [routerLink] = \\\"['']\\\" routerLinkActive=\\\"mat-accent\\\" color=\\\"primary\\\">Daten und Endpunkte</button>\\n <button mat-button [disabled]= true [routerLink]=\\\"projectLink\\\" [queryParams]=\\\"queryParams\\\" routerLinkActive=\\\"mat-accent\\\" color=\\\"primary\\\">Projekt</button>\\n <button mat-button [routerLink]=\\\"impressumLink\\\" [queryParams]=\\\"queryParams\\\" routerLinkActive=\\\"mat-accent\\\" color=\\\"primary\\\">Impressum</button>\\n </div>\\n</mat-toolbar>\\n<router-outlet></router-outlet>\\n\"","export default \"<tln-manuscript-view></tln-manuscript-view>\\n\\n\"","export default \"<div class=\\\"fixed-nav-container\\\">\\n <mat-toolbar>Navigation</mat-toolbar>\\n <div *ngIf=\\\"navTrees && navTabIndex !== -1\\\">\\n <mat-tab-group [selectedIndex]=\\\"navTabIndex\\\" (selectedTabChange)=\\\"changeNavTreeViaRoute($event.index)\\\">\\n <mat-tab\\n *ngFor=\\\"let tree of navigationTreeDefs\\\"\\n label={{tree.label}}>\\n </mat-tab>\\n </mat-tab-group>\\n </div>\\n</div>\\n <div id=\\\"navlist\\\" class=\\\"navlist-container\\\" *ngIf=\\\"navTrees && navTabIndex !== -1\\\">\\n <mat-nav-list *ngIf=\\\"navTrees && navTrees[navTabIndex]\\\">\\n <mat-list-item *ngFor=\\\"let item of navTrees[navTabIndex].entries\\\"\\n (click)=\\\"onSelectNavItem(item)\\\"\\n [id] = \\\"item.tlnEntity.id\\\"\\n [class.active-item]=\\\"item.tlnEntity.id === navTrees[navTabIndex].selectedItem\\\">\\n <mat-card class = \\\"card-item\\\">\\n <mat-card-header>\\n <mat-card-title>\\n <span>{{item.tlnEntity.label}}</span>\\n </mat-card-title>\\n <mat-card-subtitle *ngIf=\\\"item.tlnEntity.description\\\">GSA-Signatur {{item.tlnEntity.description}}</mat-card-subtitle>\\n <mat-card-subtitle *ngIf=\\\"navTrees[navTabIndex].parentLabel\\\">{{navTrees[navTabIndex].parentLabel}}</mat-card-subtitle>\\n <img mat-card-avatar *ngIf=\\\"item.avatar\\\" [src]=\\\"item.avatar\\\"/>\\n </mat-card-header>\\n <mat-card-content>\\n <img class=\\\"thumbnail\\\" *ngIf=\\\"item.thumb\\\" [src]=\\\"item.thumb\\\"/>\\n <img class=\\\"thumbnail\\\" *ngIf=\\\"item.svg\\\" [src]=\\\"item.svg\\\"/>\\n </mat-card-content>\\n </mat-card>\\n </mat-list-item>\\n </mat-nav-list>\\n </div>\\n\\n\"","export default \"<div #tooltipContainer>\\n <tln-viewer-navigation [setMaxHeightTo]=\\\"pageView\\\"></tln-viewer-navigation>\\n <div id=\\\"content\\\">\\n <tln-page-view #pageView></tln-page-view>\\n </div>\\n <!--TODO: queryParams.fullscreen is string, not boolean! -->\\n <tool-tip [fullscreen]=\\\"queryParams.fullscreen == 'true'\\\" [menuOffsetPosition]=\\\"{x: 0, y: 86 }\\\" [container]=\\\"tooltipContainer\\\"></tool-tip>\\n</div>\\n\"","export default \"<div *ngIf=\\\"copyright\\\">\\n <h4 mat-subheader>Copyright Information:</h4>\\n <div [innerHTML]=\\\"copyright.text\\\"></div>\\n <div *ngIf=\\\"copyright.originalUrl\\\">URL: <a target=\\\"_new\\\" [href]=\\\"copyright.originalUrl\\\">{{copyright.originalUrl}}</a></div>\\n <div> Lizenz: \\n <a *ngIf=\\\"copyright.licenseTextUrl\\\" target=\\\"_new\\\" [href]=\\\"copyright.licenseTextUrl\\\">{{copyright.license}} </a>\\n <span *ngIf=\\\"!copyright.licenseTextUrl\\\">{{copyright.license}}</span>\\n </div>\\n</div>\\n\\n\"","export default \"<svg version=\\\"1.0\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" x=\\\"0\\\" y=\\\"0\\\"\\n [attr.width]=\\\"dimension\\\" [attr.height]=\\\"dimension\\\" viewBox=\\\"5.5 -3.5 64 64\\\"\\n (mouseenter)=\\\"setHighlight(true)\\\" (mouseleave)=\\\"setHighlight(false)\\\" (click)=\\\"showCopyrightInformation($event)\\\">\\n <svg:g>\\n <svg:path id=\\\"cc\\\" [style.opacity]=\\\"highlight ? '0.8' : '0.2'\\\" d=\\\"M37.441-3.5c8.951,0,16.572,3.125,22.857,9.372c3.008,3.009,5.295,6.448,6.857,10.314\\n c1.561,3.867,2.344,7.971,2.344,12.314c0,4.381-0.773,8.486-2.314,12.313c-1.543,3.828-3.82,7.21-6.828,10.143\\n c-3.123,3.085-6.666,5.448-10.629,7.086c-3.961,1.638-8.057,2.457-12.285,2.457s-8.276-0.808-12.143-2.429\\n c-3.866-1.618-7.333-3.961-10.4-7.027c-3.067-3.066-5.4-6.524-7-10.372S5.5,32.767,5.5,28.5c0-4.229,0.809-8.295,2.428-12.2\\n c1.619-3.905,3.972-7.4,7.057-10.486C21.08-0.394,28.565-3.5,37.441-3.5z M37.557,2.272c-7.314,0-13.467,2.553-18.458,7.657\\n c-2.515,2.553-4.448,5.419-5.8,8.6c-1.354,3.181-2.029,6.505-2.029,9.972c0,3.429,0.675,6.734,2.029,9.913\\n c1.353,3.183,3.285,6.021,5.8,8.516c2.514,2.496,5.351,4.399,8.515,5.715c3.161,1.314,6.476,1.971,9.943,1.971\\n c3.428,0,6.75-0.665,9.973-1.999c3.219-1.335,6.121-3.257,8.713-5.771c4.99-4.876,7.484-10.99,7.484-18.344\\n c0-3.543-0.648-6.895-1.943-10.057c-1.293-3.162-3.18-5.98-5.654-8.458C50.984,4.844,44.795,2.272,37.557,2.272z M37.156,23.187\\n l-4.287,2.229c-0.458-0.951-1.019-1.619-1.685-2c-0.667-0.38-1.286-0.571-1.858-0.571c-2.856,0-4.286,1.885-4.286,5.657\\n c0,1.714,0.362,3.084,1.085,4.113c0.724,1.029,1.791,1.544,3.201,1.544c1.867,0,3.181-0.915,3.944-2.743l3.942,2\\n c-0.838,1.563-2,2.791-3.486,3.686c-1.484,0.896-3.123,1.343-4.914,1.343c-2.857,0-5.163-0.875-6.915-2.629\\n c-1.752-1.752-2.628-4.19-2.628-7.313c0-3.048,0.886-5.466,2.657-7.257c1.771-1.79,4.009-2.686,6.715-2.686\\n C32.604,18.558,35.441,20.101,37.156,23.187z M55.613,23.187l-4.229,2.229c-0.457-0.951-1.02-1.619-1.686-2\\n c-0.668-0.38-1.307-0.571-1.914-0.571c-2.857,0-4.287,1.885-4.287,5.657c0,1.714,0.363,3.084,1.086,4.113\\n c0.723,1.029,1.789,1.544,3.201,1.544c1.865,0,3.18-0.915,3.941-2.743l4,2c-0.875,1.563-2.057,2.791-3.541,3.686\\n c-1.486,0.896-3.105,1.343-4.857,1.343c-2.896,0-5.209-0.875-6.941-2.629c-1.736-1.752-2.602-4.19-2.602-7.313\\n c0-3.048,0.885-5.466,2.658-7.257c1.77-1.79,4.008-2.686,6.713-2.686C51.117,18.558,53.938,20.101,55.613,23.187z\\\"/>\\n </svg:g>\\n</svg>\\n\"","export default \"<svg version=\\\"1.0\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" x=\\\"0\\\" y=\\\"0\\\"\\n viewBox=\\\"0 0 25 50\\\"\\n (mouseenter)=\\\"showReference(true, $event)\\\" (mouseleave)=\\\"showReference(false, $event)\\\" (click)=\\\"changeLocation()\\\">\\n <defs>\\n <marker id=\\\"arrowhead\\\" markerWidth=\\\"10\\\" markerHeight=\\\"10\\\" refX=\\\"0\\\" refY=\\\"2\\\" orient=\\\"auto\\\">\\n <polygon points=\\\"0 0, 6 2, 0 4\\\"/>\\n </marker>\\n <line id=\\\"arrow\\\" x1=\\\"0\\\" x2=\\\"15\\\" y1=\\\"2\\\" y2=\\\"2\\\" stroke-width=\\\"1\\\" marker-end=\\\"url(#arrowhead)\\\"/>\\n </defs>\\n <rect x=\\\"0\\\" y=\\\"0\\\" height=\\\"100\\\" width=\\\"200\\\" class=\\\"mouse-pointer\\\" [ngClass]=\\\"{ 'unhighlighted' : !highlighted, 'highlighted': highlighted }\\\"/>\\n <use x=\\\"0\\\" y=\\\"3\\\" class=\\\"mouse-pointer\\\" xlink:href=\\\"#arrow\\\" stroke=\\\"black\\\"/>\\n</svg>\\n\"","export default \"<svg xmlns:svg=\\\"http://www.w3.org/2000/svg\\\"\\n xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n xmlns:xhtml=\\\"http://www.w3.org/1999/xhtml\\\"\\n [attr.viewBox]=\\\"viewBox\\\" [attr.height]=\\\"margin_height*local_zoom*zoomFactor\\\" [attr.width]=\\\"margin_width*local_zoom*zoomFactor\\\"\\n class = 'marginfield'>\\n <svg:g *ngFor=\\\"let line of lines\\\">\\n <foreignObject *ngIf=\\\"showReference == 'from' && line.continuesFrom\\\" [attr.x]=\\\"0\\\" [attr.y]=\\\"line.bottom-line_height+1\\\" [attr.height]=\\\"line_height\\\" [attr.width]=\\\"2*line_length\\\">\\n <xhtml:div><line-reference [showReference]=\\\"showReference\\\" [line]=\\\"line\\\"></line-reference></xhtml:div>\\n </foreignObject>\\n <svg:g *ngIf=\\\"line.number % 2 == 0 || \\n ((getHoverStatus(line) == SELECTED_STATUS || getHoverStatus(line) == HOVERED_STATUS) \\n && ((showReference != 'to' && line.continuesFrom) || (showReference == 'to' && line.continuesTo)))\\\">\\n <svg:rect [attr.x]=\\\"line_x-1\\\" [attr.y]=\\\"line.bottom-line_height+1\\\" \\n [attr.height]=\\\"line_height\\\" [attr.width]=\\\"line.number > 9 ? line_length + line_length/2 : line_length\\\"\\n [ngStyle]=\\\"assignStyle(line, hoveredWord, hoveredLine, getHoverStatus(line))\\\"\\n [ngClass]=\\\"{ \\n 'marginfield unhighlighted': getHoverStatus(line) != HOVERED_STATUS,\\n 'marginfield highlight': getHoverStatus(line) == HOVERED_STATUS }\\\" > </svg:rect>\\n <svg:text class=\\\"text\\\" [attr.x]=\\\"line_x\\\" [attr.y]=\\\"line.bottom\\\" [container]=\\\"container\\\"\\n [interactedObject]=\\\"line\\\">{{line.number}}</svg:text>\\n </svg:g>\\n <foreignObject *ngIf=\\\"showReference == 'to' && line.continuesTo\\\" [attr.x]=\\\"line_x+line_length\\\" [attr.y]=\\\"line.bottom-line_height+1\\\" \\n [attr.height]=\\\"line_height\\\" [attr.width]=\\\"2*line_length\\\">\\n <xhtml:div><line-reference [showReference]=\\\"showReference\\\" [line]=\\\"line\\\"></line-reference></xhtml:div>\\n </foreignObject>\\n </svg:g>\\n</svg>\\n\"","export default \"<div id=\\\"page\\\" *ngIf=\\\"first_image\\\" [style.height.px]=\\\"max_height\\\" [ngStyle]=\\\"{ 'overflow': hasColumnStyle() ? 'auto': 'hidden' }\\\">\\n <div #firstContainer [ngClass]=\\\"{ 'inline': hasColumnStyle(), 'breakline': !hasColumnStyle()}\\\">\\n <div id=\\\"margin\\\">\\n <margin-field [text_field]=\\\"first_image.text_field\\\" [lines]=\\\"first_lines\\\" [assignStyle]=\\\"assignStyle\\\"\\n [container]=\\\"firstContainer\\\" [zoomFactor]=\\\"zoomFactor\\\" [max_height]=\\\"max_height\\\" \\n [max_width]=\\\"max_width\\\"\\n [selectedLines]=\\\"selectedLines\\\" [showReference]=\\\"showReferenceLeft\\\"></margin-field>\\n </div>\\n <div class=\\\"gap\\\"></div>\\n <div id=\\\"textfield\\\">\\n <text-field [identity]=\\\"first_textfield_id\\\" [container]=\\\"firstContainer\\\"\\n [image]=\\\"first_image\\\" [findText]=\\\"findText\\\" [words]=\\\"first_words\\\" [zoomFactor]=\\\"zoomFactor\\\" \\n [preferPrimaryUrl]=\\\"preferPrimaryUrl\\\" [max_height]=\\\"max_height\\\" \\n [max_width]=\\\"max_width\\\" \\n [selectedWords]=\\\"selectedWords\\\" [selectedLines]=\\\"selectedLines\\\"\\n [foreign_texts]=\\\"first_foreign_texts\\\" [configuration]=\\\"configuration\\\"\\n [assignClass]=\\\"assignClass\\\" [assignStyle]=\\\"assignStyle\\\"></text-field>\\n </div>\\n <div class=\\\"gap\\\" *ngIf=\\\"!(second_image && second_lines) || !hasColumnStyle()\\\"></div>\\n <div id=\\\"margin\\\" *ngIf=\\\"!(second_image && second_lines) || !hasColumnStyle()\\\">\\n <margin-field [text_field]=\\\"first_image.text_field\\\" [lines]=\\\"first_lines\\\" [assignStyle]=\\\"assignStyle\\\"\\n [max_width]=\\\"max_width\\\" [showReference]=\\\"showReferenceRight\\\"\\n [selectedLines]=\\\"selectedLines\\\" [zoomFactor]=\\\"zoomFactor\\\" [max_height]=\\\"max_height\\\"></margin-field>\\n </div>\\n </div>\\n <div #secondContainer [ngClass]=\\\"{ 'inline': hasColumnStyle(), 'breakline': !hasColumnStyle()}\\\">\\n <div class=\\\"gap\\\"></div>\\n <div id=\\\"margin\\\" *ngIf=\\\"second_image && second_lines && !hasColumnStyle()\\\">\\n <margin-field [text_field]=\\\"second_image.text_field\\\" [lines]=\\\"second_lines\\\" [assignStyle]=\\\"assignStyle\\\"\\n [max_width]=\\\"max_width\\\" \\n [container]=\\\"secondContainer\\\" [zoomFactor]=\\\"zoomFactor\\\" [max_height]=\\\"max_height\\\"\\n [selectedLines]=\\\"selectedLines\\\" [showReference]=\\\"showReferenceLeft\\\"></margin-field>\\n </div>\\n <div id=\\\"textfield\\\" *ngIf=\\\"second_image && second_words\\\">\\n <text-field [identity]=\\\"second_textfield_id\\\" [container]=\\\"secondContainer\\\"\\n [image]=\\\"second_image\\\" [findText]=\\\"findText\\\" [words]=\\\"second_words\\\" [zoomFactor]=\\\"zoomFactor\\\"\\n [max_width]=\\\"max_width\\\"\\n [preferPrimaryUrl]=\\\"preferPrimaryUrl\\\" [max_height]=\\\"max_height\\\" \\n [selectedWords]=\\\"selectedWords\\\" [selectedLines]=\\\"selectedLines\\\"\\n [foreign_texts]=\\\"second_foreign_texts\\\" [configuration]=\\\"configuration\\\"\\n [assignClass]=\\\"assignClass\\\" [assignStyle]=\\\"assignStyle\\\"></text-field>\\n </div>\\n <div class=\\\"gap\\\"></div>\\n <div id=\\\"margin\\\" *ngIf=\\\"second_image && second_lines\\\">\\n <margin-field [text_field]=\\\"second_image.text_field\\\" [lines]=\\\"second_lines\\\" [assignStyle]=\\\"assignStyle\\\"\\n [max_width]=\\\"max_width\\\" [showReference]=\\\"showReferenceRight\\\"\\n [selectedLines]=\\\"selectedLines\\\" [zoomFactor]=\\\"zoomFactor\\\" [max_height]=\\\"max_height\\\"></margin-field>\\n </div>\\n </div>\\n</div>\\n\"","export default \"<svg xmlns:svg=\\\"http://www.w3.org/2000/svg\\\"\\n xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n xmlns:xhtml=\\\"http://www.w3.org/1999/xhtml\\\"\\n [attr.viewBox]=\\\"viewBox\\\" [attr.height]=\\\"image_height*local_zoom*zoomFactor\\\" [attr.width]=\\\"image_width*local_zoom*zoomFactor\\\"\\n class = 'textfield' [attr.transform]='imageSpec.transform'>\\n <svg:g *ngIf=\\\"image\\\">\\n <!--\\n 'xlink:href' is deprecated in SVG2 (see https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/xlink:href).\\n However, some browsers do not support 'href', therefore we use both 'xlink:href' and 'href'.\\n -->\\n <image [attr.xlink:href]=\\\"imageSpec.URL\\\" [attr.href]=\\\"imageSpec.URL\\\" (load)=\\\"msg(imageSpec.URL)\\\" (error)=\\\"updateImageProperties(imageSpec.secondaryURL)\\\"\\n [attr.x]=\\\"imageSpec.x\\\" [attr.y]=\\\"imageSpec.y\\\" [attr.height]=\\\"imageSpec.height\\\" [attr.width]=\\\"imageSpec.width\\\"/>\\n <foreignObject *ngIf=\\\"image.copyright\\\" [ngStyle]=\\\"getCopyrightPosition((local_zoom*zoomFactor > 1) ? 32 : 32/(local_zoom*zoomFactor))\\\" \\n [attr.height]=\\\"(local_zoom*zoomFactor > 1) ? 32 : 32/(local_zoom*zoomFactor)\\\" \\n [attr.width]=\\\"(local_zoom*zoomFactor > 1) ? 32 : 32/(local_zoom*zoomFactor)\\\">\\n <xhtml:div><copyright [copyright]=\\\"image.copyright\\\" [dimension]=\\\"32/(local_zoom*zoomFactor)\\\"></copyright></xhtml:div>\\n </foreignObject>\\n </svg:g>\\n <svg:g *ngFor=\\\"let word of words\\\">\\n <svg:rect [interactedObject]=\\\"word\\\" [identity]=\\\"identity\\\" [container]=\\\"container\\\"\\n [ngStyle]=\\\"assignStyle(word, hoveredWord, hoveredLine, getHoverStatus(word))\\\"\\n [ngClass]=\\\"assignClass(word)\\\"\\n [attr.x]=\\\"word.left\\\" [attr.y]=\\\"word.top\\\" [attr.height]=\\\"word.height\\\" [attr.width]=\\\"word.width\\\" [attr.transform]=\\\"word.transform\\\">\\n <title *ngIf=\\\"!useExtendedTooltip && word\\\">{{ word.edited_text != null ? '> ' + word.edited_text : word.text }}</title>\\n </svg:rect>\\n <svg:g *ngIf=\\\"word.deletion_path\\\">\\n <path #pathRef [ngClass]=\\\"assignClass(word, pathRef.localName)\\\" [attr.d]=\\\"word.deletion_path\\\"/>\\n </svg:g>\\n </svg:g>\\n <svg:g *ngFor=\\\"let foreignText of foreign_texts\\\">\\n <svg:rect [interactedObject]=\\\"foreignText\\\"\\n [ngStyle]=\\\"assignStyle(foreignText, hoveredWord, hoveredLine, getHoverStatus(foreignText))\\\"\\n [ngClass]=\\\"assignClass(foreignText)\\\"\\n [attr.x]=\\\"foreignText.left\\\" [attr.y]=\\\"foreignText.top\\\" [attr.height]=\\\"foreignText.height\\\" [attr.width]=\\\"foreignText.width\\\" [attr.transform]=\\\"foreignText.transform\\\">\\n <title *ngIf=\\\"!useExtendedTooltip && foreignText\\\">{{foreignText.text}}, {{ foreignText.pen }}</title>\\n </svg:rect>\\n </svg:g>\\n</svg>\\n\"","export default \"<mat-card>\\n <mat-card-title>Das Editionsprojekt „Der späte Nietzsche“</mat-card-title>\\n <mat-card-content>\\n <div class=\\\"text\\\"> Das deutsch-schweizerische Editionsprojekt „Der späte\\n Nietzsche“ veröffentlicht Friedrich Nietzsches späten&nbsp;Nachlass erstmals\\n vollständig und manuskriptgetreu. Die Manuskriptedition erscheint seit 2001\\n in der von Giorgio Colli und Mazzino Montinari begründeten Kritischen\\n Gesamtausgabe der Werke als neunte Abteilung (KGW IX).&nbsp;Die Publikation der\\n noch ausstehenden sp&auml;ten Manuskripte aus den Archivmappen (Mp\\n XIV-XVIII) erfolgt zusätzlich in <i>dieser</i> an der Universität Basel\\n entwickelten und betreuten und durch den SNF gef&ouml;rderten digitalen\\n Edition.</div> <div class=\\\"text\\\">Mit der differenzierten Transkription und\\n digitalen Faksimilierung der Handschriften sowie einem editorischen\\n Nachbericht schließt KGW IX die Edition und Kommentierung des späten\\n Nachlasses in KGW ab. Vorrangige Absicht ist es, die Manuskripte in ihrer\\n Gesamtheit zu dokumentieren und den typischen Notatcharakter der\\n Aufzeichnungen aufzuzeigen. Statt in Form geglätteter, linearer Lesetexte\\n einen falsch-eindeutigen Text zu bieten, werden in einer diplomatischen\\n Umschrift alle Korrekturvorgänge, Streichungen,&nbsp;späteren\\n Überarbeitungen etc. wiedergegeben.&nbsp;Und statt die Aufzeichnungen in\\n eine chronologische Ordnung zu zwängen, die sich in vielen Fällen gar nicht\\n ermitteln lässt und darum immer auch editorisch willkürlich bleibt, wird die\\n ursprüngliche topologische Anordnung beibehalten. Die Manuskriptedition\\n ermöglicht dadurch neue Einsichten in den Schreibprozess und die Textgenese\\nbeim späten Nietzsche.</div>\\n <div class=\\\"text\\\">In der Onlineausgabe werden die Manuskripte mit sämtlichen\\n editorischen Informationen sowohl als Faksimile wie auch in der\\n differenzierten Transkription je einzeln und in synoptischer Darstellung\\n offen zugänglich sowie zitier-, durchsuch- und auswertbar sein.</div>\\n <div class=\\\"img\\\">\\n <img src=\\\"http://www.snf.ch/_layouts/15/Snf.Internet/Images/logo_de.gif\\\">\\n </div>\\n </mat-card-content>\\n</mat-card>\\n\"","export default \"<div #tooltipContainer id=\\\"page\\\">\\n <tln-crossref></tln-crossref>\\n <!--TODO: queryParams.fullscreen is string, not boolean! -->\\n <tool-tip [fullscreen]=\\\"queryParams.fullscreen == 'true'\\\" [menuOffsetPosition]=\\\"{x: 0, y: 100 }\\\" [container]=\\\"tooltipContainer\\\"></tool-tip>\\n</div>\\n\"","export default \"<div id=\\\"navi\\\">\\n <toggle-navigation></toggle-navigation>\\n <button mat-icon-button *ngIf=\\\"current_page && contextView == PAGE_CONTEXT_VIEW\\\" \\n [title]=\\\"'Alle Querverweise von ' + current_page.title + ' anzeigen'\\\" (click)=\\\"changeContext()\\\">\\n <mat-icon>auto_stories</mat-icon>\\n </button>\\n <button mat-icon-button *ngIf=\\\"current_page && contextView != PAGE_CONTEXT_VIEW\\\" \\n [title]=\\\"'Querverweise von ' + current_page.title + ' ' + current_page.number + ' anzeigen'\\\" (click)=\\\"changeContext()\\\">\\n <mat-icon>description</mat-icon>\\n </button>\\n <button *ngIf=\\\"current_page && contextView == PAGE_CONTEXT_VIEW\\\" \\n mat-icon-button [title]=\\\"current_page.title + ' ' + current_page.number +' in Seitenansicht anzeigen'\\\" (click)=\\\"setCurrentIri(current_page.id)\\\">\\n <mat-icon>chrome_reader_mode</mat-icon>\\n </button>\\n <zoom></zoom>\\n <search *ngIf=\\\"contextView == PAGE_CONTEXT_VIEW\\\"></search>\\n</div>\\n\\n\"","export default \"<mat-list role=\\\"list\\\" *ngIf=\\\"current_page_iri\\\">\\n <mat-list-item *ngFor=\\\"let geneticOrder of geneticOrders | filter:filterGeneticOrder\\\">\\n <button mat-button title=\\\"Querverweis anzeigen\\\" (click)=\\\"openCrossRef(geneticOrder)\\\">\\n <span *ngFor=\\\"let version of geneticOrder.textVersions; let i = index\\\">\\n <version-view [version]=\\\"version\\\" [current_iri]=\\\"current_page_iri\\\"></version-view>\\n <mat-icon *ngIf=\\\"i+1 < geneticOrder.textVersions.length\\\" [inline]=\\\"true\\\">east</mat-icon>\\n </span>\\n </button>\\n </mat-list-item>\\n</mat-list>\\n\"","export default \"<page-version-view [current_page_iri]=\\\"current_iri\\\" [geneticOrders]=\\\"geneticOrders\\\"></page-version-view>\\n\"","export default \"<div id=\\\"page\\\">\\n <crossref-navigation></crossref-navigation>\\n <div *ngIf=\\\"current_manuscript && contextView == MANUSCRIPT_CONTEXT_VIEW\\\" class=\\\"grid-container\\\">\\n <h2 class=\\\"page-crossref-title extra-space\\\">Querverweise von {{current_manuscript.title}}</h2>\\n <div *ngFor=\\\"let page of pagesWithGeneticOrder\\\">\\n <h4 class=\\\"page-crossref-title\\\">{{current_manuscript.title}} {{page.number}}</h4>\\n <tln-page-version-view [current_iri]=\\\"page.id\\\"></tln-page-version-view>\\n </div>\\n </div>\\n <div *ngIf=\\\"current_page && contextView == PAGE_CONTEXT_VIEW\\\">\\n <h3 class=\\\"page-crossref-title\\\">Querverweise von {{current_page.title}} {{current_page.number}}</h3>\\n <page-version-view [parentActivatedRoute]=\\\"activatedRoute.parent\\\" [current_page_iri]=\\\"current_page.id\\\" \\n [filterGeneticOrder]=\\\"current_genetic_order_iri\\\" [geneticOrders]=\\\"geneticOrders\\\"></page-version-view>\\n </div>\\n <div class=\\\"preview\\\" *ngIf=\\\"current_page && textVersions.length > 0 && contextView == PAGE_CONTEXT_VIEW\\\" [style.width.px]=\\\"previewWidth\\\">\\n <h4 *ngIf=\\\"geneticOrders.length > 1\\\">Ausgew&auml;hlte Querverweise</h4>\\n <div *ngFor=\\\"let version of textVersions; let i = index\\\">\\n <button mat-button [ngClass]=\\\"{'highlight': selectedTextVersions.indexOf(version) > -1 }\\\"\\n [title]=\\\"getButtonTitle(version)\\\" (click)=\\\"addOrRemove(version)\\\">\\n <version-view [version]=\\\"version\\\"></version-view>\\n <mat-icon *ngIf=\\\"selectedTextVersions.indexOf(version) > -1\\\" [inline]=\\\"true\\\">close</mat-icon>\\n <mat-icon *ngIf=\\\"selectedTextVersions.indexOf(version) == -1\\\" [inline]=\\\"true\\\">chevron_right</mat-icon>\\n </button>\\n <div>\\n <mat-icon *ngIf=\\\"i+1 < textVersions.length\\\">south</mat-icon>\\n </div>\\n </div>\\n </div>\\n <div *ngIf=\\\"current_page && contextView == PAGE_CONTEXT_VIEW\\\" class=\\\"text\\\" [style.left.px]=\\\"previewWidth\\\" [style.width.px]=\\\"max_width+margin_width\\\">\\n <div class=\\\"page-view\\\" *ngFor=\\\"let version of selectedTextVersions\\\" [style.height.px]=\\\"each_version_height\\\">\\n <div class=\\\"text-navi\\\">\\n <button [title]=\\\"getButtonTitle(version)\\\" class=\\\"close-text\\\" mat-button (click)=\\\"addOrRemove(version)\\\">\\n <version-view [version]=\\\"version\\\"></version-view>\\n <mat-icon *ngIf=\\\"selectedTextVersions.indexOf(version) > -1\\\" [inline]=\\\"true\\\">close</mat-icon>\\n </button>\\n </div>\\n <div *ngFor=\\\"let textUnity of version.textUnities\\\">\\n <span class=\\\"mat-button default-mouse page-navi\\\">\\n <span>{{version.title}}, {{textUnity.number}}<span *ngIf=\\\"textUnity.startLine\\\">, {{textUnity.startLine}}-{{textUnity.endLine}}</span>\\n </span>\\n <open-in-viewer *ngIf=\\\"textUnity.hasFaksimileImage\\\"\\n [routerInformation]=\\\"{ title: version.title, number: textUnity.number, \\n page: textUnity.belongsToPage ? textUnity.belongsToPage : textUnity.id,\\n manuscript: version.manuscript, launchExternally: false \\n }\\\"></open-in-viewer>\\n <open-in-viewer *ngIf=\\\"textUnity.hasFaksimileImage\\\"\\n [routerInformation]=\\\"{ title: version.title, number: textUnity.number,\\n page: textUnity.belongsToPage ? textUnity.belongsToPage : textUnity.id,\\n manuscript: version.manuscript, launchExternally: true\\n }\\\"></open-in-viewer>\\n </span>\\n <div *ngIf=\\\"!textUnity.belongsToPage\\\">\\n <tln-page-view \\n [page]=\\\"textUnity.id\\\"\\n [multiInstanceMode]=\\\"true\\\"\\n [selectedViewOption]=\\\"selectedViewOption\\\"\\n [selectedLines]=\\\"selectedLines\\\"\\n [queryService]=\\\"queryService\\\" [preferPrimaryUrl]=\\\"preferPrimaryUrl\\\" \\n [max_width]=\\\"max_width\\\"></tln-page-view>\\n </div>\\n <div *ngIf=\\\"textUnity.belongsToPage\\\">\\n <tln-page-view *ngIf=\\\"textUnity.belongsToPage\\\"\\n [multiInstanceMode]=\\\"true\\\"\\n [startLine]=\\\"textUnity.startLineIri\\\"\\n [endLine]=\\\"textUnity.endLineIri\\\"\\n [page]=\\\"textUnity.belongsToPage\\\"\\n [selectedViewOption]=\\\"selectedViewOption\\\"\\n [selectedLines]=\\\"selectedLines\\\"\\n [queryService]=\\\"queryService\\\" [preferPrimaryUrl]=\\\"preferPrimaryUrl\\\" \\n [max_width]=\\\"max_width\\\" ></tln-page-view>\\n </div>\\n </div>\\n <div class=\\\"external\\\" [style.width.px]=\\\"max_width\\\" *ngIf=\\\"version.textUnities.length == 0 && version.extUrl\\\">\\n <a mat-button [href]=\\\"version.extUrl\\\" target=\\\"_new\\\">Text auf nietzschesource.org <mat-icon>link</mat-icon></a>\\n </div>\\n </div>\\n </div>\\n</div>\\n\"","export default \"<span *ngIf=\\\"version && version.title\\\">\\n {{version.title}}<span *ngIf=\\\"version.textUnities.length > 0\\\">,</span>\\n <span [ngClass]=\\\"{ 'highlight': current_iri != null && current_iri != undefined && (textUnity.id == current_iri || textUnity.belongsToPage == current_iri) }\\\"\\n *ngFor=\\\"let textUnity of version.textUnities; let j = index\\\">\\n {{textUnity.number}}<span *ngIf=\\\"textUnity.startLine && textUnity.endLine\\\">, {{textUnity.startLine}}-{{textUnity.endLine}}</span>\\n <span *ngIf=\\\"textUnity.startLine && j+1 < version.textUnities.length\\\">;</span>\\n <span *ngIf=\\\"!textUnity.startLine && j+1 < version.textUnities.length\\\">,</span>\\n </span>\\n</span>\\n\"","export default \"<div id=\\\"navi\\\">\\n <toggle-navigation></toggle-navigation>\\n <zoom></zoom>\\n</div>\\n\"","export default \"<div id=\\\"page\\\" #tooltipContainer>\\n <fulltext-navigation></fulltext-navigation>\\n <div class=\\\"search\\\" [style.width.px]=\\\"previewWidth\\\">\\n <mat-card>\\n <mat-card-header>\\n <mat-card-title>Suche<span *ngIf=\\\"searchTerm\\\">: <span class=\\\"small-grey\\\">{{searchTerm}}</span></span></mat-card-title>\\n </mat-card-header>\\n <mat-card-content>\\n <mat-form-field class=\\\"full-width\\\">\\n <mat-label>Text</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"searchTerm\\\" (keydown.enter)=\\\"search()\\\" (keydown.esc)=\\\"clearFindText()\\\">\\n <button mat-button *ngIf=\\\"searchTerm\\\" matSuffix mat-icon-button aria-label=\\\"Clear\\\" (click)=\\\"clearFindText()\\\">\\n <mat-icon>close</mat-icon>\\n </button>\\n </mat-form-field>\\n <button mat-button (click)=\\\"search()\\\"><mat-icon>search</mat-icon></button>\\n <mat-spinner *ngIf=\\\"startSearch && !resultsReceived && searchTerm\\\"></mat-spinner>\\n <div *ngIf=\\\"resultsReceived && searchTerm\\\">\\n {{ pages | resultPipe }}\\n </div>\\n <mat-paginator *ngIf=\\\"!fullscreen && pages.length > resultLength\\\" \\n [length]=\\\"pages.length\\\"\\n [pageSize]=\\\"resultLength\\\"\\n [pageIndex]=\\\"resultIndex\\\"\\n (page)=\\\"showResults($event)\\\">\\n </mat-paginator>\\n </mat-card-content>\\n </mat-card>\\n </div>\\n <div *ngIf=\\\"pages.length > 0\\\" class=\\\"text\\\" [style.left.px]=\\\"previewWidth+20\\\" [style.width.px]=\\\"max_width+margin_width-25\\\">\\n <div class=\\\"page-view\\\" *ngFor=\\\"let page of pages | pageResultFilter:resultRange\\\">\\n <span class=\\\"mat-button default-mouse page-navi\\\">\\n <span>{{page.title}}, {{page.number}}</span>\\n <open-in-viewer [routerInformation]=\\\"{ title: page.title, number: page.number, page: page.id,\\n manuscript: page.manuscript, launchExternally: false }\\\"></open-in-viewer>\\n <open-in-viewer [routerInformation]=\\\"{ title: page.title, number: page.number, page: page.id,\\n manuscript: page.manuscript, launchExternally: true }\\\"></open-in-viewer>\\n </span>\\n <tln-page-view *ngFor=\\\"let result of page.results\\\"\\n [page]=\\\"page.id\\\"\\n [multiInstanceMode]=\\\"true\\\"\\n [selectedViewOption]=\\\"selectedViewOption\\\"\\n [startLine]=\\\"result.getStartLine()\\\"\\n [endLine]=\\\"result.getEndLine()\\\"\\n [selectedWords]=\\\"result.getWords()\\\"\\n [max_width]=\\\"max_width\\\"></tln-page-view>\\n </div>\\n <mat-paginator *ngIf=\\\"pages.length > resultLength\\\" \\n [length]=\\\"pages.length\\\"\\n [pageSize]=\\\"resultLength\\\"\\n [pageIndex]=\\\"resultIndex\\\"\\n (page)=\\\"showResults($event)\\\">\\n </mat-paginator>\\n </div>\\n <tool-tip [container]=\\\"tooltipContainer\\\" [menuOffsetPosition]=\\\"{x: 0, y: 0 }\\\"></tool-tip>\\n</div>\\n\"","export default \"<div *ngIf=\\\"current_page\\\">\\n <h3>{{current_page.title}} {{current_page.number}}:</h3>\\n <h4 mat-subheader>Querverweise:</h4>\\n <page-version-view [bottomSheetRef]=\\\"bottomSheetRef\\\" [parentActivatedRoute]=\\\"data.parentActivatedRoute\\\"\\n [current_page_iri]=\\\"current_page.id\\\" [geneticOrders]=\\\"geneticOrders\\\"></page-version-view>\\n</div>\\n\"","export default \"<toggle-navigation></toggle-navigation>\\n<mat-card *ngIf=\\\"current_manuscript\\\">\\n <mat-card-header>\\n <mat-card-title *ngIf=\\\"current_manuscript.archivalicSignature\\\">{{current_manuscript.archivalicSignature}}</mat-card-title>\\n <mat-card-title *ngIf=\\\"!current_manuscript.archivalicSignature\\\">{{current_manuscript.title}}</mat-card-title>\\n <mat-card-subtitle *ngIf=\\\"current_manuscript.gsaSignature\\\">GSA-Signatur {{current_manuscript.gsaSignature}}</mat-card-subtitle>\\n <!--<mat-card-subtitle>{{current_manuscript.type}}</mat-card-subtitle>-->\\n <img mat-card-avatar *ngIf=\\\"current_manuscript.thumbImage\\\" [src]=\\\"current_manuscript.thumbImage\\\"/>\\n </mat-card-header>\\n <mat-card-content *ngIf=\\\"earlierDescriptions.length > 0\\\">\\n <h4 mat-subheader>Fr&uuml;here Manuskriptbeschreibungen</h4>\\n <table>\\n <tr *ngFor=\\\"let earlierDescription of earlierDescriptions\\\">\\n <td class=\\\"author\\\">{{earlierDescription.author}}:</td>\\n <td class=\\\"text\\\">\\n <span *ngIf=\\\"earlierDescription.markups.length == 0\\\">{{earlierDescription.text}}</span>\\n <NgxMat-NgxMatStandoffMarkup *ngIf=\\\"earlierDescription.markups.length > 0\\\"\\n [cssDef]=\\\"cssDef\\\" [markupSettings]=\\\"mySettings\\\" \\n [textToStyle]=\\\"earlierDescription.text\\\" \\n [posStyleMarkup]=\\\"earlierDescription.markups\\\"></NgxMat-NgxMatStandoffMarkup>\\n {{earlierDescription.citation}}\\n </td>\\n </tr>\\n </table>\\n </mat-card-content>\\n <mat-card-content *ngIf=\\\"manuscriptDescription\\\">\\n <h4 mat-subheader *ngIf=\\\"current_manuscript.type == 'Mappe'\\\">Beschreibung der Archivmappe</h4>\\n <h4 mat-subheader *ngIf=\\\"current_manuscript.type != 'Mappe'\\\">Heftbeschreibung</h4>\\n <p class=\\\"text\\\">\\n <span *ngIf=\\\"manuscriptDescription.markups.length == 0\\\">{{manuscriptDescription.text}}</span>\\n <NgxMat-NgxMatStandoffMarkup *ngIf=\\\"manuscriptDescription.markups.length > 0\\\"\\n [cssDef]=\\\"cssDef\\\" [markupSettings]=\\\"mySettings\\\" \\n [textToStyle]=\\\"manuscriptDescription.text\\\" \\n [posStyleMarkup]=\\\"manuscriptDescription.markups\\\"></NgxMat-NgxMatStandoffMarkup>\\n </p>\\n </mat-card-content>\\n <mat-card-content *ngIf=\\\"current_manuscript.archivalicSignature && current_manuscript.archivalicSignature != current_manuscript.title\\\">\\n <h4 mat-subheader>In {{current_manuscript.title}} wiedergegebene Manuskriptseiten</h4>\\n <span *ngFor=\\\"let page of pages; let i = index\\\">{{page.number}}\\n <open-in-viewer class=\\\"nospace\\\" [routerInformation]=\\\"{ title: current_manuscript.title, number: page.number, page: page.id }\\\"></open-in-viewer>\\n <open-in-viewer class=\\\"nospace\\\" [routerInformation]=\\\"{ title: current_manuscript.title, number: page.number, \\n page: page.id, launchExternally: true }\\\"></open-in-viewer>\\n <span *ngIf=\\\"i+1 < pages.length\\\">, </span></span>\\n </mat-card-content>\\n <mat-card-content *ngIf=\\\"reconstructedKonvolut\\\">\\n <h4 mat-subheader>Konvolute, Rekonstruktionen</h4>\\n <p class=\\\"text\\\" *ngIf=\\\"reconstructedKonvolut.description\\\">{{reconstructedKonvolut.description}}</p>\\n <!-- TODO: WAITING FOR DATA\\n <span *ngFor=\\\"let page of reconstructedKonvolut.pages; let i = index\\\">{{page.number}}\\n <button *ngIf=\\\"page.title\\\" mat-icon-button class=\\\"nospace\\\" \\n [title]=\\\"page.title + ' ' + page.number + ' in Seitenansicht &ouml;ffnen'\\\" \\n (click)=\\\"openInViewer(page.id)\\\"><mat-icon [inline]=\\\"true\\\">launch</mat-icon></button>\\n <span *ngIf=\\\"i+1 < reconstructedKonvolut.pages.length\\\">, </span></span>-->\\n </mat-card-content>\\n</mat-card>\\n\"","export default \"<button *ngIf=\\\"!launch\\\" mat-icon-button (click)=\\\"openInViewer()\\\" \\n [title]=\\\"page.title + ' ' + page.number + ' in Seitenansicht &ouml;ffnen'\\\" class=\\\"icon-button\\\">\\n <mat-icon [inline]=\\\"true\\\">chrome_reader_mode</mat-icon>\\n</button>\\n<button *ngIf=\\\"launch\\\" mat-icon-button (click)=\\\"openInViewer()\\\" \\n [title]=\\\"page.title + ' ' + page.number + ' in neuem Tab in Seitenansicht &ouml;ffnen'\\\" class=\\\"icon-button\\\">\\n <mat-icon [inline]=\\\"true\\\">launch</mat-icon>\\n</button>\\n\"","export default \"<mat-form-field class=\\\"search\\\">\\n <mat-label>Suche</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"findText\\\" (ngModelChange)=\\\"updateParams()\\\" (keydown.esc)=\\\"clearFindText()\\\">\\n <button mat-button *ngIf=\\\"findText\\\" matSuffix mat-icon-button aria-label=\\\"Clear\\\" (click)=\\\"clearFindText()\\\">\\n <mat-icon>close</mat-icon>\\n </button>\\n <button mat-button matSuffix mat-icon-button title=\\\"Volltextsuche\\\" aria-label=\\\"Volltextsuche\\\" (click)=\\\"openFulltextSearch()\\\">\\n <mat-icon>search</mat-icon>\\n </button>\\n</mat-form-field>\\n\\n\"","export default \"<button mat-button [title]=\\\"navBarOpenState ? 'Navigationsleiste aus' : 'Navigationsleiste ein'\\\" (click)=\\\"toggleNavDrawer()\\\">\\n <mat-icon class=\\\"mat-accent\\\">{{ navBarOpenState ? 'chevron_left' : 'chevron_right' }}</mat-icon>\\n</button>\\n<button mat-icon-button [title]=\\\"fullscreen ? 'Vollbild aus' : 'Vollbild ein'\\\" (click)=\\\"toggleFullscreen()\\\">\\n <mat-icon>{{ fullscreen ? 'fullscreen_exit' : 'fullscreen'}}</mat-icon>\\n</button>\\n\\n\"","export default \"<button mat-icon-button class=\\\"zoom zoom-in\\\" [title]=\\\"{ 'zoomFactor': zoomFactor, 'changeValue': increment } | zoomTitle\\\" \\n (click)=\\\"setZoomFactor(zoomFactor+increment)\\\"><mat-icon>zoom_in</mat-icon></button>\\n<button mat-icon-button [ngClass]=\\\"{ 'zoom-in': zoomFactor < 1, 'zoom-out': zoomFactor > 1 }\\\" \\n title=\\\"Zoom zur&uuml;cksetzen\\\" (click)=\\\"setZoomFactor(1)\\\">{{zoomFactor * 100 | number:'1.0-0'}}%</button>\\n<button mat-icon-button class=\\\"zoom zoom-out\\\" [title]=\\\"{ 'zoomFactor': zoomFactor, 'changeValue': decrement} | zoomTitle\\\"\\n (click)=\\\"setZoomFactor(zoomFactor+decrement)\\\"><mat-icon>zoom_out</mat-icon></button>\\n\\n\"","export default \"<div #tooltipContainer>\\n <page-view [assignClass]=\\\"assignClass\\\" [assignStyle]=\\\"assignStyle\\\" \\n [dontShowReference]=\\\"dontShowReference\\\"\\n [configuration]=\\\"configuration\\\" [max_height]=\\\"max_height\\\"\\n [max_width]=\\\"max_width\\\"\\n [findText]=\\\"findText\\\" [first_image]=\\\"image\\\" \\n [first_lines]=\\\"lines\\\" [first_words]=\\\"words\\\" \\n [first_foreign_texts]=\\\"foreignTexts\\\" [second_foreign_texts]=\\\"second_foreignTexts\\\"\\n [second_image]=\\\"second_image\\\" [second_lines]=\\\"second_lines\\\" [second_words]=\\\"second_words\\\" \\n [selectedWords]=\\\"selectedWords\\\" [selectedLines]=\\\"selectedLines\\\"\\n [preferPrimaryUrl]=\\\"preferPrimaryUrl\\\" [zoomFactor]=\\\"zoomFactor\\\"></page-view>\\n</div>\\n\"","export default \"<div id=\\\"navi\\\">\\n <toggle-navigation></toggle-navigation>\\n <button *ngIf=\\\"!current_page || !manuscript_unity\\\" mat-icon-button disabled=\\\"true\\\"><mat-icon>first_page</mat-icon></button>\\n <button *ngIf=\\\"current_page && manuscript_unity\\\"\\n mat-icon-button [title]=\\\"getPageTitle(manuscript_unity.firstPage)\\\" (click)=\\\"setCurrentIri(manuscript_unity.firstPage.id)\\\" \\n [disabled]=\\\"updating || manuscript_unity.firstPage.id == current_page.id\\\">\\n <mat-icon>first_page</mat-icon>\\n </button>\\n <button *ngIf=\\\"!current_page || !manuscript_unity\\\" mat-icon-button disabled=\\\"true\\\"><mat-icon>chevron_left</mat-icon></button>\\n <button *ngIf=\\\"current_page && manuscript_unity\\\" mat-icon-button [title]=\\\"getPageTitle(current_page.previous, manuscript_unity.numberOfPages)\\\" \\n (click)=\\\"setCurrentIri(current_page.previous.id)\\\" [disabled]=\\\"updating || !current_page.previous\\\">\\n <mat-icon>chevron_left</mat-icon>\\n </button>\\n <mat-form-field appearance=\\\"legacy\\\">\\n <mat-select [(value)]=\\\"selectedViewOption\\\" (selectionChange)=\\\"updateParams()\\\">\\n <mat-option *ngFor=\\\"let viewOption of viewOptions\\\" [value]=\\\"viewOption\\\">{{viewOption}}</mat-option>\\n </mat-select>\\n </mat-form-field>\\n <zoom></zoom>\\n <span class=\\\"mat-button min-width default-mouse\\\" *ngIf=\\\"!current_page\\\">Loading ...</span>\\n <span class=\\\"mat-button min-width default-mouse\\\" *ngIf=\\\"geneticOrders.length == 0 && current_page\\\">{{current_page.title}} {{current_page.number}}</span>\\n <button mat-button class=\\\"min-width\\\" title=\\\"Seiteninformationen\\\" (click)=\\\"showInformation()\\\" *ngIf=\\\"geneticOrders.length > 0 && current_page\\\">\\n {{current_page.title}} {{current_page.number}}\\n <mat-icon inline=\\\"true\\\">info</mat-icon>\\n </button>\\n <search></search>\\n <button *ngIf=\\\"!current_page || !manuscript_unity\\\" mat-icon-button disabled=\\\"true\\\"><mat-icon>chevron_right</mat-icon></button>\\n <button *ngIf=\\\"current_page && manuscript_unity\\\" mat-icon-button [title]=\\\"getPageTitle(current_page.next, manuscript_unity.numberOfPages)\\\" \\n (click)=\\\"setCurrentIri(current_page.next.id)\\\" [disabled]=\\\"updating || !current_page.next\\\">\\n <mat-icon>chevron_right</mat-icon>\\n </button>\\n <button *ngIf=\\\"!current_page || !manuscript_unity\\\" mat-icon-button disabled=\\\"true\\\"><mat-icon>last_page</mat-icon></button>\\n <button *ngIf=\\\"manuscript_unity && current_page\\\" \\n mat-icon-button [title]=\\\"getPageTitle(manuscript_unity.lastPage)\\\" (click)=\\\"setCurrentIri(manuscript_unity.lastPage.id)\\\" \\n [disabled]=\\\"updating || manuscript_unity.lastPage.id == current_page.id\\\">\\n <mat-icon>last_page</mat-icon>\\n </button>\\n</div>\\n\\n\"","export default \"<div #myElement *ngIf=\\\"useExtendedTooltip && tooltipPosition.visible && hasAnyContent()\\\"\\n [ngClass]=\\\"[ 'tooltip', currentKey ]\\\" [style.top.px]=\\\"getTop(currentKey)\\\" [style.left.px]=\\\"getLeft(myElement.offsetWidth)\\\">\\n <div *ngIf=\\\"word\\\">\\n <div *ngIf=\\\"debug\\\">\\n {{tooltipPosition.clientY+yOffset}}, {{topOffset}}\\n <!--<div *ngFor=\\\"let markup of positionalStyleMarkups\\\">\\n <div ><span>{{markup.startIndex}} </span><span>{{markup.endIndex}} </span><span>{{markup.cssStyleTag}}</span></div>\\n </div>-->\\n </div>\\n <div class=\\\"earlier-version\\\" *ngIf=\\\"earlier_version\\\"><i>0:</i> {{earlier_version.text}}</div>\\n <div class=\\\"text\\\" >\\n <span *ngIf=\\\"earlier_version\\\"><i>1:</i>&nbsp;</span>\\n <span *ngIf=\\\"!positionalStyleMarkups || positionalStyleMarkups.length == 0\\\" [ngClass]=\\\"{'deleted': word.deleted}\\\">{{word.text}}</span>\\n <NgxMat-NgxMatStandoffMarkup *ngIf=\\\"positionalStyleMarkups && positionalStyleMarkups.length > 0\\\" \\n [cssDef]=\\\"cssDef\\\" [markupSettings]=\\\"mySettings\\\"\\n [textToStyle]=\\\"word.text\\\" [posStyleMarkup]=\\\"positionalStyleMarkups\\\"></NgxMat-NgxMatStandoffMarkup>\\n </div>\\n <span class=\\\"edited_text\\\" *ngIf=\\\"word.edited_text\\\">&gt;{{word.edited_text}}</span>\\n <div class=\\\"overwritten\\\" *ngIf=\\\"overwrittenWord\\\"><i>&uuml;berschreibt: </i>{{overwrittenWord.text}}</div>\\n </div>\\n <div *ngIf=\\\"foreignHand\\\">\\n {{foreignHand.text}}, <i>{{foreignHand.pen}}</i>\\n </div>\\n <!--<div *ngIf=\\\"copyright\\\" class=\\\"blackfg\\\" (click)=\\\"copyright = null\\\">\\n <div [innerHTML]=\\\"copyright.text\\\"></div>\\n <div *ngIf=\\\"copyright.originalUrl\\\">URL: <a target=\\\"_new\\\" [href]=\\\"copyright.originalUrl\\\">{{copyright.originalUrl}}</a></div>\\n <div> Lizenz: \\n <a *ngIf=\\\"copyright.licenseTextUrl\\\" target=\\\"_new\\\" [href]=\\\"copyright.licenseTextUrl\\\">{{copyright.license}} </a>\\n <span *ngIf=\\\"!copyright.licenseTextUrl\\\">{{copyright.license}}</span>\\n </div>\\n </div>-->\\n <div *ngIf=\\\"continuation\\\">\\n <span *ngIf=\\\"continuation.show == 'to'\\\"><i>{{continuation.source.line.number}}</i>&nbsp;nach&nbsp;</span>\\n <i>\\n <span *ngIf=\\\"continuation.source.manuscript\\\">{{continuation.reference.manuscript.title}} </span>\\n <span *ngIf=\\\"continuation.source.page\\\">{{continuation.reference.page.number}}, </span>\\n {{continuation.reference.line.number}}\\n </i>\\n <span *ngIf=\\\"continuation.show != 'to'\\\">&nbsp;nach&nbsp;<i>{{continuation.source.line.number}}</i></span>\\n </div>\\n <div *ngIf=\\\"continuation && continuation_words.length > 0\\\">\\n <span *ngIf=\\\"continuation.show == 'to'\\\">&rarr; </span>\\n <span *ngFor=\\\"let word of continuation_words\\\">\\n {{ (word.earlier_version) ? '[0:' + word.earlier_version + '|1:' : ''}}\\n <NgxMat-NgxMatStandoffMarkup [cssDef]=\\\"cssDef\\\" [markupSettings]=\\\"mySettings\\\"\\n [textToStyle]=\\\"word.text\\\" [posStyleMarkup]=\\\"word.markups\\\"></NgxMat-NgxMatStandoffMarkup>\\n {{ (word.earlier_version) ? ']' : ''}}</span>\\n <span *ngIf=\\\"continuation.show != 'to'\\\">&rarr; </span>\\n </div>\\n</div>\\n\"","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export default \"\\nbody {\\n padding-right: 50px;\\n}\\n\\n.rect, .rect.unhovered {\\n opacity:0.0;\\n}\\n\\n.rect:hover, .rect.hovered {\\n opacity:0.34000017;\\n fill:#e2fa00;\\n fill-opacity:0.98431373\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtHQUNHLG1CQUFtQjtBQUN0Qjs7QUFFQTtFQUNFLFdBQVc7QUFDYjs7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixZQUFZO0VBQ1o7QUFDRiIsImZpbGUiOiJhcHAuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxuYm9keSB7XG4gICBwYWRkaW5nLXJpZ2h0OiA1MHB4O1xufVxuXG4ucmVjdCwgLnJlY3QudW5ob3ZlcmVkIHtcbiAgb3BhY2l0eTowLjA7XG59XG4ucmVjdDpob3ZlciwgLnJlY3QuaG92ZXJlZCB7XG4gIG9wYWNpdHk6MC4zNDAwMDAxNztcbiAgZmlsbDojZTJmYTAwO1xuICBmaWxsLW9wYWNpdHk6MC45ODQzMTM3M1xufVxuIl19 */\"","import {Component, OnInit} from '@angular/core';\nimport { OverlayContainer} from '@angular/cdk/overlay';\nimport {Subscription} from 'rxjs';\nimport {ActivatedRoute, Params} from '@angular/router';\ndeclare var require: any;\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent implements OnInit {\n title = 'Digitale Manuskriptedition: Der späte Nietzsche';\n theme = 'standard-theme';\n version: string;\n\n fullScreen: string;\n queryParamSub: Subscription;\n\n constructor(private overlayContainer: OverlayContainer, private activatedRoute: ActivatedRoute) {\n this.version = require( '../../package.json').version;\n }\n\n ngOnInit() {\n this.overlayContainer.getContainerElement().classList.add(this.theme);\n this.queryParamSub = this.activatedRoute.queryParams.subscribe( (queryParams: Params ) => {\n this.fullScreen = queryParams.fullscreen;\n });\n\n }\n\n onThemeChange() {\n this.overlayContainer.getContainerElement().classList.add(this.theme);\n }\n}\n","import { AppComponent } from './app.component';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport { NgModule } from '@angular/core';\nimport {MatCardModule} from '@angular/material/card';\nimport { MatToolbarModule, MatButtonModule} from '@angular/material';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport {MatIconModule} from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule} from '@angular/material/menu';\nimport { MatSidenavModule } from '@angular/material';\nimport { MatSelectModule } from '@angular/material/select';\nimport {MatTabsModule} from '@angular/material/tabs';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { QueryService } from './services/query.service';\nimport {routing} from './app.routing';\nimport {HomeComponent} from './home.component';\nimport { ManuscriptViewComponentComponent } from './manuscript-view-component/manuscript-view-component.component';\nimport { ContentViewTabComponentComponent } from './content-view-tab-component/content-view-tab-component.component';\nimport { RhizomeViewComponentComponent } from './rhizome-view-component/rhizome-view-component.component';\nimport { MainMenuComponentComponent } from './main-menu-component/main-menu-component.component';\nimport { PageViewWrapperComponent } from './page-view-wrapper-component/page-view-wrapper.component';\nimport { NavigationListComponentComponent } from './navigation-list-component/navigation-list-component.component';\nimport {NavigationServiceService} from './services/navigation-service.service';\nimport { TlnEditionModule} from './tln-edition/tln-edition.module';\nimport { NavTree } from './navigation-list-component/navtree-directive.directive';\nimport { LazyImageLoadDirectiveDirective } from './content-view-tab-component/lazy-image-load-directive.directive';\nimport { ImpressumComponent } from './impressum.component';\nimport { ProjectComponent } from './project.component';\n\n\n@NgModule({\n declarations: [\n AppComponent,\n HomeComponent,\n ManuscriptViewComponentComponent,\n ContentViewTabComponentComponent,\n RhizomeViewComponentComponent,\n MainMenuComponentComponent,\n PageViewWrapperComponent,\n NavigationListComponentComponent,\n NavTree,\n LazyImageLoadDirectiveDirective,\n ImpressumComponent,\n ProjectComponent\n ],\n imports: [\n routing,\n BrowserModule,\n BrowserAnimationsModule,\n CommonModule,\n HttpClientModule,\n MatButtonModule,\n MatCardModule,\n MatExpansionModule,\n MatIconModule,\n MatListModule,\n MatMenuModule,\n MatSelectModule, // for themes selection\n MatSidenavModule,\n MatTabsModule,\n MatToolbarModule,\n FormsModule,\n TlnEditionModule,\n ReactiveFormsModule\n ],\n providers: [ NavigationServiceService, QueryService ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import {RouterModule, Routes} from '@angular/router';\nimport {HomeComponent} from './home.component';\nimport {ImpressumComponent} from './impressum.component';\nimport {ProjectComponent} from './project.component';\nimport {ContentViewTabComponentComponent} from './content-view-tab-component/content-view-tab-component.component';\nimport {CONTENT_ROUTES} from './content-view-tab-component/content-view-routes';\nimport { CONTENT_VIEW_ROUTE, DOCUMENTATION_ROUTE, HOME_ROUTE, IMPRESSUM_ROUTE, PROJECT_ROUTE } from './constants';\n\nconst APP_ROUTES: Routes = [\n {path: '', redirectTo: HOME_ROUTE, pathMatch: 'prefix'},\n {path: HOME_ROUTE, component: HomeComponent},\n {path: CONTENT_VIEW_ROUTE, component: ContentViewTabComponentComponent, children: CONTENT_ROUTES},\n {path: PROJECT_ROUTE, component: ProjectComponent},\n {path: IMPRESSUM_ROUTE, component: ImpressumComponent},\n {path: '**', redirectTo: HOME_ROUTE, pathMatch: 'prefix'} // any other unknown url will be forwarded to home\n];\n\nexport const routing = RouterModule.forRoot(APP_ROUTES);\n","export const CONTENT_VIEW_ROUTE: string = 'contentView';\nexport const DOCUMENTATION_ROUTE: string = 'doku';\nexport const HOME_ROUTE: string = 'home';\nexport const IMPRESSUM_ROUTE: string = 'impressum';\nexport const PROJECT_ROUTE: string = 'project';\n","import { Routes } from '@angular/router';\nimport {ManuscriptViewComponentComponent} from \"../manuscript-view-component/manuscript-view-component.component\";\nimport {RhizomeViewComponentComponent} from \"../rhizome-view-component/rhizome-view-component.component\";\nimport {PageViewWrapperComponent} from \"../page-view-wrapper-component/page-view-wrapper.component\";\nimport { TLN_CROSSREF_ROUTE, TLN_MANUSCRIPT_ROUTE, TLN_SEARCH_ROUTE, TLN_VIEWER_ROUTE } from '../tln-edition/constants';\nimport { TlnFulltextComponent } from '../tln-edition/tln-fulltext/tln-fulltext.component';\n\nexport const CONTENT_ROUTES: Routes = [\n { path: TLN_MANUSCRIPT_ROUTE, component: ManuscriptViewComponentComponent },\n { path: TLN_VIEWER_ROUTE, component: PageViewWrapperComponent },\n { path: TLN_CROSSREF_ROUTE, component: RhizomeViewComponentComponent },\n { path: TLN_SEARCH_ROUTE, component: TlnFulltextComponent},\n { path: '', redirectTo: TLN_MANUSCRIPT_ROUTE, pathMatch: 'prefix' }\n];\n","export default \".mat-drawer-container {\\n width: 100%;\\n}\\n\\n.mat-drawer {\\n overflow: hidden;\\n padding: 10px;\\n margin-right: 10px;\\n max-height: 100%;\\n min-height: 90%;\\n}\\n\\n.mat-card {\\n width: 100%;\\n}\\n\\n.mat-drawer-content {\\n min-height: 100vh;\\n width: 100%;\\n height: 100%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL2NvbnRlbnQtdmlldy10YWItY29tcG9uZW50L2NvbnRlbnQtdmlldy10YWItY29tcG9uZW50LmNvbXBvbmVudC5zY3NzIiwiY29udGVudC12aWV3LXRhYi1jb21wb25lbnQvY29udGVudC12aWV3LXRhYi1jb21wb25lbnQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDRSxXQUFBO0FDQUY7O0FER0E7RUFDRSxnQkFBQTtFQUNBLGFBQUE7RUFDQSxrQkFBQTtFQUVBLGdCQUFBO0VBQ0EsZUFBQTtBQ0RGOztBRElBO0VBQ0UsV0FBQTtBQ0RGOztBRElBO0VBQ0UsaUJBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtBQ0RGIiwiZmlsZSI6ImNvbnRlbnQtdmlldy10YWItY29tcG9uZW50L2NvbnRlbnQtdmlldy10YWItY29tcG9uZW50LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdGhlIG5hdmlnYXRpb24gZHJhd2VyIG9uIHRoZSB2ZXJ5IGxlZnQgY29udGFpbmluZyB0aGUgaXRlbXMgdG8gY2hvb3NlIGZyb21cbi5tYXQtZHJhd2VyLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubWF0LWRyYXdlciB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcblxuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiA5MCU7XG59XG5cbi5tYXQtY2FyZCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubWF0LWRyYXdlci1jb250ZW50IHtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4iLCIubWF0LWRyYXdlci1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLm1hdC1kcmF3ZXIge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAxMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDkwJTtcbn1cblxuLm1hdC1jYXJkIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5tYXQtZHJhd2VyLWNvbnRlbnQge1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn0iXX0= */\"","import {Component, OnInit} from '@angular/core';\nimport {ActivatedRoute, Params, Router} from '@angular/router';\nimport {Subscription} from \"rxjs/index\";\nimport {NavigationServiceService} from \"../services/navigation-service.service\";\nimport { TLN_CROSSREF_ROUTE, TLN_MANUSCRIPT_ROUTE, TLN_SEARCH_ROUTE, TLN_VIEWER_ROUTE } from '../tln-edition/constants';\n\n@Component({\n selector: 'app-content-view-tab-component',\n templateUrl: './content-view-tab-component.component.html',\n styleUrls: ['./content-view-tab-component.component.scss'],\n providers: [ NavigationServiceService ]\n})\nexport class ContentViewTabComponentComponent implements OnInit {\n // navigation tabs for the content view (manuscript view, page view, rhizome view)\n navTabLinks: any[];\n // navbar on th left for navigating\n navBarOpenState = false;\n fullscreen = false;\n\n navBarOpenMode: string;\n queryParams: Params = {};\n queryParamSubscription: Subscription;\n\n constructor(private router: Router,\n private activatedRoute: ActivatedRoute,\n private naviService: NavigationServiceService) {\n\n // The links/tabs for routing the correct view-component\n this.navTabLinks = [\n {\n label: 'Manuskriptansicht',\n link: TLN_MANUSCRIPT_ROUTE,\n index: 0,\n isActive: false,\n context: 'manuscript'\n }, {\n label: 'Seitenansicht',\n link: TLN_VIEWER_ROUTE,\n index: 1,\n isActive: false,\n context: 'page'\n }, {\n label: 'Querverweise',\n link: TLN_CROSSREF_ROUTE,\n index: 2,\n isActive: false\n }, {\n label: 'Suche',\n link: TLN_SEARCH_ROUTE,\n index: 3,\n isActive: false\n },\n ];\n\n this.queryParamSubscription = this.activatedRoute.queryParams.subscribe( (queryParams: Params ) => {\n this.queryParams = queryParams;\n if (queryParams.navBarOpenState) {\n this.navBarOpenState = JSON.parse(queryParams.navBarOpenState.toLowerCase());\n }\n if (queryParams.fullscreen) {\n this.fullscreen = JSON.parse(queryParams.fullscreen.toLowerCase());\n }\n });\n }\n\n ngOnInit() {\n // this.mesurePerformance();\n this.navBarOpenMode = 'side'; // side || over || push\n this.setParamsOnInit();\n // If url pasted or page refreshed --> resetting this.queryparams to the query params of the url;\n // needed for active routing in the nav tabs & for general use in the template\n }\n\n // Sets the isActive prop of a navTabLink to true and all others to false .\n setActiveLink(link: string) {\n this.navTabLinks.forEach((navTabLink, index ) => {\n if (navTabLink.link === link) {\n this.navTabLinks[index].isActive = true;\n if (navTabLink.context) {\n window.setTimeout(() => this.naviService.updateRoute({navContext : navTabLink.context}), 300);\n }\n } else {\n this.navTabLinks[index].isActive = false;\n }\n });\n }\n\n\n mesurePerformance() {\n const perfData = window.performance.timing;\n const pageLoadTime = perfData.loadEventEnd - perfData.navigationStart;\n console.log('content load performance is: ', pageLoadTime);\n }\n\n setParamsOnInit() {\n const qParams: Params = {};\n // Set the NavBarOpenstate to true if it is not defined explicitely as false in the url query param onInit.\n if (this.activatedRoute.snapshot.queryParamMap.get('navBarOpenState') !== 'false') {\n qParams.navBarOpenState = 'true'; }\n // viewMode\n if (!this.activatedRoute.snapshot.queryParamMap.get('viewMode')) {\n qParams.viewMode = 'Transkription/Faksimile';\n }\n if (!this.activatedRoute.snapshot.queryParamMap.get('navContext')) {\n qParams.navContext = 'manuscript';\n this.setActiveLink('tln-manuscript');\n } else {\n if (this.activatedRoute.snapshot.queryParamMap.get('navContext') === 'manuscript') {\n this.setActiveLink('tln-manuscript');\n } else {this.setActiveLink('tln-viewer'); } }\n this.naviService.updateRoute(qParams);\n }\n}\n","import { Directive, ElementRef } from '@angular/core';\n\n@Directive({\n selector: 'img'\n})\n\nexport class LazyImageLoadDirectiveDirective {\n\n constructor({ nativeElement }: ElementRef<HTMLImageElement>) {\n const supports = 'loading' in HTMLImageElement.prototype;\n if (supports) {\n nativeElement.setAttribute('loading', 'lazy');\n }\n }\n}\n\n// IF NOT SUPPORTED IN CHROME: Open chrome://flags in Chromium or Chrome Canary.\n// Search for lazy.\n// Enable both the “Enable lazy image loading” and the “Enable lazy frame loading” flag.\n// Restart the browser with the button in the lower right corner of the screen.\n","export default \".skip {\\n margin-top: 20px;\\n}\\n.second{\\n margin-left: 10px;\\n}\\n.hint {\\n width: 700px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhvbWUuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLGdCQUFnQjtBQUNuQjtBQUNBO0dBQ0csaUJBQWlCO0FBQ3BCO0FBQ0E7R0FDRyxZQUFZO0FBQ2YiLCJmaWxlIjoiaG9tZS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnNraXAge1xuICAgbWFyZ2luLXRvcDogMjBweDtcbn1cbi5zZWNvbmR7XG4gICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbi5oaW50IHtcbiAgIHdpZHRoOiA3MDBweDtcbn1cbiJdfQ== */\"","import { Component, OnInit } from '@angular/core';\nimport { Params } from '@angular/router';\nimport { CONTENT_VIEW_ROUTE } from './constants';\nimport { TLN_MANUSCRIPT_ROUTE, TLN_MANUSCRIPT_PARAM } from './tln-edition/constants';\n\n\n@Component({\n selector: 'app-home-component',\n templateUrl: './home.component.html',\n styleUrls: ['./home.component.css']\n})\nexport class HomeComponent implements OnInit {\n manuscriptLink: string[] = [ '/' + CONTENT_VIEW_ROUTE, TLN_MANUSCRIPT_ROUTE ];\n mpXIVParam: Params = {}\n mpXVParam: Params = {}\n ngOnInit(){\n this.mpXIVParam[TLN_MANUSCRIPT_PARAM] = 'http://rdfh.ch/projects/0068#_Mp_XIV';\n this.mpXVParam[TLN_MANUSCRIPT_PARAM] = 'http://rdfh.ch/projects/0068#_Mp_XV';\n }\n}\n\n\n","export default \".text {\\n text-align: justify;\\n width: 800px;\\n}\\n.subcontent {\\n margin-bottom: 20px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImltcHJlc3N1bS5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0dBQ0csbUJBQW1CO0dBQ25CLFlBQVk7QUFDZjtBQUNBO0dBQ0csbUJBQW1CO0FBQ3RCIiwiZmlsZSI6ImltcHJlc3N1bS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnRleHQge1xuICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgIHdpZHRoOiA4MDBweDtcbn1cbi5zdWJjb250ZW50IHtcbiAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG4iXX0= */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-impressum',\n templateUrl: './impressum.component.html',\n styleUrls: ['./impressum.component.css']\n})\nexport class ImpressumComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import {Component, Input, OnChanges} from '@angular/core';\nimport {DomSanitizer, SafeResourceUrl, SafeStyle} from '@angular/platform-browser'\nimport {NgxMatStandoffMarkupService} from \"./ngx-mat-standoff-markup.service\";\nimport {Style} from \"@angular/cli/lib/config/schema\";\n\n\n@Component({\n selector: 'NgxMat-NgxMatStandoffMarkup',\n templateUrl: './ngx-mat-standoff-markup.component.html'\n})\n/**\n* Simple and leightweight component marking up/styling a text input textToStyle with standoff markupDataMerged.\n* @param standoffData: the standoff data for style markup/semantic markup.\n* @param textToStyle: the text which will be styled acc. to the standoffData.\n* @param startIndices: the final startindices to segment the text for markup. Does NOT simply equal all startindices of standoffData. It\n* also contains all startindices of segments which are not styled/marked up.\n* @param templateSegments: the resulting text segments with their individual markup information. Overlaps are supported\n*/\nexport class NgxMatStandoffMarkupComponent implements OnChanges {\n @Input() textToStyle: string;\n @Input() markupSettings: StandoffMarkupSettings;\n @Input() standoffData: (SemanticPositonalAnnotation | PositionalStyleMarkup )[]; // both combined in one array\n @Input() posStyleMarkup?: PositionalStyleMarkup[];\n @Input() semPosAnnotation?: SemanticPositonalAnnotation[];\n @Input() cssDef?: StyleSheetDef;\n @Input() parentId?: string;\n @Input() parentClass?: string;\n cssUrl: SafeResourceUrl; // the url if a file path is passed acc. to the cssDef\n markupDataMerged: (SemanticPositonalAnnotation | PositionalStyleMarkup )[];\n\n startIndices: Array<number> = []; // the start indices of all style segments\n templateSegments: Segment[]; // the resulting style segments with their css styles\n\n selectionStartIndex: number;\n\n constructor( public sanitizer: DomSanitizer, private standoffService: NgxMatStandoffMarkupService) {\n }\n\n ngOnChanges() {\n if (this.cssDef.type === 'url') {\n this.cssUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.cssDef.css); // the actual url of the css for embetting.\n }\n this.mergeInputData();\n this.startIndices = this.getStartIndices(this.markupDataMerged);\n this.segmentText();\n }\n\n /**\n * Merging the different data inputs to one data array if multiple inputs\n */\n private mergeInputData() {\n if (this.standoffData && this.standoffData.length) {\n this.markupDataMerged = this.standoffData;\n if ((this.posStyleMarkup && this.posStyleMarkup.length) || (this.semPosAnnotation && this.semPosAnnotation.length)) {\n console.log('WARNING: posStyleMarkup or semPosAnnotation input ignored.')\n }\n } else {\n if ((this.posStyleMarkup && this.posStyleMarkup.length) && (this.semPosAnnotation && this.semPosAnnotation.length)) {\n this.markupDataMerged.concat(this.posStyleMarkup, this.semPosAnnotation);\n } else {\n if (this.posStyleMarkup && this.posStyleMarkup.length) { this.markupDataMerged = this.posStyleMarkup }\n if (this.semPosAnnotation && this.semPosAnnotation.length) { this.markupDataMerged = this.semPosAnnotation }\n }\n }\n }\n\n\n /**\n * Creates the final text segments and styles (this.templateSegments) which will\n * be *ngFored as <span> and styled with *ngStyle in the template.\n * Iterates through all startindices defined, pushes the corresponding substring\n * of our text to style together with its matching styles to this.templateSegments\n *\n */\n private segmentText() {\n this.templateSegments = [];\n let c = 1; // counter for getting the end index of the substring() via this.startIndices[c]\n for (const startIndex of this.startIndices) {\n // the text from startIndex to the next startIndex, i.e. the endIndex ...\n const segmentText = this.textToStyle.substring(startIndex, this.startIndices[c]);\n // all segmentDefs within the given range ...\n const segmentDefsInRange = this.markupDataMerged.filter((def) => {\n return def.startIndex <= startIndex && startIndex <= def.endIndex});\n let segment2 = new Segment(segmentText, startIndex, this.markupSettings, segmentDefsInRange);\n this.templateSegments.push(segment2);\n c += 1;\n }\n }\n\n /**\n * Creates an array of startindices defining the final text/style segments.\n * Hence every end index can be described as a startindex minus one (an end\n * index equals a start index of sth. new -1), end indices are also covered implicitly.\n * So every endIndex +1 is also pushed to the startIndices array if not yet existing.\n * If a defined range is ending at the very last character, there is obviously not a new\n * style starting and an additive startIndex is wrong. Therefore the last startIndex\n * is simply popped from the array if its value exceeds textToStyle.length.\n *\n * @return startIndices: Array of all distinct startIndices of the final text segments.\n */\n private getStartIndices(standoffData: StandoffDef[]) {\n\n const startIndices: Array<number> = [];\n // Push every startindex to startIndices if not yet there to get a distinct array of startindices for segmenting the text.\n // Hence every every end means a start of sth new, every endIndex equals a startIndex -1. Therefore we simply add also\n // every endIndex +1 to the Array of startIndices (if there is not yet a start defined for that character).\n\n standoffData.forEach(defEntry => {\n if (startIndices.indexOf(defEntry.startIndex) === -1) { // if the startIndex of the defEntry is not yet in startIndices\n startIndices.push(defEntry.startIndex);\n }\n if (startIndices.indexOf(defEntry.endIndex + 1) === -1) {\n startIndices.push(defEntry.endIndex + 1);\n }\n });\n // if there is no startindex of 0, we have to add it to define the first text segment.\n if (startIndices.indexOf(0) === -1) {\n startIndices.push(0); }\n // sort it\n startIndices.sort((n1, n2) => n1 - n2);\n // If the last endIndex is the very last character of the string to style, we must not generate a startIndex at endIndex+1.\n // In any other case we have to start a new style.\n // If the last generated startIndex is bigger than this.textToStyle.length\n // we have to pop that last startIndex (from the right) from our startIndices.\n // If the textToStyle.length is bigger or equals the last startIndex, that last startIndex simply means the end of the style\n // one character before. In these cases a last style range with font style undefined (style:normal) has to start,\n // so the last end ist also defined.\n if (this.textToStyle.length < startIndices[startIndices.length - 1]) { startIndices.pop(); }\n return startIndices;\n }\n\n private onSegmentClick(segment: Segment){\n const sel = window.getSelection(); // needed for preventing onclicks when selecting text\n if (sel.type != 'Range' && segment.interact) {\n let seg = new InteractedSegment(this.parentId, this.parentClass, segment);\n this.standoffService.interactedSegmentEmitter.emit(seg);\n }\n }\n\n // Text selection only works within a parent element (div). If you have several ngx-mat-standoff-components, e.g.\n // in an ngFor loop, you have to read the window data out yourself in your component.\n private setSelectedText(selectionEndstartIndex: number){\n if (window.getSelection) {\n let sel = window.getSelection();\n if (!sel.isCollapsed) {\n let totalRangeStartIndex = this.selectionStartIndex + sel.anchorOffset;\n let totalRangeEndIndexFocus = selectionEndstartIndex + sel.focusOffset;\n // all standoff definitions in that range ...\n const segmentDefsInRange = this.markupDataMerged.filter((def) => {\n return def.endIndex >= totalRangeStartIndex && def.startIndex <= totalRangeEndIndexFocus\n });\n let selectedText = this.textToStyle.substring(totalRangeStartIndex, totalRangeEndIndexFocus);\n this.standoffService.selectedTextEmitter.emit(\n new TextSelection(selectedText, totalRangeStartIndex, totalRangeEndIndexFocus, this.parentId, segmentDefsInRange));\n }\n }\n }\n\n private setSelectionStartIndex(startIndex) {\n this.selectionStartIndex = startIndex;\n }\n}\n\nexport class StandoffDef { // extendended by both types\n sType: number; // 0 === markup via css tag; 1 === apply css class\n startIndex: number; // character where the style/class starts\n endIndex: number; // character where the style/class ends\n\n\n constructor( sType: number, startIndex: number, endIndex: number ) {\n this.sType = sType;\n this.startIndex = startIndex;\n this.endIndex = endIndex;\n }\n}\n\nexport class PositionalStyleMarkup extends StandoffDef {\n cssStyleTag: string; // one or multiple css style tags like 'font-weight: bold;' or 'font-weight: bold; font-style: italic'\n constructor( sType: number, startIndex: number, endIndex: number, cssStyleTag: string) {\n super( sType, startIndex, endIndex);\n this.cssStyleTag = cssStyleTag;\n }\n}\n\nexport class SemanticPositonalAnnotation extends StandoffDef {\n cssClass?: string; // class name or subclass path with or without dots like '.animal.dog' or 'animal dog'\n iri?: string; // a desired iri or id\n description?: string;\n custom?: any;\n constructor( sType: number,\n startIndex: number,\n endIndex: number,\n cssClass?: string,\n iri?: string,\n description?: string,\n custom?: any) {\n super(sType, startIndex, endIndex);\n this.cssClass = cssClass;\n this.iri = iri;\n this.description = description;\n this.custom = custom; }\n}\n\nexport class Segment {\n sType: number; // 0 = markup only, 1 = semAnnotation only\n sText: string;\n sStartIndex: number;\n interact: boolean;\n originalDefs?: OriginalStandoffDef; // all originalDefs no matter whatsoever\n cssStyleTag?: StyleDef;\n cssClass?: StyleDef;\n\n constructor( text,\n sStartIndex: number,\n settings: StandoffMarkupSettings,\n standoffDef?: (SemanticPositonalAnnotation[] | PositionalStyleMarkup[])) {\n this.sText = text; //the string (=== subString) of the segment\n this.sStartIndex = sStartIndex; // the startIndex of the segment within the whole text\n this.originalDefs = new OriginalStandoffDef(standoffDef);\n this.setSegment(standoffDef, settings);\n\n }\n\n /**\n * sets the sType, interact and sStyleDef\n *\n */\n private setSegment(defs, settings) {\n if (defs && defs.length > 0) { // If there are definitions ...\n // check for markup type overlaps, e.g. definitions for type 0 and type 1\n // by checking the length of a Set (= distinct) of all sTypes in defs.\n if (Array.from(new Set(defs.map((item: any) => item.sType))).length > 1) { // If >1 there is an overlap\n // set the sType depending on the markupPreference ...\n this.sType = settings.markupPreference;\n this.sType === 0? this.setSyle(defs): this.setClass(defs, settings.polysemanticWrapper);\n\n } else { this.sType = defs[0].sType } // if there is only one sType within defs we set that\n // setting the interact according to the sType.\n this.sType === 0? this.interact = settings.interactWithStyles : this.interact = settings.interactWithAnnotations;\n let filteredDefs = defs.filter((def) => { return def.sType === this.sType; }); // subset of all defs which type === sType\n this.sType === 0? this.setSyle(filteredDefs): this.setClass(filteredDefs, settings.polysemanticWrapper);\n } else {\n // If there is nothing defined for the text segment at all ...\n this.setUndefinedSegmentParts(settings.interactWithUndefined) }\n }\n\n setSyle(defs) {\n defs.forEach( def => {\n const posStyle = def as PositionalStyleMarkup;\n // Adds every css property/value to the markup object\n // splitting multiple styles at ';'\n // removes leading and ending spaces, deletes \";\" and assigns it as an object as css property:\"value\"\n this.cssStyleTag = {};\n posStyle.cssStyleTag.split(';').forEach( style => {\n if (style.trim().length > 0) { this.cssStyleTag[style.split(':')[0].trim()] = style.split(':')[1].trim()}\n }\n );\n });\n }\n\n setClass(defs, polysemanticWrapper?: string) {\n this.cssClass = {};\n if (polysemanticWrapper && defs.length > 1) { this.cssClass[polysemanticWrapper]= true;} else {\n defs.forEach( def => {\n const posSem = def as SemanticPositonalAnnotation;\n // adding a class\n this.cssClass[posSem.cssClass.trim().replace('.', ' ' )]= true;\n });\n }\n }\n\n setUndefinedSegmentParts(interact: boolean) {\n this.sType = 0;\n this.cssStyleTag = []; // {'font-style': 'normal'}\n this.interact = interact;\n }\n}\n\nexport class InteractedSegment{\n parentId: string;\n parentClass: string;\n segment;\n constructor(parentId: string, parentClass:string, segment: Segment) {\n this.parentClass = parentClass;\n this.parentId = parentId;\n this.segment = segment;\n }\n}\n\nexport class OriginalStandoffDef {\n positionalMarkup: PositionalStyleMarkup[];\n semanticAnnotation: SemanticPositonalAnnotation[];\n\n constructor(standOffDef: any[]) {\n this.positionalMarkup = standOffDef.filter((def) => { return def.sType === 0; }); // subset of all defs which type === 0\n this.semanticAnnotation = standOffDef.filter((def) => { return def.sType === 1; }); // subset of all defs which type === 1\n }\n}\n\nexport interface StyleDef {\n [klass: string]: any; // font-weight: bold; myCssClass = true; ...\n}\n\nexport class StyleSheetDef {\n css: string; // the url to the file or the css iteself as plain text\n type: string; // 'url' for a path to the css file or 'text' for plain css text;\n\n constructor(css: string, type: string) {\n this.css = css;\n this.type = type;\n }\n}\n\nexport class StandoffMarkupSettings {\n\n interactWithStyles?: boolean; // clickable style segments && emitting the style definition of the segment to service\n interactWithAnnotations?: boolean; // clickable anotation segments && emitting the definition back to service\n interactWithUndefined?: boolean; // clickable segments for which nothing is defined\n markupPreference?: number; // The preference on overlaps of styles and classes. Defines the winner: 0 === styles win; 1 === classes win;\n polysemanticWrapper?: string; // optional class name for all polysemantics. In case of semantic overlaps/polysemantics this css class will be applied\n\n constructor(interactWithStyles: boolean = false,\n interactWithAnnotations: boolean = true,\n interactWithUndefined: boolean = false,\n markupPreference: number = 1,\n polysemanticWrapper?: string) {\n\n this.interactWithStyles = interactWithStyles;\n this.interactWithAnnotations = interactWithAnnotations;\n this.interactWithUndefined = interactWithUndefined;\n this.markupPreference = markupPreference;\n this.polysemanticWrapper = polysemanticWrapper;\n }\n}\n\nexport class TextSelection {\n text: string;\n startIndex: number;\n endIndex: number;\n parentId: string;\n standoffDefsInRange?: (SemanticPositonalAnnotation | PositionalStyleMarkup )[];\n\n constructor(text: string, startIndex: number, endIndex: number, parentId?: string, standoffDefsInRange? ) {\n this.text = text;\n this.startIndex = startIndex;\n this.endIndex = endIndex;\n this.parentId = parentId;\n this.standoffDefsInRange = standoffDefsInRange;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { NgxMatStandoffMarkupComponent } from './ngx-mat-standoff-markup.component';\nimport { MatTooltipModule } from '@angular/material';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { NgxMatStandoffMarkupService} from \"./ngx-mat-standoff-markup.service\";\n\n@NgModule({\n declarations: [\n NgxMatStandoffMarkupComponent],\n imports: [\n MatTooltipModule,\n BrowserModule,\n BrowserAnimationsModule\n ],\n exports: [NgxMatStandoffMarkupComponent],\n providers: [NgxMatStandoffMarkupService]\n})\nexport class NgxMatStandoffMarkupModule { }\n","import { Injectable, EventEmitter } from '@angular/core';\nimport {\n PositionalStyleMarkup, SemanticPositonalAnnotation, Segment,\n TextSelection, InteractedSegment\n} from \"./ngx-mat-standoff-markup.component\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgxMatStandoffMarkupService {\n\n // subscribe here to the selected things. For editing your standoff markup/semantic annotations\n public interactedSegmentEmitter = new EventEmitter<InteractedSegment>();\n public selectedTextEmitter = new EventEmitter<TextSelection>(); // multiple spaces removed\n\n constructor() {\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJtYWluLW1lbnUtY29tcG9uZW50L21haW4tbWVudS1jb21wb25lbnQuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\nimport {MatButtonModule} from '@angular/material/button';\nimport {Subscription} from 'rxjs';\nimport {ActivatedRoute, Params} from '@angular/router';\nimport { CONTENT_VIEW_ROUTE, DOCUMENTATION_ROUTE, HOME_ROUTE, IMPRESSUM_ROUTE, PROJECT_ROUTE } from '../constants';\n\n@Component({\n selector: 'app-main-menu-component',\n templateUrl: './main-menu-component.component.html',\n styleUrls: ['./main-menu-component.component.scss']\n})\nexport class MainMenuComponentComponent implements OnInit {\n contentViewLink: string[] = [ CONTENT_VIEW_ROUTE ];\n fullScreen: string;\n impressumLink: string[] = [ IMPRESSUM_ROUTE ];\n homeLink: string[] = [ HOME_ROUTE ];\n projectLink: string[] = [ PROJECT_ROUTE];\n queryParamSub: Subscription;\n queryParams: Params;\n\n constructor(private activatedRoute: ActivatedRoute) { }\n\n ngOnInit() {\n this.queryParamSub = this.activatedRoute.queryParams.subscribe( (queryParams: Params ) => {\n this.fullScreen = queryParams.fullscreen;\n this.queryParams = queryParams;\n\n });\n }\n\n}\n","export default \".content-area {\\n height: 100%;\\n display: table;\\n}\\n\\n.nav-container {\\n height: 100%;\\n width: 50%;\\n display: table-cell;\\n}\\n\\n.content-container {\\n height: 100%;\\n display: table-cell;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL21hbnVzY3JpcHQtdmlldy1jb21wb25lbnQvbWFudXNjcmlwdC12aWV3LWNvbXBvbmVudC5jb21wb25lbnQuc2NzcyIsIm1hbnVzY3JpcHQtdmlldy1jb21wb25lbnQvbWFudXNjcmlwdC12aWV3LWNvbXBvbmVudC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFlBQUE7RUFDQSxjQUFBO0FDQ0Y7O0FERUE7RUFDRSxZQUFBO0VBRUEsVUFBQTtFQUNBLG1CQUFBO0FDQUY7O0FER0E7RUFDRSxZQUFBO0VBR0EsbUJBQUE7QUNGRiIsImZpbGUiOiJtYW51c2NyaXB0LXZpZXctY29tcG9uZW50L21hbnVzY3JpcHQtdmlldy1jb21wb25lbnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuY29udGVudC1hcmVhIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OnRhYmxlO1xufVxuXG4ubmF2LWNvbnRhaW5lciB7XG4gIGhlaWdodDoxMDAlO1xuICAvL21pbi13aWR0aDogdW5zZXQ7IC8vIG5lZWRlZCBiZWNhdXNlIGFuZ3VsYXIgc2V0cyBhbiBvd24gbWluIHdpZHRoIT9cbiAgd2lkdGg6NTAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuXG4uY29udGVudC1jb250YWluZXIge1xuICBoZWlnaHQ6MTAwJTtcbiAgLy8gbWluLXdpZHRoOiB1bnNldDsgLy8gbmVlZGVkIGJlY2F1c2UgYW5ndWxhciBzZXRzIGFuIG93biBtaW4gd2lkdGghP1xuICAvLyB3aWR0aDoyMHB4O1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuIiwiLmNvbnRlbnQtYXJlYSB7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi5uYXYtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogNTAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuXG4uY29udGVudC1jb250YWluZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-manuscript-view-component',\n templateUrl: './manuscript-view-component.component.html',\n styleUrls: ['./manuscript-view-component.component.scss']\n})\nexport class ManuscriptViewComponentComponent implements OnInit {\n constructor() { }\n\n ngOnInit() {\n }\n}\n","// class for Everything: extended by NavigationEntity, Manuscript, Page, Word with all common properties\nimport {SafeUrl} from '@angular/platform-browser';\n\nexport class TlnEntity {\n id: string; // Short id, iri in most cases\n iri: string; // iri\n type: string; // rdfs:type\n navContext: string;\n label?: string;\n description?: string;\n\n constructor(id: string, iri: string, type: string, navContext: string, label?: string, description?: string) {\n this.id = id;\n this.iri = iri;\n this.type = type;\n this.navContext = navContext;\n this.label = label;\n this.description = description;\n }\n}\n\nexport class TlnQueryParams {\n navBarOpenState: boolean;\n navContext: string;\n manuscript: string;\n page: string;\n selectedLines: string;\n selectedWords: string;\n viewMode: string; // '\n fullscreen: boolean;\n zoom: number;\n\n constructor(navBarOpenState: boolean, navContext: string, manuscript: string, page: string, selectedLines: string, selectedWords: string, viewMode: string, fullscreen: boolean, zoom: number ) {\n this.navBarOpenState = navBarOpenState; //proposed solution: JSON.parse(navBarOpenState)\n this.navContext = navContext; // proposed solution: Number(navTabIndex)\n this.manuscript = manuscript;\n this.page = page;\n this.selectedLines = selectedLines;\n this.selectedWords = selectedWords;\n this.viewMode = viewMode;\n this.fullscreen = fullscreen; // proposed solution: JSON.parse(fullscreen)\n this.zoom = zoom; // proposed solution: Number(zoom)\n // console.log('TlnQueryParams.fullscreen typeof:', typeof this.fullscreen, 'TlnQueryParams.zoom typeof:', typeof this.zoom);\n }\n}\n\n// The navigation entries in each tree for each viewtab (TlnManuscript, TlnPage, PositionalEntity) used by navigation\n//\nexport class NavigationEntity {\n idx: number;\n tlnEntity: TlnEntity;\n thumb?: SafeUrl; // url of image (Thumbnail)\n img?: SafeUrl; // full image url\n svg?: SafeUrl; // svg url\n avatar?: SafeUrl; // img for avatar\n\n constructor(idx: number, tlnEntity: TlnEntity, thumb?: string, img?, svg?: SafeUrl, avatar?: SafeUrl) {\n this.idx = idx;\n this.tlnEntity = tlnEntity;\n this.thumb = thumb;\n this.img = img;\n this.svg = svg;\n this.avatar = avatar;\n }\n}\n\nexport interface NavTreeDef {\n id: string; // name of the tree, also set as queryParam\n idx: number; // order\n label: string;\n itemQParam: string;\n entries: NavigationEntity[];\n description?: string;\n apiDef?: ApiDef;\n isActive?: boolean;\n}\n\nexport class ApiDef {\n type: number; // 0 === sparql 1.1., 1 === nietzscheSource API, 2 === existDB\n baseUrl: string;\n dataArray: string;\n query?: string;\n mapping?: TlnEntityMapping; // positive Filter ids: only these id's should be loaded into manuscript nav tree\n\n constructor( type: number, baseUrl: string, dataArray: string, query?: string, mapping?: TlnEntityMapping) {\n this.type = type;\n this.baseUrl = baseUrl;\n this.dataArray = dataArray;\n this.query = query;\n this.mapping = mapping;\n\n }\n}\n\nexport class TlnEntityMapping { // Is used for mapping the response from any given apiDef/response to a TlnEntity Instance\n id: string; // Short id, iri in most cases\n iri?: string; // iri\n idx?: string;\n type?: string; // rdfs:type\n label?: string;\n description?: string;\n avatar?: string;\n svg?: string;\n thumb?: string;\n\n constructor(id: string, iri?: string, idx?: string, type?: string, label?: string, description?: string, avatar?: string, svg?: string, thumb?: string) {\n this.id = id;\n this.iri = iri;\n this.idx = idx;\n this.type = type;\n this.label = label;\n this.description = description;\n this.avatar = avatar;\n this.svg = svg;\n this.thumb = thumb;\n }\n}\n","export default \".fixed-nav-container {\\n position: -webkit-sticky;\\n position: sticky;\\n max-height: 15vh;\\n}\\n\\n.navlist-container {\\n position: -webkit-sticky;\\n position: sticky;\\n max-height: 85vh;\\n overflow-x: hidden;\\n overflow-y: auto;\\n scroll-behavior: smooth;\\n}\\n\\n.mat-nav-list {\\n scroll-behavior: smooth;\\n}\\n\\n.mat-nav-list .mat-list-item {\\n width: 100%;\\n min-height: 72px;\\n height: 100%;\\n /* default is 72px */\\n padding: 0 !important;\\n margin: 0 !important;\\n}\\n\\n.thumbnail {\\n max-width: 100px;\\n max-height: 100px;\\n}\\n\\n.card-item {\\n width: 100%;\\n min-width: 100%;\\n margin-top: 5px;\\n background-color: rgba(255, 255, 255, 0) !important;\\n}\\n\\n.active-item {\\n background: linear-gradient(to right, rgba(255, 255, 255, 0), #dadada);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL25hdmlnYXRpb24tbGlzdC1jb21wb25lbnQvbmF2aWdhdGlvbi1saXN0LWNvbXBvbmVudC5jb21wb25lbnQuc2NzcyIsIm5hdmlnYXRpb24tbGlzdC1jb21wb25lbnQvbmF2aWdhdGlvbi1saXN0LWNvbXBvbmVudC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHdCQUFBO0VBQUEsZ0JBQUE7RUFDQSxnQkFBQTtBQ0NGOztBREVBO0VBQ0Usd0JBQUE7RUFBQSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLHVCQUFBO0FDQ0Y7O0FERUE7RUFDRSx1QkFBQTtBQ0NGOztBREVBO0VBQ0UsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsWUFBQTtFQUFjLG9CQUFBO0VBQ2QscUJBQUE7RUFDQSxvQkFBQTtBQ0VGOztBRENBO0VBQ0UsZ0JBQUE7RUFDQSxpQkFBQTtBQ0VGOztBRENBO0VBQ0UsV0FBQTtFQUNBLGVBQUE7RUFDQSxlQUFBO0VBQ0EsbURBQUE7QUNFRjs7QURDQTtFQUNFLHNFQUFBO0FDRUYiLCJmaWxlIjoibmF2aWdhdGlvbi1saXN0LWNvbXBvbmVudC9uYXZpZ2F0aW9uLWxpc3QtY29tcG9uZW50LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZpeGVkLW5hdi1jb250YWluZXIge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBtYXgtaGVpZ2h0OiAxNXZoO1xufVxuXG4ubmF2bGlzdC1jb250YWluZXIge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBtYXgtaGVpZ2h0OiA4NXZoO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xufVxuXG4ubWF0LW5hdi1saXN0IHtcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG59XG5cbi5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW0ge1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogNzJweDtcbiAgaGVpZ2h0OiAxMDAlOyAvKiBkZWZhdWx0IGlzIDcycHggKi9cbiAgcGFkZGluZzogMCAhaW1wb3J0YW50OztcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG59XG5cbi50aHVtYm5haWwge1xuICBtYXgtd2lkdGg6IDEwMHB4O1xuICBtYXgtaGVpZ2h0OiAxMDBweDtcbn1cblxuLmNhcmQtaXRlbSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAhaW1wb3J0YW50O1xufVxuXG4uYWN0aXZlLWl0ZW0ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgLCAjZGFkYWRhKTtcbn1cbiIsIi5maXhlZC1uYXYtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgbWF4LWhlaWdodDogMTV2aDtcbn1cblxuLm5hdmxpc3QtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgbWF4LWhlaWdodDogODV2aDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbn1cblxuLm1hdC1uYXYtbGlzdCB7XG4gIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xufVxuXG4ubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDcycHg7XG4gIGhlaWdodDogMTAwJTtcbiAgLyogZGVmYXVsdCBpcyA3MnB4ICovXG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG59XG5cbi50aHVtYm5haWwge1xuICBtYXgtd2lkdGg6IDEwMHB4O1xuICBtYXgtaGVpZ2h0OiAxMDBweDtcbn1cblxuLmNhcmQtaXRlbSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAhaW1wb3J0YW50O1xufVxuXG4uYWN0aXZlLWl0ZW0ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCksICNkYWRhZGEpO1xufSJdfQ== */\"","import {AfterViewInit, Component, ElementRef, EventEmitter, OnInit, ViewChildren} from '@angular/core';\nimport {NavigationServiceService} from '../services/navigation-service.service';\nimport {NavigationEntity, NavTreeDef, TlnQueryParams} from '../models/models';\nimport {Subscription} from 'rxjs/index';\nimport {ActivatedRoute, Params, Router} from '@angular/router';\nimport {QueryService} from '../services/query.service';\nimport {NavTree} from './navtree-directive.directive';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'app-navigation-list-component',\n templateUrl: './navigation-list-component.component.html',\n styleUrls: ['./navigation-list-component.component.scss']\n})\n/**\n * NavigationListComponent\n * Does sinply consume data coming from naviservice && activated route. triggers click event to service.\n */\nexport class NavigationListComponentComponent implements OnInit, AfterViewInit {\n\n navigationTreeDefs: NavTreeDef[];\n navTrees: NavTree[]; // The actual Navtrees which are displayed\n\n oldQueryParams: Params;\n queryParams: Params;\n queryParamSubscription: Subscription;\n navTabIndex: number;\n\n constructor( public naviService: NavigationServiceService,\n private router: Router,\n private activatedRoute: ActivatedRoute,\n private queryService: QueryService) {\n\n this.navigationTreeDefs = [\n { id: 'manuscript',\n idx: 0,\n isActive: true,\n label: 'Manuskripte',\n itemQParam: 'manuscript',\n entries: [],\n apiDef: {\n type: 0, // rdf\n baseUrl: 'https://nietzsche.fuseki.services.dasch.swiss/nietzsche',//'http://fuseki.nie-ine.ch/nietzsche-rw/query',\n dataArray: 'results.bindings',\n query: 'manuscripts.rq',\n mapping: { // maps the properties of the reponse to tha NavTabDef properties, which are displayed\n id: 'manuscript.value', // Short id, iri in most cases\n iri: 'manuscript.value', // iri\n type: 'type.value',\n label: 'title.value',\n description: 'gsaSignature.value',\n avatar: 'thumbImage.value'\n }\n }\n }, {\n id: 'page',\n idx: 1,\n isActive: false,\n label: 'Seiten',\n itemQParam: 'page',\n entries: [],\n apiDef: {\n type: 0, // rdf\n baseUrl: 'https://nietzsche.fuseki.services.dasch.swiss/nietzsche',//'http://fuseki.nie-ine.ch/nietzsche-rw/query',\n dataArray: 'results.bindings',\n query: 'getPageData.rq',\n mapping: {\n id: 'page.value', // Short id, iri in most cases\n iri: 'page.value', // iri\n label: 'pageNumber.value',\n thumb: 'thumb.value',\n idx: 'pageNumber.value',\n svg: 'svgFileName.value',\n }\n }\n }\n ];\n // If url pasted or page refreshed --> resetting this.queryparams to the query params of the url;\n // needed for the template hence service instances can not be accessed in the template\n this.queryParamSubscription = this.activatedRoute.queryParams.subscribe( (queryParams: Params ) => {\n const navTabIndex = this.getActiveNavTabIndex(queryParams.navContext);\n if (this.oldQueryParams && queryParams.navContext) { // only if there are any oldParams\n this.reactOnContextChange(queryParams.navContext, this.oldQueryParams.navContext, navTabIndex );\n this.reactOnItemChange('page', queryParams.page, this.oldQueryParams.page);\n this.reactOnItemChange('manuscript', queryParams.manuscript, this.oldQueryParams.manuscript);\n }\n this.oldQueryParams = queryParams;\n });\n }\n\n async ngOnInit() {\n await this.createTreesOnInit();\n this.navTabIndex = await this.getActiveNavTabIndex();\n await this.populateNavTrees();\n // set selected things in url\n this.navTrees.forEach(tree => {\n // if there is no selected item for each tree, we have to listen to the selectedItemSet/tree population and set them per default\n if (!this.activatedRoute.snapshot.queryParamMap.get(tree.qParam)) {\n tree.selectedItemSet.subscribe(item => {\n this.setSelectedItemAndRoute(item.itemId, item.tabId);\n });\n }\n });\n // change navTree according to chosen route per default\n // set NavContext if unset according to selected component: manuscriptView, tln-page view\n if (this.activatedRoute.snapshot.firstChild.url[0].path === 'tln-viewer'\n && !this.activatedRoute.snapshot.queryParamMap.get('navContext')) {\n this.naviService.updateRoute({navContext: 'page'});\n }\n }\n\n ngAfterViewInit() {\n const selectedItem = this.activatedRoute.snapshot.queryParamMap.get(this.activatedRoute.snapshot.queryParamMap.get('navContext'));\n this.scrollOnToSelectedItem(selectedItem);\n }\n\n reactOnItemChange(param: string, itemId: string, oldItemId) {\n if (itemId && itemId !== '' && oldItemId) {\n if (itemId !== oldItemId) {\n const tab = this.navTrees.findIndex(tree => tree.id === param);\n this.setSelectedItem(itemId, tab);\n if (tab === this.navTabIndex) {\n window.setTimeout(() => this.scrollOnToSelectedItem(itemId), 100);\n }\n }\n }\n }\n\n reactOnContextChange(context: string, oldContext: string, activeTab: number) {\n if (context !== oldContext) {\n this.navTabIndex = activeTab;\n // must time out here hence document is not ready to scroll\n window.setTimeout(() => this.scrollOnToSelectedItem(this.oldQueryParams[context]), 100);\n }\n }\n\n scrollOnToSelectedItem(itemId: string ) {\n if (document.getElementById(itemId)) {\n const offSetTop = document.getElementById(itemId).offsetTop;\n document.getElementById('navlist').scrollTop = offSetTop - 100;\n }\n }\n\n /**\n * getActiveNavTabIndexOnInit\n * gets the active navTabIndex either from a passed navConText, from active qParam or or from definition\n */\n getActiveNavTabIndex(con?: string) {\n let navConText;\n if (!con || con === '') {\n navConText = this.activatedRoute.snapshot.queryParamMap.get('navContext');\n } else { navConText = con; }\n let navTabIndex = 0;\n if (navConText && navConText !== '') {\n const nIndex = this.navigationTreeDefs.findIndex(tree => tree.id === navConText);\n navTabIndex = this.navigationTreeDefs[nIndex].idx;\n } else { navTabIndex = 0; }\n return navTabIndex;\n }\n\n createTreesOnInit() {\n this.navTrees = [];\n this.navigationTreeDefs.forEach( def =>\n this.navTrees.push(new NavTree(def.id, def.idx, def.label, [], def.itemQParam, def.description, def.apiDef)));\n }\n\n async onSelectNavItem(item: NavigationEntity) {\n // If a new item is clicked\n if (this.navTrees[this.navTabIndex].selectedItem !== item.tlnEntity.id) {\n // get new data for subTrees and set new params accordingly\n await this.emptyChildTrees(this.navTabIndex);\n await this.removeAllChildTreeQParams(this.navTabIndex);\n await this.setSelectedItemAndRoute(item.tlnEntity.id, this.navTabIndex);\n await this.populateChildren(this.navTabIndex, item.tlnEntity.id);\n // Only if context !== 'page', e.g. view is tln-viewer), we change to the second page tab\n const navContext = this.activatedRoute.snapshot.queryParamMap.get('navContext');\n if (navContext !== this.navTrees[this.getActiveNavTabIndex()].qParam) {\n this.changeNavTreeViaRoute(this.navTabIndex + 1);\n }\n } else { // if an already selected item is clicked again, it changes the tree/tab\n this.changeNavTreeViaRoute(this.navTabIndex + 1); }\n }\n\n removeAllChildTreeQParams(tabId) {\n this.navTrees.forEach((tree, index) => {\n if (tree.idx > tabId) {\n this.navTrees[index].selectedItem = null;\n this.naviService.updateRoute({[tree.qParam]: null});\n }\n });\n }\n\n emptyChildTrees(parentIdx) {\n this.navTrees.forEach((tree, index) => {\n if (tree.idx > parentIdx) {\n this.navTrees[index].entries = [];\n }\n });\n }\n\n setSelectedItem(navItemId: string, tabId: number) {\n this.navTrees[tabId].selectedItem = navItemId;\n }\n\n // Will route, the qParamSubscription reacts and trees are built further\n async setSelectedItemAndRoute(navItemId: string, tabId: number) {\n this.navTrees[tabId].selectedItem = navItemId;\n const idx = this.navigationTreeDefs.findIndex(tree => tree.idx === tabId);\n // set new qParam\n const newParams = {};\n const qParam = this.navigationTreeDefs[idx].itemQParam;\n newParams[qParam] = navItemId;\n this.naviService.updateRoute(newParams);\n }\n\n\n populateChildren(activeTab, itemId?: string) {\n if (activeTab + 1 < this.navigationTreeDefs.length) {\n // if an item in a tab with sub tabs is selected, the subtree should be loaded according to that selection and the tab should change\n this.populateNavTrees(activeTab + 1, itemId );\n }\n }\n\n // switches tabs in navtab ov navigation bar\n changeNavTreeViaRoute(idx: number) {\n if (idx < this.navTrees.length) {\n this.naviService.updateRoute({navContext: this.navTrees[idx].qParam}); }\n }\n\n /**\n * populateNavTrees creates the first trees if no query params are available in the url:\n * It ceates the manuscripNavTree and the activePageNavTreeData of the first manuscript per default.\n *\n */\n async populateNavTrees(tabIdx?: number, itemId?: string) {\n const tabStartIndex = tabIdx || 0; // where to start refreshing navtrees\n for ( const treeDef of this.navigationTreeDefs.sort(def => (def.idx ))) {\n if (treeDef.idx >= tabStartIndex) { // only create trees if needed\n this.queryService.getQueryfromFilename(treeDef.apiDef.query).subscribe(async query => {\n let queryToRun: string;\n // If there is a selectedItem we have to parametrize the query\n if (treeDef.idx > 0) { // so we have to parametrize the query\n if (itemId) {\n queryToRun = this.queryService.parametrizeQueryWithItem(query, itemId);\n this.populateNavTree(treeDef, queryToRun);\n } else {\n // wait for selected item of the previous tab and parametrize then the query\n this.navTrees[treeDef.idx - 1].selectedItemSet.subscribe(item => {\n if (item.tabId === treeDef.idx - 1) {\n queryToRun = this.queryService.parametrizeQueryWithItem(query, item.itemId);\n this.populateNavTree(treeDef, queryToRun); }\n });\n }\n } else {\n this.populateNavTree(treeDef, query); }\n });\n }\n }\n }\n\n\n populateNavTree(def: NavTreeDef, query) {\n const idx = this.navTrees.findIndex(item => item.id === def.id);\n let parentLabel;\n if (idx > 0) { parentLabel = this.navTrees[idx - 1].selectedItemLabel; }\n if (idx !== -1) {\n this.queryService.getData(def.apiDef.baseUrl, query, 'SELECT').subscribe(data => {\n this.navTrees[idx].setNavTreeData(_.get(data, def.apiDef.dataArray),\n this.activatedRoute.snapshot.queryParams, parentLabel); });\n }\n }\n}\n","import {Directive, EventEmitter} from '@angular/core';\nimport {Params} from '@angular/router';\nimport {ApiDef, NavigationEntity, TlnEntity} from '../models/models';\nimport * as _ from 'lodash';\n\n@Directive({\n selector: '[appNavtreeDirective]'\n})\n\nexport class NavTree {\n id: string;\n idx: number;\n label: string;\n entries: NavigationEntity[];\n qParam: string;\n description?: string;\n apiDef?: ApiDef;\n selectedItem?: string;\n selectedItemLabel?: string;\n parentLabel?: string;\n\n selectedItemSet: EventEmitter<SelectedItem>\n\n constructor(id: string,\n idx: number,\n label: string,\n entries: NavigationEntity[],\n qParam: string,\n description?: string,\n apiDef?: ApiDef,\n selectedItem?: string,\n selectedItemLabel?: string,\n parentLabel?: string) {\n this.id = id;\n this.idx = idx;\n this.label = label;\n this.qParam = qParam;\n this.entries = entries || [];\n this.description = description;\n this.apiDef = apiDef;\n this.selectedItem = selectedItem;\n this.selectedItemLabel = selectedItemLabel;\n this.selectedItemSet = new EventEmitter();\n this.parentLabel = parentLabel;\n }\n\n setNavTreeData(data: any, queryParams: Params, parentLabel?: string) {\n this.parentLabel = parentLabel;\n this.selectedItemLabel = _.get(data[0], this.apiDef.mapping.label);\n if (queryParams[this.qParam] && queryParams[this.qParam] !== '') {\n this.setSelected(queryParams[this.qParam]); } else {\n this.setSelected(_.get(data[0], this.apiDef.mapping.id));\n }\n\n this.entries = []; // resetting tree data of the given tab\n data.forEach((entry, index) => {\n // (id: string, iri: string, type: string, navIndex: number, label?: string)\n const entity = new TlnEntity(_.get(entry, this.apiDef.mapping.id),\n _.get(entry, this.apiDef.mapping.iri), _.get(entry, this.apiDef.mapping.type) ||\n null, index , _.get(entry, this.apiDef.mapping.label) || '', _.get(entry, this.apiDef.mapping.description || ''));\n const thumb = _.get(entry, this.apiDef.mapping.thumb);\n let svg;\n if (_.get(entry, this.apiDef.mapping.svg)) {\n svg = 'http://existdb-test.dasch.swiss/exist/rest/db/storage/nietzsche/' + _.get(entry, this.apiDef.mapping.svg);\n }\n const avatar = _.get(entry, this.apiDef.mapping.avatar);\n const navEntity = new NavigationEntity(index, entity, thumb, '', svg, avatar);\n this.entries.push(navEntity);\n });\n }\n\n setSelected(itemId: string) {\n this.selectedItem = itemId;\n this.selectedItemSet.emit({tabId: this.idx, itemId});\n }\n}\n\nexport interface SelectedItem {\n tabId: number;\n itemId: string;\n}\n","export default \"mat-card {\\n height: 85vh;\\n overflow: hidden;\\n}\\n\\n.drawer {\\n padding: 10px;\\n width: 25%;\\n}\\n\\n.in-drawer-content-area {\\n min-height: 300px;\\n height: 70vh;\\n min-width: 95%;\\n display: table;\\n}\\n\\n.in-drawer-toggle-button-container {\\n height: 100%;\\n vertical-align: top;\\n min-width: 10%;\\n width: 10%;\\n display: table-cell;\\n}\\n\\n.in-drawer-content-container {\\n height: 100%;\\n align-content: left;\\n width: 90%;\\n display: table-cell;\\n padding: 10px;\\n}\\n\\n.main-content-container {\\n min-height: 300px;\\n width: 100%;\\n height: 100%;\\n margin: 0;\\n padding: 0;\\n}\\n\\n.outer-content-area {\\n min-height: 300px;\\n height: 100%;\\n display: table;\\n}\\n\\n.content-container {\\n height: 100%;\\n vertical-align: top;\\n align-content: left;\\n width: 80%;\\n display: table-cell;\\n padding: 10px;\\n}\\n\\n.page-turn-button-container {\\n height: 100%;\\n vertical-align: middle;\\n min-width: unset;\\n width: 20px;\\n display: table-cell;\\n}\\n\\n.page-turn-button {\\n height: 100px;\\n min-width: unset;\\n width: 15px;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n margin: 0;\\n padding: 0;\\n}\\n\\n.toggle-button-container {\\n height: 100%;\\n display: table-cell;\\n vertical-align: top;\\n align-content: right;\\n align-items: right;\\n min-width: 5%;\\n width: 100%;\\n padding: 1em;\\n}\\n\\n.toggle-button {\\n height: 100px;\\n min-width: unset;\\n width: 15px;\\n display: flex;\\n justify-content: center;\\n margin: 0;\\n padding: 0;\\n}\\n\\n.right-outer-element {\\n margin-right: 3em;\\n}\\n\\n.right-inner-element {\\n margin-left: 1em;\\n}\\n\\n.mat-button-toggle-group.mat-button-toggle-group {\\n display: flex;\\n align-items: right;\\n}\\n\\n.images-container {\\n display: table;\\n}\\n\\n.image-sell-container {\\n display: table-cell;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL3BhZ2Utdmlldy13cmFwcGVyLWNvbXBvbmVudC9wYWdlLXZpZXctd3JhcHBlci5jb21wb25lbnQuc2NzcyIsInBhZ2Utdmlldy13cmFwcGVyLWNvbXBvbmVudC9wYWdlLXZpZXctd3JhcHBlci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtFQUNFLFlBQUE7RUFDQSxnQkFBQTtBQ0RGOztBREtBO0VBQ0UsYUFBQTtFQUNBLFVBQUE7QUNGRjs7QURNQTtFQUNFLGlCQUFBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7RUFDQSxjQUFBO0FDSEY7O0FETUE7RUFDRSxZQUFBO0VBQ0EsbUJBQUE7RUFDQSxjQUFBO0VBQ0EsVUFBQTtFQUNBLG1CQUFBO0FDSEY7O0FETUE7RUFDRSxZQUFBO0VBRUEsbUJBQUE7RUFDQSxVQUFBO0VBQ0EsbUJBQUE7RUFDQSxhQUFBO0FDSkY7O0FEUUE7RUFDRSxpQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7QUNMRjs7QURTQTtFQUNFLGlCQUFBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7QUNORjs7QURTQTtFQUNFLFlBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VBQ0EsVUFBQTtFQUNBLG1CQUFBO0VBQ0EsYUFBQTtBQ05GOztBRFNBO0VBQ0UsWUFBQTtFQUNBLHNCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7QUNORjs7QURTQTtFQUNFLGFBQUE7RUFDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxhQUFBO0VBQ0EsdUJBQUE7RUFDQSxtQkFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0FDTkY7O0FEVUE7RUFDRSxZQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VBQ0Esa0JBQUE7RUFDQSxhQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7QUNQRjs7QURVQTtFQUNFLGFBQUE7RUFDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxhQUFBO0VBQ0EsdUJBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtBQ1BGOztBRFdBO0VBQ0UsaUJBQUE7QUNSRjs7QURXQTtFQUNFLGdCQUFBO0FDUkY7O0FEV0E7RUFDRSxhQUFBO0VBQ0Esa0JBQUE7QUNSRjs7QURXQTtFQUNFLGNBQUE7QUNSRjs7QURXQTtFQUNFLG1CQUFBO0FDUkYiLCJmaWxlIjoicGFnZS12aWV3LXdyYXBwZXItY29tcG9uZW50L3BhZ2Utdmlldy13cmFwcGVyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdGhlIG92ZXJhbGwgbWF0LWNhcmRcblxubWF0LWNhcmQge1xuICBoZWlnaHQ6IDg1dmg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vIHRoZSBkZXRhaWxzIGRyYXdlciBvbiB0aGUgdmVyeSByaWdodFxuLmRyYXdlciB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIHdpZHRoOiAyNSU7XG59XG5cbi8vIFRoZSBjb250ZW50IGFyZWEgb2YgdGhlIGRyYXdlciBhcyBhIHRhYmxlIGNvbnRhaW5pbmcgYnV0dG9uICYgY29udGVudFxuLmluLWRyYXdlci1jb250ZW50LWFyZWEge1xuICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgaGVpZ2h0OiA3MHZoO1xuICBtaW4td2lkdGg6IDk1JTtcbiAgZGlzcGxheTp0YWJsZTtcbn1cblxuLmluLWRyYXdlci10b2dnbGUtYnV0dG9uLWNvbnRhaW5lciB7XG4gIGhlaWdodDoxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBtaW4td2lkdGg6IDEwJTtcbiAgd2lkdGg6MTAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuXG4uaW4tZHJhd2VyLWNvbnRlbnQtY29udGFpbmVyIHtcbiAgaGVpZ2h0OjEwMCU7XG4gIC8vIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGFsaWduLWNvbnRlbnQ6IGxlZnQ7XG4gIHdpZHRoOjkwJTtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgcGFkZGluZzogMTBweDtcbn1cblxuLy8gdGhlIGNvbnRlbnQgY29udGFpbmVyIGNvbnRhaW5pbmcgdGhlIGNvbnRlbnQgYXJlYVxuLm1haW4tY29udGVudC1jb250YWluZXIge1xuICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vLyBUaGUgY29udGVudCBhcmVhIGFzIGEgdGFibGUgY29udGFpbmluZyB0aGUgbWFpbiBjb250ZW50IGFuZCB0aGUgb3V0ZXIgdG9nZ2xlIGJ1dHRvbiBjb250YWluZXJcbi5vdXRlci1jb250ZW50LWFyZWEge1xuICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OnRhYmxlO1xufVxuXG4uY29udGVudC1jb250YWluZXIge1xuICBoZWlnaHQ6MTAwJTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgYWxpZ24tY29udGVudDogbGVmdDtcbiAgd2lkdGg6ODAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBwYWRkaW5nOiAxMHB4O1xufVxuLy8gbmF2IGJ1dHRvbnNcbi5wYWdlLXR1cm4tYnV0dG9uLWNvbnRhaW5lciB7XG4gIGhlaWdodDoxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtaW4td2lkdGg6IHVuc2V0OyAvLyBuZWVkZWQgYmVjYXVzZSBhbmd1bGFyIHNldHMgYW4gb3duIG1pbiB3aWR0aCE/XG4gIHdpZHRoOjIwcHg7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG5cbi5wYWdlLXR1cm4tYnV0dG9uIHsgLy8gZmlsbHMgc2lkZW5hdi1idXR0b24tY29udGFpbmVyIGNvbXBsZXRlbHksIHNvIGFsbCBpcyBvbmUgYnV0dG9uXG4gIGhlaWdodDogMTAwcHg7XG4gIG1pbi13aWR0aDogdW5zZXQ7IC8vIG5lZWRlZCBiZWNhdXNlIGFuZ3VsYXIgc2V0cyBhbiBvd24gbWluIHdpZHRoIT9cbiAgd2lkdGg6IDE1cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8vIHRoZSBjZWxsIHdoZXJlIHRoZSBidXR0b24gd2lsbCBiZSBpbiB0aGUgbWFpbiBjb250ZW50IGFyZWFcbi50b2dnbGUtYnV0dG9uLWNvbnRhaW5lciB7XG4gIGhlaWdodDoxMDAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBhbGlnbi1jb250ZW50OiByaWdodDtcbiAgYWxpZ24taXRlbXM6IHJpZ2h0O1xuICBtaW4td2lkdGg6IDUlO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMWVtO1xufVxuXG4udG9nZ2xlLWJ1dHRvbiB7IC8vIGZpbGxzIHNpZGVuYXYtYnV0dG9uLWNvbnRhaW5lciBjb21wbGV0ZWx5LCBzbyBhbGwgaXMgb25lIGJ1dHRvblxuICBoZWlnaHQ6IDEwMHB4O1xuICBtaW4td2lkdGg6IHVuc2V0OyAvLyBuZWVkZWQgYmVjYXVzZSBhbmd1bGFyIHNldHMgYW4gb3duIG1pbiB3aWR0aCE/XG4gIHdpZHRoOiAxNXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vLyBmb3Igb3B0aW9uc1xuLnJpZ2h0LW91dGVyLWVsZW1lbnQge1xuICBtYXJnaW4tcmlnaHQ6IDNlbTtcbn1cblxuLnJpZ2h0LWlubmVyLWVsZW1lbnQge1xuICBtYXJnaW4tbGVmdDogMWVtO1xufVxuXG4ubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogcmlnaHQ7XG59XG5cbi5pbWFnZXMtY29udGFpbmVyIHtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi5pbWFnZS1zZWxsLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG4iLCJtYXQtY2FyZCB7XG4gIGhlaWdodDogODV2aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRyYXdlciB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIHdpZHRoOiAyNSU7XG59XG5cbi5pbi1kcmF3ZXItY29udGVudC1hcmVhIHtcbiAgbWluLWhlaWdodDogMzAwcHg7XG4gIGhlaWdodDogNzB2aDtcbiAgbWluLXdpZHRoOiA5NSU7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuXG4uaW4tZHJhd2VyLXRvZ2dsZS1idXR0b24tY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBtaW4td2lkdGg6IDEwJTtcbiAgd2lkdGg6IDEwJTtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbn1cblxuLmluLWRyYXdlci1jb250ZW50LWNvbnRhaW5lciB7XG4gIGhlaWdodDogMTAwJTtcbiAgYWxpZ24tY29udGVudDogbGVmdDtcbiAgd2lkdGg6IDkwJTtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgcGFkZGluZzogMTBweDtcbn1cblxuLm1haW4tY29udGVudC1jb250YWluZXIge1xuICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4ub3V0ZXItY29udGVudC1hcmVhIHtcbiAgbWluLWhlaWdodDogMzAwcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi5jb250ZW50LWNvbnRhaW5lciB7XG4gIGhlaWdodDogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgYWxpZ24tY29udGVudDogbGVmdDtcbiAgd2lkdGg6IDgwJTtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgcGFkZGluZzogMTBweDtcbn1cblxuLnBhZ2UtdHVybi1idXR0b24tY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtaW4td2lkdGg6IHVuc2V0O1xuICB3aWR0aDogMjBweDtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbn1cblxuLnBhZ2UtdHVybi1idXR0b24ge1xuICBoZWlnaHQ6IDEwMHB4O1xuICBtaW4td2lkdGg6IHVuc2V0O1xuICB3aWR0aDogMTVweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLnRvZ2dsZS1idXR0b24tY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBhbGlnbi1jb250ZW50OiByaWdodDtcbiAgYWxpZ24taXRlbXM6IHJpZ2h0O1xuICBtaW4td2lkdGg6IDUlO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMWVtO1xufVxuXG4udG9nZ2xlLWJ1dHRvbiB7XG4gIGhlaWdodDogMTAwcHg7XG4gIG1pbi13aWR0aDogdW5zZXQ7XG4gIHdpZHRoOiAxNXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4ucmlnaHQtb3V0ZXItZWxlbWVudCB7XG4gIG1hcmdpbi1yaWdodDogM2VtO1xufVxuXG4ucmlnaHQtaW5uZXItZWxlbWVudCB7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG59XG5cbi5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiByaWdodDtcbn1cblxuLmltYWdlcy1jb250YWluZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLmltYWdlLXNlbGwtY29udGFpbmVyIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbn0iXX0= */\"","import {Component, OnInit} from '@angular/core';\nimport {ActivatedRoute, Params, Router} from '@angular/router';\nimport { TlnQueryParams} from '../models/models';\n\n@Component({\n selector: 'app-page-view-wrapper-component',\n templateUrl: './page-view-wrapper.component.html',\n styleUrls: ['./page-view-wrapper.component.scss']\n})\nexport class PageViewWrapperComponent implements OnInit {\n queryParams: TlnQueryParams;\n\n constructor(private router: Router,\n private activatedRoute: ActivatedRoute) { }\n\n ngOnInit() {\n\n this.activatedRoute.queryParams.subscribe( (queryParams: Params ) => {\n this.queryParams = new TlnQueryParams(\n queryParams.navBarOpenState,\n queryParams.NavContext,\n queryParams.manuscript,\n queryParams.page,\n queryParams.selectedLines,\n queryParams.selectedWords,\n queryParams.viewMode,\n queryParams.fullscreen,\n queryParams.zoom\n );\n });\n\n }\n}\n","import { Input, OnChanges } from '@angular/core';\nimport { Configuration } from './models';\n/**\n * This is a super class of components that can be configured by passing\n * a configuration to their inputs and running 'processConfiguration' in \n * 'ngOnChanges'.\n *\n * E.g. given a configuration '{\"ComponentName\": { \"ComponentProperty\": value }}' \n * if \"ComponentName\" is the name of the subclass component then\n * 'processConfiguration' will update its property with name\n * \"ComponentProperty\" to this value. If configuration uses wildcard \"*\" then\n * all components that have a property with name \"ComponentProperty\" will\n * update to this value.\n **/\nexport class ConfigurableComponent implements OnChanges {\n /**\n * the configuration\n **/\n @Input() configuration: Configuration;\n /**\n * index of configuration_listeners pointing to primary name of component\n **/\n private readonly primary_name_index: number = 1;\n /**\n * list of configuration keys \n **/\n protected configuration_listeners: string[] = [ '*', this.constructor.name ];\n\n /**\n * Process configuration by updating properties to given values if the keys\n * in configuration_listeners are part of the configuration.\n **/\n protected processConfiguration(){\n this.configuration_listeners.forEach(key =>{\n if (key in this.configuration){\n Object.getOwnPropertyNames(this.configuration[key]).forEach(conf_key =>{\n if (conf_key in this){\n this[conf_key] = this.configuration[key][conf_key]\n }\n });\n }\n });\n }\n /**\n * Add a further configuration key\n **/\n public addConfigurationName(configuration_listener: string){\n if (this.configuration_listeners.indexOf(configuration_listener) == -1){\n this.configuration_listeners.push(configuration_listener);\n }\n }\n /**\n * Get the primary name of the component.\n **/\n public getConfigurationName(): string {\n return this.configuration_listeners[this.primary_name_index];\n }\n /**\n * update configuration\n **/\n ngOnChanges (){\n if (this.configuration != null){\n this.processConfiguration();\n }\n }\n public static updateConfiguration(oldConfiguration: Configuration, newConfiguration: Configuration): Configuration {\n if (oldConfiguration != null){\n Object.getOwnPropertyNames(newConfiguration).forEach(key =>{\n if (key in oldConfiguration && typeof oldConfiguration[key] == 'object' && typeof newConfiguration[key] == 'object') {\n oldConfiguration[key] = this.updateConfiguration(oldConfiguration[key], newConfiguration[key]);\n } else {\n oldConfiguration[key] = newConfiguration[key]\n }\n }); return oldConfiguration;\n } else {\n return newConfiguration;\n }\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJwYWdlLXZpZXcvY29weXJpZ2h0L2NvcHlyaWdodC1zaGVldC9jb3B5cmlnaHQtc2hlZXQuY29tcG9uZW50LmNzcyJ9 */\"","import { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_BOTTOM_SHEET_DATA} from '@angular/material/bottom-sheet';\nimport { Copyright } from '../../models';\n\n@Component({\n selector: 'copyright-sheet',\n templateUrl: './copyright-sheet.component.html',\n styleUrls: ['./copyright-sheet.component.css']\n})\nexport class CopyrightSheetComponent implements OnInit {\n\n constructor(@Inject(MAT_BOTTOM_SHEET_DATA) private copyright: Copyright) { }\n\n ngOnInit() {\n }\n\n}\n","export default \"#circle {\\n fill: none;\\n}\\n#cc {\\n fill: grey;\\n opacity: 0.2;\\n cursor: pointer;\\n}\\n\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhZ2Utdmlldy9jb3B5cmlnaHQvY29weXJpZ2h0LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxVQUFVO0FBQ2I7QUFDQTtHQUNHLFVBQVU7R0FDVixZQUFZO0dBQ1osZUFBZTtBQUNsQiIsImZpbGUiOiJwYWdlLXZpZXcvY29weXJpZ2h0L2NvcHlyaWdodC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI2NpcmNsZSB7XG4gICBmaWxsOiBub25lO1xufVxuI2NjIHtcbiAgIGZpbGw6IGdyZXk7XG4gICBvcGFjaXR5OiAwLjI7XG4gICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbiJdfQ== */\"","import { Component, OnInit, Input, ElementRef } from '@angular/core';\nimport {MatBottomSheet, MatBottomSheetRef} from '@angular/material/bottom-sheet';\nimport { PageViewService } from '../page-view.service';\nimport { CopyrightSheetComponent } from './copyright-sheet/copyright-sheet.component';\nimport { Copyright, Point } from '../models';\n\n\n@Component({\n selector: 'copyright',\n templateUrl: './copyright.component.html',\n styleUrls: ['./copyright.component.css']\n})\nexport class CopyrightComponent implements OnInit {\n @Input() dimension: number;\n highlight: boolean = false;\n @Input() copyright: Copyright;\n\n constructor(private bottomSheet: MatBottomSheet, private pageViewService: PageViewService) { }\n\n ngOnInit() {\n }\n private setHighlight(highlight: boolean){\n this.highlight = highlight;\n }\n private showCopyrightInformation(e: MouseEvent){\n /*let point: Point = { visible: true, clientX: e.clientX, clientY: e.clientY, layerX: e.layerX, layerY: e.layerY }\n this.pageViewService.copyrightService(this.copyright, point);*/\n this.bottomSheet.open(CopyrightSheetComponent, {\n data: this.copyright \n });\n\n }\n}\n","export enum HIGHTLIGHT_CASES {\n DEFAULT = 'default',\n LINE_HOVERED = 'hovered line',\n SEARCHED_WORD = 'text of word == findText',\n SELECTED_LINE = 'selected line',\n SELECTED_WORD = 'selected word',\n WORD_HOVERED = 'hovered word' \n}\n\n","import { Directive, HostListener, Input, ElementRef, OnInit} from '@angular/core';\nimport { PageViewService } from './page-view.service';\nimport { Interactable, Word, Line } from './models';\n\nexport interface XYOffset {\n x: number;\n y: number;\n}\n/**\n * This directive informs the {@link /injectables/PageViewService.html|PageViewService} about\n * mouse events on interactable objects and scrolls interactable objects in view if they are \n * invisible.\n **/\n@Directive({\n selector: '[interactedObject]'\n})\nexport class InteractedDirective implements OnInit {\n /**\n * the object of this rect\n **/\n @Input('interactedObject') interactedObject: Interactable;\n /**\n * the identification string of this Interactable's textfield (e.g. 'first textfield' or 'second textfield')\n **/\n @Input() identity: string = 'first textfield';\n /**\n * the scrollable HTML-container of this Interactable's textfield.\n **/\n @Input() container: HTMLElement;\n /**\n * The time (in milliseconds) the timer should wait before\n * the element is scrolled in view.\n **/\n delay: number = 500;\n /**\n * The ID of the timeout set by {@link /directives/InteractedDirective.html#timeoutScroll|timeoutScroll}.\n **/\n timeoutID: number = -1;\n /**\n * Whether or not the element should scroll into view when the timer expires.\n **/\n doScroll: boolean = false;\n xyOffset: XYOffset = { x: 0, y: 0 };\n\n constructor(private pageViewService: PageViewService, private el: ElementRef) {}\n\n /**\n * Subscribe to on/offHovered and onClicked methods of the {@link /injectables/PageViewService.html|PageViewService}\n * and scroll hovered object in view if it is invisible.\n **/\n ngOnInit(){\n if (this.container != null && this.container != undefined){\n let containerRect: DOMRect = <DOMRect>this.container.getBoundingClientRect();\n this.xyOffset = { x: containerRect.left, y: containerRect.top };\n }\n this.interactedObject.textfield_identity = this.identity;\n this.pageViewService.onClickedWord.subscribe(\n (clickedWord: Word) => { this.scrollIntoViewIfNeeded(clickedWord, 'Word', 0)\n });\n this.pageViewService.onHoveredWord.subscribe(\n (hoveredWord: Word) => { this.scrollIntoViewIfNeeded(hoveredWord, 'Word')\n });\n this.pageViewService.offHoveredWord.subscribe(\n (hoveredWord: Word) => { \n this.clearTimeout()\n });\n this.pageViewService.offHoveredLine.subscribe(\n (hoveredLine: Line) => { this.clearTimeout()\n });\n this.pageViewService.onHoveredLine.subscribe(\n (hoveredLine: Line) => { this.scrollIntoViewIfNeeded(hoveredLine, 'Line')\n });\n this.pageViewService.onClickedLine.subscribe(\n (clickedLine: Line) => { this.scrollIntoViewIfNeeded(clickedLine, 'Line', 0)\n });\n }\n /**\n * Clear timeout and prevent element from scrolling into view.\n **/\n private clearTimeout(){\n if(this.timeoutID != -1){\n this.doScroll = false;\n clearTimeout(this.timeoutID);\n this.timeoutID = -1;\n }\n }\n /**\n * Scroll interactable object in view if it is invisible.\n * @param hoveredItem interactable object that is hovered \n * @param hoveredType string representation of object's type (i.e. 'Word' | 'Line')\n **/\n private scrollIntoViewIfNeeded(hoveredItem: Interactable, hoveredType: String, delay: number= this.delay){\n if (hoveredType == 'Word' && this.interactedObject.datatype == 'Word' && this.identity != hoveredItem.textfield_identity){\n let hoveredWord = <Word>hoveredItem\n let currentWord = <Word>this.interactedObject\n if (currentWord.id == hoveredWord.id && currentWord.is_top_object && this.isElementInvisible()){\n this.timeoutScroll(delay);\n }\n } else if (hoveredType =='Line' && this.interactedObject.datatype == 'Line'){\n let hoveredLine = <Line>hoveredItem\n let currentLine = <Line>this.interactedObject\n if (currentLine !== hoveredLine && currentLine.id == hoveredLine.id && this.isElementInvisible()){\n this.timeoutScroll(delay)\n }\n }\n }\n /**\n * Scroll element in view if timeout has not been canceled during its countdown.\n **/\n private timeoutScroll(delay: number) {\n let behavior = (delay == 0) ? \"instant\" : \"smooth\";\n this.doScroll = true;\n this.timeoutID = window.setTimeout(()=>{\n if (this.doScroll){\n this.el.nativeElement.scrollIntoView({ 'behavior': behavior}); \n }\n }, delay);\n }\n /**\n * Return whether interactable object is invisible, i.e. whether it is outside of\n * its scrollable container's viewport.\n **/\n private isElementInvisible(): boolean {\n if (this.container == null || this.container == undefined || this.container.getAttribute('class') == 'inline'){\n return false;\n }\n let myRect: DOMRect = <DOMRect>this.el.nativeElement.getBoundingClientRect(); \n let containerRect: DOMRect = <DOMRect>this.container.getBoundingClientRect();\n return myRect.top < containerRect.top \n || myRect.bottom > containerRect.bottom\n || myRect.left < containerRect.left\n || myRect.right > containerRect.right;\n }\n /**\n * informs the {@link /injectables/PageViewService.html|PageViewService} about\n * click events on {@link #interactedObject|interactedObject}.\n **/\n @HostListener('click', ['$event']) onMouseClick( e: MouseEvent) {\n this.pageViewService.onClickService(this.interactedObject, { visible: true, layerX: e.layerX, layerY: e.layerY, clientX: e.clientX, clientY: e.clientY });\n }\n /**\n * informs the {@link /injectables/PageViewService.html|PageViewService} about\n * mouse enter events on {@link #interactedObject|interactedObject}.\n **/\n @HostListener('mouseenter', ['$event']) onMouseEnter( e: MouseEvent) {\n this.pageViewService.onHoverService(this.interactedObject, { visible: true, layerX: e.layerX, layerY: e.layerY, clientX: e.clientX, clientY: e.clientY });\n }\n /**\n * informs the {@link /injectables/PageViewService.html|PageViewService} about\n * mouse leave events on {@link #interactedObject|interactedObject}.\n **/\n @HostListener('mouseleave') onMouseLeave() {\n this.pageViewService.offHoverService(this.interactedObject);\n }\n}\n","export default \".unhighlighted {\\n fill: white;\\n opacity: 0.0;\\n}\\n.highlighted {\\n fill: lightgrey;\\n opacity: 0.3;\\n}\\n.mouse-pointer {\\n cursor: pointer;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhZ2Utdmlldy9tYXJnaW4tZmllbGQvbGluZS1yZWZlcmVuY2UvbGluZS1yZWZlcmVuY2UuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLFdBQVc7R0FDWCxZQUFZO0FBQ2Y7QUFDQTtHQUNHLGVBQWU7R0FDZixZQUFZO0FBQ2Y7QUFDQTtHQUNHLGVBQWU7QUFDbEIiLCJmaWxlIjoicGFnZS12aWV3L21hcmdpbi1maWVsZC9saW5lLXJlZmVyZW5jZS9saW5lLXJlZmVyZW5jZS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnVuaGlnaGxpZ2h0ZWQge1xuICAgZmlsbDogd2hpdGU7XG4gICBvcGFjaXR5OiAwLjA7XG59XG4uaGlnaGxpZ2h0ZWQge1xuICAgZmlsbDogbGlnaHRncmV5O1xuICAgb3BhY2l0eTogMC4zO1xufVxuLm1vdXNlLXBvaW50ZXIge1xuICAgY3Vyc29yOiBwb2ludGVyO1xufVxuIl19 */\"","import { Component, OnInit, Input } from '@angular/core';\nimport { Line, Continuation, Point, Reference } from '../../models';\nimport { PageViewService } from '../../page-view.service';\n\n@Component({\n selector: 'line-reference',\n templateUrl: './line-reference.component.html',\n styleUrls: ['./line-reference.component.css']\n})\nexport class LineReferenceComponent implements OnInit {\n @Input() line: Line;\n @Input('showReference') referenceName: string;\n highlighted: boolean = false;\n continuation: Continuation;\n reference: Reference;\n\n constructor(private pageViewService: PageViewService) { }\n\n ngOnInit() { \n if (this.line != null && this.referenceName != '' && ((this.referenceName == 'to' && this.line.continuesTo != null)\n || (this.referenceName == 'from' && this.line.continuesFrom != null))){\n this.reference = (this.referenceName == 'to') ? this.line.continuesTo : this.line.continuesFrom;\n this.continuation = { source: this.line.source, reference: this.reference, datatype: 'Continuation', show: this.referenceName }\n }\n }\n\n private showReference(show: boolean, e: MouseEvent){\n this.highlighted = show;\n let point: Point = { visible: show, clientX: e.clientX-10, clientY: e.clientY-80, layerX: e.layerX, layerY: e.layerY }\n if (show){\n this.pageViewService.onHoverService(this.continuation, point);\n this.pageViewService.onHoverService(this.line)\n } else {\n this.pageViewService.offHoverService(this.continuation);\n this.pageViewService.offHoverService(this.line)\n }\n }\n private changeLocation(){\n this.pageViewService.referenceService(this.reference);\n }\n}\n","export default \".marginfield {\\n background-color: white;\\n cursor: default;\\n}\\n\\n.marginfield .text {\\n font-size: 8px;\\n}\\n\\n.marginfield .unhighlighted {\\n fill: white;\\n opacity: 0.0;\\n}\\n\\n.marginfield .highlight {\\n fill: yellow;\\n opacity: 0.3;\\n}\\n\\n.marginfield .border {\\n stroke: #e2fa00;\\n stroke-width:5;\\n opacity: 0.3;\\n}\\n\\n.marginfield .howered_line {\\n fill: #fa301c;\\n opacity: 0.3;\\n}\\n\\n.marginfield .same_word {\\n fill: #c9fac5;\\n opacity: 0.3;\\n}\\n\\n.text_fadeout {\\n fill: #a4a4a4;\\n}\\n\\n.hover {\\n transform: scale(1.5);\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhZ2Utdmlldy9tYXJnaW4tZmllbGQvbWFyZ2luLWZpZWxkLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSx1QkFBdUI7RUFDdkIsZUFBZTtBQUNqQjs7QUFFQTtHQUNHLGNBQWM7QUFDakI7O0FBRUE7R0FDRyxXQUFXO0dBQ1gsWUFBWTtBQUNmOztBQUNBO0dBQ0csWUFBWTtHQUNaLFlBQVk7QUFDZjs7QUFDQTtFQUNFLGVBQWU7RUFDZixjQUFjO0VBQ2QsWUFBWTtBQUNkOztBQUNBO0VBQ0UsYUFBYTtFQUNiLFlBQVk7QUFDZDs7QUFFQTtFQUNFLGFBQWE7RUFDYixZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxxQkFBcUI7QUFDdkIiLCJmaWxlIjoicGFnZS12aWV3L21hcmdpbi1maWVsZC9tYXJnaW4tZmllbGQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tYXJnaW5maWVsZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5tYXJnaW5maWVsZCAudGV4dCB7XG4gICBmb250LXNpemU6IDhweDtcbn1cblxuLm1hcmdpbmZpZWxkIC51bmhpZ2hsaWdodGVkIHtcbiAgIGZpbGw6IHdoaXRlO1xuICAgb3BhY2l0eTogMC4wO1xufVxuLm1hcmdpbmZpZWxkIC5oaWdobGlnaHQge1xuICAgZmlsbDogeWVsbG93O1xuICAgb3BhY2l0eTogMC4zO1xufVxuLm1hcmdpbmZpZWxkIC5ib3JkZXIge1xuICBzdHJva2U6ICNlMmZhMDA7XG4gIHN0cm9rZS13aWR0aDo1O1xuICBvcGFjaXR5OiAwLjM7XG59XG4ubWFyZ2luZmllbGQgLmhvd2VyZWRfbGluZSB7XG4gIGZpbGw6ICNmYTMwMWM7XG4gIG9wYWNpdHk6IDAuMztcbn1cblxuLm1hcmdpbmZpZWxkIC5zYW1lX3dvcmQge1xuICBmaWxsOiAjYzlmYWM1O1xuICBvcGFjaXR5OiAwLjM7XG59XG5cbi50ZXh0X2ZhZGVvdXQge1xuICBmaWxsOiAjYTRhNGE0O1xufVxuXG4uaG92ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG59XG4iXX0= */\"","import { Component, Input, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { externalAssignStyle, Continuation, Identifier, Line, LineStub, TextField, Word} from '../models';\nimport { PageViewService } from '../page-view.service';\nimport { HIGHTLIGHT_CASES } from '../highlight_status';\n/**\n * This component displays an Array of lines.\n **/\n@Component({\n selector: 'margin-field',\n templateUrl: './margin-field.component.html',\n styleUrls: ['./margin-field.component.css']\n})\nexport class MarginFieldComponent implements OnInit, OnChanges {\n /**\n * scrollable HTML-container of this textfield\n **/\n @Input() container: HTMLElement;\n /**\n * the hovered status for a line\n **/\n HOVERED_STATUS: string = HIGHTLIGHT_CASES.LINE_HOVERED\n SELECTED_STATUS: string = HIGHTLIGHT_CASES.SELECTED_LINE\n /**\n * the currently hovered line\n * */\n hoveredLine?: Line;\n /**\n * the currently hovered reference line\n * */\n hoveredReferenceLine?: LineStub;\n /**\n * the currently hovered word\n * */\n hoveredWord?: Word;\n /**\n * an Array of lines that will be displayed.\n **/\n @Input() lines: Line[];\n /**\n * the height of a line rect.\n **/\n line_height: number = 8;\n /**\n * the length of the line rect.\n **/\n line_length: number = 10;\n /**\n * x coordinate of the line rect.\n **/\n line_x: number = 5;\n /**\n * the height of the margin field.\n **/\n margin_height: number = 973.91998;\n /**\n * geometrical top position of the margin field.\n **/\n margin_top: number = 0;\n /**\n * the width of the margin field.\n **/\n margin_width: number = 30;\n /**\n * specifies reference type that should be displayed\n **/\n @Input() showReference: string = \"to\"\n /**\n * The area of the image that will be displayed by {@link /components/TextFieldComponent.html|TextFieldComponent}.\n * The height of the text_field determines {@link #margin_height|margin_height}, while its top position\n * determines {@link #margin_top|margin_top}.\n **/\n @Input() text_field: TextField;\n /**\n * The viewbox of this svg component.\n **/\n viewBox: string = '';\n /**\n * initial maximum height of margin field.\n **/\n @Input() max_height: number = -1;\n /**\n * initial maximum width of margin field.\n **/\n @Input() max_width: number = -1;\n /**\n * identifiers of selected lines that should be highlighted.\n **/\n @Input() selectedLines: Identifier[] = [];\n /**\n * global zoom factor\n **/\n @Input() zoomFactor: number = 1;\n /**\n * An optional function that can be passed to this component in order to return a (svg-)style object \n * to the line rects. This function allows the user to extend the style of this component.\n * E.g. by returning { fill: blue } the function overwrites the default behaviour and sets\n * the default highlight color to blue.\n **/\n @Input('assignStyle') extAssignStyle?: externalAssignStyle;\n /**\n * local zoom factor\n **/\n local_zoom: number = 1;\n\n /**\n * @param lineservice an information source about (un-)hovered and clicked Lines/Words.\n **/\n constructor( private lineservice: PageViewService) { }\n\n /**\n * Initialize geometrical information and subscribe to {@link /injectables/PageViewService.html|PageViewService}.\n **/\n ngOnInit() {\n if (this.max_height == -1 && this.max_width == -1){\n this.max_height = screen.availHeight;\n }\n this.viewBox = 0 + ' ' + this.margin_top + ' ' + this.margin_width + ' ' + this.margin_height;\n if (this.text_field != null) {\n this.updateViewBox()\n } \n this.lineservice.onHoveredLine.subscribe(\n (changedLine: Line) => { this.hoveredLine = changedLine;}\n );\n this.lineservice.onHoveredContinuation.subscribe(\n (changedContinuation: Continuation) => { this.hoveredReferenceLine = changedContinuation.reference.line;}\n );\n this.lineservice.offHoveredContinuation.subscribe(\n (changedContinuation: Continuation) => { this.hoveredReferenceLine = null}\n );\n this.lineservice.offHoveredLine.subscribe(\n (changedLine: Line) => { this.hoveredLine = null; }\n );\n this.lineservice.onHoveredWord.subscribe(\n (changedWord: Word) => { this.hoveredWord = changedWord;}\n );\n this.lineservice.offHoveredWord.subscribe(\n (changedWord: Word) => { this.hoveredWord = null; }\n );\n }\n /**\n * Update viewBox if there is a change.\n **/\n ngOnChanges(changes: SimpleChanges) {\n if (this.text_field != null) {\n this.updateViewBox()\n } \n }\n /**\n * Update viewBox: set \n * {@link #margin_height|margin_height}, \n * {@link #margin_top|margin_top},\n * {@link #viewBox|viewBox}\n * and {@link #local_zoom|local_zoom} according to \n * {@link #text_field|text_field}.\n **/\n private updateViewBox(){\n this.lines.forEach(line =>line.datatype = \"Line\");\n if (this.showReference == 'to'){\n this.margin_width = (this.lines.some(line =>line.continuesTo != null || line.continuesTo != undefined)) ? this.line_length*2+30 : 30;\n } else {\n let hasReference = this.lines.some(line =>line.continuesFrom != null || line.continuesFrom != undefined)\n this.margin_width = (this.showReference == 'from' && hasReference) ? this.line_length*2+30 : 30;\n this.line_x = (this.showReference == 'from' && hasReference) ? 2*this.line_length : 5;\n }\n this.margin_height = this.text_field.height;\n this.margin_top = this.text_field.top;\n this.viewBox = 0 + ' ' + this.margin_top + ' ' + this.margin_width + ' ' + this.margin_height;\n this.local_zoom = (this.max_height != -1 && this.max_width == -1) \n ? this.max_height/this.text_field.height : this.max_width/this.text_field.width;\n if (this.max_width == -1 && this.text_field.height < this.text_field.width){\n this.local_zoom = (window.innerWidth/2-100)/this.text_field.width;\n }\n\n }\n /**\n * Get the hover status of a line, i.e. whether it is hovered \n * ({@link /miscellaneous/enumerations.html#HIGHTLIGHT_CASES|HIGHTLIGHT_CASES.LINE_HOVERED})\n * or not ({@link /miscellaneous/enumerations.html#HIGHTLIGHT_CASES|HIGHTLIGHT_CASES.DEFAULT}).\n **/\n private getHoverStatus(line: Line): string {\n if ( (this.hoveredLine != undefined && this.hoveredLine != null && line.id == this.hoveredLine.id) \n || (this.hoveredReferenceLine != undefined && this.hoveredReferenceLine != null && line.id == this.hoveredReferenceLine.id)\n || (this.hoveredWord != undefined && this.hoveredWord != null && line.id == this.hoveredWord.line)) {\n return HIGHTLIGHT_CASES.LINE_HOVERED; \n } else if (this.selectedLines.length > 0 && this.selectedLines.indexOf(line.id) > -1) {\n return HIGHTLIGHT_CASES.SELECTED_LINE\n } else {\n return HIGHTLIGHT_CASES.DEFAULT; \n }\n }\n /**\n * Assign a style to the rects of a line.\n **/\n private assignStyle(line: Line, hoveredWord: Word, hoveredLine: Line, hoverStatus: string): Object {\n return (this.extAssignStyle != null) ? this.extAssignStyle(line, hoveredWord, hoveredLine, hoverStatus) : {};\n }\n\n}\n","export default \"#page {\\n width: 100%;\\n margin: 0;\\n padding: 0;\\n white-space: nowrap;\\n}\\n.inline {\\n display: inline-block;\\n}\\n.breakline {\\n display: block;\\n height: 50%;\\n overflow: scroll;\\n}\\n.gap {\\n display: inline-block;\\n width: 1px;\\n height: 100%;\\n margin: 0;\\n}\\n#margin {\\n display: inline-block;\\n height: 100%;\\n margin: 0;\\n}\\n#textfield {\\n display: inline-block;\\n /*width: 95%;*/\\n height: 100%;\\n margin: 0;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhZ2Utdmlldy9wYWdlLXZpZXcuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLFdBQVc7R0FDWCxTQUFTO0dBQ1QsVUFBVTtHQUNWLG1CQUFtQjtBQUN0QjtBQUNBO0dBQ0cscUJBQXFCO0FBQ3hCO0FBQ0E7R0FDRyxjQUFjO0dBQ2QsV0FBVztHQUNYLGdCQUFnQjtBQUNuQjtBQUNBO0dBQ0cscUJBQXFCO0dBQ3JCLFVBQVU7R0FDVixZQUFZO0dBQ1osU0FBUztBQUNaO0FBQ0E7R0FDRyxxQkFBcUI7R0FDckIsWUFBWTtHQUNaLFNBQVM7QUFDWjtBQUNBO0dBQ0cscUJBQXFCO0dBQ3JCLGNBQWM7R0FDZCxZQUFZO0dBQ1osU0FBUztBQUNaIiwiZmlsZSI6InBhZ2Utdmlldy9wYWdlLXZpZXcuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiNwYWdlIHtcbiAgIHdpZHRoOiAxMDAlO1xuICAgbWFyZ2luOiAwO1xuICAgcGFkZGluZzogMDtcbiAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uaW5saW5lIHtcbiAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5icmVha2xpbmUge1xuICAgZGlzcGxheTogYmxvY2s7XG4gICBoZWlnaHQ6IDUwJTtcbiAgIG92ZXJmbG93OiBzY3JvbGw7XG59XG4uZ2FwIHtcbiAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgIHdpZHRoOiAxcHg7XG4gICBoZWlnaHQ6IDEwMCU7XG4gICBtYXJnaW46IDA7XG59XG4jbWFyZ2luIHtcbiAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgIGhlaWdodDogMTAwJTtcbiAgIG1hcmdpbjogMDtcbn1cbiN0ZXh0ZmllbGQge1xuICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgLyp3aWR0aDogOTUlOyovXG4gICBoZWlnaHQ6IDEwMCU7XG4gICBtYXJnaW46IDA7XG59XG4iXX0= */\"","import { Component, Input, OnInit, OnChanges} from '@angular/core';\nimport { externalAssignClass, externalAssignStyle, Configuration, Identifier, Image, Line, TextField, TextByForeignHand, Word} from './models';\n/**\n * This component displays one or two {@link /components/TextFieldComponent.html|TextFieldComponent(s)} \n * and its or their {@link /components/MarginFieldComponent.html|MarginFieldComponent(s)}.\n **/\n@Component({\n selector: 'page-view',\n templateUrl: './page-view.component.html',\n styleUrls: ['./page-view.component.css']\n})\nexport class PageViewComponent implements OnInit, OnChanges {\n @Input() configuration: Configuration;\n /**\n * the search text of words that should be highlighted as {@link /miscellaneous/enumerations.html#HIGHTLIGHT_CASES|HIGHTLIGHT_CASES.SEARCHED_WORD}.\n **/\n @Input() findText: string;\n /**\n * first texts written by foreign hand \n **/\n @Input() first_foreign_texts: TextByForeignHand[] = [];\n /**\n * the first image that will be displayed by {@link /components/TextFieldComponent.html|TextFieldComponent}.\n **/\n @Input() first_image: Image;\n /**\n * the Array of lines of the first image that will be displayed by {@link /components/MarginFieldComponent.html|MarginFieldComponent}.\n **/\n @Input() first_lines: Line[];\n /**\n * Identification of first textfield.\n **/\n first_textfield_id: string = 'first textfield'\n /**\n * the Array of words of the first image that will be displayed by {@link /components/TextFieldComponent.html|TextFieldComponent}.\n **/\n @Input() first_words: Word[];\n /**\n * the (initial) maximum height of the image(s).\n **/\n @Input() max_height: number = -1;\n /**\n * the (initial) maximum width of the image(s).\n **/\n @Input() max_width: number = -1;\n /**\n * should primary Url be used for image. Use secondary Url if false.\n **/\n @Input() preferPrimaryUrl: boolean = true;\n /**\n * second texts written by foreign hand \n **/\n @Input() second_foreign_texts: TextByForeignHand[] = [];\n /**\n * the second image that will be displayed by {@link /components/TextFieldComponent.html|TextFieldComponent}.\n **/\n @Input() second_image: Image;\n /**\n * the Array of lines of the second image that will be displayed by {@link /components/MarginFieldComponent.html|MarginFieldComponent}.\n **/\n @Input() second_lines: Line[];\n /**\n * Identification of second textfield.\n **/\n second_textfield_id: string = 'second textfield'\n /**\n * the Array of words of the second image that will be displayed by {@link /components/TextFieldComponent.html|TextFieldComponent}.\n **/\n @Input() second_words: Word[];\n /**\n * An optional function that will be passed to {@link /components/TextFieldComponent.html|TextFieldComponent} \n * in order to return a further highlight class\n * to the word rects when the internal function would return 'textfield unhighlighted'. \n **/\n @Input('assignClass') assignClass?: externalAssignClass;\n /**\n * An optional function that will be passed to {@link /components/TextFieldComponent.html|TextFieldComponent}\n * and {@link /components/MarginFieldComponent.html|MarginFieldComponent}\n * in order to return a (svg-)style object \n * to the word and line rects. This function allows the user to extend the style of this component.\n * E.g. by returning { fill: blue } the function overwrites the default behaviour and sets\n * the default highlight color to blue.\n **/\n @Input('assignStyle') assignStyle?: externalAssignStyle;\n /**\n * global zoom factor.\n **/\n @Input() zoomFactor: number = 1;\n /**\n * identifiers of selected words that should be highlighted.\n **/\n @Input() selectedWords: Identifier[] = [];\n /**\n * identifiers of selected lines that should be highlighted.\n **/\n @Input() selectedLines: Identifier[] = [];\n @Input('startLine') startLineId: Identifier;\n @Input('endLine') endLineId: Identifier;\n @Input() dontShowReference: boolean;\n showReferenceLeft: string = 'from';\n showReferenceRight: string = 'to';\n\n constructor() {}\n \n /**\n * sets {@link /components/PageViewComponent.html#max_height|max_height} if it is unset.\n **/\n ngOnInit() {\n if (this.max_height == -1 && this.max_width == -1){\n this.max_height = screen.availHeight;\n }\n this.checkImages();\n }\n ngOnChanges(){\n if (this.dontShowReference != undefined && this.dontShowReference != null && this.dontShowReference){\n this.showReferenceLeft = ''; \n this.showReferenceRight = '';\n } else {\n this.showReferenceLeft = 'from'; \n this.showReferenceRight = 'to';\n }\n this.checkImages();\n if (this.first_image != null && this.first_image != undefined && this.first_image.transform != null){\n this.updateLines(this.first_words, this.first_lines)\n }\n if (this.second_image != null && this.second_image != undefined && this.second_image.transform != null){\n this.updateLines(this.second_words, this.second_lines)\n }\n }\n private checkImages(){\n if (this.first_image != null && this.first_image != undefined && this.startLineId != null && this.startLineId != undefined){\n if(this.first_lines != null && this.first_lines != undefined && this.first_lines.length > 0){\n this.first_image = this.updateTextField(this.first_image, this.first_lines);\n }\n if(this.second_lines != null && this.second_lines != undefined && this.second_lines.length > 0){\n this.second_image = this.updateTextField(this.second_image, this.second_lines);\n }\n }\n }\n private updateLines(words: Word[], lines: Line[]) {\n for (var i = 0; i < lines.length; i++){\n if (words.filter(word =>word.line == lines[i].id).length > 0){\n lines[i].top = words.filter(word =>word.line == lines[i].id).map(word =>Number(word.top)).sort(function(a,b){ return a-b; })[0]\n lines[i].bottom = words.filter(word =>word.line == lines[i].id).map(word =>Number(word.top)+Number(word.height)).sort(function(a,b){ return b-a; })[0]\n }\n }\n }\n private updateTextField(image: Image, lines: Line[]): Image {\n let endLineId = (this.endLineId != null && this.endLineId != undefined) ? this.endLineId : this.startLineId;\n let startLines = lines.filter(line =>line.id == this.startLineId)\n let endLines = lines.filter(line =>line.id == endLineId)\n if (startLines.length > 0 && endLines.length > 0){\n let top = (startLines[0].top > 10) ? startLines[0].top-10 : startLines[0].top;\n let height = (endLines[0].bottom-top)+10;\n let text_field: TextField = { top: top, left: image.text_field.left, width: image.text_field.width, height: height }\n return { x: image.x, y: image.y, width: image.width, height: image.height, filename: image.filename,\n URL: image.URL, secondaryURL: image.secondaryURL, text_field: text_field, transform: image.transform, \n copyright: image.copyright }\n }\n return image;\n }\n /**\n * Returns whether the two images can be displayed as columns.\n **/\n private hasColumnStyle(): boolean {\n if (this.zoomFactor <= 1 || this.first_image == null || this.second_image == null){\n return true \n }\n let newLeftWidth = this.max_height/this.first_image.text_field.height*this.zoomFactor*this.first_image.text_field.width;\n let newRightWidth = this.max_height/this.second_image.text_field.height*this.zoomFactor*this.second_image.text_field.width;\n return newLeftWidth + newRightWidth < screen.availWidth;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MatBottomSheetModule,MatButtonModule,MatCheckboxModule,MatDialogModule,MatExpansionModule,MatFormFieldModule,MatInputModule,MatListModule,MatPaginatorModule,MatRadioModule,MatSelectModule,MatSidenavModule,MatSortModule,MatTableModule,MatToolbarModule,MatButtonToggleModule,MatCardModule,MatIconModule,MatMenuModule,MatTabsModule,MatTooltipModule\n} from '@angular/material';\nimport { NgxMatStandoffMarkupModule } from '../lib/ngx-mat-standoff-markup.module';\nimport { MarginFieldComponent } from './margin-field/margin-field.component';\nimport { TextFieldComponent} from './textfield-component/textfield.component';\nimport { InteractedDirective } from './interacted.directive';\nimport { PageViewComponent } from './page-view.component';\nimport { PageViewService } from './page-view.service';\nimport { CopyrightComponent } from './copyright/copyright.component';\nimport { LineReferenceComponent } from './margin-field/line-reference/line-reference.component';\nimport { CopyrightSheetComponent } from './copyright/copyright-sheet/copyright-sheet.component';\n\n@NgModule({\n declarations: [\n InteractedDirective,\n MarginFieldComponent,\n TextFieldComponent,\n PageViewComponent,\n CopyrightComponent,\n LineReferenceComponent,\n CopyrightSheetComponent\n ],\n imports: [\n MatBottomSheetModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatCardModule,\n MatCheckboxModule,\n MatDialogModule,\n MatExpansionModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatPaginatorModule,\n MatRadioModule,\n MatSelectModule,\n MatSidenavModule,\n MatSortModule,\n MatTableModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n CommonModule\n ],\n providers: [\n PageViewService\n ],\n exports: [\n MarginFieldComponent,\n TextFieldComponent,\n PageViewComponent,\n CopyrightComponent\n ],\n entryComponents: [CopyrightSheetComponent]\n})\nexport class PageViewModule { }\n","import {EventEmitter, Injectable} from '@angular/core';\nimport { Configuration, Continuation, Copyright, Interactable, Line, Point, Reference, TextByForeignHand, Word } from './models';\n/**\n * This is an information service about clicked and (un-)hovered\n * {@link /interfaces/Line.html|Lines}, \n * {@link /miscellaneous/typealiases.html#Word|Words}.\n * and {@link /interfaces/TextByForeignHand.html|TextByForeignHands}.\n * */\n@Injectable()\nexport class PageViewService {\n /**\n * hovered line emitter\n **/\n onHoveredLine = new EventEmitter<Line>();\n /**\n * off hovered line emitter\n **/\n offHoveredLine = new EventEmitter<Line>();\n /**\n * clicked line emitter\n **/\n onClickedLine = new EventEmitter<Line>();\n /**\n * hovered word emitter\n **/\n onHoveredWord = new EventEmitter<Word>();\n /**\n * off hovered word emitter\n **/\n offHoveredWord = new EventEmitter<Word>();\n /**\n * clicked word emitter\n **/\n onClickedWord = new EventEmitter<Word>();\n /**\n * clicked text by foreign hand emitter\n **/\n onClickedTextByForeignHand = new EventEmitter<TextByForeignHand>();\n /**\n * hovered text by foreign hand emitter\n **/\n onHoveredTextByForeignHand = new EventEmitter<TextByForeignHand>();\n /**\n * off hovered text by foreign hand emitter\n **/\n offHoveredTextByForeignHand = new EventEmitter<TextByForeignHand>();\n /**\n * hovered line continuation \n **/\n onHoveredContinuation = new EventEmitter<Continuation>();\n /**\n * off hovered line continuation \n **/\n offHoveredContinuation = new EventEmitter<Continuation>();\n /**\n * point where mouse hovered/clicked\n **/\n mousePosition = new EventEmitter<Point>();\n /**\n * Reference change emitter, subscribe in order to navigate to reference.\n **/\n reference = new EventEmitter<Reference>();\n /**\n * copyright change emitter\n * */\n copyright = new EventEmitter<Copyright>();\n\n public referenceService(reference: Reference){\n this.reference.emit(reference);\n }\n public copyrightService(copyright: Copyright, point?: Point){\n this.copyright.emit(copyright);\n if (point != null && point != undefined){\n this.mousePosition.emit(point);\n }\n }\n /**\n * emit an event on 'onClicked' + interactable.datatype\n **/\n public onClickService(interactable: Interactable, point?: Point){\n this['onClicked' + interactable.datatype].emit(interactable);\n if (interactable.datatype != 'Line' && point != null && point != undefined){\n this.mousePosition.emit(point);\n }\n }\n /**\n * emit an event on 'onHover' + interactable.datatype\n **/\n public onHoverService(interactable: Interactable, point?: Point){\n this['onHovered' + interactable.datatype].emit(interactable);\n if (interactable.datatype != 'Line' && point != null && point != undefined){\n this.mousePosition.emit(point);\n }\n }\n /**\n * emit an event on 'offHover' + interactable.datatype\n **/\n public offHoverService(interactable: Interactable){\n this['offHovered' + interactable.datatype].emit(interactable);\n this.mousePosition.emit({visible: false, clientX: -1, clientY: -1, layerX: -1, layerY: -1 });\n }\n}\n","export class Matrix {\n private readonly offset: number = -140;\n private readonly A: number = 0\n private readonly B: number = 1\n private readonly C: number = 2\n private readonly D: number = 3\n private readonly E: number = 4\n private readonly F: number = 5\n matrix: number[] = [ 1, 0, 0, 1, 0, 0 ]\n\n constructor(matrix_string: string, zoomFactor?: number){\n if (matrix_string.startsWith('matrix')){\n this.matrix = matrix_string.replace('matrix(','').replace(')','').split(' ').map(n =>Number(n))\n } else if (matrix_string.startsWith('rotation')){\n let angle = Number(matrix_string.replace('rotation(','').replace(')',''))\n let radians = Math.PI/180*angle\n this.matrix[this.A] = Math.round(Math.cos(radians))\n this.matrix[this.B] = Math.sin(radians)\n this.matrix[this.C] = Math.sin(radians)*-1\n this.matrix[this.D] = Math.round(Math.cos(radians))\n }\n if (zoomFactor != null){\n this.matrix[this.E] = zoomFactor*this.offset\n this.matrix[this.F] = zoomFactor*this.offset\n }\n }\n\n public toString(): string {\n return 'matrix(' + this.matrix.map(n =>String(n)).join(' ') + ')'\n }\n}\n","export default \".textfield {\\n background-color: #DADADA;\\n}\\n.textfield .deleted {\\n fill: grey;\\n opacity: 0.3;\\n}\\n.textfield .highlight_red {\\n fill: #e20000;\\n opacity: 0.3;\\n}\\n.textfield .highlight_yellow {\\n fill: #e2fa00;\\n opacity: 0.3;\\n}\\n.textfield .highlight_magenta {\\n fill: #FF00FF;\\n opacity: 0.3;\\n}\\n.textfield .highlight_foreign_text {\\n fill: blue;\\n opacity: 0.5;\\n}\\n.textfield .unhighlighted {\\n opacity: 0.0;\\n}\\n.textfield .highlight_path {\\n stroke: red;\\n fill: none;\\n stroke-width: 0.2;\\n}\\n.textfield .unhighlighted_path {\\n stroke: none;\\n fill: none;\\n opacity: 0.0;\\n}\\n.textfield .border {\\n stroke: #e2fa00;\\n stroke-width:5;\\n opacity: 0.3;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhZ2Utdmlldy90ZXh0ZmllbGQtY29tcG9uZW50L3RleHRmaWVsZC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsWUFBWTtBQUNkO0FBQ0E7RUFDRSxhQUFhO0VBQ2IsWUFBWTtBQUNkO0FBQ0E7RUFDRSxhQUFhO0VBQ2IsWUFBWTtBQUNkO0FBQ0E7RUFDRSxhQUFhO0VBQ2IsWUFBWTtBQUNkO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsWUFBWTtBQUNkO0FBQ0E7RUFDRSxZQUFZO0FBQ2Q7QUFDQTtHQUNHLFdBQVc7R0FDWCxVQUFVO0dBQ1YsaUJBQWlCO0FBQ3BCO0FBQ0E7R0FDRyxZQUFZO0dBQ1osVUFBVTtHQUNWLFlBQVk7QUFDZjtBQUNBO0VBQ0UsZUFBZTtFQUNmLGNBQWM7RUFDZCxZQUFZO0FBQ2QiLCJmaWxlIjoicGFnZS12aWV3L3RleHRmaWVsZC1jb21wb25lbnQvdGV4dGZpZWxkLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudGV4dGZpZWxkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RBREFEQTtcbn1cbi50ZXh0ZmllbGQgLmRlbGV0ZWQge1xuICBmaWxsOiBncmV5O1xuICBvcGFjaXR5OiAwLjM7XG59XG4udGV4dGZpZWxkIC5oaWdobGlnaHRfcmVkIHtcbiAgZmlsbDogI2UyMDAwMDtcbiAgb3BhY2l0eTogMC4zO1xufVxuLnRleHRmaWVsZCAuaGlnaGxpZ2h0X3llbGxvdyB7XG4gIGZpbGw6ICNlMmZhMDA7XG4gIG9wYWNpdHk6IDAuMztcbn1cbi50ZXh0ZmllbGQgLmhpZ2hsaWdodF9tYWdlbnRhIHtcbiAgZmlsbDogI0ZGMDBGRjtcbiAgb3BhY2l0eTogMC4zO1xufVxuLnRleHRmaWVsZCAuaGlnaGxpZ2h0X2ZvcmVpZ25fdGV4dCB7XG4gIGZpbGw6IGJsdWU7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbi50ZXh0ZmllbGQgLnVuaGlnaGxpZ2h0ZWQge1xuICBvcGFjaXR5OiAwLjA7XG59XG4udGV4dGZpZWxkIC5oaWdobGlnaHRfcGF0aCB7XG4gICBzdHJva2U6IHJlZDtcbiAgIGZpbGw6IG5vbmU7XG4gICBzdHJva2Utd2lkdGg6IDAuMjtcbn1cbi50ZXh0ZmllbGQgLnVuaGlnaGxpZ2h0ZWRfcGF0aCB7XG4gICBzdHJva2U6IG5vbmU7XG4gICBmaWxsOiBub25lO1xuICAgb3BhY2l0eTogMC4wO1xufVxuLnRleHRmaWVsZCAuYm9yZGVyIHtcbiAgc3Ryb2tlOiAjZTJmYTAwO1xuICBzdHJva2Utd2lkdGg6NTtcbiAgb3BhY2l0eTogMC4zO1xufVxuIl19 */\"","import { Component, ElementRef, Input, Output, EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { externalAssignClass, externalAssignStyle, Configuration, Continuation, Identifier, Image, Line, Position, PositionalObject, TextByForeignHand, Word, USE_EXTERNAL_TOOLTIP} from '../models';\nimport { PageViewService } from '../page-view.service';\nimport { HIGHTLIGHT_CASES } from '../highlight_status';\nimport { ConfigurableComponent } from '../configurable-component';\nimport { Matrix } from './matrix';\n/**\n * This component displays an image with word hovers.\n **/\n@Component({\n selector: 'text-field',\n templateUrl: './textfield.component.html',\n styleUrls: ['./textfield.component.css']\n})\nexport class TextFieldComponent extends ConfigurableComponent implements OnInit, OnChanges {\n /**\n * scrollable HTML-container of this textfield\n **/\n @Input() container: HTMLElement;\n /**\n * the currently clicked word\n * */\n clickedWord?: Word;\n /**\n * Debug mode.\n **/\n debug: boolean = false;\n /**\n * the search text of words that should be highlighted as {@link /miscellaneous/enumerations.html#HIGHTLIGHT_CASES|HIGHTLIGHT_CASES.SEARCHED_WORD}.\n **/\n @Input() findText: string;\n /**\n * texts written by foreign hand\n **/\n @Input() foreign_texts: TextByForeignHand[] = [];\n /**\n * the currently hovered line\n * */\n hoveredLine?: Line;\n /**\n * the currently hovered text by foreign hand\n * */\n hoveredTextByForeignHand?: TextByForeignHand;\n /**\n * the currently hovered word\n * */\n hoveredWord?: Word;\n /**\n * the image that will be displayed.\n **/\n @Input() image: Image;\n /**\n * textfield's identity.\n **/\n @Input() identity: string = 'first textfield';\n /**\n * The (unzoomed) height of the root svg.\n *\n * (The actual height is 'image_height*local_zoom*zoomFactor'\n * */\n image_height: number = 400;\n /**\n * image properties for the svg-image.\n * */\n imageSpec = { x: 0, y: 0, height: 973.91998, width: 2038.5601, URL: null, secondaryURL: null, transform: 'matrix(1 0 0 1 0 0)' };\n /**\n * The (unzoomed) width of the root svg.\n *\n * (The actual width is 'image_width*local_zoom*zoomFactor'\n * */\n image_width: number = 300;\n /**\n * the viewBox of the root svg specifying the area of the svg that will be shown.\n * */\n viewBox: string = '';\n /**\n * the (initial) maximum height of the image.\n **/\n @Input() max_height: number = -1;\n /**\n * the (initial) maximum width of the image.\n **/\n @Input() max_width: number = -1;\n /**\n * should primary Url be used for image. Use secondary Url if false.\n **/\n @Input() preferPrimaryUrl: boolean = true;\n /**\n * Use extended tooltip.\n **/\n @Input() useExtendedTooltip: boolean = false;\n /**\n * the words that will be displayed as rects on the image.\n **/\n @Input() words: Word[];\n /**\n * global zoom factor.\n **/\n @Input() zoomFactor: number = 1;\n /**\n * local zoom factor that sets the height and width of the image according to {@link #max_height|max_height}.\n * */\n local_zoom: number = 1;\n /**\n * An optional function that can be passed to this component in order to return a further highlight class\n * to the word rects when the internal function would return 'textfield unhighlighted'.\n **/\n @Input('assignClass') externalAssignClassAfter?: externalAssignClass;\n /**\n * An optional function that can be passed to this component in order to return a (svg-)style object\n * to the word rects. This function allows the user to extend the style of this component.\n * E.g. by returning { fill: blue } the function overwrites the default behaviour and sets\n * the default highlight color to blue.\n **/\n @Input('assignStyle') extAssignStyle?: externalAssignStyle;\n /**\n * identifiers of selected words that should be highlighted.\n **/\n @Input() selectedWords: Identifier[] = [];\n /**\n * identifiers of selected lines that should be highlighted.\n **/\n @Input() selectedLines: Identifier[] = [];\n /**\n * @param pageViewService an information source about (un-)hovered and clicked Lines/Words.\n * */\n constructor( protected pageViewService: PageViewService) {\n super()\n }\n ngOnInit() {\n if (this.max_height == -1 && this.max_width == -1){\n this.max_height = screen.availHeight;\n }\n if (this.image.text_field != null) {\n this.updateImageProperties();\n } else if (this.imageSpec != null) {\n this.image_width = this.imageSpec.width;\n this.image_height = this.imageSpec.height;\n this.viewBox = '0 0 ' + this.image_width + ' ' + this.image_height;\n }\n this.pageViewService.onClickedWord.subscribe(\n (changedWord: Word ) => this.clickedWord = changedWord\n );\n this.pageViewService.onHoveredWord.subscribe(\n (changedWord: Word) => this.hoveredWord = changedWord\n );\n this.pageViewService.offHoveredWord.subscribe(\n (changedWord: Word) => { this.hoveredWord = null; }\n );\n this.pageViewService.onHoveredLine.subscribe(\n (changedLine: Line) => { this.hoveredLine = changedLine}\n );\n this.pageViewService.offHoveredLine.subscribe(\n (changedLine: Line) => { this.hoveredLine = null; }\n );\n this.pageViewService.onHoveredTextByForeignHand.subscribe(\n (changedForeignText: TextByForeignHand) => { this.hoveredTextByForeignHand = changedForeignText;}\n );\n this.pageViewService.offHoveredTextByForeignHand.subscribe(\n (changedForeignText: TextByForeignHand) => { this.hoveredTextByForeignHand = null; }\n );\n\n }\n ngOnChanges() {\n super.ngOnChanges()\n if (this.image.text_field != null) {\n this.updateImageProperties();\n }\n if(this.debug && this.findText != null && this.findText != ''){\n let words = this.words.filter(word =>word.text == this.findText)\n if (words.length > 0){\n this.pageViewService.onHoverService(words[0], {visible: true, clientX: 100, clientY: 100, layerX: -1, layerY: -1 })\n }\n }\n }\n /**\n * Update image properties: use textfield in order to specify the area of the image that will be shown.\n *\n * @param URL set alternative image url. This will be used on image load error (see Template)\n **/\n private updateImageProperties(URL?: string){\n let previous_word: Word = null;\n for (var i = 0; i < this.words.length; i++){\n this.words[i].datatype = \"Word\";\n if (previous_word == null || previous_word.id != this.words[i].id){\n previous_word = this.words[i]\n previous_word.is_top_object = true;\n } else if (previous_word.top > this.words[i].top){\n previous_word.is_top_object = false;\n previous_word = this.words[i]\n previous_word.is_top_object = true;\n } else {\n this.words[i].is_top_object = false;\n }\n }\n this.foreign_texts.forEach(foreignText =>foreignText.datatype = \"TextByForeignHand\");\n let image_left = this.image.text_field.left;\n let image_top = this.image.text_field.top;\n this.image_width = this.image.text_field.width;\n this.image_height = this.image.text_field.height;\n this.local_zoom = (this.max_height != -1 && this.max_width == -1)\n ? this.max_height/this.image.text_field.height : this.max_width/this.image.text_field.width;\n if (this.max_width == -1 && this.image_height < this.image_width){\n this.local_zoom = (window.innerWidth/2-100)/this.image.text_field.width;\n }\n this.imageSpec.x = this.image.x;\n this.imageSpec.y = this.image.y;\n this.imageSpec.height = this.image.height;\n this.imageSpec.width = this.image.width;\n this.imageSpec.URL = (this.preferPrimaryUrl) ? this.image.URL : this.image.secondaryURL;\n this.imageSpec.secondaryURL = (this.preferPrimaryUrl) ? this.image.URL : this.image.URL;\n if (URL != null){\n this.imageSpec.secondaryURL = this.imageSpec.URL\n this.imageSpec.URL = URL;\n }\n if(this.image.transform != null){\n this.local_zoom = this.max_height/this.image.text_field.width;\n let matrix = new Matrix(this.image.transform, this.local_zoom*this.zoomFactor);\n this.imageSpec.transform = matrix.toString()\n }\n this.viewBox = image_left + ' ' + image_top + ' ' + this.image_width + ' ' + this.image_height;\n }\n /**\n * Return the position (i.e. '{ x: x, y: y }') for the copyright symbol.\n * @param dimension dimension of the copyright symbol.\n **/\n private getCopyrightPosition(dimension: number): Object {\n if (this.image.text_field != null && this.image.text_field != undefined){\n let positions: Position[] = [\n { x: Number(this.image.text_field.left) +10/this.zoomFactor,\n y: Number(this.image.text_field.top) +10/this.zoomFactor },\n { x: Number(this.image.text_field.left),\n y: Number(this.image.text_field.top)},\n { x: Number(this.image.text_field.width) + Number(this.image.text_field.left) -15/this.zoomFactor - dimension,\n y: Number(this.image.text_field.height) + Number(this.image.text_field.top) -15/this.zoomFactor - dimension },\n { x: Number(this.image.text_field.width) + Number(this.image.text_field.left) - dimension,\n y: Number(this.image.text_field.height) + Number(this.image.text_field.top) - dimension },\n { x: Number(this.image.text_field.left) +10/this.zoomFactor,\n y: Number(this.image.text_field.height) + Number(this.image.text_field.top) -10/this.zoomFactor - dimension },\n { x: Number(this.image.text_field.width) + Number(this.image.text_field.left) -10/this.zoomFactor - dimension,\n y: Number(this.image.text_field.top) +10/this.zoomFactor},\n { x: Number(this.image.text_field.width) + Number(this.image.text_field.left) - dimension,\n y: Number(this.image.text_field.top)}\n ]\n let default_index = 1\n let index = 0;\n let position_found = false;\n while (!position_found && index < positions.length){\n let left = positions[index].x\n let top = positions[index].y\n if(!this.doesPositionConflict(left, top, dimension, this.words)\n && !this.doesPositionConflict(left, top, dimension, this.foreign_texts)){\n position_found = true;\n } else {\n index++\n }\n }\n let left = (index < positions.length) ? positions[index].x : positions[default_index].x;\n let top = (index < positions.length) ? positions[index].y : positions[default_index].y;\n return { x: `${left}px`, y: `${top}px` }\n } else {\n return { x: '0px', y: '0px' }\n }\n }\n /**\n * Return whether position specified by left, top and dimension does conflict with one of the positional objects' position.\n *\n * @param left left of position\n * @param top top of position\n * @param dimension dimension of position\n * @param positionalObjects Array of positions\n **/\n private doesPositionConflict(left: number, top: number, dimension: number, positionalObjects: PositionalObject[]): boolean {\n let conflicts = positionalObjects.filter(positionalObject =>\n !(Number(positionalObject.left) + Number(positionalObject.width) < left || Number(positionalObject.left) > left + dimension\n || Number(positionalObject.top) > top + dimension || Number(positionalObject.top) + Number(positionalObject.height) < top)\n )\n return conflicts.length > 0\n }\n /**\n * Get the hover status of the word as one of the {@link /miscellaneous/enumerations.html#HIGHTLIGHT_CASES|HIGHTLIGHT_CASES}.\n **/\n private getHoverStatus(word: Word, skipFindText: boolean = false): string {\n if (this.selectedWords.indexOf(word.id) > -1\n || this.selectedLines.indexOf(word.line) > -1){\n return HIGHTLIGHT_CASES.SELECTED_WORD;\n }\n if (!skipFindText && this.findText != null && this.findText != ''){\n let findRegex = '^[^\\\\w]*(' + this.findText.split(' ').join('|') + ')'\n return (word.text.match(findRegex)\n || (word.edited_text != null && word.edited_text.match(findRegex))\n ) ? HIGHTLIGHT_CASES.SEARCHED_WORD : this.getHoverStatus(word, true);\n }\n if (typeof this.hoveredLine !== 'undefined' && this.hoveredLine !== null) {\n return (this.hoveredLine.id == word.line\n || (this.hoveredLine.continuesTo != undefined && this.hoveredLine.continuesTo != null && this.hoveredLine.continuesTo.line.id == word.line)\n || (this.hoveredLine.continuesFrom != undefined && this.hoveredLine.continuesFrom != null && this.hoveredLine.continuesFrom.line.id == word.line))\n ? HIGHTLIGHT_CASES.LINE_HOVERED : HIGHTLIGHT_CASES.DEFAULT;\n } else if (typeof this.hoveredWord !== 'undefined' && this.hoveredWord !== null){\n return (this.hoveredWord.id == word.id) ? HIGHTLIGHT_CASES.WORD_HOVERED : HIGHTLIGHT_CASES.DEFAULT;\n }\n return HIGHTLIGHT_CASES.DEFAULT;\n }\n /**\n * Return a css class for word that will be used with [ngClass] in order to (un-)highlight the word's rect.\n *\n * If a function has been passed to Input {@link #assignClass|assignClass},\n * this function will call it if {@link #getHoverStatus|getHoverStatus(word)} == {@link /miscellaneous/enumerations.html#HIGHTLIGHT_CASES|HIGHTLIGHT_CASES.DEFAULT}.\n **/\n private assignClass(positionalObject: PositionalObject, elementName?: string): string {\n if (positionalObject.datatype == 'TextByForeignHand'){\n return (this.hoveredTextByForeignHand != null && this.hoveredTextByForeignHand.id == positionalObject.id) ?\n 'text_field highlight_foreign_text' : 'text_field unhighlighted'\n }\n let word = <Word>positionalObject;\n if (elementName != null) {\n return (this.getHoverStatus(word) == HIGHTLIGHT_CASES.DEFAULT) ? `text_field unhighlighted_${elementName}` : `text_field highlight_${elementName}`;\n }\n switch(this.getHoverStatus(word)) {\n case HIGHTLIGHT_CASES.SELECTED_WORD: {\n return 'textfield highlight_magenta';\n }\n case HIGHTLIGHT_CASES.SEARCHED_WORD: {\n return 'textfield highlight_red';\n }\n case HIGHTLIGHT_CASES.LINE_HOVERED: {\n return (word.deleted) ? 'textfield deleted' : 'textfield highlight_yellow';\n }\n case HIGHTLIGHT_CASES.WORD_HOVERED: {\n return (word.deleted) ? 'textfield deleted' : 'textfield highlight_yellow';\n }\n case HIGHTLIGHT_CASES.DEFAULT: {\n return (this.externalAssignClassAfter != null) ? this.externalAssignClassAfter(word, this.hoveredWord, this.hoveredLine) : 'textfield unhighlighted';\n }\n }\n }\n /**\n * Assign a style to the rects of a line.\n **/\n private assignStyle(word: Word, hoveredWord: Word, hoveredLine: Line, hoverStatus: string): Object {\n return (this.extAssignStyle != null) ? this.extAssignStyle(word, hoveredWord, hoveredLine, hoverStatus) : {};\n }\n private msg(URL: string){\n if(this.preferPrimaryUrl){\n // console.log(URL + ' TODO: show smaller image during loading');\n }\n }\n}\n","export default \".text {\\n text-align: justify;\\n width: 600px;\\n}\\n.img {\\n margin-top: 20px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3QuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLG1CQUFtQjtHQUNuQixZQUFZO0FBQ2Y7QUFDQTtHQUNHLGdCQUFnQjtBQUNuQiIsImZpbGUiOiJwcm9qZWN0LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudGV4dCB7XG4gICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgd2lkdGg6IDYwMHB4O1xufVxuLmltZyB7XG4gICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuIl19 */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-project',\n templateUrl: './project.component.html',\n styleUrls: ['./project.component.css']\n})\nexport class ProjectComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","export default \"#page {\\n margin-top: 10px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJoaXpvbWUtdmlldy1jb21wb25lbnQvcmhpem9tZS12aWV3LWNvbXBvbmVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0dBQ0csZ0JBQWdCO0FBQ25CIiwiZmlsZSI6InJoaXpvbWUtdmlldy1jb21wb25lbnQvcmhpem9tZS12aWV3LWNvbXBvbmVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI3BhZ2Uge1xuICAgbWFyZ2luLXRvcDogMTBweDtcbn1cbiJdfQ== */\"","import { Component, OnInit } from '@angular/core';\nimport {ActivatedRoute, Params, Router} from '@angular/router';\nimport { TlnQueryParams} from '../models/models';\n\n@Component({\n selector: 'app-rhizome-view-component',\n templateUrl: './rhizome-view-component.component.html',\n styleUrls: ['./rhizome-view-component.component.css']\n})\nexport class RhizomeViewComponentComponent implements OnInit {\n queryParams: TlnQueryParams;\n constructor(private router: Router,\n private activatedRoute: ActivatedRoute) { }\n\n ngOnInit() {\n this.activatedRoute.queryParams.subscribe( (queryParams: Params ) => {\n this.queryParams = new TlnQueryParams(\n queryParams.navBarOpenState,\n queryParams.navContext,\n queryParams.manuscript,\n queryParams.page,\n queryParams.selectedLines,\n queryParams.selectedWords,\n queryParams.viewMode,\n queryParams.fullscreen,\n queryParams.zoom\n );\n });\n\n }\n\n}\n","import {Injectable} from '@angular/core';\nimport {TlnQueryParams, NavTreeDef } from '../models/models';\nimport * as _ from 'lodash';\nimport {Subscription} from 'rxjs';\nimport {ActivatedRoute, Params, Router} from '@angular/router';\n\n@Injectable()\nexport class NavigationServiceService {\n\n constructor( private router: Router,\n private activatedRoute: ActivatedRoute ) {\n }\n\n /**\n * updateRoute\n * routes to the active url with the actual or passed query params of this class.\n */\n updateRoute(qParams?: Params) {\n this.router.navigate([], { relativeTo: this.activatedRoute, queryParams: qParams, queryParamsHandling: 'merge' });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Parser, Generator, Wildcard } from 'sparqljs';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\n\n\n@Injectable()\nexport class QueryService {\n constructor(private http: HttpClient) {\n }\n\n parser = new Parser();\n sparqlGenerator = new Generator({});\n\n /**\n * Gets the data from an endpoint via http post\n *\n * @param baseUrl: The url of the endpoint.\n * @param query: The query to run.\n * @param queryType: \"CONSTRUCT\" or \"QUERY\"\n * @returns the response.\n */\n public getData(baseUrl: string, query: string, queryType?: string ) {\n let httpOptions;\n if (queryType === 'CONSTRUCT') {\n // A construct does contain a text as response, not a json, so responseType must be 'text' to avoid parse errors\n httpOptions = { headers: new HttpHeaders({'Content-Type': 'application/sparql-query', 'Accept': 'text/turtle'}),\n responseType: 'text'};\n return this.http.post(baseUrl, query, httpOptions);\n } else {\n httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/sparql-query',\n 'Accept': 'application/sparql-results+json; charset=UTF-8'})};\n return this.http.post(baseUrl, query, httpOptions);\n }\n }\n\n /**\n * Gets a text file by its name from the directory assets/queries.\n *\n * @param filename The name of the file + file name extension.\n * @returns the text of the file.\n */\n public getQueryfromFilename(filename) {\n return this.http.get('../assets/queries/' + filename, {responseType: 'text'});\n }\n\n /**\n * Gets a query string from a given file in the directory assets/queries.\n *\n * @param filename The name of the file + file name extension.\n * @returns The JSON equivalence of the parsed query.\n */\n public parseQueryFromFile(filename) {\n return this.getQueryfromFilename(filename )\n .subscribe(query => {\n this.parser.parse(query);\n } );\n }\n\n /**\n * getQueryForItem()\n * Parametrizes a given baseQuery with a iri passed, so the iri will be the subject of the where clause\n *\n * @param itemIri: The iri of the selected resource\n * @param baseQuery: name of the query to parametrize\n * @returns the query for the resource.\n */\n public parametrizeQueryWithItem(baseQuery: string, itemIri: string) {\n const parsedQuery = this.parser.parse(baseQuery);\n // console.log('parsedQuery', parsedQuery);\n // parametrize/reset the subject iri to the word's iri we like to query for\n const resourceOfInterest = {'termType': 'NamedNode', 'value': decodeURI(itemIri) };\n parsedQuery.where[0].triples[0].subject = resourceOfInterest;\n // generate the new query string and return it\n // console.log('parametrized query', this.sparqlGenerator.stringify(parsedQuery));\n return this.sparqlGenerator.stringify(parsedQuery);\n }\n\n}\n","export {HIGHTLIGHT_CASES} from '../page-view/highlight_status';\n\nexport enum VIEW_OPTIONS {\n TRANSKRIPTION = 'Transkription', \n FAKSIMILE = 'Faksimile',\n SYNOPSIS = 'Transkription/Faksimile',\n SYNOPSIS_B = 'Faksimile/Transkription'\n}\nexport const DEFAULT_VIEW_OPTION: string = VIEW_OPTIONS.SYNOPSIS_B;\nexport const ONTOLOTY_PREFIX: string = 'http://www.nie.org/ontology/nietzsche#'\n/**\n * Route for TlnCrossrefComponent\n **/\nexport const TLN_CROSSREF_ROUTE: string = 'tln-crossref';\n/**\n * Route for TlnFulltextComponent\n **/\nexport const TLN_SEARCH_ROUTE: string = 'tln-search';\n/**\n * Route for TlnManuscriptViewComponent\n **/\nexport const TLN_MANUSCRIPT_ROUTE: string = 'tln-manuscript';\n/**\n * Route for TlnViewerComponent\n **/\nexport const TLN_VIEWER_ROUTE: string = 'tln-viewer';\n/**\n * Param that refers to the context that should be shown, i.e. 'page' or 'manuscript'.\n **/\nexport const TLN_CONTEXT_VIEW_PARAM: string = 'contextView';\n/**\n * Param that toggles fullscreen, value type: boolean.\n **/\nexport const TLN_FULLSCREEN_PARAM: string = 'fullscreen';\n/**\n * Param for find text in page.\n **/\nexport const TLN_FIND_PARAM: string = 'find';\n/**\n * Param for manuscript iri.\n **/\nexport const TLN_MANUSCRIPT_PARAM: string = 'manuscript';\n/**\n * Param for navigation bar open state.\n **/\nexport const TLN_NAV_BAR_OPEN_STATE_PARAM: string = 'navBarOpenState';\n/**\n * Param for page iri.\n **/\nexport const TLN_PAGE_PARAM: string = 'page';\n/**\n * Param for result index, type: number.\n **/\nexport const TLN_RESULT_INDEX_PARAM: string = 'resutlIndex';\n/**\n * Param for selected lines.\n **/\nexport const TLN_SELECTED_LINES_PARAM: string = 'selectedLines';\n/**\n * Param for selected lines.\n **/\nexport const TLN_SELECTED_WORDS_PARAM: string = 'selectedWords';\n/**\n * Param for iri of a genetic order of text versions.\n **/\nexport const TLN_TEXT_GENETIC_ORDER_PARAM: string = 'geneticOrder';\n/**\n * Param for selected view option, e.g. 'Transkription', 'Faksimile', etc.\n **/\nexport const TLN_VIEW_OPTION_PARAM: string = 'viewMode';\n/**\n * Param for zoom.\n **/\nexport const TLN_ZOOM_PARAM: string = 'zoom';\n","import { OnInit, EventEmitter} from '@angular/core';\nimport { first, takeUntil } from 'rxjs/operators';\nimport { BasicResultBindingElement, AskResult} from './datatypes/basic_datatype';\nimport { DataProcessor, TlnQueryServiceInterface } from './models';\n\nexport interface KeyIriMapping {\n key: string;\n iri: string;\n}\nexport interface ComplexKeyIriMapping {\n idIndex: number;\n mapping: KeyIriMapping[];\n}\n\n/**\n * This interface can be used in order to handle data \n * of type {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.\n **/\nexport interface Handler {\n /**\n * a class that instantiates data of type {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}\n **/\n handler: typeof BasicResultBindingElement;\n /**\n * data handler's next key for retrieving and instantiating data.\n **/\n next_key?: string;\n /**\n * a service that informs its listeners about its handler's data.\n **/\n service?: any;\n process_data?: DataProcessor;\n}\n/**\n * This class retrieves data from a query service and instantiates it using \n * corresponding handlers.\n **/\nexport class DataHandler {\n /**\n * the query services with which data is retrieved\n **/\n queryService: TlnQueryServiceInterface;\n debug: boolean = false;\n /**\n * whether or not DataHandler is ready to retrieve data\n **/\n ready: boolean = false;\n stop_processing = new EventEmitter<boolean>();\n start_processing = new EventEmitter<boolean>();\n processing_finished = new EventEmitter<boolean>();\n /**\n * @param component the component that uses this data handler\n **/\n constructor(private component: OnInit){}\n /**\n * add a {@link /interfaces/Handler.html|Handler} \n * or an Array of handler keys to DataHandler.\n **/\n public addHandler(key: string, handler: Handler | string[]) {\n this[key] = handler;\n }\n /**\n * Retrieve and instantiate data\n * @param key data handler key\n * @param iri iri that should be passed to query\n * @param next_iri use next_iri instead of the iri of the first item in the current data array.\n **/\n public getData(key: string, iri?: string, next_iri?: string) {\n if (Array.isArray(this[key])){ \n this[key].forEach(value =>this.getData(value, iri));\n if (next_iri != null && this[key]['next_key'] != null){\n this.getData(this[key]['next_key'], next_iri);\n }\n } else {\n this.start_processing.emit(true);\n let handler = this[key]['handler'];\n if (this.debug && key == 'textVersions' ) {\n //console.log(this[key]['handler'], key, iri);\n //console.log(handler.getQuery(iri, handler.query_key))\n //console.log(this[key]['service']);\n }\n let is_target_array = Array.isArray(this.component[key]);\n if (!is_target_array){\n this.queryService.getData(handler.getQuery(iri, handler.query_key)).pipe(takeUntil(this.stop_processing) || first()).subscribe(results => {\n this.component[key] = handler.convertData(results, iri, this[key]['service'])[0];\n if (next_iri != null && this[key]['next_key'] != null){\n this.getData(this[key]['next_key'], next_iri);\n } else if(this[key]['process_data'] != undefined && this[key]['process_data'] != null){\n this[key]['process_data'].processData();\n } \n });\n } else {\n this.queryService.getData(handler.getQuery(iri, handler.query_key)).pipe(takeUntil(this.stop_processing)).subscribe(results => {\n this.component[key] = (handler.use_id) ? handler.convertData(results, iri, this[key]['service']) : handler.convertData(results,null, this[key]['service']);\n if (this.component[key].length > 0 && this[key]['next_key'] != null){\n let use_next_iri = (next_iri != null) ? next_iri : this.component[key][0].id;\n this.getData(this[key]['next_key'], use_next_iri);\n } else if(this[key]['process_data'] != undefined && this[key]['process_data'] != null){\n this[key]['process_data'].processData();\n } \n });\n }\n this.processing_finished.emit(true);\n }\n }\n public getData4Keys(key: string, datatypeKeyIriMapping: ComplexKeyIriMapping) {\n if (Array.isArray(this[key])){ \n this[key].forEach(value =>this.getData4Keys(value, datatypeKeyIriMapping));\n } else {\n let handler = this[key]['handler'];\n if (this.debug) {\n console.log(this[key]['handler'], datatypeKeyIriMapping);\n }\n let is_target_array = Array.isArray(this.component[key]);\n let iri = datatypeKeyIriMapping.mapping[datatypeKeyIriMapping.idIndex];\n if (!is_target_array){\n this.queryService.getData(handler.getComplexQuery(datatypeKeyIriMapping.mapping)).pipe(takeUntil(this.stop_processing) || first()).subscribe(results => {\n this.component[key] = handler.convertData(results, iri, this[key]['service'])[0];\n });\n } else {\n this.queryService.getData(handler.getQuery(datatypeKeyIriMapping.mapping)).pipe(takeUntil(this.stop_processing)).subscribe(results => {\n this.component[key] = (handler.use_id) ? handler.convertData(results, iri) : handler.convertData(results);\n if (this.component[key].length > 0 && this[key]['next_key'] != null){\n datatypeKeyIriMapping.mapping[datatypeKeyIriMapping.idIndex] = this.component[key][0].id;\n this.getData4Keys(this[key]['next_key'], datatypeKeyIriMapping);\n } \n });\n }\n }\n }\n public getDataWithNewHandlerIf(key: string, subjectIri: string, typeIri: string, handlerTrue: Handler, handlerFalse: Handler, iri?: string, next_iri?: string) {\n let complexMapping: KeyIriMapping[] = [ { key: 'id', iri: subjectIri }, { key: 'type', iri: typeIri } ] \n this.queryService.getData(AskResult.getComplexQuery(complexMapping)).pipe(first()).subscribe(result => {\n this[key] = (AskResult.getAnswer(result)) ? handlerTrue : handlerFalse;\n console.log(key, subjectIri, typeIri, result, this[key]);\n this.getData(key, iri, next_iri);\n });\n }\n public conditionalAddHandler(askQuery: string, key: string, handlerTrue: Handler, handlerFalse: Handler) {\n this.queryService.getData(askQuery).pipe(first()).subscribe(result => {\n this[key] = (AskResult.getAnswer(result)) ? handlerTrue : handlerFalse;\n });\n }\n\n /**\n * reset all data belonging to key\n **/\n public resetData(key){\n this.queryService.resetData(key)\n if (Array.isArray(this[key])){ \n this[key].forEach(value =>this.resetData(value));\n } else {\n this.component[key] = (Array.isArray(this.component[key])) ? [] : null;\n }\n }\n /**\n * set a query service to DataHandler and switch status ready to true.\n **/\n public setQueryService(queryService: TlnQueryServiceInterface){\n this.queryService = queryService;\n this.ready = true;\n }\n}\n","import { Parser, Generator } from 'sparqljs';\nimport { KeyIriMapping } from '../data_handler';\n/** \n * this interface specifies the head of {@link /interfaces/FusekiResults.html|FusekiResults}.\n **/\ninterface FusekiVars {\n vars: string[];\n}\n/** \n * this interface specifies the bindings of {@link /interfaces/FusekiResults.html|FusekiResults}.\n **/\ninterface FusekiBindings {\n bindings: [];\n}\n/** \n * this interface specifies the results as they are retrieved from an Apache Jena Fuseki server.\n **/\nexport interface FusekiResults {\n results: FusekiBindings; \n head: FusekiVars\n}\nexport interface FusekiBoolean {\n head: any;\n boolean: boolean;\n}\n/**\n * This is the basic datatype that instantiates an element of {@link /interfaces/FusekiResults.html|FusekiResults}.\n *\n * All datatypes can be subclassed from this type in order to create SPARQL-queries, retrieve data and convert it\n * to the corresponding datatypes.\n **/\nexport class BasicResultBindingElement {\n /** \n * the internal default key for replacing {@link /classes/BasicResultBindingElement.html#query|query} by \"id\"\n * in {@link /classes/BasicResultBindingElement.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n protected static readonly default_key: string = 'id';\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `SELECT ?id ?p ?o WHERE { ?id ?p ?o. }`;\n /** \n * the public key for replacing {@link /classes/BasicResultBindingElement.html#query|query} by \"id\".\n **/\n public static readonly query_key: string = null;\n /**\n * the id of this datatype.\n **/\n public id: string;\n /**\n * the raw data of this datatype, i.e. a singular bindings element of {@link /interfaces/FusekiBindings.html|FusekiBindings}.\n **/\n protected data: any;\n /**\n * whether or not to pass the id used for the query to the constructor and \n * use it as the value of the property specified by query_key.\n **/\n public static readonly use_id: boolean = false; \n /**\n * a service that this datatype can use in order to communicate with its data holder.\n **/\n protected service: any;\n\n /**\n * The constructor creates a datatype from the data.\n *\n * @param id if omitted the id will be retrieved from data\n **/\n constructor(data: any, id?: string, service?: any){\n this.data = data;\n this.service = service;\n if (id != undefined && id != null && id != ''){\n let key = (Object.getPrototypeOf(this).constructor.use_id \n && Object.getPrototypeOf(this).constructor.query_key != null) \n ? Object.getPrototypeOf(this).constructor.query_key : 'id';\n this[key] = id;\n } \n if (this.id == null){\n this.id = this.getData4Key('id'); \n }\n }\n /**\n * This function returns the value of the content specified by \"key\" from {@link /classes/BasicResultBindingElement.html#data|data}.\n * \n * @param key the key that specifies the content\n *\n * @returns {any} the value of the content if key exists else null\n **/\n protected getData4Key(key: string): any {\n if (!this.data.hasOwnProperty(key)) {\n return null;\n }\n if (this.data[key].datatype == 'http://www.w3.org/2001/XMLSchema#boolean'){\n return JSON.parse(this.data[key].value);\n } else if (this.data[key].datatype == 'http://www.w3.org/2001/XMLSchema#integer'){\n return Number(this.data[key].value);\n }\n return this.data[key].value;\n }\n /**\n * This method returns the SPARQL query of this BasicResultBindingElement.\n * The query can be modified by providing an \"id\" and \"key\" such that every \"key\" in\n * the query will be replaced by \"id\".\n *\n * If \"key\" is omitted {@link /classes/BasicResultBindingElement.html#default_key|default_key} will be used.\n *\n * @param id will replace key in query\n * @param key will be replaced by id. \n **/\n public static getQuery(id?: string, key?: string): string {\n if (typeof(id) === 'undefined' || id === null || id == ''){\n return this.query;\n } else {\n if (key == null || key == ''){\n key = this.default_key;\n }\n let parser = new Parser();\n let sparqlGenerator = new Generator({});\n let parsedQuery = parser.parse(this.query)\n for (var k = 0; k < parsedQuery.where.length; k++){\n if (parsedQuery.where[k].patterns != undefined){\n for (var j = 0; j < parsedQuery.where[k].patterns.length; j++){\n if (parsedQuery.where[k].patterns[j].triples != undefined) {\n for (var i = 0; i < parsedQuery.where[k].patterns[j].triples.length; i++){\n if(parsedQuery.where[k].patterns[j].triples[i]['subject']['value'] == key){\n parsedQuery.where[k].patterns[j].triples[i]['subject'] = { termType: \"NamedNode\", value: id };\n } else if(parsedQuery.where[k].patterns[j].triples[i]['object']['value'] == key){\n parsedQuery.where[k].patterns[j].triples[i]['object'] = { termType: \"NamedNode\", value: id };\n } else if(parsedQuery.where[k].patterns[j].triples[i]['predicate']['value'] == key){\n parsedQuery.where[k].patterns[j].triples[i]['predicate'] = { termType: \"NamedNode\", value: id };\n }\n }\n }\n }\n } else if (parsedQuery.where[k].triples != undefined){\n for (var i = 0; i < parsedQuery.where[k].triples.length; i++){\n if(parsedQuery.where[k].triples[i]['subject']['value'] == key){\n parsedQuery.where[k].triples[i]['subject'] = { termType: \"NamedNode\", value: id };\n } else if (parsedQuery.where[k].triples[i]['object']['value'] == key){\n parsedQuery.where[k].triples[i]['object'] = { termType: \"NamedNode\", value: id };\n } else if (parsedQuery.where[k].triples[i]['predicate']['value'] == key){\n parsedQuery.where[k].triples[i]['predicate'] = { termType: \"NamedNode\", value: id };\n }\n }\n }\n }\n return sparqlGenerator.stringify(parsedQuery);\n }\n }\n public static getComplexQuery(keyIriMapping: KeyIriMapping[]): string {\n let parser = new Parser();\n let sparqlGenerator = new Generator({});\n let parsedQuery = parser.parse(this.query)\n for (let mapping of keyIriMapping){\n let key = mapping.key;\n let id = mapping.iri;\n for (var i = 0; i < parsedQuery.where[0].triples.length; i++){\n if(parsedQuery.where[0].triples[i]['subject']['value'] == key){\n parsedQuery.where[0].triples[i]['subject'] = { termType: \"NamedNode\", value: id };\n } else if (parsedQuery.where[0].triples[i]['object']['value'] == key){\n parsedQuery.where[0].triples[i]['object'] = { termType: \"NamedNode\", value: id };\n } else if (parsedQuery.where[0].triples[i]['predicate']['value'] == key){\n parsedQuery.where[0].triples[i]['predicate'] = { termType: \"NamedNode\", value: id };\n }\n }\n }\n return sparqlGenerator.stringify(parsedQuery);\n }\n\n /**\n * This function returns 'results.bindings' of {@link /interfaces/FusekiResults.html|FusekiResults}.\n **/\n public static getContent(data: FusekiResults): [] {\n return data['results']['bindings'];\n }\n /**\n * This static function instantiates the subclasses of {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement} from\n * the data retrieved by executing the query that is provided by {@link /classes/BasicResultBindingElement.html#getQuery|getQuery}.\n *\n * @param this a subclass of BasicResultBindingElement\n * @param data the fuseki result json\n * @param id the id that has been used in order to retrieve the data and that will identify the instantiation of the subclass.\n * @param service a means to communicate with the data holder.\n *\n * @returns Array of subclass instantiations\n **/\n public static convertData<T extends typeof BasicResultBindingElement>(this: T, data: FusekiResults, id?: string, service?: any): Array<InstanceType<T>> {\n let elements = []; \n let content = this.getContent(data);\n for (var i = 0; i < content.length; i++){\n let element = new this(content[i], id, service) as InstanceType<T>;\n elements.push(element);\n }\n return elements;\n }\n}\nexport class AskResult extends BasicResultBindingElement {\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n ASK { \n ?id a ?type.\n }`;\n\n public static getAnswer(answer: FusekiBoolean): boolean {\n return answer.boolean;\n }\n}\nexport class IsReconstructedKonvolut extends AskResult {\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n ASK { \n ?id a tln:ReconstructedKonvolut.\n }`;\n\n public static readonly query_key: string = 'id';\n}\n\n\n","import { BasicResultBindingElement } from './basic_datatype';\n/**\n * This is the 'earlier version' stub instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.\n * It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.\n **/\nexport class TlnEarlierVersionStub extends BasicResultBindingElement {\n /** \n * the internal default key for replacing {@link /classes/TlnWord.html#query|query} by \"id\"\n * in {@link /classes/TlnWord.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n static readonly default_key: string = 'word';\n /** \n * the public key for replacing {@link /classes/TlnWord.html#query|query} by \"id\".\n **/\n static readonly query_key: string = 'word';\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?text WHERE {\n ?word tln:wordHasEarlierVersion ?id.\n ?id tln:hasText ?text.\n }`;\n /**\n * text of earlier version\n **/\n text: string;\n \n /**\n * The constructor creates a datatype from the data.\n *\n * @param id if omitted the id will be retrieved from data\n **/\n constructor(data: any, id?: string, service?: any){\n super(data, id, service)\n this.text = this.getData4Key('text');\n }\n}\nexport class TlnOverwrittenStub extends TlnEarlierVersionStub {\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?text WHERE {\n ?word (tln:wordHasWordParts/rdf:rest*/rdf:first/tln:overwritesWord|tln:overwritesWord) ?id. \n ?id tln:hasText ?text.\n }`;\n}\n","import { TlnImage } from './image';\nimport { Copyright, Image } from '../models';\n/**\n * This is the faksimile image instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.\n * It extends {@link /classes/TlnImage.html|TlnImage}.\n **/\nexport class FaksimileImage extends TlnImage {\n /**\n * the SPARQL-query of this datatype\n **/\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n\n SELECT ?id ?filename ?URL ?secondaryURL ?width ?height ?t_left ?t_top ?t_width ?t_height ?page ?transform WHERE {\n ?id a tln:FaksimileImage;\n tln:hasFileName ?filename;\n tln:hasPrimaryurl ?URL;\n tln:hasSecondaryurl ?secondaryURL;\n tln:hasWidth ?width;\n tln:hasHeight ?height;\n tln:hasTextField ?textfield.\n ?textfield tln:hasLeft ?t_left;\n tln:hasTop ?t_top;\n tln:hasWidth ?t_width;\n tln:hasHeight ?t_height;\n ^tln:pageIsOnFaksimileTextField ?page.\n OPTIONAL { ?id tln:hasTransform ?transform. }\n }`;\n /**\n * Copyright information of image\n **/\n copyright: Copyright;\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.copyright = { \n originalUrl: 'http://www.nietzschesource.org/DFGA/' + this.filename.replace('.jpg', ''),\n licenseTextUrl: 'http://creativecommons.org/licenses/by-nc-nd/4.0/deed.de',\n license: 'CC BY-NC-ND 4.0',\n text: 'Dieses Faksimile wird von <a target=\"_new\" href=\"http://www.nietzschesource.org\">nietzschesource.org</a> gehostet und wird hier unver&auml;ndert dargestellt.'\n }\n }\n}\n","import { TlnPositionalObject } from './positional_object';\nimport { TextByForeignHand } from '../models';\n/**\n * This is the 'text by foreign hand' instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.\n * It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.\n **/\nexport class TlnTextByForeignHand extends TlnPositionalObject implements TextByForeignHand {\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?text ?pen ?left ?top ?width ?height ?transform WHERE {\n ?page tln:hasMarkForeignHands/rdf:rest*/rdf:first ?id.\n ?id tln:textOfForeignHands/tln:textHasContent ?text;\n tln:penOfForeignHands ?pen;\n tln:hasTranskriptionPosition ?tp.\n \t?tp tln:hasLeft ?left; tln:hasTop ?top; tln:hasWidth ?width; tln:hasHeight ?height.\n OPTIONAl { ?tp tln:hasTransform ?transform.}\n } `;\n /**\n * the text of this word\n **/\n text: string;\n /**\n * the text of this word as it has been edited by the editors.\n **/\n pen: string;\n \n /**\n * The constructor creates a datatype from the data.\n *\n * @param id if omitted the id will be retrieved from data\n **/\n constructor(data: any, id?: string, service?: any){\n super(data, id, service)\n this.text = this.getData4Key('text');\n this.pen = this.getData4Key('pen');\n }\n}\n/**\n * This is the faksimile text by foreign hand instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.\n * It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.\n **/\nexport class FaksimileTextByForeignHand extends TlnTextByForeignHand {\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?text ?pen ?left ?top ?width ?height ?transform WHERE {\n ?page tln:hasMarkForeignHands/rdf:rest*/rdf:first ?id.\n ?id tln:textOfForeignHands/tln:textHasContent ?text;\n tln:penOfForeignHands ?pen;\n tln:hasFaksimilePosition ?fp.\n \t?fp tln:hasLeft ?left; tln:hasTop ?top; tln:hasWidth ?width; tln:hasHeight ?height.\n OPTIONAl { ?fp tln:hasTransform ?transform.}\n } `;\n}\n","import { BasicResultBindingElement } from './basic_datatype';\nimport { Image, TextField} from '../models';\n\nexport class TlnImage extends BasicResultBindingElement implements Image {\n static readonly default_key: string = 'page';\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n\n SELECT ?id ?filename ?width ?height ?URL ?secondaryURL ?t_left ?t_top ?t_width ?t_height ?page ?transform WHERE {\n ?id a tln:Image;\n tln:hasPrimaryurl ?URL;\n tln:hasSecondaryurl ?secondaryURL;\n tln:hasFileName ?filename;\n tln:hasWidth ?width;\n tln:hasHeight ?height;\n tln:hasTextField ?textfield.\n ?textfield tln:hasLeft ?t_left;\n tln:hasTop ?t_top;\n tln:hasWidth ?t_width;\n tln:hasHeight ?t_height;\n ^tln:pageIsOnTextField ?page.\n OPTIONAL { ?id tln:hasTransform ?transform. }\n }`;\n filename: string;\n x: number;\n y: number;\n width: number;\n height: number;\n text_field: TextField;\n URL: string;\n secondaryURL: string;\n transform: string;\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.x = 0;\n this.y = 0;\n this.filename = this.getData4Key('filename');\n this.width = this.getData4Key('width');\n this.height = this.getData4Key('height');\n this.URL = this.getData4Key('URL');\n this.secondaryURL = this.getData4Key('secondaryURL');\n this.transform = this.getData4Key('transform')\n this.text_field = new TlnTextField(this.getData4Key('t_left'),\n this.getData4Key('t_top'),\n this.getData4Key('t_width'),\n this.getData4Key('t_height'));\n }\n}\n\nexport class TlnTextField implements TextField {\n left: number;\n top: number;\n width: number;\n height: number;\n bottom: number;\n \n constructor(left: number, top: number, width: number, height: number){\n this.left = left;\n this.top = top;\n this.width = width;\n this.height = height;\n }\n}\n","import { BasicResultBindingElement } from './basic_datatype';\nimport { Identifier, Line, LineStub, Manuscript, Page, Reference } from '../models';\n/**\n * This is the line instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.\n * It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.\n **/\nexport class TlnLine extends BasicResultBindingElement implements Line {\n /** \n * the internal default key for replacing {@link /classes/TlnLine.html#query|query} by \"id\"\n * in {@link /classes/TlnLine.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n static readonly default_key: string = 'page';\n static readonly use_id: boolean = true;\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?number ?top ?bottom \n ?pageNumber ?manuscriptId ?manuscriptTitle\n ?toLine ?toLineNumber ?toPage ?toPageNumber ?toManuscript ?toManuscriptTitle \n ?fromLine ?fromLineNumber ?fromPage ?fromPageNumber ?fromManuscript ?fromManuscriptTitle \n WHERE {\n ?page tln:hasLines/rdf:rest*/rdf:first ?id;\n tln:hasNumber ?pageNumber.\n ?id a tln:Line; tln:lineHasNumber ?number;\n tln:lineHasTopValueOnTranskription ?top;\n tln:lineHasBottomValueOnTranskription ?bottom.\n ?manuscriptId tln:hasPages/rdf:rest*/rdf:first ?page;\n tln:hasTitle ?manuscriptTitle.\n OPTIONAL { \n ?id tln:lineContinuesOn ?toLine.\n ?toLine tln:lineHasNumber ?toLineNumber.\n ?toPage tln:hasLines/rdf:rest*/rdf:first ?toLine; tln:hasNumber ?toPageNumber.\n ?toManuscript tln:hasPages/rdf:rest*/rdf:first ?toPage; tln:hasTitle ?toManuscriptTitle.\n }\n OPTIONAL { \n ?id ^tln:lineContinuesOn ?fromLine.\n ?fromLine tln:lineHasNumber ?fromLineNumber.\n ?fromPage tln:hasLines/rdf:rest*/rdf:first ?fromLine; tln:hasNumber ?fromPageNumber.\n ?fromManuscript tln:hasPages/rdf:rest*/rdf:first ?fromPage; tln:hasTitle ?fromManuscriptTitle.\n }\n } `;\n /** \n * the number of this line.\n **/\n number: number;\n /** \n * the public key for replacing {@link /classes/TlnLine.html#query|query} by \"id\".\n **/\n static readonly query_key: string = 'page';\n /** \n * the geometrical top position of this line.\n **/\n top: number;\n /** \n * the geometrical bottom position of this line.\n **/\n bottom: number;\n continuesFrom?: Reference;\n continuesTo?: Reference;\n source?: Reference;\n page?: string;\n\n /**\n * The constructor creates a datatype from the data.\n *\n * @param id if omitted the id will be retrieved from data\n **/\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.number = this.getData4Key('number');\n this.top = this.getData4Key('top');\n this.bottom = this.getData4Key('bottom');\n let pageNumber = this.getData4Key('pageNumber')\n let manuscriptTitle = this.getData4Key('manuscriptTitle')\n let continuesTo = this.getData4Key('toLine')\n let continuesFrom = this.getData4Key('fromLine')\n if (continuesTo != null){\n let manuscript: Manuscript = { id: this.getData4Key('toManuscript'), title: this.getData4Key('toManuscriptTitle') } \n let page: Page = { id: this.getData4Key('toPage'), number: this.getData4Key('toPageNumber') }\n let line: LineStub = { id: continuesTo, number: this.getData4Key('toLineNumber') }\n this.continuesTo = { manuscript: manuscript, page: page, line: line }\n }\n if (continuesFrom != null){\n let manuscript: Manuscript = { id: this.getData4Key('fromManuscript'), title: this.getData4Key('fromManuscriptTitle') } \n let page: Page = { id: this.getData4Key('fromPage'), number: this.getData4Key('fromPageNumber') }\n let line: LineStub = { id: continuesFrom, number: this.getData4Key('fromLineNumber') }\n this.continuesFrom = { manuscript: manuscript, page: page, line: line }\n }\n if (this.continuesFrom != null || this.continuesTo != null){\n let reference = (this.continuesTo != null) ? this.continuesTo : this.continuesFrom;\n let manuscript: Manuscript = (this.getData4Key('manuscriptId') == reference.manuscript.id) ? null :\n { id: this.getData4Key('manuscriptId'), title: this.getData4Key('manuscriptTitle') }\n let page: Page = (this.page == reference.page.id) ? null:\n { id: this.page, number: this.getData4Key('pageNumber') }\n this.source = { manuscript: manuscript, page: page, line: { id: this.id, number: this.number } }\n }\n }\n}\n/**\n * This is the faksimile line instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.\n * It extends {@link /classes/TlnLine.html|TlnLine}.\n **/\nexport class FaksimileLine extends TlnLine implements Line {\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?number ?top ?bottom\n ?pageNumber ?manuscriptId ?manuscriptTitle\n ?toLine ?toLineNumber ?toPage ?toPageNumber ?toManuscript ?toManuscriptTitle \n ?fromLine ?fromLineNumber ?fromPage ?fromPageNumber ?fromManuscript ?fromManuscriptTitle \n WHERE {\n ?page tln:hasLines/rdf:rest*/rdf:first ?id;\n tln:hasNumber ?pageNumber.\n ?id a tln:Line; tln:lineHasNumber ?number;\n tln:lineHasInnerTopValueOnFaksimile ?top;\n tln:lineHasInnerBottomValueOnFaksimile ?i_bottom.\n ?manuscriptId tln:hasPages/rdf:rest*/rdf:first ?page;\n tln:hasTitle ?manuscriptTitle.\n BIND( (?top+?i_bottom)/2 as ?bottom).\n OPTIONAL { \n ?id tln:lineContinuesOn ?toLine.\n ?toLine tln:lineHasNumber ?toLineNumber.\n ?toPage tln:hasLines/rdf:rest*/rdf:first ?toLine; tln:hasNumber ?toPageNumber.\n ?toManuscript tln:hasPages/rdf:rest*/rdf:first ?toPage; tln:hasTitle ?toManuscriptTitle.\n }\n OPTIONAL { \n ?id ^tln:lineContinuesOn ?fromLine.\n ?fromLine tln:lineHasNumber ?fromLineNumber.\n ?fromPage tln:hasLines/rdf:rest*/rdf:first ?fromLine; tln:hasNumber ?fromPageNumber.\n ?fromManuscript tln:hasPages/rdf:rest*/rdf:first ?fromPage; tln:hasTitle ?fromManuscriptTitle.\n }\n } `;\n}\n","import { BasicResultBindingElement } from './basic_datatype';\nimport { Identifier, LineStub, Manuscript, Page, Reference} from '../models';\n\nexport class TlnLineReference extends BasicResultBindingElement implements Reference {\n /** \n * the internal default key for replacing {@link /classes/TlnLine.html#query|query} by \"id\"\n * in {@link /classes/TlnLine.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n static readonly default_key: string = 'page';\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?page ?page_id ?manuscript ?title ?line_number WHERE {\n ?id a tln:Line; tln:lineHasNumber ?line_number.\n ?page_id tln:hasLines/rdf:rest*/rdf:first ?id; tln:hasNumber ?page.\n ?manuscript tln:hasPages/rdf:rest*/rdf:first ?page_id; tln:hasTitle ?title.\n } `;\n /** \n * the public key for replacing {@link /classes/TlnLine.html#query|query} by \"id\".\n **/\n static readonly query_key: string = 'id';\n /** \n * the manuscript.\n **/\n manuscript: Manuscript;\n /** \n * the line.\n **/\n line: LineStub;\n /**\n * the page.\n **/\n page: Page;\n\n /**\n * The constructor creates a datatype from the data.\n *\n * @param id if omitted the id will be retrieved from data\n **/\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.line = { id: this.id, number: this.getData4Key('line_number') }\n this.page = { id: this.getData4Key('page_id'), number: this.getData4Key('page') }\n this.manuscript = { id: this.getData4Key('manuscript'), title: this.getData4Key('title') }\n }\n}\n\n","import { BasicResultBindingElement, FusekiResults } from './basic_datatype';\nimport { Manuscript, Page } from '../models';\nimport { TlnPositionalStyleMarkup } from './positional-markup';\nimport { PageStub, TlnPage } from './page';\n\nexport class ManuscriptStub extends BasicResultBindingElement implements Manuscript {\n static readonly query: string = `\n PREFIX data: <http://rdfh.ch/projects/0068#>\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n\n SELECT ?id ?title ?type WHERE {\n ?id a tln:ArchivalManuscriptUnity ;\n tln:hasTitle ?title;\n tln:hasManuscriptType ?type.\n }`;\n title: string;\n type: string;\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.title = this.getData4Key('title'); \n this.type = this.getData4Key('type');\n }\n}\nexport class TlnExtManuscript extends ManuscriptStub {\n /** \n * the internal default key for replacing {@link /classes/TlnLine.html#query|query} by \"id\"\n * in {@link /classes/TlnLine.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n static readonly default_key: string = 'manuscript';\n static readonly query: string = `\n PREFIX data: <http://rdfh.ch/projects/0068#>\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n PREFIX stoff: <http://www.nie.org/ontology/standoff#>\n\n SELECT DISTINCT ?gsaSignature ?title ?thumbImage ?type ?archivalicSignature WHERE {\n ?manuscript tln:hasPages/rdf:first/tln:hasFaksimileImage/tln:hasThumburl ?thumbImage;\n tln:hasGsaSignature ?gsaSignature;\n tln:hasTitle ?title;\n tln:hasManuscriptType ?type. \n OPTIONAL {\n ?manuscript tln:hasArchivalicSignature ?archivalicSignature. \n }\n }`;\n /** \n * the public key for replacing {@link /classes/TlnLine.html#query|query} by \"id\".\n **/\n static readonly query_key: string = 'manuscript';\n thumbImage: string;\n gsaSignature?: string;\n archivalicSignature?: string;\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.thumbImage = this.getData4Key('thumbImage');\n this.gsaSignature = this.getData4Key('gsaSignature');\n this.archivalicSignature = this.getData4Key('archivalicSignature');\n }\n}\nexport class ReconstructedKonvolut extends ManuscriptStub {\n /** \n * the internal default key for replacing {@link /classes/TlnLine.html#query|query} by \"id\"\n * in {@link /classes/TlnLine.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n static readonly default_key: string = 'manuscript';\n static readonly query: string = `\n PREFIX data: <http://rdfh.ch/projects/0068#>\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n PREFIX stoff: <http://www.nie.org/ontology/standoff#>\n\n SELECT DISTINCT ?id ?manuscriptTitle ?title ?type ?page ?number ?description WHERE {\n ?manuscript tln:partsBelongToReconstructedKonvolut ?id. \n ?id tln:hasTitle ?manuscriptTitle;\n tln:hasDescription/tln:textHasContent ?description;\n tln:hasManuscriptType ?type;\n tln:hasPages/rdf:rest*/rdf:first ?page. \n OPTIONAL { ?page tln:hasNumber ?number.}\n OPTIONAL { \n ?archivalicUnity a tln:ArchivalManuscriptUnity;\n tln:hasPages/rdf:rest*/rdf:first ?page;\n tln:hasTitle ?title.\n }\n }`;\n /** \n * the public key for replacing {@link /classes/TlnLine.html#query|query} by \"id\".\n **/\n static readonly query_key: string = 'manuscript';\n pages: Page[] = [];\n description: string;\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.title = this.getData4Key('manuscriptTitle');\n this.description = this.getData4Key('description');\n }\n public static convertData<T extends typeof BasicResultBindingElement>(this: T, data: FusekiResults, id?: string, service?: any): Array<InstanceType<T>> {\n let elements = []; \n let content = this.getContent(data);\n for (var i = 0; i < content.length; i++){\n let element = new ReconstructedKonvolut(content[i], id, service);\n let pages = [];\n if (content[i]['page'] != undefined && content[i]['page'] != null){\n pages = (content[i]['title'] != undefined && content[i]['title'] != null) \n ? TlnPage.convertData({ head: { vars: []}, results: { bindings: <any>[ content[i] ] } }, content[i]['page']['value']) \n : PageStub.convertData({ head: { vars: []}, results: { bindings: <any>[ content[i] ] } }, content[i]['page']['value']);\n }\n if (elements.length > 0 && elements[elements.length-1].id == element.id){\n if (pages.length > 0){\n elements[elements.length-1].pages.push(pages[0]);\n }\n } else {\n if (pages.length > 0){\n element.pages.push(pages[0]);\n }\n elements.push(element)\n }\n }\n //console.log(elements)\n return elements;\n }\n\n}\nexport class ManuscriptDescription extends BasicResultBindingElement {\n /** \n * the internal default key for replacing {@link /classes/TlnLine.html#query|query} by \"id\"\n * in {@link /classes/TlnLine.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n static readonly default_key: string = 'manuscript';\n static readonly query: string = `\n PREFIX data: <http://rdfh.ch/projects/0068#>\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n PREFIX stoff: <http://www.nie.org/ontology/standoff#>\n\n SELECT DISTINCT ?id ?text ?description_markup ?cssStyleTag ?startIndex ?endIndex WHERE {\n ?manuscript tln:hasDescription ?id.\n ?id tln:textHasContent ?text.\n OPTIONAL { ?id tln:textHasMarkup ?description_markup.\n ?description_markup stoff:hasCSS ?cssStyleTag;\n stoff:standoffMarkupHasStartIndex ?startIndex;\n stoff:standoffMarkupHasEndIndex ?endIndex.}\n }`;\n /** \n * the public key for replacing {@link /classes/TlnLine.html#query|query} by \"id\".\n **/\n static readonly query_key: string = 'manuscript';\n text: string;\n markups: TlnPositionalStyleMarkup[];\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.text = this.getData4Key('text');\n this.markups = [];\n }\n public static convertData<T extends typeof BasicResultBindingElement>(this: T, data: FusekiResults, id?: string, service?: any): Array<InstanceType<T>> {\n let elements = []; \n let content = this.getContent(data);\n for (var i = 0; i < content.length; i++){\n let element = new ManuscriptDescription(content[i], id, service);\n let markups = (content[i]['description_markup'] != undefined && content[i]['description_markup'] != null) ? \n TlnPositionalStyleMarkup.convertData({ head: { vars: []}, results: { bindings: <any>[ content[i] ] } }, content[i]['description_markup']['value']) : [];\n if (elements.length > 0 && elements[elements.length-1].id == element.id){\n if (markups.length > 0){\n elements[elements.length-1].markups.push(markups[0]);\n }\n } else {\n if (markups.length > 0){\n element.markups.push(markups[0]);\n }\n elements.push(element)\n }\n }\n //console.log(elements)\n return elements;\n }\n}\nexport class ManuscriptEarlierDescription extends BasicResultBindingElement {\n /** \n * the internal default key for replacing {@link /classes/TlnLine.html#query|query} by \"id\"\n * in {@link /classes/TlnLine.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n static readonly default_key: string = 'manuscript';\n static readonly query: string = `\n PREFIX data: <http://rdfh.ch/projects/0068#>\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX stoff: <http://www.nie.org/ontology/standoff#>\n\n SELECT ?id ?text ?author ?citation ?description_markup ?cssStyleTag ?startIndex ?endIndex WHERE {\n ?manuscript tln:hasEarlierDescriptions ?id. \n ?id tln:textHasContent ?text;\n tln:hasAuthor ?author;\n tln:hasCitation ?citation.\n OPTIONAL { ?id tln:textHasMarkup ?description_markup.\n ?description_markup stoff:hasCSS ?cssStyleTag;\n stoff:standoffMarkupHasStartIndex ?startIndex;\n stoff:standoffMarkupHasEndIndex ?endIndex.}\n }`;\n /** \n * the public key for replacing {@link /classes/TlnLine.html#query|query} by \"id\".\n **/\n static readonly query_key: string = 'manuscript';\n text: string;\n author: string;\n citation: string;\n markups: TlnPositionalStyleMarkup[];\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.text = this.getData4Key('text');\n this.author = this.getData4Key('author');\n this.citation = this.getData4Key('citation');\n this.markups = [];\n }\n public static convertData<T extends typeof BasicResultBindingElement>(this: T, data: FusekiResults, id?: string, service?: any): Array<InstanceType<T>> {\n let elements = []; \n let content = this.getContent(data);\n for (var i = 0; i < content.length; i++){\n let element = new ManuscriptEarlierDescription(content[i], id, service);\n let markups = (content[i]['description_markup'] != undefined && content[i]['description_markup'] != null) ? \n TlnPositionalStyleMarkup.convertData({ head: { vars: []}, results: { bindings: <any>[ content[i] ] } }, content[i]['description_markup']['value']) : [];\n if (elements.length > 0 && elements[elements.length-1].id == element.id){\n if (markups.length > 0){\n elements[elements.length-1].markups.push(markups[0]);\n }\n } else {\n if (markups.length > 0){\n element.markups.push(markups[0]);\n }\n elements.push(element)\n }\n }\n //console.log(elements)\n return elements;\n }\n}\n","import { BasicResultBindingElement } from './basic_datatype';\nimport { ManuscriptUnity, NavigationPage } from '../models';\n\nexport class TlnManuscriptUnity extends BasicResultBindingElement implements ManuscriptUnity {\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n PREFIX list: <http://jena.apache.org/ARQ/list#>\n\n SELECT ?title ?numberOfPages ?firstItem ?firstNumber ?lastItem ?lastNumber WHERE {\n ?id a tln:ManuscriptUnity;\n tln:hasTitle ?title;\n tln:hasPages ?list.\n ?list list:length ?numberOfPages;\n rdf:first ?firstItem;\n rdf:rest* ?lastNode.\n ?lastNode rdf:first ?lastItem;\n rdf:rest rdf:nil.\n ?firstItem tln:hasNumber ?firstNumber.\n ?lastItem tln:hasNumber ?lastNumber.\n }`;\n static readonly query_key: string = 'id';\n title: string;\n numberOfPages: number;\n firstPage: NavigationPage;\n lastPage: NavigationPage;\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.title = this.getData4Key('title');\n this.numberOfPages = this.getData4Key('numberOfPages')\n this.firstPage = { id: this.getData4Key('firstItem'), number: this.getData4Key('firstNumber'), title: this.title, index: 1 };\n this.lastPage = { id: this.getData4Key('lastItem'), number: this.getData4Key('lastNumber'), title: this.title, index: this.numberOfPages };\n }\n}\n\nexport class TlnNavigationPage extends BasicResultBindingElement {\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n PREFIX list: <http://jena.apache.org/ARQ/list#>\n\n SELECT ?title ?number ?previous ?previousNumber ?next ?nextNumber ?previousIndex ?nextIndex WHERE {\n ?id tln:hasNumber ?number.\n ?unity a tln:ArchivalManuscriptUnity;\n tln:hasTitle ?title;\n tln:hasPages ?list.\n ?list rdf:rest* ?node.\n ?node rdf:first ?id.\n OPTIONAL { ?node ^rdf:rest/rdf:first ?previous.\n ?previous tln:hasNumber ?previousNumber.\n ?list list:index (?previousIndex ?previous);\n }\n OPTIONAL { ?node rdf:rest/rdf:first ?next.\n ?next tln:hasNumber ?nextNumber.\n ?list list:index (?nextIndex ?next);\n }\n }`;\n static readonly query_key: string = 'id';\n title: string; \n number: string;\n previous?: NavigationPage;\n next?: NavigationPage;\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.title = this.getData4Key('title');\n this.number = this.getData4Key('number');\n let previous = this.getData4Key('previous');\n let next = this.getData4Key('next');\n if (previous != null){\n this.previous = { id: previous, number: this.getData4Key('previousNumber'), title: this.title, index: this.getData4Key('previousIndex')+1 };\n }\n if (next != null){\n this.next = { id: next, number: this.getData4Key('nextNumber'), title: this.title, index: this.getData4Key('nextIndex')+1 };\n }\n }\n}\n\n","import { BasicResultBindingElement } from './basic_datatype';\nimport { Page} from '../models';\n\nexport class PageStub extends BasicResultBindingElement implements Page {\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?number WHERE {\n ?manuscript a tln:ArchivalManuscriptUnity;\n tln:hasPages/rdf:rest*/rdf:first ?id.\n ?id tln:hasNumber ?number.\n FILTER EXISTS { ?id tln:hasImage ?image }\n }`;\n static readonly query_key: string = 'manuscript';\n number: string;\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.number = this.getData4Key('number');\n }\n}\nexport class TlnPage extends PageStub {\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?title ?number ?manuscript WHERE {\n ?manuscript a tln:ArchivalManuscriptUnity;\n tln:hasTitle ?title;\n tln:hasPages/rdf:rest*/rdf:first ?id.\n ?id a tln:Page; tln:hasNumber ?number.\n }`;\n static readonly query_key: string = 'id';\n title: string; \n manuscript: string;\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.title = this.getData4Key('title');\n this.manuscript = this.getData4Key('manuscript');\n if (this.service != null) {\n this.service.setCurrentIri(this.id, this.manuscript);\n //this.service.setTitle(this.title + \", \" + this.number);\n }\n }\n}\n\n","import { BasicResultBindingElement } from './basic_datatype';\n/**\n * This is the line instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.\n * It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.\n **/\nexport class TlnPositionalStyleMarkup extends BasicResultBindingElement {\n /** \n * the internal default key for replacing {@link /classes/TlnLine.html#query|query} by \"id\"\n * in {@link /classes/TlnLine.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n static readonly default_key: string = 'word';\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX homotypic: <http://www.nie.org/ontology/homotypic#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n PREFIX stoff: <http://www.nie.org/ontology/standoff#>\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n\n SELECT ?id ?cssStyleTag ?startIndex ?endIndex WHERE {\n ?word homotypic:hasMarkup ?id. \n ?id stoff:hasCSS ?cssStyleTag;\n stoff:standoffMarkupHasStartIndex ?startIndex;\n stoff:standoffMarkupHasEndIndex ?endIndex.\n } `;\n /**\n * one or multiple css style tags like 'font-weight: bold;' or 'font-weight: bold; font-style: italic'\n **/\n cssStyleTag: string;\n /** \n * character where the style ends.\n **/\n endIndex: number; // character where the style/class ends\n /** \n * standoff type: 0 === markup via css tag; 1 === apply css class\n **/\n sType: number = 0;\n /** \n * character where the style starts.\n **/\n startIndex: number;\n static readonly query_key: string = 'word';\n\n /**\n * The constructor creates a datatype from the data.\n *\n * @param id if omitted the id will be retrieved from data\n **/\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.cssStyleTag = this.getData4Key('cssStyleTag');\n this.endIndex = this.getData4Key('endIndex');\n this.startIndex = this.getData4Key('startIndex');\n }\n}\n\nexport class TlnFilteredPositionalStyleMarkup extends TlnPositionalStyleMarkup {\n protected readonly regex: RegExp = new RegExp('font-size:[0-9]\\+%[;]*');\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.cssStyleTag = this.cssStyleTag.replace(this.regex,'') + 'filter: invert(1);';\n }\n}\n","import { BasicResultBindingElement } from './basic_datatype';\nimport { PositionalObject } from '../models';\n/**\n * This is the 'text by foreign hand' instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.\n * It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.\n **/\nexport class TlnPositionalObject extends BasicResultBindingElement implements PositionalObject {\n /** \n * the internal default key for replacing {@link /classes/TlnWord.html#query|query} by \"id\"\n * in {@link /classes/TlnWord.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n static readonly default_key: string = 'page';\n /** \n * the public key for replacing {@link /classes/TlnWord.html#query|query} by \"id\".\n **/\n static readonly query_key: string = 'page';\n /**\n * the geometrical left position of this word's rect.\n **/\n left: number;\n /**\n * the geometrical top position of this word's rect.\n **/\n top: number;\n /**\n * the width of this word's rect.\n **/\n width: number;\n /**\n * the height of this word's rect.\n **/\n height: number;\n /** \n * the matrix transformation string of the geometrical position of this word's rect.\n * */\n transform?: string;\n \n /**\n * The constructor creates a datatype from the data.\n *\n * @param id if omitted the id will be retrieved from data\n **/\n constructor(data: any, id?: string, service?: any){\n super(data, id, service)\n this.left = this.getData4Key('left');\n this.top = this.getData4Key('top');\n this.width = this.getData4Key('width');\n this.height = this.getData4Key('height');\n this.transform = this.getData4Key('transform');\n }\n}\n","import { BasicResultBindingElement, FusekiResults } from './basic_datatype';\nimport { TlnWord } from './word';\nimport { TlnPositionalStyleMarkup, TlnFilteredPositionalStyleMarkup } from './positional-markup';\n\nexport class TlnPreviewWord extends TlnWord {\n /** \n * the internal default key for replacing {@link /classes/TlnLine.html#query|query} by \"id\"\n * in {@link /classes/TlnLine.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n static readonly default_key: string = 'line';\n static readonly query_key: string = 'line';\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX homotypic: <http://www.nie.org/ontology/homotypic#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n PREFIX stoff: <http://www.nie.org/ontology/standoff#>\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n\n SELECT DISTINCT ?id ?text ?markup_id ?cssStyleTag ?startIndex ?endIndex ?left ?top ?earlier_version WHERE {\n ?id a tln:Word; \n tln:wordBelongsToLine ?line; \n tln:hasTranskriptionPosition/tln:hasLeft ?left;\n tln:hasTranskriptionPosition/tln:hasTop ?top;\n tln:hasText ?text;\n homotypic:hasMarkup ?markup_id. \n ?markup_id stoff:hasCSS ?cssStyleTag;\n stoff:standoffMarkupHasStartIndex ?startIndex;\n stoff:standoffMarkupHasEndIndex ?endIndex.\n\n FILTER(NOT EXISTS {?word tln:wordHasWordParts/rdf:rest*/rdf:first ?id})\n FILTER(NOT EXISTS {?word (tln:wordHasEarlierVersion|tln:overwritesWord) ?id})\n OPTIONAL { ?id (tln:wordHasEarlierVersion|tln:overwritesWord)/tln:hasText ?earlier_version}\n }`;\n earlier_version?: string;\n left: number;\n top: number;\n markups: TlnPositionalStyleMarkup[] = [];\n /**\n * The constructor creates a datatype from the data.\n *\n * @param id if omitted the id will be retrieved from data\n **/\n constructor(data: any, id?: string, service?: any){\n super(data, id, service)\n this.earlier_version = this.getData4Key('earlier_version')\n this.left = this.getData4Key('left')\n this.top = this.getData4Key('top')\n }\n public static convertData<T extends typeof BasicResultBindingElement>(this: T, data: FusekiResults, id?: string, service?: any): Array<InstanceType<T>> {\n let elements = []; \n let content = this.getContent(data);\n for (var i = 0; i < content.length; i++){\n let element = new TlnPreviewWord(content[i], id, service);\n element.markups = TlnFilteredPositionalStyleMarkup.convertData({ head: { vars: []}, results: { bindings: <any>[ content[i] ] } }, content[i]['markup_id'])\n if (elements.length > 0 && element.id == elements[elements.length-1].id){\n elements[elements.length-1].markups.push(element.markups[0])\n if (element.top < elements[elements.length-1].top && element.left < elements[elements.length-1].left){\n elements[elements.length-1].left = element.left;\n }\n } else {\n elements.push(element);\n }\n }\n elements.sort((w0: TlnPreviewWord, w1: TlnPreviewWord)=>{\n return w0.left - w1.left\n })\n return elements;\n }\n}\n","import { BasicResultBindingElement, FusekiResults} from './basic_datatype';\nimport { TlnWord } from './word';\nexport class TlnExtWord extends TlnWord {\n startLine?: string; \n endLine?: string;\n\n constructor(data: any, id?: string, service?: any){\n super(data, id, service)\n this.startLine = this.getData4Key('startLine');\n this.endLine = this.getData4Key('endLine');\n }\n}\nexport class PageResult {\n words: TlnExtWord[] = [];\n\n constructor(words: TlnExtWord[]){\n this.words = words;\n }\n public getWords(): string[] {\n return this.words.map(word =>word.id);\n }\n public getStartLine(): string {\n let sortedWords = this.words.sort((word0, word1) =>word0.line_number - word1.line_number)\n if (sortedWords.length == 0){\n return '';\n }\n return (sortedWords[0].startLine != undefined && sortedWords[0].startLine != null) ? sortedWords[0].startLine : sortedWords[0].line;\n }\n public getEndLine(): string {\n let sortedWords = this.words.sort((word0, word1) =>word0.line_number - word1.line_number)\n if (sortedWords.length == 0){\n return '';\n }\n return (sortedWords[sortedWords.length-1].endLine != undefined && sortedWords[sortedWords.length-1].endLine != null) \n ? sortedWords[sortedWords.length-1].endLine : sortedWords[sortedWords.length-1].line;\n }\n}\n\nexport class FoundPage extends BasicResultBindingElement{\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT DISTINCT ?id ?manuscript ?title ?number ?word ?text ?line ?line_number ?startLine ?endLine WHERE {\n ?id a tln:Page;\n tln:hasNumber ?number; \n tln:hasPseudoText ?fulltext.\n FILTER regex(?fulltext, \"#find#\", \"s\").\n ?manuscript a tln:ArchivalManuscriptUnity;\n tln:hasManuscriptType \"Mappe\";\n tln:hasPages/rdf:rest*/rdf:first ?id;\n tln:hasTitle ?title.\n ?id tln:hasWords/rdf:rest*/rdf:first ?word.\n ?word tln:hasOutputText ?text;\n tln:wordBelongsToLine ?line.\n ?line tln:lineHasNumber ?line_number.\n OPTIONAL{ ?previouseNode rdf:rest/rdf:first ?line;\n rdf:first ?startLine.}\n OPTIONAL{ ?myNode rdf:first ?line;\n rdf:rest/rdf:first ?endLine.}\n #FILTER().\n } order by ?id ?line_number`;\n title: string\n number: string;\n manuscript: string\n results: PageResult[] = [];\n\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.title = this.getData4Key('title'); \n this.number = this.getData4Key('number');\n this.manuscript = this.getData4Key('manuscript');\n }\n public removeIncompleteResults(searchTerms: string[]) {\n this.results = this.results.filter(result =>searchTerms.every(searchText =>result.words.filter(word =>word.text.match('^[^\\w\\s]*' + searchText + '.*')).length > 0))\n }\n /**\n * This method returns the parametrized SPARQL query of this FoundPage\n *\n * If \"key\" is omitted {@link /classes/BasicResultBindingElement.html#default_key|default_key} will be used.\n *\n * @param find the search text\n * @param key will be ignored. \n **/\n public static getQuery(find?: string, key?: string): string {\n if(find == undefined || find == null){\n return this.query;\n }\n let words = find.split(' ')\n let find_regex = words.join('.*') + '.*'\n let filter = 'FILTER regex(?text, \"^[^\\\\\\\\w]?(' + words.join('.*|') + '.*)\")';\n let query = this.query.replace('#find#', find_regex).replace('#FILTER()', filter);\n //console.log(query);\n return query;\n }\n public static convertData<T extends typeof BasicResultBindingElement>(this: T, data: FusekiResults, id?: string, service?: any): Array<InstanceType<T>> {\n let elements = []; \n let pages = []; \n let searchTerms = service.getSearchTerms();\n let content = this.getContent(data);\n let currentResult: PageResult = null;\n let currentPage: FoundPage = null;\n for (var i = 0; i < content.length; i++){\n let page = new FoundPage(content[i], id, service);\n if(content[i]['word'] != undefined && content[i]['word'] != null) { \n let words = TlnExtWord.convertData({ head: { vars: []}, results: { bindings: <any>[ content[i] ] } }, content[i]['word']['value']);\n if (pages.length == 0 || pages.map(page =>page.id).indexOf(page.id) == -1){\n currentResult = new PageResult(words);\n currentPage = page;\n currentPage.results.push(currentResult)\n pages.push(currentPage)\n } else {\n if (currentResult.words.indexOf(words[0]) == -1){\n if (currentResult.words.length > 0 \n && (Math.abs(Math.min(...currentResult.words.map(word =>word.line_number)) - words[0].line_number) > 4\n || Math.abs(Math.max(...currentResult.words.map(word =>word.line_number)) - words[0].line_number) > 4)){\n currentResult = new PageResult(words);\n currentPage.results.push(currentResult);\n } else {\n currentResult.words.push(words[0]);\n }\n }\n }\n }\n }\n pages.forEach(page =>page.removeIncompleteResults(searchTerms));\n return pages.filter(page =>page.results.length > 0);\n }\n}\n","import { TlnImage } from './image';\nimport { Image } from '../models';\n\nexport class SVGImage extends TlnImage {\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n\n SELECT ?id ?filename ?width ?height ?URL ?secondaryURL ?t_left ?t_top ?t_width ?t_height ?page WHERE {\n ?id a tln:SVGImage;\n tln:hasPrimaryurl ?URL;\n tln:hasSecondaryurl ?secondaryURL;\n tln:hasFileName ?filename;\n tln:hasWidth ?width;\n tln:hasHeight ?height;\n tln:hasTextField ?textfield.\n ?textfield tln:hasLeft ?t_left;\n tln:hasTop ?t_top;\n tln:hasWidth ?t_width;\n tln:hasHeight ?t_height;\n ^tln:pageIsOnTextField ?page.\n }`;\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.x = this.text_field.left;\n this.y = this.text_field.top;\n }\n}\nexport class SVGImageClip extends SVGImage {\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?filename ?width ?height ?URL ?secondaryURL ?t_left ?t_top ?t_width ?t_height ?page ?y ?end_bottom WHERE {\n ?id a tln:SVGImage;\n tln:hasPrimaryurl ?URL;\n tln:hasSecondaryurl ?secondaryURL;\n tln:hasFileName ?filename;\n tln:hasWidth ?width;\n tln:hasHeight ?height;\n tln:hasTextField ?textfield.\n ?textfield tln:hasLeft ?t_left;\n tln:hasTop ?y;\n tln:hasWidth ?t_width;\n ^tln:pageIsOnTextField ?page.\n ?page tln:hasLines ?lines.\n ?lines rdf:rest* ?start_node;\n rdf:rest* ?end_node.\n ?start_node rdf:first ?startLine;.\n ?end_node rdf:first ?endLine;.\n ?startLine tln:lineHasTopValueOnTranskription ?start_top.\n ?endLine tln:lineHasBottomValueOnTranskription ?end_bottom.\n OPTIONAL { ?start_node ^rdf:rest/rdf:first ?previousLine.\n ?previousLine tln:lineHasBottomValueOnTranskription ?previous_bottom. \n }\n OPTIONAL { ?end_node rdf:rest/rdf:first/rdf:rest/rdf:first ?nextLine.\n ?nextLine tln:lineHasTopValueOnTranskription ?next_top. \n }\n BIND(IF(bound(?previous_bottom), ?previous_bottom+1, ?start_top - 5) as ?t_top)\n BIND(IF(bound(?next_top), ?next_top-?t_top, ?end_bottom - ?t_top + 10) as ?t_height)\n }`;\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.y = this.getData4Key('y');\n }\n}\n","import { FusekiResults, BasicResultBindingElement } from './basic_datatype';\nimport { TextGeneticOrder, TextUnity, TextVersion } from '../models';\nimport { PageStub } from './page';\nexport class TlnTextVersion extends BasicResultBindingElement implements TextVersion {\n id: string;\n title: string; \n extUrl?: string;\n manuscript?: string;\n textUnities: TlnTextUnity[] = [];\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.title = this.getData4Key('title');\n this.extUrl = this.getData4Key('extUrl');\n this.manuscript = this.getData4Key('manuscript');\n }\n}\nexport class TlnTextUnity extends BasicResultBindingElement implements TextUnity {\n number: string;\n startLine?: number;\n endLine?: number;\n belongsToPage?: string;\n endLineIri?: string;\n startLineIri? : string;\n hasFaksimileImage?: boolean;\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n this.number = this.getData4Key('number');\n this.startLine = this.getData4Key('startLine');\n this.endLine = this.getData4Key('endLine');\n this.belongsToPage = this.getData4Key('text_page');\n this.startLineIri = this.getData4Key('startLineIri');\n this.endLineIri = this.getData4Key('endLineIri');\n this.hasFaksimileImage = this.getData4Key('hasFaksimileImage');\n }\n}\n/**\n * This is the text version instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.\n * It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.\n **/\nexport class TlnTextGeneticOrder extends BasicResultBindingElement implements TextGeneticOrder {\n /** \n * the internal default key for replacing {@link /classes/TlnLine.html#query|query} by \"id\"\n * in {@link /classes/TlnLine.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n static readonly default_key: string = 'page';\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n \n SELECT distinct ?id ?text_version ?text_unity ?text_page ?number ?startLine ?endLine ?title WHERE {\n {?version a tln:IdentifiedTextVersion;\n \t\t tln:identifiesAsVersion/rdf:rest*/rdf:first ?page.\n } UNION {\n ?version a tln:IdentifiedTextVersion;\n \t\t tln:identifiesAsVersion/rdf:rest*/rdf:first/tln:belongsToPage ?page.\n }\n ?id tln:hasGeneticOrder/rdf:rest*/rdf:first ?version;\n tln:hasGeneticOrder/rdf:rest*/rdf:first ?text_version.\n \n OPTIONAL { ?text_version tln:identifiesAsVersion/rdf:rest*/rdf:first ?text_unity.\n OPTIONAL { ?text_unity tln:hasNumber ?number.\n ?manuscript a tln:ArchivalManuscriptUnity;\n tln:hasTitle ?title;\n tln:hasPages/rdf:rest*/rdf:first ?text_unity.\n }\n OPTIONAL { ?text_unity tln:belongsToPage ?text_page; \n tln:startLine/tln:lineHasNumber?startLine;\n tln:endLine/tln:lineHasNumber ?endLine.\n \t\t\t ?text_page tln:hasNumber ?number.\n \t\t\t ?manuscript a tln:ArchivalManuscriptUnity;\n tln:hasTitle ?title;\n tln:hasPages/rdf:rest*/rdf:first ?text_page.\n }\n }\n OPTIONAL { ?text_version tln:textUnitHasTitle ?title.}\n }`;\n /** \n * the public key for replacing {@link /classes/TlnLine.html#query|query} by \"id\".\n **/\n static readonly query_key: string = 'page';\n textVersions: TlnTextVersion[] = []; \n\n /**\n * The constructor creates a datatype from the data.\n *\n * @param id if omitted the id will be retrieved from data\n **/\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n }\n public static convertData<T extends typeof BasicResultBindingElement>(this: T, data: FusekiResults, id?: string, service?: any): Array<InstanceType<T>> {\n let elements = []; \n let content = this.getContent(data);\n for (var i = 0; i < content.length; i++){\n let element = new TlnTextGeneticOrder(content[i], service);\n let versions = TlnTextVersion.convertData({ head: { vars: []}, results: { bindings: <any>[ content[i] ] } }, content[i]['text_version']['value'])\n let text_unities = (content[i]['text_unity'] != undefined) ? \n TlnTextUnity.convertData({ head: { vars: []}, results: { bindings: <any>[ content[i] ] } }, content[i]['text_unity']['value']) : [];\n /*if (text_unities.length > 0){\n console.log(text_unities[0]);\n }*/\n if (elements.length > 0 && elements[elements.length-1].id == element.id){\n if (elements[elements.length-1].textVersions.length > 0 \n && elements[elements.length-1].textVersions[elements[elements.length-1].textVersions.length-1].id == versions[0].id){\n if (text_unities.length > 0){\n elements[elements.length-1].textVersions[elements[elements.length-1].textVersions.length-1].textUnities.push(text_unities[0]);\n }\n } else {\n if (text_unities.length > 0){\n versions[0].textUnities.push(text_unities[0])\n }\n elements[elements.length-1].textVersions.push(versions[0]);\n }\n } else {\n if (text_unities.length > 0){\n versions[0].textUnities.push(text_unities[0])\n }\n element.textVersions.push(versions[0])\n elements.push(element)\n }\n }\n //console.log(elements)\n return elements;\n }\n\n}\nexport class TlnStandaloneTextVersion extends TlnTextVersion {\n /** \n * the internal default key for replacing {@link /classes/TlnLine.html#query|query} by \"id\"\n * in {@link /classes/TlnLine.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n static readonly default_key: string = 'geneticOrder';\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n \n SELECT distinct ?id ?text_unity ?text_page ?manuscript ?number ?startLine ?startLineIri ?endLine ?endLineIri ?title ?extUrl ?hasFaksimileImage WHERE {\n ?geneticOrder a tln:TextGenesis;\n tln:hasGeneticOrder/rdf:rest*/rdf:first ?id.\n \n OPTIONAL { ?id tln:identifiesAsVersion/rdf:rest*/rdf:first ?text_unity.\n OPTIONAL { ?text_unity tln:hasNumber ?number.\n ?manuscript a tln:ArchivalManuscriptUnity;\n tln:hasTitle ?title;\n tln:hasPages/rdf:rest*/rdf:first ?text_unity.\n BIND(exists{ ?text_unity tln:hasFaksimileImage ?image } as ?hasFaksimileImage)\n }\n OPTIONAL { ?text_unity tln:belongsToPage ?text_page; \n tln:startLine ?startLineIri;\n tln:endLine ?endLineIri.\n \t\t\t ?text_page tln:hasNumber ?number.\n ?startLineIri tln:lineHasNumber?startLine.\n ?endLineIri tln:lineHasNumber ?endLine.\n \t\t\t ?manuscript a tln:ArchivalManuscriptUnity;\n tln:hasTitle ?title;\n tln:hasPages/rdf:rest*/rdf:first ?text_page.\n BIND(exists{ ?text_page tln:hasFaksimileImage ?image } as ?hasFaksimileImage)\n }\n }\n OPTIONAL { ?id tln:textUnitHasTitle ?title; tln:textUnitHasUrl ?extUrl.}\n }`;\n /** \n * the public key for replacing {@link /classes/TlnLine.html#query|query} by \"id\".\n **/\n static readonly query_key: string = 'geneticOrder';\n\n constructor (data: any, id?: string, service?: any) {\n super(data, id, service);\n if(this.service != null){\n this.service.initSelecteTextVersion(this);\n }\n }\n\n public static convertData<T extends typeof BasicResultBindingElement>(this: T, data: FusekiResults, id?: string, service?: any): Array<InstanceType<T>> {\n let elements = []; \n let content = this.getContent(data);\n for (var i = 0; i < content.length; i++){\n let element = new TlnStandaloneTextVersion(content[i], id, service);\n let text_unities = (content[i]['text_unity'] != undefined) ? \n TlnTextUnity.convertData({ head: { vars: []}, results: { bindings: <any>[ content[i] ] } }, content[i]['text_unity']['value']) : [];\n if (elements.length > 0 && elements[elements.length-1].id == element.id){\n if (text_unities.length > 0){\n elements[elements.length-1].textUnities.push(text_unities[0]);\n }\n } else {\n if (text_unities.length > 0){\n element.textUnities.push(text_unities[0]);\n }\n elements.push(element)\n }\n }\n //console.log(elements)\n return elements;\n }\n\n}\nexport class TlnPageWithTextGeneticOrder extends PageStub {\n /** \n * the internal default key for replacing {@link /classes/TlnLine.html#query|query} by \"id\"\n * in {@link /classes/TlnLine.html#getQuery|getQuery} if \"key\" is omitted.\n **/\n static readonly default_key: string = 'manuscript';\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n \n SELECT distinct ?id ?number WHERE {\n ?manuscript tln:hasPages/rdf:rest*/rdf:first ?id.\n {?version a tln:IdentifiedTextVersion;\n \t\t tln:identifiesAsVersion/rdf:rest*/rdf:first ?id.\n } UNION {\n ?version a tln:IdentifiedTextVersion;\n \t\t tln:identifiesAsVersion/rdf:rest*/rdf:first/tln:belongsToPage ?id.\n }\n ?id tln:hasNumber ?number.\n }`;\n /** \n * the public key for replacing {@link /classes/TlnLine.html#query|query} by \"id\".\n **/\n static readonly query_key: string = 'manuscript';\n\n}\n\n","import { TlnPositionalObject } from './positional_object';\nimport { Word } from '../models';\n/**\n * This is the word instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.\n * It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.\n **/\nexport class TlnWord extends TlnPositionalObject implements Word {\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?text ?edited_text ?left ?top ?width ?height ?transform ?line ?line_number ?deleted ?deletion_path WHERE {\n ?page tln:hasWords/rdf:rest*/rdf:first ?id.\n ?id tln:wordBelongsToLine ?line; \n tln:hasText ?text;\n tln:hasTranskriptionPosition ?tp.\n \t?tp tln:hasLeft ?left; tln:hasTop ?top; tln:hasWidth ?width; tln:hasHeight ?height.\n ?line tln:lineHasNumber ?line_number.\n BIND(exists{\n {?id tln:wordIsDeletedByPath ?path} \n UNION{ ?id tln:wordHasWordParts/rdf:rest*/rdf:first ?word_part.\n ?word_part tln:hasTranskriptionPosition ?tp; tln:wordIsDeletedByPath ?path}\n } as ?deleted)\n\n OPTIONAl { ?tp tln:hasTransform ?transform.}\n OPTIONAl { ?id tln:hasEditedText ?edited_text.}\n OPTIONAl { ?id tln:wordIsDeletedByPath/tln:hasDAttribute ?deletion_path.}\n OPTIONAl { ?id tln:wordHasWordParts/rdf:rest*/rdf:first ?word_part.\n ?word_part tln:hasTranskriptionPosition ?tp; tln:wordIsDeletedByPath/tln:hasDAttribute ?deletion_path}\n } `;\n /**\n * the text of this word\n **/\n text: string;\n /**\n * the text of this word as it has been edited by the editors.\n **/\n edited_text?: string;\n /**\n * the id of the line to which this word belongs.\n **/\n line: string;\n /**\n * the number of the line to which this word belongs.\n * */\n line_number: number;\n /**\n * is this word deleted.\n **/\n deleted: boolean;\n /** \n * a deletion path\n **/\n deletion_path?: string;\n \n /**\n * The constructor creates a datatype from the data.\n *\n * @param id if omitted the id will be retrieved from data\n **/\n constructor(data: any, id?: string, service?: any){\n super(data, id, service)\n this.text = this.getData4Key('text');\n this.edited_text = this.getData4Key('edited_text');\n this.line = this.getData4Key('line');\n this.line_number = this.getData4Key('line_number');\n this.deleted = this.getData4Key('deleted');\n this.deletion_path = this.getData4Key('deletion_path');\n }\n}\n/**\n * This is the faksimile word instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.\n * It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.\n **/\nexport class FaksimileWord extends TlnWord {\n /** \n * the SPARQL-query of this datatype.\n **/\n static readonly query: string = `\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?text ?edited_text ?left ?top ?width ?height ?transform ?line ?line_number ?deleted WHERE {\n ?page tln:hasWords/rdf:rest*/rdf:first ?id.\n ?id tln:wordBelongsToLine ?line; \n tln:hasText ?text;\n tln:hasFaksimilePosition ?fp.\n \t?fp tln:hasLeft ?left; tln:hasTop ?top; tln:hasWidth ?width; tln:hasHeight ?height.\n ?line tln:lineHasNumber ?line_number.\n BIND(exists{{?id tln:wordIsDeletedByPath ?path} UNION { ?id tln:wordHasWordParts/rdf:rest*/rdf:first/tln:wordIsDeletedByPath ?path}\n } as ?deleted)\n OPTIONAl { ?fp tln:hasTransform ?transform.}\n OPTIONAl { ?id tln:hasEditedText ?edited_text.}\n } `;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'debug'\n})\nexport class DebugPipe implements PipeTransform {\n\n transform(value: any): any {\n console.log(value)\n return value;\n }\n\n}\n","import { OnInit } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\n\nexport interface ParamContent {\n param: string;\n type: string;\n debug?: string;\n ignore?: boolean;\n}\nexport interface Mapping {\n [name: string]: ParamContent; \n}\n\nexport class RouteReader implements OnInit {\n protected mapping: Mapping; \n protected routerParams: Params;\n\n constructor(protected router: Router, protected activatedRoute: ActivatedRoute ) { }\n\n ngOnInit() {\n this.activatedRoute.queryParams.subscribe(params => {\n this.readParams(params)\n });\n }\n protected readParams(params: Params) {\n this.routerParams = params;\n for(let key of Object.keys(this.mapping)){\n if (this.mapping[key]['ignore'] == undefined || !this.mapping[key]['ignore']){\n let paramsKey = this.mapping[key]['param'];\n if (this.routerParams[paramsKey] != null){\n if (this.mapping[key]['type'] == 'number'){\n this[key] = Number(this.routerParams[paramsKey])\n } else if (this.mapping[key]['type'] == 'boolean'){\n this[key] = (this.routerParams[paramsKey] == 'true')\n } else if (Array.isArray(this[key]) && !Array.isArray(this.routerParams[paramsKey])) {\n this[key] = JSON.parse(this.routerParams[paramsKey])\n } else {\n this[key] = this.routerParams[paramsKey];\n } \n if (this.mapping[key]['debug'] != null){\n console.log(this.mapping[key]['debug'], this[key]);\n }\n }\n }\n }\n }\n}\n","import { Router, ActivatedRoute, Params } from '@angular/router';\nimport { Mapping, RouteReader } from './route-reader';\n\nexport class RouteUpdater extends RouteReader {\n protected mapping: Mapping;\n protected routerParams: Params;\n protected currentRoute: string;\n parentActivatedRoute: ActivatedRoute;\n\n constructor(protected router: Router, protected activatedRoute: ActivatedRoute ) { \n super(router, activatedRoute);\n if(this.currentRoute == undefined || this.currentRoute == null){\n this.currentRoute = (this.activatedRoute.snapshot.routeConfig != null)\n ? this.activatedRoute.snapshot.routeConfig.path : null;\n }\n }\n protected updateParams(launch?: boolean) {\n let newRouterParam = {};\n for(let key of Object.keys(this.mapping)){\n let paramsKey = this.mapping[key]['param'];\n if(this[key] != null){\n if (Array.isArray(this[key]) && this[key].length > 0){\n newRouterParam[paramsKey] = JSON.stringify(this[key]);\n } else {\n newRouterParam[paramsKey] = this[key];\n }\n }\n }\n for(let key of Object.keys(this.routerParams)){\n if(newRouterParam[key] == null){\n newRouterParam[key] = this.routerParams[key];\n }\n }\n let parentActivatedRoute = (this.activatedRoute.parent != null) ? this.activatedRoute.parent : this.parentActivatedRoute;\n if(parentActivatedRoute != undefined && parentActivatedRoute != null){\n parentActivatedRoute.url.subscribe(url=>{\n let parentPath = url[0].path;\n if (launch != undefined && launch){\n let link = this.router.createUrlTree([ parentPath + '/' + this.currentRoute], { queryParams: newRouterParam });\n window.open(link.toString(), '_blank')\n } else {\n this.router.navigate([ parentPath + '/' + this.currentRoute], { queryParams: newRouterParam });\n }\n });\n } else {\n if (launch != undefined && launch){\n let link = this.router.createUrlTree([ this.currentRoute], { queryParams: newRouterParam });\n window.open(link.toString(), '_blank')\n } else {\n this.router.navigate([ this.currentRoute], { queryParams: newRouterParam });\n }\n }\n }\n}\n","export { TlnQueryService } from './tln-query.service';\nexport { PageViewService } from '../page-view/page-view.service';\nexport { ConfigurableComponent } from '../page-view/configurable-component';\n","export default \"#navi {\\n width: 100%;\\n height: 50px;\\n margin: 0;\\n padding: 0;\\n white-space: nowrap;\\n}\\n.search {\\n margin-left: 8px;\\n }\\n.mat-button.min-width {\\n min-width: 120px;\\n max-width: 120px;\\n}\\n.default-mouse {\\n cursor: default;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1jcm9zc3JlZi9uYXZpZ2F0aW9uL25hdmlnYXRpb24uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLFdBQVc7R0FDWCxZQUFZO0dBQ1osU0FBUztHQUNULFVBQVU7R0FDVixtQkFBbUI7QUFDdEI7QUFDQTtHQUNHLGdCQUFnQjtDQUNsQjtBQUVEO0dBQ0csZ0JBQWdCO0dBQ2hCLGdCQUFnQjtBQUNuQjtBQUNBO0dBQ0csZUFBZTtBQUNsQiIsImZpbGUiOiJ0bG4tZWRpdGlvbi90bG4tY3Jvc3NyZWYvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjbmF2aSB7XG4gICB3aWR0aDogMTAwJTtcbiAgIGhlaWdodDogNTBweDtcbiAgIG1hcmdpbjogMDtcbiAgIHBhZGRpbmc6IDA7XG4gICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnNlYXJjaCB7XG4gICBtYXJnaW4tbGVmdDogOHB4O1xuIH1cblxuLm1hdC1idXR0b24ubWluLXdpZHRoIHtcbiAgIG1pbi13aWR0aDogMTIwcHg7XG4gICBtYXgtd2lkdGg6IDEyMHB4O1xufVxuLmRlZmF1bHQtbW91c2Uge1xuICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuIl19 */\"","import { Component, OnInit, Input } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { TlnQueryServiceInterface, Reference, ManuscriptUnity, NavigationPage } from '../../models';\nimport { TlnManuscriptUnity, TlnNavigationPage} from '../../datatypes/navigation';\nimport { DEFAULT_VIEW_OPTION, TLN_VIEWER_ROUTE, TLN_CROSSREF_ROUTE, TLN_CONTEXT_VIEW_PARAM, TLN_FULLSCREEN_PARAM, TLN_FIND_PARAM, TLN_PAGE_PARAM, TLN_MANUSCRIPT_PARAM,\n TLN_SELECTED_LINES_PARAM, TLN_VIEW_OPTION_PARAM, TLN_ZOOM_PARAM, VIEW_OPTIONS, ONTOLOTY_PREFIX } from '../../constants';\nimport { IsReconstructedKonvolut } from '../../datatypes/basic_datatype';\nimport { TlnLine} from '../../datatypes/line';\nimport { TlnTextGeneticOrder} from '../../datatypes/text_version';\nimport { Mapping } from '../../route-reader';\nimport { RouteUpdater } from '../../route-updater';\nimport { ComplexKeyIriMapping, DataHandler, KeyIriMapping } from '../../data_handler';\nimport { PageViewService, TlnQueryService } from '../../services';\nimport { TlnInformationComponent, ParentInformation } from '../../tln-information/tln-information.component';\nimport { PageInformation } from '../../tln-information/page-information';\n\n@Component({\n selector: 'crossref-navigation',\n templateUrl: './navigation.component.html',\n styleUrls: ['./navigation.component.css']\n})\nexport class NavigationComponent extends RouteUpdater {\n /**\n * OPTIONAL pass a queryService with method \n * {@link /interfaces/TlnQueryServiceInterface.html#getData|getData}\n * to TlnPageViewComponent.\n **/\n @Input() queryService: TlnQueryServiceInterface;\n /**\n * whether or not to show page view in fullscreen mode.\n **/\n fullscreen: boolean = false;\n current_iri: string;\n current_manuscript_iri: string;\n current_page: NavigationPage;\n pageInformation: PageInformation;\n previous_page: NavigationPage;\n next_page: NavigationPage;\n showArchivalManuscriptUnity: boolean = false;\n dataHandler: DataHandler = new DataHandler(this);\n geneticOrders: TlnTextGeneticOrder[] = [];\n selectedLines: string[] = [];\n private readonly PAGE_CONTEXT_VIEW: string = TLN_PAGE_PARAM;\n private readonly MANUSCRIPT_CONTEXT_VIEW: string = TLN_MANUSCRIPT_PARAM;\n contextView: string = this.PAGE_CONTEXT_VIEW;\n private readonly increment: number = 0.333;\n private readonly decrement: number = this.increment*-1;\n protected currentRoute: string = TLN_CROSSREF_ROUTE;\n protected mapping: Mapping = { \n contextView: { param: TLN_CONTEXT_VIEW_PARAM, type: \"string\" },\n current_iri: { param: TLN_PAGE_PARAM, type: \"string\" },\n current_manuscript_iri: { param: TLN_MANUSCRIPT_PARAM, type: \"string\" },\n fullscreen: { param: TLN_FULLSCREEN_PARAM, type: \"boolean\" }\n }\n routerParams: Params;\n selectedViewOption: string = DEFAULT_VIEW_OPTION\n updating: boolean = false;\n viewOptions: string[] = [ VIEW_OPTIONS.TRANSKRIPTION, VIEW_OPTIONS.FAKSIMILE, VIEW_OPTIONS.SYNOPSIS, VIEW_OPTIONS.SYNOPSIS_B ];\n\n constructor(private pageViewService: PageViewService, private localQueryService: TlnQueryService, protected router: Router, protected activatedRoute: ActivatedRoute ) { \n super(router, activatedRoute);\n }\n ngOnInit() {\n let tlnQueryService = (this.queryService != null) ? this.queryService : this.localQueryService;\n this.dataHandler.addHandler('navigation_page', ['current_page', 'geneticOrders'] );\n this.dataHandler.addHandler('current_page', { 'handler': TlnNavigationPage });\n this.dataHandler.addHandler('geneticOrders', { 'handler': TlnTextGeneticOrder});\n this.dataHandler.setQueryService(tlnQueryService);\n this.dataHandler.start_processing.subscribe(\n (started: boolean) =>{ this.updating = true;\n });\n this.dataHandler.processing_finished.subscribe(\n (finished: boolean) =>{ this.updating = false;\n });\n super.ngOnInit();\n }\n changeContext(){\n this.contextView = (this.contextView == this.PAGE_CONTEXT_VIEW) ? this.MANUSCRIPT_CONTEXT_VIEW : this.PAGE_CONTEXT_VIEW;\n //this.current_genetic_order_iri = 'none'; \n this.updateParams();\n }\n private getPageTitle(page?: NavigationPage, numPages?: number): string {\n if (page == null){\n return '';\n }\n let indexPrefix = (numPages != null) ? page.index + '/' + numPages : page.index;\n return indexPrefix + ': ' + page.title + ' ' + page.number;\n }\n protected readParams(params: Params){\n super.readParams(params);\n if (this.dataHandler.ready && (this.current_page == null || this.current_page.id != this.current_iri)){\n this.dataHandler.resetData('navigation_page')\n this.dataHandler.getData('current_page', this.current_iri);\n } \n }\n private setCurrentIri(pageIri: string){\n this.dataHandler.stop_processing.emit(true);\n this.current_iri = pageIri;\n this.currentRoute = TLN_VIEWER_ROUTE;\n this.updateParams();\n }\n private toggleFullscreen(){\n this.fullscreen = !this.fullscreen;\n this.updateParams();\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TlnTextGeneticOrder} from '../../datatypes/text_version';\n\n@Pipe({\n name: 'filter'\n})\nexport class FilterPipe implements PipeTransform {\n\n transform(geneticOrders: TlnTextGeneticOrder[], iri?: string): TlnTextGeneticOrder[] {\n if(!iri){\n return geneticOrders\n }\n return geneticOrders.filter(geneticOrder =>geneticOrder.id != iri);\n }\n\n}\n","export default \".example-radio-group {\\n display: flex;\\n flex-direction: column;\\n margin: 15px 0;\\n}\\n\\n.example-radio-button {\\n margin: 5px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1jcm9zc3JlZi9wYWdlLXZlcnNpb24tdmlldy9wYWdlLXZlcnNpb24tdmlldy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsV0FBVztBQUNiIiwiZmlsZSI6InRsbi1lZGl0aW9uL3Rsbi1jcm9zc3JlZi9wYWdlLXZlcnNpb24tdmlldy9wYWdlLXZlcnNpb24tdmlldy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmV4YW1wbGUtcmFkaW8tZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXJnaW46IDE1cHggMDtcbn1cblxuLmV4YW1wbGUtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luOiA1cHg7XG59XG4iXX0= */\"","import { Component, Input, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { MatBottomSheetRef} from '@angular/material/bottom-sheet';\nimport { ManuscriptUnity, NavigationPage} from '../../models';\nimport { Mapping, RouteReader } from '../../route-reader';\nimport { RouteUpdater } from '../../route-updater';\nimport { TlnTextGeneticOrder} from '../../datatypes/text_version';\nimport { TLN_CONTEXT_VIEW_PARAM, TLN_PAGE_PARAM, TLN_MANUSCRIPT_PARAM, TLN_TEXT_GENETIC_ORDER_PARAM, TLN_CROSSREF_ROUTE } from '../../constants';\n\n@Component({\n selector: 'page-version-view',\n templateUrl: './page-version-view.component.html',\n styleUrls: ['./page-version-view.component.css']\n})\nexport class PageVersionViewComponent extends RouteUpdater implements OnInit {\n /**\n * IRI of the current page\n **/\n current_iri: string;\n /**\n * the current page\n **/\n @Input() current_page_iri: string;\n /**\n * the genetic text order that should be displayed.\n **/\n @Input() geneticOrders: TlnTextGeneticOrder[] = [];\n @Input() filterGeneticOrder: string;\n @Input() bottomSheetRef: MatBottomSheetRef;\n @Input() parentActivatedRoute: ActivatedRoute;\n current_manuscript_iri: string;\n current_genetic_order: string;\n contextView: string;\n protected currentRoute: string = TLN_CROSSREF_ROUTE;\n protected mapping: Mapping = { \n current_iri: { param: TLN_PAGE_PARAM, type: \"string\" },\n current_manuscript_iri: { param: TLN_MANUSCRIPT_PARAM, type: \"string\" },\n contextView: { param: TLN_CONTEXT_VIEW_PARAM, type: \"string\" },\n current_genetic_order: { param: TLN_TEXT_GENETIC_ORDER_PARAM, type: \"string\" } \n }\n\n constructor(protected router: Router, protected activatedRoute: ActivatedRoute ){ \n super(router, activatedRoute);\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n private openCrossRef(geneticOrder: TlnTextGeneticOrder){\n this.current_genetic_order = geneticOrder.id; \n this.current_iri = this.current_page_iri\n this.contextView = TLN_PAGE_PARAM;\n this.updateParams();\n if(this.bottomSheetRef != undefined && this.bottomSheetRef != null){\n this.bottomSheetRef.dismiss();\n }\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ0bG4tZWRpdGlvbi90bG4tY3Jvc3NyZWYvcGFnZS12ZXJzaW9uLXZpZXcvdGxuLXBhZ2UtdmVyc2lvbi12aWV3LmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, Input, OnInit } from '@angular/core';\nimport { TlnQueryService } from '../../services';\nimport { DataHandler } from '../../data_handler';\nimport { TlnTextGeneticOrder} from '../../datatypes/text_version';\n\n@Component({\n selector: 'tln-page-version-view',\n templateUrl: './tln-page-version-view.component.html',\n styleUrls: ['./tln-page-version-view.component.css']\n})\nexport class TlnPageVersionViewComponent implements OnInit {\n @Input() current_iri: string;\n dataHandler: DataHandler = new DataHandler(this);\n geneticOrders: TlnTextGeneticOrder[] = [];\n\n\n constructor(private queryService: TlnQueryService) { }\n\n ngOnInit() {\n this.dataHandler.addHandler('geneticOrders', { 'handler': TlnTextGeneticOrder});\n this.dataHandler.setQueryService(this.queryService);\n this.dataHandler.getData('geneticOrders', this.current_iri);\n }\n\n}\n","export default \"#page {\\n width: 100%;\\n position: relative;\\n top: 0px;\\n left: 0px;\\n}\\n.grid-container{ /* Chrome, Safari, Opera */\\n -moz-column-count: 2; /* Firefox */\\n column-count: 2;\\n}\\n.extra-space {\\n margin-top: 45px;\\n}\\n.page-crossref-title {\\n margin-left: 20px;\\n}\\n.preview {\\n position: relative;\\n top: 60px;\\n width: 400px;\\n height: 100%;\\n text-align: center;\\n}\\n.icon {\\n margin-left: 5px;\\n}\\n.centered {\\n margin: auto;\\n}\\n.text {\\n position: absolute;\\n top: 0px;\\n left: 400px;\\n}\\n.page-view {\\n overflow: auto;\\n}\\n.external {\\n margin-top: 35px;\\n background-color: lightblue;\\n height: 100px;\\n position: relative;\\n left: 80px;\\n z-index: 2;\\n}\\n.highlight {\\n background-color: lightblue;\\n}\\n.text-navi {\\n position: absolute;\\n margin-top: -3px;\\n left: 0px;\\n height: 38px;\\n width: 100%;\\n background-color: lightblue;\\n z-index: 1;\\n}\\n.close-text {\\n position: absolute;\\n height: 38px;\\n right: 0px;\\n z-index: 2;\\n}\\n.page-navi {\\n float: left;\\n margin-top: -3px;\\n margin-bottom: 1px;\\n height: 38px;\\n background-color: lightblue;\\n z-index: 2;\\n}\\n.icon-button {\\n width: 15px;\\n margin-left: 3px;\\n}\\n.default-mouse {\\n cursor: default;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1jcm9zc3JlZi90bG4tY3Jvc3NyZWYuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLFdBQVc7R0FDWCxrQkFBa0I7R0FDbEIsUUFBUTtHQUNSLFNBQVM7QUFDWjtBQUNBLGtCQUM0QiwwQkFBMEI7RUFDcEQsb0JBQW9CLE1BQU0sWUFBWTtFQUN0QyxlQUFlO0FBQ2pCO0FBQ0E7R0FDRyxpQkFBaUI7QUFDcEI7QUFDQTtHQUNHLGlCQUFpQjtBQUNwQjtBQUNBO0dBQ0csa0JBQWtCO0dBQ2xCLFNBQVM7R0FDVCxZQUFZO0dBQ1osWUFBWTtHQUNaLGtCQUFrQjtBQUNyQjtBQUNBO0dBQ0csZ0JBQWdCO0FBQ25CO0FBQ0E7R0FDRyxZQUFZO0FBQ2Y7QUFDQTtHQUNHLGtCQUFrQjtHQUNsQixRQUFRO0dBQ1IsV0FBVztBQUNkO0FBQ0E7R0FDRyxjQUFjO0FBQ2pCO0FBQ0E7R0FDRyxnQkFBZ0I7R0FDaEIsMkJBQTJCO0dBQzNCLGFBQWE7R0FDYixrQkFBa0I7R0FDbEIsVUFBVTtHQUNWLFVBQVU7QUFDYjtBQUNBO0dBQ0csMkJBQTJCO0FBQzlCO0FBQ0E7R0FDRyxrQkFBa0I7R0FDbEIsZ0JBQWdCO0dBQ2hCLFNBQVM7R0FDVCxZQUFZO0dBQ1osV0FBVztHQUNYLDJCQUEyQjtHQUMzQixVQUFVO0FBQ2I7QUFDQTtHQUNHLGtCQUFrQjtHQUNsQixZQUFZO0dBQ1osVUFBVTtHQUNWLFVBQVU7QUFDYjtBQUNBO0dBQ0csV0FBVztHQUNYLGdCQUFnQjtHQUNoQixrQkFBa0I7R0FDbEIsWUFBWTtHQUNaLDJCQUEyQjtHQUMzQixVQUFVO0FBQ2I7QUFDQTtHQUNHLFdBQVc7R0FDWCxnQkFBZ0I7QUFDbkI7QUFDQTtHQUNHLGVBQWU7QUFDbEIiLCJmaWxlIjoidGxuLWVkaXRpb24vdGxuLWNyb3NzcmVmL3Rsbi1jcm9zc3JlZi5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI3BhZ2Uge1xuICAgd2lkdGg6IDEwMCU7XG4gICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICB0b3A6IDBweDtcbiAgIGxlZnQ6IDBweDtcbn1cbi5ncmlkLWNvbnRhaW5lcntcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6IDI7ICAvKiBDaHJvbWUsIFNhZmFyaSwgT3BlcmEgKi9cbiAgLW1vei1jb2x1bW4tY291bnQ6IDI7ICAgICAvKiBGaXJlZm94ICovXG4gIGNvbHVtbi1jb3VudDogMjtcbn1cbi5leHRyYS1zcGFjZSB7XG4gICBtYXJnaW4tdG9wOiAgNDVweDtcbn1cbi5wYWdlLWNyb3NzcmVmLXRpdGxlIHtcbiAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xufVxuLnByZXZpZXcge1xuICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgdG9wOiA2MHB4O1xuICAgd2lkdGg6IDQwMHB4O1xuICAgaGVpZ2h0OiAxMDAlO1xuICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmljb24ge1xuICAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cbi5jZW50ZXJlZCB7XG4gICBtYXJnaW46IGF1dG87XG59XG4udGV4dCB7XG4gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICB0b3A6IDBweDtcbiAgIGxlZnQ6IDQwMHB4O1xufVxuLnBhZ2UtdmlldyB7XG4gICBvdmVyZmxvdzogYXV0bztcbn1cbi5leHRlcm5hbCB7XG4gICBtYXJnaW4tdG9wOiAzNXB4O1xuICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRibHVlO1xuICAgaGVpZ2h0OiAxMDBweDtcbiAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgIGxlZnQ6IDgwcHg7XG4gICB6LWluZGV4OiAyO1xufVxuLmhpZ2hsaWdodCB7XG4gICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGJsdWU7XG59XG4udGV4dC1uYXZpIHtcbiAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICBsZWZ0OiAwcHg7XG4gICBoZWlnaHQ6IDM4cHg7XG4gICB3aWR0aDogMTAwJTtcbiAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Ymx1ZTtcbiAgIHotaW5kZXg6IDE7XG59XG4uY2xvc2UtdGV4dCB7XG4gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICBoZWlnaHQ6IDM4cHg7XG4gICByaWdodDogMHB4O1xuICAgei1pbmRleDogMjtcbn1cbi5wYWdlLW5hdmkge1xuICAgZmxvYXQ6IGxlZnQ7XG4gICBtYXJnaW4tdG9wOiAtM3B4O1xuICAgbWFyZ2luLWJvdHRvbTogMXB4O1xuICAgaGVpZ2h0OiAzOHB4O1xuICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRibHVlO1xuICAgei1pbmRleDogMjtcbn1cbi5pY29uLWJ1dHRvbiB7XG4gICB3aWR0aDogMTVweDtcbiAgIG1hcmdpbi1sZWZ0OiAzcHg7XG59XG4uZGVmYXVsdC1tb3VzZSB7XG4gICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4iXX0= */\"","import { Component, OnInit, Input } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { DataProcessor, TlnQueryServiceInterface, TextVersion, NavigationPage} from '../models';\nimport { TLN_CROSSREF_ROUTE, TLN_VIEWER_ROUTE, TLN_CONTEXT_VIEW_PARAM, TLN_FULLSCREEN_PARAM, TLN_FIND_PARAM, TLN_PAGE_PARAM, TLN_MANUSCRIPT_PARAM,\n TLN_SELECTED_LINES_PARAM, TLN_TEXT_GENETIC_ORDER_PARAM, TLN_VIEW_OPTION_PARAM, TLN_ZOOM_PARAM, VIEW_OPTIONS, ONTOLOTY_PREFIX } from '../constants';\nimport { IsReconstructedKonvolut } from '../datatypes/basic_datatype';\nimport { TlnNavigationPage} from '../datatypes/navigation';\nimport { TlnLine} from '../datatypes/line';\nimport { ManuscriptStub } from '../datatypes/manuscript';\nimport { TlnPageWithTextGeneticOrder, TlnTextGeneticOrder, TlnStandaloneTextVersion} from '../datatypes/text_version';\nimport { Mapping } from '../route-reader';\nimport { RouteUpdater } from '../route-updater';\nimport { ComplexKeyIriMapping, DataHandler, KeyIriMapping } from '../data_handler';\nimport { PageViewService, TlnQueryService } from '../services';\nimport { TlnInformationComponent, ParentInformation } from '../tln-information/tln-information.component';\nimport { PageInformation } from '../tln-information/page-information';\n\n@Component({\n selector: 'tln-crossref',\n templateUrl: './tln-crossref.component.html',\n styleUrls: ['./tln-crossref.component.css']\n})\nexport class TlnCrossrefComponent extends RouteUpdater implements DataProcessor {\n /**\n * OPTIONAL pass a queryService with method \n * {@link /interfaces/TlnQueryServiceInterface.html#getData|getData}\n * to TlnPageViewComponent.\n **/\n @Input() queryService: TlnQueryServiceInterface;\n private readonly PAGE_CONTEXT_VIEW: string = TLN_PAGE_PARAM;\n private readonly MANUSCRIPT_CONTEXT_VIEW: string = TLN_MANUSCRIPT_PARAM;\n zoomFactor: number = 1;\n findText: string;\n dataHandler: DataHandler = new DataHandler(this);\n textVersions: TextVersion[] = [];\n geneticOrders: TlnTextGeneticOrder[] = [];\n contextView: string = this.PAGE_CONTEXT_VIEW;\n current_genetic_order_iri: string;\n current_manuscript_unity: string;\n current_manuscript: ManuscriptStub;\n current_iri: string;\n current_page: NavigationPage;\n fullscreen: boolean = false;\n pagesWithGeneticOrder: TlnPageWithTextGeneticOrder[] = [];\n max_width: number = -1;\n max_height: number = -1;\n next_page_iri: string;\n each_version_height: number = -1;\n selectedLines: string[] = [];\n selectedTextVersions: TextVersion[] = []\n private readonly increment: number = 0.333;\n private readonly decrement: number = this.increment*-1;\n private readonly margin_width: number = 280;\n private readonly initialPreviewWidth : number = 400;\n previewWidth: number = this.initialPreviewWidth;\n protected currentRoute: string = TLN_CROSSREF_ROUTE;\n protected mapping: Mapping = { findText: { param: TLN_FIND_PARAM, type: \"string\" },\n fullscreen: { param: TLN_FULLSCREEN_PARAM, type: \"boolean\" },\n contextView: { param: TLN_CONTEXT_VIEW_PARAM, type: \"string\" },\n current_iri: { param: TLN_PAGE_PARAM, type: \"string\" },\n current_manuscript_unity: { param: TLN_MANUSCRIPT_PARAM, type: \"string\" },\n current_genetic_order_iri: { param: TLN_TEXT_GENETIC_ORDER_PARAM, type: \"string\" },\n selectedLines: { param: TLN_SELECTED_LINES_PARAM, type: \"string\" },\n zoomFactor: { param: TLN_ZOOM_PARAM, type: \"number\" } }\n routerParams: Params;\n selectedViewOption: string = VIEW_OPTIONS.TRANSKRIPTION\n updating: boolean = false;\n viewOptions: string[] = [ VIEW_OPTIONS.TRANSKRIPTION, VIEW_OPTIONS.FAKSIMILE ];\n\n constructor(private pageViewService: PageViewService, private localQueryService: TlnQueryService, protected router: Router, protected activatedRoute: ActivatedRoute ) { \n super(router, activatedRoute);\n }\n ngOnInit() {\n if (screen.availWidth - this.initialPreviewWidth - this.margin_width > 1000){\n this.previewWidth = screen.availWidth - this.initialPreviewWidth - 1000;\n }\n this.max_width = screen.availWidth - this.previewWidth - this.margin_width;\n this.max_height = screen.availHeight - 200;\n let tlnQueryService = (this.queryService != null) ? this.queryService : this.localQueryService;\n this.dataHandler.addHandler('page_content', ['current_page', 'geneticOrders'] );\n this.dataHandler.addHandler('manuscript_content', ['current_manuscript', 'pagesWithGeneticOrder'] );\n this.dataHandler.addHandler('current_manuscript', { 'handler': ManuscriptStub});\n this.dataHandler.addHandler('current_page', { 'handler': TlnNavigationPage });\n this.dataHandler.addHandler('geneticOrders', { 'handler': TlnTextGeneticOrder});\n this.dataHandler.addHandler('pagesWithGeneticOrder', { 'handler': TlnPageWithTextGeneticOrder });\n this.dataHandler.addHandler('textVersions', { 'handler': TlnStandaloneTextVersion, 'process_data': this });\n this.dataHandler.setQueryService(tlnQueryService);\n this.dataHandler.start_processing.subscribe(\n (started: boolean) =>{ this.updating = true;\n });\n this.dataHandler.processing_finished.subscribe(\n (finished: boolean) =>{ this.updating = false;\n });\n super.ngOnInit();\n }\n public processData(): void {\n this.selectedTextVersions = [];\n let index = 0;\n while (index < this.textVersions.length && this.selectedTextVersions.length < 1){\n if(this.textVersions[index].textUnities != undefined && this.textVersions[index].textUnities.length > 0){\n this.selectedTextVersions.push(this.textVersions[index]);\n }\n index++\n }\n }\n private addOrRemove(textVersion: TextVersion) {\n let index = this.selectedTextVersions.indexOf(textVersion);\n if (index == -1){\n this.selectedTextVersions.push(textVersion);\n } else {\n this.selectedTextVersions.splice(index, 1);\n }\n this.each_version_height = (this.selectedTextVersions.length > 0) ? this.max_height/this.selectedTextVersions.length : this.max_height;\n }\n private clearFindText() {\n this.findText = '';\n this.updateParams();\n }\n private getButtonTitle(textVersion: TextVersion): string {\n return (this.selectedTextVersions.indexOf(textVersion) == -1) ? 'Textstelle anzeigen' : 'Textstelle ausblenden';\n }\n protected readParams(params: Params){\n let old_genetic_order_iri = this.current_genetic_order_iri;\n let old_current_iri = this.current_iri;\n let old_manuscript_unity = this.current_manuscript_unity;\n let old_context_view = this.contextView;\n super.readParams(params);\n if (this.dataHandler.ready){\n if (this.contextView == this.PAGE_CONTEXT_VIEW \n && (this.contextView != old_context_view || (this.current_iri != null && this.current_iri != old_current_iri))){\n this.dataHandler.resetData('page_content')\n this.dataHandler.getData('page_content', this.current_iri);\n }\n if (this.contextView == this.MANUSCRIPT_CONTEXT_VIEW \n && (this.contextView != old_context_view || (this.current_manuscript_unity != null && this.current_manuscript_unity != old_manuscript_unity))){\n this.dataHandler.resetData('manuscript_content')\n this.dataHandler.getData('manuscript_content', this.current_manuscript_unity);\n }\n if (this.contextView == this.PAGE_CONTEXT_VIEW \n && (this.contextView != old_context_view || \n (this.current_genetic_order_iri != null && (this.textVersions.length == 0 || this.current_genetic_order_iri != old_genetic_order_iri)))){\n this.dataHandler.resetData('textVersions')\n this.dataHandler.getData('textVersions', this.current_genetic_order_iri);\n }\n }\n }\n private openInViewer(pageIri: string, belongsToPageIri?: string, manuscriptIri?: string, launch?: boolean){\n this.current_iri = (belongsToPageIri != null) ? belongsToPageIri : pageIri;\n if(manuscriptIri != null){\n this.current_manuscript_unity = manuscriptIri;\n }\n this.currentRoute = TLN_VIEWER_ROUTE;\n this.updateParams(launch);\n }\n private setZoomFactor(newZoomFactor: number){\n if (newZoomFactor > 0){\n this.zoomFactor = Math.round(newZoomFactor*100)/100;\n } else {\n this.zoomFactor = this.zoomFactor/2\n }\n this.updateParams();\n }\n}\n","export default \".highlight {\\n text-decoration: underline;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1jcm9zc3JlZi92ZXJzaW9uLXZpZXcvdmVyc2lvbi12aWV3LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRywwQkFBMEI7QUFDN0IiLCJmaWxlIjoidGxuLWVkaXRpb24vdGxuLWNyb3NzcmVmL3ZlcnNpb24tdmlldy92ZXJzaW9uLXZpZXcuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5oaWdobGlnaHQge1xuICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4iXX0= */\"","import { Component, OnInit, Input } from '@angular/core';\nimport { TextVersion} from '../../models';\n\n@Component({\n selector: 'version-view',\n templateUrl: './version-view.component.html',\n styleUrls: ['./version-view.component.css']\n})\nexport class VersionViewComponent implements OnInit {\n @Input() version: TextVersion;\n @Input() current_iri: string;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { BrowserModule } from '@angular/platform-browser';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { NgModule } from '@angular/core';\nimport { MatProgressSpinnerModule,MatBottomSheetModule,MatButtonModule,MatCheckboxModule,MatDialogModule,MatExpansionModule,MatFormFieldModule,MatInputModule,MatListModule,MatPaginatorModule,MatRadioModule,MatSelectModule,MatSidenavModule,MatSortModule,MatTableModule,MatToolbarModule,MatButtonToggleModule,MatCardModule,MatIconModule,MatMenuModule,MatTabsModule,MatTooltipModule\n} from '@angular/material';\nimport { NgxMatStandoffMarkupModule } from '../lib/ngx-mat-standoff-markup.module';\nimport { PageViewService } from '../page-view/page-view.service';\nimport { PageViewModule } from '../page-view/page-view.module';\nimport { TlnPageViewComponent } from './tln-page-view.component';\nimport { TlnQueryService } from './tln-query.service';\nimport { ToolTipComponent } from './tooltip/tool-tip.component';\nimport { TlnViewerNavigation } from './tln-viewer-navigation/tln-viewer-navigation.component';\nimport { TlnInformationComponent } from './tln-information/tln-information.component';\nimport { TlnCrossrefComponent } from './tln-crossref/tln-crossref.component';\nimport { VersionViewComponent } from './tln-crossref/version-view/version-view.component';\nimport { PageVersionViewComponent } from './tln-crossref/page-version-view/page-version-view.component';\nimport { NavigationComponent } from './tln-crossref/navigation/navigation.component';\nimport { FilterPipe } from './tln-crossref/page-version-view/filter.pipe';\nimport { TlnPageVersionViewComponent } from './tln-crossref/page-version-view/tln-page-version-view.component';\nimport { TlnManuscriptViewComponent } from './tln-manuscript-view/tln-manuscript-view.component';\nimport { TlnFulltextComponent } from './tln-fulltext/tln-fulltext.component';\nimport { FulltextNavigationComponent } from './tln-fulltext/navigation/navigation.component';\nimport { ResultPipePipe } from './tln-fulltext/result-pipe.pipe';\nimport { SearchComponent } from './tln-navigation-elements/search.component';\nimport { ToggleNavigationComponent } from './tln-navigation-elements/toggle-navigation.component';\nimport { ZoomComponent } from './tln-navigation-elements/zoom.component';\nimport { ZoomPipe } from './tln-navigation-elements/zoom.pipe';\nimport { OpenInViewerComponent } from './tln-navigation-elements/open-in-viewer.component';\nimport { DebugPipe } from './debug.pipe';\nimport { TlnHeightDirective } from './tln-height.directive';\nimport { PageResultFilterPipe } from './tln-fulltext/page-result-filter.pipe';\n\n\n@NgModule({\n declarations: [FulltextNavigationComponent, TlnPageViewComponent, ToolTipComponent, TlnViewerNavigation, TlnInformationComponent, TlnCrossrefComponent, VersionViewComponent, PageVersionViewComponent, NavigationComponent, FilterPipe, TlnPageVersionViewComponent, TlnManuscriptViewComponent, TlnFulltextComponent, ResultPipePipe, SearchComponent, ToggleNavigationComponent, ZoomComponent, ZoomPipe, OpenInViewerComponent, DebugPipe, TlnHeightDirective, PageResultFilterPipe],\n imports: [\n MatBottomSheetModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatCardModule,\n MatCheckboxModule,\n MatDialogModule,\n MatExpansionModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatProgressSpinnerModule,\n MatPaginatorModule,\n MatRadioModule,\n MatSelectModule,\n MatSidenavModule,\n MatSortModule,\n MatTableModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n BrowserModule,\n CommonModule,\n FormsModule,\n NgxMatStandoffMarkupModule,\n PageViewModule\n ],\n exports: [\n DebugPipe,\n FulltextNavigationComponent,\n NavigationComponent,\n ToolTipComponent,\n TlnCrossrefComponent,\n TlnHeightDirective,\n TlnManuscriptViewComponent,\n TlnPageViewComponent,\n TlnViewerNavigation\n ], \n providers: [\n PageViewService,\n TlnQueryService\n ],\n entryComponents: [TlnInformationComponent]\n})\nexport class TlnEditionModule { }\n","export default \"#navi {\\n width: 100%;\\n height: 50px;\\n margin: 0;\\n padding: 0;\\n white-space: nowrap;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1mdWxsdGV4dC9uYXZpZ2F0aW9uL25hdmlnYXRpb24uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLFdBQVc7R0FDWCxZQUFZO0dBQ1osU0FBUztHQUNULFVBQVU7R0FDVixtQkFBbUI7QUFDdEIiLCJmaWxlIjoidGxuLWVkaXRpb24vdGxuLWZ1bGx0ZXh0L25hdmlnYXRpb24vbmF2aWdhdGlvbi5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI25hdmkge1xuICAgd2lkdGg6IDEwMCU7XG4gICBoZWlnaHQ6IDUwcHg7XG4gICBtYXJnaW46IDA7XG4gICBwYWRkaW5nOiAwO1xuICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiJdfQ== */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'fulltext-navigation',\n templateUrl: './navigation.component.html',\n styleUrls: ['./navigation.component.css']\n})\nexport class FulltextNavigationComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { FoundPage} from '../datatypes/search';\n\nexport interface ResultRange {\n start: number;\n end: number;\n}\n\n@Pipe({\n name: 'pageResultFilter'\n})\nexport class PageResultFilterPipe implements PipeTransform {\n\n transform(results: FoundPage[], range: ResultRange): FoundPage[] {\n if (results.length <= range.start){\n return results;\n }\n return results.slice(range.start, range.end);\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { FoundPage} from '../datatypes/search';\n@Pipe({\n name: 'resultPipe'\n})\nexport class ResultPipePipe implements PipeTransform {\n\n transform(pages: FoundPage[]): string {\n if (pages.length == 0){\n return 'Keine Treffer'\n }\n let pageResult = (pages.length > 1) ? pages.length + ' Seiten' : pages[0].title + ' ' + pages[0].number;\n let numFoundWords = 0;\n pages.forEach(page =>page.results.forEach(result =>numFoundWords++));\n return numFoundWords + ' Treffer auf ' + pageResult;\n }\n\n}\n","export default \"#page {\\n width: 98%;\\n position: relative;\\n top: 0px;\\n left: 0px;\\n height: 100%;\\n overflow: visible;\\n}\\n.icon-button {\\n width: 15px;\\n margin-left: 3px;\\n}\\n.page-navi {\\n float: left;\\n margin-top: -3px;\\n margin-bottom: 1px;\\n height: 38px;\\n background-color: lightblue;\\n z-index: 2;\\n}\\n.default-mouse {\\n cursor: default;\\n}\\n.small-grey {\\n color: lightgrey;\\n font-size: 80%;\\n}\\n.text {\\n position: absolute;\\n top: 10px;\\n left: 500px;\\n}\\n.search {\\n position: relative;\\n top: 60px;\\n width: 500px;\\n height: 100%;\\n text-align: center;\\n margin-right: 20px;\\n}\\n.extra-space {\\n margin-top: 45px;\\n}\\n.title {\\n text-align: left;\\n margin-left: 20px;\\n}\\n.form {\\n width: 95%;\\n}\\n.full-width {\\n min-width: 150px;\\n max-width: 500px;\\n width: 80%;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1mdWxsdGV4dC90bG4tZnVsbHRleHQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLFVBQVU7R0FDVixrQkFBa0I7R0FDbEIsUUFBUTtHQUNSLFNBQVM7R0FDVCxZQUFZO0dBQ1osaUJBQWlCO0FBQ3BCO0FBQ0E7R0FDRyxXQUFXO0dBQ1gsZ0JBQWdCO0FBQ25CO0FBQ0E7R0FDRyxXQUFXO0dBQ1gsZ0JBQWdCO0dBQ2hCLGtCQUFrQjtHQUNsQixZQUFZO0dBQ1osMkJBQTJCO0dBQzNCLFVBQVU7QUFDYjtBQUNBO0dBQ0csZUFBZTtBQUNsQjtBQUNBO0dBQ0csZ0JBQWdCO0dBQ2hCLGNBQWM7QUFDakI7QUFDQTtHQUNHLGtCQUFrQjtHQUNsQixTQUFTO0dBQ1QsV0FBVztBQUNkO0FBQ0E7R0FDRyxrQkFBa0I7R0FDbEIsU0FBUztHQUNULFlBQVk7R0FDWixZQUFZO0dBQ1osa0JBQWtCO0dBQ2xCLGtCQUFrQjtBQUNyQjtBQUNBO0dBQ0csaUJBQWlCO0FBQ3BCO0FBQ0E7R0FDRyxnQkFBZ0I7R0FDaEIsaUJBQWlCO0FBQ3BCO0FBQ0E7RUFDRSxVQUFVO0FBQ1o7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIsVUFBVTtBQUNaIiwiZmlsZSI6InRsbi1lZGl0aW9uL3Rsbi1mdWxsdGV4dC90bG4tZnVsbHRleHQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiNwYWdlIHtcbiAgIHdpZHRoOiA5OCU7XG4gICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICB0b3A6IDBweDtcbiAgIGxlZnQ6IDBweDtcbiAgIGhlaWdodDogMTAwJTtcbiAgIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLmljb24tYnV0dG9uIHtcbiAgIHdpZHRoOiAxNXB4O1xuICAgbWFyZ2luLWxlZnQ6IDNweDtcbn1cbi5wYWdlLW5hdmkge1xuICAgZmxvYXQ6IGxlZnQ7XG4gICBtYXJnaW4tdG9wOiAtM3B4O1xuICAgbWFyZ2luLWJvdHRvbTogMXB4O1xuICAgaGVpZ2h0OiAzOHB4O1xuICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRibHVlO1xuICAgei1pbmRleDogMjtcbn1cbi5kZWZhdWx0LW1vdXNlIHtcbiAgIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5zbWFsbC1ncmV5IHtcbiAgIGNvbG9yOiBsaWdodGdyZXk7XG4gICBmb250LXNpemU6IDgwJTtcbn1cbi50ZXh0IHtcbiAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgIHRvcDogMTBweDtcbiAgIGxlZnQ6IDUwMHB4O1xufVxuLnNlYXJjaCB7XG4gICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICB0b3A6IDYwcHg7XG4gICB3aWR0aDogNTAwcHg7XG4gICBoZWlnaHQ6IDEwMCU7XG4gICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG4uZXh0cmEtc3BhY2Uge1xuICAgbWFyZ2luLXRvcDogIDQ1cHg7XG59XG4udGl0bGUge1xuICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xufVxuLmZvcm0ge1xuICB3aWR0aDogOTUlO1xufVxuLmZ1bGwtd2lkdGgge1xuICBtaW4td2lkdGg6IDE1MHB4O1xuICBtYXgtd2lkdGg6IDUwMHB4O1xuICB3aWR0aDogODAlO1xufVxuIl19 */\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport {PageEvent} from '@angular/material/paginator';\nimport { TLN_CROSSREF_ROUTE, TLN_SEARCH_ROUTE, TLN_MANUSCRIPT_ROUTE, TLN_VIEWER_ROUTE, TLN_CONTEXT_VIEW_PARAM, TLN_FULLSCREEN_PARAM, TLN_FIND_PARAM, TLN_PAGE_PARAM, TLN_MANUSCRIPT_PARAM,\n TLN_RESULT_INDEX_PARAM,TLN_SELECTED_LINES_PARAM, TLN_TEXT_GENETIC_ORDER_PARAM, TLN_VIEW_OPTION_PARAM, TLN_ZOOM_PARAM, VIEW_OPTIONS, ONTOLOTY_PREFIX } from '../constants';\nimport { DataHandler } from '../data_handler';\nimport { FoundPage} from '../datatypes/search';\nimport { Mapping } from '../route-reader';\nimport { RouteUpdater } from '../route-updater';\nimport { TlnQueryService } from '../services';\nimport { ResultRange } from './page-result-filter.pipe';\n//TODO: german language support for paginator, see: https://github.com/ngx-translate/core\n@Component({\n selector: 'tln-fulltext',\n templateUrl: './tln-fulltext.component.html',\n styleUrls: ['./tln-fulltext.component.css']\n})\nexport class TlnFulltextComponent extends RouteUpdater implements OnInit {\n protected currentRoute: string = TLN_SEARCH_ROUTE;\n current_page_iri: string;\n current_manuscript_unity: string;\n dataHandler: DataHandler = new DataHandler(this);\n fullscreen: boolean;\n max_width: number = -1;\n max_height: number = -1;\n searchTerm: string;\n resultIndex: number = 0;\n resultLength: number = 5;\n resultRange: ResultRange = { start: 0, end: 4 }; \n resultsReceived: boolean = false;\n selectedViewOption: string = VIEW_OPTIONS.TRANSKRIPTION\n startSearch: boolean = false;\n protected mapping: Mapping = { \n current_page_iri: { param: TLN_PAGE_PARAM, type: \"string\" },\n resultIndex: { param: TLN_RESULT_INDEX_PARAM, type: \"number\" },\n searchTerm: { param: TLN_FIND_PARAM, type: \"string\" },\n current_manuscript_unity: { param: TLN_MANUSCRIPT_PARAM, type: \"string\" },\n fullscreen: { param: TLN_FULLSCREEN_PARAM, type: \"boolean\" },\n }\n pages: FoundPage[] = [];\n private readonly margin_width: number = 280;\n private readonly initialPreviewWidth : number = 300;\n previewWidth: number = this.initialPreviewWidth;\n\n constructor(private tlnQueryService: TlnQueryService, protected router: Router, protected activatedRoute: ActivatedRoute ) { \n super(router, activatedRoute);\n }\n\n ngOnInit() {\n if (screen.availWidth - this.initialPreviewWidth - this.margin_width > 1000){\n this.previewWidth = screen.availWidth - this.initialPreviewWidth - 1000;\n }\n this.max_width = screen.availWidth - this.previewWidth - this.margin_width;\n this.max_height = screen.availHeight - 200;\n this.dataHandler.addHandler('pages', { 'handler': FoundPage});\n this.dataHandler['pages']['service'] = this\n this.dataHandler.setQueryService(this.tlnQueryService);\n this.dataHandler.start_processing.subscribe(\n (started: boolean) =>{ \n this.resultsReceived = false;\n this.startSearch = true;\n });\n this.dataHandler.processing_finished.subscribe(\n (finished: boolean) =>{ \n this.resultsReceived = true;\n this.startSearch = false;\n });\n super.ngOnInit();\n }\n private clearFindText() {\n this.searchTerm = '';\n this.pages = [];\n this.resultIndex = 0;\n super.updateParams();\n }\n private search(){\n this.resultIndex = 0;\n this.updateResultRange();\n super.updateParams();\n if (this.searchTerm != undefined && this.searchTerm != null && this.searchTerm != ''){\n this.dataHandler.resetData('pages');\n this.dataHandler.getData('pages', this.searchTerm);\n }\n }\n protected readParams(params: Params){\n let oldSearchTerm = this.searchTerm;\n let oldResultIndex = this.resultIndex;\n super.readParams(params);\n if (this.searchTerm != undefined && this.searchTerm != null && this.searchTerm != '' && this.searchTerm != oldSearchTerm){\n this.resultIndex = 0;\n this.dataHandler.getData('pages', this.searchTerm);\n } \n if(oldResultIndex != this.resultIndex){\n this.updateResultRange();\n }\n }\n getSearchTerms(): string[] {\n return this.searchTerm.split(' '); \n }\n showResults(event: PageEvent){\n this.resultIndex = event.pageIndex; \n this.updateResultRange();\n this.updateParams()\n }\n private updateResultRange(){\n let newStart = this.resultIndex*this.resultLength\n let newEnd = newStart+this.resultLength;\n this.resultRange = { start: newStart, end: newEnd };\n }\n}\n","import { Directive, ElementRef, OnInit, Input } from '@angular/core';\nimport { TlnPageViewComponent } from './tln-page-view.component';\n\n@Directive({\n selector: '[setMaxHeightTo]'\n})\nexport class TlnHeightDirective implements OnInit{\n @Input('setMaxHeightTo') pageView: TlnPageViewComponent;\n constructor(public el: ElementRef) { }\n\n ngOnInit(){\n if (this.pageView != undefined && this.pageView != null){\n this.pageView.max_height = window.innerHeight - this.el.nativeElement.offsetHeight -15;\n }\n }\n}\n","export default \".highlight {\\n text-decoration: underline;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1pbmZvcm1hdGlvbi90bG4taW5mb3JtYXRpb24uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLDBCQUEwQjtBQUM3QiIsImZpbGUiOiJ0bG4tZWRpdGlvbi90bG4taW5mb3JtYXRpb24vdGxuLWluZm9ybWF0aW9uLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuaGlnaGxpZ2h0IHtcbiAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuIl19 */\"","import { Component, Inject, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { MAT_BOTTOM_SHEET_DATA, MatBottomSheetRef} from '@angular/material/bottom-sheet';\nimport { ManuscriptUnity, NavigationPage} from '../models';\nimport { Mapping, RouteReader } from '../route-reader';\nimport { RouteUpdater } from '../route-updater';\nimport { TlnTextGeneticOrder} from '../datatypes/text_version';\nimport { TLN_PAGE_PARAM, TLN_MANUSCRIPT_PARAM, TLN_TEXT_GENETIC_ORDER_PARAM, TLN_CROSSREF_ROUTE } from '../constants';\nimport { TlnViewerNavigation } from '../tln-viewer-navigation/tln-viewer-navigation.component';\nimport { PositionalStyleMarkup, StyleSheetDef, StandoffMarkupSettings} from '../../lib/ngx-mat-standoff-markup.component';\nimport { TlnPositionalStyleMarkup, TlnFilteredPositionalStyleMarkup } from '../datatypes/positional-markup';\n\nexport interface ParentInformation {\n geneticOrders: TlnTextGeneticOrder[];\n page: NavigationPage;\n manuscript_iri: string;\n parentActivatedRoute?: ActivatedRoute;\n}\n\n@Component({\n selector: 'app-tln-information',\n templateUrl: './tln-information.component.html',\n styleUrls: ['./tln-information.component.css']\n})\nexport class TlnInformationComponent extends RouteUpdater implements OnInit {\n /**\n * IRI of the current page\n **/\n current_iri: string;\n /**\n * the current page\n **/\n current_page: NavigationPage;\n /**\n * the data handler of this component that retrieves\n * data and instantiates it according to their proper \n * datatypes.\n **/\n geneticOrders: TlnTextGeneticOrder[] = [];\n current_manuscript_iri: string;\n current_genetic_order: string;\n protected currentRoute: string = TLN_CROSSREF_ROUTE;\n protected mapping: Mapping = { \n current_iri: { param: TLN_PAGE_PARAM, type: \"string\" },\n current_manuscript_iri: { param: TLN_MANUSCRIPT_PARAM, type: \"string\" },\n current_genetic_order: { param: TLN_TEXT_GENETIC_ORDER_PARAM, type: \"string\" } \n }\n\n constructor(@Inject(MAT_BOTTOM_SHEET_DATA) private data: ParentInformation, private bottomSheetRef: MatBottomSheetRef<TlnViewerNavigation>, protected router: Router, protected activatedRoute: ActivatedRoute ){ \n super(router, activatedRoute);\n this.current_page = data.page;\n this.geneticOrders = data.geneticOrders;\n this.current_manuscript_iri = data.manuscript_iri;\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n private openCrossRef(geneticOrder: TlnTextGeneticOrder){\n this.current_genetic_order = geneticOrder.id; \n this.current_iri = <string>this.current_page.id\n this.updateParams();\n }\n\n}\n","export default \"img.thumb {\\n overflow: auto;\\n padding: 0 20px;\\n text-align: center;\\n}\\ntd.author {\\n text-align: left;\\n width: 150px;\\n vertical-align: top;\\n padding-right: 10px;\\n}\\ntd.text {\\n text-align: justify;\\n width: 600px;\\n}\\np.text {\\n text-align: justify;\\n width: 760px;\\n}\\nbutton.nospace {\\n /*margin: -12px;*/\\n max-width: 15px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1tYW51c2NyaXB0LXZpZXcvdGxuLW1hbnVzY3JpcHQtdmlldy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0dBQ0csY0FBYztHQUNkLGVBQWU7R0FDZixrQkFBa0I7QUFDckI7QUFDQTtHQUNHLGdCQUFnQjtHQUNoQixZQUFZO0dBQ1osbUJBQW1CO0dBQ25CLG1CQUFtQjtBQUN0QjtBQUNBO0dBQ0csbUJBQW1CO0dBQ25CLFlBQVk7QUFDZjtBQUNBO0dBQ0csbUJBQW1CO0dBQ25CLFlBQVk7QUFDZjtBQUNBO0dBQ0csaUJBQWlCO0dBQ2pCLGVBQWU7QUFDbEIiLCJmaWxlIjoidGxuLWVkaXRpb24vdGxuLW1hbnVzY3JpcHQtdmlldy90bG4tbWFudXNjcmlwdC12aWV3LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJpbWcudGh1bWIge1xuICAgb3ZlcmZsb3c6IGF1dG87XG4gICBwYWRkaW5nOiAwIDIwcHg7XG4gICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG50ZC5hdXRob3Ige1xuICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgIHdpZHRoOiAxNTBweDtcbiAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xufVxudGQudGV4dCB7XG4gICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgd2lkdGg6IDYwMHB4O1xufVxucC50ZXh0IHtcbiAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICB3aWR0aDogNzYwcHg7XG59XG5idXR0b24ubm9zcGFjZSB7XG4gICAvKm1hcmdpbjogLTEycHg7Ki9cbiAgIG1heC13aWR0aDogMTVweDtcbn1cbiJdfQ== */\"","import { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { TLN_CROSSREF_ROUTE, TLN_MANUSCRIPT_ROUTE, TLN_VIEWER_ROUTE, TLN_CONTEXT_VIEW_PARAM, TLN_FULLSCREEN_PARAM, TLN_FIND_PARAM, TLN_PAGE_PARAM, TLN_MANUSCRIPT_PARAM,\n TLN_SELECTED_LINES_PARAM, TLN_TEXT_GENETIC_ORDER_PARAM, TLN_VIEW_OPTION_PARAM, TLN_ZOOM_PARAM, VIEW_OPTIONS, ONTOLOTY_PREFIX } from '../constants';\nimport { DataHandler } from '../data_handler';\nimport { ReconstructedKonvolut, TlnExtManuscript, ManuscriptEarlierDescription, ManuscriptDescription } from '../datatypes/manuscript';\nimport { PageStub } from '../datatypes/page';\nimport { Mapping } from '../route-reader';\nimport { RouteUpdater } from '../route-updater';\nimport { TlnQueryService } from '../services';\nimport { PositionalStyleMarkup, StyleSheetDef, StandoffMarkupSettings} from '../../lib/ngx-mat-standoff-markup.component';\n\n@Component({\n selector: 'tln-manuscript-view',\n templateUrl: './tln-manuscript-view.component.html',\n styleUrls: ['./tln-manuscript-view.component.css']\n})\nexport class TlnManuscriptViewComponent extends RouteUpdater implements OnInit {\n contextView: string = TLN_MANUSCRIPT_PARAM;\n protected currentRoute: string = TLN_MANUSCRIPT_ROUTE;\n current_manuscript: TlnExtManuscript;\n current_manuscript_unity: string;\n current_page_iri: string;\n cssDef: StyleSheetDef = { type: 'text', css: '' }\n dataHandler: DataHandler = new DataHandler(this);\n earlierDescriptions: ManuscriptEarlierDescription[] = [];\n fullscreen: boolean;\n manuscriptDescription?: ManuscriptDescription;\n reconstructedKonvolut?: ReconstructedKonvolut;\n protected mapping: Mapping = { \n contextView: { param: TLN_CONTEXT_VIEW_PARAM, type: \"string\" },\n current_page_iri: { param: TLN_PAGE_PARAM, type: \"string\" },\n current_manuscript_unity: { param: TLN_MANUSCRIPT_PARAM, type: \"string\" },\n fullscreen: { param: TLN_FULLSCREEN_PARAM, type: \"boolean\" },\n }\n mySettings = new StandoffMarkupSettings(true, true, false, 1);\n pages: PageStub[] = [];\n\n constructor(private tlnQueryService: TlnQueryService, protected router: Router, protected activatedRoute: ActivatedRoute ) { \n super(router, activatedRoute);\n }\n\n ngOnInit() {\n this.dataHandler.addHandler('manuscript_content', ['current_manuscript','manuscriptDescription', 'earlierDescriptions', 'pages', 'reconstructedKonvolut'] );\n this.dataHandler.addHandler('current_manuscript', { 'handler': TlnExtManuscript });\n this.dataHandler.addHandler('manuscriptDescription', { 'handler': ManuscriptDescription});\n this.dataHandler.addHandler('earlierDescriptions', { 'handler': ManuscriptEarlierDescription});\n this.dataHandler.addHandler('pages', { 'handler': PageStub });\n this.dataHandler.addHandler('reconstructedKonvolut', { 'handler': ReconstructedKonvolut});\n this.dataHandler.setQueryService(this.tlnQueryService);\n super.ngOnInit();\n }\n protected readParams(params: Params){\n let old_manuscript_unity = this.current_manuscript_unity;\n super.readParams(params);\n if (this.dataHandler.ready){\n if (this.current_manuscript_unity != null && this.current_manuscript_unity != old_manuscript_unity){\n this.dataHandler.resetData('manuscript_content')\n this.dataHandler.getData('manuscript_content', this.current_manuscript_unity);\n }\n }\n }\n private openInViewer(pageIri: string, launch: boolean){\n this.current_page_iri = pageIri;\n this.currentRoute = TLN_VIEWER_ROUTE;\n this.fullscreen = true;\n this.updateParams(launch);\n }\n\n}\n","export default \".icon-button {\\n width: 15px;\\n margin-left: 3px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL3Rsbi1lZGl0aW9uL3Rsbi1uYXZpZ2F0aW9uLWVsZW1lbnRzL29wZW4taW4tdmlld2VyLmNvbXBvbmVudC5zY3NzIiwidGxuLWVkaXRpb24vdGxuLW5hdmlnYXRpb24tZWxlbWVudHMvb3Blbi1pbi12aWV3ZXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRyxXQUFBO0VBQ0EsZ0JBQUE7QUNDSCIsImZpbGUiOiJ0bG4tZWRpdGlvbi90bG4tbmF2aWdhdGlvbi1lbGVtZW50cy9vcGVuLWluLXZpZXdlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5pY29uLWJ1dHRvbiB7XG4gICB3aWR0aDogMTVweDsgXG4gICBtYXJnaW4tbGVmdDogM3B4O1xufVxuIiwiLmljb24tYnV0dG9uIHtcbiAgd2lkdGg6IDE1cHg7XG4gIG1hcmdpbi1sZWZ0OiAzcHg7XG59Il19 */\"","import { Component, Input, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { TLN_VIEWER_ROUTE, TLN_PAGE_PARAM, TLN_MANUSCRIPT_PARAM } from '../constants';\nimport { Mapping } from '../route-reader';\nimport { RouteUpdater } from '../route-updater';\nimport { NavigationPage } from '../models';\n\ninterface ViewerRouteInformation {\n title: string;\n number: string;\n page: string;\n manuscript?: string;\n launchExternally?: boolean;\n}\n@Component({\n selector: 'open-in-viewer',\n templateUrl: './open-in-viewer.component.html',\n styleUrls: ['./open-in-viewer.component.scss']\n})\nexport class OpenInViewerComponent extends RouteUpdater {\n @Input() routerInformation: ViewerRouteInformation;\n launch: boolean = false;\n page: NavigationPage;\n protected currentRoute: string = TLN_VIEWER_ROUTE;\n current_iri: string;\n current_manuscript_unity: string;\n protected mapping: Mapping = { current_iri: { param: TLN_PAGE_PARAM, type: \"string\" },\n current_manuscript_unity: { param: TLN_MANUSCRIPT_PARAM, type: \"string\" }}\n\n constructor(protected router: Router, protected activatedRoute: ActivatedRoute ) { \n super(router, activatedRoute);\n }\n ngOnInit(){\n super.ngOnInit();\n this.page = { id: this.routerInformation.page, \n number: this.routerInformation.number,\n title: this.routerInformation.title };\n this.launch = (this.routerInformation.launchExternally != undefined \n && this.routerInformation.launchExternally != null\n && this.routerInformation.launchExternally)\n }\n private openInViewer(){\n if (this.routerInformation != undefined && this.routerInformation != null){\n this.current_iri = this.routerInformation.page;\n if (this.routerInformation.manuscript != undefined && this.routerInformation != null){\n this.current_manuscript_unity = this.routerInformation.manuscript;\n }\n this.updateParams(this.launch);\n }\n }\n\n}\n","export default \".search {\\n margin-left: 8px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1uYXZpZ2F0aW9uLWVsZW1lbnRzL3NlYXJjaC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0dBQ0csZ0JBQWdCO0FBQ25CIiwiZmlsZSI6InRsbi1lZGl0aW9uL3Rsbi1uYXZpZ2F0aW9uLWVsZW1lbnRzL3NlYXJjaC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnNlYXJjaCB7XG4gICBtYXJnaW4tbGVmdDogOHB4O1xufVxuIl19 */\"","import { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { TLN_SEARCH_ROUTE, TLN_FIND_PARAM } from '../constants';\nimport { Mapping } from '../route-reader';\nimport { RouteUpdater } from '../route-updater';\n\n@Component({\n selector: 'search',\n templateUrl: './search.component.html',\n styleUrls: ['./search.component.css']\n})\nexport class SearchComponent extends RouteUpdater {\n findText: string;\n protected mapping: Mapping = { findText: { param: TLN_FIND_PARAM, type: \"string\" }}\n\n constructor(protected router: Router, protected activatedRoute: ActivatedRoute ) { \n super(router, activatedRoute);\n }\n openFulltextSearch(){\n this.currentRoute = TLN_SEARCH_ROUTE\n this.updateParams();\n }\n private clearFindText() {\n this.findText = '';\n this.updateParams();\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ0bG4tZWRpdGlvbi90bG4tbmF2aWdhdGlvbi1lbGVtZW50cy90b2dnbGUtbmF2aWdhdGlvbi5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { TLN_SEARCH_ROUTE, TLN_FULLSCREEN_PARAM, TLN_NAV_BAR_OPEN_STATE_PARAM} from '../constants';\nimport { Mapping } from '../route-reader';\nimport { RouteUpdater } from '../route-updater';\n\n\n@Component({\n selector: 'toggle-navigation',\n templateUrl: './toggle-navigation.component.html',\n styleUrls: ['./toggle-navigation.component.css']\n})\n\nexport class ToggleNavigationComponent extends RouteUpdater {\n fullscreen: boolean = false;\n navBarOpenState: boolean = false;\n protected mapping: Mapping = { \n navBarOpenState: { param: TLN_NAV_BAR_OPEN_STATE_PARAM, type: \"boolean\" },\n fullscreen: { param: TLN_FULLSCREEN_PARAM, type: \"boolean\" }\n }\n\n constructor(protected router: Router, protected activatedRoute: ActivatedRoute ) { \n super(router, activatedRoute);\n }\n private toggleFullscreen(){\n this.fullscreen = !this.fullscreen;\n this.updateParams();\n }\n toggleNavDrawer(){\n this.navBarOpenState = !this.navBarOpenState;\n this.updateParams();\n }\n}\n","export default \".zoom {\\n max-width: 20px;\\n}\\n.zoom-in {\\n cursor: zoom-in;\\n}\\n.zoom-out {\\n cursor: zoom-out;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1uYXZpZ2F0aW9uLWVsZW1lbnRzL3pvb20uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLGVBQWU7QUFDbEI7QUFDQTtHQUNHLGVBQWU7QUFDbEI7QUFDQTtHQUNHLGdCQUFnQjtBQUNuQiIsImZpbGUiOiJ0bG4tZWRpdGlvbi90bG4tbmF2aWdhdGlvbi1lbGVtZW50cy96b29tLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuem9vbSB7XG4gICBtYXgtd2lkdGg6IDIwcHg7XG59XG4uem9vbS1pbiB7XG4gICBjdXJzb3I6IHpvb20taW47XG59XG4uem9vbS1vdXQge1xuICAgY3Vyc29yOiB6b29tLW91dDtcbn1cbiJdfQ== */\"","import { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { TLN_ZOOM_PARAM } from '../constants';\nimport { Mapping } from '../route-reader';\nimport { RouteUpdater } from '../route-updater';\n\n@Component({\n selector: 'zoom',\n templateUrl: './zoom.component.html',\n styleUrls: ['./zoom.component.css']\n})\nexport class ZoomComponent extends RouteUpdater {\n private readonly increment: number = 0.25;\n private readonly decrement: number = this.increment*-1;\n zoomFactor: number = 1;\n protected mapping: Mapping = { zoomFactor: { param: TLN_ZOOM_PARAM, type: \"number\" }}\n\n constructor(protected router: Router, protected activatedRoute: ActivatedRoute ) { \n super(router, activatedRoute);\n }\n private setZoomFactor(newZoomFactor: number){\n if (newZoomFactor > 0){\n this.zoomFactor = Math.round(newZoomFactor*100)/100;\n } else {\n this.zoomFactor = this.zoomFactor/2\n }\n this.updateParams();\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\ninterface ZoomObject {\n zoomFactor: number;\n changeValue: number;\n}\n\n@Pipe({\n name: 'zoomTitle'\n})\nexport class ZoomPipe implements PipeTransform {\n\n transform(zoom: ZoomObject): string {\n return (zoom.zoomFactor+zoom.changeValue < 0) ? Math.round(zoom.zoomFactor*50) + '%' : Math.round((zoom.zoomFactor+zoom.changeValue)*100) + '%';\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ0bG4tZWRpdGlvbi90bG4tcGFnZS12aWV3LmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, Input, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { TlnQueryServiceInterface } from './models';\nimport { TlnQueryService } from './tln-query.service';\nimport { TlnPage} from './datatypes/page';\nimport { FaksimileImage } from './datatypes/faksimile_image';\nimport { SVGImage, SVGImageClip } from './datatypes/svg_image';\nimport { TlnImage } from './datatypes/image';\nimport { TlnLine, FaksimileLine } from './datatypes/line';\nimport { TlnWord, FaksimileWord } from './datatypes/word';\nimport { TlnTextByForeignHand, FaksimileTextByForeignHand } from './datatypes/foreign_text';\nimport { externalAssignClass, externalAssignStyle, Configuration, Identifier, Image, Line, Word } from './models';\nimport { ConfigurableComponent } from './services';\nimport { ComplexKeyIriMapping, DataHandler } from './data_handler';\nimport { DEFAULT_VIEW_OPTION, VIEW_OPTIONS, TLN_FULLSCREEN_PARAM, TLN_FIND_PARAM, TLN_PAGE_PARAM, TLN_SELECTED_LINES_PARAM, TLN_VIEW_OPTION_PARAM, TLN_ZOOM_PARAM } from './constants';\nimport { Mapping, RouteReader } from './route-reader';\n\n/**\n * Given a page IRI, this component will request all relevant information and\n * display the data with {@link /components/PageViewComponent.html|PageViewComponent}.\n **/\n@Component({\n selector: 'tln-page-view',\n templateUrl: './tln-page-view.component.html',\n styleUrls: ['./tln-page-view.component.css']\n})\nexport class TlnPageViewComponent extends RouteReader implements OnInit, OnChanges {\n @Input() configuration: Configuration = { '*': { 'useExtendedTooltip': true }};\n /**\n * IRI of the current page, the component will ignore page iri's from params if set.\n **/\n @Input('page') current_iri: string;\n /**\n * the search text of words that should be highlighted as {@link /miscellaneous/enumerations.html#HIGHTLIGHT_CASES|HIGHTLIGHT_CASES.SEARCHED_WORD}.\n **/\n @Input() findText: string;\n /**\n * whether or not to ignore the params\n **/\n private ignoreParams: boolean = false;\n /**\n * OPTIONAL pass a queryService with method \n * {@link /interfaces/TlnQueryServiceInterface.html#getData|getData}\n * to TlnPageViewComponent.\n **/\n @Input() queryService: TlnQueryServiceInterface;\n /**\n * global zoom factor.\n **/\n @Input() zoomFactor: number = 1;\n /**\n * identifiers of selected words that should be highlighted.\n **/\n @Input() selectedWords: Identifier[] = [];\n /**\n * identifiers of selected lines that should be highlighted.\n **/\n @Input() selectedLines: Identifier[] = [];\n /**\n * the (initial) maximum height of the image.\n **/\n @Input() max_height: number = -1;\n /**\n * the (initial) maximum width of the image, if both height and width are specified prefer width.\n **/\n @Input() max_width: number = -1;\n dontShowReference: boolean = false;\n @Input() startLine: Identifier;\n @Input() endLine: Identifier;\n /**\n * should primary Url be used for image. Use secondary Url if false.\n **/\n @Input() preferPrimaryUrl: boolean = true;\n /**\n * selected view option, i.e. one of the following \n * {@link /miscellaneous/enumerations.html#VIEW_OPTIONS|VIEW_OPTIONS}.\n * */\n @Input() selectedViewOption: string = DEFAULT_VIEW_OPTION;\n /**\n * An optional function that will be passed to {@link /components/TextFieldComponent.html|TextFieldComponent} \n * in order to return a further highlight class\n * to the word rects when the internal function would return 'textfield unhighlighted'. \n **/\n @Input('assignClass') assignClass?: externalAssignClass;\n /**\n * An optional function that will be passed to {@link /components/TextFieldComponent.html|TextFieldComponent}\n * and {@link /components/MarginFieldComponent.html|MarginFieldComponent}\n * in order to return a (svg-)style object \n * to the word and line rects. This function allows the user to extend the style of this component.\n * E.g. by returning { fill: blue } the function overwrites the default behaviour and sets\n * the default highlight color to blue.\n **/\n @Input('assignStyle') assignStyle?: externalAssignStyle;\n /**\n * the data handler of this component that retrieves\n * data and instantiates it according to their proper \n * datatypes.\n **/\n dataHandler: DataHandler = new DataHandler(this);\n /**\n * whether or not to show page view in fullscreen mode.\n **/\n fullscreen: boolean = false;\n /**\n * texts written by foreign hand \n **/\n foreignTexts: TlnTextByForeignHand[] = [];\n /**\n * the (first) image to be displayed by \n * {@link /components/PageViewComponent.html|PageViewComponent}.\n **/\n image: Image;\n /**\n * the Array of lines of the first image that will be displayed by {@link /components/MarginFieldComponent.html|MarginFieldComponent}.\n **/\n lines: Line[] = [];\n /**\n * texts written by foreign hand \n **/\n second_foreignTexts: FaksimileTextByForeignHand[] = [];\n /**\n * the second image that will be displayed by {@link /components/TextFieldComponent.html|TextFieldComponent}.\n **/\n second_image: Image;\n /**\n * the Array of lines of the second image that will be displayed by {@link /components/MarginFieldComponent.html|MarginFieldComponent}.\n **/\n second_lines: Line[] = [];\n /**\n * the Array of words of the second image that will be displayed by {@link /components/TextFieldComponent.html|TextFieldComponent}.\n **/\n second_words: Word[] = [];\n /**\n * the Array of words of the first image that will be displayed by {@link /components/TextFieldComponent.html|TextFieldComponent}.\n **/\n words: Word[] = [];\n @Input() multiInstanceMode: boolean = false;\n protected mapping: Mapping = { \n findText: { param: TLN_FIND_PARAM, type: \"string\" },\n fullscreen: { param: TLN_FULLSCREEN_PARAM, type: \"boolean\" },\n selectedViewOption: { param: TLN_VIEW_OPTION_PARAM, type: \"string\" },\n selectedLines: { param: TLN_SELECTED_LINES_PARAM, type: \"string\" },\n current_iri: { param: TLN_PAGE_PARAM, type: \"string\" },\n zoomFactor: { param: TLN_ZOOM_PARAM, type: \"number\" }\n }\n\n /**\n * @param localQueryService internal query service that will be used if no external queryService is passed \n * to input.\n **/\n constructor(private localQueryService: TlnQueryService, protected router: Router, protected activatedRoute: ActivatedRoute){ \n super(router, activatedRoute);\n }\n\n ngOnInit() {\n if (this.multiInstanceMode){\n this.mapping['current_iri']['ignore'] = (this.current_iri != null);\n this.mapping['selectedViewOption']['ignore'] = true;\n this.dontShowReference = true;\n //this.configuration['*']['useExtendedTooltip'] = false;\n }\n super.ngOnInit();\n let tlnQueryService = (this.queryService != null) ? this.queryService : this.localQueryService;\n let queryConfiguration: Configuration = { '*': { 'tlnQueryService': tlnQueryService }}\n this.configuration = ConfigurableComponent.updateConfiguration(this.configuration, queryConfiguration)\n this.dataHandler.addHandler('image', { 'handler': SVGImage });\n this.dataHandler.addHandler('words', { 'handler': TlnWord });\n this.dataHandler.addHandler('foreignTexts', { 'handler': TlnTextByForeignHand});\n this.dataHandler.addHandler('lines', { 'handler': TlnLine });\n this.dataHandler.addHandler('second_image',{ 'handler': FaksimileImage });\n this.dataHandler.addHandler('second_words',{ 'handler': FaksimileWord });\n this.dataHandler.addHandler('second_lines',{ 'handler': FaksimileLine });\n this.dataHandler.addHandler('second_foreignTexts', { 'handler': FaksimileTextByForeignHand});\n this.dataHandler.addHandler('page_content',[ 'image', 'lines', 'words', 'foreignTexts' ]);\n this.dataHandler.addHandler('second_page_content', [ 'second_image', 'second_lines', 'second_words', 'second_foreignTexts' ] );\n this.dataHandler.setQueryService(tlnQueryService);\n this.updatePageData();\n }\n ngOnChanges(change: SimpleChanges) {\n if (this.dataHandler.ready \n && (change.current_iri != undefined && change.current_iri != null && !change.current_iri.firstChange)\n || (change.selectedViewOption != undefined && change.selectedViewOption != null && !change.selectedViewOption.firstChange)) {\n this.updatePageData();\n } \n }\n protected readParams(params: Params){\n let old_page_iri = this.current_iri;\n let old_selectedViewOption = this.selectedViewOption;\n let old_fullscreen = this.fullscreen\n super.readParams(params);\n if (this.dataHandler.ready \n && (old_page_iri != this.current_iri || old_selectedViewOption != this.selectedViewOption)){\n this.updatePageData();\n }\n if (old_fullscreen != this.fullscreen && !this.multiInstanceMode){\n //this.dontShowReference = !this.fullscreen; \n //this.configuration['*']['useExtendedTooltip'] = this.fullscreen;\n }\n }\n /**\n * This function updates the page data by setting the handlers for the current \n * {@link #selectedViewOption|selectedViewOption} and by retrieving the data.\n **/\n private updatePageData(){\n this.dataHandler['image']['handler'] = (this.selectedViewOption != VIEW_OPTIONS.FAKSIMILE && this.selectedViewOption != VIEW_OPTIONS.SYNOPSIS_B) ? SVGImage : FaksimileImage ; \n this.dataHandler['words']['handler'] = (this.selectedViewOption != VIEW_OPTIONS.FAKSIMILE && this.selectedViewOption != VIEW_OPTIONS.SYNOPSIS_B) ? TlnWord : FaksimileWord ; \n this.dataHandler['lines']['handler'] = (this.selectedViewOption != VIEW_OPTIONS.FAKSIMILE && this.selectedViewOption != VIEW_OPTIONS.SYNOPSIS_B) ? TlnLine : FaksimileLine ; \n this.dataHandler['foreignTexts']['handler'] = (this.selectedViewOption != VIEW_OPTIONS.FAKSIMILE && this.selectedViewOption != VIEW_OPTIONS.SYNOPSIS_B) \n ? TlnTextByForeignHand : FaksimileTextByForeignHand ; \n if (this.dataHandler['page_content'][this.dataHandler['page_content'].length-1] == 'second_page_content'){\n this.dataHandler['page_content'].pop(); \n this.second_image = null;\n this.second_foreignTexts = [];\n this.second_words = [];\n this.second_lines = [];\n }\n if (this.selectedViewOption == VIEW_OPTIONS.SYNOPSIS || this.selectedViewOption == VIEW_OPTIONS.SYNOPSIS_B){\n this.dataHandler['second_image']['handler'] = (this.selectedViewOption == VIEW_OPTIONS.SYNOPSIS_B) ? SVGImage : FaksimileImage ; \n this.dataHandler['second_words']['handler'] = (this.selectedViewOption == VIEW_OPTIONS.SYNOPSIS_B) ? TlnWord : FaksimileWord ; \n this.dataHandler['second_lines']['handler'] = (this.selectedViewOption == VIEW_OPTIONS.SYNOPSIS_B) ? TlnLine : FaksimileLine ; \n this.dataHandler['second_foreignTexts']['handler'] = (this.selectedViewOption == VIEW_OPTIONS.SYNOPSIS_B) ? TlnTextByForeignHand : FaksimileTextByForeignHand ; \n this.dataHandler['page_content'].push('second_page_content');\n } \n if (this.current_iri != null){\n this.dataHandler.resetData('page_content');\n if (this.startLine != null && this.startLine != undefined){\n this.dataHandler['image']['handler'] = SVGImageClip ; \n let endLine = (this.endLine != null && this.endLine != undefined) ? this.endLine : this.startLine;\n let complex: ComplexKeyIriMapping = { idIndex: 0, \n mapping: [ { key: 'page', iri: this.current_iri}, { key: 'startLine', iri: <string>this.startLine}, {key: 'endLine', iri: <string>endLine} ]\n }\n this.dataHandler['page_content'] = this.dataHandler['page_content'].filter(key =>key != 'image')\n this.dataHandler.getData4Keys('image', complex);\n } else if (this.dataHandler['page_content'].indexOf('image') == -1){\n this.dataHandler['page_content'].splice(0, 0, 'image')\n }\n this.dataHandler.getData('page_content', this.current_iri);\n }\n }\n\n}\n","import { Injectable, EventEmitter } from '@angular/core';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { TlnQueryServiceInterface } from './models';\n/**\n * This is the internal query service \n * that communicates with the SPARQL-endpoint.\n * */\n@Injectable()\nexport class TlnQueryService implements TlnQueryServiceInterface {\n //baseUrl = 'http://localhost:3030/nietzsche/query';\n baseUrl = 'https://nietzsche.fuseki.services.dasch.swiss/nietzsche'\n reset_data = new EventEmitter<string>();\n\n constructor(private http: HttpClient) { }\n\n public resetData(key: string){\n this.reset_data.emit(key);\n }\n /**\n * Gets the data from an endpoint via http post\n *\n * @param query: The query to run.\n * @returns response\n */\n public getData(query: string): Observable<any> {\n let httpOptions = { \n headers: new HttpHeaders(\n { 'Content-Type': 'application/sparql-query',\n 'Accept': 'application/sparql-results+json; charset=UTF-8'}\n )\n };\n return this.http.post(this.baseUrl, query, httpOptions); \n }\n\n}\n\n\n","export default \"#navi {\\n width: 100%;\\n height: 50px;\\n margin: 0;\\n padding: 0;\\n white-space: nowrap;\\n}\\n.search {\\n margin-left: 8px;\\n }\\n.zoom {\\n max-width: 20px;\\n}\\n.zoom-in {\\n cursor: zoom-in;\\n}\\n.zoom-out {\\n cursor: zoom-out;\\n}\\n.mat-button.min-width {\\n min-width: 120px;\\n max-width: 120px;\\n}\\n.default-mouse {\\n cursor: default;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi12aWV3ZXItbmF2aWdhdGlvbi90bG4tdmlld2VyLW5hdmlnYXRpb24uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLFdBQVc7R0FDWCxZQUFZO0dBQ1osU0FBUztHQUNULFVBQVU7R0FDVixtQkFBbUI7QUFDdEI7QUFDQTtHQUNHLGdCQUFnQjtDQUNsQjtBQUNEO0dBQ0csZUFBZTtBQUNsQjtBQUNBO0dBQ0csZUFBZTtBQUNsQjtBQUNBO0dBQ0csZ0JBQWdCO0FBQ25CO0FBQ0E7R0FDRyxnQkFBZ0I7R0FDaEIsZ0JBQWdCO0FBQ25CO0FBQ0E7R0FDRyxlQUFlO0FBQ2xCIiwiZmlsZSI6InRsbi1lZGl0aW9uL3Rsbi12aWV3ZXItbmF2aWdhdGlvbi90bG4tdmlld2VyLW5hdmlnYXRpb24uY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiNuYXZpIHtcbiAgIHdpZHRoOiAxMDAlO1xuICAgaGVpZ2h0OiA1MHB4O1xuICAgbWFyZ2luOiAwO1xuICAgcGFkZGluZzogMDtcbiAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uc2VhcmNoIHtcbiAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gfVxuLnpvb20ge1xuICAgbWF4LXdpZHRoOiAyMHB4O1xufVxuLnpvb20taW4ge1xuICAgY3Vyc29yOiB6b29tLWluO1xufVxuLnpvb20tb3V0IHtcbiAgIGN1cnNvcjogem9vbS1vdXQ7XG59XG4ubWF0LWJ1dHRvbi5taW4td2lkdGgge1xuICAgbWluLXdpZHRoOiAxMjBweDtcbiAgIG1heC13aWR0aDogMTIwcHg7XG59XG4uZGVmYXVsdC1tb3VzZSB7XG4gICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4iXX0= */\"","import { Component, OnInit, Input, ElementRef } from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport {MatBottomSheet, MatBottomSheetRef} from '@angular/material/bottom-sheet';\nimport { TlnQueryServiceInterface, Reference, ManuscriptUnity, NavigationPage } from '../models';\nimport { TlnManuscriptUnity, TlnNavigationPage} from '../datatypes/navigation';\nimport { DEFAULT_VIEW_OPTION, TLN_VIEWER_ROUTE, TLN_FULLSCREEN_PARAM, TLN_FIND_PARAM, TLN_NAV_BAR_OPEN_STATE_PARAM, TLN_PAGE_PARAM, TLN_MANUSCRIPT_PARAM,\n TLN_SELECTED_LINES_PARAM, TLN_VIEW_OPTION_PARAM, TLN_ZOOM_PARAM, VIEW_OPTIONS, ONTOLOTY_PREFIX } from '../constants';\nimport { IsReconstructedKonvolut } from '../datatypes/basic_datatype';\nimport { TlnLine} from '../datatypes/line';\nimport { TlnTextGeneticOrder} from '../datatypes/text_version';\nimport { Mapping } from '../route-reader';\nimport { RouteUpdater } from '../route-updater';\nimport { ComplexKeyIriMapping, DataHandler, KeyIriMapping } from '../data_handler';\nimport { PageViewService, TlnQueryService } from '../services';\nimport { TlnInformationComponent, ParentInformation } from '../tln-information/tln-information.component';\nimport { PageInformation } from '../tln-information/page-information';\n\n@Component({\n selector: 'tln-viewer-navigation',\n templateUrl: './tln-viewer-navigation.component.html',\n styleUrls: ['./tln-viewer-navigation.component.css']\n})\nexport class TlnViewerNavigation extends RouteUpdater {\n /**\n * OPTIONAL pass a queryService with method \n * {@link /interfaces/TlnQueryServiceInterface.html#getData|getData}\n * to TlnPageViewComponent.\n **/\n @Input() queryService: TlnQueryServiceInterface;\n /**\n * whether or not to show page view in fullscreen mode.\n **/\n fullscreen: boolean = false;\n findText: string;\n current_iri: string;\n current_manuscript_iri: string;\n manuscript_unity: ManuscriptUnity;\n current_page: NavigationPage;\n pageInformation: PageInformation;\n previous_page: NavigationPage;\n next_page: NavigationPage;\n navBarOpenState: boolean;\n showArchivalManuscriptUnity: boolean = false;\n dataHandler: DataHandler = new DataHandler(this);\n geneticOrders: TlnTextGeneticOrder[] = [];\n selectedLines: string[] = [];\n private readonly increment: number = 0.333;\n private readonly decrement: number = this.increment*-1;\n protected currentRoute: string = TLN_VIEWER_ROUTE;\n protected mapping: Mapping = { findText: { param: TLN_FIND_PARAM, type: \"string\" },\n current_iri: { param: TLN_PAGE_PARAM, type: \"string\" },\n navBarOpenState: { param: TLN_NAV_BAR_OPEN_STATE_PARAM, type: \"boolean\" },\n current_manuscript_iri: { param: TLN_MANUSCRIPT_PARAM, type: \"string\" },\n fullscreen: { param: TLN_FULLSCREEN_PARAM, type: \"boolean\" },\n selectedViewOption: { param: TLN_VIEW_OPTION_PARAM, type: \"string\" },\n selectedLines: { param: TLN_SELECTED_LINES_PARAM, type: \"string\" } }\n routerParams: Params;\n selectedViewOption: string = DEFAULT_VIEW_OPTION\n updating: boolean = false;\n viewOptions: string[] = [ VIEW_OPTIONS.TRANSKRIPTION, VIEW_OPTIONS.FAKSIMILE, VIEW_OPTIONS.SYNOPSIS, VIEW_OPTIONS.SYNOPSIS_B ];\n\n constructor(el: ElementRef, private bottomSheet: MatBottomSheet, private pageViewService: PageViewService, private localQueryService: TlnQueryService, protected router: Router, protected activatedRoute: ActivatedRoute ) { \n super(router, activatedRoute);\n }\n ngOnInit() {\n let tlnQueryService = (this.queryService != null) ? this.queryService : this.localQueryService;\n this.dataHandler.addHandler('manuscript_unity', { 'handler': TlnManuscriptUnity, 'next_key': 'navigation_page'});\n this.dataHandler.addHandler('navigation_page', ['current_page', 'geneticOrders'] );\n this.dataHandler.addHandler('current_page', { 'handler': TlnNavigationPage });\n this.dataHandler.addHandler('geneticOrders', { 'handler': TlnTextGeneticOrder});\n this.dataHandler.setQueryService(tlnQueryService);\n this.dataHandler.start_processing.subscribe(\n (started: boolean) =>{ this.updating = true;\n });\n this.dataHandler.processing_finished.subscribe(\n (finished: boolean) =>{ this.updating = false;\n });\n super.ngOnInit();\n this.pageViewService.reference.subscribe(\n (newReference: Reference) => {\n this.updatePageToReference(newReference)\n }) \n this.pageViewService.onClickedLine.subscribe(\n (clickedLine: TlnLine) => { \n let index = this.selectedLines.indexOf(clickedLine.id)\n if (index > -1){\n this.selectedLines.splice(index, 1);\n } else {\n this.selectedLines.push(clickedLine.id);\n }\n this.updateParams();\n });\n }\n private clearFindText() {\n this.findText = '';\n this.updateParams();\n }\n private getPageTitle(page?: NavigationPage, numPages?: number): string {\n if (page == null){\n return '';\n }\n let indexPrefix = (numPages != null) ? page.index + '/' + numPages : page.index;\n return indexPrefix + ': ' + page.title + ' ' + page.number;\n }\n protected readParams(params: Params){\n super.readParams(params);\n if (this.dataHandler.ready && (this.current_page == null || this.current_page.id != this.current_iri)){\n this.dataHandler.resetData('navigation_page')\n if(this.current_manuscript_iri != null){\n //this.dataHandler.debug = true;\n this.dataHandler.conditionalAddHandler(IsReconstructedKonvolut.getQuery(this.current_manuscript_iri),\n 'current_page',{ handler: TlnNavigationPage}, { handler: TlnNavigationPage});\n this.dataHandler.getData('manuscript_unity', this.current_manuscript_iri, this.current_iri);\n } else {\n this.dataHandler.getData('current_page', this.current_iri);\n }\n } \n }\n private setCurrentIri(pageIri: string, manuscriptIir?: string){\n this.dataHandler.stop_processing.emit(true);\n this.current_iri = pageIri;\n this.updateParams();\n }\n private showInformation() {\n let parentData: ParentInformation = {\n geneticOrders: this.geneticOrders,\n page: this.current_page,\n manuscript_iri: this.current_manuscript_iri,\n parentActivatedRoute: this.activatedRoute.parent\n }\n this.bottomSheet.open(TlnInformationComponent, {\n data: parentData\n });\n }\n private updatePageToReference(reference: Reference){\n this.current_iri = <string>reference.page.id;\n this.selectedLines = [ <string>reference.line.id ]\n this.updateParams();\n }\n}\n","export default \".tooltip {\\n position: absolute;\\n /*color: white;\\n background-color: black;*/\\n border-radius: 10px;\\n padding: 8px;\\n font-size: 0.8em;\\n opacity: 0.65;\\n z-index: 1000;\\n}\\ndiv .text, .edited_text, .overwritten {\\n display: block;\\n}\\nspan {\\n display: inline;\\n}\\n.deleted {\\n text-decoration: line-through;\\n -webkit-text-decoration-color: red;\\n text-decoration-color: red;\\n}\\n.blackfg {\\n color: black;\\n}\\n.word { \\n opacity: 0.7; \\n background-color: black;\\n color: white;\\n}\\n.foreignHand { \\n opacity: 0.5; \\n background-color: blue; \\n color: white;\\n}\\n.continuation { \\n opacity: 1.0; \\n background-color: black; \\n color: white;\\n}\\n.copyright { \\n opacity: 1.0; \\n background-color: white; \\n color: black;\\n}\\n\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rvb2x0aXAvdG9vbC10aXAuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtDQUNDLGtCQUFrQjtDQUNsQjswQkFDeUI7Q0FDekIsb0JBQW9CO0NBQ3BCLFlBQVk7Q0FDWixnQkFBZ0I7Q0FDaEIsYUFBYTtDQUNiLGFBQWE7QUFDZDtBQUNBO0dBQ0csY0FBYztBQUNqQjtBQUNBO0dBQ0csZUFBZTtBQUNsQjtBQUNBO0dBQ0csNkJBQTZCO0dBQzdCLGtDQUEwQjtXQUExQiwwQkFBMEI7QUFDN0I7QUFDQTtHQUNHLFlBQVk7QUFDZjtBQUNBO0dBQ0csWUFBWTtHQUNaLHVCQUF1QjtHQUN2QixZQUFZO0FBQ2Y7QUFDQTtHQUNHLFlBQVk7R0FDWixzQkFBc0I7R0FDdEIsWUFBWTtBQUNmO0FBQ0E7R0FDRyxZQUFZO0dBQ1osdUJBQXVCO0dBQ3ZCLFlBQVk7QUFDZjtBQUNBO0dBQ0csWUFBWTtHQUNaLHVCQUF1QjtHQUN2QixZQUFZO0FBQ2YiLCJmaWxlIjoidGxuLWVkaXRpb24vdG9vbHRpcC90b29sLXRpcC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnRvb2x0aXAge1xuIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAvKmNvbG9yOiB3aGl0ZTtcbiBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsqL1xuIGJvcmRlci1yYWRpdXM6ICAxMHB4O1xuIHBhZGRpbmc6IDhweDtcbiBmb250LXNpemU6IDAuOGVtO1xuIG9wYWNpdHk6IDAuNjU7XG4gei1pbmRleDogMTAwMDtcbn1cbmRpdiAudGV4dCwgLmVkaXRlZF90ZXh0LCAub3ZlcndyaXR0ZW4ge1xuICAgZGlzcGxheTogYmxvY2s7XG59XG5zcGFuIHtcbiAgIGRpc3BsYXk6IGlubGluZTtcbn1cbi5kZWxldGVkIHtcbiAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiByZWQ7XG59XG4uYmxhY2tmZyB7XG4gICBjb2xvcjogYmxhY2s7XG59XG4ud29yZCB7IFxuICAgb3BhY2l0eTogMC43OyBcbiAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgY29sb3I6IHdoaXRlO1xufVxuLmZvcmVpZ25IYW5kIHsgXG4gICBvcGFjaXR5OiAwLjU7IFxuICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsgXG4gICBjb2xvcjogd2hpdGU7XG59XG4uY29udGludWF0aW9uIHsgXG4gICBvcGFjaXR5OiAxLjA7IFxuICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7IFxuICAgY29sb3I6IHdoaXRlO1xufVxuLmNvcHlyaWdodCB7IFxuICAgb3BhY2l0eTogMS4wOyBcbiAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyBcbiAgIGNvbG9yOiBibGFjaztcbn1cblxuIl19 */\"","import { Component, Input, OnInit, OnChanges, ElementRef, ViewChild} from '@angular/core';\nimport { ConfigurableComponent, PageViewService, TlnQueryService } from '../services';\nimport { Configuration, Continuation, Copyright, Point, Position, PositionalObject, Reference, TextByForeignHand, TlnQueryServiceInterface, Word } from '../models';\nimport { TlnEarlierVersionStub, TlnOverwrittenStub } from '../datatypes/earlier_version';\nimport { TlnLineReference } from '../datatypes/line_reference';\nimport { TlnPreviewWord } from '../datatypes/preview_data';\nimport { TlnPositionalStyleMarkup, TlnFilteredPositionalStyleMarkup } from '../datatypes/positional-markup';\nimport { DataHandler } from '../data_handler';\nimport { PositionalStyleMarkup, StyleSheetDef, StandoffMarkupSettings} from '../../lib/ngx-mat-standoff-markup.component';\n\n/**\n * This component can be used to show extended tooltips, i.e. with deleted words and distinguished\n * words if they are by foreign hand.\n **/\n@Component({\n selector: 'tool-tip',\n templateUrl: './tool-tip.component.html',\n styleUrls: ['./tool-tip.component.css']\n})\nexport class ToolTipComponent extends ConfigurableComponent implements OnInit, OnChanges {\n @Input('fullscreen') fullscreen: boolean = false;\n @Input() hasMenuIssues: boolean = false;\n @Input() menuOffsetPosition: Position;\n @Input() container: HTMLElement;\n //fullscreen: boolean = false;\n /**\n * content keys\n **/\n private readonly contentKeys: string[] = [ 'word', 'foreignHand', 'copyright', 'continuation' ]\n /**\n * copyright information to be shown in the tooltip.\n **/\n copyright: Copyright;\n /**\n * current key of contentKeys\n **/\n currentKey: string;\n debug: boolean = false;\n position: number = 0;\n /**\n * the data handler of this component that retrieves\n * data and instantiates it according to their proper \n * datatypes.\n **/\n dataHandler: DataHandler = new DataHandler(this);\n /**\n * text by foreign hand to be shown in tooltip\n **/\n foreignHand: TextByForeignHand;\n /**\n * earlier version of word\n **/\n earlier_version: TlnEarlierVersionStub;\n /**\n * overwritten word\n **/\n overwrittenWord: TlnOverwrittenStub;\n /**\n * a line continuation\n **/\n continuation: Continuation;\n /**\n * a list of positional style markups.\n **/\n positionalStyleMarkups: PositionalStyleMarkup[] = [];\n continuation_words: TlnPreviewWord[] = [];\n cssDef: StyleSheetDef = { type: 'text', css: '' }\n mySettings = new StandoffMarkupSettings(true, true, false, 1);\n width: number = 300;\n /**\n * line reference from\n **/\n sourceLineReference: TlnLineReference;\n /**\n * actual tooltip position\n **/\n tooltipPosition: Point = { visible: false, clientX: -1, clientY: -1, layerX: -1, layerY: -1 };\n /**\n * whether or not to show extended tooltips\n **/\n useExtendedTooltip: boolean = true;\n /**\n * word to be shown in tooltip\n **/\n word: Word;\n /**\n * y offset for tooltip position relative to mouse position\n **/\n private readonly yOffset: number = 25;\n private readonly menuIssueOffset: number = 80;\n private readonly menuIssueXOffset: number = 55;\n topOffset: number = 0; \n leftOffset: number = 0; \n constructor(protected pageViewService: PageViewService, private tlnQueryService: TlnQueryService) { \n super()\n }\n ngOnChanges(){\n super.ngOnChanges();\n /*if((this.fullscreen && this.fullscreenString != 'true') || (!this.fullscreen && this.fullscreenString == 'true')){\n this.fullscreen = (this.fullscreenString == 'true')\n }*/\n if (this.tlnQueryService != null && !this.dataHandler.ready){\n this.dataHandler.addHandler('earlier_version', { 'handler': TlnEarlierVersionStub });\n this.dataHandler.addHandler('overwrittenWord', { 'handler': TlnOverwrittenStub});\n this.dataHandler.addHandler('positionalStyleMarkups', { 'handler': TlnFilteredPositionalStyleMarkup });\n this.dataHandler.addHandler('sourceLineReference', { 'handler': TlnLineReference});\n this.dataHandler.addHandler('continuation_words', { 'handler': TlnPreviewWord});\n this.dataHandler.addHandler('wordStubs', ['earlier_version', 'overwrittenWord', 'positionalStyleMarkups' ]);\n this.dataHandler.setQueryService(this.tlnQueryService);\n this.tlnQueryService.reset_data.subscribe(\n (data_key: string) =>{\n if (data_key == 'page_content'){\n this.resetData()\n }\n });\n }\n }\n /**\n * listen on pageViewService\n **/\n ngOnInit() {\n this.pageViewService.mousePosition.subscribe(\n (newPoint: Point) =>{ this.tooltipPosition = newPoint;\n //console.log(this.tooltipPosition);\n });\n this.pageViewService.onHoveredWord.subscribe(\n (newWord: Word) => { this.setContent('word', newWord);this.updateEarlierVersion() }\n );\n this.pageViewService.offHoveredWord.subscribe(\n (newWord: Word) => this.word = null \n );\n this.pageViewService.onHoveredTextByForeignHand.subscribe(\n (newTextByForeignHand: TextByForeignHand) => { this.setContent('foreignHand',newTextByForeignHand) }\n );\n this.pageViewService.offHoveredTextByForeignHand.subscribe(\n (newTextByForeignHand: TextByForeignHand) => this.foreignHand = null \n );\n this.pageViewService.copyright.subscribe(\n (copyright: Copyright) =>{ \n this.setContent('copyright', (this.copyright == null) ? copyright : null)\n });\n this.pageViewService.onHoveredContinuation.subscribe(\n (newContinuation: Continuation) => { \n if(this.continuation == null){\n this.updateLineContinuation(newContinuation) \n }\n });\n this.pageViewService.offHoveredContinuation.subscribe(\n (newContinuation: Continuation) => { this.dataHandler.stop_processing.emit(true);this.continuation = null;this.updateLineContinuation(); }\n );\n }\n /**\n * reset data\n **/\n private resetData(){\n this.dataHandler.resetData('wordStubs')\n this.contentKeys.forEach(key=>this[key] = null);\n }\n /**\n * update earlier version of word\n **/\n private updateEarlierVersion(){\n if (this.word != null && this.dataHandler.ready) {\n this.dataHandler.resetData('wordStubs')\n this.dataHandler.getData('wordStubs', <string>this.word.id);\n }\n }\n private updateLineContinuation(continuation?: Continuation){\n this.setContent('continuation', continuation);\n if(continuation != null && this.dataHandler.ready){\n this.dataHandler.resetData('continuation_words')\n if (continuation.source.page != null){\n this.dataHandler.getData('continuation_words', <string>this.continuation.reference.line.id)\n }\n }\n }\n private getTop(key: string): number {\n if (this.menuOffsetPosition != undefined && this.menuOffsetPosition != null && this.container != null && this.container != undefined){\n let containerRect: DOMRect = <DOMRect>this.container.getBoundingClientRect();\n this.topOffset = containerRect.top;\n if (!this.fullscreen){\n this.topOffset = this.topOffset - this.menuOffsetPosition.y;\n }\n }\n return this.tooltipPosition.clientY - this.topOffset + this.yOffset;\n }\n private getLeft(width: number): number {\n let containerRect: DOMRect = (this.container != null && this.container != undefined) \n ? <DOMRect>this.container.getBoundingClientRect() : null;\n this.leftOffset = (this.menuOffsetPosition != undefined && this.menuOffsetPosition != null && containerRect != null) ? containerRect.left : 0;\n let left = this.tooltipPosition.clientX - this.leftOffset;\n if (this.menuOffsetPosition != undefined && this.menuOffsetPosition != null){\n left += this.menuOffsetPosition.x;\n }\n if (!this.tooltipPosition.visible \n || this.continuation == null\n || this.continuation.show == null\n || this.continuation.show != 'to'){\n return left;\n }\n return (left + width <= containerRect.right) ? left : left-(left+width-containerRect.right)-5;\n }\n /**\n * Set tooltip's content and remove prior content.\n * @param key key of content\n * @param content new content\n **/\n private setContent(key: string, content: Continuation|Copyright|PositionalObject){\n this.contentKeys.forEach(key=>this[key] = null);\n this[key] = content;\n this.currentKey = key;\n }\n /**\n * whether tooltip has any content (i.e. any content of {@link /components/ToolTipComponent.html#contentKeys|contentKeys})\n **/\n private hasAnyContent(): boolean {\n return this.contentKeys.filter(key =>this[key] != null).length > 0 \n }\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","/* (ignored) */","/* (ignored) */"],"sourceRoot":"webpack:///"}
\ No newline at end of file
diff --git a/nietzsche-beta-app/dist/nietzsche-beta-app/main-es5.js b/nietzsche-beta-app/dist/nietzsche-beta-app/main-es5.js
index 0bcde5a..34d7c6b 100644
--- a/nietzsche-beta-app/dist/nietzsche-beta-app/main-es5.js
+++ b/nietzsche-beta-app/dist/nietzsche-beta-app/main-es5.js
@@ -1,14159 +1,14159 @@
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
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([["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";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/app.component.html":
/*!**************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/app.component.html ***!
\**************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppAppComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<div [class]=\"theme\">\n <mat-card *ngIf=\"!fullScreen || fullScreen !== 'true'\">\n <mat-select placeholder=\"Standard Theme\"\n disabled=\"true\"\n [(ngModel)]=\"theme\"\n (change) = \"onThemeChange()\">\n <mat-option value=\"standard-theme\">Beta-Version {{version}}</mat-option>\n <mat-option value=\"green-theme\">Green</mat-option>\n </mat-select>\n </mat-card>\n <mat-card *ngIf=\"!fullScreen || fullScreen !== 'true'\">\n <h1>Der sp&auml;te Nietzsche</h1>\n </mat-card>\n <app-main-menu-component></app-main-menu-component>\n <router-outlet></router-outlet>\n <!--<div style = \"padding: 60px;\"><app-bergwerke></app-bergwerke></div>-->\n</div>\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/content-view-tab-component/content-view-tab-component.component.html":
/*!****************************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/content-view-tab-component/content-view-tab-component.component.html ***!
\****************************************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppContentViewTabComponentContentViewTabComponentComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<mat-drawer-container [hasBackdrop]= false [autosize]=\"true\">\n <mat-drawer [mode]=\"navBarOpenMode\" [disableClose]=\"true\" [opened]=\"navBarOpenState\">\n <app-navigation-list-component></app-navigation-list-component>\n </mat-drawer>\n <mat-drawer-content>\n <div>\n <mat-card *ngIf=\"!fullscreen && queryParams\">\n <nav mat-tab-nav-bar>\n <a mat-tab-link\n *ngFor=\"let link of navTabLinks\"\n [routerLink]=\"link.link\"\n (click)=\"this.setActiveLink(link.link)\"\n [queryParams]=\"queryParams\"\n [active]=\"link.isActive\">\n {{link.label}}\n </a>\n </nav>\n </mat-card>\n <router-outlet></router-outlet>\n </div>\n </mat-drawer-content>\n</mat-drawer-container>\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/home.component.html":
/*!***************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/home.component.html ***!
\***************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppHomeComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = "<mat-card>\n <mat-card-title>Der sp&auml;te Nietzsche. Digitale Manuskriptedition</mat-card-title>\n <mat-card-content>\n <div>Herausgegeben von Beat Röllin, Dominique Steinbach, Christian Steiner, René Stockmar und Hubert Thüring</div>\n <div>Transkription und philologischer Kommentar: Thomas Riebe, Beat Röllin und René Stockmar unter Mitarbeit von Marie-Luise Haase und Michael Kohlenbach</div>\n <div>Digitale Edition: Dominique Steinbach und Christian Steiner unter Mitarbeit von Eric Erhardt und Myriam Schmidt</div>\n </mat-card-content>\n <mat-card-content>\n <div>Gefördert durch den Schweizerischen Nationalfonds (<a href=\"http://www.snf.ch/de/Seiten/default.aspx\">SNF</a>)</div>\n <div>Unterstützt durch das Projekt \"Nationale Infrastruktur für Editionen - Infrastructure nationale pour les éditions\" (<a href=\"https://www.nie-ine.ch/\">NIE - INE</a>)</div>\n\n <div class=\"skip\">Copyright <a href=\"https://www.unibas.ch\">Universität Basel</a></div>\n </mat-card-content>\n <mat-card-content>\n <h3>Hinweis zur Beta-Version</h3>\n <div>Bitte nehmen Sie zur Kenntnis, dass die digitale Edition sowie die darin präsentierten Inhalte noch in Entwicklung stehen und dass\n <ul>\n <li>die Texte und Bilder noch nicht persistent zitierbar sind </li>\n <li>die Menüführung oder Features/Funktionalitäten im Verlauf der weiteren Entwicklung ändern können</li>\n <li>Browserkompatibilität noch nicht übergreifend gegeben ist; wir empfehlen die Verwendung von Mozilla Firefox oder Google Chromium in den aktuellen Versionen </li>\n <li>erst die Daten zu <a [routerLink]=\"manuscriptLink\" [queryParams]=\"mpXIVParam\">Mp XIV</a> eingehend erfasst und &uuml;berpr&uuml;ft wurden. \n <!--Dagegen befinden sich die Daten zu <a [routerLink]=\"manuscriptLink\" [queryParams]=\"mpXVParam\">Mp XV</a> erst in einem fr&uuml;hen Bearbeitungsstadium. -->\n </li>\n </ul>\n </div>\n </mat-card-content>\n <mat-card-content>\n <img height=\"52\" width=\"319\" src=\"http://www.snf.ch/_layouts/15/Snf.Internet/Images/logo_de.gif\"/>\n <img class=\"second\" height=\"52\" width=\"164\" src=\"https://www.unibas.ch/dam/jcr:9a8e9aff-decd-45a7-bd46-284a3da3f86e/UniBas_Logo_DE_Schwarz_RGB_65.jpg\"/>\n <!--<img class=\"second\" height=\"52\" width=\"164\" src=\"/assets/uni-basel-logo.svg\"/>-->\n </mat-card-content>\n\n</mat-card>\n";
+ __webpack_exports__["default"] = "<mat-card>\n <mat-card-title>Der sp&auml;te Nietzsche. Digitale Manuskriptedition</mat-card-title>\n <mat-card-content>\n <div>Herausgegeben von Beat Röllin, Dominique Steinbach, Christian Steiner, René Stockmar und Hubert Thüring</div>\n <div class=\"skip\">Transkription und philologischer Kommentar: Thomas Riebe, Beat Röllin und René Stockmar unter Mitarbeit von Marie-Luise Haase und Michael Kohlenbach</div>\n <div>Digitale Edition: Dominique Steinbach und Christian Steiner unter Mitarbeit von Eric Erhardt und Myriam Schmidt</div>\n <div>Projektleitung: Hubert Thüring</div>\n </mat-card-content>\n <mat-card-content>\n <div>Gefördert durch den Schweizerischen Nationalfonds (<a href=\"http://www.snf.ch/de/Seiten/default.aspx\">SNF</a>)</div>\n <div>Unterstützt durch das Projekt \"Nationale Infrastruktur für Editionen - Infrastructure nationale pour les éditions\" (<a href=\"https://www.nie-ine.ch/\">NIE - INE</a>)</div>\n\n <div class=\"skip\">Copyright <a href=\"https://www.unibas.ch\">Universität Basel</a></div>\n </mat-card-content>\n <mat-card-content>\n <h3>Hinweis zur Beta-Version</h3>\n <div>Bitte nehmen Sie zur Kenntnis, dass die digitale Edition sowie die darin präsentierten Inhalte noch in Entwicklung stehen und dass\n <ul class=\"hint\">\n <li>die Texte und Bilder noch nicht persistent zitierbar sind </li>\n <li>die Menüführung oder Features/Funktionalitäten im Verlauf der weiteren Entwicklung ändern können</li>\n <li>Browserkompatibilität noch nicht übergreifend gegeben ist; wir empfehlen die Verwendung von Mozilla Firefox in einer aktuellen Version (zur\n Zeit k&ouml;nnen die Faksimiles erst &uuml;ber eine unsichere HTTP-Verbindung geladen werden, deshalb zeigen Browser eine \n <a target=\"_new\" href=\"https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content\">\"Mixed content\"-Warnung</a> an oder blockieren diese Inhalte; lesen\n Sie <a href=\"https://experienceleague.adobe.com/docs/target/using/experiences/vec/troubleshoot-composer/mixed-content.html?lang=de\" target=\"_new\">hier</a>, \n wie die blockierten Inhalte dieser Seite angezeigt werden k&ouml;nnen)</li>\n <li>erst die Daten zu <a [routerLink]=\"manuscriptLink\" [queryParams]=\"mpXIVParam\">Mp XIV</a> eingehend erfasst und &uuml;berpr&uuml;ft wurden. \n <!--Dagegen befinden sich die Daten zu <a [routerLink]=\"manuscriptLink\" [queryParams]=\"mpXVParam\">Mp XV</a> erst in einem fr&uuml;hen Bearbeitungsstadium. -->\n </li>\n </ul>\n </div>\n </mat-card-content>\n <mat-card-content>\n <img height=\"52\" width=\"319\" src=\"/assets/logo_de.gif\"/>\n <img class=\"second\" height=\"52\" width=\"164\" src=\"https://www.unibas.ch/dam/jcr:9a8e9aff-decd-45a7-bd46-284a3da3f86e/UniBas_Logo_DE_Schwarz_RGB_65.jpg\"/>\n <!--<img class=\"second\" height=\"52\" width=\"164\" src=\"/assets/uni-basel-logo.svg\"/>-->\n </mat-card-content>\n\n</mat-card>\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/impressum.component.html":
/*!********************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/impressum.component.html ***!
\********************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppImpressumComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<mat-card>\n <mat-card-title>Kontakt</mat-card-title>\n <mat-card-content>\n <div><a href=\"mailto:hubert.thuering@unibas.ch\">Prof. Dr. Hubert Thüring</a></div>\n <div><a href=\"https://germanistik.philhist.unibas.ch/de/forschung/forschungsprojekte/ndl/der-spaete-nietzsche/\">Nietzsche-Edition</a></div>\n <div> Deutsches Seminar</div>\n <div>Universität Basel</div>\n <div>Nadelberg 4</div>\n <div>4051 Basel</div>\n <div> Tel.: +41 (0)61 207 34 29</div>\n </mat-card-content>\n</mat-card>\n<mat-card>\n <mat-card-title>Rechtliche Hinweise</mat-card-title>\n <mat-card-content>\n <mat-card-subtitle>Haftungsbeschränkung</mat-card-subtitle>\n <div class=\"text\"><!--Die Inhalte dieser Website werden mit größtmöglicher Sorgfalt erstellt. Der Anbieter übernimmt jedoch keine Gewähr für die Richtigkeit, Vollständigkeit und Aktualität der bereitgestellten Rahmeninhalte, die nicht i.e.S. Bestandteil der Edition sind.--> Die Nutzung der Inhalte der Website erfolgt auf eigene Gefahr der Nutzer*in. Mit der reinen Nutzung der Website der Anbieter*in kommt keinerlei Vertragsverhältnis zwischen der Nutzer*in und der Anbieter*in zustande.</div>\n </mat-card-content>\n <mat-card-content>\n <h3>Urheberrecht und Lizenz</h3>\n <div class=\"subcontent\">\n <mat-card-subtitle>Transkription und Daten der digitalen Edition</mat-card-subtitle>\n <img src=\"/assets/by.svg\"/>\n <div class=\"text\">Die Transkriptionen und Daten der digitalen Edition sind in ihrem ganzen Umfang frei zugänglich und dürfen zu den Bedingungen der Creative Commons Public Licence „Namensnennung“, Version 4.0 (<a href=\"https://creativecommons.org/licenses/by/4.0/deed.de\">CC BY 4.0</a>) weitergegeben werden. Das Copyright darauf hat die <a href=\"https://www.unibas.ch\">Universit&auml;t Basel</a>.</div>\n </div>\n <div>\n <mat-card-subtitle>Faksimiles</mat-card-subtitle>\n <img src=\"/assets/by-nc-nd.svg\"/>\n <div class=\"text\">Die Faksimiles werden von <a target=\"_new\" href=\"http://www.nietzschesource.org\">nietzschesource.org</a> gehostet und werden hier unver&auml;ndert dargestellt. Sie sind veröffentlicht unter der Creative Commons Public License „Namensnennung, Nicht kommerziell, Keine Bearbeitungen”, Version 4.0 <a href=\"http://creativecommons.org/licenses/by-nc-nd/4.0/deed.de\">(CC BY-NC-ND 4.0)</a>.</div>\n </div>\n </mat-card-content>\n</mat-card>\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/lib/ngx-mat-standoff-markup.component.html":
/*!**************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/lib/ngx-mat-standoff-markup.component.html ***!
\**************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppLibNgxMatStandoffMarkupComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<span *ngIf=\"templateSegments\">\n <link *ngIf=\"cssDef.type === 'url'\" rel=\"stylesheet\" type=\"text/css\" [href]='cssUrl'>\n <span [style]=\"cssDef.type === 'text' ? this.sanitizer.bypassSecurityTrustStyle(cssDef.css) : ''\"\n [attr.id]=\"parentId\" [class]=\"parentClass\">\n <span *ngFor=\"let segment of templateSegments\"\n (mousedown)=\"setSelectionStartIndex(segment.sStartIndex)\"\n (mouseup)=\"setSelectedText(segment.sStartIndex)\">\n <span [ngStyle] = \"segment.cssStyleTag\"\n [ngClass] = \"segment.cssClass\"\n (click)=\"onSegmentClick(segment)\">{{segment.sText}}</span>\n </span>\n </span>\n</span>\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/main-menu-component/main-menu-component.component.html":
/*!**************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/main-menu-component/main-menu-component.component.html ***!
\**************************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppMainMenuComponentMainMenuComponentComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<mat-toolbar *ngIf=\"!fullScreen || fullScreen !== 'true'\">\n <div>\n <button mat-icon-button mat-button [routerLink]=\"homeLink\"\n routerLinkActive=\"mat-accent\"\n color=\"primary\"\n aria-label=\"Go to landing page.\">\n <mat-icon>home</mat-icon>\n </button>\n <button mat-button [routerLink]=\"contentViewLink\" [queryParams]=\"queryParams\" routerLinkActive=\"mat-accent\" color=\"primary\">Digitale Edition</button>\n <button mat-button [disabled]= true [routerLink] = \"['doku']\" routerLinkActive=\"mat-accent\" color=\"primary\">Dokumentation</button>\n <button mat-button [disabled]= true [routerLink] = \"['']\" routerLinkActive=\"mat-accent\" color=\"primary\">Daten und Endpunkte</button>\n <button mat-button [disabled]= true [routerLink]=\"projectLink\" [queryParams]=\"queryParams\" routerLinkActive=\"mat-accent\" color=\"primary\">Projekt</button>\n <button mat-button [routerLink]=\"impressumLink\" [queryParams]=\"queryParams\" routerLinkActive=\"mat-accent\" color=\"primary\">Impressum</button>\n </div>\n</mat-toolbar>\n<router-outlet></router-outlet>\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/manuscript-view-component/manuscript-view-component.component.html":
/*!**************************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/manuscript-view-component/manuscript-view-component.component.html ***!
\**************************************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppManuscriptViewComponentManuscriptViewComponentComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<tln-manuscript-view></tln-manuscript-view>\n\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/navigation-list-component/navigation-list-component.component.html":
/*!**************************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/navigation-list-component/navigation-list-component.component.html ***!
\**************************************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppNavigationListComponentNavigationListComponentComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<div class=\"fixed-nav-container\">\n <mat-toolbar>Navigation</mat-toolbar>\n <div *ngIf=\"navTrees && navTabIndex !== -1\">\n <mat-tab-group [selectedIndex]=\"navTabIndex\" (selectedTabChange)=\"changeNavTreeViaRoute($event.index)\">\n <mat-tab\n *ngFor=\"let tree of navigationTreeDefs\"\n label={{tree.label}}>\n </mat-tab>\n </mat-tab-group>\n </div>\n</div>\n <div id=\"navlist\" class=\"navlist-container\" *ngIf=\"navTrees && navTabIndex !== -1\">\n <mat-nav-list *ngIf=\"navTrees && navTrees[navTabIndex]\">\n <mat-list-item *ngFor=\"let item of navTrees[navTabIndex].entries\"\n (click)=\"onSelectNavItem(item)\"\n [id] = \"item.tlnEntity.id\"\n [class.active-item]=\"item.tlnEntity.id === navTrees[navTabIndex].selectedItem\">\n <mat-card class = \"card-item\">\n <mat-card-header>\n <mat-card-title>\n <span>{{item.tlnEntity.label}}</span>\n </mat-card-title>\n <mat-card-subtitle *ngIf=\"item.tlnEntity.description\">GSA-Signatur {{item.tlnEntity.description}}</mat-card-subtitle>\n <mat-card-subtitle *ngIf=\"navTrees[navTabIndex].parentLabel\">{{navTrees[navTabIndex].parentLabel}}</mat-card-subtitle>\n <img mat-card-avatar *ngIf=\"item.avatar\" [src]=\"item.avatar\"/>\n </mat-card-header>\n <mat-card-content>\n <img class=\"thumbnail\" *ngIf=\"item.thumb\" [src]=\"item.thumb\"/>\n <img class=\"thumbnail\" *ngIf=\"item.svg\" [src]=\"item.svg\"/>\n </mat-card-content>\n </mat-card>\n </mat-list-item>\n </mat-nav-list>\n </div>\n\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/page-view-wrapper-component/page-view-wrapper.component.html":
/*!********************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/page-view-wrapper-component/page-view-wrapper.component.html ***!
\********************************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppPageViewWrapperComponentPageViewWrapperComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<div #tooltipContainer>\n <tln-viewer-navigation [setMaxHeightTo]=\"pageView\"></tln-viewer-navigation>\n <div id=\"content\">\n <tln-page-view #pageView></tln-page-view>\n </div>\n <!--TODO: queryParams.fullscreen is string, not boolean! -->\n <tool-tip [fullscreen]=\"queryParams.fullscreen == 'true'\" [menuOffsetPosition]=\"{x: 0, y: 86 }\" [container]=\"tooltipContainer\"></tool-tip>\n</div>\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.html":
/*!**************************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.html ***!
\**************************************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppPageViewCopyrightCopyrightSheetCopyrightSheetComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<div *ngIf=\"copyright\">\n <h4 mat-subheader>Copyright Information:</h4>\n <div [innerHTML]=\"copyright.text\"></div>\n <div *ngIf=\"copyright.originalUrl\">URL: <a target=\"_new\" [href]=\"copyright.originalUrl\">{{copyright.originalUrl}}</a></div>\n <div> Lizenz: \n <a *ngIf=\"copyright.licenseTextUrl\" target=\"_new\" [href]=\"copyright.licenseTextUrl\">{{copyright.license}} </a>\n <span *ngIf=\"!copyright.licenseTextUrl\">{{copyright.license}}</span>\n </div>\n</div>\n\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/copyright/copyright.component.html":
/*!****************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/copyright/copyright.component.html ***!
\****************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppPageViewCopyrightCopyrightComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<svg version=\"1.0\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0\" y=\"0\"\n [attr.width]=\"dimension\" [attr.height]=\"dimension\" viewBox=\"5.5 -3.5 64 64\"\n (mouseenter)=\"setHighlight(true)\" (mouseleave)=\"setHighlight(false)\" (click)=\"showCopyrightInformation($event)\">\n <svg:g>\n <svg:path id=\"cc\" [style.opacity]=\"highlight ? '0.8' : '0.2'\" d=\"M37.441-3.5c8.951,0,16.572,3.125,22.857,9.372c3.008,3.009,5.295,6.448,6.857,10.314\n c1.561,3.867,2.344,7.971,2.344,12.314c0,4.381-0.773,8.486-2.314,12.313c-1.543,3.828-3.82,7.21-6.828,10.143\n c-3.123,3.085-6.666,5.448-10.629,7.086c-3.961,1.638-8.057,2.457-12.285,2.457s-8.276-0.808-12.143-2.429\n c-3.866-1.618-7.333-3.961-10.4-7.027c-3.067-3.066-5.4-6.524-7-10.372S5.5,32.767,5.5,28.5c0-4.229,0.809-8.295,2.428-12.2\n c1.619-3.905,3.972-7.4,7.057-10.486C21.08-0.394,28.565-3.5,37.441-3.5z M37.557,2.272c-7.314,0-13.467,2.553-18.458,7.657\n c-2.515,2.553-4.448,5.419-5.8,8.6c-1.354,3.181-2.029,6.505-2.029,9.972c0,3.429,0.675,6.734,2.029,9.913\n c1.353,3.183,3.285,6.021,5.8,8.516c2.514,2.496,5.351,4.399,8.515,5.715c3.161,1.314,6.476,1.971,9.943,1.971\n c3.428,0,6.75-0.665,9.973-1.999c3.219-1.335,6.121-3.257,8.713-5.771c4.99-4.876,7.484-10.99,7.484-18.344\n c0-3.543-0.648-6.895-1.943-10.057c-1.293-3.162-3.18-5.98-5.654-8.458C50.984,4.844,44.795,2.272,37.557,2.272z M37.156,23.187\n l-4.287,2.229c-0.458-0.951-1.019-1.619-1.685-2c-0.667-0.38-1.286-0.571-1.858-0.571c-2.856,0-4.286,1.885-4.286,5.657\n c0,1.714,0.362,3.084,1.085,4.113c0.724,1.029,1.791,1.544,3.201,1.544c1.867,0,3.181-0.915,3.944-2.743l3.942,2\n c-0.838,1.563-2,2.791-3.486,3.686c-1.484,0.896-3.123,1.343-4.914,1.343c-2.857,0-5.163-0.875-6.915-2.629\n c-1.752-1.752-2.628-4.19-2.628-7.313c0-3.048,0.886-5.466,2.657-7.257c1.771-1.79,4.009-2.686,6.715-2.686\n C32.604,18.558,35.441,20.101,37.156,23.187z M55.613,23.187l-4.229,2.229c-0.457-0.951-1.02-1.619-1.686-2\n c-0.668-0.38-1.307-0.571-1.914-0.571c-2.857,0-4.287,1.885-4.287,5.657c0,1.714,0.363,3.084,1.086,4.113\n c0.723,1.029,1.789,1.544,3.201,1.544c1.865,0,3.18-0.915,3.941-2.743l4,2c-0.875,1.563-2.057,2.791-3.541,3.686\n c-1.486,0.896-3.105,1.343-4.857,1.343c-2.896,0-5.209-0.875-6.941-2.629c-1.736-1.752-2.602-4.19-2.602-7.313\n c0-3.048,0.885-5.466,2.658-7.257c1.77-1.79,4.008-2.686,6.713-2.686C51.117,18.558,53.938,20.101,55.613,23.187z\"/>\n </svg:g>\n</svg>\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/margin-field/line-reference/line-reference.component.html":
/*!***************************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/margin-field/line-reference/line-reference.component.html ***!
\***************************************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppPageViewMarginFieldLineReferenceLineReferenceComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<svg version=\"1.0\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0\" y=\"0\"\n viewBox=\"0 0 25 50\"\n (mouseenter)=\"showReference(true, $event)\" (mouseleave)=\"showReference(false, $event)\" (click)=\"changeLocation()\">\n <defs>\n <marker id=\"arrowhead\" markerWidth=\"10\" markerHeight=\"10\" refX=\"0\" refY=\"2\" orient=\"auto\">\n <polygon points=\"0 0, 6 2, 0 4\"/>\n </marker>\n <line id=\"arrow\" x1=\"0\" x2=\"15\" y1=\"2\" y2=\"2\" stroke-width=\"1\" marker-end=\"url(#arrowhead)\"/>\n </defs>\n <rect x=\"0\" y=\"0\" height=\"100\" width=\"200\" class=\"mouse-pointer\" [ngClass]=\"{ 'unhighlighted' : !highlighted, 'highlighted': highlighted }\"/>\n <use x=\"0\" y=\"3\" class=\"mouse-pointer\" xlink:href=\"#arrow\" stroke=\"black\"/>\n</svg>\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/margin-field/margin-field.component.html":
/*!**********************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/margin-field/margin-field.component.html ***!
\**********************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppPageViewMarginFieldMarginFieldComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<svg xmlns:svg=\"http://www.w3.org/2000/svg\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xhtml=\"http://www.w3.org/1999/xhtml\"\n [attr.viewBox]=\"viewBox\" [attr.height]=\"margin_height*local_zoom*zoomFactor\" [attr.width]=\"margin_width*local_zoom*zoomFactor\"\n class = 'marginfield'>\n <svg:g *ngFor=\"let line of lines\">\n <foreignObject *ngIf=\"showReference == 'from' && line.continuesFrom\" [attr.x]=\"0\" [attr.y]=\"line.bottom-line_height+1\" [attr.height]=\"line_height\" [attr.width]=\"2*line_length\">\n <xhtml:div><line-reference [showReference]=\"showReference\" [line]=\"line\"></line-reference></xhtml:div>\n </foreignObject>\n <svg:g *ngIf=\"line.number % 2 == 0 || \n ((getHoverStatus(line) == SELECTED_STATUS || getHoverStatus(line) == HOVERED_STATUS) \n && ((showReference != 'to' && line.continuesFrom) || (showReference == 'to' && line.continuesTo)))\">\n <svg:rect [attr.x]=\"line_x-1\" [attr.y]=\"line.bottom-line_height+1\" \n [attr.height]=\"line_height\" [attr.width]=\"line.number > 9 ? line_length + line_length/2 : line_length\"\n [ngStyle]=\"assignStyle(line, hoveredWord, hoveredLine, getHoverStatus(line))\"\n [ngClass]=\"{ \n 'marginfield unhighlighted': getHoverStatus(line) != HOVERED_STATUS,\n 'marginfield highlight': getHoverStatus(line) == HOVERED_STATUS }\" > </svg:rect>\n <svg:text class=\"text\" [attr.x]=\"line_x\" [attr.y]=\"line.bottom\" [container]=\"container\"\n [interactedObject]=\"line\">{{line.number}}</svg:text>\n </svg:g>\n <foreignObject *ngIf=\"showReference == 'to' && line.continuesTo\" [attr.x]=\"line_x+line_length\" [attr.y]=\"line.bottom-line_height+1\" \n [attr.height]=\"line_height\" [attr.width]=\"2*line_length\">\n <xhtml:div><line-reference [showReference]=\"showReference\" [line]=\"line\"></line-reference></xhtml:div>\n </foreignObject>\n </svg:g>\n</svg>\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/page-view.component.html":
/*!******************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/page-view.component.html ***!
\******************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppPageViewPageViewComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<div id=\"page\" *ngIf=\"first_image\" [style.height.px]=\"max_height\" [ngStyle]=\"{ 'overflow': hasColumnStyle() ? 'auto': 'hidden' }\">\n <div #firstContainer [ngClass]=\"{ 'inline': hasColumnStyle(), 'breakline': !hasColumnStyle()}\">\n <div id=\"margin\">\n <margin-field [text_field]=\"first_image.text_field\" [lines]=\"first_lines\" [assignStyle]=\"assignStyle\"\n [container]=\"firstContainer\" [zoomFactor]=\"zoomFactor\" [max_height]=\"max_height\" \n [max_width]=\"max_width\"\n [selectedLines]=\"selectedLines\" [showReference]=\"showReferenceLeft\"></margin-field>\n </div>\n <div class=\"gap\"></div>\n <div id=\"textfield\">\n <text-field [identity]=\"first_textfield_id\" [container]=\"firstContainer\"\n [image]=\"first_image\" [findText]=\"findText\" [words]=\"first_words\" [zoomFactor]=\"zoomFactor\" \n [preferPrimaryUrl]=\"preferPrimaryUrl\" [max_height]=\"max_height\" \n [max_width]=\"max_width\" \n [selectedWords]=\"selectedWords\" [selectedLines]=\"selectedLines\"\n [foreign_texts]=\"first_foreign_texts\" [configuration]=\"configuration\"\n [assignClass]=\"assignClass\" [assignStyle]=\"assignStyle\"></text-field>\n </div>\n <div class=\"gap\" *ngIf=\"!(second_image && second_lines) || !hasColumnStyle()\"></div>\n <div id=\"margin\" *ngIf=\"!(second_image && second_lines) || !hasColumnStyle()\">\n <margin-field [text_field]=\"first_image.text_field\" [lines]=\"first_lines\" [assignStyle]=\"assignStyle\"\n [max_width]=\"max_width\" [showReference]=\"showReferenceRight\"\n [selectedLines]=\"selectedLines\" [zoomFactor]=\"zoomFactor\" [max_height]=\"max_height\"></margin-field>\n </div>\n </div>\n <div #secondContainer [ngClass]=\"{ 'inline': hasColumnStyle(), 'breakline': !hasColumnStyle()}\">\n <div class=\"gap\"></div>\n <div id=\"margin\" *ngIf=\"second_image && second_lines && !hasColumnStyle()\">\n <margin-field [text_field]=\"second_image.text_field\" [lines]=\"second_lines\" [assignStyle]=\"assignStyle\"\n [max_width]=\"max_width\" \n [container]=\"secondContainer\" [zoomFactor]=\"zoomFactor\" [max_height]=\"max_height\"\n [selectedLines]=\"selectedLines\" [showReference]=\"showReferenceLeft\"></margin-field>\n </div>\n <div id=\"textfield\" *ngIf=\"second_image && second_words\">\n <text-field [identity]=\"second_textfield_id\" [container]=\"secondContainer\"\n [image]=\"second_image\" [findText]=\"findText\" [words]=\"second_words\" [zoomFactor]=\"zoomFactor\"\n [max_width]=\"max_width\"\n [preferPrimaryUrl]=\"preferPrimaryUrl\" [max_height]=\"max_height\" \n [selectedWords]=\"selectedWords\" [selectedLines]=\"selectedLines\"\n [foreign_texts]=\"second_foreign_texts\" [configuration]=\"configuration\"\n [assignClass]=\"assignClass\" [assignStyle]=\"assignStyle\"></text-field>\n </div>\n <div class=\"gap\"></div>\n <div id=\"margin\" *ngIf=\"second_image && second_lines\">\n <margin-field [text_field]=\"second_image.text_field\" [lines]=\"second_lines\" [assignStyle]=\"assignStyle\"\n [max_width]=\"max_width\" [showReference]=\"showReferenceRight\"\n [selectedLines]=\"selectedLines\" [zoomFactor]=\"zoomFactor\" [max_height]=\"max_height\"></margin-field>\n </div>\n </div>\n</div>\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/textfield-component/textfield.component.html":
/*!**************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/textfield-component/textfield.component.html ***!
\**************************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppPageViewTextfieldComponentTextfieldComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<svg xmlns:svg=\"http://www.w3.org/2000/svg\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xhtml=\"http://www.w3.org/1999/xhtml\"\n [attr.viewBox]=\"viewBox\" [attr.height]=\"image_height*local_zoom*zoomFactor\" [attr.width]=\"image_width*local_zoom*zoomFactor\"\n class = 'textfield' [attr.transform]='imageSpec.transform'>\n <svg:g *ngIf=\"image\">\n <!--\n 'xlink:href' is deprecated in SVG2 (see https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/xlink:href).\n However, some browsers do not support 'href', therefore we use both 'xlink:href' and 'href'.\n -->\n <image [attr.xlink:href]=\"imageSpec.URL\" [attr.href]=\"imageSpec.URL\" (load)=\"msg(imageSpec.URL)\" (error)=\"updateImageProperties(imageSpec.secondaryURL)\"\n [attr.x]=\"imageSpec.x\" [attr.y]=\"imageSpec.y\" [attr.height]=\"imageSpec.height\" [attr.width]=\"imageSpec.width\"/>\n <foreignObject *ngIf=\"image.copyright\" [ngStyle]=\"getCopyrightPosition((local_zoom*zoomFactor > 1) ? 32 : 32/(local_zoom*zoomFactor))\" \n [attr.height]=\"(local_zoom*zoomFactor > 1) ? 32 : 32/(local_zoom*zoomFactor)\" \n [attr.width]=\"(local_zoom*zoomFactor > 1) ? 32 : 32/(local_zoom*zoomFactor)\">\n <xhtml:div><copyright [copyright]=\"image.copyright\" [dimension]=\"32/(local_zoom*zoomFactor)\"></copyright></xhtml:div>\n </foreignObject>\n </svg:g>\n <svg:g *ngFor=\"let word of words\">\n <svg:rect [interactedObject]=\"word\" [identity]=\"identity\" [container]=\"container\"\n [ngStyle]=\"assignStyle(word, hoveredWord, hoveredLine, getHoverStatus(word))\"\n [ngClass]=\"assignClass(word)\"\n [attr.x]=\"word.left\" [attr.y]=\"word.top\" [attr.height]=\"word.height\" [attr.width]=\"word.width\" [attr.transform]=\"word.transform\">\n <title *ngIf=\"!useExtendedTooltip && word\">{{ word.edited_text != null ? '> ' + word.edited_text : word.text }}</title>\n </svg:rect>\n <svg:g *ngIf=\"word.deletion_path\">\n <path #pathRef [ngClass]=\"assignClass(word, pathRef.localName)\" [attr.d]=\"word.deletion_path\"/>\n </svg:g>\n </svg:g>\n <svg:g *ngFor=\"let foreignText of foreign_texts\">\n <svg:rect [interactedObject]=\"foreignText\"\n [ngStyle]=\"assignStyle(foreignText, hoveredWord, hoveredLine, getHoverStatus(foreignText))\"\n [ngClass]=\"assignClass(foreignText)\"\n [attr.x]=\"foreignText.left\" [attr.y]=\"foreignText.top\" [attr.height]=\"foreignText.height\" [attr.width]=\"foreignText.width\" [attr.transform]=\"foreignText.transform\">\n <title *ngIf=\"!useExtendedTooltip && foreignText\">{{foreignText.text}}, {{ foreignText.pen }}</title>\n </svg:rect>\n </svg:g>\n</svg>\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/project.component.html":
/*!******************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/project.component.html ***!
\******************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppProjectComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<mat-card>\n <mat-card-title>Das Editionsprojekt „Der späte Nietzsche“</mat-card-title>\n <mat-card-content>\n <div class=\"text\"> Das deutsch-schweizerische Editionsprojekt „Der späte\n Nietzsche“ veröffentlicht Friedrich Nietzsches späten&nbsp;Nachlass erstmals\n vollständig und manuskriptgetreu. Die Manuskriptedition erscheint seit 2001\n in der von Giorgio Colli und Mazzino Montinari begründeten Kritischen\n Gesamtausgabe der Werke als neunte Abteilung (KGW IX).&nbsp;Die Publikation der\n noch ausstehenden sp&auml;ten Manuskripte aus den Archivmappen (Mp\n XIV-XVIII) erfolgt zusätzlich in <i>dieser</i> an der Universität Basel\n entwickelten und betreuten und durch den SNF gef&ouml;rderten digitalen\n Edition.</div> <div class=\"text\">Mit der differenzierten Transkription und\n digitalen Faksimilierung der Handschriften sowie einem editorischen\n Nachbericht schließt KGW IX die Edition und Kommentierung des späten\n Nachlasses in KGW ab. Vorrangige Absicht ist es, die Manuskripte in ihrer\n Gesamtheit zu dokumentieren und den typischen Notatcharakter der\n Aufzeichnungen aufzuzeigen. Statt in Form geglätteter, linearer Lesetexte\n einen falsch-eindeutigen Text zu bieten, werden in einer diplomatischen\n Umschrift alle Korrekturvorgänge, Streichungen,&nbsp;späteren\n Überarbeitungen etc. wiedergegeben.&nbsp;Und statt die Aufzeichnungen in\n eine chronologische Ordnung zu zwängen, die sich in vielen Fällen gar nicht\n ermitteln lässt und darum immer auch editorisch willkürlich bleibt, wird die\n ursprüngliche topologische Anordnung beibehalten. Die Manuskriptedition\n ermöglicht dadurch neue Einsichten in den Schreibprozess und die Textgenese\nbeim späten Nietzsche.</div>\n <div class=\"text\">In der Onlineausgabe werden die Manuskripte mit sämtlichen\n editorischen Informationen sowohl als Faksimile wie auch in der\n differenzierten Transkription je einzeln und in synoptischer Darstellung\n offen zugänglich sowie zitier-, durchsuch- und auswertbar sein.</div>\n <div class=\"img\">\n <img src=\"http://www.snf.ch/_layouts/15/Snf.Internet/Images/logo_de.gif\">\n </div>\n </mat-card-content>\n</mat-card>\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/rhizome-view-component/rhizome-view-component.component.html":
/*!********************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/rhizome-view-component/rhizome-view-component.component.html ***!
\********************************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppRhizomeViewComponentRhizomeViewComponentComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<div #tooltipContainer id=\"page\">\n <tln-crossref></tln-crossref>\n <!--TODO: queryParams.fullscreen is string, not boolean! -->\n <tool-tip [fullscreen]=\"queryParams.fullscreen == 'true'\" [menuOffsetPosition]=\"{x: 0, y: 100 }\" [container]=\"tooltipContainer\"></tool-tip>\n</div>\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/navigation/navigation.component.html":
/*!*********************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/navigation/navigation.component.html ***!
\*********************************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppTlnEditionTlnCrossrefNavigationNavigationComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<div id=\"navi\">\n <toggle-navigation></toggle-navigation>\n <button mat-icon-button *ngIf=\"current_page && contextView == PAGE_CONTEXT_VIEW\" \n [title]=\"'Alle Querverweise von ' + current_page.title + ' anzeigen'\" (click)=\"changeContext()\">\n <mat-icon>auto_stories</mat-icon>\n </button>\n <button mat-icon-button *ngIf=\"current_page && contextView != PAGE_CONTEXT_VIEW\" \n [title]=\"'Querverweise von ' + current_page.title + ' ' + current_page.number + ' anzeigen'\" (click)=\"changeContext()\">\n <mat-icon>description</mat-icon>\n </button>\n <button *ngIf=\"current_page && contextView == PAGE_CONTEXT_VIEW\" \n mat-icon-button [title]=\"current_page.title + ' ' + current_page.number +' in Seitenansicht anzeigen'\" (click)=\"setCurrentIri(current_page.id)\">\n <mat-icon>chrome_reader_mode</mat-icon>\n </button>\n <zoom></zoom>\n <search *ngIf=\"contextView == PAGE_CONTEXT_VIEW\"></search>\n</div>\n\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.html":
/*!***********************************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.html ***!
\***********************************************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppTlnEditionTlnCrossrefPageVersionViewPageVersionViewComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<mat-list role=\"list\" *ngIf=\"current_page_iri\">\n <mat-list-item *ngFor=\"let geneticOrder of geneticOrders | filter:filterGeneticOrder\">\n <button mat-button title=\"Querverweis anzeigen\" (click)=\"openCrossRef(geneticOrder)\">\n <span *ngFor=\"let version of geneticOrder.textVersions; let i = index\">\n <version-view [version]=\"version\" [current_iri]=\"current_page_iri\"></version-view>\n <mat-icon *ngIf=\"i+1 < geneticOrder.textVersions.length\" [inline]=\"true\">east</mat-icon>\n </span>\n </button>\n </mat-list-item>\n</mat-list>\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.html":
/*!***************************************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.html ***!
\***************************************************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppTlnEditionTlnCrossrefPageVersionViewTlnPageVersionViewComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<page-version-view [current_page_iri]=\"current_iri\" [geneticOrders]=\"geneticOrders\"></page-version-view>\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/tln-crossref.component.html":
/*!************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/tln-crossref.component.html ***!
\************************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppTlnEditionTlnCrossrefTlnCrossrefComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<div id=\"page\">\n <crossref-navigation></crossref-navigation>\n <div *ngIf=\"current_manuscript && contextView == MANUSCRIPT_CONTEXT_VIEW\" class=\"grid-container\">\n <h2 class=\"page-crossref-title extra-space\">Querverweise von {{current_manuscript.title}}</h2>\n <div *ngFor=\"let page of pagesWithGeneticOrder\">\n <h4 class=\"page-crossref-title\">{{current_manuscript.title}} {{page.number}}</h4>\n <tln-page-version-view [current_iri]=\"page.id\"></tln-page-version-view>\n </div>\n </div>\n <div *ngIf=\"current_page && contextView == PAGE_CONTEXT_VIEW\">\n <h3 class=\"page-crossref-title\">Querverweise von {{current_page.title}} {{current_page.number}}</h3>\n <page-version-view [parentActivatedRoute]=\"activatedRoute.parent\" [current_page_iri]=\"current_page.id\" \n [filterGeneticOrder]=\"current_genetic_order_iri\" [geneticOrders]=\"geneticOrders\"></page-version-view>\n </div>\n <div class=\"preview\" *ngIf=\"current_page && textVersions.length > 0 && contextView == PAGE_CONTEXT_VIEW\" [style.width.px]=\"previewWidth\">\n <h4 *ngIf=\"geneticOrders.length > 1\">Ausgew&auml;hlte Querverweise</h4>\n <div *ngFor=\"let version of textVersions; let i = index\">\n <button mat-button [ngClass]=\"{'highlight': selectedTextVersions.indexOf(version) > -1 }\"\n [title]=\"getButtonTitle(version)\" (click)=\"addOrRemove(version)\">\n <version-view [version]=\"version\"></version-view>\n <mat-icon *ngIf=\"selectedTextVersions.indexOf(version) > -1\" [inline]=\"true\">close</mat-icon>\n <mat-icon *ngIf=\"selectedTextVersions.indexOf(version) == -1\" [inline]=\"true\">chevron_right</mat-icon>\n </button>\n <div>\n <mat-icon *ngIf=\"i+1 < textVersions.length\">south</mat-icon>\n </div>\n </div>\n </div>\n <div *ngIf=\"current_page && contextView == PAGE_CONTEXT_VIEW\" class=\"text\" [style.left.px]=\"previewWidth\" [style.width.px]=\"max_width+margin_width\">\n <div class=\"page-view\" *ngFor=\"let version of selectedTextVersions\" [style.height.px]=\"each_version_height\">\n <div class=\"text-navi\">\n <button [title]=\"getButtonTitle(version)\" class=\"close-text\" mat-button (click)=\"addOrRemove(version)\">\n <version-view [version]=\"version\"></version-view>\n <mat-icon *ngIf=\"selectedTextVersions.indexOf(version) > -1\" [inline]=\"true\">close</mat-icon>\n </button>\n </div>\n <div *ngFor=\"let textUnity of version.textUnities\">\n <span class=\"mat-button default-mouse page-navi\">\n <span>{{version.title}}, {{textUnity.number}}<span *ngIf=\"textUnity.startLine\">, {{textUnity.startLine}}-{{textUnity.endLine}}</span>\n </span>\n <open-in-viewer *ngIf=\"textUnity.hasFaksimileImage\"\n [routerInformation]=\"{ title: version.title, number: textUnity.number, \n page: textUnity.belongsToPage ? textUnity.belongsToPage : textUnity.id,\n manuscript: version.manuscript, launchExternally: false \n }\"></open-in-viewer>\n <open-in-viewer *ngIf=\"textUnity.hasFaksimileImage\"\n [routerInformation]=\"{ title: version.title, number: textUnity.number,\n page: textUnity.belongsToPage ? textUnity.belongsToPage : textUnity.id,\n manuscript: version.manuscript, launchExternally: true\n }\"></open-in-viewer>\n </span>\n <div *ngIf=\"!textUnity.belongsToPage\">\n <tln-page-view \n [page]=\"textUnity.id\"\n [multiInstanceMode]=\"true\"\n [selectedViewOption]=\"selectedViewOption\"\n [selectedLines]=\"selectedLines\"\n [queryService]=\"queryService\" [preferPrimaryUrl]=\"preferPrimaryUrl\" \n [max_width]=\"max_width\"></tln-page-view>\n </div>\n <div *ngIf=\"textUnity.belongsToPage\">\n <tln-page-view *ngIf=\"textUnity.belongsToPage\"\n [multiInstanceMode]=\"true\"\n [startLine]=\"textUnity.startLineIri\"\n [endLine]=\"textUnity.endLineIri\"\n [page]=\"textUnity.belongsToPage\"\n [selectedViewOption]=\"selectedViewOption\"\n [selectedLines]=\"selectedLines\"\n [queryService]=\"queryService\" [preferPrimaryUrl]=\"preferPrimaryUrl\" \n [max_width]=\"max_width\" ></tln-page-view>\n </div>\n </div>\n <div class=\"external\" [style.width.px]=\"max_width\" *ngIf=\"version.textUnities.length == 0 && version.extUrl\">\n <a mat-button [href]=\"version.extUrl\" target=\"_new\">Text auf nietzschesource.org <mat-icon>link</mat-icon></a>\n </div>\n </div>\n </div>\n</div>\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/version-view/version-view.component.html":
/*!*************************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/version-view/version-view.component.html ***!
\*************************************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppTlnEditionTlnCrossrefVersionViewVersionViewComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<span *ngIf=\"version && version.title\">\n {{version.title}}<span *ngIf=\"version.textUnities.length > 0\">,</span>\n <span [ngClass]=\"{ 'highlight': current_iri != null && current_iri != undefined && (textUnity.id == current_iri || textUnity.belongsToPage == current_iri) }\"\n *ngFor=\"let textUnity of version.textUnities; let j = index\">\n {{textUnity.number}}<span *ngIf=\"textUnity.startLine && textUnity.endLine\">, {{textUnity.startLine}}-{{textUnity.endLine}}</span>\n <span *ngIf=\"textUnity.startLine && j+1 < version.textUnities.length\">;</span>\n <span *ngIf=\"!textUnity.startLine && j+1 < version.textUnities.length\">,</span>\n </span>\n</span>\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-fulltext/navigation/navigation.component.html":
/*!*********************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-fulltext/navigation/navigation.component.html ***!
\*********************************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppTlnEditionTlnFulltextNavigationNavigationComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<div id=\"navi\">\n <toggle-navigation></toggle-navigation>\n <zoom></zoom>\n</div>\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-fulltext/tln-fulltext.component.html":
/*!************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-fulltext/tln-fulltext.component.html ***!
\************************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppTlnEditionTlnFulltextTlnFulltextComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<div id=\"page\" #tooltipContainer>\n <fulltext-navigation></fulltext-navigation>\n <div class=\"search\" [style.width.px]=\"previewWidth\">\n <mat-card>\n <mat-card-header>\n <mat-card-title>Suche<span *ngIf=\"searchTerm\">: <span class=\"small-grey\">{{searchTerm}}</span></span></mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <mat-form-field class=\"full-width\">\n <mat-label>Text</mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"searchTerm\" (keydown.enter)=\"search()\" (keydown.esc)=\"clearFindText()\">\n <button mat-button *ngIf=\"searchTerm\" matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"clearFindText()\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <button mat-button (click)=\"search()\"><mat-icon>search</mat-icon></button>\n <mat-spinner *ngIf=\"startSearch && !resultsReceived && searchTerm\"></mat-spinner>\n <div *ngIf=\"resultsReceived && searchTerm\">\n {{ pages | resultPipe }}\n </div>\n <mat-paginator *ngIf=\"!fullscreen && pages.length > resultLength\" \n [length]=\"pages.length\"\n [pageSize]=\"resultLength\"\n [pageIndex]=\"resultIndex\"\n (page)=\"showResults($event)\">\n </mat-paginator>\n </mat-card-content>\n </mat-card>\n </div>\n <div *ngIf=\"pages.length > 0\" class=\"text\" [style.left.px]=\"previewWidth+20\" [style.width.px]=\"max_width+margin_width-25\">\n <div class=\"page-view\" *ngFor=\"let page of pages | pageResultFilter:resultRange\">\n <span class=\"mat-button default-mouse page-navi\">\n <span>{{page.title}}, {{page.number}}</span>\n <open-in-viewer [routerInformation]=\"{ title: page.title, number: page.number, page: page.id,\n manuscript: page.manuscript, launchExternally: false }\"></open-in-viewer>\n <open-in-viewer [routerInformation]=\"{ title: page.title, number: page.number, page: page.id,\n manuscript: page.manuscript, launchExternally: true }\"></open-in-viewer>\n </span>\n <tln-page-view *ngFor=\"let result of page.results\"\n [page]=\"page.id\"\n [multiInstanceMode]=\"true\"\n [selectedViewOption]=\"selectedViewOption\"\n [startLine]=\"result.getStartLine()\"\n [endLine]=\"result.getEndLine()\"\n [selectedWords]=\"result.getWords()\"\n [max_width]=\"max_width\"></tln-page-view>\n </div>\n <mat-paginator *ngIf=\"pages.length > resultLength\" \n [length]=\"pages.length\"\n [pageSize]=\"resultLength\"\n [pageIndex]=\"resultIndex\"\n (page)=\"showResults($event)\">\n </mat-paginator>\n </div>\n <tool-tip [container]=\"tooltipContainer\" [menuOffsetPosition]=\"{x: 0, y: 0 }\"></tool-tip>\n</div>\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-information/tln-information.component.html":
/*!******************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-information/tln-information.component.html ***!
\******************************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppTlnEditionTlnInformationTlnInformationComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<div *ngIf=\"current_page\">\n <h3>{{current_page.title}} {{current_page.number}}:</h3>\n <h4 mat-subheader>Querverweise:</h4>\n <page-version-view [bottomSheetRef]=\"bottomSheetRef\" [parentActivatedRoute]=\"data.parentActivatedRoute\"\n [current_page_iri]=\"current_page.id\" [geneticOrders]=\"geneticOrders\"></page-version-view>\n</div>\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.html":
/*!**************************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.html ***!
\**************************************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppTlnEditionTlnManuscriptViewTlnManuscriptViewComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<toggle-navigation></toggle-navigation>\n<mat-card *ngIf=\"current_manuscript\">\n <mat-card-header>\n <mat-card-title *ngIf=\"current_manuscript.archivalicSignature\">{{current_manuscript.archivalicSignature}}</mat-card-title>\n <mat-card-title *ngIf=\"!current_manuscript.archivalicSignature\">{{current_manuscript.title}}</mat-card-title>\n <mat-card-subtitle *ngIf=\"current_manuscript.gsaSignature\">GSA-Signatur {{current_manuscript.gsaSignature}}</mat-card-subtitle>\n <!--<mat-card-subtitle>{{current_manuscript.type}}</mat-card-subtitle>-->\n <img mat-card-avatar *ngIf=\"current_manuscript.thumbImage\" [src]=\"current_manuscript.thumbImage\"/>\n </mat-card-header>\n <mat-card-content *ngIf=\"earlierDescriptions.length > 0\">\n <h4 mat-subheader>Fr&uuml;here Manuskriptbeschreibungen</h4>\n <table>\n <tr *ngFor=\"let earlierDescription of earlierDescriptions\">\n <td class=\"author\">{{earlierDescription.author}}:</td>\n <td class=\"text\">\n <span *ngIf=\"earlierDescription.markups.length == 0\">{{earlierDescription.text}}</span>\n <NgxMat-NgxMatStandoffMarkup *ngIf=\"earlierDescription.markups.length > 0\"\n [cssDef]=\"cssDef\" [markupSettings]=\"mySettings\" \n [textToStyle]=\"earlierDescription.text\" \n [posStyleMarkup]=\"earlierDescription.markups\"></NgxMat-NgxMatStandoffMarkup>\n {{earlierDescription.citation}}\n </td>\n </tr>\n </table>\n </mat-card-content>\n <mat-card-content *ngIf=\"manuscriptDescription\">\n <h4 mat-subheader *ngIf=\"current_manuscript.type == 'Mappe'\">Beschreibung der Archivmappe</h4>\n <h4 mat-subheader *ngIf=\"current_manuscript.type != 'Mappe'\">Heftbeschreibung</h4>\n <p class=\"text\">\n <span *ngIf=\"manuscriptDescription.markups.length == 0\">{{manuscriptDescription.text}}</span>\n <NgxMat-NgxMatStandoffMarkup *ngIf=\"manuscriptDescription.markups.length > 0\"\n [cssDef]=\"cssDef\" [markupSettings]=\"mySettings\" \n [textToStyle]=\"manuscriptDescription.text\" \n [posStyleMarkup]=\"manuscriptDescription.markups\"></NgxMat-NgxMatStandoffMarkup>\n </p>\n </mat-card-content>\n <mat-card-content *ngIf=\"current_manuscript.archivalicSignature && current_manuscript.archivalicSignature != current_manuscript.title\">\n <h4 mat-subheader>In {{current_manuscript.title}} wiedergegebene Manuskriptseiten</h4>\n <span *ngFor=\"let page of pages; let i = index\">{{page.number}}\n <open-in-viewer class=\"nospace\" [routerInformation]=\"{ title: current_manuscript.title, number: page.number, page: page.id }\"></open-in-viewer>\n <open-in-viewer class=\"nospace\" [routerInformation]=\"{ title: current_manuscript.title, number: page.number, \n page: page.id, launchExternally: true }\"></open-in-viewer>\n <span *ngIf=\"i+1 < pages.length\">, </span></span>\n </mat-card-content>\n <mat-card-content *ngIf=\"reconstructedKonvolut\">\n <h4 mat-subheader>Konvolute, Rekonstruktionen</h4>\n <p class=\"text\" *ngIf=\"reconstructedKonvolut.description\">{{reconstructedKonvolut.description}}</p>\n <!-- TODO: WAITING FOR DATA\n <span *ngFor=\"let page of reconstructedKonvolut.pages; let i = index\">{{page.number}}\n <button *ngIf=\"page.title\" mat-icon-button class=\"nospace\" \n [title]=\"page.title + ' ' + page.number + ' in Seitenansicht &ouml;ffnen'\" \n (click)=\"openInViewer(page.id)\"><mat-icon [inline]=\"true\">launch</mat-icon></button>\n <span *ngIf=\"i+1 < reconstructedKonvolut.pages.length\">, </span></span>-->\n </mat-card-content>\n</mat-card>\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.html":
/*!*************************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.html ***!
\*************************************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppTlnEditionTlnNavigationElementsOpenInViewerComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<button *ngIf=\"!launch\" mat-icon-button (click)=\"openInViewer()\" \n [title]=\"page.title + ' ' + page.number + ' in Seitenansicht &ouml;ffnen'\" class=\"icon-button\">\n <mat-icon [inline]=\"true\">chrome_reader_mode</mat-icon>\n</button>\n<button *ngIf=\"launch\" mat-icon-button (click)=\"openInViewer()\" \n [title]=\"page.title + ' ' + page.number + ' in neuem Tab in Seitenansicht &ouml;ffnen'\" class=\"icon-button\">\n <mat-icon [inline]=\"true\">launch</mat-icon>\n</button>\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-navigation-elements/search.component.html":
/*!*****************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-navigation-elements/search.component.html ***!
\*****************************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppTlnEditionTlnNavigationElementsSearchComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<mat-form-field class=\"search\">\n <mat-label>Suche</mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"findText\" (ngModelChange)=\"updateParams()\" (keydown.esc)=\"clearFindText()\">\n <button mat-button *ngIf=\"findText\" matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"clearFindText()\">\n <mat-icon>close</mat-icon>\n </button>\n <button mat-button matSuffix mat-icon-button title=\"Volltextsuche\" aria-label=\"Volltextsuche\" (click)=\"openFulltextSearch()\">\n <mat-icon>search</mat-icon>\n </button>\n</mat-form-field>\n\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.html":
/*!****************************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.html ***!
\****************************************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppTlnEditionTlnNavigationElementsToggleNavigationComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<button mat-button [title]=\"navBarOpenState ? 'Navigationsleiste aus' : 'Navigationsleiste ein'\" (click)=\"toggleNavDrawer()\">\n <mat-icon class=\"mat-accent\">{{ navBarOpenState ? 'chevron_left' : 'chevron_right' }}</mat-icon>\n</button>\n<button mat-icon-button [title]=\"fullscreen ? 'Vollbild aus' : 'Vollbild ein'\" (click)=\"toggleFullscreen()\">\n <mat-icon>{{ fullscreen ? 'fullscreen_exit' : 'fullscreen'}}</mat-icon>\n</button>\n\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-navigation-elements/zoom.component.html":
/*!***************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-navigation-elements/zoom.component.html ***!
\***************************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppTlnEditionTlnNavigationElementsZoomComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<button mat-icon-button class=\"zoom zoom-in\" [title]=\"{ 'zoomFactor': zoomFactor, 'changeValue': increment } | zoomTitle\" \n (click)=\"setZoomFactor(zoomFactor+increment)\"><mat-icon>zoom_in</mat-icon></button>\n<button mat-icon-button [ngClass]=\"{ 'zoom-in': zoomFactor < 1, 'zoom-out': zoomFactor > 1 }\" \n title=\"Zoom zur&uuml;cksetzen\" (click)=\"setZoomFactor(1)\">{{zoomFactor * 100 | number:'1.0-0'}}%</button>\n<button mat-icon-button class=\"zoom zoom-out\" [title]=\"{ 'zoomFactor': zoomFactor, 'changeValue': decrement} | zoomTitle\"\n (click)=\"setZoomFactor(zoomFactor+decrement)\"><mat-icon>zoom_out</mat-icon></button>\n\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-page-view.component.html":
/*!************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-page-view.component.html ***!
\************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppTlnEditionTlnPageViewComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<div #tooltipContainer>\n <page-view [assignClass]=\"assignClass\" [assignStyle]=\"assignStyle\" \n [dontShowReference]=\"dontShowReference\"\n [configuration]=\"configuration\" [max_height]=\"max_height\"\n [max_width]=\"max_width\"\n [findText]=\"findText\" [first_image]=\"image\" \n [first_lines]=\"lines\" [first_words]=\"words\" \n [first_foreign_texts]=\"foreignTexts\" [second_foreign_texts]=\"second_foreignTexts\"\n [second_image]=\"second_image\" [second_lines]=\"second_lines\" [second_words]=\"second_words\" \n [selectedWords]=\"selectedWords\" [selectedLines]=\"selectedLines\"\n [preferPrimaryUrl]=\"preferPrimaryUrl\" [zoomFactor]=\"zoomFactor\"></page-view>\n</div>\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.html":
/*!******************************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.html ***!
\******************************************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppTlnEditionTlnViewerNavigationTlnViewerNavigationComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<div id=\"navi\">\n <toggle-navigation></toggle-navigation>\n <button *ngIf=\"!current_page || !manuscript_unity\" mat-icon-button disabled=\"true\"><mat-icon>first_page</mat-icon></button>\n <button *ngIf=\"current_page && manuscript_unity\"\n mat-icon-button [title]=\"getPageTitle(manuscript_unity.firstPage)\" (click)=\"setCurrentIri(manuscript_unity.firstPage.id)\" \n [disabled]=\"updating || manuscript_unity.firstPage.id == current_page.id\">\n <mat-icon>first_page</mat-icon>\n </button>\n <button *ngIf=\"!current_page || !manuscript_unity\" mat-icon-button disabled=\"true\"><mat-icon>chevron_left</mat-icon></button>\n <button *ngIf=\"current_page && manuscript_unity\" mat-icon-button [title]=\"getPageTitle(current_page.previous, manuscript_unity.numberOfPages)\" \n (click)=\"setCurrentIri(current_page.previous.id)\" [disabled]=\"updating || !current_page.previous\">\n <mat-icon>chevron_left</mat-icon>\n </button>\n <mat-form-field appearance=\"legacy\">\n <mat-select [(value)]=\"selectedViewOption\" (selectionChange)=\"updateParams()\">\n <mat-option *ngFor=\"let viewOption of viewOptions\" [value]=\"viewOption\">{{viewOption}}</mat-option>\n </mat-select>\n </mat-form-field>\n <zoom></zoom>\n <span class=\"mat-button min-width default-mouse\" *ngIf=\"!current_page\">Loading ...</span>\n <span class=\"mat-button min-width default-mouse\" *ngIf=\"geneticOrders.length == 0 && current_page\">{{current_page.title}} {{current_page.number}}</span>\n <button mat-button class=\"min-width\" title=\"Seiteninformationen\" (click)=\"showInformation()\" *ngIf=\"geneticOrders.length > 0 && current_page\">\n {{current_page.title}} {{current_page.number}}\n <mat-icon inline=\"true\">info</mat-icon>\n </button>\n <search></search>\n <button *ngIf=\"!current_page || !manuscript_unity\" mat-icon-button disabled=\"true\"><mat-icon>chevron_right</mat-icon></button>\n <button *ngIf=\"current_page && manuscript_unity\" mat-icon-button [title]=\"getPageTitle(current_page.next, manuscript_unity.numberOfPages)\" \n (click)=\"setCurrentIri(current_page.next.id)\" [disabled]=\"updating || !current_page.next\">\n <mat-icon>chevron_right</mat-icon>\n </button>\n <button *ngIf=\"!current_page || !manuscript_unity\" mat-icon-button disabled=\"true\"><mat-icon>last_page</mat-icon></button>\n <button *ngIf=\"manuscript_unity && current_page\" \n mat-icon-button [title]=\"getPageTitle(manuscript_unity.lastPage)\" (click)=\"setCurrentIri(manuscript_unity.lastPage.id)\" \n [disabled]=\"updating || manuscript_unity.lastPage.id == current_page.id\">\n <mat-icon>last_page</mat-icon>\n </button>\n</div>\n\n";
/***/
},
/***/
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tooltip/tool-tip.component.html":
/*!***************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tooltip/tool-tip.component.html ***!
\***************************************************************************************************/
/*! exports provided: default */
/***/
function node_modulesRawLoaderDistCjsJsSrcAppTlnEditionTooltipToolTipComponentHtml(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
__webpack_exports__["default"] = "<div #myElement *ngIf=\"useExtendedTooltip && tooltipPosition.visible && hasAnyContent()\"\n [ngClass]=\"[ 'tooltip', currentKey ]\" [style.top.px]=\"getTop(currentKey)\" [style.left.px]=\"getLeft(myElement.offsetWidth)\">\n <div *ngIf=\"word\">\n <div *ngIf=\"debug\">\n {{tooltipPosition.clientY+yOffset}}, {{topOffset}}\n <!--<div *ngFor=\"let markup of positionalStyleMarkups\">\n <div ><span>{{markup.startIndex}} </span><span>{{markup.endIndex}} </span><span>{{markup.cssStyleTag}}</span></div>\n </div>-->\n </div>\n <div class=\"earlier-version\" *ngIf=\"earlier_version\"><i>0:</i> {{earlier_version.text}}</div>\n <div class=\"text\" >\n <span *ngIf=\"earlier_version\"><i>1:</i>&nbsp;</span>\n <span *ngIf=\"!positionalStyleMarkups || positionalStyleMarkups.length == 0\" [ngClass]=\"{'deleted': word.deleted}\">{{word.text}}</span>\n <NgxMat-NgxMatStandoffMarkup *ngIf=\"positionalStyleMarkups && positionalStyleMarkups.length > 0\" \n [cssDef]=\"cssDef\" [markupSettings]=\"mySettings\"\n [textToStyle]=\"word.text\" [posStyleMarkup]=\"positionalStyleMarkups\"></NgxMat-NgxMatStandoffMarkup>\n </div>\n <span class=\"edited_text\" *ngIf=\"word.edited_text\">&gt;{{word.edited_text}}</span>\n <div class=\"overwritten\" *ngIf=\"overwrittenWord\"><i>&uuml;berschreibt: </i>{{overwrittenWord.text}}</div>\n </div>\n <div *ngIf=\"foreignHand\">\n {{foreignHand.text}}, <i>{{foreignHand.pen}}</i>\n </div>\n <!--<div *ngIf=\"copyright\" class=\"blackfg\" (click)=\"copyright = null\">\n <div [innerHTML]=\"copyright.text\"></div>\n <div *ngIf=\"copyright.originalUrl\">URL: <a target=\"_new\" [href]=\"copyright.originalUrl\">{{copyright.originalUrl}}</a></div>\n <div> Lizenz: \n <a *ngIf=\"copyright.licenseTextUrl\" target=\"_new\" [href]=\"copyright.licenseTextUrl\">{{copyright.license}} </a>\n <span *ngIf=\"!copyright.licenseTextUrl\">{{copyright.license}}</span>\n </div>\n </div>-->\n <div *ngIf=\"continuation\">\n <span *ngIf=\"continuation.show == 'to'\"><i>{{continuation.source.line.number}}</i>&nbsp;nach&nbsp;</span>\n <i>\n <span *ngIf=\"continuation.source.manuscript\">{{continuation.reference.manuscript.title}} </span>\n <span *ngIf=\"continuation.source.page\">{{continuation.reference.page.number}}, </span>\n {{continuation.reference.line.number}}\n </i>\n <span *ngIf=\"continuation.show != 'to'\">&nbsp;nach&nbsp;<i>{{continuation.source.line.number}}</i></span>\n </div>\n <div *ngIf=\"continuation && continuation_words.length > 0\">\n <span *ngIf=\"continuation.show == 'to'\">&rarr; </span>\n <span *ngFor=\"let word of continuation_words\">\n {{ (word.earlier_version) ? '[0:' + word.earlier_version + '|1:' : ''}}\n <NgxMat-NgxMatStandoffMarkup [cssDef]=\"cssDef\" [markupSettings]=\"mySettings\"\n [textToStyle]=\"word.text\" [posStyleMarkup]=\"word.markups\"></NgxMat-NgxMatStandoffMarkup>\n {{ (word.earlier_version) ? ']' : ''}}</span>\n <span *ngIf=\"continuation.show != 'to'\">&rarr; </span>\n </div>\n</div>\n";
/***/
},
/***/
"./node_modules/tslib/tslib.es6.js":
/*!*****************************************!*\
!*** ./node_modules/tslib/tslib.es6.js ***!
\*****************************************/
/*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __createBinding, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault, __classPrivateFieldGet, __classPrivateFieldSet */
/***/
function node_modulesTslibTslibEs6Js(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "__extends", function () {
return __extends;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "__assign", function () {
return _assign;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "__rest", function () {
return __rest;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "__decorate", function () {
return __decorate;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "__param", function () {
return __param;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "__metadata", function () {
return __metadata;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "__awaiter", function () {
return __awaiter;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "__generator", function () {
return __generator;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "__createBinding", function () {
return __createBinding;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "__exportStar", function () {
return __exportStar;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "__values", function () {
return __values;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "__read", function () {
return __read;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "__spread", function () {
return __spread;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "__spreadArrays", function () {
return __spreadArrays;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "__await", function () {
return __await;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "__asyncGenerator", function () {
return __asyncGenerator;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "__asyncDelegator", function () {
return __asyncDelegator;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "__asyncValues", function () {
return __asyncValues;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "__makeTemplateObject", function () {
return __makeTemplateObject;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "__importStar", function () {
return __importStar;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "__importDefault", function () {
return __importDefault;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "__classPrivateFieldGet", function () {
return __classPrivateFieldGet;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "__classPrivateFieldSet", function () {
return __classPrivateFieldSet;
});
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/* global Reflect, Promise */
var _extendStatics = function extendStatics(d, b) {
_extendStatics = Object.setPrototypeOf || {
__proto__: []
} instanceof Array && function (d, b) {
d.__proto__ = b;
} || function (d, b) {
for (var p in b) {
if (b.hasOwnProperty(p)) d[p] = b[p];
}
};
return _extendStatics(d, b);
};
function __extends(d, b) {
_extendStatics(d, b);
function __() {
this.constructor = d;
}
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
}
var _assign = function __assign() {
_assign = Object.assign || function __assign(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) {
if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
}
}
return t;
};
return _assign.apply(this, arguments);
};
function __rest(s, e) {
var t = {};
for (var p in s) {
if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
}
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
}
return t;
}
function __decorate(decorators, target, key, desc) {
var c = arguments.length,
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {
if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
}
return c > 3 && r && Object.defineProperty(target, key, r), r;
}
function __param(paramIndex, decorator) {
return function (target, key) {
decorator(target, key, paramIndex);
};
}
function __metadata(metadataKey, metadataValue) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
}
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) {
return value instanceof P ? value : new P(function (resolve) {
resolve(value);
});
}
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) {
try {
step(generator.next(value));
} catch (e) {
reject(e);
}
}
function rejected(value) {
try {
step(generator["throw"](value));
} catch (e) {
reject(e);
}
}
function step(result) {
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
}
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
}
function __generator(thisArg, body) {
var _ = {
label: 0,
sent: function sent() {
if (t[0] & 1) throw t[1];
return t[1];
},
trys: [],
ops: []
},
f,
y,
t,
g;
return g = {
next: verb(0),
"throw": verb(1),
"return": verb(2)
}, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
return this;
}), g;
function verb(n) {
return function (v) {
return step([n, v]);
};
}
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) {
try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0:
case 1:
t = op;
break;
case 4:
_.label++;
return {
value: op[1],
done: false
};
case 5:
_.label++;
y = op[1];
op = [0];
continue;
case 7:
op = _.ops.pop();
_.trys.pop();
continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
_ = 0;
continue;
}
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
_.label = op[1];
break;
}
if (op[0] === 6 && _.label < t[1]) {
_.label = t[1];
t = op;
break;
}
if (t && _.label < t[2]) {
_.label = t[2];
_.ops.push(op);
break;
}
if (t[2]) _.ops.pop();
_.trys.pop();
continue;
}
op = body.call(thisArg, _);
} catch (e) {
op = [6, e];
y = 0;
} finally {
f = t = 0;
}
}
if (op[0] & 5) throw op[1];
return {
value: op[0] ? op[1] : void 0,
done: true
};
}
}
function __createBinding(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}
function __exportStar(m, exports) {
for (var p in m) {
if (p !== "default" && !exports.hasOwnProperty(p)) exports[p] = m[p];
}
}
function __values(o) {
var s = typeof Symbol === "function" && Symbol.iterator,
m = s && o[s],
i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function next() {
if (o && i >= o.length) o = void 0;
return {
value: o && o[i++],
done: !o
};
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
}
function __read(o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o),
r,
ar = [],
e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {
ar.push(r.value);
}
} catch (error) {
e = {
error: error
};
} finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
} finally {
if (e) throw e.error;
}
}
return ar;
}
function __spread() {
for (var ar = [], i = 0; i < arguments.length; i++) {
ar = ar.concat(__read(arguments[i]));
}
return ar;
}
function __spreadArrays() {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) {
s += arguments[i].length;
}
for (var r = Array(s), k = 0, i = 0; i < il; i++) {
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {
r[k] = a[j];
}
}
return r;
}
;
function __await(v) {
return this instanceof __await ? (this.v = v, this) : new __await(v);
}
function __asyncGenerator(thisArg, _arguments, generator) {
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
var g = generator.apply(thisArg, _arguments || []),
i,
q = [];
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () {
return this;
}, i;
function verb(n) {
if (g[n]) i[n] = function (v) {
return new Promise(function (a, b) {
q.push([n, v, a, b]) > 1 || resume(n, v);
});
};
}
function resume(n, v) {
try {
step(g[n](v));
} catch (e) {
settle(q[0][3], e);
}
}
function step(r) {
r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
}
function fulfill(value) {
resume("next", value);
}
function reject(value) {
resume("throw", value);
}
function settle(f, v) {
if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);
}
}
function __asyncDelegator(o) {
var i, p;
return i = {}, verb("next"), verb("throw", function (e) {
throw e;
}), verb("return"), i[Symbol.iterator] = function () {
return this;
}, i;
function verb(n, f) {
i[n] = o[n] ? function (v) {
return (p = !p) ? {
value: __await(o[n](v)),
done: n === "return"
} : f ? f(v) : v;
} : f;
}
}
function __asyncValues(o) {
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
var m = o[Symbol.asyncIterator],
i;
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () {
return this;
}, i);
function verb(n) {
i[n] = o[n] && function (v) {
return new Promise(function (resolve, reject) {
v = o[n](v), settle(resolve, reject, v.done, v.value);
});
};
}
function settle(resolve, reject, d, v) {
Promise.resolve(v).then(function (v) {
resolve({
value: v,
done: d
});
}, reject);
}
}
function __makeTemplateObject(cooked, raw) {
if (Object.defineProperty) {
Object.defineProperty(cooked, "raw", {
value: raw
});
} else {
cooked.raw = raw;
}
return cooked;
}
;
function __importStar(mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) {
if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
}
result["default"] = mod;
return result;
}
function __importDefault(mod) {
return mod && mod.__esModule ? mod : {
"default": mod
};
}
function __classPrivateFieldGet(receiver, privateMap) {
if (!privateMap.has(receiver)) {
throw new TypeError("attempted to get private field on non-instance");
}
return privateMap.get(receiver);
}
function __classPrivateFieldSet(receiver, privateMap, value) {
if (!privateMap.has(receiver)) {
throw new TypeError("attempted to set private field on non-instance");
}
privateMap.set(receiver, value);
return value;
}
/***/
},
/***/
"./package.json":
/*!**********************!*\
!*** ./package.json ***!
\**********************/
/*! exports provided: name, version, scripts, private, dependencies, devDependencies, default */
/***/
function packageJson(module) {
- module.exports = JSON.parse("{\"name\":\"nietzsche-app-beta\",\"version\":\"0.4.1.2\",\"scripts\":{\"ng\":\"ng\",\"start\":\"ng serve\",\"build\":\"ng build\",\"test\":\"ng test\",\"lint\":\"ng lint\",\"e2e\":\"ng e2e\",\"compodoc\":\"./node_modules/.bin/compodoc -p tsconfig.app.json\",\"sparqljs\":\"./node_modules/sparqljs/sparql.js\"},\"private\":true,\"dependencies\":{\"@angular/animations\":\"~8.2.14\",\"@angular/cdk\":\"~8.2.3\",\"@angular/common\":\"~8.2.14\",\"@angular/compiler\":\"~8.2.14\",\"@angular/core\":\"~8.2.14\",\"@angular/forms\":\"~8.2.14\",\"@angular/material\":\"^8.2.3\",\"@angular/platform-browser\":\"~8.2.14\",\"@angular/platform-browser-dynamic\":\"~8.2.14\",\"@angular/router\":\"~8.2.14\",\"@types/rdf-js\":\"^2.0.11\",\"lodash\":\"^4.17.20\",\"rdfjs\":\"^0.0.1\",\"rxjs\":\"~6.4.0\",\"sparqljs\":\"^3.0.1\",\"tslib\":\"^1.10.0\",\"zone.js\":\"~0.9.1\"},\"devDependencies\":{\"@angular-devkit/build-angular\":\"^0.803.25\",\"@angular/cli\":\"~8.3.24\",\"@angular/compiler-cli\":\"~8.2.14\",\"@angular/language-service\":\"~8.2.14\",\"@types/jasmine\":\"~3.3.8\",\"@types/jasminewd2\":\"~2.0.3\",\"@types/node\":\"~8.9.4\",\"codelyzer\":\"^5.0.0\",\"jasmine-core\":\"~3.4.0\",\"jasmine-spec-reporter\":\"~4.2.1\",\"karma\":\"~4.1.0\",\"karma-chrome-launcher\":\"~2.2.0\",\"karma-coverage-istanbul-reporter\":\"~2.0.1\",\"karma-jasmine\":\"~2.0.1\",\"karma-jasmine-html-reporter\":\"^1.4.0\",\"protractor\":\"~5.4.0\",\"ts-node\":\"~7.0.0\",\"tslint\":\"~5.15.0\",\"typescript\":\"~3.5.3\"}}");
+ module.exports = JSON.parse("{\"name\":\"nietzsche-app-beta\",\"version\":\"0.4.1.3\",\"scripts\":{\"ng\":\"ng\",\"start\":\"ng serve\",\"build\":\"ng build\",\"test\":\"ng test\",\"lint\":\"ng lint\",\"e2e\":\"ng e2e\",\"compodoc\":\"./node_modules/.bin/compodoc -p tsconfig.app.json\",\"sparqljs\":\"./node_modules/sparqljs/sparql.js\"},\"private\":true,\"dependencies\":{\"@angular/animations\":\"~8.2.14\",\"@angular/cdk\":\"~8.2.3\",\"@angular/common\":\"~8.2.14\",\"@angular/compiler\":\"~8.2.14\",\"@angular/core\":\"~8.2.14\",\"@angular/forms\":\"~8.2.14\",\"@angular/material\":\"^8.2.3\",\"@angular/platform-browser\":\"~8.2.14\",\"@angular/platform-browser-dynamic\":\"~8.2.14\",\"@angular/router\":\"~8.2.14\",\"@types/rdf-js\":\"^2.0.11\",\"lodash\":\"^4.17.20\",\"rdfjs\":\"^0.0.1\",\"rxjs\":\"~6.4.0\",\"sparqljs\":\"^3.0.1\",\"tslib\":\"^1.10.0\",\"zone.js\":\"~0.9.1\"},\"devDependencies\":{\"@angular-devkit/build-angular\":\"^0.803.25\",\"@angular/cli\":\"~8.3.24\",\"@angular/compiler-cli\":\"~8.2.14\",\"@angular/language-service\":\"~8.2.14\",\"@types/jasmine\":\"~3.3.8\",\"@types/jasminewd2\":\"~2.0.3\",\"@types/node\":\"~8.9.4\",\"codelyzer\":\"^5.0.0\",\"jasmine-core\":\"~3.4.0\",\"jasmine-spec-reporter\":\"~4.2.1\",\"karma\":\"~4.1.0\",\"karma-chrome-launcher\":\"~2.2.0\",\"karma-coverage-istanbul-reporter\":\"~2.0.1\",\"karma-jasmine\":\"~2.0.1\",\"karma-jasmine-html-reporter\":\"^1.4.0\",\"protractor\":\"~5.4.0\",\"ts-node\":\"~7.0.0\",\"tslint\":\"~5.15.0\",\"typescript\":\"~3.5.3\"}}");
/***/
},
/***/
"./src/app/app.component.css":
/*!***********************************!*\
!*** ./src/app/app.component.css ***!
\***********************************/
/*! exports provided: default */
/***/
function srcAppAppComponentCss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = "\nbody {\n padding-right: 50px;\n}\n\n.rect, .rect.unhovered {\n opacity:0.0;\n}\n\n.rect:hover, .rect.hovered {\n opacity:0.34000017;\n fill:#e2fa00;\n fill-opacity:0.98431373\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9hcHAuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7R0FDRyxtQkFBbUI7QUFDdEI7O0FBRUE7RUFDRSxXQUFXO0FBQ2I7O0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsWUFBWTtFQUNaO0FBQ0YiLCJmaWxlIjoiYXBwL2FwcC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXG5ib2R5IHtcbiAgIHBhZGRpbmctcmlnaHQ6IDUwcHg7XG59XG5cbi5yZWN0LCAucmVjdC51bmhvdmVyZWQge1xuICBvcGFjaXR5OjAuMDtcbn1cbi5yZWN0OmhvdmVyLCAucmVjdC5ob3ZlcmVkIHtcbiAgb3BhY2l0eTowLjM0MDAwMDE3O1xuICBmaWxsOiNlMmZhMDA7XG4gIGZpbGwtb3BhY2l0eTowLjk4NDMxMzczXG59XG4iXX0= */";
+ __webpack_exports__["default"] = "\nbody {\n padding-right: 50px;\n}\n\n.rect, .rect.unhovered {\n opacity:0.0;\n}\n\n.rect:hover, .rect.hovered {\n opacity:0.34000017;\n fill:#e2fa00;\n fill-opacity:0.98431373\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtHQUNHLG1CQUFtQjtBQUN0Qjs7QUFFQTtFQUNFLFdBQVc7QUFDYjs7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixZQUFZO0VBQ1o7QUFDRiIsImZpbGUiOiJhcHAuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxuYm9keSB7XG4gICBwYWRkaW5nLXJpZ2h0OiA1MHB4O1xufVxuXG4ucmVjdCwgLnJlY3QudW5ob3ZlcmVkIHtcbiAgb3BhY2l0eTowLjA7XG59XG4ucmVjdDpob3ZlciwgLnJlY3QuaG92ZXJlZCB7XG4gIG9wYWNpdHk6MC4zNDAwMDAxNztcbiAgZmlsbDojZTJmYTAwO1xuICBmaWxsLW9wYWNpdHk6MC45ODQzMTM3M1xufVxuIl19 */";
/***/
},
/***/
"./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 tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @angular/cdk/overlay */
"./node_modules/@angular/cdk/esm2015/overlay.js");
/* harmony import */
var _angular_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! @angular/router */
"./node_modules/@angular/router/fesm2015/router.js");
var AppComponent = /*#__PURE__*/function () {
function AppComponent(overlayContainer, activatedRoute) {
_classCallCheck(this, AppComponent);
this.overlayContainer = overlayContainer;
this.activatedRoute = activatedRoute;
this.title = 'Digitale Manuskriptedition: Der späte Nietzsche';
this.theme = 'standard-theme';
this.version = __webpack_require__(
/*! ../../package.json */
"./package.json").version;
}
_createClass(AppComponent, [{
key: "ngOnInit",
value: function ngOnInit() {
var _this = this;
this.overlayContainer.getContainerElement().classList.add(this.theme);
this.queryParamSub = this.activatedRoute.queryParams.subscribe(function (queryParams) {
_this.fullScreen = queryParams.fullscreen;
});
}
}, {
key: "onThemeChange",
value: function onThemeChange() {
this.overlayContainer.getContainerElement().classList.add(this.theme);
}
}]);
return AppComponent;
}();
AppComponent.ctorParameters = function () {
return [{
type: _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_2__["OverlayContainer"]
}, {
type: _angular_router__WEBPACK_IMPORTED_MODULE_3__["ActivatedRoute"]
}];
};
AppComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-root',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./app.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/app.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./app.component.css */
"./src/app/app.component.css"))["default"]]
})], AppComponent);
/***/
},
/***/
"./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 tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _app_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! ./app.component */
"./src/app/app.component.ts");
/* harmony import */
var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @angular/platform-browser */
"./node_modules/@angular/platform-browser/fesm2015/platform-browser.js");
/* harmony import */
var _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! @angular/platform-browser/animations */
"./node_modules/@angular/platform-browser/fesm2015/animations.js");
/* harmony import */
var _angular_forms__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! @angular/forms */
"./node_modules/@angular/forms/fesm2015/forms.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _angular_material_card__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
/*! @angular/material/card */
"./node_modules/@angular/material/esm2015/card.js");
/* harmony import */
var _angular_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(
/*! @angular/material */
"./node_modules/@angular/material/esm2015/material.js");
/* harmony import */
var _angular_material_expansion__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(
/*! @angular/material/expansion */
"./node_modules/@angular/material/esm2015/expansion.js");
/* harmony import */
var _angular_material_icon__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(
/*! @angular/material/icon */
"./node_modules/@angular/material/esm2015/icon.js");
/* harmony import */
var _angular_material_list__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(
/*! @angular/material/list */
"./node_modules/@angular/material/esm2015/list.js");
/* harmony import */
var _angular_material_menu__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(
/*! @angular/material/menu */
"./node_modules/@angular/material/esm2015/menu.js");
/* harmony import */
var _angular_material_select__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(
/*! @angular/material/select */
"./node_modules/@angular/material/esm2015/select.js");
/* harmony import */
var _angular_material_tabs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(
/*! @angular/material/tabs */
"./node_modules/@angular/material/esm2015/tabs.js");
/* harmony import */
var _angular_common__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(
/*! @angular/common */
"./node_modules/@angular/common/fesm2015/common.js");
/* harmony import */
var _angular_common_http__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(
/*! @angular/common/http */
"./node_modules/@angular/common/fesm2015/http.js");
/* harmony import */
var _services_query_service__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(
/*! ./services/query.service */
"./src/app/services/query.service.ts");
/* harmony import */
var _app_routing__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(
/*! ./app.routing */
"./src/app/app.routing.ts");
/* harmony import */
var _home_component__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(
/*! ./home.component */
"./src/app/home.component.ts");
/* harmony import */
var _manuscript_view_component_manuscript_view_component_component__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(
/*! ./manuscript-view-component/manuscript-view-component.component */
"./src/app/manuscript-view-component/manuscript-view-component.component.ts");
/* harmony import */
var _content_view_tab_component_content_view_tab_component_component__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(
/*! ./content-view-tab-component/content-view-tab-component.component */
"./src/app/content-view-tab-component/content-view-tab-component.component.ts");
/* harmony import */
var _rhizome_view_component_rhizome_view_component_component__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(
/*! ./rhizome-view-component/rhizome-view-component.component */
"./src/app/rhizome-view-component/rhizome-view-component.component.ts");
/* harmony import */
var _main_menu_component_main_menu_component_component__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(
/*! ./main-menu-component/main-menu-component.component */
"./src/app/main-menu-component/main-menu-component.component.ts");
/* harmony import */
var _page_view_wrapper_component_page_view_wrapper_component__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(
/*! ./page-view-wrapper-component/page-view-wrapper.component */
"./src/app/page-view-wrapper-component/page-view-wrapper.component.ts");
/* harmony import */
var _navigation_list_component_navigation_list_component_component__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(
/*! ./navigation-list-component/navigation-list-component.component */
"./src/app/navigation-list-component/navigation-list-component.component.ts");
/* harmony import */
var _services_navigation_service_service__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(
/*! ./services/navigation-service.service */
"./src/app/services/navigation-service.service.ts");
/* harmony import */
var _tln_edition_tln_edition_module__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(
/*! ./tln-edition/tln-edition.module */
"./src/app/tln-edition/tln-edition.module.ts");
/* harmony import */
var _navigation_list_component_navtree_directive_directive__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(
/*! ./navigation-list-component/navtree-directive.directive */
"./src/app/navigation-list-component/navtree-directive.directive.ts");
/* harmony import */
var _content_view_tab_component_lazy_image_load_directive_directive__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(
/*! ./content-view-tab-component/lazy-image-load-directive.directive */
"./src/app/content-view-tab-component/lazy-image-load-directive.directive.ts");
/* harmony import */
var _impressum_component__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(
/*! ./impressum.component */
"./src/app/impressum.component.ts");
/* harmony import */
var _project_component__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(
/*! ./project.component */
"./src/app/project.component.ts");
var AppModule = function AppModule() {
_classCallCheck(this, AppModule);
};
AppModule = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_5__["NgModule"])({
declarations: [_app_component__WEBPACK_IMPORTED_MODULE_1__["AppComponent"], _home_component__WEBPACK_IMPORTED_MODULE_18__["HomeComponent"], _manuscript_view_component_manuscript_view_component_component__WEBPACK_IMPORTED_MODULE_19__["ManuscriptViewComponentComponent"], _content_view_tab_component_content_view_tab_component_component__WEBPACK_IMPORTED_MODULE_20__["ContentViewTabComponentComponent"], _rhizome_view_component_rhizome_view_component_component__WEBPACK_IMPORTED_MODULE_21__["RhizomeViewComponentComponent"], _main_menu_component_main_menu_component_component__WEBPACK_IMPORTED_MODULE_22__["MainMenuComponentComponent"], _page_view_wrapper_component_page_view_wrapper_component__WEBPACK_IMPORTED_MODULE_23__["PageViewWrapperComponent"], _navigation_list_component_navigation_list_component_component__WEBPACK_IMPORTED_MODULE_24__["NavigationListComponentComponent"], _navigation_list_component_navtree_directive_directive__WEBPACK_IMPORTED_MODULE_27__["NavTree"], _content_view_tab_component_lazy_image_load_directive_directive__WEBPACK_IMPORTED_MODULE_28__["LazyImageLoadDirectiveDirective"], _impressum_component__WEBPACK_IMPORTED_MODULE_29__["ImpressumComponent"], _project_component__WEBPACK_IMPORTED_MODULE_30__["ProjectComponent"]],
imports: [_app_routing__WEBPACK_IMPORTED_MODULE_17__["routing"], _angular_platform_browser__WEBPACK_IMPORTED_MODULE_2__["BrowserModule"], _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_3__["BrowserAnimationsModule"], _angular_common__WEBPACK_IMPORTED_MODULE_14__["CommonModule"], _angular_common_http__WEBPACK_IMPORTED_MODULE_15__["HttpClientModule"], _angular_material__WEBPACK_IMPORTED_MODULE_7__["MatButtonModule"], _angular_material_card__WEBPACK_IMPORTED_MODULE_6__["MatCardModule"], _angular_material_expansion__WEBPACK_IMPORTED_MODULE_8__["MatExpansionModule"], _angular_material_icon__WEBPACK_IMPORTED_MODULE_9__["MatIconModule"], _angular_material_list__WEBPACK_IMPORTED_MODULE_10__["MatListModule"], _angular_material_menu__WEBPACK_IMPORTED_MODULE_11__["MatMenuModule"], _angular_material_select__WEBPACK_IMPORTED_MODULE_12__["MatSelectModule"], _angular_material__WEBPACK_IMPORTED_MODULE_7__["MatSidenavModule"], _angular_material_tabs__WEBPACK_IMPORTED_MODULE_13__["MatTabsModule"], _angular_material__WEBPACK_IMPORTED_MODULE_7__["MatToolbarModule"], _angular_forms__WEBPACK_IMPORTED_MODULE_4__["FormsModule"], _tln_edition_tln_edition_module__WEBPACK_IMPORTED_MODULE_26__["TlnEditionModule"], _angular_forms__WEBPACK_IMPORTED_MODULE_4__["ReactiveFormsModule"]],
providers: [_services_navigation_service_service__WEBPACK_IMPORTED_MODULE_25__["NavigationServiceService"], _services_query_service__WEBPACK_IMPORTED_MODULE_16__["QueryService"]],
bootstrap: [_app_component__WEBPACK_IMPORTED_MODULE_1__["AppComponent"]]
})], AppModule);
/***/
},
/***/
"./src/app/app.routing.ts":
/*!********************************!*\
!*** ./src/app/app.routing.ts ***!
\********************************/
/*! exports provided: routing */
/***/
function srcAppAppRoutingTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "routing", function () {
return routing;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/router */
"./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */
var _home_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! ./home.component */
"./src/app/home.component.ts");
/* harmony import */
var _impressum_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ./impressum.component */
"./src/app/impressum.component.ts");
/* harmony import */
var _project_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! ./project.component */
"./src/app/project.component.ts");
/* harmony import */
var _content_view_tab_component_content_view_tab_component_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
/*! ./content-view-tab-component/content-view-tab-component.component */
"./src/app/content-view-tab-component/content-view-tab-component.component.ts");
/* harmony import */
var _content_view_tab_component_content_view_routes__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
/*! ./content-view-tab-component/content-view-routes */
"./src/app/content-view-tab-component/content-view-routes.ts");
/* harmony import */
var _constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(
/*! ./constants */
"./src/app/constants.ts");
var APP_ROUTES = [{
path: '',
redirectTo: _constants__WEBPACK_IMPORTED_MODULE_7__["HOME_ROUTE"],
pathMatch: 'prefix'
}, {
path: _constants__WEBPACK_IMPORTED_MODULE_7__["HOME_ROUTE"],
component: _home_component__WEBPACK_IMPORTED_MODULE_2__["HomeComponent"]
}, {
path: _constants__WEBPACK_IMPORTED_MODULE_7__["CONTENT_VIEW_ROUTE"],
component: _content_view_tab_component_content_view_tab_component_component__WEBPACK_IMPORTED_MODULE_5__["ContentViewTabComponentComponent"],
children: _content_view_tab_component_content_view_routes__WEBPACK_IMPORTED_MODULE_6__["CONTENT_ROUTES"]
}, {
path: _constants__WEBPACK_IMPORTED_MODULE_7__["PROJECT_ROUTE"],
component: _project_component__WEBPACK_IMPORTED_MODULE_4__["ProjectComponent"]
}, {
path: _constants__WEBPACK_IMPORTED_MODULE_7__["IMPRESSUM_ROUTE"],
component: _impressum_component__WEBPACK_IMPORTED_MODULE_3__["ImpressumComponent"]
}, {
path: '**',
redirectTo: _constants__WEBPACK_IMPORTED_MODULE_7__["HOME_ROUTE"],
pathMatch: 'prefix'
} // any other unknown url will be forwarded to home
];
var routing = _angular_router__WEBPACK_IMPORTED_MODULE_1__["RouterModule"].forRoot(APP_ROUTES);
/***/
},
/***/
"./src/app/constants.ts":
/*!******************************!*\
!*** ./src/app/constants.ts ***!
\******************************/
/*! exports provided: CONTENT_VIEW_ROUTE, DOCUMENTATION_ROUTE, HOME_ROUTE, IMPRESSUM_ROUTE, PROJECT_ROUTE */
/***/
function srcAppConstantsTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "CONTENT_VIEW_ROUTE", function () {
return CONTENT_VIEW_ROUTE;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "DOCUMENTATION_ROUTE", function () {
return DOCUMENTATION_ROUTE;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "HOME_ROUTE", function () {
return HOME_ROUTE;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "IMPRESSUM_ROUTE", function () {
return IMPRESSUM_ROUTE;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "PROJECT_ROUTE", function () {
return PROJECT_ROUTE;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
var CONTENT_VIEW_ROUTE = 'contentView';
var DOCUMENTATION_ROUTE = 'doku';
var HOME_ROUTE = 'home';
var IMPRESSUM_ROUTE = 'impressum';
var PROJECT_ROUTE = 'project';
/***/
},
/***/
"./src/app/content-view-tab-component/content-view-routes.ts":
/*!*******************************************************************!*\
!*** ./src/app/content-view-tab-component/content-view-routes.ts ***!
\*******************************************************************/
/*! exports provided: CONTENT_ROUTES */
/***/
function srcAppContentViewTabComponentContentViewRoutesTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "CONTENT_ROUTES", function () {
return CONTENT_ROUTES;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _manuscript_view_component_manuscript_view_component_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! ../manuscript-view-component/manuscript-view-component.component */
"./src/app/manuscript-view-component/manuscript-view-component.component.ts");
/* harmony import */
var _rhizome_view_component_rhizome_view_component_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! ../rhizome-view-component/rhizome-view-component.component */
"./src/app/rhizome-view-component/rhizome-view-component.component.ts");
/* harmony import */
var _page_view_wrapper_component_page_view_wrapper_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ../page-view-wrapper-component/page-view-wrapper.component */
"./src/app/page-view-wrapper-component/page-view-wrapper.component.ts");
/* harmony import */
var _tln_edition_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! ../tln-edition/constants */
"./src/app/tln-edition/constants.ts");
/* harmony import */
var _tln_edition_tln_fulltext_tln_fulltext_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
/*! ../tln-edition/tln-fulltext/tln-fulltext.component */
"./src/app/tln-edition/tln-fulltext/tln-fulltext.component.ts");
var CONTENT_ROUTES = [{
path: _tln_edition_constants__WEBPACK_IMPORTED_MODULE_4__["TLN_MANUSCRIPT_ROUTE"],
component: _manuscript_view_component_manuscript_view_component_component__WEBPACK_IMPORTED_MODULE_1__["ManuscriptViewComponentComponent"]
}, {
path: _tln_edition_constants__WEBPACK_IMPORTED_MODULE_4__["TLN_VIEWER_ROUTE"],
component: _page_view_wrapper_component_page_view_wrapper_component__WEBPACK_IMPORTED_MODULE_3__["PageViewWrapperComponent"]
}, {
path: _tln_edition_constants__WEBPACK_IMPORTED_MODULE_4__["TLN_CROSSREF_ROUTE"],
component: _rhizome_view_component_rhizome_view_component_component__WEBPACK_IMPORTED_MODULE_2__["RhizomeViewComponentComponent"]
}, {
path: _tln_edition_constants__WEBPACK_IMPORTED_MODULE_4__["TLN_SEARCH_ROUTE"],
component: _tln_edition_tln_fulltext_tln_fulltext_component__WEBPACK_IMPORTED_MODULE_5__["TlnFulltextComponent"]
}, {
path: '',
redirectTo: _tln_edition_constants__WEBPACK_IMPORTED_MODULE_4__["TLN_MANUSCRIPT_ROUTE"],
pathMatch: 'prefix'
}];
/***/
},
/***/
"./src/app/content-view-tab-component/content-view-tab-component.component.scss":
/*!**************************************************************************************!*\
!*** ./src/app/content-view-tab-component/content-view-tab-component.component.scss ***!
\**************************************************************************************/
/*! exports provided: default */
/***/
function srcAppContentViewTabComponentContentViewTabComponentComponentScss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = ".mat-drawer-container {\n width: 100%;\n}\n\n.mat-drawer {\n overflow: hidden;\n padding: 10px;\n margin-right: 10px;\n max-height: 100%;\n min-height: 90%;\n}\n\n.mat-card {\n width: 100%;\n}\n\n.mat-drawer-content {\n min-height: 100vh;\n width: 100%;\n height: 100%;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL2NvbnRlbnQtdmlldy10YWItY29tcG9uZW50L2NvbnRlbnQtdmlldy10YWItY29tcG9uZW50LmNvbXBvbmVudC5zY3NzIiwiYXBwL2NvbnRlbnQtdmlldy10YWItY29tcG9uZW50L2NvbnRlbnQtdmlldy10YWItY29tcG9uZW50LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0VBQ0UsV0FBQTtBQ0FGOztBREdBO0VBQ0UsZ0JBQUE7RUFDQSxhQUFBO0VBQ0Esa0JBQUE7RUFFQSxnQkFBQTtFQUNBLGVBQUE7QUNERjs7QURJQTtFQUNFLFdBQUE7QUNERjs7QURJQTtFQUNFLGlCQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7QUNERiIsImZpbGUiOiJhcHAvY29udGVudC12aWV3LXRhYi1jb21wb25lbnQvY29udGVudC12aWV3LXRhYi1jb21wb25lbnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0aGUgbmF2aWdhdGlvbiBkcmF3ZXIgb24gdGhlIHZlcnkgbGVmdCBjb250YWluaW5nIHRoZSBpdGVtcyB0byBjaG9vc2UgZnJvbVxuLm1hdC1kcmF3ZXItY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5tYXQtZHJhd2VyIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMTBweDtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuXG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDkwJTtcbn1cblxuLm1hdC1jYXJkIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5tYXQtZHJhd2VyLWNvbnRlbnQge1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbiIsIi5tYXQtZHJhd2VyLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubWF0LWRyYXdlciB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogOTAlO1xufVxuXG4ubWF0LWNhcmQge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLm1hdC1kcmF3ZXItY29udGVudCB7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufSJdfQ== */";
+ __webpack_exports__["default"] = ".mat-drawer-container {\n width: 100%;\n}\n\n.mat-drawer {\n overflow: hidden;\n padding: 10px;\n margin-right: 10px;\n max-height: 100%;\n min-height: 90%;\n}\n\n.mat-card {\n width: 100%;\n}\n\n.mat-drawer-content {\n min-height: 100vh;\n width: 100%;\n height: 100%;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL2NvbnRlbnQtdmlldy10YWItY29tcG9uZW50L2NvbnRlbnQtdmlldy10YWItY29tcG9uZW50LmNvbXBvbmVudC5zY3NzIiwiY29udGVudC12aWV3LXRhYi1jb21wb25lbnQvY29udGVudC12aWV3LXRhYi1jb21wb25lbnQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDRSxXQUFBO0FDQUY7O0FER0E7RUFDRSxnQkFBQTtFQUNBLGFBQUE7RUFDQSxrQkFBQTtFQUVBLGdCQUFBO0VBQ0EsZUFBQTtBQ0RGOztBRElBO0VBQ0UsV0FBQTtBQ0RGOztBRElBO0VBQ0UsaUJBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtBQ0RGIiwiZmlsZSI6ImNvbnRlbnQtdmlldy10YWItY29tcG9uZW50L2NvbnRlbnQtdmlldy10YWItY29tcG9uZW50LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdGhlIG5hdmlnYXRpb24gZHJhd2VyIG9uIHRoZSB2ZXJ5IGxlZnQgY29udGFpbmluZyB0aGUgaXRlbXMgdG8gY2hvb3NlIGZyb21cbi5tYXQtZHJhd2VyLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubWF0LWRyYXdlciB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcblxuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiA5MCU7XG59XG5cbi5tYXQtY2FyZCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubWF0LWRyYXdlci1jb250ZW50IHtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4iLCIubWF0LWRyYXdlci1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLm1hdC1kcmF3ZXIge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAxMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDkwJTtcbn1cblxuLm1hdC1jYXJkIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5tYXQtZHJhd2VyLWNvbnRlbnQge1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn0iXX0= */";
/***/
},
/***/
"./src/app/content-view-tab-component/content-view-tab-component.component.ts":
/*!************************************************************************************!*\
!*** ./src/app/content-view-tab-component/content-view-tab-component.component.ts ***!
\************************************************************************************/
/*! exports provided: ContentViewTabComponentComponent */
/***/
function srcAppContentViewTabComponentContentViewTabComponentComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "ContentViewTabComponentComponent", function () {
return ContentViewTabComponentComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @angular/router */
"./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */
var _services_navigation_service_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ../services/navigation-service.service */
"./src/app/services/navigation-service.service.ts");
/* harmony import */
var _tln_edition_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! ../tln-edition/constants */
"./src/app/tln-edition/constants.ts");
var ContentViewTabComponentComponent = /*#__PURE__*/function () {
function ContentViewTabComponentComponent(router, activatedRoute, naviService) {
var _this2 = this;
_classCallCheck(this, ContentViewTabComponentComponent);
this.router = router;
this.activatedRoute = activatedRoute;
this.naviService = naviService; // navbar on th left for navigating
this.navBarOpenState = false;
this.fullscreen = false;
this.queryParams = {}; // The links/tabs for routing the correct view-component
this.navTabLinks = [{
label: 'Manuskriptansicht',
link: _tln_edition_constants__WEBPACK_IMPORTED_MODULE_4__["TLN_MANUSCRIPT_ROUTE"],
index: 0,
isActive: false,
context: 'manuscript'
}, {
label: 'Seitenansicht',
link: _tln_edition_constants__WEBPACK_IMPORTED_MODULE_4__["TLN_VIEWER_ROUTE"],
index: 1,
isActive: false,
context: 'page'
}, {
label: 'Querverweise',
link: _tln_edition_constants__WEBPACK_IMPORTED_MODULE_4__["TLN_CROSSREF_ROUTE"],
index: 2,
isActive: false
}, {
label: 'Suche',
link: _tln_edition_constants__WEBPACK_IMPORTED_MODULE_4__["TLN_SEARCH_ROUTE"],
index: 3,
isActive: false
}];
this.queryParamSubscription = this.activatedRoute.queryParams.subscribe(function (queryParams) {
_this2.queryParams = queryParams;
if (queryParams.navBarOpenState) {
_this2.navBarOpenState = JSON.parse(queryParams.navBarOpenState.toLowerCase());
}
if (queryParams.fullscreen) {
_this2.fullscreen = JSON.parse(queryParams.fullscreen.toLowerCase());
}
});
}
_createClass(ContentViewTabComponentComponent, [{
key: "ngOnInit",
value: function ngOnInit() {
// this.mesurePerformance();
this.navBarOpenMode = 'side'; // side || over || push
this.setParamsOnInit(); // If url pasted or page refreshed --> resetting this.queryparams to the query params of the url;
// needed for active routing in the nav tabs & for general use in the template
} // Sets the isActive prop of a navTabLink to true and all others to false .
}, {
key: "setActiveLink",
value: function setActiveLink(link) {
var _this3 = this;
this.navTabLinks.forEach(function (navTabLink, index) {
if (navTabLink.link === link) {
_this3.navTabLinks[index].isActive = true;
if (navTabLink.context) {
window.setTimeout(function () {
return _this3.naviService.updateRoute({
navContext: navTabLink.context
});
}, 300);
}
} else {
_this3.navTabLinks[index].isActive = false;
}
});
}
}, {
key: "mesurePerformance",
value: function mesurePerformance() {
var perfData = window.performance.timing;
var pageLoadTime = perfData.loadEventEnd - perfData.navigationStart;
console.log('content load performance is: ', pageLoadTime);
}
}, {
key: "setParamsOnInit",
value: function setParamsOnInit() {
var qParams = {}; // Set the NavBarOpenstate to true if it is not defined explicitely as false in the url query param onInit.
if (this.activatedRoute.snapshot.queryParamMap.get('navBarOpenState') !== 'false') {
qParams.navBarOpenState = 'true';
} // viewMode
if (!this.activatedRoute.snapshot.queryParamMap.get('viewMode')) {
qParams.viewMode = 'Transkription/Faksimile';
}
if (!this.activatedRoute.snapshot.queryParamMap.get('navContext')) {
qParams.navContext = 'manuscript';
this.setActiveLink('tln-manuscript');
} else {
if (this.activatedRoute.snapshot.queryParamMap.get('navContext') === 'manuscript') {
this.setActiveLink('tln-manuscript');
} else {
this.setActiveLink('tln-viewer');
}
}
this.naviService.updateRoute(qParams);
}
}]);
return ContentViewTabComponentComponent;
}();
ContentViewTabComponentComponent.ctorParameters = function () {
return [{
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"]
}, {
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"]
}, {
type: _services_navigation_service_service__WEBPACK_IMPORTED_MODULE_3__["NavigationServiceService"]
}];
};
ContentViewTabComponentComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-content-view-tab-component',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./content-view-tab-component.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/content-view-tab-component/content-view-tab-component.component.html"))["default"],
providers: [_services_navigation_service_service__WEBPACK_IMPORTED_MODULE_3__["NavigationServiceService"]],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./content-view-tab-component.component.scss */
"./src/app/content-view-tab-component/content-view-tab-component.component.scss"))["default"]]
})], ContentViewTabComponentComponent);
/***/
},
/***/
"./src/app/content-view-tab-component/lazy-image-load-directive.directive.ts":
/*!***********************************************************************************!*\
!*** ./src/app/content-view-tab-component/lazy-image-load-directive.directive.ts ***!
\***********************************************************************************/
/*! exports provided: LazyImageLoadDirectiveDirective */
/***/
function srcAppContentViewTabComponentLazyImageLoadDirectiveDirectiveTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "LazyImageLoadDirectiveDirective", function () {
return LazyImageLoadDirectiveDirective;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
var LazyImageLoadDirectiveDirective = function LazyImageLoadDirectiveDirective(_ref) {
var nativeElement = _ref.nativeElement;
_classCallCheck(this, LazyImageLoadDirectiveDirective);
var supports = ('loading' in HTMLImageElement.prototype);
if (supports) {
nativeElement.setAttribute('loading', 'lazy');
}
};
LazyImageLoadDirectiveDirective.ctorParameters = function () {
return [{
type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ElementRef"]
}];
};
LazyImageLoadDirectiveDirective = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Directive"])({
selector: 'img'
})], LazyImageLoadDirectiveDirective); // IF NOT SUPPORTED IN CHROME: Open chrome://flags in Chromium or Chrome Canary.
// Search for lazy.
// Enable both the “Enable lazy image loading” and the “Enable lazy frame loading” flag.
// Restart the browser with the button in the lower right corner of the screen.
/***/
},
/***/
"./src/app/home.component.css":
/*!************************************!*\
!*** ./src/app/home.component.css ***!
\************************************/
/*! exports provided: default */
/***/
function srcAppHomeComponentCss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = ".skip {\n margin-top: 20px;\n}\n.second{\n margin-left: 10px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9ob21lLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxnQkFBZ0I7QUFDbkI7QUFDQTtHQUNHLGlCQUFpQjtBQUNwQiIsImZpbGUiOiJhcHAvaG9tZS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnNraXAge1xuICAgbWFyZ2luLXRvcDogMjBweDtcbn1cbi5zZWNvbmR7XG4gICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbiJdfQ== */";
+ __webpack_exports__["default"] = ".skip {\n margin-top: 20px;\n}\n.second{\n margin-left: 10px;\n}\n.hint {\n width: 700px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhvbWUuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLGdCQUFnQjtBQUNuQjtBQUNBO0dBQ0csaUJBQWlCO0FBQ3BCO0FBQ0E7R0FDRyxZQUFZO0FBQ2YiLCJmaWxlIjoiaG9tZS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnNraXAge1xuICAgbWFyZ2luLXRvcDogMjBweDtcbn1cbi5zZWNvbmR7XG4gICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbi5oaW50IHtcbiAgIHdpZHRoOiA3MDBweDtcbn1cbiJdfQ== */";
/***/
},
/***/
"./src/app/home.component.ts":
/*!***********************************!*\
!*** ./src/app/home.component.ts ***!
\***********************************/
/*! exports provided: HomeComponent */
/***/
function srcAppHomeComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "HomeComponent", function () {
return HomeComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! ./constants */
"./src/app/constants.ts");
/* harmony import */
var _tln_edition_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ./tln-edition/constants */
"./src/app/tln-edition/constants.ts");
var HomeComponent = /*#__PURE__*/function () {
function HomeComponent() {
_classCallCheck(this, HomeComponent);
this.manuscriptLink = ['/' + _constants__WEBPACK_IMPORTED_MODULE_2__["CONTENT_VIEW_ROUTE"], _tln_edition_constants__WEBPACK_IMPORTED_MODULE_3__["TLN_MANUSCRIPT_ROUTE"]];
this.mpXIVParam = {};
this.mpXVParam = {};
}
_createClass(HomeComponent, [{
key: "ngOnInit",
value: function ngOnInit() {
this.mpXIVParam[_tln_edition_constants__WEBPACK_IMPORTED_MODULE_3__["TLN_MANUSCRIPT_PARAM"]] = 'http://rdfh.ch/projects/0068#_Mp_XIV';
this.mpXVParam[_tln_edition_constants__WEBPACK_IMPORTED_MODULE_3__["TLN_MANUSCRIPT_PARAM"]] = 'http://rdfh.ch/projects/0068#_Mp_XV';
}
}]);
return HomeComponent;
}();
HomeComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-home-component',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./home.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/home.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./home.component.css */
"./src/app/home.component.css"))["default"]]
})], HomeComponent);
/***/
},
/***/
"./src/app/impressum.component.css":
/*!*****************************************!*\
!*** ./src/app/impressum.component.css ***!
\*****************************************/
/*! exports provided: default */
/***/
function srcAppImpressumComponentCss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = ".text {\n text-align: justify;\n width: 800px;\n}\n.subcontent {\n margin-bottom: 20px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9pbXByZXNzdW0uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLG1CQUFtQjtHQUNuQixZQUFZO0FBQ2Y7QUFDQTtHQUNHLG1CQUFtQjtBQUN0QiIsImZpbGUiOiJhcHAvaW1wcmVzc3VtLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudGV4dCB7XG4gICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgd2lkdGg6IDgwMHB4O1xufVxuLnN1YmNvbnRlbnQge1xuICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cbiJdfQ== */";
+ __webpack_exports__["default"] = ".text {\n text-align: justify;\n width: 800px;\n}\n.subcontent {\n margin-bottom: 20px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImltcHJlc3N1bS5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0dBQ0csbUJBQW1CO0dBQ25CLFlBQVk7QUFDZjtBQUNBO0dBQ0csbUJBQW1CO0FBQ3RCIiwiZmlsZSI6ImltcHJlc3N1bS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnRleHQge1xuICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgIHdpZHRoOiA4MDBweDtcbn1cbi5zdWJjb250ZW50IHtcbiAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG4iXX0= */";
/***/
},
/***/
"./src/app/impressum.component.ts":
/*!****************************************!*\
!*** ./src/app/impressum.component.ts ***!
\****************************************/
/*! exports provided: ImpressumComponent */
/***/
function srcAppImpressumComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "ImpressumComponent", function () {
return ImpressumComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
var ImpressumComponent = /*#__PURE__*/function () {
function ImpressumComponent() {
_classCallCheck(this, ImpressumComponent);
}
_createClass(ImpressumComponent, [{
key: "ngOnInit",
value: function ngOnInit() {}
}]);
return ImpressumComponent;
}();
ImpressumComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-impressum',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./impressum.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/impressum.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./impressum.component.css */
"./src/app/impressum.component.css"))["default"]]
})], ImpressumComponent);
/***/
},
/***/
"./src/app/lib/ngx-mat-standoff-markup.component.ts":
/*!**********************************************************!*\
!*** ./src/app/lib/ngx-mat-standoff-markup.component.ts ***!
\**********************************************************/
/*! exports provided: NgxMatStandoffMarkupComponent, StandoffDef, PositionalStyleMarkup, SemanticPositonalAnnotation, Segment, InteractedSegment, OriginalStandoffDef, StyleSheetDef, StandoffMarkupSettings, TextSelection */
/***/
function srcAppLibNgxMatStandoffMarkupComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "NgxMatStandoffMarkupComponent", function () {
return NgxMatStandoffMarkupComponent;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "StandoffDef", function () {
return StandoffDef;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "PositionalStyleMarkup", function () {
return PositionalStyleMarkup;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "SemanticPositonalAnnotation", function () {
return SemanticPositonalAnnotation;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "Segment", function () {
return Segment;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "InteractedSegment", function () {
return InteractedSegment;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "OriginalStandoffDef", function () {
return OriginalStandoffDef;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "StyleSheetDef", function () {
return StyleSheetDef;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "StandoffMarkupSettings", function () {
return StandoffMarkupSettings;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TextSelection", function () {
return TextSelection;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @angular/platform-browser */
"./node_modules/@angular/platform-browser/fesm2015/platform-browser.js");
/* harmony import */
var _ngx_mat_standoff_markup_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ./ngx-mat-standoff-markup.service */
"./src/app/lib/ngx-mat-standoff-markup.service.ts");
var NgxMatStandoffMarkupComponent =
/*#__PURE__*/
/**
* Simple and leightweight component marking up/styling a text input textToStyle with standoff markupDataMerged.
* @param standoffData: the standoff data for style markup/semantic markup.
* @param textToStyle: the text which will be styled acc. to the standoffData.
* @param startIndices: the final startindices to segment the text for markup. Does NOT simply equal all startindices of standoffData. It
* also contains all startindices of segments which are not styled/marked up.
* @param templateSegments: the resulting text segments with their individual markup information. Overlaps are supported
*/
function () {
function NgxMatStandoffMarkupComponent(sanitizer, standoffService) {
_classCallCheck(this, NgxMatStandoffMarkupComponent);
this.sanitizer = sanitizer;
this.standoffService = standoffService;
this.startIndices = []; // the start indices of all style segments
}
_createClass(NgxMatStandoffMarkupComponent, [{
key: "ngOnChanges",
value: function ngOnChanges() {
if (this.cssDef.type === 'url') {
this.cssUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.cssDef.css); // the actual url of the css for embetting.
}
this.mergeInputData();
this.startIndices = this.getStartIndices(this.markupDataMerged);
this.segmentText();
}
/**
* Merging the different data inputs to one data array if multiple inputs
*/
}, {
key: "mergeInputData",
value: function mergeInputData() {
if (this.standoffData && this.standoffData.length) {
this.markupDataMerged = this.standoffData;
if (this.posStyleMarkup && this.posStyleMarkup.length || this.semPosAnnotation && this.semPosAnnotation.length) {
console.log('WARNING: posStyleMarkup or semPosAnnotation input ignored.');
}
} else {
if (this.posStyleMarkup && this.posStyleMarkup.length && this.semPosAnnotation && this.semPosAnnotation.length) {
this.markupDataMerged.concat(this.posStyleMarkup, this.semPosAnnotation);
} else {
if (this.posStyleMarkup && this.posStyleMarkup.length) {
this.markupDataMerged = this.posStyleMarkup;
}
if (this.semPosAnnotation && this.semPosAnnotation.length) {
this.markupDataMerged = this.semPosAnnotation;
}
}
}
}
/**
* Creates the final text segments and styles (this.templateSegments) which will
* be *ngFored as <span> and styled with *ngStyle in the template.
* Iterates through all startindices defined, pushes the corresponding substring
* of our text to style together with its matching styles to this.templateSegments
*
*/
}, {
key: "segmentText",
value: function segmentText() {
var _this4 = this;
this.templateSegments = [];
var c = 1; // counter for getting the end index of the substring() via this.startIndices[c]
var _iterator = _createForOfIteratorHelper(this.startIndices),
_step;
try {
var _loop = function _loop() {
var startIndex = _step.value;
// the text from startIndex to the next startIndex, i.e. the endIndex ...
var segmentText = _this4.textToStyle.substring(startIndex, _this4.startIndices[c]); // all segmentDefs within the given range ...
var segmentDefsInRange = _this4.markupDataMerged.filter(function (def) {
return def.startIndex <= startIndex && startIndex <= def.endIndex;
});
var segment2 = new Segment(segmentText, startIndex, _this4.markupSettings, segmentDefsInRange);
_this4.templateSegments.push(segment2);
c += 1;
};
for (_iterator.s(); !(_step = _iterator.n()).done;) {
_loop();
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
}
/**
* Creates an array of startindices defining the final text/style segments.
* Hence every end index can be described as a startindex minus one (an end
* index equals a start index of sth. new -1), end indices are also covered implicitly.
* So every endIndex +1 is also pushed to the startIndices array if not yet existing.
* If a defined range is ending at the very last character, there is obviously not a new
* style starting and an additive startIndex is wrong. Therefore the last startIndex
* is simply popped from the array if its value exceeds textToStyle.length.
*
* @return startIndices: Array of all distinct startIndices of the final text segments.
*/
}, {
key: "getStartIndices",
value: function getStartIndices(standoffData) {
var startIndices = []; // Push every startindex to startIndices if not yet there to get a distinct array of startindices for segmenting the text.
// Hence every every end means a start of sth new, every endIndex equals a startIndex -1. Therefore we simply add also
// every endIndex +1 to the Array of startIndices (if there is not yet a start defined for that character).
standoffData.forEach(function (defEntry) {
if (startIndices.indexOf(defEntry.startIndex) === -1) {
// if the startIndex of the defEntry is not yet in startIndices
startIndices.push(defEntry.startIndex);
}
if (startIndices.indexOf(defEntry.endIndex + 1) === -1) {
startIndices.push(defEntry.endIndex + 1);
}
}); // if there is no startindex of 0, we have to add it to define the first text segment.
if (startIndices.indexOf(0) === -1) {
startIndices.push(0);
} // sort it
startIndices.sort(function (n1, n2) {
return n1 - n2;
}); // If the last endIndex is the very last character of the string to style, we must not generate a startIndex at endIndex+1.
// In any other case we have to start a new style.
// If the last generated startIndex is bigger than this.textToStyle.length
// we have to pop that last startIndex (from the right) from our startIndices.
// If the textToStyle.length is bigger or equals the last startIndex, that last startIndex simply means the end of the style
// one character before. In these cases a last style range with font style undefined (style:normal) has to start,
// so the last end ist also defined.
if (this.textToStyle.length < startIndices[startIndices.length - 1]) {
startIndices.pop();
}
return startIndices;
}
}, {
key: "onSegmentClick",
value: function onSegmentClick(segment) {
var sel = window.getSelection(); // needed for preventing onclicks when selecting text
if (sel.type != 'Range' && segment.interact) {
var seg = new InteractedSegment(this.parentId, this.parentClass, segment);
this.standoffService.interactedSegmentEmitter.emit(seg);
}
} // Text selection only works within a parent element (div). If you have several ngx-mat-standoff-components, e.g.
// in an ngFor loop, you have to read the window data out yourself in your component.
}, {
key: "setSelectedText",
value: function setSelectedText(selectionEndstartIndex) {
if (window.getSelection) {
var sel = window.getSelection();
if (!sel.isCollapsed) {
var totalRangeStartIndex = this.selectionStartIndex + sel.anchorOffset;
var totalRangeEndIndexFocus = selectionEndstartIndex + sel.focusOffset; // all standoff definitions in that range ...
var segmentDefsInRange = this.markupDataMerged.filter(function (def) {
return def.endIndex >= totalRangeStartIndex && def.startIndex <= totalRangeEndIndexFocus;
});
var selectedText = this.textToStyle.substring(totalRangeStartIndex, totalRangeEndIndexFocus);
this.standoffService.selectedTextEmitter.emit(new TextSelection(selectedText, totalRangeStartIndex, totalRangeEndIndexFocus, this.parentId, segmentDefsInRange));
}
}
}
}, {
key: "setSelectionStartIndex",
value: function setSelectionStartIndex(startIndex) {
this.selectionStartIndex = startIndex;
}
}]);
return NgxMatStandoffMarkupComponent;
}();
NgxMatStandoffMarkupComponent.ctorParameters = function () {
return [{
type: _angular_platform_browser__WEBPACK_IMPORTED_MODULE_2__["DomSanitizer"]
}, {
type: _ngx_mat_standoff_markup_service__WEBPACK_IMPORTED_MODULE_3__["NgxMatStandoffMarkupService"]
}];
};
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], NgxMatStandoffMarkupComponent.prototype, "textToStyle", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], NgxMatStandoffMarkupComponent.prototype, "markupSettings", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], NgxMatStandoffMarkupComponent.prototype, "standoffData", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], NgxMatStandoffMarkupComponent.prototype, "posStyleMarkup", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], NgxMatStandoffMarkupComponent.prototype, "semPosAnnotation", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], NgxMatStandoffMarkupComponent.prototype, "cssDef", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], NgxMatStandoffMarkupComponent.prototype, "parentId", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], NgxMatStandoffMarkupComponent.prototype, "parentClass", void 0);
NgxMatStandoffMarkupComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'NgxMat-NgxMatStandoffMarkup',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./ngx-mat-standoff-markup.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/lib/ngx-mat-standoff-markup.component.html"))["default"]
})
/**
* Simple and leightweight component marking up/styling a text input textToStyle with standoff markupDataMerged.
* @param standoffData: the standoff data for style markup/semantic markup.
* @param textToStyle: the text which will be styled acc. to the standoffData.
* @param startIndices: the final startindices to segment the text for markup. Does NOT simply equal all startindices of standoffData. It
* also contains all startindices of segments which are not styled/marked up.
* @param templateSegments: the resulting text segments with their individual markup information. Overlaps are supported
*/
], NgxMatStandoffMarkupComponent);
var StandoffDef = function StandoffDef(sType, startIndex, endIndex) {
_classCallCheck(this, StandoffDef);
this.sType = sType;
this.startIndex = startIndex;
this.endIndex = endIndex;
};
var PositionalStyleMarkup = /*#__PURE__*/function (_StandoffDef) {
_inherits(PositionalStyleMarkup, _StandoffDef);
var _super = _createSuper(PositionalStyleMarkup);
function PositionalStyleMarkup(sType, startIndex, endIndex, cssStyleTag) {
var _this5;
_classCallCheck(this, PositionalStyleMarkup);
_this5 = _super.call(this, sType, startIndex, endIndex);
_this5.cssStyleTag = cssStyleTag;
return _this5;
}
return PositionalStyleMarkup;
}(StandoffDef);
var SemanticPositonalAnnotation = /*#__PURE__*/function (_StandoffDef2) {
_inherits(SemanticPositonalAnnotation, _StandoffDef2);
var _super2 = _createSuper(SemanticPositonalAnnotation);
function SemanticPositonalAnnotation(sType, startIndex, endIndex, cssClass, iri, description, custom) {
var _this6;
_classCallCheck(this, SemanticPositonalAnnotation);
_this6 = _super2.call(this, sType, startIndex, endIndex);
_this6.cssClass = cssClass;
_this6.iri = iri;
_this6.description = description;
_this6.custom = custom;
return _this6;
}
return SemanticPositonalAnnotation;
}(StandoffDef);
var Segment = /*#__PURE__*/function () {
function Segment(text, sStartIndex, settings, standoffDef) {
_classCallCheck(this, Segment);
this.sText = text; //the string (=== subString) of the segment
this.sStartIndex = sStartIndex; // the startIndex of the segment within the whole text
this.originalDefs = new OriginalStandoffDef(standoffDef);
this.setSegment(standoffDef, settings);
}
/**
* sets the sType, interact and sStyleDef
*
*/
_createClass(Segment, [{
key: "setSegment",
value: function setSegment(defs, settings) {
var _this7 = this;
if (defs && defs.length > 0) {
// If there are definitions ...
// check for markup type overlaps, e.g. definitions for type 0 and type 1
// by checking the length of a Set (= distinct) of all sTypes in defs.
if (Array.from(new Set(defs.map(function (item) {
return item.sType;
}))).length > 1) {
// If >1 there is an overlap
// set the sType depending on the markupPreference ...
this.sType = settings.markupPreference;
this.sType === 0 ? this.setSyle(defs) : this.setClass(defs, settings.polysemanticWrapper);
} else {
this.sType = defs[0].sType;
} // if there is only one sType within defs we set that
// setting the interact according to the sType.
this.sType === 0 ? this.interact = settings.interactWithStyles : this.interact = settings.interactWithAnnotations;
var filteredDefs = defs.filter(function (def) {
return def.sType === _this7.sType;
}); // subset of all defs which type === sType
this.sType === 0 ? this.setSyle(filteredDefs) : this.setClass(filteredDefs, settings.polysemanticWrapper);
} else {
// If there is nothing defined for the text segment at all ...
this.setUndefinedSegmentParts(settings.interactWithUndefined);
}
}
}, {
key: "setSyle",
value: function setSyle(defs) {
var _this8 = this;
defs.forEach(function (def) {
var posStyle = def; // Adds every css property/value to the markup object
// splitting multiple styles at ';'
// removes leading and ending spaces, deletes ";" and assigns it as an object as css property:"value"
_this8.cssStyleTag = {};
posStyle.cssStyleTag.split(';').forEach(function (style) {
if (style.trim().length > 0) {
_this8.cssStyleTag[style.split(':')[0].trim()] = style.split(':')[1].trim();
}
});
});
}
}, {
key: "setClass",
value: function setClass(defs, polysemanticWrapper) {
var _this9 = this;
this.cssClass = {};
if (polysemanticWrapper && defs.length > 1) {
this.cssClass[polysemanticWrapper] = true;
} else {
defs.forEach(function (def) {
var posSem = def; // adding a class
_this9.cssClass[posSem.cssClass.trim().replace('.', ' ')] = true;
});
}
}
}, {
key: "setUndefinedSegmentParts",
value: function setUndefinedSegmentParts(interact) {
this.sType = 0;
this.cssStyleTag = []; // {'font-style': 'normal'}
this.interact = interact;
}
}]);
return Segment;
}();
var InteractedSegment = function InteractedSegment(parentId, parentClass, segment) {
_classCallCheck(this, InteractedSegment);
this.parentClass = parentClass;
this.parentId = parentId;
this.segment = segment;
};
var OriginalStandoffDef = function OriginalStandoffDef(standOffDef) {
_classCallCheck(this, OriginalStandoffDef);
this.positionalMarkup = standOffDef.filter(function (def) {
return def.sType === 0;
}); // subset of all defs which type === 0
this.semanticAnnotation = standOffDef.filter(function (def) {
return def.sType === 1;
}); // subset of all defs which type === 1
};
var StyleSheetDef = function StyleSheetDef(css, type) {
_classCallCheck(this, StyleSheetDef);
this.css = css;
this.type = type;
};
var StandoffMarkupSettings = function StandoffMarkupSettings() {
var interactWithStyles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
var interactWithAnnotations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
var interactWithUndefined = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
var markupPreference = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
var polysemanticWrapper = arguments.length > 4 ? arguments[4] : undefined;
_classCallCheck(this, StandoffMarkupSettings);
this.interactWithStyles = interactWithStyles;
this.interactWithAnnotations = interactWithAnnotations;
this.interactWithUndefined = interactWithUndefined;
this.markupPreference = markupPreference;
this.polysemanticWrapper = polysemanticWrapper;
};
var TextSelection = function TextSelection(text, startIndex, endIndex, parentId, standoffDefsInRange) {
_classCallCheck(this, TextSelection);
this.text = text;
this.startIndex = startIndex;
this.endIndex = endIndex;
this.parentId = parentId;
this.standoffDefsInRange = standoffDefsInRange;
};
/***/
},
/***/
"./src/app/lib/ngx-mat-standoff-markup.module.ts":
/*!*******************************************************!*\
!*** ./src/app/lib/ngx-mat-standoff-markup.module.ts ***!
\*******************************************************/
/*! exports provided: NgxMatStandoffMarkupModule */
/***/
function srcAppLibNgxMatStandoffMarkupModuleTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "NgxMatStandoffMarkupModule", function () {
return NgxMatStandoffMarkupModule;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _ngx_mat_standoff_markup_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! ./ngx-mat-standoff-markup.component */
"./src/app/lib/ngx-mat-standoff-markup.component.ts");
/* harmony import */
var _angular_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! @angular/material */
"./node_modules/@angular/material/esm2015/material.js");
/* harmony import */
var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! @angular/platform-browser */
"./node_modules/@angular/platform-browser/fesm2015/platform-browser.js");
/* harmony import */
var _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
/*! @angular/platform-browser/animations */
"./node_modules/@angular/platform-browser/fesm2015/animations.js");
/* harmony import */
var _ngx_mat_standoff_markup_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
/*! ./ngx-mat-standoff-markup.service */
"./src/app/lib/ngx-mat-standoff-markup.service.ts");
var NgxMatStandoffMarkupModule = function NgxMatStandoffMarkupModule() {
_classCallCheck(this, NgxMatStandoffMarkupModule);
};
NgxMatStandoffMarkupModule = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({
declarations: [_ngx_mat_standoff_markup_component__WEBPACK_IMPORTED_MODULE_2__["NgxMatStandoffMarkupComponent"]],
imports: [_angular_material__WEBPACK_IMPORTED_MODULE_3__["MatTooltipModule"], _angular_platform_browser__WEBPACK_IMPORTED_MODULE_4__["BrowserModule"], _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_5__["BrowserAnimationsModule"]],
exports: [_ngx_mat_standoff_markup_component__WEBPACK_IMPORTED_MODULE_2__["NgxMatStandoffMarkupComponent"]],
providers: [_ngx_mat_standoff_markup_service__WEBPACK_IMPORTED_MODULE_6__["NgxMatStandoffMarkupService"]]
})], NgxMatStandoffMarkupModule);
/***/
},
/***/
"./src/app/lib/ngx-mat-standoff-markup.service.ts":
/*!********************************************************!*\
!*** ./src/app/lib/ngx-mat-standoff-markup.service.ts ***!
\********************************************************/
/*! exports provided: NgxMatStandoffMarkupService */
/***/
function srcAppLibNgxMatStandoffMarkupServiceTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "NgxMatStandoffMarkupService", function () {
return NgxMatStandoffMarkupService;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
var NgxMatStandoffMarkupService = function NgxMatStandoffMarkupService() {
_classCallCheck(this, NgxMatStandoffMarkupService);
// subscribe here to the selected things. For editing your standoff markup/semantic annotations
this.interactedSegmentEmitter = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
this.selectedTextEmitter = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"](); // multiple spaces removed
};
NgxMatStandoffMarkupService = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"])({
providedIn: 'root'
})], NgxMatStandoffMarkupService);
/***/
},
/***/
"./src/app/main-menu-component/main-menu-component.component.scss":
/*!************************************************************************!*\
!*** ./src/app/main-menu-component/main-menu-component.component.scss ***!
\************************************************************************/
/*! exports provided: default */
/***/
function srcAppMainMenuComponentMainMenuComponentComponentScss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = "\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhcHAvbWFpbi1tZW51LWNvbXBvbmVudC9tYWluLW1lbnUtY29tcG9uZW50LmNvbXBvbmVudC5zY3NzIn0= */";
+ __webpack_exports__["default"] = "\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJtYWluLW1lbnUtY29tcG9uZW50L21haW4tbWVudS1jb21wb25lbnQuY29tcG9uZW50LnNjc3MifQ== */";
/***/
},
/***/
"./src/app/main-menu-component/main-menu-component.component.ts":
/*!**********************************************************************!*\
!*** ./src/app/main-menu-component/main-menu-component.component.ts ***!
\**********************************************************************/
/*! exports provided: MainMenuComponentComponent */
/***/
function srcAppMainMenuComponentMainMenuComponentComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "MainMenuComponentComponent", function () {
return MainMenuComponentComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @angular/router */
"./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */
var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ../constants */
"./src/app/constants.ts");
var MainMenuComponentComponent = /*#__PURE__*/function () {
function MainMenuComponentComponent(activatedRoute) {
_classCallCheck(this, MainMenuComponentComponent);
this.activatedRoute = activatedRoute;
this.contentViewLink = [_constants__WEBPACK_IMPORTED_MODULE_3__["CONTENT_VIEW_ROUTE"]];
this.impressumLink = [_constants__WEBPACK_IMPORTED_MODULE_3__["IMPRESSUM_ROUTE"]];
this.homeLink = [_constants__WEBPACK_IMPORTED_MODULE_3__["HOME_ROUTE"]];
this.projectLink = [_constants__WEBPACK_IMPORTED_MODULE_3__["PROJECT_ROUTE"]];
}
_createClass(MainMenuComponentComponent, [{
key: "ngOnInit",
value: function ngOnInit() {
var _this10 = this;
this.queryParamSub = this.activatedRoute.queryParams.subscribe(function (queryParams) {
_this10.fullScreen = queryParams.fullscreen;
_this10.queryParams = queryParams;
});
}
}]);
return MainMenuComponentComponent;
}();
MainMenuComponentComponent.ctorParameters = function () {
return [{
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"]
}];
};
MainMenuComponentComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-main-menu-component',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./main-menu-component.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/main-menu-component/main-menu-component.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./main-menu-component.component.scss */
"./src/app/main-menu-component/main-menu-component.component.scss"))["default"]]
})], MainMenuComponentComponent);
/***/
},
/***/
"./src/app/manuscript-view-component/manuscript-view-component.component.scss":
/*!************************************************************************************!*\
!*** ./src/app/manuscript-view-component/manuscript-view-component.component.scss ***!
\************************************************************************************/
/*! exports provided: default */
/***/
function srcAppManuscriptViewComponentManuscriptViewComponentComponentScss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = ".content-area {\n height: 100%;\n display: table;\n}\n\n.nav-container {\n height: 100%;\n width: 50%;\n display: table-cell;\n}\n\n.content-container {\n height: 100%;\n display: table-cell;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL21hbnVzY3JpcHQtdmlldy1jb21wb25lbnQvbWFudXNjcmlwdC12aWV3LWNvbXBvbmVudC5jb21wb25lbnQuc2NzcyIsImFwcC9tYW51c2NyaXB0LXZpZXctY29tcG9uZW50L21hbnVzY3JpcHQtdmlldy1jb21wb25lbnQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxZQUFBO0VBQ0EsY0FBQTtBQ0NGOztBREVBO0VBQ0UsWUFBQTtFQUVBLFVBQUE7RUFDQSxtQkFBQTtBQ0FGOztBREdBO0VBQ0UsWUFBQTtFQUdBLG1CQUFBO0FDRkYiLCJmaWxlIjoiYXBwL21hbnVzY3JpcHQtdmlldy1jb21wb25lbnQvbWFudXNjcmlwdC12aWV3LWNvbXBvbmVudC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jb250ZW50LWFyZWEge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6dGFibGU7XG59XG5cbi5uYXYtY29udGFpbmVyIHtcbiAgaGVpZ2h0OjEwMCU7XG4gIC8vbWluLXdpZHRoOiB1bnNldDsgLy8gbmVlZGVkIGJlY2F1c2UgYW5ndWxhciBzZXRzIGFuIG93biBtaW4gd2lkdGghP1xuICB3aWR0aDo1MCU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG5cbi5jb250ZW50LWNvbnRhaW5lciB7XG4gIGhlaWdodDoxMDAlO1xuICAvLyBtaW4td2lkdGg6IHVuc2V0OyAvLyBuZWVkZWQgYmVjYXVzZSBhbmd1bGFyIHNldHMgYW4gb3duIG1pbiB3aWR0aCE/XG4gIC8vIHdpZHRoOjIwcHg7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG4iLCIuY29udGVudC1hcmVhIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLm5hdi1jb250YWluZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiA1MCU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG5cbi5jb250ZW50LWNvbnRhaW5lciB7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbn0iXX0= */";
+ __webpack_exports__["default"] = ".content-area {\n height: 100%;\n display: table;\n}\n\n.nav-container {\n height: 100%;\n width: 50%;\n display: table-cell;\n}\n\n.content-container {\n height: 100%;\n display: table-cell;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL21hbnVzY3JpcHQtdmlldy1jb21wb25lbnQvbWFudXNjcmlwdC12aWV3LWNvbXBvbmVudC5jb21wb25lbnQuc2NzcyIsIm1hbnVzY3JpcHQtdmlldy1jb21wb25lbnQvbWFudXNjcmlwdC12aWV3LWNvbXBvbmVudC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFlBQUE7RUFDQSxjQUFBO0FDQ0Y7O0FERUE7RUFDRSxZQUFBO0VBRUEsVUFBQTtFQUNBLG1CQUFBO0FDQUY7O0FER0E7RUFDRSxZQUFBO0VBR0EsbUJBQUE7QUNGRiIsImZpbGUiOiJtYW51c2NyaXB0LXZpZXctY29tcG9uZW50L21hbnVzY3JpcHQtdmlldy1jb21wb25lbnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuY29udGVudC1hcmVhIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OnRhYmxlO1xufVxuXG4ubmF2LWNvbnRhaW5lciB7XG4gIGhlaWdodDoxMDAlO1xuICAvL21pbi13aWR0aDogdW5zZXQ7IC8vIG5lZWRlZCBiZWNhdXNlIGFuZ3VsYXIgc2V0cyBhbiBvd24gbWluIHdpZHRoIT9cbiAgd2lkdGg6NTAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuXG4uY29udGVudC1jb250YWluZXIge1xuICBoZWlnaHQ6MTAwJTtcbiAgLy8gbWluLXdpZHRoOiB1bnNldDsgLy8gbmVlZGVkIGJlY2F1c2UgYW5ndWxhciBzZXRzIGFuIG93biBtaW4gd2lkdGghP1xuICAvLyB3aWR0aDoyMHB4O1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuIiwiLmNvbnRlbnQtYXJlYSB7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi5uYXYtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogNTAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuXG4uY29udGVudC1jb250YWluZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59Il19 */";
/***/
},
/***/
"./src/app/manuscript-view-component/manuscript-view-component.component.ts":
/*!**********************************************************************************!*\
!*** ./src/app/manuscript-view-component/manuscript-view-component.component.ts ***!
\**********************************************************************************/
/*! exports provided: ManuscriptViewComponentComponent */
/***/
function srcAppManuscriptViewComponentManuscriptViewComponentComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "ManuscriptViewComponentComponent", function () {
return ManuscriptViewComponentComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
var ManuscriptViewComponentComponent = /*#__PURE__*/function () {
function ManuscriptViewComponentComponent() {
_classCallCheck(this, ManuscriptViewComponentComponent);
}
_createClass(ManuscriptViewComponentComponent, [{
key: "ngOnInit",
value: function ngOnInit() {}
}]);
return ManuscriptViewComponentComponent;
}();
ManuscriptViewComponentComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-manuscript-view-component',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./manuscript-view-component.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/manuscript-view-component/manuscript-view-component.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./manuscript-view-component.component.scss */
"./src/app/manuscript-view-component/manuscript-view-component.component.scss"))["default"]]
})], ManuscriptViewComponentComponent);
/***/
},
/***/
"./src/app/models/models.ts":
/*!**********************************!*\
!*** ./src/app/models/models.ts ***!
\**********************************/
/*! exports provided: TlnEntity, TlnQueryParams, NavigationEntity, ApiDef, TlnEntityMapping */
/***/
function srcAppModelsModelsTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnEntity", function () {
return TlnEntity;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnQueryParams", function () {
return TlnQueryParams;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "NavigationEntity", function () {
return NavigationEntity;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "ApiDef", function () {
return ApiDef;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnEntityMapping", function () {
return TlnEntityMapping;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
var TlnEntity = function TlnEntity(id, iri, type, navContext, label, description) {
_classCallCheck(this, TlnEntity);
this.id = id;
this.iri = iri;
this.type = type;
this.navContext = navContext;
this.label = label;
this.description = description;
};
var TlnQueryParams = function TlnQueryParams(navBarOpenState, navContext, manuscript, page, selectedLines, selectedWords, viewMode, fullscreen, zoom) {
_classCallCheck(this, TlnQueryParams);
this.navBarOpenState = navBarOpenState; //proposed solution: JSON.parse(navBarOpenState)
this.navContext = navContext; // proposed solution: Number(navTabIndex)
this.manuscript = manuscript;
this.page = page;
this.selectedLines = selectedLines;
this.selectedWords = selectedWords;
this.viewMode = viewMode;
this.fullscreen = fullscreen; // proposed solution: JSON.parse(fullscreen)
this.zoom = zoom; // proposed solution: Number(zoom)
// console.log('TlnQueryParams.fullscreen typeof:', typeof this.fullscreen, 'TlnQueryParams.zoom typeof:', typeof this.zoom);
}; // The navigation entries in each tree for each viewtab (TlnManuscript, TlnPage, PositionalEntity) used by navigation
//
var NavigationEntity = function NavigationEntity(idx, tlnEntity, thumb, img, svg, avatar) {
_classCallCheck(this, NavigationEntity);
this.idx = idx;
this.tlnEntity = tlnEntity;
this.thumb = thumb;
this.img = img;
this.svg = svg;
this.avatar = avatar;
};
var ApiDef = function ApiDef(type, baseUrl, dataArray, query, mapping) {
_classCallCheck(this, ApiDef);
this.type = type;
this.baseUrl = baseUrl;
this.dataArray = dataArray;
this.query = query;
this.mapping = mapping;
};
var TlnEntityMapping = function TlnEntityMapping(id, iri, idx, type, label, description, avatar, svg, thumb) {
_classCallCheck(this, TlnEntityMapping);
this.id = id;
this.iri = iri;
this.idx = idx;
this.type = type;
this.label = label;
this.description = description;
this.avatar = avatar;
this.svg = svg;
this.thumb = thumb;
};
/***/
},
/***/
"./src/app/navigation-list-component/navigation-list-component.component.scss":
/*!************************************************************************************!*\
!*** ./src/app/navigation-list-component/navigation-list-component.component.scss ***!
\************************************************************************************/
/*! exports provided: default */
/***/
function srcAppNavigationListComponentNavigationListComponentComponentScss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = ".fixed-nav-container {\n position: -webkit-sticky;\n position: sticky;\n max-height: 15vh;\n}\n\n.navlist-container {\n position: -webkit-sticky;\n position: sticky;\n max-height: 85vh;\n overflow-x: hidden;\n overflow-y: auto;\n scroll-behavior: smooth;\n}\n\n.mat-nav-list {\n scroll-behavior: smooth;\n}\n\n.mat-nav-list .mat-list-item {\n width: 100%;\n min-height: 72px;\n height: 100%;\n /* default is 72px */\n padding: 0 !important;\n margin: 0 !important;\n}\n\n.thumbnail {\n max-width: 100px;\n max-height: 100px;\n}\n\n.card-item {\n width: 100%;\n min-width: 100%;\n margin-top: 5px;\n background-color: rgba(255, 255, 255, 0) !important;\n}\n\n.active-item {\n background: linear-gradient(to right, rgba(255, 255, 255, 0), #dadada);\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL25hdmlnYXRpb24tbGlzdC1jb21wb25lbnQvbmF2aWdhdGlvbi1saXN0LWNvbXBvbmVudC5jb21wb25lbnQuc2NzcyIsImFwcC9uYXZpZ2F0aW9uLWxpc3QtY29tcG9uZW50L25hdmlnYXRpb24tbGlzdC1jb21wb25lbnQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSx3QkFBQTtFQUFBLGdCQUFBO0VBQ0EsZ0JBQUE7QUNDRjs7QURFQTtFQUNFLHdCQUFBO0VBQUEsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSx1QkFBQTtBQ0NGOztBREVBO0VBQ0UsdUJBQUE7QUNDRjs7QURFQTtFQUNFLFdBQUE7RUFDQSxnQkFBQTtFQUNBLFlBQUE7RUFBYyxvQkFBQTtFQUNkLHFCQUFBO0VBQ0Esb0JBQUE7QUNFRjs7QURDQTtFQUNFLGdCQUFBO0VBQ0EsaUJBQUE7QUNFRjs7QURDQTtFQUNFLFdBQUE7RUFDQSxlQUFBO0VBQ0EsZUFBQTtFQUNBLG1EQUFBO0FDRUY7O0FEQ0E7RUFDRSxzRUFBQTtBQ0VGIiwiZmlsZSI6ImFwcC9uYXZpZ2F0aW9uLWxpc3QtY29tcG9uZW50L25hdmlnYXRpb24tbGlzdC1jb21wb25lbnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZml4ZWQtbmF2LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIG1heC1oZWlnaHQ6IDE1dmg7XG59XG5cbi5uYXZsaXN0LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIG1heC1oZWlnaHQ6IDg1dmg7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG59XG5cbi5tYXQtbmF2LWxpc3Qge1xuICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbn1cblxuLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiA3MnB4O1xuICBoZWlnaHQ6IDEwMCU7IC8qIGRlZmF1bHQgaXMgNzJweCAqL1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cblxuLnRodW1ibmFpbCB7XG4gIG1heC13aWR0aDogMTAwcHg7XG4gIG1heC1oZWlnaHQ6IDEwMHB4O1xufVxuXG4uY2FyZC1pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMTAwJTtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApICFpbXBvcnRhbnQ7XG59XG5cbi5hY3RpdmUtaXRlbSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAsICNkYWRhZGEpO1xufVxuIiwiLmZpeGVkLW5hdi1jb250YWluZXIge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBtYXgtaGVpZ2h0OiAxNXZoO1xufVxuXG4ubmF2bGlzdC1jb250YWluZXIge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBtYXgtaGVpZ2h0OiA4NXZoO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xufVxuXG4ubWF0LW5hdi1saXN0IHtcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG59XG5cbi5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW0ge1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogNzJweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICAvKiBkZWZhdWx0IGlzIDcycHggKi9cbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cblxuLnRodW1ibmFpbCB7XG4gIG1heC13aWR0aDogMTAwcHg7XG4gIG1heC1oZWlnaHQ6IDEwMHB4O1xufVxuXG4uY2FyZC1pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMTAwJTtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApICFpbXBvcnRhbnQ7XG59XG5cbi5hY3RpdmUtaXRlbSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSwgI2RhZGFkYSk7XG59Il19 */";
+ __webpack_exports__["default"] = ".fixed-nav-container {\n position: -webkit-sticky;\n position: sticky;\n max-height: 15vh;\n}\n\n.navlist-container {\n position: -webkit-sticky;\n position: sticky;\n max-height: 85vh;\n overflow-x: hidden;\n overflow-y: auto;\n scroll-behavior: smooth;\n}\n\n.mat-nav-list {\n scroll-behavior: smooth;\n}\n\n.mat-nav-list .mat-list-item {\n width: 100%;\n min-height: 72px;\n height: 100%;\n /* default is 72px */\n padding: 0 !important;\n margin: 0 !important;\n}\n\n.thumbnail {\n max-width: 100px;\n max-height: 100px;\n}\n\n.card-item {\n width: 100%;\n min-width: 100%;\n margin-top: 5px;\n background-color: rgba(255, 255, 255, 0) !important;\n}\n\n.active-item {\n background: linear-gradient(to right, rgba(255, 255, 255, 0), #dadada);\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL25hdmlnYXRpb24tbGlzdC1jb21wb25lbnQvbmF2aWdhdGlvbi1saXN0LWNvbXBvbmVudC5jb21wb25lbnQuc2NzcyIsIm5hdmlnYXRpb24tbGlzdC1jb21wb25lbnQvbmF2aWdhdGlvbi1saXN0LWNvbXBvbmVudC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHdCQUFBO0VBQUEsZ0JBQUE7RUFDQSxnQkFBQTtBQ0NGOztBREVBO0VBQ0Usd0JBQUE7RUFBQSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLHVCQUFBO0FDQ0Y7O0FERUE7RUFDRSx1QkFBQTtBQ0NGOztBREVBO0VBQ0UsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsWUFBQTtFQUFjLG9CQUFBO0VBQ2QscUJBQUE7RUFDQSxvQkFBQTtBQ0VGOztBRENBO0VBQ0UsZ0JBQUE7RUFDQSxpQkFBQTtBQ0VGOztBRENBO0VBQ0UsV0FBQTtFQUNBLGVBQUE7RUFDQSxlQUFBO0VBQ0EsbURBQUE7QUNFRjs7QURDQTtFQUNFLHNFQUFBO0FDRUYiLCJmaWxlIjoibmF2aWdhdGlvbi1saXN0LWNvbXBvbmVudC9uYXZpZ2F0aW9uLWxpc3QtY29tcG9uZW50LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZpeGVkLW5hdi1jb250YWluZXIge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBtYXgtaGVpZ2h0OiAxNXZoO1xufVxuXG4ubmF2bGlzdC1jb250YWluZXIge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBtYXgtaGVpZ2h0OiA4NXZoO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xufVxuXG4ubWF0LW5hdi1saXN0IHtcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG59XG5cbi5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW0ge1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogNzJweDtcbiAgaGVpZ2h0OiAxMDAlOyAvKiBkZWZhdWx0IGlzIDcycHggKi9cbiAgcGFkZGluZzogMCAhaW1wb3J0YW50OztcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG59XG5cbi50aHVtYm5haWwge1xuICBtYXgtd2lkdGg6IDEwMHB4O1xuICBtYXgtaGVpZ2h0OiAxMDBweDtcbn1cblxuLmNhcmQtaXRlbSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAhaW1wb3J0YW50O1xufVxuXG4uYWN0aXZlLWl0ZW0ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgLCAjZGFkYWRhKTtcbn1cbiIsIi5maXhlZC1uYXYtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgbWF4LWhlaWdodDogMTV2aDtcbn1cblxuLm5hdmxpc3QtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgbWF4LWhlaWdodDogODV2aDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbn1cblxuLm1hdC1uYXYtbGlzdCB7XG4gIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xufVxuXG4ubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDcycHg7XG4gIGhlaWdodDogMTAwJTtcbiAgLyogZGVmYXVsdCBpcyA3MnB4ICovXG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG59XG5cbi50aHVtYm5haWwge1xuICBtYXgtd2lkdGg6IDEwMHB4O1xuICBtYXgtaGVpZ2h0OiAxMDBweDtcbn1cblxuLmNhcmQtaXRlbSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAhaW1wb3J0YW50O1xufVxuXG4uYWN0aXZlLWl0ZW0ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCksICNkYWRhZGEpO1xufSJdfQ== */";
/***/
},
/***/
"./src/app/navigation-list-component/navigation-list-component.component.ts":
/*!**********************************************************************************!*\
!*** ./src/app/navigation-list-component/navigation-list-component.component.ts ***!
\**********************************************************************************/
/*! exports provided: NavigationListComponentComponent */
/***/
function srcAppNavigationListComponentNavigationListComponentComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "NavigationListComponentComponent", function () {
return NavigationListComponentComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _services_navigation_service_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! ../services/navigation-service.service */
"./src/app/services/navigation-service.service.ts");
/* harmony import */
var _angular_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! @angular/router */
"./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */
var _services_query_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! ../services/query.service */
"./src/app/services/query.service.ts");
/* harmony import */
var _navtree_directive_directive__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
/*! ./navtree-directive.directive */
"./src/app/navigation-list-component/navtree-directive.directive.ts");
/* harmony import */
var lodash__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
/*! lodash */
"./node_modules/lodash/lodash.js");
/* harmony import */
var lodash__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_6__);
var NavigationListComponentComponent =
/*#__PURE__*/
/**
* NavigationListComponent
* Does sinply consume data coming from naviservice && activated route. triggers click event to service.
*/
function () {
function NavigationListComponentComponent(naviService, router, activatedRoute, queryService) {
var _this11 = this;
_classCallCheck(this, NavigationListComponentComponent);
this.naviService = naviService;
this.router = router;
this.activatedRoute = activatedRoute;
this.queryService = queryService;
this.navigationTreeDefs = [{
id: 'manuscript',
idx: 0,
isActive: true,
label: 'Manuskripte',
itemQParam: 'manuscript',
entries: [],
apiDef: {
type: 0,
baseUrl: 'https://nietzsche.fuseki.services.dasch.swiss/nietzsche',
dataArray: 'results.bindings',
query: 'manuscripts.rq',
mapping: {
id: 'manuscript.value',
iri: 'manuscript.value',
type: 'type.value',
label: 'title.value',
description: 'gsaSignature.value',
avatar: 'thumbImage.value'
}
}
}, {
id: 'page',
idx: 1,
isActive: false,
label: 'Seiten',
itemQParam: 'page',
entries: [],
apiDef: {
type: 0,
baseUrl: 'https://nietzsche.fuseki.services.dasch.swiss/nietzsche',
dataArray: 'results.bindings',
query: 'getPageData.rq',
mapping: {
id: 'page.value',
iri: 'page.value',
label: 'pageNumber.value',
thumb: 'thumb.value',
idx: 'pageNumber.value',
svg: 'svgFileName.value'
}
}
}]; // If url pasted or page refreshed --> resetting this.queryparams to the query params of the url;
// needed for the template hence service instances can not be accessed in the template
this.queryParamSubscription = this.activatedRoute.queryParams.subscribe(function (queryParams) {
var navTabIndex = _this11.getActiveNavTabIndex(queryParams.navContext);
if (_this11.oldQueryParams && queryParams.navContext) {
// only if there are any oldParams
_this11.reactOnContextChange(queryParams.navContext, _this11.oldQueryParams.navContext, navTabIndex);
_this11.reactOnItemChange('page', queryParams.page, _this11.oldQueryParams.page);
_this11.reactOnItemChange('manuscript', queryParams.manuscript, _this11.oldQueryParams.manuscript);
}
_this11.oldQueryParams = queryParams;
});
}
_createClass(NavigationListComponentComponent, [{
key: "ngOnInit",
value: function ngOnInit() {
return tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"](this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
var _this12 = this;
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return this.createTreesOnInit();
case 2:
_context.next = 4;
return this.getActiveNavTabIndex();
case 4:
this.navTabIndex = _context.sent;
_context.next = 7;
return this.populateNavTrees();
case 7:
// set selected things in url
this.navTrees.forEach(function (tree) {
// if there is no selected item for each tree, we have to listen to the selectedItemSet/tree population and set them per default
if (!_this12.activatedRoute.snapshot.queryParamMap.get(tree.qParam)) {
tree.selectedItemSet.subscribe(function (item) {
_this12.setSelectedItemAndRoute(item.itemId, item.tabId);
});
}
}); // change navTree according to chosen route per default
// set NavContext if unset according to selected component: manuscriptView, tln-page view
if (this.activatedRoute.snapshot.firstChild.url[0].path === 'tln-viewer' && !this.activatedRoute.snapshot.queryParamMap.get('navContext')) {
this.naviService.updateRoute({
navContext: 'page'
});
}
case 9:
case "end":
return _context.stop();
}
}
}, _callee, this);
}));
}
}, {
key: "ngAfterViewInit",
value: function ngAfterViewInit() {
var selectedItem = this.activatedRoute.snapshot.queryParamMap.get(this.activatedRoute.snapshot.queryParamMap.get('navContext'));
this.scrollOnToSelectedItem(selectedItem);
}
}, {
key: "reactOnItemChange",
value: function reactOnItemChange(param, itemId, oldItemId) {
var _this13 = this;
if (itemId && itemId !== '' && oldItemId) {
if (itemId !== oldItemId) {
var tab = this.navTrees.findIndex(function (tree) {
return tree.id === param;
});
this.setSelectedItem(itemId, tab);
if (tab === this.navTabIndex) {
window.setTimeout(function () {
return _this13.scrollOnToSelectedItem(itemId);
}, 100);
}
}
}
}
}, {
key: "reactOnContextChange",
value: function reactOnContextChange(context, oldContext, activeTab) {
var _this14 = this;
if (context !== oldContext) {
this.navTabIndex = activeTab; // must time out here hence document is not ready to scroll
window.setTimeout(function () {
return _this14.scrollOnToSelectedItem(_this14.oldQueryParams[context]);
}, 100);
}
}
}, {
key: "scrollOnToSelectedItem",
value: function scrollOnToSelectedItem(itemId) {
if (document.getElementById(itemId)) {
var offSetTop = document.getElementById(itemId).offsetTop;
document.getElementById('navlist').scrollTop = offSetTop - 100;
}
}
/**
* getActiveNavTabIndexOnInit
* gets the active navTabIndex either from a passed navConText, from active qParam or or from definition
*/
}, {
key: "getActiveNavTabIndex",
value: function getActiveNavTabIndex(con) {
var navConText;
if (!con || con === '') {
navConText = this.activatedRoute.snapshot.queryParamMap.get('navContext');
} else {
navConText = con;
}
var navTabIndex = 0;
if (navConText && navConText !== '') {
var nIndex = this.navigationTreeDefs.findIndex(function (tree) {
return tree.id === navConText;
});
navTabIndex = this.navigationTreeDefs[nIndex].idx;
} else {
navTabIndex = 0;
}
return navTabIndex;
}
}, {
key: "createTreesOnInit",
value: function createTreesOnInit() {
var _this15 = this;
this.navTrees = [];
this.navigationTreeDefs.forEach(function (def) {
return _this15.navTrees.push(new _navtree_directive_directive__WEBPACK_IMPORTED_MODULE_5__["NavTree"](def.id, def.idx, def.label, [], def.itemQParam, def.description, def.apiDef));
});
}
}, {
key: "onSelectNavItem",
value: function onSelectNavItem(item) {
return tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"](this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
var navContext;
return regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
if (!(this.navTrees[this.navTabIndex].selectedItem !== item.tlnEntity.id)) {
_context2.next = 13;
break;
}
_context2.next = 3;
return this.emptyChildTrees(this.navTabIndex);
case 3:
_context2.next = 5;
return this.removeAllChildTreeQParams(this.navTabIndex);
case 5:
_context2.next = 7;
return this.setSelectedItemAndRoute(item.tlnEntity.id, this.navTabIndex);
case 7:
_context2.next = 9;
return this.populateChildren(this.navTabIndex, item.tlnEntity.id);
case 9:
// Only if context !== 'page', e.g. view is tln-viewer), we change to the second page tab
navContext = this.activatedRoute.snapshot.queryParamMap.get('navContext');
if (navContext !== this.navTrees[this.getActiveNavTabIndex()].qParam) {
this.changeNavTreeViaRoute(this.navTabIndex + 1);
}
_context2.next = 14;
break;
case 13:
// if an already selected item is clicked again, it changes the tree/tab
this.changeNavTreeViaRoute(this.navTabIndex + 1);
case 14:
case "end":
return _context2.stop();
}
}
}, _callee2, this);
}));
}
}, {
key: "removeAllChildTreeQParams",
value: function removeAllChildTreeQParams(tabId) {
var _this16 = this;
this.navTrees.forEach(function (tree, index) {
if (tree.idx > tabId) {
_this16.navTrees[index].selectedItem = null;
_this16.naviService.updateRoute(_defineProperty({}, tree.qParam, null));
}
});
}
}, {
key: "emptyChildTrees",
value: function emptyChildTrees(parentIdx) {
var _this17 = this;
this.navTrees.forEach(function (tree, index) {
if (tree.idx > parentIdx) {
_this17.navTrees[index].entries = [];
}
});
}
}, {
key: "setSelectedItem",
value: function setSelectedItem(navItemId, tabId) {
this.navTrees[tabId].selectedItem = navItemId;
} // Will route, the qParamSubscription reacts and trees are built further
}, {
key: "setSelectedItemAndRoute",
value: function setSelectedItemAndRoute(navItemId, tabId) {
return tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"](this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {
var idx, newParams, qParam;
return regeneratorRuntime.wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
this.navTrees[tabId].selectedItem = navItemId;
idx = this.navigationTreeDefs.findIndex(function (tree) {
return tree.idx === tabId;
}); // set new qParam
newParams = {};
qParam = this.navigationTreeDefs[idx].itemQParam;
newParams[qParam] = navItemId;
this.naviService.updateRoute(newParams);
case 6:
case "end":
return _context3.stop();
}
}
}, _callee3, this);
}));
}
}, {
key: "populateChildren",
value: function populateChildren(activeTab, itemId) {
if (activeTab + 1 < this.navigationTreeDefs.length) {
// if an item in a tab with sub tabs is selected, the subtree should be loaded according to that selection and the tab should change
this.populateNavTrees(activeTab + 1, itemId);
}
} // switches tabs in navtab ov navigation bar
}, {
key: "changeNavTreeViaRoute",
value: function changeNavTreeViaRoute(idx) {
if (idx < this.navTrees.length) {
this.naviService.updateRoute({
navContext: this.navTrees[idx].qParam
});
}
}
/**
* populateNavTrees creates the first trees if no query params are available in the url:
* It ceates the manuscripNavTree and the activePageNavTreeData of the first manuscript per default.
*
*/
}, {
key: "populateNavTrees",
value: function populateNavTrees(tabIdx, itemId) {
return tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"](this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() {
var _this18 = this;
var tabStartIndex, _iterator2, _step2, _loop2;
return regeneratorRuntime.wrap(function _callee5$(_context5) {
while (1) {
switch (_context5.prev = _context5.next) {
case 0:
tabStartIndex = tabIdx || 0; // where to start refreshing navtrees
_iterator2 = _createForOfIteratorHelper(this.navigationTreeDefs.sort(function (def) {
return def.idx;
}));
try {
_loop2 = function _loop2() {
var treeDef = _step2.value;
if (treeDef.idx >= tabStartIndex) {
// only create trees if needed
_this18.queryService.getQueryfromFilename(treeDef.apiDef.query).subscribe(function (query) {
return tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"](_this18, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {
var _this19 = this;
var queryToRun;
return regeneratorRuntime.wrap(function _callee4$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
// If there is a selectedItem we have to parametrize the query
if (treeDef.idx > 0) {
// so we have to parametrize the query
if (itemId) {
queryToRun = this.queryService.parametrizeQueryWithItem(query, itemId);
this.populateNavTree(treeDef, queryToRun);
} else {
// wait for selected item of the previous tab and parametrize then the query
this.navTrees[treeDef.idx - 1].selectedItemSet.subscribe(function (item) {
if (item.tabId === treeDef.idx - 1) {
queryToRun = _this19.queryService.parametrizeQueryWithItem(query, item.itemId);
_this19.populateNavTree(treeDef, queryToRun);
}
});
}
} else {
this.populateNavTree(treeDef, query);
}
case 1:
case "end":
return _context4.stop();
}
}
}, _callee4, this);
}));
});
}
};
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
_loop2();
}
} catch (err) {
_iterator2.e(err);
} finally {
_iterator2.f();
}
case 3:
case "end":
return _context5.stop();
}
}
}, _callee5, this);
}));
}
}, {
key: "populateNavTree",
value: function populateNavTree(def, query) {
var _this20 = this;
var idx = this.navTrees.findIndex(function (item) {
return item.id === def.id;
});
var parentLabel;
if (idx > 0) {
parentLabel = this.navTrees[idx - 1].selectedItemLabel;
}
if (idx !== -1) {
this.queryService.getData(def.apiDef.baseUrl, query, 'SELECT').subscribe(function (data) {
_this20.navTrees[idx].setNavTreeData(lodash__WEBPACK_IMPORTED_MODULE_6__["get"](data, def.apiDef.dataArray), _this20.activatedRoute.snapshot.queryParams, parentLabel);
});
}
}
}]);
return NavigationListComponentComponent;
}();
NavigationListComponentComponent.ctorParameters = function () {
return [{
type: _services_navigation_service_service__WEBPACK_IMPORTED_MODULE_2__["NavigationServiceService"]
}, {
type: _angular_router__WEBPACK_IMPORTED_MODULE_3__["Router"]
}, {
type: _angular_router__WEBPACK_IMPORTED_MODULE_3__["ActivatedRoute"]
}, {
type: _services_query_service__WEBPACK_IMPORTED_MODULE_4__["QueryService"]
}];
};
NavigationListComponentComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-navigation-list-component',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./navigation-list-component.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/navigation-list-component/navigation-list-component.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./navigation-list-component.component.scss */
"./src/app/navigation-list-component/navigation-list-component.component.scss"))["default"]]
})
/**
* NavigationListComponent
* Does sinply consume data coming from naviservice && activated route. triggers click event to service.
*/
], NavigationListComponentComponent);
/***/
},
/***/
"./src/app/navigation-list-component/navtree-directive.directive.ts":
/*!**************************************************************************!*\
!*** ./src/app/navigation-list-component/navtree-directive.directive.ts ***!
\**************************************************************************/
/*! exports provided: NavTree */
/***/
function srcAppNavigationListComponentNavtreeDirectiveDirectiveTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "NavTree", function () {
return NavTree;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _models_models__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! ../models/models */
"./src/app/models/models.ts");
/* harmony import */
var lodash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! lodash */
"./node_modules/lodash/lodash.js");
/* harmony import */
var lodash__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_3__);
var NavTree = /*#__PURE__*/function () {
function NavTree(id, idx, label, entries, qParam, description, apiDef, selectedItem, selectedItemLabel, parentLabel) {
_classCallCheck(this, NavTree);
this.id = id;
this.idx = idx;
this.label = label;
this.qParam = qParam;
this.entries = entries || [];
this.description = description;
this.apiDef = apiDef;
this.selectedItem = selectedItem;
this.selectedItemLabel = selectedItemLabel;
this.selectedItemSet = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
this.parentLabel = parentLabel;
}
_createClass(NavTree, [{
key: "setNavTreeData",
value: function setNavTreeData(data, queryParams, parentLabel) {
var _this21 = this;
this.parentLabel = parentLabel;
this.selectedItemLabel = lodash__WEBPACK_IMPORTED_MODULE_3__["get"](data[0], this.apiDef.mapping.label);
if (queryParams[this.qParam] && queryParams[this.qParam] !== '') {
this.setSelected(queryParams[this.qParam]);
} else {
this.setSelected(lodash__WEBPACK_IMPORTED_MODULE_3__["get"](data[0], this.apiDef.mapping.id));
}
this.entries = []; // resetting tree data of the given tab
data.forEach(function (entry, index) {
// (id: string, iri: string, type: string, navIndex: number, label?: string)
var entity = new _models_models__WEBPACK_IMPORTED_MODULE_2__["TlnEntity"](lodash__WEBPACK_IMPORTED_MODULE_3__["get"](entry, _this21.apiDef.mapping.id), lodash__WEBPACK_IMPORTED_MODULE_3__["get"](entry, _this21.apiDef.mapping.iri), lodash__WEBPACK_IMPORTED_MODULE_3__["get"](entry, _this21.apiDef.mapping.type) || null, index, lodash__WEBPACK_IMPORTED_MODULE_3__["get"](entry, _this21.apiDef.mapping.label) || '', lodash__WEBPACK_IMPORTED_MODULE_3__["get"](entry, _this21.apiDef.mapping.description || ''));
var thumb = lodash__WEBPACK_IMPORTED_MODULE_3__["get"](entry, _this21.apiDef.mapping.thumb);
var svg;
if (lodash__WEBPACK_IMPORTED_MODULE_3__["get"](entry, _this21.apiDef.mapping.svg)) {
svg = 'http://existdb-test.dasch.swiss/exist/rest/db/storage/nietzsche/' + lodash__WEBPACK_IMPORTED_MODULE_3__["get"](entry, _this21.apiDef.mapping.svg);
}
var avatar = lodash__WEBPACK_IMPORTED_MODULE_3__["get"](entry, _this21.apiDef.mapping.avatar);
var navEntity = new _models_models__WEBPACK_IMPORTED_MODULE_2__["NavigationEntity"](index, entity, thumb, '', svg, avatar);
_this21.entries.push(navEntity);
});
}
}, {
key: "setSelected",
value: function setSelected(itemId) {
this.selectedItem = itemId;
this.selectedItemSet.emit({
tabId: this.idx,
itemId: itemId
});
}
}]);
return NavTree;
}();
NavTree.ctorParameters = function () {
return [{
type: String
}, {
type: Number
}, {
type: String
}, {
type: Array
}, {
type: String
}, {
type: String
}, {
type: _models_models__WEBPACK_IMPORTED_MODULE_2__["ApiDef"]
}, {
type: String
}, {
type: String
}, {
type: String
}];
};
NavTree = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Directive"])({
selector: '[appNavtreeDirective]'
})], NavTree);
/***/
},
/***/
"./src/app/page-view-wrapper-component/page-view-wrapper.component.scss":
/*!******************************************************************************!*\
!*** ./src/app/page-view-wrapper-component/page-view-wrapper.component.scss ***!
\******************************************************************************/
/*! exports provided: default */
/***/
function srcAppPageViewWrapperComponentPageViewWrapperComponentScss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = "mat-card {\n height: 85vh;\n overflow: hidden;\n}\n\n.drawer {\n padding: 10px;\n width: 25%;\n}\n\n.in-drawer-content-area {\n min-height: 300px;\n height: 70vh;\n min-width: 95%;\n display: table;\n}\n\n.in-drawer-toggle-button-container {\n height: 100%;\n vertical-align: top;\n min-width: 10%;\n width: 10%;\n display: table-cell;\n}\n\n.in-drawer-content-container {\n height: 100%;\n align-content: left;\n width: 90%;\n display: table-cell;\n padding: 10px;\n}\n\n.main-content-container {\n min-height: 300px;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n}\n\n.outer-content-area {\n min-height: 300px;\n height: 100%;\n display: table;\n}\n\n.content-container {\n height: 100%;\n vertical-align: top;\n align-content: left;\n width: 80%;\n display: table-cell;\n padding: 10px;\n}\n\n.page-turn-button-container {\n height: 100%;\n vertical-align: middle;\n min-width: unset;\n width: 20px;\n display: table-cell;\n}\n\n.page-turn-button {\n height: 100px;\n min-width: unset;\n width: 15px;\n display: flex;\n justify-content: center;\n align-items: center;\n margin: 0;\n padding: 0;\n}\n\n.toggle-button-container {\n height: 100%;\n display: table-cell;\n vertical-align: top;\n align-content: right;\n align-items: right;\n min-width: 5%;\n width: 100%;\n padding: 1em;\n}\n\n.toggle-button {\n height: 100px;\n min-width: unset;\n width: 15px;\n display: flex;\n justify-content: center;\n margin: 0;\n padding: 0;\n}\n\n.right-outer-element {\n margin-right: 3em;\n}\n\n.right-inner-element {\n margin-left: 1em;\n}\n\n.mat-button-toggle-group.mat-button-toggle-group {\n display: flex;\n align-items: right;\n}\n\n.images-container {\n display: table;\n}\n\n.image-sell-container {\n display: table-cell;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL3BhZ2Utdmlldy13cmFwcGVyLWNvbXBvbmVudC9wYWdlLXZpZXctd3JhcHBlci5jb21wb25lbnQuc2NzcyIsImFwcC9wYWdlLXZpZXctd3JhcHBlci1jb21wb25lbnQvcGFnZS12aWV3LXdyYXBwZXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7RUFDRSxZQUFBO0VBQ0EsZ0JBQUE7QUNERjs7QURLQTtFQUNFLGFBQUE7RUFDQSxVQUFBO0FDRkY7O0FETUE7RUFDRSxpQkFBQTtFQUNBLFlBQUE7RUFDQSxjQUFBO0VBQ0EsY0FBQTtBQ0hGOztBRE1BO0VBQ0UsWUFBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTtFQUNBLFVBQUE7RUFDQSxtQkFBQTtBQ0hGOztBRE1BO0VBQ0UsWUFBQTtFQUVBLG1CQUFBO0VBQ0EsVUFBQTtFQUNBLG1CQUFBO0VBQ0EsYUFBQTtBQ0pGOztBRFFBO0VBQ0UsaUJBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0FDTEY7O0FEU0E7RUFDRSxpQkFBQTtFQUNBLFlBQUE7RUFDQSxjQUFBO0FDTkY7O0FEU0E7RUFDRSxZQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLFVBQUE7RUFDQSxtQkFBQTtFQUNBLGFBQUE7QUNORjs7QURTQTtFQUNFLFlBQUE7RUFDQSxzQkFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0FDTkY7O0FEU0E7RUFDRSxhQUFBO0VBQ0EsZ0JBQUE7RUFDQSxXQUFBO0VBQ0EsYUFBQTtFQUNBLHVCQUFBO0VBQ0EsbUJBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtBQ05GOztBRFVBO0VBQ0UsWUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFQUNBLGtCQUFBO0VBQ0EsYUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0FDUEY7O0FEVUE7RUFDRSxhQUFBO0VBQ0EsZ0JBQUE7RUFDQSxXQUFBO0VBQ0EsYUFBQTtFQUNBLHVCQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7QUNQRjs7QURXQTtFQUNFLGlCQUFBO0FDUkY7O0FEV0E7RUFDRSxnQkFBQTtBQ1JGOztBRFdBO0VBQ0UsYUFBQTtFQUNBLGtCQUFBO0FDUkY7O0FEV0E7RUFDRSxjQUFBO0FDUkY7O0FEV0E7RUFDRSxtQkFBQTtBQ1JGIiwiZmlsZSI6ImFwcC9wYWdlLXZpZXctd3JhcHBlci1jb21wb25lbnQvcGFnZS12aWV3LXdyYXBwZXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0aGUgb3ZlcmFsbCBtYXQtY2FyZFxuXG5tYXQtY2FyZCB7XG4gIGhlaWdodDogODV2aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8gdGhlIGRldGFpbHMgZHJhd2VyIG9uIHRoZSB2ZXJ5IHJpZ2h0XG4uZHJhd2VyIHtcbiAgcGFkZGluZzogMTBweDtcbiAgd2lkdGg6IDI1JTtcbn1cblxuLy8gVGhlIGNvbnRlbnQgYXJlYSBvZiB0aGUgZHJhd2VyIGFzIGEgdGFibGUgY29udGFpbmluZyBidXR0b24gJiBjb250ZW50XG4uaW4tZHJhd2VyLWNvbnRlbnQtYXJlYSB7XG4gIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICBoZWlnaHQ6IDcwdmg7XG4gIG1pbi13aWR0aDogOTUlO1xuICBkaXNwbGF5OnRhYmxlO1xufVxuXG4uaW4tZHJhd2VyLXRvZ2dsZS1idXR0b24tY29udGFpbmVyIHtcbiAgaGVpZ2h0OjEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIG1pbi13aWR0aDogMTAlO1xuICB3aWR0aDoxMCU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG5cbi5pbi1kcmF3ZXItY29udGVudC1jb250YWluZXIge1xuICBoZWlnaHQ6MTAwJTtcbiAgLy8gdmVydGljYWwtYWxpZ246IHRvcDtcbiAgYWxpZ24tY29udGVudDogbGVmdDtcbiAgd2lkdGg6OTAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBwYWRkaW5nOiAxMHB4O1xufVxuXG4vLyB0aGUgY29udGVudCBjb250YWluZXIgY29udGFpbmluZyB0aGUgY29udGVudCBhcmVhXG4ubWFpbi1jb250ZW50LWNvbnRhaW5lciB7XG4gIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8vIFRoZSBjb250ZW50IGFyZWEgYXMgYSB0YWJsZSBjb250YWluaW5nIHRoZSBtYWluIGNvbnRlbnQgYW5kIHRoZSBvdXRlciB0b2dnbGUgYnV0dG9uIGNvbnRhaW5lclxuLm91dGVyLWNvbnRlbnQtYXJlYSB7XG4gIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6dGFibGU7XG59XG5cbi5jb250ZW50LWNvbnRhaW5lciB7XG4gIGhlaWdodDoxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBhbGlnbi1jb250ZW50OiBsZWZ0O1xuICB3aWR0aDo4MCU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG4vLyBuYXYgYnV0dG9uc1xuLnBhZ2UtdHVybi1idXR0b24tY29udGFpbmVyIHtcbiAgaGVpZ2h0OjEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1pbi13aWR0aDogdW5zZXQ7IC8vIG5lZWRlZCBiZWNhdXNlIGFuZ3VsYXIgc2V0cyBhbiBvd24gbWluIHdpZHRoIT9cbiAgd2lkdGg6MjBweDtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbn1cblxuLnBhZ2UtdHVybi1idXR0b24geyAvLyBmaWxscyBzaWRlbmF2LWJ1dHRvbi1jb250YWluZXIgY29tcGxldGVseSwgc28gYWxsIGlzIG9uZSBidXR0b25cbiAgaGVpZ2h0OiAxMDBweDtcbiAgbWluLXdpZHRoOiB1bnNldDsgLy8gbmVlZGVkIGJlY2F1c2UgYW5ndWxhciBzZXRzIGFuIG93biBtaW4gd2lkdGghP1xuICB3aWR0aDogMTVweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLy8gdGhlIGNlbGwgd2hlcmUgdGhlIGJ1dHRvbiB3aWxsIGJlIGluIHRoZSBtYWluIGNvbnRlbnQgYXJlYVxuLnRvZ2dsZS1idXR0b24tY29udGFpbmVyIHtcbiAgaGVpZ2h0OjEwMCU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGFsaWduLWNvbnRlbnQ6IHJpZ2h0O1xuICBhbGlnbi1pdGVtczogcmlnaHQ7XG4gIG1pbi13aWR0aDogNSU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxZW07XG59XG5cbi50b2dnbGUtYnV0dG9uIHsgLy8gZmlsbHMgc2lkZW5hdi1idXR0b24tY29udGFpbmVyIGNvbXBsZXRlbHksIHNvIGFsbCBpcyBvbmUgYnV0dG9uXG4gIGhlaWdodDogMTAwcHg7XG4gIG1pbi13aWR0aDogdW5zZXQ7IC8vIG5lZWRlZCBiZWNhdXNlIGFuZ3VsYXIgc2V0cyBhbiBvd24gbWluIHdpZHRoIT9cbiAgd2lkdGg6IDE1cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8vIGZvciBvcHRpb25zXG4ucmlnaHQtb3V0ZXItZWxlbWVudCB7XG4gIG1hcmdpbi1yaWdodDogM2VtO1xufVxuXG4ucmlnaHQtaW5uZXItZWxlbWVudCB7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG59XG5cbi5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiByaWdodDtcbn1cblxuLmltYWdlcy1jb250YWluZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLmltYWdlLXNlbGwtY29udGFpbmVyIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbn1cbiIsIm1hdC1jYXJkIHtcbiAgaGVpZ2h0OiA4NXZoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZHJhd2VyIHtcbiAgcGFkZGluZzogMTBweDtcbiAgd2lkdGg6IDI1JTtcbn1cblxuLmluLWRyYXdlci1jb250ZW50LWFyZWEge1xuICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgaGVpZ2h0OiA3MHZoO1xuICBtaW4td2lkdGg6IDk1JTtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi5pbi1kcmF3ZXItdG9nZ2xlLWJ1dHRvbi1jb250YWluZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIG1pbi13aWR0aDogMTAlO1xuICB3aWR0aDogMTAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuXG4uaW4tZHJhd2VyLWNvbnRlbnQtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBhbGlnbi1jb250ZW50OiBsZWZ0O1xuICB3aWR0aDogOTAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBwYWRkaW5nOiAxMHB4O1xufVxuXG4ubWFpbi1jb250ZW50LWNvbnRhaW5lciB7XG4gIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5vdXRlci1jb250ZW50LWFyZWEge1xuICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLmNvbnRlbnQtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBhbGlnbi1jb250ZW50OiBsZWZ0O1xuICB3aWR0aDogODAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBwYWRkaW5nOiAxMHB4O1xufVxuXG4ucGFnZS10dXJuLWJ1dHRvbi1jb250YWluZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1pbi13aWR0aDogdW5zZXQ7XG4gIHdpZHRoOiAyMHB4O1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuXG4ucGFnZS10dXJuLWJ1dHRvbiB7XG4gIGhlaWdodDogMTAwcHg7XG4gIG1pbi13aWR0aDogdW5zZXQ7XG4gIHdpZHRoOiAxNXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4udG9nZ2xlLWJ1dHRvbi1jb250YWluZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGFsaWduLWNvbnRlbnQ6IHJpZ2h0O1xuICBhbGlnbi1pdGVtczogcmlnaHQ7XG4gIG1pbi13aWR0aDogNSU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxZW07XG59XG5cbi50b2dnbGUtYnV0dG9uIHtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgbWluLXdpZHRoOiB1bnNldDtcbiAgd2lkdGg6IDE1cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5yaWdodC1vdXRlci1lbGVtZW50IHtcbiAgbWFyZ2luLXJpZ2h0OiAzZW07XG59XG5cbi5yaWdodC1pbm5lci1lbGVtZW50IHtcbiAgbWFyZ2luLWxlZnQ6IDFlbTtcbn1cblxuLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IHJpZ2h0O1xufVxuXG4uaW1hZ2VzLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuXG4uaW1hZ2Utc2VsbC1jb250YWluZXIge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufSJdfQ== */";
+ __webpack_exports__["default"] = "mat-card {\n height: 85vh;\n overflow: hidden;\n}\n\n.drawer {\n padding: 10px;\n width: 25%;\n}\n\n.in-drawer-content-area {\n min-height: 300px;\n height: 70vh;\n min-width: 95%;\n display: table;\n}\n\n.in-drawer-toggle-button-container {\n height: 100%;\n vertical-align: top;\n min-width: 10%;\n width: 10%;\n display: table-cell;\n}\n\n.in-drawer-content-container {\n height: 100%;\n align-content: left;\n width: 90%;\n display: table-cell;\n padding: 10px;\n}\n\n.main-content-container {\n min-height: 300px;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n}\n\n.outer-content-area {\n min-height: 300px;\n height: 100%;\n display: table;\n}\n\n.content-container {\n height: 100%;\n vertical-align: top;\n align-content: left;\n width: 80%;\n display: table-cell;\n padding: 10px;\n}\n\n.page-turn-button-container {\n height: 100%;\n vertical-align: middle;\n min-width: unset;\n width: 20px;\n display: table-cell;\n}\n\n.page-turn-button {\n height: 100px;\n min-width: unset;\n width: 15px;\n display: flex;\n justify-content: center;\n align-items: center;\n margin: 0;\n padding: 0;\n}\n\n.toggle-button-container {\n height: 100%;\n display: table-cell;\n vertical-align: top;\n align-content: right;\n align-items: right;\n min-width: 5%;\n width: 100%;\n padding: 1em;\n}\n\n.toggle-button {\n height: 100px;\n min-width: unset;\n width: 15px;\n display: flex;\n justify-content: center;\n margin: 0;\n padding: 0;\n}\n\n.right-outer-element {\n margin-right: 3em;\n}\n\n.right-inner-element {\n margin-left: 1em;\n}\n\n.mat-button-toggle-group.mat-button-toggle-group {\n display: flex;\n align-items: right;\n}\n\n.images-container {\n display: table;\n}\n\n.image-sell-container {\n display: table-cell;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL3BhZ2Utdmlldy13cmFwcGVyLWNvbXBvbmVudC9wYWdlLXZpZXctd3JhcHBlci5jb21wb25lbnQuc2NzcyIsInBhZ2Utdmlldy13cmFwcGVyLWNvbXBvbmVudC9wYWdlLXZpZXctd3JhcHBlci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtFQUNFLFlBQUE7RUFDQSxnQkFBQTtBQ0RGOztBREtBO0VBQ0UsYUFBQTtFQUNBLFVBQUE7QUNGRjs7QURNQTtFQUNFLGlCQUFBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7RUFDQSxjQUFBO0FDSEY7O0FETUE7RUFDRSxZQUFBO0VBQ0EsbUJBQUE7RUFDQSxjQUFBO0VBQ0EsVUFBQTtFQUNBLG1CQUFBO0FDSEY7O0FETUE7RUFDRSxZQUFBO0VBRUEsbUJBQUE7RUFDQSxVQUFBO0VBQ0EsbUJBQUE7RUFDQSxhQUFBO0FDSkY7O0FEUUE7RUFDRSxpQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7QUNMRjs7QURTQTtFQUNFLGlCQUFBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7QUNORjs7QURTQTtFQUNFLFlBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VBQ0EsVUFBQTtFQUNBLG1CQUFBO0VBQ0EsYUFBQTtBQ05GOztBRFNBO0VBQ0UsWUFBQTtFQUNBLHNCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7QUNORjs7QURTQTtFQUNFLGFBQUE7RUFDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxhQUFBO0VBQ0EsdUJBQUE7RUFDQSxtQkFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0FDTkY7O0FEVUE7RUFDRSxZQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VBQ0Esa0JBQUE7RUFDQSxhQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7QUNQRjs7QURVQTtFQUNFLGFBQUE7RUFDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxhQUFBO0VBQ0EsdUJBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtBQ1BGOztBRFdBO0VBQ0UsaUJBQUE7QUNSRjs7QURXQTtFQUNFLGdCQUFBO0FDUkY7O0FEV0E7RUFDRSxhQUFBO0VBQ0Esa0JBQUE7QUNSRjs7QURXQTtFQUNFLGNBQUE7QUNSRjs7QURXQTtFQUNFLG1CQUFBO0FDUkYiLCJmaWxlIjoicGFnZS12aWV3LXdyYXBwZXItY29tcG9uZW50L3BhZ2Utdmlldy13cmFwcGVyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdGhlIG92ZXJhbGwgbWF0LWNhcmRcblxubWF0LWNhcmQge1xuICBoZWlnaHQ6IDg1dmg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vIHRoZSBkZXRhaWxzIGRyYXdlciBvbiB0aGUgdmVyeSByaWdodFxuLmRyYXdlciB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIHdpZHRoOiAyNSU7XG59XG5cbi8vIFRoZSBjb250ZW50IGFyZWEgb2YgdGhlIGRyYXdlciBhcyBhIHRhYmxlIGNvbnRhaW5pbmcgYnV0dG9uICYgY29udGVudFxuLmluLWRyYXdlci1jb250ZW50LWFyZWEge1xuICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgaGVpZ2h0OiA3MHZoO1xuICBtaW4td2lkdGg6IDk1JTtcbiAgZGlzcGxheTp0YWJsZTtcbn1cblxuLmluLWRyYXdlci10b2dnbGUtYnV0dG9uLWNvbnRhaW5lciB7XG4gIGhlaWdodDoxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBtaW4td2lkdGg6IDEwJTtcbiAgd2lkdGg6MTAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuXG4uaW4tZHJhd2VyLWNvbnRlbnQtY29udGFpbmVyIHtcbiAgaGVpZ2h0OjEwMCU7XG4gIC8vIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGFsaWduLWNvbnRlbnQ6IGxlZnQ7XG4gIHdpZHRoOjkwJTtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgcGFkZGluZzogMTBweDtcbn1cblxuLy8gdGhlIGNvbnRlbnQgY29udGFpbmVyIGNvbnRhaW5pbmcgdGhlIGNvbnRlbnQgYXJlYVxuLm1haW4tY29udGVudC1jb250YWluZXIge1xuICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vLyBUaGUgY29udGVudCBhcmVhIGFzIGEgdGFibGUgY29udGFpbmluZyB0aGUgbWFpbiBjb250ZW50IGFuZCB0aGUgb3V0ZXIgdG9nZ2xlIGJ1dHRvbiBjb250YWluZXJcbi5vdXRlci1jb250ZW50LWFyZWEge1xuICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OnRhYmxlO1xufVxuXG4uY29udGVudC1jb250YWluZXIge1xuICBoZWlnaHQ6MTAwJTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgYWxpZ24tY29udGVudDogbGVmdDtcbiAgd2lkdGg6ODAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBwYWRkaW5nOiAxMHB4O1xufVxuLy8gbmF2IGJ1dHRvbnNcbi5wYWdlLXR1cm4tYnV0dG9uLWNvbnRhaW5lciB7XG4gIGhlaWdodDoxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtaW4td2lkdGg6IHVuc2V0OyAvLyBuZWVkZWQgYmVjYXVzZSBhbmd1bGFyIHNldHMgYW4gb3duIG1pbiB3aWR0aCE/XG4gIHdpZHRoOjIwcHg7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG5cbi5wYWdlLXR1cm4tYnV0dG9uIHsgLy8gZmlsbHMgc2lkZW5hdi1idXR0b24tY29udGFpbmVyIGNvbXBsZXRlbHksIHNvIGFsbCBpcyBvbmUgYnV0dG9uXG4gIGhlaWdodDogMTAwcHg7XG4gIG1pbi13aWR0aDogdW5zZXQ7IC8vIG5lZWRlZCBiZWNhdXNlIGFuZ3VsYXIgc2V0cyBhbiBvd24gbWluIHdpZHRoIT9cbiAgd2lkdGg6IDE1cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8vIHRoZSBjZWxsIHdoZXJlIHRoZSBidXR0b24gd2lsbCBiZSBpbiB0aGUgbWFpbiBjb250ZW50IGFyZWFcbi50b2dnbGUtYnV0dG9uLWNvbnRhaW5lciB7XG4gIGhlaWdodDoxMDAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBhbGlnbi1jb250ZW50OiByaWdodDtcbiAgYWxpZ24taXRlbXM6IHJpZ2h0O1xuICBtaW4td2lkdGg6IDUlO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMWVtO1xufVxuXG4udG9nZ2xlLWJ1dHRvbiB7IC8vIGZpbGxzIHNpZGVuYXYtYnV0dG9uLWNvbnRhaW5lciBjb21wbGV0ZWx5LCBzbyBhbGwgaXMgb25lIGJ1dHRvblxuICBoZWlnaHQ6IDEwMHB4O1xuICBtaW4td2lkdGg6IHVuc2V0OyAvLyBuZWVkZWQgYmVjYXVzZSBhbmd1bGFyIHNldHMgYW4gb3duIG1pbiB3aWR0aCE/XG4gIHdpZHRoOiAxNXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vLyBmb3Igb3B0aW9uc1xuLnJpZ2h0LW91dGVyLWVsZW1lbnQge1xuICBtYXJnaW4tcmlnaHQ6IDNlbTtcbn1cblxuLnJpZ2h0LWlubmVyLWVsZW1lbnQge1xuICBtYXJnaW4tbGVmdDogMWVtO1xufVxuXG4ubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogcmlnaHQ7XG59XG5cbi5pbWFnZXMtY29udGFpbmVyIHtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi5pbWFnZS1zZWxsLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG4iLCJtYXQtY2FyZCB7XG4gIGhlaWdodDogODV2aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRyYXdlciB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIHdpZHRoOiAyNSU7XG59XG5cbi5pbi1kcmF3ZXItY29udGVudC1hcmVhIHtcbiAgbWluLWhlaWdodDogMzAwcHg7XG4gIGhlaWdodDogNzB2aDtcbiAgbWluLXdpZHRoOiA5NSU7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuXG4uaW4tZHJhd2VyLXRvZ2dsZS1idXR0b24tY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBtaW4td2lkdGg6IDEwJTtcbiAgd2lkdGg6IDEwJTtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbn1cblxuLmluLWRyYXdlci1jb250ZW50LWNvbnRhaW5lciB7XG4gIGhlaWdodDogMTAwJTtcbiAgYWxpZ24tY29udGVudDogbGVmdDtcbiAgd2lkdGg6IDkwJTtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgcGFkZGluZzogMTBweDtcbn1cblxuLm1haW4tY29udGVudC1jb250YWluZXIge1xuICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4ub3V0ZXItY29udGVudC1hcmVhIHtcbiAgbWluLWhlaWdodDogMzAwcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi5jb250ZW50LWNvbnRhaW5lciB7XG4gIGhlaWdodDogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgYWxpZ24tY29udGVudDogbGVmdDtcbiAgd2lkdGg6IDgwJTtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgcGFkZGluZzogMTBweDtcbn1cblxuLnBhZ2UtdHVybi1idXR0b24tY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtaW4td2lkdGg6IHVuc2V0O1xuICB3aWR0aDogMjBweDtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbn1cblxuLnBhZ2UtdHVybi1idXR0b24ge1xuICBoZWlnaHQ6IDEwMHB4O1xuICBtaW4td2lkdGg6IHVuc2V0O1xuICB3aWR0aDogMTVweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLnRvZ2dsZS1idXR0b24tY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBhbGlnbi1jb250ZW50OiByaWdodDtcbiAgYWxpZ24taXRlbXM6IHJpZ2h0O1xuICBtaW4td2lkdGg6IDUlO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMWVtO1xufVxuXG4udG9nZ2xlLWJ1dHRvbiB7XG4gIGhlaWdodDogMTAwcHg7XG4gIG1pbi13aWR0aDogdW5zZXQ7XG4gIHdpZHRoOiAxNXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4ucmlnaHQtb3V0ZXItZWxlbWVudCB7XG4gIG1hcmdpbi1yaWdodDogM2VtO1xufVxuXG4ucmlnaHQtaW5uZXItZWxlbWVudCB7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG59XG5cbi5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiByaWdodDtcbn1cblxuLmltYWdlcy1jb250YWluZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLmltYWdlLXNlbGwtY29udGFpbmVyIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbn0iXX0= */";
/***/
},
/***/
"./src/app/page-view-wrapper-component/page-view-wrapper.component.ts":
/*!****************************************************************************!*\
!*** ./src/app/page-view-wrapper-component/page-view-wrapper.component.ts ***!
\****************************************************************************/
/*! exports provided: PageViewWrapperComponent */
/***/
function srcAppPageViewWrapperComponentPageViewWrapperComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "PageViewWrapperComponent", function () {
return PageViewWrapperComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @angular/router */
"./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */
var _models_models__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ../models/models */
"./src/app/models/models.ts");
var PageViewWrapperComponent = /*#__PURE__*/function () {
function PageViewWrapperComponent(router, activatedRoute) {
_classCallCheck(this, PageViewWrapperComponent);
this.router = router;
this.activatedRoute = activatedRoute;
}
_createClass(PageViewWrapperComponent, [{
key: "ngOnInit",
value: function ngOnInit() {
var _this22 = this;
this.activatedRoute.queryParams.subscribe(function (queryParams) {
_this22.queryParams = new _models_models__WEBPACK_IMPORTED_MODULE_3__["TlnQueryParams"](queryParams.navBarOpenState, queryParams.NavContext, queryParams.manuscript, queryParams.page, queryParams.selectedLines, queryParams.selectedWords, queryParams.viewMode, queryParams.fullscreen, queryParams.zoom);
});
}
}]);
return PageViewWrapperComponent;
}();
PageViewWrapperComponent.ctorParameters = function () {
return [{
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"]
}, {
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"]
}];
};
PageViewWrapperComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-page-view-wrapper-component',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./page-view-wrapper.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/page-view-wrapper-component/page-view-wrapper.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./page-view-wrapper.component.scss */
"./src/app/page-view-wrapper-component/page-view-wrapper.component.scss"))["default"]]
})], PageViewWrapperComponent);
/***/
},
/***/
"./src/app/page-view/configurable-component.ts":
/*!*****************************************************!*\
!*** ./src/app/page-view/configurable-component.ts ***!
\*****************************************************/
/*! exports provided: ConfigurableComponent */
/***/
function srcAppPageViewConfigurableComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "ConfigurableComponent", function () {
return ConfigurableComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/**
* This is a super class of components that can be configured by passing
* a configuration to their inputs and running 'processConfiguration' in
* 'ngOnChanges'.
*
* E.g. given a configuration '{"ComponentName": { "ComponentProperty": value }}'
* if "ComponentName" is the name of the subclass component then
* 'processConfiguration' will update its property with name
* "ComponentProperty" to this value. If configuration uses wildcard "*" then
* all components that have a property with name "ComponentProperty" will
* update to this value.
**/
var ConfigurableComponent = /*#__PURE__*/function () {
function ConfigurableComponent() {
_classCallCheck(this, ConfigurableComponent);
/**
* index of configuration_listeners pointing to primary name of component
**/
this.primary_name_index = 1;
/**
* list of configuration keys
**/
this.configuration_listeners = ['*', this.constructor.name];
}
/**
* Process configuration by updating properties to given values if the keys
* in configuration_listeners are part of the configuration.
**/
_createClass(ConfigurableComponent, [{
key: "processConfiguration",
value: function processConfiguration() {
var _this23 = this;
this.configuration_listeners.forEach(function (key) {
if (key in _this23.configuration) {
Object.getOwnPropertyNames(_this23.configuration[key]).forEach(function (conf_key) {
if (conf_key in _this23) {
_this23[conf_key] = _this23.configuration[key][conf_key];
}
});
}
});
}
/**
* Add a further configuration key
**/
}, {
key: "addConfigurationName",
value: function addConfigurationName(configuration_listener) {
if (this.configuration_listeners.indexOf(configuration_listener) == -1) {
this.configuration_listeners.push(configuration_listener);
}
}
/**
* Get the primary name of the component.
**/
}, {
key: "getConfigurationName",
value: function getConfigurationName() {
return this.configuration_listeners[this.primary_name_index];
}
/**
* update configuration
**/
}, {
key: "ngOnChanges",
value: function ngOnChanges() {
if (this.configuration != null) {
this.processConfiguration();
}
}
}], [{
key: "updateConfiguration",
value: function updateConfiguration(oldConfiguration, newConfiguration) {
var _this24 = this;
if (oldConfiguration != null) {
Object.getOwnPropertyNames(newConfiguration).forEach(function (key) {
if (key in oldConfiguration && typeof oldConfiguration[key] == 'object' && typeof newConfiguration[key] == 'object') {
oldConfiguration[key] = _this24.updateConfiguration(oldConfiguration[key], newConfiguration[key]);
} else {
oldConfiguration[key] = newConfiguration[key];
}
});
return oldConfiguration;
} else {
return newConfiguration;
}
}
}]);
return ConfigurableComponent;
}();
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], ConfigurableComponent.prototype, "configuration", void 0);
/***/
},
/***/
"./src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.css":
/*!***********************************************************************************!*\
!*** ./src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.css ***!
\***********************************************************************************/
/*! exports provided: default */
/***/
function srcAppPageViewCopyrightCopyrightSheetCopyrightSheetComponentCss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = "\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhcHAvcGFnZS12aWV3L2NvcHlyaWdodC9jb3B5cmlnaHQtc2hlZXQvY29weXJpZ2h0LXNoZWV0LmNvbXBvbmVudC5jc3MifQ== */";
+ __webpack_exports__["default"] = "\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJwYWdlLXZpZXcvY29weXJpZ2h0L2NvcHlyaWdodC1zaGVldC9jb3B5cmlnaHQtc2hlZXQuY29tcG9uZW50LmNzcyJ9 */";
/***/
},
/***/
"./src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.ts":
/*!**********************************************************************************!*\
!*** ./src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.ts ***!
\**********************************************************************************/
/*! exports provided: CopyrightSheetComponent */
/***/
function srcAppPageViewCopyrightCopyrightSheetCopyrightSheetComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "CopyrightSheetComponent", function () {
return CopyrightSheetComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @angular/material/bottom-sheet */
"./node_modules/@angular/material/esm2015/bottom-sheet.js");
var CopyrightSheetComponent = /*#__PURE__*/function () {
function CopyrightSheetComponent(copyright) {
_classCallCheck(this, CopyrightSheetComponent);
this.copyright = copyright;
}
_createClass(CopyrightSheetComponent, [{
key: "ngOnInit",
value: function ngOnInit() {}
}]);
return CopyrightSheetComponent;
}();
CopyrightSheetComponent.ctorParameters = function () {
return [{
type: undefined,
decorators: [{
type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Inject"],
args: [_angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_2__["MAT_BOTTOM_SHEET_DATA"]]
}]
}];
};
CopyrightSheetComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'copyright-sheet',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./copyright-sheet.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./copyright-sheet.component.css */
"./src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.css"))["default"]]
}), tslib__WEBPACK_IMPORTED_MODULE_0__["__param"](0, Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Inject"])(_angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_2__["MAT_BOTTOM_SHEET_DATA"]))], CopyrightSheetComponent);
/***/
},
/***/
"./src/app/page-view/copyright/copyright.component.css":
/*!*************************************************************!*\
!*** ./src/app/page-view/copyright/copyright.component.css ***!
\*************************************************************/
/*! exports provided: default */
/***/
function srcAppPageViewCopyrightCopyrightComponentCss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = "#circle {\n fill: none;\n}\n#cc {\n fill: grey;\n opacity: 0.2;\n cursor: pointer;\n}\n\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9wYWdlLXZpZXcvY29weXJpZ2h0L2NvcHlyaWdodC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0dBQ0csVUFBVTtBQUNiO0FBQ0E7R0FDRyxVQUFVO0dBQ1YsWUFBWTtHQUNaLGVBQWU7QUFDbEIiLCJmaWxlIjoiYXBwL3BhZ2Utdmlldy9jb3B5cmlnaHQvY29weXJpZ2h0LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjY2lyY2xlIHtcbiAgIGZpbGw6IG5vbmU7XG59XG4jY2Mge1xuICAgZmlsbDogZ3JleTtcbiAgIG9wYWNpdHk6IDAuMjtcbiAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuIl19 */";
+ __webpack_exports__["default"] = "#circle {\n fill: none;\n}\n#cc {\n fill: grey;\n opacity: 0.2;\n cursor: pointer;\n}\n\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhZ2Utdmlldy9jb3B5cmlnaHQvY29weXJpZ2h0LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxVQUFVO0FBQ2I7QUFDQTtHQUNHLFVBQVU7R0FDVixZQUFZO0dBQ1osZUFBZTtBQUNsQiIsImZpbGUiOiJwYWdlLXZpZXcvY29weXJpZ2h0L2NvcHlyaWdodC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI2NpcmNsZSB7XG4gICBmaWxsOiBub25lO1xufVxuI2NjIHtcbiAgIGZpbGw6IGdyZXk7XG4gICBvcGFjaXR5OiAwLjI7XG4gICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbiJdfQ== */";
/***/
},
/***/
"./src/app/page-view/copyright/copyright.component.ts":
/*!************************************************************!*\
!*** ./src/app/page-view/copyright/copyright.component.ts ***!
\************************************************************/
/*! exports provided: CopyrightComponent */
/***/
function srcAppPageViewCopyrightCopyrightComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "CopyrightComponent", function () {
return CopyrightComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @angular/material/bottom-sheet */
"./node_modules/@angular/material/esm2015/bottom-sheet.js");
/* harmony import */
var _page_view_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ../page-view.service */
"./src/app/page-view/page-view.service.ts");
/* harmony import */
var _copyright_sheet_copyright_sheet_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! ./copyright-sheet/copyright-sheet.component */
"./src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.ts");
var CopyrightComponent = /*#__PURE__*/function () {
function CopyrightComponent(bottomSheet, pageViewService) {
_classCallCheck(this, CopyrightComponent);
this.bottomSheet = bottomSheet;
this.pageViewService = pageViewService;
this.highlight = false;
}
_createClass(CopyrightComponent, [{
key: "ngOnInit",
value: function ngOnInit() {}
}, {
key: "setHighlight",
value: function setHighlight(highlight) {
this.highlight = highlight;
}
}, {
key: "showCopyrightInformation",
value: function showCopyrightInformation(e) {
/*let point: Point = { visible: true, clientX: e.clientX, clientY: e.clientY, layerX: e.layerX, layerY: e.layerY }
this.pageViewService.copyrightService(this.copyright, point);*/
this.bottomSheet.open(_copyright_sheet_copyright_sheet_component__WEBPACK_IMPORTED_MODULE_4__["CopyrightSheetComponent"], {
data: this.copyright
});
}
}]);
return CopyrightComponent;
}();
CopyrightComponent.ctorParameters = function () {
return [{
type: _angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_2__["MatBottomSheet"]
}, {
type: _page_view_service__WEBPACK_IMPORTED_MODULE_3__["PageViewService"]
}];
};
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], CopyrightComponent.prototype, "dimension", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], CopyrightComponent.prototype, "copyright", void 0);
CopyrightComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'copyright',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./copyright.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/copyright/copyright.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./copyright.component.css */
"./src/app/page-view/copyright/copyright.component.css"))["default"]]
})], CopyrightComponent);
/***/
},
/***/
"./src/app/page-view/highlight_status.ts":
/*!***********************************************!*\
!*** ./src/app/page-view/highlight_status.ts ***!
\***********************************************/
/*! exports provided: HIGHTLIGHT_CASES */
/***/
function srcAppPageViewHighlight_statusTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "HIGHTLIGHT_CASES", function () {
return HIGHTLIGHT_CASES;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
var HIGHTLIGHT_CASES;
(function (HIGHTLIGHT_CASES) {
HIGHTLIGHT_CASES["DEFAULT"] = "default";
HIGHTLIGHT_CASES["LINE_HOVERED"] = "hovered line";
HIGHTLIGHT_CASES["SEARCHED_WORD"] = "text of word == findText";
HIGHTLIGHT_CASES["SELECTED_LINE"] = "selected line";
HIGHTLIGHT_CASES["SELECTED_WORD"] = "selected word";
HIGHTLIGHT_CASES["WORD_HOVERED"] = "hovered word";
})(HIGHTLIGHT_CASES || (HIGHTLIGHT_CASES = {}));
/***/
},
/***/
"./src/app/page-view/interacted.directive.ts":
/*!***************************************************!*\
!*** ./src/app/page-view/interacted.directive.ts ***!
\***************************************************/
/*! exports provided: InteractedDirective */
/***/
function srcAppPageViewInteractedDirectiveTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "InteractedDirective", function () {
return InteractedDirective;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _page_view_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! ./page-view.service */
"./src/app/page-view/page-view.service.ts");
/**
* This directive informs the {@link /injectables/PageViewService.html|PageViewService} about
* mouse events on interactable objects and scrolls interactable objects in view if they are
* invisible.
**/
var InteractedDirective = /*#__PURE__*/function () {
function InteractedDirective(pageViewService, el) {
_classCallCheck(this, InteractedDirective);
this.pageViewService = pageViewService;
this.el = el;
/**
* the identification string of this Interactable's textfield (e.g. 'first textfield' or 'second textfield')
**/
this.identity = 'first textfield';
/**
* The time (in milliseconds) the timer should wait before
* the element is scrolled in view.
**/
this.delay = 500;
/**
* The ID of the timeout set by {@link /directives/InteractedDirective.html#timeoutScroll|timeoutScroll}.
**/
this.timeoutID = -1;
/**
* Whether or not the element should scroll into view when the timer expires.
**/
this.doScroll = false;
this.xyOffset = {
x: 0,
y: 0
};
}
/**
* Subscribe to on/offHovered and onClicked methods of the {@link /injectables/PageViewService.html|PageViewService}
* and scroll hovered object in view if it is invisible.
**/
_createClass(InteractedDirective, [{
key: "ngOnInit",
value: function ngOnInit() {
var _this25 = this;
if (this.container != null && this.container != undefined) {
var containerRect = this.container.getBoundingClientRect();
this.xyOffset = {
x: containerRect.left,
y: containerRect.top
};
}
this.interactedObject.textfield_identity = this.identity;
this.pageViewService.onClickedWord.subscribe(function (clickedWord) {
_this25.scrollIntoViewIfNeeded(clickedWord, 'Word', 0);
});
this.pageViewService.onHoveredWord.subscribe(function (hoveredWord) {
_this25.scrollIntoViewIfNeeded(hoveredWord, 'Word');
});
this.pageViewService.offHoveredWord.subscribe(function (hoveredWord) {
_this25.clearTimeout();
});
this.pageViewService.offHoveredLine.subscribe(function (hoveredLine) {
_this25.clearTimeout();
});
this.pageViewService.onHoveredLine.subscribe(function (hoveredLine) {
_this25.scrollIntoViewIfNeeded(hoveredLine, 'Line');
});
this.pageViewService.onClickedLine.subscribe(function (clickedLine) {
_this25.scrollIntoViewIfNeeded(clickedLine, 'Line', 0);
});
}
/**
* Clear timeout and prevent element from scrolling into view.
**/
}, {
key: "clearTimeout",
value: function (_clearTimeout) {
function clearTimeout() {
return _clearTimeout.apply(this, arguments);
}
clearTimeout.toString = function () {
return _clearTimeout.toString();
};
return clearTimeout;
}(function () {
if (this.timeoutID != -1) {
this.doScroll = false;
clearTimeout(this.timeoutID);
this.timeoutID = -1;
}
}
/**
* Scroll interactable object in view if it is invisible.
* @param hoveredItem interactable object that is hovered
* @param hoveredType string representation of object's type (i.e. 'Word' | 'Line')
**/
)
}, {
key: "scrollIntoViewIfNeeded",
value: function scrollIntoViewIfNeeded(hoveredItem, hoveredType) {
var delay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.delay;
if (hoveredType == 'Word' && this.interactedObject.datatype == 'Word' && this.identity != hoveredItem.textfield_identity) {
var hoveredWord = hoveredItem;
var currentWord = this.interactedObject;
if (currentWord.id == hoveredWord.id && currentWord.is_top_object && this.isElementInvisible()) {
this.timeoutScroll(delay);
}
} else if (hoveredType == 'Line' && this.interactedObject.datatype == 'Line') {
var hoveredLine = hoveredItem;
var currentLine = this.interactedObject;
if (currentLine !== hoveredLine && currentLine.id == hoveredLine.id && this.isElementInvisible()) {
this.timeoutScroll(delay);
}
}
}
/**
* Scroll element in view if timeout has not been canceled during its countdown.
**/
}, {
key: "timeoutScroll",
value: function timeoutScroll(delay) {
var _this26 = this;
var behavior = delay == 0 ? "instant" : "smooth";
this.doScroll = true;
this.timeoutID = window.setTimeout(function () {
if (_this26.doScroll) {
_this26.el.nativeElement.scrollIntoView({
'behavior': behavior
});
}
}, delay);
}
/**
* Return whether interactable object is invisible, i.e. whether it is outside of
* its scrollable container's viewport.
**/
}, {
key: "isElementInvisible",
value: function isElementInvisible() {
if (this.container == null || this.container == undefined || this.container.getAttribute('class') == 'inline') {
return false;
}
var myRect = this.el.nativeElement.getBoundingClientRect();
var containerRect = this.container.getBoundingClientRect();
return myRect.top < containerRect.top || myRect.bottom > containerRect.bottom || myRect.left < containerRect.left || myRect.right > containerRect.right;
}
/**
* informs the {@link /injectables/PageViewService.html|PageViewService} about
* click events on {@link #interactedObject|interactedObject}.
**/
}, {
key: "onMouseClick",
value: function onMouseClick(e) {
this.pageViewService.onClickService(this.interactedObject, {
visible: true,
layerX: e.layerX,
layerY: e.layerY,
clientX: e.clientX,
clientY: e.clientY
});
}
/**
* informs the {@link /injectables/PageViewService.html|PageViewService} about
* mouse enter events on {@link #interactedObject|interactedObject}.
**/
}, {
key: "onMouseEnter",
value: function onMouseEnter(e) {
this.pageViewService.onHoverService(this.interactedObject, {
visible: true,
layerX: e.layerX,
layerY: e.layerY,
clientX: e.clientX,
clientY: e.clientY
});
}
/**
* informs the {@link /injectables/PageViewService.html|PageViewService} about
* mouse leave events on {@link #interactedObject|interactedObject}.
**/
}, {
key: "onMouseLeave",
value: function onMouseLeave() {
this.pageViewService.offHoverService(this.interactedObject);
}
}]);
return InteractedDirective;
}();
InteractedDirective.ctorParameters = function () {
return [{
type: _page_view_service__WEBPACK_IMPORTED_MODULE_2__["PageViewService"]
}, {
type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ElementRef"]
}];
};
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('interactedObject')], InteractedDirective.prototype, "interactedObject", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], InteractedDirective.prototype, "identity", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], InteractedDirective.prototype, "container", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["HostListener"])('click', ['$event'])], InteractedDirective.prototype, "onMouseClick", null);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["HostListener"])('mouseenter', ['$event'])], InteractedDirective.prototype, "onMouseEnter", null);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["HostListener"])('mouseleave')], InteractedDirective.prototype, "onMouseLeave", null);
InteractedDirective = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Directive"])({
selector: '[interactedObject]'
})], InteractedDirective);
/***/
},
/***/
"./src/app/page-view/margin-field/line-reference/line-reference.component.css":
/*!************************************************************************************!*\
!*** ./src/app/page-view/margin-field/line-reference/line-reference.component.css ***!
\************************************************************************************/
/*! exports provided: default */
/***/
function srcAppPageViewMarginFieldLineReferenceLineReferenceComponentCss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = ".unhighlighted {\n fill: white;\n opacity: 0.0;\n}\n.highlighted {\n fill: lightgrey;\n opacity: 0.3;\n}\n.mouse-pointer {\n cursor: pointer;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9wYWdlLXZpZXcvbWFyZ2luLWZpZWxkL2xpbmUtcmVmZXJlbmNlL2xpbmUtcmVmZXJlbmNlLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxXQUFXO0dBQ1gsWUFBWTtBQUNmO0FBQ0E7R0FDRyxlQUFlO0dBQ2YsWUFBWTtBQUNmO0FBQ0E7R0FDRyxlQUFlO0FBQ2xCIiwiZmlsZSI6ImFwcC9wYWdlLXZpZXcvbWFyZ2luLWZpZWxkL2xpbmUtcmVmZXJlbmNlL2xpbmUtcmVmZXJlbmNlLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudW5oaWdobGlnaHRlZCB7XG4gICBmaWxsOiB3aGl0ZTtcbiAgIG9wYWNpdHk6IDAuMDtcbn1cbi5oaWdobGlnaHRlZCB7XG4gICBmaWxsOiBsaWdodGdyZXk7XG4gICBvcGFjaXR5OiAwLjM7XG59XG4ubW91c2UtcG9pbnRlciB7XG4gICBjdXJzb3I6IHBvaW50ZXI7XG59XG4iXX0= */";
+ __webpack_exports__["default"] = ".unhighlighted {\n fill: white;\n opacity: 0.0;\n}\n.highlighted {\n fill: lightgrey;\n opacity: 0.3;\n}\n.mouse-pointer {\n cursor: pointer;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhZ2Utdmlldy9tYXJnaW4tZmllbGQvbGluZS1yZWZlcmVuY2UvbGluZS1yZWZlcmVuY2UuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLFdBQVc7R0FDWCxZQUFZO0FBQ2Y7QUFDQTtHQUNHLGVBQWU7R0FDZixZQUFZO0FBQ2Y7QUFDQTtHQUNHLGVBQWU7QUFDbEIiLCJmaWxlIjoicGFnZS12aWV3L21hcmdpbi1maWVsZC9saW5lLXJlZmVyZW5jZS9saW5lLXJlZmVyZW5jZS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnVuaGlnaGxpZ2h0ZWQge1xuICAgZmlsbDogd2hpdGU7XG4gICBvcGFjaXR5OiAwLjA7XG59XG4uaGlnaGxpZ2h0ZWQge1xuICAgZmlsbDogbGlnaHRncmV5O1xuICAgb3BhY2l0eTogMC4zO1xufVxuLm1vdXNlLXBvaW50ZXIge1xuICAgY3Vyc29yOiBwb2ludGVyO1xufVxuIl19 */";
/***/
},
/***/
"./src/app/page-view/margin-field/line-reference/line-reference.component.ts":
/*!***********************************************************************************!*\
!*** ./src/app/page-view/margin-field/line-reference/line-reference.component.ts ***!
\***********************************************************************************/
/*! exports provided: LineReferenceComponent */
/***/
function srcAppPageViewMarginFieldLineReferenceLineReferenceComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "LineReferenceComponent", function () {
return LineReferenceComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _page_view_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! ../../page-view.service */
"./src/app/page-view/page-view.service.ts");
var LineReferenceComponent = /*#__PURE__*/function () {
function LineReferenceComponent(pageViewService) {
_classCallCheck(this, LineReferenceComponent);
this.pageViewService = pageViewService;
this.highlighted = false;
}
_createClass(LineReferenceComponent, [{
key: "ngOnInit",
value: function ngOnInit() {
if (this.line != null && this.referenceName != '' && (this.referenceName == 'to' && this.line.continuesTo != null || this.referenceName == 'from' && this.line.continuesFrom != null)) {
this.reference = this.referenceName == 'to' ? this.line.continuesTo : this.line.continuesFrom;
this.continuation = {
source: this.line.source,
reference: this.reference,
datatype: 'Continuation',
show: this.referenceName
};
}
}
}, {
key: "showReference",
value: function showReference(show, e) {
this.highlighted = show;
var point = {
visible: show,
clientX: e.clientX - 10,
clientY: e.clientY - 80,
layerX: e.layerX,
layerY: e.layerY
};
if (show) {
this.pageViewService.onHoverService(this.continuation, point);
this.pageViewService.onHoverService(this.line);
} else {
this.pageViewService.offHoverService(this.continuation);
this.pageViewService.offHoverService(this.line);
}
}
}, {
key: "changeLocation",
value: function changeLocation() {
this.pageViewService.referenceService(this.reference);
}
}]);
return LineReferenceComponent;
}();
LineReferenceComponent.ctorParameters = function () {
return [{
type: _page_view_service__WEBPACK_IMPORTED_MODULE_2__["PageViewService"]
}];
};
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], LineReferenceComponent.prototype, "line", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('showReference')], LineReferenceComponent.prototype, "referenceName", void 0);
LineReferenceComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'line-reference',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./line-reference.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/margin-field/line-reference/line-reference.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./line-reference.component.css */
"./src/app/page-view/margin-field/line-reference/line-reference.component.css"))["default"]]
})], LineReferenceComponent);
/***/
},
/***/
"./src/app/page-view/margin-field/margin-field.component.css":
/*!*******************************************************************!*\
!*** ./src/app/page-view/margin-field/margin-field.component.css ***!
\*******************************************************************/
/*! exports provided: default */
/***/
function srcAppPageViewMarginFieldMarginFieldComponentCss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = ".marginfield {\n background-color: white;\n cursor: default;\n}\n\n.marginfield .text {\n font-size: 8px;\n}\n\n.marginfield .unhighlighted {\n fill: white;\n opacity: 0.0;\n}\n\n.marginfield .highlight {\n fill: yellow;\n opacity: 0.3;\n}\n\n.marginfield .border {\n stroke: #e2fa00;\n stroke-width:5;\n opacity: 0.3;\n}\n\n.marginfield .howered_line {\n fill: #fa301c;\n opacity: 0.3;\n}\n\n.marginfield .same_word {\n fill: #c9fac5;\n opacity: 0.3;\n}\n\n.text_fadeout {\n fill: #a4a4a4;\n}\n\n.hover {\n transform: scale(1.5);\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9wYWdlLXZpZXcvbWFyZ2luLWZpZWxkL21hcmdpbi1maWVsZC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsdUJBQXVCO0VBQ3ZCLGVBQWU7QUFDakI7O0FBRUE7R0FDRyxjQUFjO0FBQ2pCOztBQUVBO0dBQ0csV0FBVztHQUNYLFlBQVk7QUFDZjs7QUFDQTtHQUNHLFlBQVk7R0FDWixZQUFZO0FBQ2Y7O0FBQ0E7RUFDRSxlQUFlO0VBQ2YsY0FBYztFQUNkLFlBQVk7QUFDZDs7QUFDQTtFQUNFLGFBQWE7RUFDYixZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsWUFBWTtBQUNkOztBQUVBO0VBQ0UsYUFBYTtBQUNmOztBQUVBO0VBQ0UscUJBQXFCO0FBQ3ZCIiwiZmlsZSI6ImFwcC9wYWdlLXZpZXcvbWFyZ2luLWZpZWxkL21hcmdpbi1maWVsZC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1hcmdpbmZpZWxkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLm1hcmdpbmZpZWxkIC50ZXh0IHtcbiAgIGZvbnQtc2l6ZTogOHB4O1xufVxuXG4ubWFyZ2luZmllbGQgLnVuaGlnaGxpZ2h0ZWQge1xuICAgZmlsbDogd2hpdGU7XG4gICBvcGFjaXR5OiAwLjA7XG59XG4ubWFyZ2luZmllbGQgLmhpZ2hsaWdodCB7XG4gICBmaWxsOiB5ZWxsb3c7XG4gICBvcGFjaXR5OiAwLjM7XG59XG4ubWFyZ2luZmllbGQgLmJvcmRlciB7XG4gIHN0cm9rZTogI2UyZmEwMDtcbiAgc3Ryb2tlLXdpZHRoOjU7XG4gIG9wYWNpdHk6IDAuMztcbn1cbi5tYXJnaW5maWVsZCAuaG93ZXJlZF9saW5lIHtcbiAgZmlsbDogI2ZhMzAxYztcbiAgb3BhY2l0eTogMC4zO1xufVxuXG4ubWFyZ2luZmllbGQgLnNhbWVfd29yZCB7XG4gIGZpbGw6ICNjOWZhYzU7XG4gIG9wYWNpdHk6IDAuMztcbn1cblxuLnRleHRfZmFkZW91dCB7XG4gIGZpbGw6ICNhNGE0YTQ7XG59XG5cbi5ob3ZlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbn1cbiJdfQ== */";
+ __webpack_exports__["default"] = ".marginfield {\n background-color: white;\n cursor: default;\n}\n\n.marginfield .text {\n font-size: 8px;\n}\n\n.marginfield .unhighlighted {\n fill: white;\n opacity: 0.0;\n}\n\n.marginfield .highlight {\n fill: yellow;\n opacity: 0.3;\n}\n\n.marginfield .border {\n stroke: #e2fa00;\n stroke-width:5;\n opacity: 0.3;\n}\n\n.marginfield .howered_line {\n fill: #fa301c;\n opacity: 0.3;\n}\n\n.marginfield .same_word {\n fill: #c9fac5;\n opacity: 0.3;\n}\n\n.text_fadeout {\n fill: #a4a4a4;\n}\n\n.hover {\n transform: scale(1.5);\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhZ2Utdmlldy9tYXJnaW4tZmllbGQvbWFyZ2luLWZpZWxkLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSx1QkFBdUI7RUFDdkIsZUFBZTtBQUNqQjs7QUFFQTtHQUNHLGNBQWM7QUFDakI7O0FBRUE7R0FDRyxXQUFXO0dBQ1gsWUFBWTtBQUNmOztBQUNBO0dBQ0csWUFBWTtHQUNaLFlBQVk7QUFDZjs7QUFDQTtFQUNFLGVBQWU7RUFDZixjQUFjO0VBQ2QsWUFBWTtBQUNkOztBQUNBO0VBQ0UsYUFBYTtFQUNiLFlBQVk7QUFDZDs7QUFFQTtFQUNFLGFBQWE7RUFDYixZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxxQkFBcUI7QUFDdkIiLCJmaWxlIjoicGFnZS12aWV3L21hcmdpbi1maWVsZC9tYXJnaW4tZmllbGQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tYXJnaW5maWVsZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5tYXJnaW5maWVsZCAudGV4dCB7XG4gICBmb250LXNpemU6IDhweDtcbn1cblxuLm1hcmdpbmZpZWxkIC51bmhpZ2hsaWdodGVkIHtcbiAgIGZpbGw6IHdoaXRlO1xuICAgb3BhY2l0eTogMC4wO1xufVxuLm1hcmdpbmZpZWxkIC5oaWdobGlnaHQge1xuICAgZmlsbDogeWVsbG93O1xuICAgb3BhY2l0eTogMC4zO1xufVxuLm1hcmdpbmZpZWxkIC5ib3JkZXIge1xuICBzdHJva2U6ICNlMmZhMDA7XG4gIHN0cm9rZS13aWR0aDo1O1xuICBvcGFjaXR5OiAwLjM7XG59XG4ubWFyZ2luZmllbGQgLmhvd2VyZWRfbGluZSB7XG4gIGZpbGw6ICNmYTMwMWM7XG4gIG9wYWNpdHk6IDAuMztcbn1cblxuLm1hcmdpbmZpZWxkIC5zYW1lX3dvcmQge1xuICBmaWxsOiAjYzlmYWM1O1xuICBvcGFjaXR5OiAwLjM7XG59XG5cbi50ZXh0X2ZhZGVvdXQge1xuICBmaWxsOiAjYTRhNGE0O1xufVxuXG4uaG92ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG59XG4iXX0= */";
/***/
},
/***/
"./src/app/page-view/margin-field/margin-field.component.ts":
/*!******************************************************************!*\
!*** ./src/app/page-view/margin-field/margin-field.component.ts ***!
\******************************************************************/
/*! exports provided: MarginFieldComponent */
/***/
function srcAppPageViewMarginFieldMarginFieldComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "MarginFieldComponent", function () {
return MarginFieldComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _page_view_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! ../page-view.service */
"./src/app/page-view/page-view.service.ts");
/* harmony import */
var _highlight_status__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ../highlight_status */
"./src/app/page-view/highlight_status.ts");
/**
* This component displays an Array of lines.
**/
var MarginFieldComponent = /*#__PURE__*/function () {
/**
* @param lineservice an information source about (un-)hovered and clicked Lines/Words.
**/
function MarginFieldComponent(lineservice) {
_classCallCheck(this, MarginFieldComponent);
this.lineservice = lineservice;
/**
* the hovered status for a line
**/
this.HOVERED_STATUS = _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].LINE_HOVERED;
this.SELECTED_STATUS = _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].SELECTED_LINE;
/**
* the height of a line rect.
**/
this.line_height = 8;
/**
* the length of the line rect.
**/
this.line_length = 10;
/**
* x coordinate of the line rect.
**/
this.line_x = 5;
/**
* the height of the margin field.
**/
this.margin_height = 973.91998;
/**
* geometrical top position of the margin field.
**/
this.margin_top = 0;
/**
* the width of the margin field.
**/
this.margin_width = 30;
/**
* specifies reference type that should be displayed
**/
this.showReference = "to";
/**
* The viewbox of this svg component.
**/
this.viewBox = '';
/**
* initial maximum height of margin field.
**/
this.max_height = -1;
/**
* initial maximum width of margin field.
**/
this.max_width = -1;
/**
* identifiers of selected lines that should be highlighted.
**/
this.selectedLines = [];
/**
* global zoom factor
**/
this.zoomFactor = 1;
/**
* local zoom factor
**/
this.local_zoom = 1;
}
/**
* Initialize geometrical information and subscribe to {@link /injectables/PageViewService.html|PageViewService}.
**/
_createClass(MarginFieldComponent, [{
key: "ngOnInit",
value: function ngOnInit() {
var _this27 = this;
if (this.max_height == -1 && this.max_width == -1) {
this.max_height = screen.availHeight;
}
this.viewBox = 0 + ' ' + this.margin_top + ' ' + this.margin_width + ' ' + this.margin_height;
if (this.text_field != null) {
this.updateViewBox();
}
this.lineservice.onHoveredLine.subscribe(function (changedLine) {
_this27.hoveredLine = changedLine;
});
this.lineservice.onHoveredContinuation.subscribe(function (changedContinuation) {
_this27.hoveredReferenceLine = changedContinuation.reference.line;
});
this.lineservice.offHoveredContinuation.subscribe(function (changedContinuation) {
_this27.hoveredReferenceLine = null;
});
this.lineservice.offHoveredLine.subscribe(function (changedLine) {
_this27.hoveredLine = null;
});
this.lineservice.onHoveredWord.subscribe(function (changedWord) {
_this27.hoveredWord = changedWord;
});
this.lineservice.offHoveredWord.subscribe(function (changedWord) {
_this27.hoveredWord = null;
});
}
/**
* Update viewBox if there is a change.
**/
}, {
key: "ngOnChanges",
value: function ngOnChanges(changes) {
if (this.text_field != null) {
this.updateViewBox();
}
}
/**
* Update viewBox: set
* {@link #margin_height|margin_height},
* {@link #margin_top|margin_top},
* {@link #viewBox|viewBox}
* and {@link #local_zoom|local_zoom} according to
* {@link #text_field|text_field}.
**/
}, {
key: "updateViewBox",
value: function updateViewBox() {
this.lines.forEach(function (line) {
return line.datatype = "Line";
});
if (this.showReference == 'to') {
this.margin_width = this.lines.some(function (line) {
return line.continuesTo != null || line.continuesTo != undefined;
}) ? this.line_length * 2 + 30 : 30;
} else {
var hasReference = this.lines.some(function (line) {
return line.continuesFrom != null || line.continuesFrom != undefined;
});
this.margin_width = this.showReference == 'from' && hasReference ? this.line_length * 2 + 30 : 30;
this.line_x = this.showReference == 'from' && hasReference ? 2 * this.line_length : 5;
}
this.margin_height = this.text_field.height;
this.margin_top = this.text_field.top;
this.viewBox = 0 + ' ' + this.margin_top + ' ' + this.margin_width + ' ' + this.margin_height;
this.local_zoom = this.max_height != -1 && this.max_width == -1 ? this.max_height / this.text_field.height : this.max_width / this.text_field.width;
if (this.max_width == -1 && this.text_field.height < this.text_field.width) {
this.local_zoom = (window.innerWidth / 2 - 100) / this.text_field.width;
}
}
/**
* Get the hover status of a line, i.e. whether it is hovered
* ({@link /miscellaneous/enumerations.html#HIGHTLIGHT_CASES|HIGHTLIGHT_CASES.LINE_HOVERED})
* or not ({@link /miscellaneous/enumerations.html#HIGHTLIGHT_CASES|HIGHTLIGHT_CASES.DEFAULT}).
**/
}, {
key: "getHoverStatus",
value: function getHoverStatus(line) {
if (this.hoveredLine != undefined && this.hoveredLine != null && line.id == this.hoveredLine.id || this.hoveredReferenceLine != undefined && this.hoveredReferenceLine != null && line.id == this.hoveredReferenceLine.id || this.hoveredWord != undefined && this.hoveredWord != null && line.id == this.hoveredWord.line) {
return _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].LINE_HOVERED;
} else if (this.selectedLines.length > 0 && this.selectedLines.indexOf(line.id) > -1) {
return _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].SELECTED_LINE;
} else {
return _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].DEFAULT;
}
}
/**
* Assign a style to the rects of a line.
**/
}, {
key: "assignStyle",
value: function assignStyle(line, hoveredWord, hoveredLine, hoverStatus) {
return this.extAssignStyle != null ? this.extAssignStyle(line, hoveredWord, hoveredLine, hoverStatus) : {};
}
}]);
return MarginFieldComponent;
}();
MarginFieldComponent.ctorParameters = function () {
return [{
type: _page_view_service__WEBPACK_IMPORTED_MODULE_2__["PageViewService"]
}];
};
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], MarginFieldComponent.prototype, "container", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], MarginFieldComponent.prototype, "lines", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], MarginFieldComponent.prototype, "showReference", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], MarginFieldComponent.prototype, "text_field", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], MarginFieldComponent.prototype, "max_height", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], MarginFieldComponent.prototype, "max_width", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], MarginFieldComponent.prototype, "selectedLines", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], MarginFieldComponent.prototype, "zoomFactor", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('assignStyle')], MarginFieldComponent.prototype, "extAssignStyle", void 0);
MarginFieldComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'margin-field',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./margin-field.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/margin-field/margin-field.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./margin-field.component.css */
"./src/app/page-view/margin-field/margin-field.component.css"))["default"]]
})], MarginFieldComponent);
/***/
},
/***/
"./src/app/page-view/page-view.component.css":
/*!***************************************************!*\
!*** ./src/app/page-view/page-view.component.css ***!
\***************************************************/
/*! exports provided: default */
/***/
function srcAppPageViewPageViewComponentCss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = "#page {\n width: 100%;\n margin: 0;\n padding: 0;\n white-space: nowrap;\n}\n.inline {\n display: inline-block;\n}\n.breakline {\n display: block;\n height: 50%;\n overflow: scroll;\n}\n.gap {\n display: inline-block;\n width: 1px;\n height: 100%;\n margin: 0;\n}\n#margin {\n display: inline-block;\n height: 100%;\n margin: 0;\n}\n#textfield {\n display: inline-block;\n /*width: 95%;*/\n height: 100%;\n margin: 0;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9wYWdlLXZpZXcvcGFnZS12aWV3LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxXQUFXO0dBQ1gsU0FBUztHQUNULFVBQVU7R0FDVixtQkFBbUI7QUFDdEI7QUFDQTtHQUNHLHFCQUFxQjtBQUN4QjtBQUNBO0dBQ0csY0FBYztHQUNkLFdBQVc7R0FDWCxnQkFBZ0I7QUFDbkI7QUFDQTtHQUNHLHFCQUFxQjtHQUNyQixVQUFVO0dBQ1YsWUFBWTtHQUNaLFNBQVM7QUFDWjtBQUNBO0dBQ0cscUJBQXFCO0dBQ3JCLFlBQVk7R0FDWixTQUFTO0FBQ1o7QUFDQTtHQUNHLHFCQUFxQjtHQUNyQixjQUFjO0dBQ2QsWUFBWTtHQUNaLFNBQVM7QUFDWiIsImZpbGUiOiJhcHAvcGFnZS12aWV3L3BhZ2Utdmlldy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI3BhZ2Uge1xuICAgd2lkdGg6IDEwMCU7XG4gICBtYXJnaW46IDA7XG4gICBwYWRkaW5nOiAwO1xuICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5pbmxpbmUge1xuICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLmJyZWFrbGluZSB7XG4gICBkaXNwbGF5OiBibG9jaztcbiAgIGhlaWdodDogNTAlO1xuICAgb3ZlcmZsb3c6IHNjcm9sbDtcbn1cbi5nYXAge1xuICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgd2lkdGg6IDFweDtcbiAgIGhlaWdodDogMTAwJTtcbiAgIG1hcmdpbjogMDtcbn1cbiNtYXJnaW4ge1xuICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgaGVpZ2h0OiAxMDAlO1xuICAgbWFyZ2luOiAwO1xufVxuI3RleHRmaWVsZCB7XG4gICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAvKndpZHRoOiA5NSU7Ki9cbiAgIGhlaWdodDogMTAwJTtcbiAgIG1hcmdpbjogMDtcbn1cbiJdfQ== */";
+ __webpack_exports__["default"] = "#page {\n width: 100%;\n margin: 0;\n padding: 0;\n white-space: nowrap;\n}\n.inline {\n display: inline-block;\n}\n.breakline {\n display: block;\n height: 50%;\n overflow: scroll;\n}\n.gap {\n display: inline-block;\n width: 1px;\n height: 100%;\n margin: 0;\n}\n#margin {\n display: inline-block;\n height: 100%;\n margin: 0;\n}\n#textfield {\n display: inline-block;\n /*width: 95%;*/\n height: 100%;\n margin: 0;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhZ2Utdmlldy9wYWdlLXZpZXcuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLFdBQVc7R0FDWCxTQUFTO0dBQ1QsVUFBVTtHQUNWLG1CQUFtQjtBQUN0QjtBQUNBO0dBQ0cscUJBQXFCO0FBQ3hCO0FBQ0E7R0FDRyxjQUFjO0dBQ2QsV0FBVztHQUNYLGdCQUFnQjtBQUNuQjtBQUNBO0dBQ0cscUJBQXFCO0dBQ3JCLFVBQVU7R0FDVixZQUFZO0dBQ1osU0FBUztBQUNaO0FBQ0E7R0FDRyxxQkFBcUI7R0FDckIsWUFBWTtHQUNaLFNBQVM7QUFDWjtBQUNBO0dBQ0cscUJBQXFCO0dBQ3JCLGNBQWM7R0FDZCxZQUFZO0dBQ1osU0FBUztBQUNaIiwiZmlsZSI6InBhZ2Utdmlldy9wYWdlLXZpZXcuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiNwYWdlIHtcbiAgIHdpZHRoOiAxMDAlO1xuICAgbWFyZ2luOiAwO1xuICAgcGFkZGluZzogMDtcbiAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uaW5saW5lIHtcbiAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5icmVha2xpbmUge1xuICAgZGlzcGxheTogYmxvY2s7XG4gICBoZWlnaHQ6IDUwJTtcbiAgIG92ZXJmbG93OiBzY3JvbGw7XG59XG4uZ2FwIHtcbiAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgIHdpZHRoOiAxcHg7XG4gICBoZWlnaHQ6IDEwMCU7XG4gICBtYXJnaW46IDA7XG59XG4jbWFyZ2luIHtcbiAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgIGhlaWdodDogMTAwJTtcbiAgIG1hcmdpbjogMDtcbn1cbiN0ZXh0ZmllbGQge1xuICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgLyp3aWR0aDogOTUlOyovXG4gICBoZWlnaHQ6IDEwMCU7XG4gICBtYXJnaW46IDA7XG59XG4iXX0= */";
/***/
},
/***/
"./src/app/page-view/page-view.component.ts":
/*!**************************************************!*\
!*** ./src/app/page-view/page-view.component.ts ***!
\**************************************************/
/*! exports provided: PageViewComponent */
/***/
function srcAppPageViewPageViewComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "PageViewComponent", function () {
return PageViewComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/**
* This component displays one or two {@link /components/TextFieldComponent.html|TextFieldComponent(s)}
* and its or their {@link /components/MarginFieldComponent.html|MarginFieldComponent(s)}.
**/
var PageViewComponent = /*#__PURE__*/function () {
function PageViewComponent() {
_classCallCheck(this, PageViewComponent);
/**
* first texts written by foreign hand
**/
this.first_foreign_texts = [];
/**
* Identification of first textfield.
**/
this.first_textfield_id = 'first textfield';
/**
* the (initial) maximum height of the image(s).
**/
this.max_height = -1;
/**
* the (initial) maximum width of the image(s).
**/
this.max_width = -1;
/**
* should primary Url be used for image. Use secondary Url if false.
**/
this.preferPrimaryUrl = true;
/**
* second texts written by foreign hand
**/
this.second_foreign_texts = [];
/**
* Identification of second textfield.
**/
this.second_textfield_id = 'second textfield';
/**
* global zoom factor.
**/
this.zoomFactor = 1;
/**
* identifiers of selected words that should be highlighted.
**/
this.selectedWords = [];
/**
* identifiers of selected lines that should be highlighted.
**/
this.selectedLines = [];
this.showReferenceLeft = 'from';
this.showReferenceRight = 'to';
}
/**
* sets {@link /components/PageViewComponent.html#max_height|max_height} if it is unset.
**/
_createClass(PageViewComponent, [{
key: "ngOnInit",
value: function ngOnInit() {
if (this.max_height == -1 && this.max_width == -1) {
this.max_height = screen.availHeight;
}
this.checkImages();
}
}, {
key: "ngOnChanges",
value: function ngOnChanges() {
if (this.dontShowReference != undefined && this.dontShowReference != null && this.dontShowReference) {
this.showReferenceLeft = '';
this.showReferenceRight = '';
} else {
this.showReferenceLeft = 'from';
this.showReferenceRight = 'to';
}
this.checkImages();
if (this.first_image != null && this.first_image != undefined && this.first_image.transform != null) {
this.updateLines(this.first_words, this.first_lines);
}
if (this.second_image != null && this.second_image != undefined && this.second_image.transform != null) {
this.updateLines(this.second_words, this.second_lines);
}
}
}, {
key: "checkImages",
value: function checkImages() {
if (this.first_image != null && this.first_image != undefined && this.startLineId != null && this.startLineId != undefined) {
if (this.first_lines != null && this.first_lines != undefined && this.first_lines.length > 0) {
this.first_image = this.updateTextField(this.first_image, this.first_lines);
}
if (this.second_lines != null && this.second_lines != undefined && this.second_lines.length > 0) {
this.second_image = this.updateTextField(this.second_image, this.second_lines);
}
}
}
}, {
key: "updateLines",
value: function updateLines(words, lines) {
for (var i = 0; i < lines.length; i++) {
if (words.filter(function (word) {
return word.line == lines[i].id;
}).length > 0) {
lines[i].top = words.filter(function (word) {
return word.line == lines[i].id;
}).map(function (word) {
return Number(word.top);
}).sort(function (a, b) {
return a - b;
})[0];
lines[i].bottom = words.filter(function (word) {
return word.line == lines[i].id;
}).map(function (word) {
return Number(word.top) + Number(word.height);
}).sort(function (a, b) {
return b - a;
})[0];
}
}
}
}, {
key: "updateTextField",
value: function updateTextField(image, lines) {
var _this28 = this;
var endLineId = this.endLineId != null && this.endLineId != undefined ? this.endLineId : this.startLineId;
var startLines = lines.filter(function (line) {
return line.id == _this28.startLineId;
});
var endLines = lines.filter(function (line) {
return line.id == endLineId;
});
if (startLines.length > 0 && endLines.length > 0) {
var top = startLines[0].top > 10 ? startLines[0].top - 10 : startLines[0].top;
var height = endLines[0].bottom - top + 10;
var text_field = {
top: top,
left: image.text_field.left,
width: image.text_field.width,
height: height
};
return {
x: image.x,
y: image.y,
width: image.width,
height: image.height,
filename: image.filename,
URL: image.URL,
secondaryURL: image.secondaryURL,
text_field: text_field,
transform: image.transform,
copyright: image.copyright
};
}
return image;
}
/**
* Returns whether the two images can be displayed as columns.
**/
}, {
key: "hasColumnStyle",
value: function hasColumnStyle() {
if (this.zoomFactor <= 1 || this.first_image == null || this.second_image == null) {
return true;
}
var newLeftWidth = this.max_height / this.first_image.text_field.height * this.zoomFactor * this.first_image.text_field.width;
var newRightWidth = this.max_height / this.second_image.text_field.height * this.zoomFactor * this.second_image.text_field.width;
return newLeftWidth + newRightWidth < screen.availWidth;
}
}]);
return PageViewComponent;
}();
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], PageViewComponent.prototype, "configuration", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], PageViewComponent.prototype, "findText", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], PageViewComponent.prototype, "first_foreign_texts", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], PageViewComponent.prototype, "first_image", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], PageViewComponent.prototype, "first_lines", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], PageViewComponent.prototype, "first_words", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], PageViewComponent.prototype, "max_height", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], PageViewComponent.prototype, "max_width", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], PageViewComponent.prototype, "preferPrimaryUrl", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], PageViewComponent.prototype, "second_foreign_texts", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], PageViewComponent.prototype, "second_image", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], PageViewComponent.prototype, "second_lines", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], PageViewComponent.prototype, "second_words", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('assignClass')], PageViewComponent.prototype, "assignClass", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('assignStyle')], PageViewComponent.prototype, "assignStyle", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], PageViewComponent.prototype, "zoomFactor", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], PageViewComponent.prototype, "selectedWords", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], PageViewComponent.prototype, "selectedLines", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('startLine')], PageViewComponent.prototype, "startLineId", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('endLine')], PageViewComponent.prototype, "endLineId", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], PageViewComponent.prototype, "dontShowReference", void 0);
PageViewComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'page-view',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./page-view.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/page-view.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./page-view.component.css */
"./src/app/page-view/page-view.component.css"))["default"]]
})], PageViewComponent);
/***/
},
/***/
"./src/app/page-view/page-view.module.ts":
/*!***********************************************!*\
!*** ./src/app/page-view/page-view.module.ts ***!
\***********************************************/
/*! exports provided: PageViewModule */
/***/
function srcAppPageViewPageViewModuleTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "PageViewModule", function () {
return PageViewModule;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @angular/common */
"./node_modules/@angular/common/fesm2015/common.js");
/* harmony import */
var _angular_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! @angular/material */
"./node_modules/@angular/material/esm2015/material.js");
/* harmony import */
var _margin_field_margin_field_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! ./margin-field/margin-field.component */
"./src/app/page-view/margin-field/margin-field.component.ts");
/* harmony import */
var _textfield_component_textfield_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
/*! ./textfield-component/textfield.component */
"./src/app/page-view/textfield-component/textfield.component.ts");
/* harmony import */
var _interacted_directive__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
/*! ./interacted.directive */
"./src/app/page-view/interacted.directive.ts");
/* harmony import */
var _page_view_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(
/*! ./page-view.component */
"./src/app/page-view/page-view.component.ts");
/* harmony import */
var _page_view_service__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(
/*! ./page-view.service */
"./src/app/page-view/page-view.service.ts");
/* harmony import */
var _copyright_copyright_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(
/*! ./copyright/copyright.component */
"./src/app/page-view/copyright/copyright.component.ts");
/* harmony import */
var _margin_field_line_reference_line_reference_component__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(
/*! ./margin-field/line-reference/line-reference.component */
"./src/app/page-view/margin-field/line-reference/line-reference.component.ts");
/* harmony import */
var _copyright_copyright_sheet_copyright_sheet_component__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(
/*! ./copyright/copyright-sheet/copyright-sheet.component */
"./src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.ts");
var PageViewModule = function PageViewModule() {
_classCallCheck(this, PageViewModule);
};
PageViewModule = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({
declarations: [_interacted_directive__WEBPACK_IMPORTED_MODULE_6__["InteractedDirective"], _margin_field_margin_field_component__WEBPACK_IMPORTED_MODULE_4__["MarginFieldComponent"], _textfield_component_textfield_component__WEBPACK_IMPORTED_MODULE_5__["TextFieldComponent"], _page_view_component__WEBPACK_IMPORTED_MODULE_7__["PageViewComponent"], _copyright_copyright_component__WEBPACK_IMPORTED_MODULE_9__["CopyrightComponent"], _margin_field_line_reference_line_reference_component__WEBPACK_IMPORTED_MODULE_10__["LineReferenceComponent"], _copyright_copyright_sheet_copyright_sheet_component__WEBPACK_IMPORTED_MODULE_11__["CopyrightSheetComponent"]],
imports: [_angular_material__WEBPACK_IMPORTED_MODULE_3__["MatBottomSheetModule"], _angular_material__WEBPACK_IMPORTED_MODULE_3__["MatButtonModule"], _angular_material__WEBPACK_IMPORTED_MODULE_3__["MatButtonToggleModule"], _angular_material__WEBPACK_IMPORTED_MODULE_3__["MatCardModule"], _angular_material__WEBPACK_IMPORTED_MODULE_3__["MatCheckboxModule"], _angular_material__WEBPACK_IMPORTED_MODULE_3__["MatDialogModule"], _angular_material__WEBPACK_IMPORTED_MODULE_3__["MatExpansionModule"], _angular_material__WEBPACK_IMPORTED_MODULE_3__["MatFormFieldModule"], _angular_material__WEBPACK_IMPORTED_MODULE_3__["MatIconModule"], _angular_material__WEBPACK_IMPORTED_MODULE_3__["MatInputModule"], _angular_material__WEBPACK_IMPORTED_MODULE_3__["MatListModule"], _angular_material__WEBPACK_IMPORTED_MODULE_3__["MatMenuModule"], _angular_material__WEBPACK_IMPORTED_MODULE_3__["MatPaginatorModule"], _angular_material__WEBPACK_IMPORTED_MODULE_3__["MatRadioModule"], _angular_material__WEBPACK_IMPORTED_MODULE_3__["MatSelectModule"], _angular_material__WEBPACK_IMPORTED_MODULE_3__["MatSidenavModule"], _angular_material__WEBPACK_IMPORTED_MODULE_3__["MatSortModule"], _angular_material__WEBPACK_IMPORTED_MODULE_3__["MatTableModule"], _angular_material__WEBPACK_IMPORTED_MODULE_3__["MatTabsModule"], _angular_material__WEBPACK_IMPORTED_MODULE_3__["MatToolbarModule"], _angular_material__WEBPACK_IMPORTED_MODULE_3__["MatTooltipModule"], _angular_common__WEBPACK_IMPORTED_MODULE_2__["CommonModule"]],
providers: [_page_view_service__WEBPACK_IMPORTED_MODULE_8__["PageViewService"]],
exports: [_margin_field_margin_field_component__WEBPACK_IMPORTED_MODULE_4__["MarginFieldComponent"], _textfield_component_textfield_component__WEBPACK_IMPORTED_MODULE_5__["TextFieldComponent"], _page_view_component__WEBPACK_IMPORTED_MODULE_7__["PageViewComponent"], _copyright_copyright_component__WEBPACK_IMPORTED_MODULE_9__["CopyrightComponent"]],
entryComponents: [_copyright_copyright_sheet_copyright_sheet_component__WEBPACK_IMPORTED_MODULE_11__["CopyrightSheetComponent"]]
})], PageViewModule);
/***/
},
/***/
"./src/app/page-view/page-view.service.ts":
/*!************************************************!*\
!*** ./src/app/page-view/page-view.service.ts ***!
\************************************************/
/*! exports provided: PageViewService */
/***/
function srcAppPageViewPageViewServiceTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "PageViewService", function () {
return PageViewService;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/**
* This is an information service about clicked and (un-)hovered
* {@link /interfaces/Line.html|Lines},
* {@link /miscellaneous/typealiases.html#Word|Words}.
* and {@link /interfaces/TextByForeignHand.html|TextByForeignHands}.
* */
var PageViewService = /*#__PURE__*/function () {
/**
* This is an information service about clicked and (un-)hovered
* {@link /interfaces/Line.html|Lines},
* {@link /miscellaneous/typealiases.html#Word|Words}.
* and {@link /interfaces/TextByForeignHand.html|TextByForeignHands}.
* */
function PageViewService() {
_classCallCheck(this, PageViewService);
/**
* hovered line emitter
**/
this.onHoveredLine = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
/**
* off hovered line emitter
**/
this.offHoveredLine = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
/**
* clicked line emitter
**/
this.onClickedLine = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
/**
* hovered word emitter
**/
this.onHoveredWord = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
/**
* off hovered word emitter
**/
this.offHoveredWord = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
/**
* clicked word emitter
**/
this.onClickedWord = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
/**
* clicked text by foreign hand emitter
**/
this.onClickedTextByForeignHand = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
/**
* hovered text by foreign hand emitter
**/
this.onHoveredTextByForeignHand = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
/**
* off hovered text by foreign hand emitter
**/
this.offHoveredTextByForeignHand = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
/**
* hovered line continuation
**/
this.onHoveredContinuation = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
/**
* off hovered line continuation
**/
this.offHoveredContinuation = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
/**
* point where mouse hovered/clicked
**/
this.mousePosition = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
/**
* Reference change emitter, subscribe in order to navigate to reference.
**/
this.reference = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
/**
* copyright change emitter
* */
this.copyright = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
}
_createClass(PageViewService, [{
key: "referenceService",
value: function referenceService(reference) {
this.reference.emit(reference);
}
}, {
key: "copyrightService",
value: function copyrightService(copyright, point) {
this.copyright.emit(copyright);
if (point != null && point != undefined) {
this.mousePosition.emit(point);
}
}
/**
* emit an event on 'onClicked' + interactable.datatype
**/
}, {
key: "onClickService",
value: function onClickService(interactable, point) {
this['onClicked' + interactable.datatype].emit(interactable);
if (interactable.datatype != 'Line' && point != null && point != undefined) {
this.mousePosition.emit(point);
}
}
/**
* emit an event on 'onHover' + interactable.datatype
**/
}, {
key: "onHoverService",
value: function onHoverService(interactable, point) {
this['onHovered' + interactable.datatype].emit(interactable);
if (interactable.datatype != 'Line' && point != null && point != undefined) {
this.mousePosition.emit(point);
}
}
/**
* emit an event on 'offHover' + interactable.datatype
**/
}, {
key: "offHoverService",
value: function offHoverService(interactable) {
this['offHovered' + interactable.datatype].emit(interactable);
this.mousePosition.emit({
visible: false,
clientX: -1,
clientY: -1,
layerX: -1,
layerY: -1
});
}
}]);
return PageViewService;
}();
PageViewService = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"])()], PageViewService);
/***/
},
/***/
"./src/app/page-view/textfield-component/matrix.ts":
/*!*********************************************************!*\
!*** ./src/app/page-view/textfield-component/matrix.ts ***!
\*********************************************************/
/*! exports provided: Matrix */
/***/
function srcAppPageViewTextfieldComponentMatrixTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "Matrix", function () {
return Matrix;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
var Matrix = /*#__PURE__*/function () {
function Matrix(matrix_string, zoomFactor) {
_classCallCheck(this, Matrix);
this.offset = -140;
this.A = 0;
this.B = 1;
this.C = 2;
this.D = 3;
this.E = 4;
this.F = 5;
this.matrix = [1, 0, 0, 1, 0, 0];
if (matrix_string.startsWith('matrix')) {
this.matrix = matrix_string.replace('matrix(', '').replace(')', '').split(' ').map(function (n) {
return Number(n);
});
} else if (matrix_string.startsWith('rotation')) {
var angle = Number(matrix_string.replace('rotation(', '').replace(')', ''));
var radians = Math.PI / 180 * angle;
this.matrix[this.A] = Math.round(Math.cos(radians));
this.matrix[this.B] = Math.sin(radians);
this.matrix[this.C] = Math.sin(radians) * -1;
this.matrix[this.D] = Math.round(Math.cos(radians));
}
if (zoomFactor != null) {
this.matrix[this.E] = zoomFactor * this.offset;
this.matrix[this.F] = zoomFactor * this.offset;
}
}
_createClass(Matrix, [{
key: "toString",
value: function toString() {
return 'matrix(' + this.matrix.map(function (n) {
return String(n);
}).join(' ') + ')';
}
}]);
return Matrix;
}();
/***/
},
/***/
"./src/app/page-view/textfield-component/textfield.component.css":
/*!***********************************************************************!*\
!*** ./src/app/page-view/textfield-component/textfield.component.css ***!
\***********************************************************************/
/*! exports provided: default */
/***/
function srcAppPageViewTextfieldComponentTextfieldComponentCss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = ".textfield {\n background-color: #DADADA;\n}\n.textfield .deleted {\n fill: grey;\n opacity: 0.3;\n}\n.textfield .highlight_red {\n fill: #e20000;\n opacity: 0.3;\n}\n.textfield .highlight_yellow {\n fill: #e2fa00;\n opacity: 0.3;\n}\n.textfield .highlight_magenta {\n fill: #FF00FF;\n opacity: 0.3;\n}\n.textfield .highlight_foreign_text {\n fill: blue;\n opacity: 0.5;\n}\n.textfield .unhighlighted {\n opacity: 0.0;\n}\n.textfield .highlight_path {\n stroke: red;\n fill: none;\n stroke-width: 0.2;\n}\n.textfield .unhighlighted_path {\n stroke: none;\n fill: none;\n opacity: 0.0;\n}\n.textfield .border {\n stroke: #e2fa00;\n stroke-width:5;\n opacity: 0.3;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9wYWdlLXZpZXcvdGV4dGZpZWxkLWNvbXBvbmVudC90ZXh0ZmllbGQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UsVUFBVTtFQUNWLFlBQVk7QUFDZDtBQUNBO0VBQ0UsYUFBYTtFQUNiLFlBQVk7QUFDZDtBQUNBO0VBQ0UsYUFBYTtFQUNiLFlBQVk7QUFDZDtBQUNBO0VBQ0UsYUFBYTtFQUNiLFlBQVk7QUFDZDtBQUNBO0VBQ0UsVUFBVTtFQUNWLFlBQVk7QUFDZDtBQUNBO0VBQ0UsWUFBWTtBQUNkO0FBQ0E7R0FDRyxXQUFXO0dBQ1gsVUFBVTtHQUNWLGlCQUFpQjtBQUNwQjtBQUNBO0dBQ0csWUFBWTtHQUNaLFVBQVU7R0FDVixZQUFZO0FBQ2Y7QUFDQTtFQUNFLGVBQWU7RUFDZixjQUFjO0VBQ2QsWUFBWTtBQUNkIiwiZmlsZSI6ImFwcC9wYWdlLXZpZXcvdGV4dGZpZWxkLWNvbXBvbmVudC90ZXh0ZmllbGQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi50ZXh0ZmllbGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREFEQURBO1xufVxuLnRleHRmaWVsZCAuZGVsZXRlZCB7XG4gIGZpbGw6IGdyZXk7XG4gIG9wYWNpdHk6IDAuMztcbn1cbi50ZXh0ZmllbGQgLmhpZ2hsaWdodF9yZWQge1xuICBmaWxsOiAjZTIwMDAwO1xuICBvcGFjaXR5OiAwLjM7XG59XG4udGV4dGZpZWxkIC5oaWdobGlnaHRfeWVsbG93IHtcbiAgZmlsbDogI2UyZmEwMDtcbiAgb3BhY2l0eTogMC4zO1xufVxuLnRleHRmaWVsZCAuaGlnaGxpZ2h0X21hZ2VudGEge1xuICBmaWxsOiAjRkYwMEZGO1xuICBvcGFjaXR5OiAwLjM7XG59XG4udGV4dGZpZWxkIC5oaWdobGlnaHRfZm9yZWlnbl90ZXh0IHtcbiAgZmlsbDogYmx1ZTtcbiAgb3BhY2l0eTogMC41O1xufVxuLnRleHRmaWVsZCAudW5oaWdobGlnaHRlZCB7XG4gIG9wYWNpdHk6IDAuMDtcbn1cbi50ZXh0ZmllbGQgLmhpZ2hsaWdodF9wYXRoIHtcbiAgIHN0cm9rZTogcmVkO1xuICAgZmlsbDogbm9uZTtcbiAgIHN0cm9rZS13aWR0aDogMC4yO1xufVxuLnRleHRmaWVsZCAudW5oaWdobGlnaHRlZF9wYXRoIHtcbiAgIHN0cm9rZTogbm9uZTtcbiAgIGZpbGw6IG5vbmU7XG4gICBvcGFjaXR5OiAwLjA7XG59XG4udGV4dGZpZWxkIC5ib3JkZXIge1xuICBzdHJva2U6ICNlMmZhMDA7XG4gIHN0cm9rZS13aWR0aDo1O1xuICBvcGFjaXR5OiAwLjM7XG59XG4iXX0= */";
+ __webpack_exports__["default"] = ".textfield {\n background-color: #DADADA;\n}\n.textfield .deleted {\n fill: grey;\n opacity: 0.3;\n}\n.textfield .highlight_red {\n fill: #e20000;\n opacity: 0.3;\n}\n.textfield .highlight_yellow {\n fill: #e2fa00;\n opacity: 0.3;\n}\n.textfield .highlight_magenta {\n fill: #FF00FF;\n opacity: 0.3;\n}\n.textfield .highlight_foreign_text {\n fill: blue;\n opacity: 0.5;\n}\n.textfield .unhighlighted {\n opacity: 0.0;\n}\n.textfield .highlight_path {\n stroke: red;\n fill: none;\n stroke-width: 0.2;\n}\n.textfield .unhighlighted_path {\n stroke: none;\n fill: none;\n opacity: 0.0;\n}\n.textfield .border {\n stroke: #e2fa00;\n stroke-width:5;\n opacity: 0.3;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhZ2Utdmlldy90ZXh0ZmllbGQtY29tcG9uZW50L3RleHRmaWVsZC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsWUFBWTtBQUNkO0FBQ0E7RUFDRSxhQUFhO0VBQ2IsWUFBWTtBQUNkO0FBQ0E7RUFDRSxhQUFhO0VBQ2IsWUFBWTtBQUNkO0FBQ0E7RUFDRSxhQUFhO0VBQ2IsWUFBWTtBQUNkO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsWUFBWTtBQUNkO0FBQ0E7RUFDRSxZQUFZO0FBQ2Q7QUFDQTtHQUNHLFdBQVc7R0FDWCxVQUFVO0dBQ1YsaUJBQWlCO0FBQ3BCO0FBQ0E7R0FDRyxZQUFZO0dBQ1osVUFBVTtHQUNWLFlBQVk7QUFDZjtBQUNBO0VBQ0UsZUFBZTtFQUNmLGNBQWM7RUFDZCxZQUFZO0FBQ2QiLCJmaWxlIjoicGFnZS12aWV3L3RleHRmaWVsZC1jb21wb25lbnQvdGV4dGZpZWxkLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudGV4dGZpZWxkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RBREFEQTtcbn1cbi50ZXh0ZmllbGQgLmRlbGV0ZWQge1xuICBmaWxsOiBncmV5O1xuICBvcGFjaXR5OiAwLjM7XG59XG4udGV4dGZpZWxkIC5oaWdobGlnaHRfcmVkIHtcbiAgZmlsbDogI2UyMDAwMDtcbiAgb3BhY2l0eTogMC4zO1xufVxuLnRleHRmaWVsZCAuaGlnaGxpZ2h0X3llbGxvdyB7XG4gIGZpbGw6ICNlMmZhMDA7XG4gIG9wYWNpdHk6IDAuMztcbn1cbi50ZXh0ZmllbGQgLmhpZ2hsaWdodF9tYWdlbnRhIHtcbiAgZmlsbDogI0ZGMDBGRjtcbiAgb3BhY2l0eTogMC4zO1xufVxuLnRleHRmaWVsZCAuaGlnaGxpZ2h0X2ZvcmVpZ25fdGV4dCB7XG4gIGZpbGw6IGJsdWU7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbi50ZXh0ZmllbGQgLnVuaGlnaGxpZ2h0ZWQge1xuICBvcGFjaXR5OiAwLjA7XG59XG4udGV4dGZpZWxkIC5oaWdobGlnaHRfcGF0aCB7XG4gICBzdHJva2U6IHJlZDtcbiAgIGZpbGw6IG5vbmU7XG4gICBzdHJva2Utd2lkdGg6IDAuMjtcbn1cbi50ZXh0ZmllbGQgLnVuaGlnaGxpZ2h0ZWRfcGF0aCB7XG4gICBzdHJva2U6IG5vbmU7XG4gICBmaWxsOiBub25lO1xuICAgb3BhY2l0eTogMC4wO1xufVxuLnRleHRmaWVsZCAuYm9yZGVyIHtcbiAgc3Ryb2tlOiAjZTJmYTAwO1xuICBzdHJva2Utd2lkdGg6NTtcbiAgb3BhY2l0eTogMC4zO1xufVxuIl19 */";
/***/
},
/***/
"./src/app/page-view/textfield-component/textfield.component.ts":
/*!**********************************************************************!*\
!*** ./src/app/page-view/textfield-component/textfield.component.ts ***!
\**********************************************************************/
/*! exports provided: TextFieldComponent */
/***/
function srcAppPageViewTextfieldComponentTextfieldComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TextFieldComponent", function () {
return TextFieldComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _page_view_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! ../page-view.service */
"./src/app/page-view/page-view.service.ts");
/* harmony import */
var _highlight_status__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ../highlight_status */
"./src/app/page-view/highlight_status.ts");
/* harmony import */
var _configurable_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! ../configurable-component */
"./src/app/page-view/configurable-component.ts");
/* harmony import */
var _matrix__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
/*! ./matrix */
"./src/app/page-view/textfield-component/matrix.ts");
/**
* This component displays an image with word hovers.
**/
var TextFieldComponent = /*#__PURE__*/function (_configurable_compone) {
_inherits(TextFieldComponent, _configurable_compone);
var _super3 = _createSuper(TextFieldComponent);
/**
* @param pageViewService an information source about (un-)hovered and clicked Lines/Words.
* */
function TextFieldComponent(pageViewService) {
var _this29;
_classCallCheck(this, TextFieldComponent);
_this29 = _super3.call(this);
_this29.pageViewService = pageViewService;
/**
* Debug mode.
**/
_this29.debug = false;
/**
* texts written by foreign hand
**/
_this29.foreign_texts = [];
/**
* textfield's identity.
**/
_this29.identity = 'first textfield';
/**
* The (unzoomed) height of the root svg.
*
* (The actual height is 'image_height*local_zoom*zoomFactor'
* */
_this29.image_height = 400;
/**
* image properties for the svg-image.
* */
_this29.imageSpec = {
x: 0,
y: 0,
height: 973.91998,
width: 2038.5601,
URL: null,
secondaryURL: null,
transform: 'matrix(1 0 0 1 0 0)'
};
/**
* The (unzoomed) width of the root svg.
*
* (The actual width is 'image_width*local_zoom*zoomFactor'
* */
_this29.image_width = 300;
/**
* the viewBox of the root svg specifying the area of the svg that will be shown.
* */
_this29.viewBox = '';
/**
* the (initial) maximum height of the image.
**/
_this29.max_height = -1;
/**
* the (initial) maximum width of the image.
**/
_this29.max_width = -1;
/**
* should primary Url be used for image. Use secondary Url if false.
**/
_this29.preferPrimaryUrl = true;
/**
* Use extended tooltip.
**/
_this29.useExtendedTooltip = false;
/**
* global zoom factor.
**/
_this29.zoomFactor = 1;
/**
* local zoom factor that sets the height and width of the image according to {@link #max_height|max_height}.
* */
_this29.local_zoom = 1;
/**
* identifiers of selected words that should be highlighted.
**/
_this29.selectedWords = [];
/**
* identifiers of selected lines that should be highlighted.
**/
_this29.selectedLines = [];
return _this29;
}
_createClass(TextFieldComponent, [{
key: "ngOnInit",
value: function ngOnInit() {
var _this30 = this;
if (this.max_height == -1 && this.max_width == -1) {
this.max_height = screen.availHeight;
}
if (this.image.text_field != null) {
this.updateImageProperties();
} else if (this.imageSpec != null) {
this.image_width = this.imageSpec.width;
this.image_height = this.imageSpec.height;
this.viewBox = '0 0 ' + this.image_width + ' ' + this.image_height;
}
this.pageViewService.onClickedWord.subscribe(function (changedWord) {
return _this30.clickedWord = changedWord;
});
this.pageViewService.onHoveredWord.subscribe(function (changedWord) {
return _this30.hoveredWord = changedWord;
});
this.pageViewService.offHoveredWord.subscribe(function (changedWord) {
_this30.hoveredWord = null;
});
this.pageViewService.onHoveredLine.subscribe(function (changedLine) {
_this30.hoveredLine = changedLine;
});
this.pageViewService.offHoveredLine.subscribe(function (changedLine) {
_this30.hoveredLine = null;
});
this.pageViewService.onHoveredTextByForeignHand.subscribe(function (changedForeignText) {
_this30.hoveredTextByForeignHand = changedForeignText;
});
this.pageViewService.offHoveredTextByForeignHand.subscribe(function (changedForeignText) {
_this30.hoveredTextByForeignHand = null;
});
}
}, {
key: "ngOnChanges",
value: function ngOnChanges() {
var _this31 = this;
_get(_getPrototypeOf(TextFieldComponent.prototype), "ngOnChanges", this).call(this);
if (this.image.text_field != null) {
this.updateImageProperties();
}
if (this.debug && this.findText != null && this.findText != '') {
var words = this.words.filter(function (word) {
return word.text == _this31.findText;
});
if (words.length > 0) {
this.pageViewService.onHoverService(words[0], {
visible: true,
clientX: 100,
clientY: 100,
layerX: -1,
layerY: -1
});
}
}
}
/**
* Update image properties: use textfield in order to specify the area of the image that will be shown.
*
* @param URL set alternative image url. This will be used on image load error (see Template)
**/
}, {
key: "updateImageProperties",
value: function updateImageProperties(URL) {
var previous_word = null;
for (var i = 0; i < this.words.length; i++) {
this.words[i].datatype = "Word";
if (previous_word == null || previous_word.id != this.words[i].id) {
previous_word = this.words[i];
previous_word.is_top_object = true;
} else if (previous_word.top > this.words[i].top) {
previous_word.is_top_object = false;
previous_word = this.words[i];
previous_word.is_top_object = true;
} else {
this.words[i].is_top_object = false;
}
}
this.foreign_texts.forEach(function (foreignText) {
return foreignText.datatype = "TextByForeignHand";
});
var image_left = this.image.text_field.left;
var image_top = this.image.text_field.top;
this.image_width = this.image.text_field.width;
this.image_height = this.image.text_field.height;
this.local_zoom = this.max_height != -1 && this.max_width == -1 ? this.max_height / this.image.text_field.height : this.max_width / this.image.text_field.width;
if (this.max_width == -1 && this.image_height < this.image_width) {
this.local_zoom = (window.innerWidth / 2 - 100) / this.image.text_field.width;
}
this.imageSpec.x = this.image.x;
this.imageSpec.y = this.image.y;
this.imageSpec.height = this.image.height;
this.imageSpec.width = this.image.width;
this.imageSpec.URL = this.preferPrimaryUrl ? this.image.URL : this.image.secondaryURL;
this.imageSpec.secondaryURL = this.preferPrimaryUrl ? this.image.URL : this.image.URL;
if (URL != null) {
this.imageSpec.secondaryURL = this.imageSpec.URL;
this.imageSpec.URL = URL;
}
if (this.image.transform != null) {
this.local_zoom = this.max_height / this.image.text_field.width;
var matrix = new _matrix__WEBPACK_IMPORTED_MODULE_5__["Matrix"](this.image.transform, this.local_zoom * this.zoomFactor);
this.imageSpec.transform = matrix.toString();
}
this.viewBox = image_left + ' ' + image_top + ' ' + this.image_width + ' ' + this.image_height;
}
/**
* Return the position (i.e. '{ x: x, y: y }') for the copyright symbol.
* @param dimension dimension of the copyright symbol.
**/
}, {
key: "getCopyrightPosition",
value: function getCopyrightPosition(dimension) {
if (this.image.text_field != null && this.image.text_field != undefined) {
var positions = [{
x: Number(this.image.text_field.left) + 10 / this.zoomFactor,
y: Number(this.image.text_field.top) + 10 / this.zoomFactor
}, {
x: Number(this.image.text_field.left),
y: Number(this.image.text_field.top)
}, {
x: Number(this.image.text_field.width) + Number(this.image.text_field.left) - 15 / this.zoomFactor - dimension,
y: Number(this.image.text_field.height) + Number(this.image.text_field.top) - 15 / this.zoomFactor - dimension
}, {
x: Number(this.image.text_field.width) + Number(this.image.text_field.left) - dimension,
y: Number(this.image.text_field.height) + Number(this.image.text_field.top) - dimension
}, {
x: Number(this.image.text_field.left) + 10 / this.zoomFactor,
y: Number(this.image.text_field.height) + Number(this.image.text_field.top) - 10 / this.zoomFactor - dimension
}, {
x: Number(this.image.text_field.width) + Number(this.image.text_field.left) - 10 / this.zoomFactor - dimension,
y: Number(this.image.text_field.top) + 10 / this.zoomFactor
}, {
x: Number(this.image.text_field.width) + Number(this.image.text_field.left) - dimension,
y: Number(this.image.text_field.top)
}];
var default_index = 1;
var index = 0;
var position_found = false;
while (!position_found && index < positions.length) {
var _left = positions[index].x;
var _top = positions[index].y;
if (!this.doesPositionConflict(_left, _top, dimension, this.words) && !this.doesPositionConflict(_left, _top, dimension, this.foreign_texts)) {
position_found = true;
} else {
index++;
}
}
var left = index < positions.length ? positions[index].x : positions[default_index].x;
var top = index < positions.length ? positions[index].y : positions[default_index].y;
return {
x: "".concat(left, "px"),
y: "".concat(top, "px")
};
} else {
return {
x: '0px',
y: '0px'
};
}
}
/**
* Return whether position specified by left, top and dimension does conflict with one of the positional objects' position.
*
* @param left left of position
* @param top top of position
* @param dimension dimension of position
* @param positionalObjects Array of positions
**/
}, {
key: "doesPositionConflict",
value: function doesPositionConflict(left, top, dimension, positionalObjects) {
var conflicts = positionalObjects.filter(function (positionalObject) {
return !(Number(positionalObject.left) + Number(positionalObject.width) < left || Number(positionalObject.left) > left + dimension || Number(positionalObject.top) > top + dimension || Number(positionalObject.top) + Number(positionalObject.height) < top);
});
return conflicts.length > 0;
}
/**
* Get the hover status of the word as one of the {@link /miscellaneous/enumerations.html#HIGHTLIGHT_CASES|HIGHTLIGHT_CASES}.
**/
}, {
key: "getHoverStatus",
value: function getHoverStatus(word) {
var skipFindText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
if (this.selectedWords.indexOf(word.id) > -1 || this.selectedLines.indexOf(word.line) > -1) {
return _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].SELECTED_WORD;
}
if (!skipFindText && this.findText != null && this.findText != '') {
var findRegex = '^[^\\w]*(' + this.findText.split(' ').join('|') + ')';
return word.text.match(findRegex) || word.edited_text != null && word.edited_text.match(findRegex) ? _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].SEARCHED_WORD : this.getHoverStatus(word, true);
}
if (typeof this.hoveredLine !== 'undefined' && this.hoveredLine !== null) {
return this.hoveredLine.id == word.line || this.hoveredLine.continuesTo != undefined && this.hoveredLine.continuesTo != null && this.hoveredLine.continuesTo.line.id == word.line || this.hoveredLine.continuesFrom != undefined && this.hoveredLine.continuesFrom != null && this.hoveredLine.continuesFrom.line.id == word.line ? _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].LINE_HOVERED : _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].DEFAULT;
} else if (typeof this.hoveredWord !== 'undefined' && this.hoveredWord !== null) {
return this.hoveredWord.id == word.id ? _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].WORD_HOVERED : _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].DEFAULT;
}
return _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].DEFAULT;
}
/**
* Return a css class for word that will be used with [ngClass] in order to (un-)highlight the word's rect.
*
* If a function has been passed to Input {@link #assignClass|assignClass},
* this function will call it if {@link #getHoverStatus|getHoverStatus(word)} == {@link /miscellaneous/enumerations.html#HIGHTLIGHT_CASES|HIGHTLIGHT_CASES.DEFAULT}.
**/
}, {
key: "assignClass",
value: function assignClass(positionalObject, elementName) {
if (positionalObject.datatype == 'TextByForeignHand') {
return this.hoveredTextByForeignHand != null && this.hoveredTextByForeignHand.id == positionalObject.id ? 'text_field highlight_foreign_text' : 'text_field unhighlighted';
}
var word = positionalObject;
if (elementName != null) {
return this.getHoverStatus(word) == _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].DEFAULT ? "text_field unhighlighted_".concat(elementName) : "text_field highlight_".concat(elementName);
}
switch (this.getHoverStatus(word)) {
case _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].SELECTED_WORD:
{
return 'textfield highlight_magenta';
}
case _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].SEARCHED_WORD:
{
return 'textfield highlight_red';
}
case _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].LINE_HOVERED:
{
return word.deleted ? 'textfield deleted' : 'textfield highlight_yellow';
}
case _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].WORD_HOVERED:
{
return word.deleted ? 'textfield deleted' : 'textfield highlight_yellow';
}
case _highlight_status__WEBPACK_IMPORTED_MODULE_3__["HIGHTLIGHT_CASES"].DEFAULT:
{
return this.externalAssignClassAfter != null ? this.externalAssignClassAfter(word, this.hoveredWord, this.hoveredLine) : 'textfield unhighlighted';
}
}
}
/**
* Assign a style to the rects of a line.
**/
}, {
key: "assignStyle",
value: function assignStyle(word, hoveredWord, hoveredLine, hoverStatus) {
return this.extAssignStyle != null ? this.extAssignStyle(word, hoveredWord, hoveredLine, hoverStatus) : {};
}
}, {
key: "msg",
value: function msg(URL) {
if (this.preferPrimaryUrl) {// console.log(URL + ' TODO: show smaller image during loading');
}
}
}]);
return TextFieldComponent;
}(_configurable_component__WEBPACK_IMPORTED_MODULE_4__["ConfigurableComponent"]);
TextFieldComponent.ctorParameters = function () {
return [{
type: _page_view_service__WEBPACK_IMPORTED_MODULE_2__["PageViewService"]
}];
};
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TextFieldComponent.prototype, "container", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TextFieldComponent.prototype, "findText", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TextFieldComponent.prototype, "foreign_texts", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TextFieldComponent.prototype, "image", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TextFieldComponent.prototype, "identity", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TextFieldComponent.prototype, "max_height", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TextFieldComponent.prototype, "max_width", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TextFieldComponent.prototype, "preferPrimaryUrl", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TextFieldComponent.prototype, "useExtendedTooltip", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TextFieldComponent.prototype, "words", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TextFieldComponent.prototype, "zoomFactor", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('assignClass')], TextFieldComponent.prototype, "externalAssignClassAfter", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('assignStyle')], TextFieldComponent.prototype, "extAssignStyle", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TextFieldComponent.prototype, "selectedWords", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TextFieldComponent.prototype, "selectedLines", void 0);
TextFieldComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'text-field',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./textfield.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/page-view/textfield-component/textfield.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./textfield.component.css */
"./src/app/page-view/textfield-component/textfield.component.css"))["default"]]
})], TextFieldComponent);
/***/
},
/***/
"./src/app/project.component.css":
/*!***************************************!*\
!*** ./src/app/project.component.css ***!
\***************************************/
/*! exports provided: default */
/***/
function srcAppProjectComponentCss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = ".text {\n text-align: justify;\n width: 600px;\n}\n.img {\n margin-top: 20px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9wcm9qZWN0LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxtQkFBbUI7R0FDbkIsWUFBWTtBQUNmO0FBQ0E7R0FDRyxnQkFBZ0I7QUFDbkIiLCJmaWxlIjoiYXBwL3Byb2plY3QuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi50ZXh0IHtcbiAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICB3aWR0aDogNjAwcHg7XG59XG4uaW1nIHtcbiAgIG1hcmdpbi10b3A6IDIwcHg7XG59XG4iXX0= */";
+ __webpack_exports__["default"] = ".text {\n text-align: justify;\n width: 600px;\n}\n.img {\n margin-top: 20px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3QuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLG1CQUFtQjtHQUNuQixZQUFZO0FBQ2Y7QUFDQTtHQUNHLGdCQUFnQjtBQUNuQiIsImZpbGUiOiJwcm9qZWN0LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudGV4dCB7XG4gICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgd2lkdGg6IDYwMHB4O1xufVxuLmltZyB7XG4gICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuIl19 */";
/***/
},
/***/
"./src/app/project.component.ts":
/*!**************************************!*\
!*** ./src/app/project.component.ts ***!
\**************************************/
/*! exports provided: ProjectComponent */
/***/
function srcAppProjectComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "ProjectComponent", function () {
return ProjectComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
var ProjectComponent = /*#__PURE__*/function () {
function ProjectComponent() {
_classCallCheck(this, ProjectComponent);
}
_createClass(ProjectComponent, [{
key: "ngOnInit",
value: function ngOnInit() {}
}]);
return ProjectComponent;
}();
ProjectComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-project',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./project.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/project.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./project.component.css */
"./src/app/project.component.css"))["default"]]
})], ProjectComponent);
/***/
},
/***/
"./src/app/rhizome-view-component/rhizome-view-component.component.css":
/*!*****************************************************************************!*\
!*** ./src/app/rhizome-view-component/rhizome-view-component.component.css ***!
\*****************************************************************************/
/*! exports provided: default */
/***/
function srcAppRhizomeViewComponentRhizomeViewComponentComponentCss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = "#page {\n margin-top: 10px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9yaGl6b21lLXZpZXctY29tcG9uZW50L3JoaXpvbWUtdmlldy1jb21wb25lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLGdCQUFnQjtBQUNuQiIsImZpbGUiOiJhcHAvcmhpem9tZS12aWV3LWNvbXBvbmVudC9yaGl6b21lLXZpZXctY29tcG9uZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjcGFnZSB7XG4gICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuIl19 */";
+ __webpack_exports__["default"] = "#page {\n margin-top: 10px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJoaXpvbWUtdmlldy1jb21wb25lbnQvcmhpem9tZS12aWV3LWNvbXBvbmVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0dBQ0csZ0JBQWdCO0FBQ25CIiwiZmlsZSI6InJoaXpvbWUtdmlldy1jb21wb25lbnQvcmhpem9tZS12aWV3LWNvbXBvbmVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI3BhZ2Uge1xuICAgbWFyZ2luLXRvcDogMTBweDtcbn1cbiJdfQ== */";
/***/
},
/***/
"./src/app/rhizome-view-component/rhizome-view-component.component.ts":
/*!****************************************************************************!*\
!*** ./src/app/rhizome-view-component/rhizome-view-component.component.ts ***!
\****************************************************************************/
/*! exports provided: RhizomeViewComponentComponent */
/***/
function srcAppRhizomeViewComponentRhizomeViewComponentComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "RhizomeViewComponentComponent", function () {
return RhizomeViewComponentComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @angular/router */
"./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */
var _models_models__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ../models/models */
"./src/app/models/models.ts");
var RhizomeViewComponentComponent = /*#__PURE__*/function () {
function RhizomeViewComponentComponent(router, activatedRoute) {
_classCallCheck(this, RhizomeViewComponentComponent);
this.router = router;
this.activatedRoute = activatedRoute;
}
_createClass(RhizomeViewComponentComponent, [{
key: "ngOnInit",
value: function ngOnInit() {
var _this32 = this;
this.activatedRoute.queryParams.subscribe(function (queryParams) {
_this32.queryParams = new _models_models__WEBPACK_IMPORTED_MODULE_3__["TlnQueryParams"](queryParams.navBarOpenState, queryParams.navContext, queryParams.manuscript, queryParams.page, queryParams.selectedLines, queryParams.selectedWords, queryParams.viewMode, queryParams.fullscreen, queryParams.zoom);
});
}
}]);
return RhizomeViewComponentComponent;
}();
RhizomeViewComponentComponent.ctorParameters = function () {
return [{
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"]
}, {
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"]
}];
};
RhizomeViewComponentComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-rhizome-view-component',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./rhizome-view-component.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/rhizome-view-component/rhizome-view-component.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./rhizome-view-component.component.css */
"./src/app/rhizome-view-component/rhizome-view-component.component.css"))["default"]]
})], RhizomeViewComponentComponent);
/***/
},
/***/
"./src/app/services/navigation-service.service.ts":
/*!********************************************************!*\
!*** ./src/app/services/navigation-service.service.ts ***!
\********************************************************/
/*! exports provided: NavigationServiceService */
/***/
function srcAppServicesNavigationServiceServiceTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "NavigationServiceService", function () {
return NavigationServiceService;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @angular/router */
"./node_modules/@angular/router/fesm2015/router.js");
var NavigationServiceService = /*#__PURE__*/function () {
function NavigationServiceService(router, activatedRoute) {
_classCallCheck(this, NavigationServiceService);
this.router = router;
this.activatedRoute = activatedRoute;
}
/**
* updateRoute
* routes to the active url with the actual or passed query params of this class.
*/
_createClass(NavigationServiceService, [{
key: "updateRoute",
value: function updateRoute(qParams) {
this.router.navigate([], {
relativeTo: this.activatedRoute,
queryParams: qParams,
queryParamsHandling: 'merge'
});
}
}]);
return NavigationServiceService;
}();
NavigationServiceService.ctorParameters = function () {
return [{
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"]
}, {
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"]
}];
};
NavigationServiceService = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"])()], NavigationServiceService);
/***/
},
/***/
"./src/app/services/query.service.ts":
/*!*******************************************!*\
!*** ./src/app/services/query.service.ts ***!
\*******************************************/
/*! exports provided: QueryService */
/***/
function srcAppServicesQueryServiceTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "QueryService", function () {
return QueryService;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var sparqljs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! sparqljs */
"./node_modules/sparqljs/sparql.js");
/* harmony import */
var sparqljs__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(sparqljs__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */
var _angular_common_http__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! @angular/common/http */
"./node_modules/@angular/common/fesm2015/http.js");
var QueryService = /*#__PURE__*/function () {
function QueryService(http) {
_classCallCheck(this, QueryService);
this.http = http;
this.parser = new sparqljs__WEBPACK_IMPORTED_MODULE_2__["Parser"]();
this.sparqlGenerator = new sparqljs__WEBPACK_IMPORTED_MODULE_2__["Generator"]({});
}
/**
* Gets the data from an endpoint via http post
*
* @param baseUrl: The url of the endpoint.
* @param query: The query to run.
* @param queryType: "CONSTRUCT" or "QUERY"
* @returns the response.
*/
_createClass(QueryService, [{
key: "getData",
value: function getData(baseUrl, query, queryType) {
var httpOptions;
if (queryType === 'CONSTRUCT') {
// A construct does contain a text as response, not a json, so responseType must be 'text' to avoid parse errors
httpOptions = {
headers: new _angular_common_http__WEBPACK_IMPORTED_MODULE_3__["HttpHeaders"]({
'Content-Type': 'application/sparql-query',
'Accept': 'text/turtle'
}),
responseType: 'text'
};
return this.http.post(baseUrl, query, httpOptions);
} else {
httpOptions = {
headers: new _angular_common_http__WEBPACK_IMPORTED_MODULE_3__["HttpHeaders"]({
'Content-Type': 'application/sparql-query',
'Accept': 'application/sparql-results+json; charset=UTF-8'
})
};
return this.http.post(baseUrl, query, httpOptions);
}
}
/**
* Gets a text file by its name from the directory assets/queries.
*
* @param filename The name of the file + file name extension.
* @returns the text of the file.
*/
}, {
key: "getQueryfromFilename",
value: function getQueryfromFilename(filename) {
return this.http.get('../assets/queries/' + filename, {
responseType: 'text'
});
}
/**
* Gets a query string from a given file in the directory assets/queries.
*
* @param filename The name of the file + file name extension.
* @returns The JSON equivalence of the parsed query.
*/
}, {
key: "parseQueryFromFile",
value: function parseQueryFromFile(filename) {
var _this33 = this;
return this.getQueryfromFilename(filename).subscribe(function (query) {
_this33.parser.parse(query);
});
}
/**
* getQueryForItem()
* Parametrizes a given baseQuery with a iri passed, so the iri will be the subject of the where clause
*
* @param itemIri: The iri of the selected resource
* @param baseQuery: name of the query to parametrize
* @returns the query for the resource.
*/
}, {
key: "parametrizeQueryWithItem",
value: function parametrizeQueryWithItem(baseQuery, itemIri) {
var parsedQuery = this.parser.parse(baseQuery); // console.log('parsedQuery', parsedQuery);
// parametrize/reset the subject iri to the word's iri we like to query for
var resourceOfInterest = {
'termType': 'NamedNode',
'value': decodeURI(itemIri)
};
parsedQuery.where[0].triples[0].subject = resourceOfInterest; // generate the new query string and return it
// console.log('parametrized query', this.sparqlGenerator.stringify(parsedQuery));
return this.sparqlGenerator.stringify(parsedQuery);
}
}]);
return QueryService;
}();
QueryService.ctorParameters = function () {
return [{
type: _angular_common_http__WEBPACK_IMPORTED_MODULE_3__["HttpClient"]
}];
};
QueryService = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"])()], QueryService);
/***/
},
/***/
"./src/app/tln-edition/constants.ts":
/*!******************************************!*\
!*** ./src/app/tln-edition/constants.ts ***!
\******************************************/
/*! exports provided: HIGHTLIGHT_CASES, VIEW_OPTIONS, DEFAULT_VIEW_OPTION, ONTOLOTY_PREFIX, TLN_CROSSREF_ROUTE, TLN_SEARCH_ROUTE, TLN_MANUSCRIPT_ROUTE, TLN_VIEWER_ROUTE, TLN_CONTEXT_VIEW_PARAM, TLN_FULLSCREEN_PARAM, TLN_FIND_PARAM, TLN_MANUSCRIPT_PARAM, TLN_NAV_BAR_OPEN_STATE_PARAM, TLN_PAGE_PARAM, TLN_RESULT_INDEX_PARAM, TLN_SELECTED_LINES_PARAM, TLN_SELECTED_WORDS_PARAM, TLN_TEXT_GENETIC_ORDER_PARAM, TLN_VIEW_OPTION_PARAM, TLN_ZOOM_PARAM */
/***/
function srcAppTlnEditionConstantsTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "VIEW_OPTIONS", function () {
return VIEW_OPTIONS;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "DEFAULT_VIEW_OPTION", function () {
return DEFAULT_VIEW_OPTION;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "ONTOLOTY_PREFIX", function () {
return ONTOLOTY_PREFIX;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TLN_CROSSREF_ROUTE", function () {
return TLN_CROSSREF_ROUTE;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TLN_SEARCH_ROUTE", function () {
return TLN_SEARCH_ROUTE;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TLN_MANUSCRIPT_ROUTE", function () {
return TLN_MANUSCRIPT_ROUTE;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TLN_VIEWER_ROUTE", function () {
return TLN_VIEWER_ROUTE;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TLN_CONTEXT_VIEW_PARAM", function () {
return TLN_CONTEXT_VIEW_PARAM;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TLN_FULLSCREEN_PARAM", function () {
return TLN_FULLSCREEN_PARAM;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TLN_FIND_PARAM", function () {
return TLN_FIND_PARAM;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TLN_MANUSCRIPT_PARAM", function () {
return TLN_MANUSCRIPT_PARAM;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TLN_NAV_BAR_OPEN_STATE_PARAM", function () {
return TLN_NAV_BAR_OPEN_STATE_PARAM;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TLN_PAGE_PARAM", function () {
return TLN_PAGE_PARAM;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TLN_RESULT_INDEX_PARAM", function () {
return TLN_RESULT_INDEX_PARAM;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TLN_SELECTED_LINES_PARAM", function () {
return TLN_SELECTED_LINES_PARAM;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TLN_SELECTED_WORDS_PARAM", function () {
return TLN_SELECTED_WORDS_PARAM;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TLN_TEXT_GENETIC_ORDER_PARAM", function () {
return TLN_TEXT_GENETIC_ORDER_PARAM;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TLN_VIEW_OPTION_PARAM", function () {
return TLN_VIEW_OPTION_PARAM;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TLN_ZOOM_PARAM", function () {
return TLN_ZOOM_PARAM;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _page_view_highlight_status__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! ../page-view/highlight_status */
"./src/app/page-view/highlight_status.ts");
/* harmony reexport (safe) */
__webpack_require__.d(__webpack_exports__, "HIGHTLIGHT_CASES", function () {
return _page_view_highlight_status__WEBPACK_IMPORTED_MODULE_1__["HIGHTLIGHT_CASES"];
});
var VIEW_OPTIONS;
(function (VIEW_OPTIONS) {
VIEW_OPTIONS["TRANSKRIPTION"] = "Transkription";
VIEW_OPTIONS["FAKSIMILE"] = "Faksimile";
VIEW_OPTIONS["SYNOPSIS"] = "Transkription/Faksimile";
VIEW_OPTIONS["SYNOPSIS_B"] = "Faksimile/Transkription";
})(VIEW_OPTIONS || (VIEW_OPTIONS = {}));
var DEFAULT_VIEW_OPTION = VIEW_OPTIONS.SYNOPSIS_B;
var ONTOLOTY_PREFIX = 'http://www.nie.org/ontology/nietzsche#';
/**
* Route for TlnCrossrefComponent
**/
var TLN_CROSSREF_ROUTE = 'tln-crossref';
/**
* Route for TlnFulltextComponent
**/
var TLN_SEARCH_ROUTE = 'tln-search';
/**
* Route for TlnManuscriptViewComponent
**/
var TLN_MANUSCRIPT_ROUTE = 'tln-manuscript';
/**
* Route for TlnViewerComponent
**/
var TLN_VIEWER_ROUTE = 'tln-viewer';
/**
* Param that refers to the context that should be shown, i.e. 'page' or 'manuscript'.
**/
var TLN_CONTEXT_VIEW_PARAM = 'contextView';
/**
* Param that toggles fullscreen, value type: boolean.
**/
var TLN_FULLSCREEN_PARAM = 'fullscreen';
/**
* Param for find text in page.
**/
var TLN_FIND_PARAM = 'find';
/**
* Param for manuscript iri.
**/
var TLN_MANUSCRIPT_PARAM = 'manuscript';
/**
* Param for navigation bar open state.
**/
var TLN_NAV_BAR_OPEN_STATE_PARAM = 'navBarOpenState';
/**
* Param for page iri.
**/
var TLN_PAGE_PARAM = 'page';
/**
* Param for result index, type: number.
**/
var TLN_RESULT_INDEX_PARAM = 'resutlIndex';
/**
* Param for selected lines.
**/
var TLN_SELECTED_LINES_PARAM = 'selectedLines';
/**
* Param for selected lines.
**/
var TLN_SELECTED_WORDS_PARAM = 'selectedWords';
/**
* Param for iri of a genetic order of text versions.
**/
var TLN_TEXT_GENETIC_ORDER_PARAM = 'geneticOrder';
/**
* Param for selected view option, e.g. 'Transkription', 'Faksimile', etc.
**/
var TLN_VIEW_OPTION_PARAM = 'viewMode';
/**
* Param for zoom.
**/
var TLN_ZOOM_PARAM = 'zoom';
/***/
},
/***/
"./src/app/tln-edition/data_handler.ts":
/*!*********************************************!*\
!*** ./src/app/tln-edition/data_handler.ts ***!
\*********************************************/
/*! exports provided: DataHandler */
/***/
function srcAppTlnEditionData_handlerTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "DataHandler", function () {
return DataHandler;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! rxjs/operators */
"./node_modules/rxjs/_esm2015/operators/index.js");
/* harmony import */
var _datatypes_basic_datatype__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ./datatypes/basic_datatype */
"./src/app/tln-edition/datatypes/basic_datatype.ts");
/**
* This class retrieves data from a query service and instantiates it using
* corresponding handlers.
**/
var DataHandler = /*#__PURE__*/function () {
/**
* @param component the component that uses this data handler
**/
function DataHandler(component) {
_classCallCheck(this, DataHandler);
this.component = component;
this.debug = false;
/**
* whether or not DataHandler is ready to retrieve data
**/
this.ready = false;
this.stop_processing = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
this.start_processing = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
this.processing_finished = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
}
/**
* add a {@link /interfaces/Handler.html|Handler}
* or an Array of handler keys to DataHandler.
**/
_createClass(DataHandler, [{
key: "addHandler",
value: function addHandler(key, handler) {
this[key] = handler;
}
/**
* Retrieve and instantiate data
* @param key data handler key
* @param iri iri that should be passed to query
* @param next_iri use next_iri instead of the iri of the first item in the current data array.
**/
}, {
key: "getData",
value: function getData(key, iri, next_iri) {
var _this34 = this;
if (Array.isArray(this[key])) {
this[key].forEach(function (value) {
return _this34.getData(value, iri);
});
if (next_iri != null && this[key]['next_key'] != null) {
this.getData(this[key]['next_key'], next_iri);
}
} else {
this.start_processing.emit(true);
var handler = this[key]['handler'];
if (this.debug && key == 'textVersions') {//console.log(this[key]['handler'], key, iri);
//console.log(handler.getQuery(iri, handler.query_key))
//console.log(this[key]['service']);
}
var is_target_array = Array.isArray(this.component[key]);
if (!is_target_array) {
this.queryService.getData(handler.getQuery(iri, handler.query_key)).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__["takeUntil"])(this.stop_processing) || Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__["first"])()).subscribe(function (results) {
_this34.component[key] = handler.convertData(results, iri, _this34[key]['service'])[0];
if (next_iri != null && _this34[key]['next_key'] != null) {
_this34.getData(_this34[key]['next_key'], next_iri);
} else if (_this34[key]['process_data'] != undefined && _this34[key]['process_data'] != null) {
_this34[key]['process_data'].processData();
}
});
} else {
this.queryService.getData(handler.getQuery(iri, handler.query_key)).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__["takeUntil"])(this.stop_processing)).subscribe(function (results) {
_this34.component[key] = handler.use_id ? handler.convertData(results, iri, _this34[key]['service']) : handler.convertData(results, null, _this34[key]['service']);
if (_this34.component[key].length > 0 && _this34[key]['next_key'] != null) {
var use_next_iri = next_iri != null ? next_iri : _this34.component[key][0].id;
_this34.getData(_this34[key]['next_key'], use_next_iri);
} else if (_this34[key]['process_data'] != undefined && _this34[key]['process_data'] != null) {
_this34[key]['process_data'].processData();
}
});
}
this.processing_finished.emit(true);
}
}
}, {
key: "getData4Keys",
value: function getData4Keys(key, datatypeKeyIriMapping) {
var _this35 = this;
if (Array.isArray(this[key])) {
this[key].forEach(function (value) {
return _this35.getData4Keys(value, datatypeKeyIriMapping);
});
} else {
var handler = this[key]['handler'];
if (this.debug) {
console.log(this[key]['handler'], datatypeKeyIriMapping);
}
var is_target_array = Array.isArray(this.component[key]);
var iri = datatypeKeyIriMapping.mapping[datatypeKeyIriMapping.idIndex];
if (!is_target_array) {
this.queryService.getData(handler.getComplexQuery(datatypeKeyIriMapping.mapping)).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__["takeUntil"])(this.stop_processing) || Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__["first"])()).subscribe(function (results) {
_this35.component[key] = handler.convertData(results, iri, _this35[key]['service'])[0];
});
} else {
this.queryService.getData(handler.getQuery(datatypeKeyIriMapping.mapping)).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__["takeUntil"])(this.stop_processing)).subscribe(function (results) {
_this35.component[key] = handler.use_id ? handler.convertData(results, iri) : handler.convertData(results);
if (_this35.component[key].length > 0 && _this35[key]['next_key'] != null) {
datatypeKeyIriMapping.mapping[datatypeKeyIriMapping.idIndex] = _this35.component[key][0].id;
_this35.getData4Keys(_this35[key]['next_key'], datatypeKeyIriMapping);
}
});
}
}
}
}, {
key: "getDataWithNewHandlerIf",
value: function getDataWithNewHandlerIf(key, subjectIri, typeIri, handlerTrue, handlerFalse, iri, next_iri) {
var _this36 = this;
var complexMapping = [{
key: 'id',
iri: subjectIri
}, {
key: 'type',
iri: typeIri
}];
this.queryService.getData(_datatypes_basic_datatype__WEBPACK_IMPORTED_MODULE_3__["AskResult"].getComplexQuery(complexMapping)).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__["first"])()).subscribe(function (result) {
_this36[key] = _datatypes_basic_datatype__WEBPACK_IMPORTED_MODULE_3__["AskResult"].getAnswer(result) ? handlerTrue : handlerFalse;
console.log(key, subjectIri, typeIri, result, _this36[key]);
_this36.getData(key, iri, next_iri);
});
}
}, {
key: "conditionalAddHandler",
value: function conditionalAddHandler(askQuery, key, handlerTrue, handlerFalse) {
var _this37 = this;
this.queryService.getData(askQuery).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__["first"])()).subscribe(function (result) {
_this37[key] = _datatypes_basic_datatype__WEBPACK_IMPORTED_MODULE_3__["AskResult"].getAnswer(result) ? handlerTrue : handlerFalse;
});
}
/**
* reset all data belonging to key
**/
}, {
key: "resetData",
value: function resetData(key) {
var _this38 = this;
this.queryService.resetData(key);
if (Array.isArray(this[key])) {
this[key].forEach(function (value) {
return _this38.resetData(value);
});
} else {
this.component[key] = Array.isArray(this.component[key]) ? [] : null;
}
}
/**
* set a query service to DataHandler and switch status ready to true.
**/
}, {
key: "setQueryService",
value: function setQueryService(queryService) {
this.queryService = queryService;
this.ready = true;
}
}]);
return DataHandler;
}();
/***/
},
/***/
"./src/app/tln-edition/datatypes/basic_datatype.ts":
/*!*********************************************************!*\
!*** ./src/app/tln-edition/datatypes/basic_datatype.ts ***!
\*********************************************************/
/*! exports provided: BasicResultBindingElement, AskResult, IsReconstructedKonvolut */
/***/
function srcAppTlnEditionDatatypesBasic_datatypeTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "BasicResultBindingElement", function () {
return BasicResultBindingElement;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "AskResult", function () {
return AskResult;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "IsReconstructedKonvolut", function () {
return IsReconstructedKonvolut;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var sparqljs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! sparqljs */
"./node_modules/sparqljs/sparql.js");
/* harmony import */
var sparqljs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(sparqljs__WEBPACK_IMPORTED_MODULE_1__);
/**
* This is the basic datatype that instantiates an element of {@link /interfaces/FusekiResults.html|FusekiResults}.
*
* All datatypes can be subclassed from this type in order to create SPARQL-queries, retrieve data and convert it
* to the corresponding datatypes.
**/
var BasicResultBindingElement = /*#__PURE__*/function () {
/**
* The constructor creates a datatype from the data.
*
* @param id if omitted the id will be retrieved from data
**/
function BasicResultBindingElement(data, id, service) {
_classCallCheck(this, BasicResultBindingElement);
this.data = data;
this.service = service;
if (id != undefined && id != null && id != '') {
var key = Object.getPrototypeOf(this).constructor.use_id && Object.getPrototypeOf(this).constructor.query_key != null ? Object.getPrototypeOf(this).constructor.query_key : 'id';
this[key] = id;
}
if (this.id == null) {
this.id = this.getData4Key('id');
}
}
/**
* This function returns the value of the content specified by "key" from {@link /classes/BasicResultBindingElement.html#data|data}.
*
* @param key the key that specifies the content
*
* @returns {any} the value of the content if key exists else null
**/
_createClass(BasicResultBindingElement, [{
key: "getData4Key",
value: function getData4Key(key) {
if (!this.data.hasOwnProperty(key)) {
return null;
}
if (this.data[key].datatype == 'http://www.w3.org/2001/XMLSchema#boolean') {
return JSON.parse(this.data[key].value);
} else if (this.data[key].datatype == 'http://www.w3.org/2001/XMLSchema#integer') {
return Number(this.data[key].value);
}
return this.data[key].value;
}
/**
* This method returns the SPARQL query of this BasicResultBindingElement.
* The query can be modified by providing an "id" and "key" such that every "key" in
* the query will be replaced by "id".
*
* If "key" is omitted {@link /classes/BasicResultBindingElement.html#default_key|default_key} will be used.
*
* @param id will replace key in query
* @param key will be replaced by id.
**/
}], [{
key: "getQuery",
value: function getQuery(id, key) {
if (typeof id === 'undefined' || id === null || id == '') {
return this.query;
} else {
if (key == null || key == '') {
key = this.default_key;
}
var parser = new sparqljs__WEBPACK_IMPORTED_MODULE_1__["Parser"]();
var sparqlGenerator = new sparqljs__WEBPACK_IMPORTED_MODULE_1__["Generator"]({});
var parsedQuery = parser.parse(this.query);
for (var k = 0; k < parsedQuery.where.length; k++) {
if (parsedQuery.where[k].patterns != undefined) {
for (var j = 0; j < parsedQuery.where[k].patterns.length; j++) {
if (parsedQuery.where[k].patterns[j].triples != undefined) {
for (var i = 0; i < parsedQuery.where[k].patterns[j].triples.length; i++) {
if (parsedQuery.where[k].patterns[j].triples[i]['subject']['value'] == key) {
parsedQuery.where[k].patterns[j].triples[i]['subject'] = {
termType: "NamedNode",
value: id
};
} else if (parsedQuery.where[k].patterns[j].triples[i]['object']['value'] == key) {
parsedQuery.where[k].patterns[j].triples[i]['object'] = {
termType: "NamedNode",
value: id
};
} else if (parsedQuery.where[k].patterns[j].triples[i]['predicate']['value'] == key) {
parsedQuery.where[k].patterns[j].triples[i]['predicate'] = {
termType: "NamedNode",
value: id
};
}
}
}
}
} else if (parsedQuery.where[k].triples != undefined) {
for (var i = 0; i < parsedQuery.where[k].triples.length; i++) {
if (parsedQuery.where[k].triples[i]['subject']['value'] == key) {
parsedQuery.where[k].triples[i]['subject'] = {
termType: "NamedNode",
value: id
};
} else if (parsedQuery.where[k].triples[i]['object']['value'] == key) {
parsedQuery.where[k].triples[i]['object'] = {
termType: "NamedNode",
value: id
};
} else if (parsedQuery.where[k].triples[i]['predicate']['value'] == key) {
parsedQuery.where[k].triples[i]['predicate'] = {
termType: "NamedNode",
value: id
};
}
}
}
}
return sparqlGenerator.stringify(parsedQuery);
}
}
}, {
key: "getComplexQuery",
value: function getComplexQuery(keyIriMapping) {
var parser = new sparqljs__WEBPACK_IMPORTED_MODULE_1__["Parser"]();
var sparqlGenerator = new sparqljs__WEBPACK_IMPORTED_MODULE_1__["Generator"]({});
var parsedQuery = parser.parse(this.query);
var _iterator3 = _createForOfIteratorHelper(keyIriMapping),
_step3;
try {
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
var mapping = _step3.value;
var key = mapping.key;
var id = mapping.iri;
for (var i = 0; i < parsedQuery.where[0].triples.length; i++) {
if (parsedQuery.where[0].triples[i]['subject']['value'] == key) {
parsedQuery.where[0].triples[i]['subject'] = {
termType: "NamedNode",
value: id
};
} else if (parsedQuery.where[0].triples[i]['object']['value'] == key) {
parsedQuery.where[0].triples[i]['object'] = {
termType: "NamedNode",
value: id
};
} else if (parsedQuery.where[0].triples[i]['predicate']['value'] == key) {
parsedQuery.where[0].triples[i]['predicate'] = {
termType: "NamedNode",
value: id
};
}
}
}
} catch (err) {
_iterator3.e(err);
} finally {
_iterator3.f();
}
return sparqlGenerator.stringify(parsedQuery);
}
/**
* This function returns 'results.bindings' of {@link /interfaces/FusekiResults.html|FusekiResults}.
**/
}, {
key: "getContent",
value: function getContent(data) {
return data['results']['bindings'];
}
/**
* This static function instantiates the subclasses of {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement} from
* the data retrieved by executing the query that is provided by {@link /classes/BasicResultBindingElement.html#getQuery|getQuery}.
*
* @param this a subclass of BasicResultBindingElement
* @param data the fuseki result json
* @param id the id that has been used in order to retrieve the data and that will identify the instantiation of the subclass.
* @param service a means to communicate with the data holder.
*
* @returns Array of subclass instantiations
**/
}, {
key: "convertData",
value: function convertData(data, id, service) {
var elements = [];
var content = this.getContent(data);
for (var i = 0; i < content.length; i++) {
var element = new this(content[i], id, service);
elements.push(element);
}
return elements;
}
}]);
return BasicResultBindingElement;
}();
/**
* the internal default key for replacing {@link /classes/BasicResultBindingElement.html#query|query} by "id"
* in {@link /classes/BasicResultBindingElement.html#getQuery|getQuery} if "key" is omitted.
**/
BasicResultBindingElement.default_key = 'id';
/**
* the SPARQL-query of this datatype.
**/
BasicResultBindingElement.query = "SELECT ?id ?p ?o WHERE { ?id ?p ?o. }";
/**
* the public key for replacing {@link /classes/BasicResultBindingElement.html#query|query} by "id".
**/
BasicResultBindingElement.query_key = null;
/**
* whether or not to pass the id used for the query to the constructor and
* use it as the value of the property specified by query_key.
**/
BasicResultBindingElement.use_id = false;
var AskResult = /*#__PURE__*/function (_BasicResultBindingEl) {
_inherits(AskResult, _BasicResultBindingEl);
var _super4 = _createSuper(AskResult);
function AskResult() {
_classCallCheck(this, AskResult);
return _super4.apply(this, arguments);
}
_createClass(AskResult, null, [{
key: "getAnswer",
value: function getAnswer(answer) {
return answer["boolean"];
}
}]);
return AskResult;
}(BasicResultBindingElement);
AskResult.query = "\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n ASK { \n ?id a ?type.\n }";
var IsReconstructedKonvolut = /*#__PURE__*/function (_AskResult) {
_inherits(IsReconstructedKonvolut, _AskResult);
var _super5 = _createSuper(IsReconstructedKonvolut);
function IsReconstructedKonvolut() {
_classCallCheck(this, IsReconstructedKonvolut);
return _super5.apply(this, arguments);
}
return IsReconstructedKonvolut;
}(AskResult);
IsReconstructedKonvolut.query = "\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n ASK { \n ?id a tln:ReconstructedKonvolut.\n }";
IsReconstructedKonvolut.query_key = 'id';
/***/
},
/***/
"./src/app/tln-edition/datatypes/earlier_version.ts":
/*!**********************************************************!*\
!*** ./src/app/tln-edition/datatypes/earlier_version.ts ***!
\**********************************************************/
/*! exports provided: TlnEarlierVersionStub, TlnOverwrittenStub */
/***/
function srcAppTlnEditionDatatypesEarlier_versionTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnEarlierVersionStub", function () {
return TlnEarlierVersionStub;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnOverwrittenStub", function () {
return TlnOverwrittenStub;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _basic_datatype__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! ./basic_datatype */
"./src/app/tln-edition/datatypes/basic_datatype.ts");
/**
* This is the 'earlier version' stub instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.
* It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.
**/
var TlnEarlierVersionStub = /*#__PURE__*/function (_basic_datatype__WEBP) {
_inherits(TlnEarlierVersionStub, _basic_datatype__WEBP);
var _super6 = _createSuper(TlnEarlierVersionStub);
/**
* The constructor creates a datatype from the data.
*
* @param id if omitted the id will be retrieved from data
**/
function TlnEarlierVersionStub(data, id, service) {
var _this39;
_classCallCheck(this, TlnEarlierVersionStub);
_this39 = _super6.call(this, data, id, service);
_this39.text = _this39.getData4Key('text');
return _this39;
}
return TlnEarlierVersionStub;
}(_basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"]);
/**
* the internal default key for replacing {@link /classes/TlnWord.html#query|query} by "id"
* in {@link /classes/TlnWord.html#getQuery|getQuery} if "key" is omitted.
**/
TlnEarlierVersionStub.default_key = 'word';
/**
* the public key for replacing {@link /classes/TlnWord.html#query|query} by "id".
**/
TlnEarlierVersionStub.query_key = 'word';
/**
* the SPARQL-query of this datatype.
**/
TlnEarlierVersionStub.query = "\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?text WHERE {\n ?word tln:wordHasEarlierVersion ?id.\n ?id tln:hasText ?text.\n }";
var TlnOverwrittenStub = /*#__PURE__*/function (_TlnEarlierVersionStu) {
_inherits(TlnOverwrittenStub, _TlnEarlierVersionStu);
var _super7 = _createSuper(TlnOverwrittenStub);
function TlnOverwrittenStub() {
_classCallCheck(this, TlnOverwrittenStub);
return _super7.apply(this, arguments);
}
return TlnOverwrittenStub;
}(TlnEarlierVersionStub);
/**
* the SPARQL-query of this datatype.
**/
TlnOverwrittenStub.query = "\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?text WHERE {\n ?word (tln:wordHasWordParts/rdf:rest*/rdf:first/tln:overwritesWord|tln:overwritesWord) ?id. \n ?id tln:hasText ?text.\n }";
/***/
},
/***/
"./src/app/tln-edition/datatypes/faksimile_image.ts":
/*!**********************************************************!*\
!*** ./src/app/tln-edition/datatypes/faksimile_image.ts ***!
\**********************************************************/
/*! exports provided: FaksimileImage */
/***/
function srcAppTlnEditionDatatypesFaksimile_imageTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "FaksimileImage", function () {
return FaksimileImage;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _image__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! ./image */
"./src/app/tln-edition/datatypes/image.ts");
/**
* This is the faksimile image instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.
* It extends {@link /classes/TlnImage.html|TlnImage}.
**/
var FaksimileImage = /*#__PURE__*/function (_image__WEBPACK_IMPOR) {
_inherits(FaksimileImage, _image__WEBPACK_IMPOR);
var _super8 = _createSuper(FaksimileImage);
function FaksimileImage(data, id, service) {
var _this40;
_classCallCheck(this, FaksimileImage);
_this40 = _super8.call(this, data, id, service);
_this40.copyright = {
originalUrl: 'http://www.nietzschesource.org/DFGA/' + _this40.filename.replace('.jpg', ''),
licenseTextUrl: 'http://creativecommons.org/licenses/by-nc-nd/4.0/deed.de',
license: 'CC BY-NC-ND 4.0',
text: 'Dieses Faksimile wird von <a target="_new" href="http://www.nietzschesource.org">nietzschesource.org</a> gehostet und wird hier unver&auml;ndert dargestellt.'
};
return _this40;
}
return FaksimileImage;
}(_image__WEBPACK_IMPORTED_MODULE_1__["TlnImage"]);
/**
* the SPARQL-query of this datatype
**/
FaksimileImage.query = "\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n\n SELECT ?id ?filename ?URL ?secondaryURL ?width ?height ?t_left ?t_top ?t_width ?t_height ?page ?transform WHERE {\n ?id a tln:FaksimileImage;\n tln:hasFileName ?filename;\n tln:hasPrimaryurl ?URL;\n tln:hasSecondaryurl ?secondaryURL;\n tln:hasWidth ?width;\n tln:hasHeight ?height;\n tln:hasTextField ?textfield.\n ?textfield tln:hasLeft ?t_left;\n tln:hasTop ?t_top;\n tln:hasWidth ?t_width;\n tln:hasHeight ?t_height;\n ^tln:pageIsOnFaksimileTextField ?page.\n OPTIONAL { ?id tln:hasTransform ?transform. }\n }";
/***/
},
/***/
"./src/app/tln-edition/datatypes/foreign_text.ts":
/*!*******************************************************!*\
!*** ./src/app/tln-edition/datatypes/foreign_text.ts ***!
\*******************************************************/
/*! exports provided: TlnTextByForeignHand, FaksimileTextByForeignHand */
/***/
function srcAppTlnEditionDatatypesForeign_textTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnTextByForeignHand", function () {
return TlnTextByForeignHand;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "FaksimileTextByForeignHand", function () {
return FaksimileTextByForeignHand;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _positional_object__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! ./positional_object */
"./src/app/tln-edition/datatypes/positional_object.ts");
/**
* This is the 'text by foreign hand' instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.
* It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.
**/
var TlnTextByForeignHand = /*#__PURE__*/function (_positional_object__W) {
_inherits(TlnTextByForeignHand, _positional_object__W);
var _super9 = _createSuper(TlnTextByForeignHand);
/**
* The constructor creates a datatype from the data.
*
* @param id if omitted the id will be retrieved from data
**/
function TlnTextByForeignHand(data, id, service) {
var _this41;
_classCallCheck(this, TlnTextByForeignHand);
_this41 = _super9.call(this, data, id, service);
_this41.text = _this41.getData4Key('text');
_this41.pen = _this41.getData4Key('pen');
return _this41;
}
return TlnTextByForeignHand;
}(_positional_object__WEBPACK_IMPORTED_MODULE_1__["TlnPositionalObject"]);
/**
* the SPARQL-query of this datatype.
**/
TlnTextByForeignHand.query = "\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?text ?pen ?left ?top ?width ?height ?transform WHERE {\n ?page tln:hasMarkForeignHands/rdf:rest*/rdf:first ?id.\n ?id tln:textOfForeignHands/tln:textHasContent ?text;\n tln:penOfForeignHands ?pen;\n tln:hasTranskriptionPosition ?tp.\n \t?tp tln:hasLeft ?left; tln:hasTop ?top; tln:hasWidth ?width; tln:hasHeight ?height.\n OPTIONAl { ?tp tln:hasTransform ?transform.}\n } ";
/**
* This is the faksimile text by foreign hand instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.
* It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.
**/
var FaksimileTextByForeignHand = /*#__PURE__*/function (_TlnTextByForeignHand) {
_inherits(FaksimileTextByForeignHand, _TlnTextByForeignHand);
var _super10 = _createSuper(FaksimileTextByForeignHand);
function FaksimileTextByForeignHand() {
_classCallCheck(this, FaksimileTextByForeignHand);
return _super10.apply(this, arguments);
}
return FaksimileTextByForeignHand;
}(TlnTextByForeignHand);
/**
* the SPARQL-query of this datatype.
**/
FaksimileTextByForeignHand.query = "\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?text ?pen ?left ?top ?width ?height ?transform WHERE {\n ?page tln:hasMarkForeignHands/rdf:rest*/rdf:first ?id.\n ?id tln:textOfForeignHands/tln:textHasContent ?text;\n tln:penOfForeignHands ?pen;\n tln:hasFaksimilePosition ?fp.\n \t?fp tln:hasLeft ?left; tln:hasTop ?top; tln:hasWidth ?width; tln:hasHeight ?height.\n OPTIONAl { ?fp tln:hasTransform ?transform.}\n } ";
/***/
},
/***/
"./src/app/tln-edition/datatypes/image.ts":
/*!************************************************!*\
!*** ./src/app/tln-edition/datatypes/image.ts ***!
\************************************************/
/*! exports provided: TlnImage, TlnTextField */
/***/
function srcAppTlnEditionDatatypesImageTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnImage", function () {
return TlnImage;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnTextField", function () {
return TlnTextField;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _basic_datatype__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! ./basic_datatype */
"./src/app/tln-edition/datatypes/basic_datatype.ts");
var TlnImage = /*#__PURE__*/function (_basic_datatype__WEBP2) {
_inherits(TlnImage, _basic_datatype__WEBP2);
var _super11 = _createSuper(TlnImage);
function TlnImage(data, id, service) {
var _this42;
_classCallCheck(this, TlnImage);
_this42 = _super11.call(this, data, id, service);
_this42.x = 0;
_this42.y = 0;
_this42.filename = _this42.getData4Key('filename');
_this42.width = _this42.getData4Key('width');
_this42.height = _this42.getData4Key('height');
_this42.URL = _this42.getData4Key('URL');
_this42.secondaryURL = _this42.getData4Key('secondaryURL');
_this42.transform = _this42.getData4Key('transform');
_this42.text_field = new TlnTextField(_this42.getData4Key('t_left'), _this42.getData4Key('t_top'), _this42.getData4Key('t_width'), _this42.getData4Key('t_height'));
return _this42;
}
return TlnImage;
}(_basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"]);
TlnImage.default_key = 'page';
TlnImage.query = "\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n\n SELECT ?id ?filename ?width ?height ?URL ?secondaryURL ?t_left ?t_top ?t_width ?t_height ?page ?transform WHERE {\n ?id a tln:Image;\n tln:hasPrimaryurl ?URL;\n tln:hasSecondaryurl ?secondaryURL;\n tln:hasFileName ?filename;\n tln:hasWidth ?width;\n tln:hasHeight ?height;\n tln:hasTextField ?textfield.\n ?textfield tln:hasLeft ?t_left;\n tln:hasTop ?t_top;\n tln:hasWidth ?t_width;\n tln:hasHeight ?t_height;\n ^tln:pageIsOnTextField ?page.\n OPTIONAL { ?id tln:hasTransform ?transform. }\n }";
var TlnTextField = function TlnTextField(left, top, width, height) {
_classCallCheck(this, TlnTextField);
this.left = left;
this.top = top;
this.width = width;
this.height = height;
};
/***/
},
/***/
"./src/app/tln-edition/datatypes/line.ts":
/*!***********************************************!*\
!*** ./src/app/tln-edition/datatypes/line.ts ***!
\***********************************************/
/*! exports provided: TlnLine, FaksimileLine */
/***/
function srcAppTlnEditionDatatypesLineTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnLine", function () {
return TlnLine;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "FaksimileLine", function () {
return FaksimileLine;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _basic_datatype__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! ./basic_datatype */
"./src/app/tln-edition/datatypes/basic_datatype.ts");
/**
* This is the line instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.
* It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.
**/
var TlnLine = /*#__PURE__*/function (_basic_datatype__WEBP3) {
_inherits(TlnLine, _basic_datatype__WEBP3);
var _super12 = _createSuper(TlnLine);
/**
* The constructor creates a datatype from the data.
*
* @param id if omitted the id will be retrieved from data
**/
function TlnLine(data, id, service) {
var _this43;
_classCallCheck(this, TlnLine);
_this43 = _super12.call(this, data, id, service);
_this43.number = _this43.getData4Key('number');
_this43.top = _this43.getData4Key('top');
_this43.bottom = _this43.getData4Key('bottom');
var pageNumber = _this43.getData4Key('pageNumber');
var manuscriptTitle = _this43.getData4Key('manuscriptTitle');
var continuesTo = _this43.getData4Key('toLine');
var continuesFrom = _this43.getData4Key('fromLine');
if (continuesTo != null) {
var manuscript = {
id: _this43.getData4Key('toManuscript'),
title: _this43.getData4Key('toManuscriptTitle')
};
var page = {
id: _this43.getData4Key('toPage'),
number: _this43.getData4Key('toPageNumber')
};
var line = {
id: continuesTo,
number: _this43.getData4Key('toLineNumber')
};
_this43.continuesTo = {
manuscript: manuscript,
page: page,
line: line
};
}
if (continuesFrom != null) {
var _manuscript = {
id: _this43.getData4Key('fromManuscript'),
title: _this43.getData4Key('fromManuscriptTitle')
};
var _page = {
id: _this43.getData4Key('fromPage'),
number: _this43.getData4Key('fromPageNumber')
};
var _line = {
id: continuesFrom,
number: _this43.getData4Key('fromLineNumber')
};
_this43.continuesFrom = {
manuscript: _manuscript,
page: _page,
line: _line
};
}
if (_this43.continuesFrom != null || _this43.continuesTo != null) {
var reference = _this43.continuesTo != null ? _this43.continuesTo : _this43.continuesFrom;
var _manuscript2 = _this43.getData4Key('manuscriptId') == reference.manuscript.id ? null : {
id: _this43.getData4Key('manuscriptId'),
title: _this43.getData4Key('manuscriptTitle')
};
var _page2 = _this43.page == reference.page.id ? null : {
id: _this43.page,
number: _this43.getData4Key('pageNumber')
};
_this43.source = {
manuscript: _manuscript2,
page: _page2,
line: {
id: _this43.id,
number: _this43.number
}
};
}
return _this43;
}
return TlnLine;
}(_basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"]);
/**
* the internal default key for replacing {@link /classes/TlnLine.html#query|query} by "id"
* in {@link /classes/TlnLine.html#getQuery|getQuery} if "key" is omitted.
**/
TlnLine.default_key = 'page';
TlnLine.use_id = true;
/**
* the SPARQL-query of this datatype.
**/
TlnLine.query = "\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?number ?top ?bottom \n ?pageNumber ?manuscriptId ?manuscriptTitle\n ?toLine ?toLineNumber ?toPage ?toPageNumber ?toManuscript ?toManuscriptTitle \n ?fromLine ?fromLineNumber ?fromPage ?fromPageNumber ?fromManuscript ?fromManuscriptTitle \n WHERE {\n ?page tln:hasLines/rdf:rest*/rdf:first ?id;\n tln:hasNumber ?pageNumber.\n ?id a tln:Line; tln:lineHasNumber ?number;\n tln:lineHasTopValueOnTranskription ?top;\n tln:lineHasBottomValueOnTranskription ?bottom.\n ?manuscriptId tln:hasPages/rdf:rest*/rdf:first ?page;\n tln:hasTitle ?manuscriptTitle.\n OPTIONAL { \n ?id tln:lineContinuesOn ?toLine.\n ?toLine tln:lineHasNumber ?toLineNumber.\n ?toPage tln:hasLines/rdf:rest*/rdf:first ?toLine; tln:hasNumber ?toPageNumber.\n ?toManuscript tln:hasPages/rdf:rest*/rdf:first ?toPage; tln:hasTitle ?toManuscriptTitle.\n }\n OPTIONAL { \n ?id ^tln:lineContinuesOn ?fromLine.\n ?fromLine tln:lineHasNumber ?fromLineNumber.\n ?fromPage tln:hasLines/rdf:rest*/rdf:first ?fromLine; tln:hasNumber ?fromPageNumber.\n ?fromManuscript tln:hasPages/rdf:rest*/rdf:first ?fromPage; tln:hasTitle ?fromManuscriptTitle.\n }\n } ";
/**
* the public key for replacing {@link /classes/TlnLine.html#query|query} by "id".
**/
TlnLine.query_key = 'page';
/**
* This is the faksimile line instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.
* It extends {@link /classes/TlnLine.html|TlnLine}.
**/
var FaksimileLine = /*#__PURE__*/function (_TlnLine) {
_inherits(FaksimileLine, _TlnLine);
var _super13 = _createSuper(FaksimileLine);
function FaksimileLine() {
_classCallCheck(this, FaksimileLine);
return _super13.apply(this, arguments);
}
return FaksimileLine;
}(TlnLine);
/**
* the SPARQL-query of this datatype.
**/
FaksimileLine.query = "\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?number ?top ?bottom\n ?pageNumber ?manuscriptId ?manuscriptTitle\n ?toLine ?toLineNumber ?toPage ?toPageNumber ?toManuscript ?toManuscriptTitle \n ?fromLine ?fromLineNumber ?fromPage ?fromPageNumber ?fromManuscript ?fromManuscriptTitle \n WHERE {\n ?page tln:hasLines/rdf:rest*/rdf:first ?id;\n tln:hasNumber ?pageNumber.\n ?id a tln:Line; tln:lineHasNumber ?number;\n tln:lineHasInnerTopValueOnFaksimile ?top;\n tln:lineHasInnerBottomValueOnFaksimile ?i_bottom.\n ?manuscriptId tln:hasPages/rdf:rest*/rdf:first ?page;\n tln:hasTitle ?manuscriptTitle.\n BIND( (?top+?i_bottom)/2 as ?bottom).\n OPTIONAL { \n ?id tln:lineContinuesOn ?toLine.\n ?toLine tln:lineHasNumber ?toLineNumber.\n ?toPage tln:hasLines/rdf:rest*/rdf:first ?toLine; tln:hasNumber ?toPageNumber.\n ?toManuscript tln:hasPages/rdf:rest*/rdf:first ?toPage; tln:hasTitle ?toManuscriptTitle.\n }\n OPTIONAL { \n ?id ^tln:lineContinuesOn ?fromLine.\n ?fromLine tln:lineHasNumber ?fromLineNumber.\n ?fromPage tln:hasLines/rdf:rest*/rdf:first ?fromLine; tln:hasNumber ?fromPageNumber.\n ?fromManuscript tln:hasPages/rdf:rest*/rdf:first ?fromPage; tln:hasTitle ?fromManuscriptTitle.\n }\n } ";
/***/
},
/***/
"./src/app/tln-edition/datatypes/line_reference.ts":
/*!*********************************************************!*\
!*** ./src/app/tln-edition/datatypes/line_reference.ts ***!
\*********************************************************/
/*! exports provided: TlnLineReference */
/***/
function srcAppTlnEditionDatatypesLine_referenceTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnLineReference", function () {
return TlnLineReference;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _basic_datatype__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! ./basic_datatype */
"./src/app/tln-edition/datatypes/basic_datatype.ts");
var TlnLineReference = /*#__PURE__*/function (_basic_datatype__WEBP4) {
_inherits(TlnLineReference, _basic_datatype__WEBP4);
var _super14 = _createSuper(TlnLineReference);
/**
* The constructor creates a datatype from the data.
*
* @param id if omitted the id will be retrieved from data
**/
function TlnLineReference(data, id, service) {
var _this44;
_classCallCheck(this, TlnLineReference);
_this44 = _super14.call(this, data, id, service);
_this44.line = {
id: _this44.id,
number: _this44.getData4Key('line_number')
};
_this44.page = {
id: _this44.getData4Key('page_id'),
number: _this44.getData4Key('page')
};
_this44.manuscript = {
id: _this44.getData4Key('manuscript'),
title: _this44.getData4Key('title')
};
return _this44;
}
return TlnLineReference;
}(_basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"]);
/**
* the internal default key for replacing {@link /classes/TlnLine.html#query|query} by "id"
* in {@link /classes/TlnLine.html#getQuery|getQuery} if "key" is omitted.
**/
TlnLineReference.default_key = 'page';
/**
* the SPARQL-query of this datatype.
**/
TlnLineReference.query = "\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?page ?page_id ?manuscript ?title ?line_number WHERE {\n ?id a tln:Line; tln:lineHasNumber ?line_number.\n ?page_id tln:hasLines/rdf:rest*/rdf:first ?id; tln:hasNumber ?page.\n ?manuscript tln:hasPages/rdf:rest*/rdf:first ?page_id; tln:hasTitle ?title.\n } ";
/**
* the public key for replacing {@link /classes/TlnLine.html#query|query} by "id".
**/
TlnLineReference.query_key = 'id';
/***/
},
/***/
"./src/app/tln-edition/datatypes/manuscript.ts":
/*!*****************************************************!*\
!*** ./src/app/tln-edition/datatypes/manuscript.ts ***!
\*****************************************************/
/*! exports provided: ManuscriptStub, TlnExtManuscript, ReconstructedKonvolut, ManuscriptDescription, ManuscriptEarlierDescription */
/***/
function srcAppTlnEditionDatatypesManuscriptTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "ManuscriptStub", function () {
return ManuscriptStub;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnExtManuscript", function () {
return TlnExtManuscript;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "ReconstructedKonvolut", function () {
return ReconstructedKonvolut;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "ManuscriptDescription", function () {
return ManuscriptDescription;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "ManuscriptEarlierDescription", function () {
return ManuscriptEarlierDescription;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _basic_datatype__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! ./basic_datatype */
"./src/app/tln-edition/datatypes/basic_datatype.ts");
/* harmony import */
var _positional_markup__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! ./positional-markup */
"./src/app/tln-edition/datatypes/positional-markup.ts");
/* harmony import */
var _page__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ./page */
"./src/app/tln-edition/datatypes/page.ts");
var ManuscriptStub = /*#__PURE__*/function (_basic_datatype__WEBP5) {
_inherits(ManuscriptStub, _basic_datatype__WEBP5);
var _super15 = _createSuper(ManuscriptStub);
function ManuscriptStub(data, id, service) {
var _this45;
_classCallCheck(this, ManuscriptStub);
_this45 = _super15.call(this, data, id, service);
_this45.title = _this45.getData4Key('title');
_this45.type = _this45.getData4Key('type');
return _this45;
}
return ManuscriptStub;
}(_basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"]);
ManuscriptStub.query = "\n PREFIX data: <http://rdfh.ch/projects/0068#>\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n\n SELECT ?id ?title ?type WHERE {\n ?id a tln:ArchivalManuscriptUnity ;\n tln:hasTitle ?title;\n tln:hasManuscriptType ?type.\n }";
var TlnExtManuscript = /*#__PURE__*/function (_ManuscriptStub) {
_inherits(TlnExtManuscript, _ManuscriptStub);
var _super16 = _createSuper(TlnExtManuscript);
function TlnExtManuscript(data, id, service) {
var _this46;
_classCallCheck(this, TlnExtManuscript);
_this46 = _super16.call(this, data, id, service);
_this46.thumbImage = _this46.getData4Key('thumbImage');
_this46.gsaSignature = _this46.getData4Key('gsaSignature');
_this46.archivalicSignature = _this46.getData4Key('archivalicSignature');
return _this46;
}
return TlnExtManuscript;
}(ManuscriptStub);
/**
* the internal default key for replacing {@link /classes/TlnLine.html#query|query} by "id"
* in {@link /classes/TlnLine.html#getQuery|getQuery} if "key" is omitted.
**/
TlnExtManuscript.default_key = 'manuscript';
TlnExtManuscript.query = "\n PREFIX data: <http://rdfh.ch/projects/0068#>\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n PREFIX stoff: <http://www.nie.org/ontology/standoff#>\n\n SELECT DISTINCT ?gsaSignature ?title ?thumbImage ?type ?archivalicSignature WHERE {\n ?manuscript tln:hasPages/rdf:first/tln:hasFaksimileImage/tln:hasThumburl ?thumbImage;\n tln:hasGsaSignature ?gsaSignature;\n tln:hasTitle ?title;\n tln:hasManuscriptType ?type. \n OPTIONAL {\n ?manuscript tln:hasArchivalicSignature ?archivalicSignature. \n }\n }";
/**
* the public key for replacing {@link /classes/TlnLine.html#query|query} by "id".
**/
TlnExtManuscript.query_key = 'manuscript';
var ReconstructedKonvolut = /*#__PURE__*/function (_ManuscriptStub2) {
_inherits(ReconstructedKonvolut, _ManuscriptStub2);
var _super17 = _createSuper(ReconstructedKonvolut);
function ReconstructedKonvolut(data, id, service) {
var _this47;
_classCallCheck(this, ReconstructedKonvolut);
_this47 = _super17.call(this, data, id, service);
_this47.pages = [];
_this47.title = _this47.getData4Key('manuscriptTitle');
_this47.description = _this47.getData4Key('description');
return _this47;
}
_createClass(ReconstructedKonvolut, null, [{
key: "convertData",
value: function convertData(data, id, service) {
var elements = [];
var content = this.getContent(data);
for (var i = 0; i < content.length; i++) {
var element = new ReconstructedKonvolut(content[i], id, service);
var pages = [];
if (content[i]['page'] != undefined && content[i]['page'] != null) {
pages = content[i]['title'] != undefined && content[i]['title'] != null ? _page__WEBPACK_IMPORTED_MODULE_3__["TlnPage"].convertData({
head: {
vars: []
},
results: {
bindings: [content[i]]
}
}, content[i]['page']['value']) : _page__WEBPACK_IMPORTED_MODULE_3__["PageStub"].convertData({
head: {
vars: []
},
results: {
bindings: [content[i]]
}
}, content[i]['page']['value']);
}
if (elements.length > 0 && elements[elements.length - 1].id == element.id) {
if (pages.length > 0) {
elements[elements.length - 1].pages.push(pages[0]);
}
} else {
if (pages.length > 0) {
element.pages.push(pages[0]);
}
elements.push(element);
}
} //console.log(elements)
return elements;
}
}]);
return ReconstructedKonvolut;
}(ManuscriptStub);
/**
* the internal default key for replacing {@link /classes/TlnLine.html#query|query} by "id"
* in {@link /classes/TlnLine.html#getQuery|getQuery} if "key" is omitted.
**/
ReconstructedKonvolut.default_key = 'manuscript';
ReconstructedKonvolut.query = "\n PREFIX data: <http://rdfh.ch/projects/0068#>\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n PREFIX stoff: <http://www.nie.org/ontology/standoff#>\n\n SELECT DISTINCT ?id ?manuscriptTitle ?title ?type ?page ?number ?description WHERE {\n ?manuscript tln:partsBelongToReconstructedKonvolut ?id. \n ?id tln:hasTitle ?manuscriptTitle;\n tln:hasDescription/tln:textHasContent ?description;\n tln:hasManuscriptType ?type;\n tln:hasPages/rdf:rest*/rdf:first ?page. \n OPTIONAL { ?page tln:hasNumber ?number.}\n OPTIONAL { \n ?archivalicUnity a tln:ArchivalManuscriptUnity;\n tln:hasPages/rdf:rest*/rdf:first ?page;\n tln:hasTitle ?title.\n }\n }";
/**
* the public key for replacing {@link /classes/TlnLine.html#query|query} by "id".
**/
ReconstructedKonvolut.query_key = 'manuscript';
var ManuscriptDescription = /*#__PURE__*/function (_basic_datatype__WEBP6) {
_inherits(ManuscriptDescription, _basic_datatype__WEBP6);
var _super18 = _createSuper(ManuscriptDescription);
function ManuscriptDescription(data, id, service) {
var _this48;
_classCallCheck(this, ManuscriptDescription);
_this48 = _super18.call(this, data, id, service);
_this48.text = _this48.getData4Key('text');
_this48.markups = [];
return _this48;
}
_createClass(ManuscriptDescription, null, [{
key: "convertData",
value: function convertData(data, id, service) {
var elements = [];
var content = this.getContent(data);
for (var i = 0; i < content.length; i++) {
var element = new ManuscriptDescription(content[i], id, service);
var markups = content[i]['description_markup'] != undefined && content[i]['description_markup'] != null ? _positional_markup__WEBPACK_IMPORTED_MODULE_2__["TlnPositionalStyleMarkup"].convertData({
head: {
vars: []
},
results: {
bindings: [content[i]]
}
}, content[i]['description_markup']['value']) : [];
if (elements.length > 0 && elements[elements.length - 1].id == element.id) {
if (markups.length > 0) {
elements[elements.length - 1].markups.push(markups[0]);
}
} else {
if (markups.length > 0) {
element.markups.push(markups[0]);
}
elements.push(element);
}
} //console.log(elements)
return elements;
}
}]);
return ManuscriptDescription;
}(_basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"]);
/**
* the internal default key for replacing {@link /classes/TlnLine.html#query|query} by "id"
* in {@link /classes/TlnLine.html#getQuery|getQuery} if "key" is omitted.
**/
ManuscriptDescription.default_key = 'manuscript';
ManuscriptDescription.query = "\n PREFIX data: <http://rdfh.ch/projects/0068#>\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n PREFIX stoff: <http://www.nie.org/ontology/standoff#>\n\n SELECT DISTINCT ?id ?text ?description_markup ?cssStyleTag ?startIndex ?endIndex WHERE {\n ?manuscript tln:hasDescription ?id.\n ?id tln:textHasContent ?text.\n OPTIONAL { ?id tln:textHasMarkup ?description_markup.\n ?description_markup stoff:hasCSS ?cssStyleTag;\n stoff:standoffMarkupHasStartIndex ?startIndex;\n stoff:standoffMarkupHasEndIndex ?endIndex.}\n }";
/**
* the public key for replacing {@link /classes/TlnLine.html#query|query} by "id".
**/
ManuscriptDescription.query_key = 'manuscript';
var ManuscriptEarlierDescription = /*#__PURE__*/function (_basic_datatype__WEBP7) {
_inherits(ManuscriptEarlierDescription, _basic_datatype__WEBP7);
var _super19 = _createSuper(ManuscriptEarlierDescription);
function ManuscriptEarlierDescription(data, id, service) {
var _this49;
_classCallCheck(this, ManuscriptEarlierDescription);
_this49 = _super19.call(this, data, id, service);
_this49.text = _this49.getData4Key('text');
_this49.author = _this49.getData4Key('author');
_this49.citation = _this49.getData4Key('citation');
_this49.markups = [];
return _this49;
}
_createClass(ManuscriptEarlierDescription, null, [{
key: "convertData",
value: function convertData(data, id, service) {
var elements = [];
var content = this.getContent(data);
for (var i = 0; i < content.length; i++) {
var element = new ManuscriptEarlierDescription(content[i], id, service);
var markups = content[i]['description_markup'] != undefined && content[i]['description_markup'] != null ? _positional_markup__WEBPACK_IMPORTED_MODULE_2__["TlnPositionalStyleMarkup"].convertData({
head: {
vars: []
},
results: {
bindings: [content[i]]
}
}, content[i]['description_markup']['value']) : [];
if (elements.length > 0 && elements[elements.length - 1].id == element.id) {
if (markups.length > 0) {
elements[elements.length - 1].markups.push(markups[0]);
}
} else {
if (markups.length > 0) {
element.markups.push(markups[0]);
}
elements.push(element);
}
} //console.log(elements)
return elements;
}
}]);
return ManuscriptEarlierDescription;
}(_basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"]);
/**
* the internal default key for replacing {@link /classes/TlnLine.html#query|query} by "id"
* in {@link /classes/TlnLine.html#getQuery|getQuery} if "key" is omitted.
**/
ManuscriptEarlierDescription.default_key = 'manuscript';
ManuscriptEarlierDescription.query = "\n PREFIX data: <http://rdfh.ch/projects/0068#>\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX stoff: <http://www.nie.org/ontology/standoff#>\n\n SELECT ?id ?text ?author ?citation ?description_markup ?cssStyleTag ?startIndex ?endIndex WHERE {\n ?manuscript tln:hasEarlierDescriptions ?id. \n ?id tln:textHasContent ?text;\n tln:hasAuthor ?author;\n tln:hasCitation ?citation.\n OPTIONAL { ?id tln:textHasMarkup ?description_markup.\n ?description_markup stoff:hasCSS ?cssStyleTag;\n stoff:standoffMarkupHasStartIndex ?startIndex;\n stoff:standoffMarkupHasEndIndex ?endIndex.}\n }";
/**
* the public key for replacing {@link /classes/TlnLine.html#query|query} by "id".
**/
ManuscriptEarlierDescription.query_key = 'manuscript';
/***/
},
/***/
"./src/app/tln-edition/datatypes/navigation.ts":
/*!*****************************************************!*\
!*** ./src/app/tln-edition/datatypes/navigation.ts ***!
\*****************************************************/
/*! exports provided: TlnManuscriptUnity, TlnNavigationPage */
/***/
function srcAppTlnEditionDatatypesNavigationTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnManuscriptUnity", function () {
return TlnManuscriptUnity;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnNavigationPage", function () {
return TlnNavigationPage;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _basic_datatype__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! ./basic_datatype */
"./src/app/tln-edition/datatypes/basic_datatype.ts");
var TlnManuscriptUnity = /*#__PURE__*/function (_basic_datatype__WEBP8) {
_inherits(TlnManuscriptUnity, _basic_datatype__WEBP8);
var _super20 = _createSuper(TlnManuscriptUnity);
function TlnManuscriptUnity(data, id, service) {
var _this50;
_classCallCheck(this, TlnManuscriptUnity);
_this50 = _super20.call(this, data, id, service);
_this50.title = _this50.getData4Key('title');
_this50.numberOfPages = _this50.getData4Key('numberOfPages');
_this50.firstPage = {
id: _this50.getData4Key('firstItem'),
number: _this50.getData4Key('firstNumber'),
title: _this50.title,
index: 1
};
_this50.lastPage = {
id: _this50.getData4Key('lastItem'),
number: _this50.getData4Key('lastNumber'),
title: _this50.title,
index: _this50.numberOfPages
};
return _this50;
}
return TlnManuscriptUnity;
}(_basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"]);
TlnManuscriptUnity.query = "\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n PREFIX list: <http://jena.apache.org/ARQ/list#>\n\n SELECT ?title ?numberOfPages ?firstItem ?firstNumber ?lastItem ?lastNumber WHERE {\n ?id a tln:ManuscriptUnity;\n tln:hasTitle ?title;\n tln:hasPages ?list.\n ?list list:length ?numberOfPages;\n rdf:first ?firstItem;\n rdf:rest* ?lastNode.\n ?lastNode rdf:first ?lastItem;\n rdf:rest rdf:nil.\n ?firstItem tln:hasNumber ?firstNumber.\n ?lastItem tln:hasNumber ?lastNumber.\n }";
TlnManuscriptUnity.query_key = 'id';
var TlnNavigationPage = /*#__PURE__*/function (_basic_datatype__WEBP9) {
_inherits(TlnNavigationPage, _basic_datatype__WEBP9);
var _super21 = _createSuper(TlnNavigationPage);
function TlnNavigationPage(data, id, service) {
var _this51;
_classCallCheck(this, TlnNavigationPage);
_this51 = _super21.call(this, data, id, service);
_this51.title = _this51.getData4Key('title');
_this51.number = _this51.getData4Key('number');
var previous = _this51.getData4Key('previous');
var next = _this51.getData4Key('next');
if (previous != null) {
_this51.previous = {
id: previous,
number: _this51.getData4Key('previousNumber'),
title: _this51.title,
index: _this51.getData4Key('previousIndex') + 1
};
}
if (next != null) {
_this51.next = {
id: next,
number: _this51.getData4Key('nextNumber'),
title: _this51.title,
index: _this51.getData4Key('nextIndex') + 1
};
}
return _this51;
}
return TlnNavigationPage;
}(_basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"]);
TlnNavigationPage.query = "\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n PREFIX list: <http://jena.apache.org/ARQ/list#>\n\n SELECT ?title ?number ?previous ?previousNumber ?next ?nextNumber ?previousIndex ?nextIndex WHERE {\n ?id tln:hasNumber ?number.\n ?unity a tln:ArchivalManuscriptUnity;\n tln:hasTitle ?title;\n tln:hasPages ?list.\n ?list rdf:rest* ?node.\n ?node rdf:first ?id.\n OPTIONAL { ?node ^rdf:rest/rdf:first ?previous.\n ?previous tln:hasNumber ?previousNumber.\n ?list list:index (?previousIndex ?previous);\n }\n OPTIONAL { ?node rdf:rest/rdf:first ?next.\n ?next tln:hasNumber ?nextNumber.\n ?list list:index (?nextIndex ?next);\n }\n }";
TlnNavigationPage.query_key = 'id';
/***/
},
/***/
"./src/app/tln-edition/datatypes/page.ts":
/*!***********************************************!*\
!*** ./src/app/tln-edition/datatypes/page.ts ***!
\***********************************************/
/*! exports provided: PageStub, TlnPage */
/***/
function srcAppTlnEditionDatatypesPageTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "PageStub", function () {
return PageStub;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnPage", function () {
return TlnPage;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _basic_datatype__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! ./basic_datatype */
"./src/app/tln-edition/datatypes/basic_datatype.ts");
var PageStub = /*#__PURE__*/function (_basic_datatype__WEBP10) {
_inherits(PageStub, _basic_datatype__WEBP10);
var _super22 = _createSuper(PageStub);
function PageStub(data, id, service) {
var _this52;
_classCallCheck(this, PageStub);
_this52 = _super22.call(this, data, id, service);
_this52.number = _this52.getData4Key('number');
return _this52;
}
return PageStub;
}(_basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"]);
PageStub.query = "\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?number WHERE {\n ?manuscript a tln:ArchivalManuscriptUnity;\n tln:hasPages/rdf:rest*/rdf:first ?id.\n ?id tln:hasNumber ?number.\n FILTER EXISTS { ?id tln:hasImage ?image }\n }";
PageStub.query_key = 'manuscript';
var TlnPage = /*#__PURE__*/function (_PageStub) {
_inherits(TlnPage, _PageStub);
var _super23 = _createSuper(TlnPage);
function TlnPage(data, id, service) {
var _this53;
_classCallCheck(this, TlnPage);
_this53 = _super23.call(this, data, id, service);
_this53.title = _this53.getData4Key('title');
_this53.manuscript = _this53.getData4Key('manuscript');
if (_this53.service != null) {
_this53.service.setCurrentIri(_this53.id, _this53.manuscript); //this.service.setTitle(this.title + ", " + this.number);
}
return _this53;
}
return TlnPage;
}(PageStub);
TlnPage.query = "\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?title ?number ?manuscript WHERE {\n ?manuscript a tln:ArchivalManuscriptUnity;\n tln:hasTitle ?title;\n tln:hasPages/rdf:rest*/rdf:first ?id.\n ?id a tln:Page; tln:hasNumber ?number.\n }";
TlnPage.query_key = 'id';
/***/
},
/***/
"./src/app/tln-edition/datatypes/positional-markup.ts":
/*!************************************************************!*\
!*** ./src/app/tln-edition/datatypes/positional-markup.ts ***!
\************************************************************/
/*! exports provided: TlnPositionalStyleMarkup, TlnFilteredPositionalStyleMarkup */
/***/
function srcAppTlnEditionDatatypesPositionalMarkupTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnPositionalStyleMarkup", function () {
return TlnPositionalStyleMarkup;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnFilteredPositionalStyleMarkup", function () {
return TlnFilteredPositionalStyleMarkup;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _basic_datatype__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! ./basic_datatype */
"./src/app/tln-edition/datatypes/basic_datatype.ts");
/**
* This is the line instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.
* It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.
**/
var TlnPositionalStyleMarkup = /*#__PURE__*/function (_basic_datatype__WEBP11) {
_inherits(TlnPositionalStyleMarkup, _basic_datatype__WEBP11);
var _super24 = _createSuper(TlnPositionalStyleMarkup);
/**
* The constructor creates a datatype from the data.
*
* @param id if omitted the id will be retrieved from data
**/
function TlnPositionalStyleMarkup(data, id, service) {
var _this54;
_classCallCheck(this, TlnPositionalStyleMarkup);
_this54 = _super24.call(this, data, id, service);
/**
* standoff type: 0 === markup via css tag; 1 === apply css class
**/
_this54.sType = 0;
_this54.cssStyleTag = _this54.getData4Key('cssStyleTag');
_this54.endIndex = _this54.getData4Key('endIndex');
_this54.startIndex = _this54.getData4Key('startIndex');
return _this54;
}
return TlnPositionalStyleMarkup;
}(_basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"]);
/**
* the internal default key for replacing {@link /classes/TlnLine.html#query|query} by "id"
* in {@link /classes/TlnLine.html#getQuery|getQuery} if "key" is omitted.
**/
TlnPositionalStyleMarkup.default_key = 'word';
/**
* the SPARQL-query of this datatype.
**/
TlnPositionalStyleMarkup.query = "\n PREFIX homotypic: <http://www.nie.org/ontology/homotypic#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n PREFIX stoff: <http://www.nie.org/ontology/standoff#>\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n\n SELECT ?id ?cssStyleTag ?startIndex ?endIndex WHERE {\n ?word homotypic:hasMarkup ?id. \n ?id stoff:hasCSS ?cssStyleTag;\n stoff:standoffMarkupHasStartIndex ?startIndex;\n stoff:standoffMarkupHasEndIndex ?endIndex.\n } ";
TlnPositionalStyleMarkup.query_key = 'word';
var TlnFilteredPositionalStyleMarkup = /*#__PURE__*/function (_TlnPositionalStyleMa) {
_inherits(TlnFilteredPositionalStyleMarkup, _TlnPositionalStyleMa);
var _super25 = _createSuper(TlnFilteredPositionalStyleMarkup);
function TlnFilteredPositionalStyleMarkup(data, id, service) {
var _this55;
_classCallCheck(this, TlnFilteredPositionalStyleMarkup);
_this55 = _super25.call(this, data, id, service);
_this55.regex = new RegExp('font-size:[0-9]\+%[;]*');
_this55.cssStyleTag = _this55.cssStyleTag.replace(_this55.regex, '') + 'filter: invert(1);';
return _this55;
}
return TlnFilteredPositionalStyleMarkup;
}(TlnPositionalStyleMarkup);
/***/
},
/***/
"./src/app/tln-edition/datatypes/positional_object.ts":
/*!************************************************************!*\
!*** ./src/app/tln-edition/datatypes/positional_object.ts ***!
\************************************************************/
/*! exports provided: TlnPositionalObject */
/***/
function srcAppTlnEditionDatatypesPositional_objectTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnPositionalObject", function () {
return TlnPositionalObject;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _basic_datatype__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! ./basic_datatype */
"./src/app/tln-edition/datatypes/basic_datatype.ts");
/**
* This is the 'text by foreign hand' instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.
* It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.
**/
var TlnPositionalObject = /*#__PURE__*/function (_basic_datatype__WEBP12) {
_inherits(TlnPositionalObject, _basic_datatype__WEBP12);
var _super26 = _createSuper(TlnPositionalObject);
/**
* The constructor creates a datatype from the data.
*
* @param id if omitted the id will be retrieved from data
**/
function TlnPositionalObject(data, id, service) {
var _this56;
_classCallCheck(this, TlnPositionalObject);
_this56 = _super26.call(this, data, id, service);
_this56.left = _this56.getData4Key('left');
_this56.top = _this56.getData4Key('top');
_this56.width = _this56.getData4Key('width');
_this56.height = _this56.getData4Key('height');
_this56.transform = _this56.getData4Key('transform');
return _this56;
}
return TlnPositionalObject;
}(_basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"]);
/**
* the internal default key for replacing {@link /classes/TlnWord.html#query|query} by "id"
* in {@link /classes/TlnWord.html#getQuery|getQuery} if "key" is omitted.
**/
TlnPositionalObject.default_key = 'page';
/**
* the public key for replacing {@link /classes/TlnWord.html#query|query} by "id".
**/
TlnPositionalObject.query_key = 'page';
/***/
},
/***/
"./src/app/tln-edition/datatypes/preview_data.ts":
/*!*******************************************************!*\
!*** ./src/app/tln-edition/datatypes/preview_data.ts ***!
\*******************************************************/
/*! exports provided: TlnPreviewWord */
/***/
function srcAppTlnEditionDatatypesPreview_dataTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnPreviewWord", function () {
return TlnPreviewWord;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _word__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! ./word */
"./src/app/tln-edition/datatypes/word.ts");
/* harmony import */
var _positional_markup__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! ./positional-markup */
"./src/app/tln-edition/datatypes/positional-markup.ts");
var TlnPreviewWord = /*#__PURE__*/function (_word__WEBPACK_IMPORT) {
_inherits(TlnPreviewWord, _word__WEBPACK_IMPORT);
var _super27 = _createSuper(TlnPreviewWord);
/**
* The constructor creates a datatype from the data.
*
* @param id if omitted the id will be retrieved from data
**/
function TlnPreviewWord(data, id, service) {
var _this57;
_classCallCheck(this, TlnPreviewWord);
_this57 = _super27.call(this, data, id, service);
_this57.markups = [];
_this57.earlier_version = _this57.getData4Key('earlier_version');
_this57.left = _this57.getData4Key('left');
_this57.top = _this57.getData4Key('top');
return _this57;
}
_createClass(TlnPreviewWord, null, [{
key: "convertData",
value: function convertData(data, id, service) {
var elements = [];
var content = this.getContent(data);
for (var i = 0; i < content.length; i++) {
var element = new TlnPreviewWord(content[i], id, service);
element.markups = _positional_markup__WEBPACK_IMPORTED_MODULE_2__["TlnFilteredPositionalStyleMarkup"].convertData({
head: {
vars: []
},
results: {
bindings: [content[i]]
}
}, content[i]['markup_id']);
if (elements.length > 0 && element.id == elements[elements.length - 1].id) {
elements[elements.length - 1].markups.push(element.markups[0]);
if (element.top < elements[elements.length - 1].top && element.left < elements[elements.length - 1].left) {
elements[elements.length - 1].left = element.left;
}
} else {
elements.push(element);
}
}
elements.sort(function (w0, w1) {
return w0.left - w1.left;
});
return elements;
}
}]);
return TlnPreviewWord;
}(_word__WEBPACK_IMPORTED_MODULE_1__["TlnWord"]);
/**
* the internal default key for replacing {@link /classes/TlnLine.html#query|query} by "id"
* in {@link /classes/TlnLine.html#getQuery|getQuery} if "key" is omitted.
**/
TlnPreviewWord.default_key = 'line';
TlnPreviewWord.query_key = 'line';
/**
* the SPARQL-query of this datatype.
**/
TlnPreviewWord.query = "\n PREFIX homotypic: <http://www.nie.org/ontology/homotypic#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n PREFIX stoff: <http://www.nie.org/ontology/standoff#>\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n\n SELECT DISTINCT ?id ?text ?markup_id ?cssStyleTag ?startIndex ?endIndex ?left ?top ?earlier_version WHERE {\n ?id a tln:Word; \n tln:wordBelongsToLine ?line; \n tln:hasTranskriptionPosition/tln:hasLeft ?left;\n tln:hasTranskriptionPosition/tln:hasTop ?top;\n tln:hasText ?text;\n homotypic:hasMarkup ?markup_id. \n ?markup_id stoff:hasCSS ?cssStyleTag;\n stoff:standoffMarkupHasStartIndex ?startIndex;\n stoff:standoffMarkupHasEndIndex ?endIndex.\n\n FILTER(NOT EXISTS {?word tln:wordHasWordParts/rdf:rest*/rdf:first ?id})\n FILTER(NOT EXISTS {?word (tln:wordHasEarlierVersion|tln:overwritesWord) ?id})\n OPTIONAL { ?id (tln:wordHasEarlierVersion|tln:overwritesWord)/tln:hasText ?earlier_version}\n }";
/***/
},
/***/
"./src/app/tln-edition/datatypes/search.ts":
/*!*************************************************!*\
!*** ./src/app/tln-edition/datatypes/search.ts ***!
\*************************************************/
/*! exports provided: TlnExtWord, PageResult, FoundPage */
/***/
function srcAppTlnEditionDatatypesSearchTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnExtWord", function () {
return TlnExtWord;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "PageResult", function () {
return PageResult;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "FoundPage", function () {
return FoundPage;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _basic_datatype__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! ./basic_datatype */
"./src/app/tln-edition/datatypes/basic_datatype.ts");
/* harmony import */
var _word__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! ./word */
"./src/app/tln-edition/datatypes/word.ts");
var TlnExtWord = /*#__PURE__*/function (_word__WEBPACK_IMPORT2) {
_inherits(TlnExtWord, _word__WEBPACK_IMPORT2);
var _super28 = _createSuper(TlnExtWord);
function TlnExtWord(data, id, service) {
var _this58;
_classCallCheck(this, TlnExtWord);
_this58 = _super28.call(this, data, id, service);
_this58.startLine = _this58.getData4Key('startLine');
_this58.endLine = _this58.getData4Key('endLine');
return _this58;
}
return TlnExtWord;
}(_word__WEBPACK_IMPORTED_MODULE_2__["TlnWord"]);
var PageResult = /*#__PURE__*/function () {
function PageResult(words) {
_classCallCheck(this, PageResult);
this.words = [];
this.words = words;
}
_createClass(PageResult, [{
key: "getWords",
value: function getWords() {
return this.words.map(function (word) {
return word.id;
});
}
}, {
key: "getStartLine",
value: function getStartLine() {
var sortedWords = this.words.sort(function (word0, word1) {
return word0.line_number - word1.line_number;
});
if (sortedWords.length == 0) {
return '';
}
return sortedWords[0].startLine != undefined && sortedWords[0].startLine != null ? sortedWords[0].startLine : sortedWords[0].line;
}
}, {
key: "getEndLine",
value: function getEndLine() {
var sortedWords = this.words.sort(function (word0, word1) {
return word0.line_number - word1.line_number;
});
if (sortedWords.length == 0) {
return '';
}
return sortedWords[sortedWords.length - 1].endLine != undefined && sortedWords[sortedWords.length - 1].endLine != null ? sortedWords[sortedWords.length - 1].endLine : sortedWords[sortedWords.length - 1].line;
}
}]);
return PageResult;
}();
var FoundPage = /*#__PURE__*/function (_basic_datatype__WEBP13) {
_inherits(FoundPage, _basic_datatype__WEBP13);
var _super29 = _createSuper(FoundPage);
function FoundPage(data, id, service) {
var _this59;
_classCallCheck(this, FoundPage);
_this59 = _super29.call(this, data, id, service);
_this59.results = [];
_this59.title = _this59.getData4Key('title');
_this59.number = _this59.getData4Key('number');
_this59.manuscript = _this59.getData4Key('manuscript');
return _this59;
}
_createClass(FoundPage, [{
key: "removeIncompleteResults",
value: function removeIncompleteResults(searchTerms) {
this.results = this.results.filter(function (result) {
return searchTerms.every(function (searchText) {
return result.words.filter(function (word) {
return word.text.match('^[^\w\s]*' + searchText + '.*');
}).length > 0;
});
});
}
/**
* This method returns the parametrized SPARQL query of this FoundPage
*
* If "key" is omitted {@link /classes/BasicResultBindingElement.html#default_key|default_key} will be used.
*
* @param find the search text
* @param key will be ignored.
**/
}], [{
key: "getQuery",
value: function getQuery(find, key) {
if (find == undefined || find == null) {
return this.query;
}
var words = find.split(' ');
var find_regex = words.join('.*') + '.*';
var filter = 'FILTER regex(?text, "^[^\\\\w]?(' + words.join('.*|') + '.*)")';
var query = this.query.replace('#find#', find_regex).replace('#FILTER()', filter); //console.log(query);
return query;
}
}, {
key: "convertData",
value: function convertData(data, id, service) {
var elements = [];
var pages = [];
var searchTerms = service.getSearchTerms();
var content = this.getContent(data);
var currentResult = null;
var currentPage = null;
for (var i = 0; i < content.length; i++) {
var page = new FoundPage(content[i], id, service);
if (content[i]['word'] != undefined && content[i]['word'] != null) {
var words = TlnExtWord.convertData({
head: {
vars: []
},
results: {
bindings: [content[i]]
}
}, content[i]['word']['value']);
if (pages.length == 0 || pages.map(function (page) {
return page.id;
}).indexOf(page.id) == -1) {
currentResult = new PageResult(words);
currentPage = page;
currentPage.results.push(currentResult);
pages.push(currentPage);
} else {
if (currentResult.words.indexOf(words[0]) == -1) {
if (currentResult.words.length > 0 && (Math.abs(Math.min.apply(Math, _toConsumableArray(currentResult.words.map(function (word) {
return word.line_number;
}))) - words[0].line_number) > 4 || Math.abs(Math.max.apply(Math, _toConsumableArray(currentResult.words.map(function (word) {
return word.line_number;
}))) - words[0].line_number) > 4)) {
currentResult = new PageResult(words);
currentPage.results.push(currentResult);
} else {
currentResult.words.push(words[0]);
}
}
}
}
}
pages.forEach(function (page) {
return page.removeIncompleteResults(searchTerms);
});
return pages.filter(function (page) {
return page.results.length > 0;
});
}
}]);
return FoundPage;
}(_basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"]);
FoundPage.query = "\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT DISTINCT ?id ?manuscript ?title ?number ?word ?text ?line ?line_number ?startLine ?endLine WHERE {\n ?id a tln:Page;\n tln:hasNumber ?number; \n tln:hasPseudoText ?fulltext.\n FILTER regex(?fulltext, \"#find#\", \"s\").\n ?manuscript a tln:ArchivalManuscriptUnity;\n tln:hasManuscriptType \"Mappe\";\n tln:hasPages/rdf:rest*/rdf:first ?id;\n tln:hasTitle ?title.\n ?id tln:hasWords/rdf:rest*/rdf:first ?word.\n ?word tln:hasOutputText ?text;\n tln:wordBelongsToLine ?line.\n ?line tln:lineHasNumber ?line_number.\n OPTIONAL{ ?previouseNode rdf:rest/rdf:first ?line;\n rdf:first ?startLine.}\n OPTIONAL{ ?myNode rdf:first ?line;\n rdf:rest/rdf:first ?endLine.}\n #FILTER().\n } order by ?id ?line_number";
/***/
},
/***/
"./src/app/tln-edition/datatypes/svg_image.ts":
/*!****************************************************!*\
!*** ./src/app/tln-edition/datatypes/svg_image.ts ***!
\****************************************************/
/*! exports provided: SVGImage, SVGImageClip */
/***/
function srcAppTlnEditionDatatypesSvg_imageTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "SVGImage", function () {
return SVGImage;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "SVGImageClip", function () {
return SVGImageClip;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _image__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! ./image */
"./src/app/tln-edition/datatypes/image.ts");
var SVGImage = /*#__PURE__*/function (_image__WEBPACK_IMPOR2) {
_inherits(SVGImage, _image__WEBPACK_IMPOR2);
var _super30 = _createSuper(SVGImage);
function SVGImage(data, id, service) {
var _this60;
_classCallCheck(this, SVGImage);
_this60 = _super30.call(this, data, id, service);
_this60.x = _this60.text_field.left;
_this60.y = _this60.text_field.top;
return _this60;
}
return SVGImage;
}(_image__WEBPACK_IMPORTED_MODULE_1__["TlnImage"]);
SVGImage.query = "\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n\n SELECT ?id ?filename ?width ?height ?URL ?secondaryURL ?t_left ?t_top ?t_width ?t_height ?page WHERE {\n ?id a tln:SVGImage;\n tln:hasPrimaryurl ?URL;\n tln:hasSecondaryurl ?secondaryURL;\n tln:hasFileName ?filename;\n tln:hasWidth ?width;\n tln:hasHeight ?height;\n tln:hasTextField ?textfield.\n ?textfield tln:hasLeft ?t_left;\n tln:hasTop ?t_top;\n tln:hasWidth ?t_width;\n tln:hasHeight ?t_height;\n ^tln:pageIsOnTextField ?page.\n }";
var SVGImageClip = /*#__PURE__*/function (_SVGImage) {
_inherits(SVGImageClip, _SVGImage);
var _super31 = _createSuper(SVGImageClip);
function SVGImageClip(data, id, service) {
var _this61;
_classCallCheck(this, SVGImageClip);
_this61 = _super31.call(this, data, id, service);
_this61.y = _this61.getData4Key('y');
return _this61;
}
return SVGImageClip;
}(SVGImage);
SVGImageClip.query = "\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?filename ?width ?height ?URL ?secondaryURL ?t_left ?t_top ?t_width ?t_height ?page ?y ?end_bottom WHERE {\n ?id a tln:SVGImage;\n tln:hasPrimaryurl ?URL;\n tln:hasSecondaryurl ?secondaryURL;\n tln:hasFileName ?filename;\n tln:hasWidth ?width;\n tln:hasHeight ?height;\n tln:hasTextField ?textfield.\n ?textfield tln:hasLeft ?t_left;\n tln:hasTop ?y;\n tln:hasWidth ?t_width;\n ^tln:pageIsOnTextField ?page.\n ?page tln:hasLines ?lines.\n ?lines rdf:rest* ?start_node;\n rdf:rest* ?end_node.\n ?start_node rdf:first ?startLine;.\n ?end_node rdf:first ?endLine;.\n ?startLine tln:lineHasTopValueOnTranskription ?start_top.\n ?endLine tln:lineHasBottomValueOnTranskription ?end_bottom.\n OPTIONAL { ?start_node ^rdf:rest/rdf:first ?previousLine.\n ?previousLine tln:lineHasBottomValueOnTranskription ?previous_bottom. \n }\n OPTIONAL { ?end_node rdf:rest/rdf:first/rdf:rest/rdf:first ?nextLine.\n ?nextLine tln:lineHasTopValueOnTranskription ?next_top. \n }\n BIND(IF(bound(?previous_bottom), ?previous_bottom+1, ?start_top - 5) as ?t_top)\n BIND(IF(bound(?next_top), ?next_top-?t_top, ?end_bottom - ?t_top + 10) as ?t_height)\n }";
/***/
},
/***/
"./src/app/tln-edition/datatypes/text_version.ts":
/*!*******************************************************!*\
!*** ./src/app/tln-edition/datatypes/text_version.ts ***!
\*******************************************************/
/*! exports provided: TlnTextVersion, TlnTextUnity, TlnTextGeneticOrder, TlnStandaloneTextVersion, TlnPageWithTextGeneticOrder */
/***/
function srcAppTlnEditionDatatypesText_versionTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnTextVersion", function () {
return TlnTextVersion;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnTextUnity", function () {
return TlnTextUnity;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnTextGeneticOrder", function () {
return TlnTextGeneticOrder;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnStandaloneTextVersion", function () {
return TlnStandaloneTextVersion;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnPageWithTextGeneticOrder", function () {
return TlnPageWithTextGeneticOrder;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _basic_datatype__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! ./basic_datatype */
"./src/app/tln-edition/datatypes/basic_datatype.ts");
/* harmony import */
var _page__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! ./page */
"./src/app/tln-edition/datatypes/page.ts");
var TlnTextVersion = /*#__PURE__*/function (_basic_datatype__WEBP14) {
_inherits(TlnTextVersion, _basic_datatype__WEBP14);
var _super32 = _createSuper(TlnTextVersion);
function TlnTextVersion(data, id, service) {
var _this62;
_classCallCheck(this, TlnTextVersion);
_this62 = _super32.call(this, data, id, service);
_this62.textUnities = [];
_this62.title = _this62.getData4Key('title');
_this62.extUrl = _this62.getData4Key('extUrl');
_this62.manuscript = _this62.getData4Key('manuscript');
return _this62;
}
return TlnTextVersion;
}(_basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"]);
var TlnTextUnity = /*#__PURE__*/function (_basic_datatype__WEBP15) {
_inherits(TlnTextUnity, _basic_datatype__WEBP15);
var _super33 = _createSuper(TlnTextUnity);
function TlnTextUnity(data, id, service) {
var _this63;
_classCallCheck(this, TlnTextUnity);
_this63 = _super33.call(this, data, id, service);
_this63.number = _this63.getData4Key('number');
_this63.startLine = _this63.getData4Key('startLine');
_this63.endLine = _this63.getData4Key('endLine');
_this63.belongsToPage = _this63.getData4Key('text_page');
_this63.startLineIri = _this63.getData4Key('startLineIri');
_this63.endLineIri = _this63.getData4Key('endLineIri');
_this63.hasFaksimileImage = _this63.getData4Key('hasFaksimileImage');
return _this63;
}
return TlnTextUnity;
}(_basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"]);
/**
* This is the text version instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.
* It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.
**/
var TlnTextGeneticOrder = /*#__PURE__*/function (_basic_datatype__WEBP16) {
_inherits(TlnTextGeneticOrder, _basic_datatype__WEBP16);
var _super34 = _createSuper(TlnTextGeneticOrder);
/**
* The constructor creates a datatype from the data.
*
* @param id if omitted the id will be retrieved from data
**/
function TlnTextGeneticOrder(data, id, service) {
var _this64;
_classCallCheck(this, TlnTextGeneticOrder);
_this64 = _super34.call(this, data, id, service);
_this64.textVersions = [];
return _this64;
}
_createClass(TlnTextGeneticOrder, null, [{
key: "convertData",
value: function convertData(data, id, service) {
var elements = [];
var content = this.getContent(data);
for (var i = 0; i < content.length; i++) {
var element = new TlnTextGeneticOrder(content[i], service);
var versions = TlnTextVersion.convertData({
head: {
vars: []
},
results: {
bindings: [content[i]]
}
}, content[i]['text_version']['value']);
var text_unities = content[i]['text_unity'] != undefined ? TlnTextUnity.convertData({
head: {
vars: []
},
results: {
bindings: [content[i]]
}
}, content[i]['text_unity']['value']) : [];
/*if (text_unities.length > 0){
console.log(text_unities[0]);
}*/
if (elements.length > 0 && elements[elements.length - 1].id == element.id) {
if (elements[elements.length - 1].textVersions.length > 0 && elements[elements.length - 1].textVersions[elements[elements.length - 1].textVersions.length - 1].id == versions[0].id) {
if (text_unities.length > 0) {
elements[elements.length - 1].textVersions[elements[elements.length - 1].textVersions.length - 1].textUnities.push(text_unities[0]);
}
} else {
if (text_unities.length > 0) {
versions[0].textUnities.push(text_unities[0]);
}
elements[elements.length - 1].textVersions.push(versions[0]);
}
} else {
if (text_unities.length > 0) {
versions[0].textUnities.push(text_unities[0]);
}
element.textVersions.push(versions[0]);
elements.push(element);
}
} //console.log(elements)
return elements;
}
}]);
return TlnTextGeneticOrder;
}(_basic_datatype__WEBPACK_IMPORTED_MODULE_1__["BasicResultBindingElement"]);
/**
* the internal default key for replacing {@link /classes/TlnLine.html#query|query} by "id"
* in {@link /classes/TlnLine.html#getQuery|getQuery} if "key" is omitted.
**/
TlnTextGeneticOrder.default_key = 'page';
/**
* the SPARQL-query of this datatype.
**/
TlnTextGeneticOrder.query = "\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n \n SELECT distinct ?id ?text_version ?text_unity ?text_page ?number ?startLine ?endLine ?title WHERE {\n {?version a tln:IdentifiedTextVersion;\n \t\t tln:identifiesAsVersion/rdf:rest*/rdf:first ?page.\n } UNION {\n ?version a tln:IdentifiedTextVersion;\n \t\t tln:identifiesAsVersion/rdf:rest*/rdf:first/tln:belongsToPage ?page.\n }\n ?id tln:hasGeneticOrder/rdf:rest*/rdf:first ?version;\n tln:hasGeneticOrder/rdf:rest*/rdf:first ?text_version.\n \n OPTIONAL { ?text_version tln:identifiesAsVersion/rdf:rest*/rdf:first ?text_unity.\n OPTIONAL { ?text_unity tln:hasNumber ?number.\n ?manuscript a tln:ArchivalManuscriptUnity;\n tln:hasTitle ?title;\n tln:hasPages/rdf:rest*/rdf:first ?text_unity.\n }\n OPTIONAL { ?text_unity tln:belongsToPage ?text_page; \n tln:startLine/tln:lineHasNumber?startLine;\n tln:endLine/tln:lineHasNumber ?endLine.\n \t\t\t ?text_page tln:hasNumber ?number.\n \t\t\t ?manuscript a tln:ArchivalManuscriptUnity;\n tln:hasTitle ?title;\n tln:hasPages/rdf:rest*/rdf:first ?text_page.\n }\n }\n OPTIONAL { ?text_version tln:textUnitHasTitle ?title.}\n }";
/**
* the public key for replacing {@link /classes/TlnLine.html#query|query} by "id".
**/
TlnTextGeneticOrder.query_key = 'page';
var TlnStandaloneTextVersion = /*#__PURE__*/function (_TlnTextVersion) {
_inherits(TlnStandaloneTextVersion, _TlnTextVersion);
var _super35 = _createSuper(TlnStandaloneTextVersion);
function TlnStandaloneTextVersion(data, id, service) {
var _this65;
_classCallCheck(this, TlnStandaloneTextVersion);
_this65 = _super35.call(this, data, id, service);
if (_this65.service != null) {
_this65.service.initSelecteTextVersion(_assertThisInitialized(_this65));
}
return _this65;
}
_createClass(TlnStandaloneTextVersion, null, [{
key: "convertData",
value: function convertData(data, id, service) {
var elements = [];
var content = this.getContent(data);
for (var i = 0; i < content.length; i++) {
var element = new TlnStandaloneTextVersion(content[i], id, service);
var text_unities = content[i]['text_unity'] != undefined ? TlnTextUnity.convertData({
head: {
vars: []
},
results: {
bindings: [content[i]]
}
}, content[i]['text_unity']['value']) : [];
if (elements.length > 0 && elements[elements.length - 1].id == element.id) {
if (text_unities.length > 0) {
elements[elements.length - 1].textUnities.push(text_unities[0]);
}
} else {
if (text_unities.length > 0) {
element.textUnities.push(text_unities[0]);
}
elements.push(element);
}
} //console.log(elements)
return elements;
}
}]);
return TlnStandaloneTextVersion;
}(TlnTextVersion);
/**
* the internal default key for replacing {@link /classes/TlnLine.html#query|query} by "id"
* in {@link /classes/TlnLine.html#getQuery|getQuery} if "key" is omitted.
**/
TlnStandaloneTextVersion.default_key = 'geneticOrder';
/**
* the SPARQL-query of this datatype.
**/
TlnStandaloneTextVersion.query = "\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n \n SELECT distinct ?id ?text_unity ?text_page ?manuscript ?number ?startLine ?startLineIri ?endLine ?endLineIri ?title ?extUrl ?hasFaksimileImage WHERE {\n ?geneticOrder a tln:TextGenesis;\n tln:hasGeneticOrder/rdf:rest*/rdf:first ?id.\n \n OPTIONAL { ?id tln:identifiesAsVersion/rdf:rest*/rdf:first ?text_unity.\n OPTIONAL { ?text_unity tln:hasNumber ?number.\n ?manuscript a tln:ArchivalManuscriptUnity;\n tln:hasTitle ?title;\n tln:hasPages/rdf:rest*/rdf:first ?text_unity.\n BIND(exists{ ?text_unity tln:hasFaksimileImage ?image } as ?hasFaksimileImage)\n }\n OPTIONAL { ?text_unity tln:belongsToPage ?text_page; \n tln:startLine ?startLineIri;\n tln:endLine ?endLineIri.\n \t\t\t ?text_page tln:hasNumber ?number.\n ?startLineIri tln:lineHasNumber?startLine.\n ?endLineIri tln:lineHasNumber ?endLine.\n \t\t\t ?manuscript a tln:ArchivalManuscriptUnity;\n tln:hasTitle ?title;\n tln:hasPages/rdf:rest*/rdf:first ?text_page.\n BIND(exists{ ?text_page tln:hasFaksimileImage ?image } as ?hasFaksimileImage)\n }\n }\n OPTIONAL { ?id tln:textUnitHasTitle ?title; tln:textUnitHasUrl ?extUrl.}\n }";
/**
* the public key for replacing {@link /classes/TlnLine.html#query|query} by "id".
**/
TlnStandaloneTextVersion.query_key = 'geneticOrder';
var TlnPageWithTextGeneticOrder = /*#__PURE__*/function (_page__WEBPACK_IMPORT) {
_inherits(TlnPageWithTextGeneticOrder, _page__WEBPACK_IMPORT);
var _super36 = _createSuper(TlnPageWithTextGeneticOrder);
function TlnPageWithTextGeneticOrder() {
_classCallCheck(this, TlnPageWithTextGeneticOrder);
return _super36.apply(this, arguments);
}
return TlnPageWithTextGeneticOrder;
}(_page__WEBPACK_IMPORTED_MODULE_2__["PageStub"]);
/**
* the internal default key for replacing {@link /classes/TlnLine.html#query|query} by "id"
* in {@link /classes/TlnLine.html#getQuery|getQuery} if "key" is omitted.
**/
TlnPageWithTextGeneticOrder.default_key = 'manuscript';
/**
* the SPARQL-query of this datatype.
**/
TlnPageWithTextGeneticOrder.query = "\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n \n SELECT distinct ?id ?number WHERE {\n ?manuscript tln:hasPages/rdf:rest*/rdf:first ?id.\n {?version a tln:IdentifiedTextVersion;\n \t\t tln:identifiesAsVersion/rdf:rest*/rdf:first ?id.\n } UNION {\n ?version a tln:IdentifiedTextVersion;\n \t\t tln:identifiesAsVersion/rdf:rest*/rdf:first/tln:belongsToPage ?id.\n }\n ?id tln:hasNumber ?number.\n }";
/**
* the public key for replacing {@link /classes/TlnLine.html#query|query} by "id".
**/
TlnPageWithTextGeneticOrder.query_key = 'manuscript';
/***/
},
/***/
"./src/app/tln-edition/datatypes/word.ts":
/*!***********************************************!*\
!*** ./src/app/tln-edition/datatypes/word.ts ***!
\***********************************************/
/*! exports provided: TlnWord, FaksimileWord */
/***/
function srcAppTlnEditionDatatypesWordTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnWord", function () {
return TlnWord;
});
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "FaksimileWord", function () {
return FaksimileWord;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _positional_object__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! ./positional_object */
"./src/app/tln-edition/datatypes/positional_object.ts");
/**
* This is the word instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.
* It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.
**/
var TlnWord = /*#__PURE__*/function (_positional_object__W2) {
_inherits(TlnWord, _positional_object__W2);
var _super37 = _createSuper(TlnWord);
/**
* The constructor creates a datatype from the data.
*
* @param id if omitted the id will be retrieved from data
**/
function TlnWord(data, id, service) {
var _this66;
_classCallCheck(this, TlnWord);
_this66 = _super37.call(this, data, id, service);
_this66.text = _this66.getData4Key('text');
_this66.edited_text = _this66.getData4Key('edited_text');
_this66.line = _this66.getData4Key('line');
_this66.line_number = _this66.getData4Key('line_number');
_this66.deleted = _this66.getData4Key('deleted');
_this66.deletion_path = _this66.getData4Key('deletion_path');
return _this66;
}
return TlnWord;
}(_positional_object__WEBPACK_IMPORTED_MODULE_1__["TlnPositionalObject"]);
/**
* the SPARQL-query of this datatype.
**/
TlnWord.query = "\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?text ?edited_text ?left ?top ?width ?height ?transform ?line ?line_number ?deleted ?deletion_path WHERE {\n ?page tln:hasWords/rdf:rest*/rdf:first ?id.\n ?id tln:wordBelongsToLine ?line; \n tln:hasText ?text;\n tln:hasTranskriptionPosition ?tp.\n \t?tp tln:hasLeft ?left; tln:hasTop ?top; tln:hasWidth ?width; tln:hasHeight ?height.\n ?line tln:lineHasNumber ?line_number.\n BIND(exists{\n {?id tln:wordIsDeletedByPath ?path} \n UNION{ ?id tln:wordHasWordParts/rdf:rest*/rdf:first ?word_part.\n ?word_part tln:hasTranskriptionPosition ?tp; tln:wordIsDeletedByPath ?path}\n } as ?deleted)\n\n OPTIONAl { ?tp tln:hasTransform ?transform.}\n OPTIONAl { ?id tln:hasEditedText ?edited_text.}\n OPTIONAl { ?id tln:wordIsDeletedByPath/tln:hasDAttribute ?deletion_path.}\n OPTIONAl { ?id tln:wordHasWordParts/rdf:rest*/rdf:first ?word_part.\n ?word_part tln:hasTranskriptionPosition ?tp; tln:wordIsDeletedByPath/tln:hasDAttribute ?deletion_path}\n } ";
/**
* This is the faksimile word instantiation of an element of {@link /interfaces/FusekiResults.html|FusekiResults}.
* It extends {@link /classes/BasicResultBindingElement.html|BasicResultBindingElement}.
**/
var FaksimileWord = /*#__PURE__*/function (_TlnWord) {
_inherits(FaksimileWord, _TlnWord);
var _super38 = _createSuper(FaksimileWord);
function FaksimileWord() {
_classCallCheck(this, FaksimileWord);
return _super38.apply(this, arguments);
}
return FaksimileWord;
}(TlnWord);
/**
* the SPARQL-query of this datatype.
**/
FaksimileWord.query = "\n PREFIX tln: <http://www.nie.org/ontology/nietzsche#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\n SELECT ?id ?text ?edited_text ?left ?top ?width ?height ?transform ?line ?line_number ?deleted WHERE {\n ?page tln:hasWords/rdf:rest*/rdf:first ?id.\n ?id tln:wordBelongsToLine ?line; \n tln:hasText ?text;\n tln:hasFaksimilePosition ?fp.\n \t?fp tln:hasLeft ?left; tln:hasTop ?top; tln:hasWidth ?width; tln:hasHeight ?height.\n ?line tln:lineHasNumber ?line_number.\n BIND(exists{{?id tln:wordIsDeletedByPath ?path} UNION { ?id tln:wordHasWordParts/rdf:rest*/rdf:first/tln:wordIsDeletedByPath ?path}\n } as ?deleted)\n OPTIONAl { ?fp tln:hasTransform ?transform.}\n OPTIONAl { ?id tln:hasEditedText ?edited_text.}\n } ";
/***/
},
/***/
"./src/app/tln-edition/debug.pipe.ts":
/*!*******************************************!*\
!*** ./src/app/tln-edition/debug.pipe.ts ***!
\*******************************************/
/*! exports provided: DebugPipe */
/***/
function srcAppTlnEditionDebugPipeTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "DebugPipe", function () {
return DebugPipe;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
var DebugPipe = /*#__PURE__*/function () {
function DebugPipe() {
_classCallCheck(this, DebugPipe);
}
_createClass(DebugPipe, [{
key: "transform",
value: function transform(value) {
console.log(value);
return value;
}
}]);
return DebugPipe;
}();
DebugPipe = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Pipe"])({
name: 'debug'
})], DebugPipe);
/***/
},
/***/
"./src/app/tln-edition/route-reader.ts":
/*!*********************************************!*\
!*** ./src/app/tln-edition/route-reader.ts ***!
\*********************************************/
/*! exports provided: RouteReader */
/***/
function srcAppTlnEditionRouteReaderTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "RouteReader", function () {
return RouteReader;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
var RouteReader = /*#__PURE__*/function () {
function RouteReader(router, activatedRoute) {
_classCallCheck(this, RouteReader);
this.router = router;
this.activatedRoute = activatedRoute;
}
_createClass(RouteReader, [{
key: "ngOnInit",
value: function ngOnInit() {
var _this67 = this;
this.activatedRoute.queryParams.subscribe(function (params) {
_this67.readParams(params);
});
}
}, {
key: "readParams",
value: function readParams(params) {
this.routerParams = params;
for (var _i = 0, _Object$keys = Object.keys(this.mapping); _i < _Object$keys.length; _i++) {
var key = _Object$keys[_i];
if (this.mapping[key]['ignore'] == undefined || !this.mapping[key]['ignore']) {
var paramsKey = this.mapping[key]['param'];
if (this.routerParams[paramsKey] != null) {
if (this.mapping[key]['type'] == 'number') {
this[key] = Number(this.routerParams[paramsKey]);
} else if (this.mapping[key]['type'] == 'boolean') {
this[key] = this.routerParams[paramsKey] == 'true';
} else if (Array.isArray(this[key]) && !Array.isArray(this.routerParams[paramsKey])) {
this[key] = JSON.parse(this.routerParams[paramsKey]);
} else {
this[key] = this.routerParams[paramsKey];
}
if (this.mapping[key]['debug'] != null) {
console.log(this.mapping[key]['debug'], this[key]);
}
}
}
}
}
}]);
return RouteReader;
}();
/***/
},
/***/
"./src/app/tln-edition/route-updater.ts":
/*!**********************************************!*\
!*** ./src/app/tln-edition/route-updater.ts ***!
\**********************************************/
/*! exports provided: RouteUpdater */
/***/
function srcAppTlnEditionRouteUpdaterTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "RouteUpdater", function () {
return RouteUpdater;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _route_reader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! ./route-reader */
"./src/app/tln-edition/route-reader.ts");
var RouteUpdater = /*#__PURE__*/function (_route_reader__WEBPAC) {
_inherits(RouteUpdater, _route_reader__WEBPAC);
var _super39 = _createSuper(RouteUpdater);
function RouteUpdater(router, activatedRoute) {
var _this68;
_classCallCheck(this, RouteUpdater);
_this68 = _super39.call(this, router, activatedRoute);
_this68.router = router;
_this68.activatedRoute = activatedRoute;
if (_this68.currentRoute == undefined || _this68.currentRoute == null) {
_this68.currentRoute = _this68.activatedRoute.snapshot.routeConfig != null ? _this68.activatedRoute.snapshot.routeConfig.path : null;
}
return _this68;
}
_createClass(RouteUpdater, [{
key: "updateParams",
value: function updateParams(launch) {
var _this69 = this;
var newRouterParam = {};
for (var _i2 = 0, _Object$keys2 = Object.keys(this.mapping); _i2 < _Object$keys2.length; _i2++) {
var key = _Object$keys2[_i2];
var paramsKey = this.mapping[key]['param'];
if (this[key] != null) {
if (Array.isArray(this[key]) && this[key].length > 0) {
newRouterParam[paramsKey] = JSON.stringify(this[key]);
} else {
newRouterParam[paramsKey] = this[key];
}
}
}
for (var _i3 = 0, _Object$keys3 = Object.keys(this.routerParams); _i3 < _Object$keys3.length; _i3++) {
var _key = _Object$keys3[_i3];
if (newRouterParam[_key] == null) {
newRouterParam[_key] = this.routerParams[_key];
}
}
var parentActivatedRoute = this.activatedRoute.parent != null ? this.activatedRoute.parent : this.parentActivatedRoute;
if (parentActivatedRoute != undefined && parentActivatedRoute != null) {
parentActivatedRoute.url.subscribe(function (url) {
var parentPath = url[0].path;
if (launch != undefined && launch) {
var link = _this69.router.createUrlTree([parentPath + '/' + _this69.currentRoute], {
queryParams: newRouterParam
});
window.open(link.toString(), '_blank');
} else {
_this69.router.navigate([parentPath + '/' + _this69.currentRoute], {
queryParams: newRouterParam
});
}
});
} else {
if (launch != undefined && launch) {
var link = this.router.createUrlTree([this.currentRoute], {
queryParams: newRouterParam
});
window.open(link.toString(), '_blank');
} else {
this.router.navigate([this.currentRoute], {
queryParams: newRouterParam
});
}
}
}
}]);
return RouteUpdater;
}(_route_reader__WEBPACK_IMPORTED_MODULE_1__["RouteReader"]);
/***/
},
/***/
"./src/app/tln-edition/services.ts":
/*!*****************************************!*\
!*** ./src/app/tln-edition/services.ts ***!
\*****************************************/
/*! exports provided: TlnQueryService, PageViewService, ConfigurableComponent */
/***/
function srcAppTlnEditionServicesTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _tln_query_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! ./tln-query.service */
"./src/app/tln-edition/tln-query.service.ts");
/* harmony reexport (safe) */
__webpack_require__.d(__webpack_exports__, "TlnQueryService", function () {
return _tln_query_service__WEBPACK_IMPORTED_MODULE_1__["TlnQueryService"];
});
/* harmony import */
var _page_view_page_view_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! ../page-view/page-view.service */
"./src/app/page-view/page-view.service.ts");
/* harmony reexport (safe) */
__webpack_require__.d(__webpack_exports__, "PageViewService", function () {
return _page_view_page_view_service__WEBPACK_IMPORTED_MODULE_2__["PageViewService"];
});
/* harmony import */
var _page_view_configurable_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ../page-view/configurable-component */
"./src/app/page-view/configurable-component.ts");
/* harmony reexport (safe) */
__webpack_require__.d(__webpack_exports__, "ConfigurableComponent", function () {
return _page_view_configurable_component__WEBPACK_IMPORTED_MODULE_3__["ConfigurableComponent"];
});
/***/
},
/***/
"./src/app/tln-edition/tln-crossref/navigation/navigation.component.css":
/*!******************************************************************************!*\
!*** ./src/app/tln-edition/tln-crossref/navigation/navigation.component.css ***!
\******************************************************************************/
/*! exports provided: default */
/***/
function srcAppTlnEditionTlnCrossrefNavigationNavigationComponentCss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = "#navi {\n width: 100%;\n height: 50px;\n margin: 0;\n padding: 0;\n white-space: nowrap;\n}\n.search {\n margin-left: 8px;\n }\n.mat-button.min-width {\n min-width: 120px;\n max-width: 120px;\n}\n.default-mouse {\n cursor: default;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tY3Jvc3NyZWYvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxXQUFXO0dBQ1gsWUFBWTtHQUNaLFNBQVM7R0FDVCxVQUFVO0dBQ1YsbUJBQW1CO0FBQ3RCO0FBQ0E7R0FDRyxnQkFBZ0I7Q0FDbEI7QUFFRDtHQUNHLGdCQUFnQjtHQUNoQixnQkFBZ0I7QUFDbkI7QUFDQTtHQUNHLGVBQWU7QUFDbEIiLCJmaWxlIjoiYXBwL3Rsbi1lZGl0aW9uL3Rsbi1jcm9zc3JlZi9uYXZpZ2F0aW9uL25hdmlnYXRpb24uY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiNuYXZpIHtcbiAgIHdpZHRoOiAxMDAlO1xuICAgaGVpZ2h0OiA1MHB4O1xuICAgbWFyZ2luOiAwO1xuICAgcGFkZGluZzogMDtcbiAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uc2VhcmNoIHtcbiAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gfVxuXG4ubWF0LWJ1dHRvbi5taW4td2lkdGgge1xuICAgbWluLXdpZHRoOiAxMjBweDtcbiAgIG1heC13aWR0aDogMTIwcHg7XG59XG4uZGVmYXVsdC1tb3VzZSB7XG4gICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4iXX0= */";
+ __webpack_exports__["default"] = "#navi {\n width: 100%;\n height: 50px;\n margin: 0;\n padding: 0;\n white-space: nowrap;\n}\n.search {\n margin-left: 8px;\n }\n.mat-button.min-width {\n min-width: 120px;\n max-width: 120px;\n}\n.default-mouse {\n cursor: default;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1jcm9zc3JlZi9uYXZpZ2F0aW9uL25hdmlnYXRpb24uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLFdBQVc7R0FDWCxZQUFZO0dBQ1osU0FBUztHQUNULFVBQVU7R0FDVixtQkFBbUI7QUFDdEI7QUFDQTtHQUNHLGdCQUFnQjtDQUNsQjtBQUVEO0dBQ0csZ0JBQWdCO0dBQ2hCLGdCQUFnQjtBQUNuQjtBQUNBO0dBQ0csZUFBZTtBQUNsQiIsImZpbGUiOiJ0bG4tZWRpdGlvbi90bG4tY3Jvc3NyZWYvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjbmF2aSB7XG4gICB3aWR0aDogMTAwJTtcbiAgIGhlaWdodDogNTBweDtcbiAgIG1hcmdpbjogMDtcbiAgIHBhZGRpbmc6IDA7XG4gICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnNlYXJjaCB7XG4gICBtYXJnaW4tbGVmdDogOHB4O1xuIH1cblxuLm1hdC1idXR0b24ubWluLXdpZHRoIHtcbiAgIG1pbi13aWR0aDogMTIwcHg7XG4gICBtYXgtd2lkdGg6IDEyMHB4O1xufVxuLmRlZmF1bHQtbW91c2Uge1xuICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuIl19 */";
/***/
},
/***/
"./src/app/tln-edition/tln-crossref/navigation/navigation.component.ts":
/*!*****************************************************************************!*\
!*** ./src/app/tln-edition/tln-crossref/navigation/navigation.component.ts ***!
\*****************************************************************************/
/*! exports provided: NavigationComponent */
/***/
function srcAppTlnEditionTlnCrossrefNavigationNavigationComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "NavigationComponent", function () {
return NavigationComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @angular/router */
"./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */
var _datatypes_navigation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ../../datatypes/navigation */
"./src/app/tln-edition/datatypes/navigation.ts");
/* harmony import */
var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! ../../constants */
"./src/app/tln-edition/constants.ts");
/* harmony import */
var _datatypes_text_version__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
/*! ../../datatypes/text_version */
"./src/app/tln-edition/datatypes/text_version.ts");
/* harmony import */
var _route_updater__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
/*! ../../route-updater */
"./src/app/tln-edition/route-updater.ts");
/* harmony import */
var _data_handler__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(
/*! ../../data_handler */
"./src/app/tln-edition/data_handler.ts");
/* harmony import */
var _services__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(
/*! ../../services */
"./src/app/tln-edition/services.ts");
var NavigationComponent = /*#__PURE__*/function (_route_updater__WEBPA) {
_inherits(NavigationComponent, _route_updater__WEBPA);
var _super40 = _createSuper(NavigationComponent);
function NavigationComponent(pageViewService, localQueryService, router, activatedRoute) {
var _this70;
_classCallCheck(this, NavigationComponent);
_this70 = _super40.call(this, router, activatedRoute);
_this70.pageViewService = pageViewService;
_this70.localQueryService = localQueryService;
_this70.router = router;
_this70.activatedRoute = activatedRoute;
/**
* whether or not to show page view in fullscreen mode.
**/
_this70.fullscreen = false;
_this70.showArchivalManuscriptUnity = false;
_this70.dataHandler = new _data_handler__WEBPACK_IMPORTED_MODULE_7__["DataHandler"](_assertThisInitialized(_this70));
_this70.geneticOrders = [];
_this70.selectedLines = [];
_this70.PAGE_CONTEXT_VIEW = _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_PAGE_PARAM"];
_this70.MANUSCRIPT_CONTEXT_VIEW = _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_MANUSCRIPT_PARAM"];
_this70.contextView = _this70.PAGE_CONTEXT_VIEW;
_this70.increment = 0.333;
_this70.decrement = _this70.increment * -1;
_this70.currentRoute = _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_CROSSREF_ROUTE"];
_this70.mapping = {
contextView: {
param: _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_CONTEXT_VIEW_PARAM"],
type: "string"
},
current_iri: {
param: _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_PAGE_PARAM"],
type: "string"
},
current_manuscript_iri: {
param: _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_MANUSCRIPT_PARAM"],
type: "string"
},
fullscreen: {
param: _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_FULLSCREEN_PARAM"],
type: "boolean"
}
};
_this70.selectedViewOption = _constants__WEBPACK_IMPORTED_MODULE_4__["DEFAULT_VIEW_OPTION"];
_this70.updating = false;
_this70.viewOptions = [_constants__WEBPACK_IMPORTED_MODULE_4__["VIEW_OPTIONS"].TRANSKRIPTION, _constants__WEBPACK_IMPORTED_MODULE_4__["VIEW_OPTIONS"].FAKSIMILE, _constants__WEBPACK_IMPORTED_MODULE_4__["VIEW_OPTIONS"].SYNOPSIS, _constants__WEBPACK_IMPORTED_MODULE_4__["VIEW_OPTIONS"].SYNOPSIS_B];
return _this70;
}
_createClass(NavigationComponent, [{
key: "ngOnInit",
value: function ngOnInit() {
var _this71 = this;
var tlnQueryService = this.queryService != null ? this.queryService : this.localQueryService;
this.dataHandler.addHandler('navigation_page', ['current_page', 'geneticOrders']);
this.dataHandler.addHandler('current_page', {
'handler': _datatypes_navigation__WEBPACK_IMPORTED_MODULE_3__["TlnNavigationPage"]
});
this.dataHandler.addHandler('geneticOrders', {
'handler': _datatypes_text_version__WEBPACK_IMPORTED_MODULE_5__["TlnTextGeneticOrder"]
});
this.dataHandler.setQueryService(tlnQueryService);
this.dataHandler.start_processing.subscribe(function (started) {
_this71.updating = true;
});
this.dataHandler.processing_finished.subscribe(function (finished) {
_this71.updating = false;
});
_get(_getPrototypeOf(NavigationComponent.prototype), "ngOnInit", this).call(this);
}
}, {
key: "changeContext",
value: function changeContext() {
this.contextView = this.contextView == this.PAGE_CONTEXT_VIEW ? this.MANUSCRIPT_CONTEXT_VIEW : this.PAGE_CONTEXT_VIEW; //this.current_genetic_order_iri = 'none';
this.updateParams();
}
}, {
key: "getPageTitle",
value: function getPageTitle(page, numPages) {
if (page == null) {
return '';
}
var indexPrefix = numPages != null ? page.index + '/' + numPages : page.index;
return indexPrefix + ': ' + page.title + ' ' + page.number;
}
}, {
key: "readParams",
value: function readParams(params) {
_get(_getPrototypeOf(NavigationComponent.prototype), "readParams", this).call(this, params);
if (this.dataHandler.ready && (this.current_page == null || this.current_page.id != this.current_iri)) {
this.dataHandler.resetData('navigation_page');
this.dataHandler.getData('current_page', this.current_iri);
}
}
}, {
key: "setCurrentIri",
value: function setCurrentIri(pageIri) {
this.dataHandler.stop_processing.emit(true);
this.current_iri = pageIri;
this.currentRoute = _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_VIEWER_ROUTE"];
this.updateParams();
}
}, {
key: "toggleFullscreen",
value: function toggleFullscreen() {
this.fullscreen = !this.fullscreen;
this.updateParams();
}
}]);
return NavigationComponent;
}(_route_updater__WEBPACK_IMPORTED_MODULE_6__["RouteUpdater"]);
NavigationComponent.ctorParameters = function () {
return [{
type: _services__WEBPACK_IMPORTED_MODULE_8__["PageViewService"]
}, {
type: _services__WEBPACK_IMPORTED_MODULE_8__["TlnQueryService"]
}, {
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"]
}, {
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"]
}];
};
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], NavigationComponent.prototype, "queryService", void 0);
NavigationComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'crossref-navigation',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./navigation.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/navigation/navigation.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./navigation.component.css */
"./src/app/tln-edition/tln-crossref/navigation/navigation.component.css"))["default"]]
})], NavigationComponent);
/***/
},
/***/
"./src/app/tln-edition/tln-crossref/page-version-view/filter.pipe.ts":
/*!***************************************************************************!*\
!*** ./src/app/tln-edition/tln-crossref/page-version-view/filter.pipe.ts ***!
\***************************************************************************/
/*! exports provided: FilterPipe */
/***/
function srcAppTlnEditionTlnCrossrefPageVersionViewFilterPipeTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "FilterPipe", function () {
return FilterPipe;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
var FilterPipe = /*#__PURE__*/function () {
function FilterPipe() {
_classCallCheck(this, FilterPipe);
}
_createClass(FilterPipe, [{
key: "transform",
value: function transform(geneticOrders, iri) {
if (!iri) {
return geneticOrders;
}
return geneticOrders.filter(function (geneticOrder) {
return geneticOrder.id != iri;
});
}
}]);
return FilterPipe;
}();
FilterPipe = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Pipe"])({
name: 'filter'
})], FilterPipe);
/***/
},
/***/
"./src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.css":
/*!********************************************************************************************!*\
!*** ./src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.css ***!
\********************************************************************************************/
/*! exports provided: default */
/***/
function srcAppTlnEditionTlnCrossrefPageVersionViewPageVersionViewComponentCss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = ".example-radio-group {\n display: flex;\n flex-direction: column;\n margin: 15px 0;\n}\n\n.example-radio-button {\n margin: 5px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tY3Jvc3NyZWYvcGFnZS12ZXJzaW9uLXZpZXcvcGFnZS12ZXJzaW9uLXZpZXcuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsY0FBYztBQUNoQjs7QUFFQTtFQUNFLFdBQVc7QUFDYiIsImZpbGUiOiJhcHAvdGxuLWVkaXRpb24vdGxuLWNyb3NzcmVmL3BhZ2UtdmVyc2lvbi12aWV3L3BhZ2UtdmVyc2lvbi12aWV3LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZXhhbXBsZS1yYWRpby1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1hcmdpbjogMTVweCAwO1xufVxuXG4uZXhhbXBsZS1yYWRpby1idXR0b24ge1xuICBtYXJnaW46IDVweDtcbn1cbiJdfQ== */";
+ __webpack_exports__["default"] = ".example-radio-group {\n display: flex;\n flex-direction: column;\n margin: 15px 0;\n}\n\n.example-radio-button {\n margin: 5px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1jcm9zc3JlZi9wYWdlLXZlcnNpb24tdmlldy9wYWdlLXZlcnNpb24tdmlldy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsV0FBVztBQUNiIiwiZmlsZSI6InRsbi1lZGl0aW9uL3Rsbi1jcm9zc3JlZi9wYWdlLXZlcnNpb24tdmlldy9wYWdlLXZlcnNpb24tdmlldy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmV4YW1wbGUtcmFkaW8tZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXJnaW46IDE1cHggMDtcbn1cblxuLmV4YW1wbGUtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luOiA1cHg7XG59XG4iXX0= */";
/***/
},
/***/
"./src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.ts":
/*!*******************************************************************************************!*\
!*** ./src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.ts ***!
\*******************************************************************************************/
/*! exports provided: PageVersionViewComponent */
/***/
function srcAppTlnEditionTlnCrossrefPageVersionViewPageVersionViewComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "PageVersionViewComponent", function () {
return PageVersionViewComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @angular/router */
"./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */
var _route_updater__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ../../route-updater */
"./src/app/tln-edition/route-updater.ts");
/* harmony import */
var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! ../../constants */
"./src/app/tln-edition/constants.ts");
var PageVersionViewComponent = /*#__PURE__*/function (_route_updater__WEBPA2) {
_inherits(PageVersionViewComponent, _route_updater__WEBPA2);
var _super41 = _createSuper(PageVersionViewComponent);
function PageVersionViewComponent(router, activatedRoute) {
var _this72;
_classCallCheck(this, PageVersionViewComponent);
_this72 = _super41.call(this, router, activatedRoute);
_this72.router = router;
_this72.activatedRoute = activatedRoute;
/**
* the genetic text order that should be displayed.
**/
_this72.geneticOrders = [];
_this72.currentRoute = _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_CROSSREF_ROUTE"];
_this72.mapping = {
current_iri: {
param: _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_PAGE_PARAM"],
type: "string"
},
current_manuscript_iri: {
param: _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_MANUSCRIPT_PARAM"],
type: "string"
},
contextView: {
param: _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_CONTEXT_VIEW_PARAM"],
type: "string"
},
current_genetic_order: {
param: _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_TEXT_GENETIC_ORDER_PARAM"],
type: "string"
}
};
return _this72;
}
_createClass(PageVersionViewComponent, [{
key: "ngOnInit",
value: function ngOnInit() {
_get(_getPrototypeOf(PageVersionViewComponent.prototype), "ngOnInit", this).call(this);
}
}, {
key: "openCrossRef",
value: function openCrossRef(geneticOrder) {
this.current_genetic_order = geneticOrder.id;
this.current_iri = this.current_page_iri;
this.contextView = _constants__WEBPACK_IMPORTED_MODULE_4__["TLN_PAGE_PARAM"];
this.updateParams();
if (this.bottomSheetRef != undefined && this.bottomSheetRef != null) {
this.bottomSheetRef.dismiss();
}
}
}]);
return PageVersionViewComponent;
}(_route_updater__WEBPACK_IMPORTED_MODULE_3__["RouteUpdater"]);
PageVersionViewComponent.ctorParameters = function () {
return [{
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"]
}, {
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"]
}];
};
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], PageVersionViewComponent.prototype, "current_page_iri", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], PageVersionViewComponent.prototype, "geneticOrders", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], PageVersionViewComponent.prototype, "filterGeneticOrder", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], PageVersionViewComponent.prototype, "bottomSheetRef", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], PageVersionViewComponent.prototype, "parentActivatedRoute", void 0);
PageVersionViewComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'page-version-view',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./page-version-view.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./page-version-view.component.css */
"./src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.css"))["default"]]
})], PageVersionViewComponent);
/***/
},
/***/
"./src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.css":
/*!************************************************************************************************!*\
!*** ./src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.css ***!
\************************************************************************************************/
/*! exports provided: default */
/***/
function srcAppTlnEditionTlnCrossrefPageVersionViewTlnPageVersionViewComponentCss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = "\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhcHAvdGxuLWVkaXRpb24vdGxuLWNyb3NzcmVmL3BhZ2UtdmVyc2lvbi12aWV3L3Rsbi1wYWdlLXZlcnNpb24tdmlldy5jb21wb25lbnQuY3NzIn0= */";
+ __webpack_exports__["default"] = "\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ0bG4tZWRpdGlvbi90bG4tY3Jvc3NyZWYvcGFnZS12ZXJzaW9uLXZpZXcvdGxuLXBhZ2UtdmVyc2lvbi12aWV3LmNvbXBvbmVudC5jc3MifQ== */";
/***/
},
/***/
"./src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.ts":
/*!***********************************************************************************************!*\
!*** ./src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.ts ***!
\***********************************************************************************************/
/*! exports provided: TlnPageVersionViewComponent */
/***/
function srcAppTlnEditionTlnCrossrefPageVersionViewTlnPageVersionViewComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnPageVersionViewComponent", function () {
return TlnPageVersionViewComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _services__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! ../../services */
"./src/app/tln-edition/services.ts");
/* harmony import */
var _data_handler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ../../data_handler */
"./src/app/tln-edition/data_handler.ts");
/* harmony import */
var _datatypes_text_version__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! ../../datatypes/text_version */
"./src/app/tln-edition/datatypes/text_version.ts");
var TlnPageVersionViewComponent = /*#__PURE__*/function () {
function TlnPageVersionViewComponent(queryService) {
_classCallCheck(this, TlnPageVersionViewComponent);
this.queryService = queryService;
this.dataHandler = new _data_handler__WEBPACK_IMPORTED_MODULE_3__["DataHandler"](this);
this.geneticOrders = [];
}
_createClass(TlnPageVersionViewComponent, [{
key: "ngOnInit",
value: function ngOnInit() {
this.dataHandler.addHandler('geneticOrders', {
'handler': _datatypes_text_version__WEBPACK_IMPORTED_MODULE_4__["TlnTextGeneticOrder"]
});
this.dataHandler.setQueryService(this.queryService);
this.dataHandler.getData('geneticOrders', this.current_iri);
}
}]);
return TlnPageVersionViewComponent;
}();
TlnPageVersionViewComponent.ctorParameters = function () {
return [{
type: _services__WEBPACK_IMPORTED_MODULE_2__["TlnQueryService"]
}];
};
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TlnPageVersionViewComponent.prototype, "current_iri", void 0);
TlnPageVersionViewComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'tln-page-version-view',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./tln-page-version-view.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./tln-page-version-view.component.css */
"./src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.css"))["default"]]
})], TlnPageVersionViewComponent);
/***/
},
/***/
"./src/app/tln-edition/tln-crossref/tln-crossref.component.css":
/*!*********************************************************************!*\
!*** ./src/app/tln-edition/tln-crossref/tln-crossref.component.css ***!
\*********************************************************************/
/*! exports provided: default */
/***/
function srcAppTlnEditionTlnCrossrefTlnCrossrefComponentCss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = "#page {\n width: 100%;\n position: relative;\n top: 0px;\n left: 0px;\n}\n.grid-container{ /* Chrome, Safari, Opera */\n -moz-column-count: 2; /* Firefox */\n column-count: 2;\n}\n.extra-space {\n margin-top: 45px;\n}\n.page-crossref-title {\n margin-left: 20px;\n}\n.preview {\n position: relative;\n top: 60px;\n width: 400px;\n height: 100%;\n text-align: center;\n}\n.icon {\n margin-left: 5px;\n}\n.centered {\n margin: auto;\n}\n.text {\n position: absolute;\n top: 0px;\n left: 400px;\n}\n.page-view {\n overflow: auto;\n}\n.external {\n margin-top: 35px;\n background-color: lightblue;\n height: 100px;\n position: relative;\n left: 80px;\n z-index: 2;\n}\n.highlight {\n background-color: lightblue;\n}\n.text-navi {\n position: absolute;\n margin-top: -3px;\n left: 0px;\n height: 38px;\n width: 100%;\n background-color: lightblue;\n z-index: 1;\n}\n.close-text {\n position: absolute;\n height: 38px;\n right: 0px;\n z-index: 2;\n}\n.page-navi {\n float: left;\n margin-top: -3px;\n margin-bottom: 1px;\n height: 38px;\n background-color: lightblue;\n z-index: 2;\n}\n.icon-button {\n width: 15px;\n margin-left: 3px;\n}\n.default-mouse {\n cursor: default;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tY3Jvc3NyZWYvdGxuLWNyb3NzcmVmLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxXQUFXO0dBQ1gsa0JBQWtCO0dBQ2xCLFFBQVE7R0FDUixTQUFTO0FBQ1o7QUFDQSxrQkFDNEIsMEJBQTBCO0VBQ3BELG9CQUFvQixNQUFNLFlBQVk7RUFDdEMsZUFBZTtBQUNqQjtBQUNBO0dBQ0csaUJBQWlCO0FBQ3BCO0FBQ0E7R0FDRyxpQkFBaUI7QUFDcEI7QUFDQTtHQUNHLGtCQUFrQjtHQUNsQixTQUFTO0dBQ1QsWUFBWTtHQUNaLFlBQVk7R0FDWixrQkFBa0I7QUFDckI7QUFDQTtHQUNHLGdCQUFnQjtBQUNuQjtBQUNBO0dBQ0csWUFBWTtBQUNmO0FBQ0E7R0FDRyxrQkFBa0I7R0FDbEIsUUFBUTtHQUNSLFdBQVc7QUFDZDtBQUNBO0dBQ0csY0FBYztBQUNqQjtBQUNBO0dBQ0csZ0JBQWdCO0dBQ2hCLDJCQUEyQjtHQUMzQixhQUFhO0dBQ2Isa0JBQWtCO0dBQ2xCLFVBQVU7R0FDVixVQUFVO0FBQ2I7QUFDQTtHQUNHLDJCQUEyQjtBQUM5QjtBQUNBO0dBQ0csa0JBQWtCO0dBQ2xCLGdCQUFnQjtHQUNoQixTQUFTO0dBQ1QsWUFBWTtHQUNaLFdBQVc7R0FDWCwyQkFBMkI7R0FDM0IsVUFBVTtBQUNiO0FBQ0E7R0FDRyxrQkFBa0I7R0FDbEIsWUFBWTtHQUNaLFVBQVU7R0FDVixVQUFVO0FBQ2I7QUFDQTtHQUNHLFdBQVc7R0FDWCxnQkFBZ0I7R0FDaEIsa0JBQWtCO0dBQ2xCLFlBQVk7R0FDWiwyQkFBMkI7R0FDM0IsVUFBVTtBQUNiO0FBQ0E7R0FDRyxXQUFXO0dBQ1gsZ0JBQWdCO0FBQ25CO0FBQ0E7R0FDRyxlQUFlO0FBQ2xCIiwiZmlsZSI6ImFwcC90bG4tZWRpdGlvbi90bG4tY3Jvc3NyZWYvdGxuLWNyb3NzcmVmLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjcGFnZSB7XG4gICB3aWR0aDogMTAwJTtcbiAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgIHRvcDogMHB4O1xuICAgbGVmdDogMHB4O1xufVxuLmdyaWQtY29udGFpbmVye1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogMjsgIC8qIENocm9tZSwgU2FmYXJpLCBPcGVyYSAqL1xuICAtbW96LWNvbHVtbi1jb3VudDogMjsgICAgIC8qIEZpcmVmb3ggKi9cbiAgY29sdW1uLWNvdW50OiAyO1xufVxuLmV4dHJhLXNwYWNlIHtcbiAgIG1hcmdpbi10b3A6ICA0NXB4O1xufVxuLnBhZ2UtY3Jvc3NyZWYtdGl0bGUge1xuICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG59XG4ucHJldmlldyB7XG4gICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICB0b3A6IDYwcHg7XG4gICB3aWR0aDogNDAwcHg7XG4gICBoZWlnaHQ6IDEwMCU7XG4gICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uaWNvbiB7XG4gICBtYXJnaW4tbGVmdDogNXB4O1xufVxuLmNlbnRlcmVkIHtcbiAgIG1hcmdpbjogYXV0bztcbn1cbi50ZXh0IHtcbiAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgIHRvcDogMHB4O1xuICAgbGVmdDogNDAwcHg7XG59XG4ucGFnZS12aWV3IHtcbiAgIG92ZXJmbG93OiBhdXRvO1xufVxuLmV4dGVybmFsIHtcbiAgIG1hcmdpbi10b3A6IDM1cHg7XG4gICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGJsdWU7XG4gICBoZWlnaHQ6IDEwMHB4O1xuICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgbGVmdDogODBweDtcbiAgIHotaW5kZXg6IDI7XG59XG4uaGlnaGxpZ2h0IHtcbiAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Ymx1ZTtcbn1cbi50ZXh0LW5hdmkge1xuICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgbWFyZ2luLXRvcDogLTNweDtcbiAgIGxlZnQ6IDBweDtcbiAgIGhlaWdodDogMzhweDtcbiAgIHdpZHRoOiAxMDAlO1xuICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRibHVlO1xuICAgei1pbmRleDogMTtcbn1cbi5jbG9zZS10ZXh0IHtcbiAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgIGhlaWdodDogMzhweDtcbiAgIHJpZ2h0OiAwcHg7XG4gICB6LWluZGV4OiAyO1xufVxuLnBhZ2UtbmF2aSB7XG4gICBmbG9hdDogbGVmdDtcbiAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICBtYXJnaW4tYm90dG9tOiAxcHg7XG4gICBoZWlnaHQ6IDM4cHg7XG4gICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGJsdWU7XG4gICB6LWluZGV4OiAyO1xufVxuLmljb24tYnV0dG9uIHtcbiAgIHdpZHRoOiAxNXB4O1xuICAgbWFyZ2luLWxlZnQ6IDNweDtcbn1cbi5kZWZhdWx0LW1vdXNlIHtcbiAgIGN1cnNvcjogZGVmYXVsdDtcbn1cbiJdfQ== */";
+ __webpack_exports__["default"] = "#page {\n width: 100%;\n position: relative;\n top: 0px;\n left: 0px;\n}\n.grid-container{ /* Chrome, Safari, Opera */\n -moz-column-count: 2; /* Firefox */\n column-count: 2;\n}\n.extra-space {\n margin-top: 45px;\n}\n.page-crossref-title {\n margin-left: 20px;\n}\n.preview {\n position: relative;\n top: 60px;\n width: 400px;\n height: 100%;\n text-align: center;\n}\n.icon {\n margin-left: 5px;\n}\n.centered {\n margin: auto;\n}\n.text {\n position: absolute;\n top: 0px;\n left: 400px;\n}\n.page-view {\n overflow: auto;\n}\n.external {\n margin-top: 35px;\n background-color: lightblue;\n height: 100px;\n position: relative;\n left: 80px;\n z-index: 2;\n}\n.highlight {\n background-color: lightblue;\n}\n.text-navi {\n position: absolute;\n margin-top: -3px;\n left: 0px;\n height: 38px;\n width: 100%;\n background-color: lightblue;\n z-index: 1;\n}\n.close-text {\n position: absolute;\n height: 38px;\n right: 0px;\n z-index: 2;\n}\n.page-navi {\n float: left;\n margin-top: -3px;\n margin-bottom: 1px;\n height: 38px;\n background-color: lightblue;\n z-index: 2;\n}\n.icon-button {\n width: 15px;\n margin-left: 3px;\n}\n.default-mouse {\n cursor: default;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1jcm9zc3JlZi90bG4tY3Jvc3NyZWYuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLFdBQVc7R0FDWCxrQkFBa0I7R0FDbEIsUUFBUTtHQUNSLFNBQVM7QUFDWjtBQUNBLGtCQUM0QiwwQkFBMEI7RUFDcEQsb0JBQW9CLE1BQU0sWUFBWTtFQUN0QyxlQUFlO0FBQ2pCO0FBQ0E7R0FDRyxpQkFBaUI7QUFDcEI7QUFDQTtHQUNHLGlCQUFpQjtBQUNwQjtBQUNBO0dBQ0csa0JBQWtCO0dBQ2xCLFNBQVM7R0FDVCxZQUFZO0dBQ1osWUFBWTtHQUNaLGtCQUFrQjtBQUNyQjtBQUNBO0dBQ0csZ0JBQWdCO0FBQ25CO0FBQ0E7R0FDRyxZQUFZO0FBQ2Y7QUFDQTtHQUNHLGtCQUFrQjtHQUNsQixRQUFRO0dBQ1IsV0FBVztBQUNkO0FBQ0E7R0FDRyxjQUFjO0FBQ2pCO0FBQ0E7R0FDRyxnQkFBZ0I7R0FDaEIsMkJBQTJCO0dBQzNCLGFBQWE7R0FDYixrQkFBa0I7R0FDbEIsVUFBVTtHQUNWLFVBQVU7QUFDYjtBQUNBO0dBQ0csMkJBQTJCO0FBQzlCO0FBQ0E7R0FDRyxrQkFBa0I7R0FDbEIsZ0JBQWdCO0dBQ2hCLFNBQVM7R0FDVCxZQUFZO0dBQ1osV0FBVztHQUNYLDJCQUEyQjtHQUMzQixVQUFVO0FBQ2I7QUFDQTtHQUNHLGtCQUFrQjtHQUNsQixZQUFZO0dBQ1osVUFBVTtHQUNWLFVBQVU7QUFDYjtBQUNBO0dBQ0csV0FBVztHQUNYLGdCQUFnQjtHQUNoQixrQkFBa0I7R0FDbEIsWUFBWTtHQUNaLDJCQUEyQjtHQUMzQixVQUFVO0FBQ2I7QUFDQTtHQUNHLFdBQVc7R0FDWCxnQkFBZ0I7QUFDbkI7QUFDQTtHQUNHLGVBQWU7QUFDbEIiLCJmaWxlIjoidGxuLWVkaXRpb24vdGxuLWNyb3NzcmVmL3Rsbi1jcm9zc3JlZi5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI3BhZ2Uge1xuICAgd2lkdGg6IDEwMCU7XG4gICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICB0b3A6IDBweDtcbiAgIGxlZnQ6IDBweDtcbn1cbi5ncmlkLWNvbnRhaW5lcntcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6IDI7ICAvKiBDaHJvbWUsIFNhZmFyaSwgT3BlcmEgKi9cbiAgLW1vei1jb2x1bW4tY291bnQ6IDI7ICAgICAvKiBGaXJlZm94ICovXG4gIGNvbHVtbi1jb3VudDogMjtcbn1cbi5leHRyYS1zcGFjZSB7XG4gICBtYXJnaW4tdG9wOiAgNDVweDtcbn1cbi5wYWdlLWNyb3NzcmVmLXRpdGxlIHtcbiAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xufVxuLnByZXZpZXcge1xuICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgdG9wOiA2MHB4O1xuICAgd2lkdGg6IDQwMHB4O1xuICAgaGVpZ2h0OiAxMDAlO1xuICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmljb24ge1xuICAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cbi5jZW50ZXJlZCB7XG4gICBtYXJnaW46IGF1dG87XG59XG4udGV4dCB7XG4gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICB0b3A6IDBweDtcbiAgIGxlZnQ6IDQwMHB4O1xufVxuLnBhZ2UtdmlldyB7XG4gICBvdmVyZmxvdzogYXV0bztcbn1cbi5leHRlcm5hbCB7XG4gICBtYXJnaW4tdG9wOiAzNXB4O1xuICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRibHVlO1xuICAgaGVpZ2h0OiAxMDBweDtcbiAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgIGxlZnQ6IDgwcHg7XG4gICB6LWluZGV4OiAyO1xufVxuLmhpZ2hsaWdodCB7XG4gICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGJsdWU7XG59XG4udGV4dC1uYXZpIHtcbiAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICBsZWZ0OiAwcHg7XG4gICBoZWlnaHQ6IDM4cHg7XG4gICB3aWR0aDogMTAwJTtcbiAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Ymx1ZTtcbiAgIHotaW5kZXg6IDE7XG59XG4uY2xvc2UtdGV4dCB7XG4gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICBoZWlnaHQ6IDM4cHg7XG4gICByaWdodDogMHB4O1xuICAgei1pbmRleDogMjtcbn1cbi5wYWdlLW5hdmkge1xuICAgZmxvYXQ6IGxlZnQ7XG4gICBtYXJnaW4tdG9wOiAtM3B4O1xuICAgbWFyZ2luLWJvdHRvbTogMXB4O1xuICAgaGVpZ2h0OiAzOHB4O1xuICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRibHVlO1xuICAgei1pbmRleDogMjtcbn1cbi5pY29uLWJ1dHRvbiB7XG4gICB3aWR0aDogMTVweDtcbiAgIG1hcmdpbi1sZWZ0OiAzcHg7XG59XG4uZGVmYXVsdC1tb3VzZSB7XG4gICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4iXX0= */";
/***/
},
/***/
"./src/app/tln-edition/tln-crossref/tln-crossref.component.ts":
/*!********************************************************************!*\
!*** ./src/app/tln-edition/tln-crossref/tln-crossref.component.ts ***!
\********************************************************************/
/*! exports provided: TlnCrossrefComponent */
/***/
function srcAppTlnEditionTlnCrossrefTlnCrossrefComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnCrossrefComponent", function () {
return TlnCrossrefComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @angular/router */
"./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */
var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ../constants */
"./src/app/tln-edition/constants.ts");
/* harmony import */
var _datatypes_navigation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! ../datatypes/navigation */
"./src/app/tln-edition/datatypes/navigation.ts");
/* harmony import */
var _datatypes_manuscript__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
/*! ../datatypes/manuscript */
"./src/app/tln-edition/datatypes/manuscript.ts");
/* harmony import */
var _datatypes_text_version__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
/*! ../datatypes/text_version */
"./src/app/tln-edition/datatypes/text_version.ts");
/* harmony import */
var _route_updater__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(
/*! ../route-updater */
"./src/app/tln-edition/route-updater.ts");
/* harmony import */
var _data_handler__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(
/*! ../data_handler */
"./src/app/tln-edition/data_handler.ts");
/* harmony import */
var _services__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(
/*! ../services */
"./src/app/tln-edition/services.ts");
var TlnCrossrefComponent = /*#__PURE__*/function (_route_updater__WEBPA3) {
_inherits(TlnCrossrefComponent, _route_updater__WEBPA3);
var _super42 = _createSuper(TlnCrossrefComponent);
function TlnCrossrefComponent(pageViewService, localQueryService, router, activatedRoute) {
var _this73;
_classCallCheck(this, TlnCrossrefComponent);
_this73 = _super42.call(this, router, activatedRoute);
_this73.pageViewService = pageViewService;
_this73.localQueryService = localQueryService;
_this73.router = router;
_this73.activatedRoute = activatedRoute;
_this73.PAGE_CONTEXT_VIEW = _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_PAGE_PARAM"];
_this73.MANUSCRIPT_CONTEXT_VIEW = _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_MANUSCRIPT_PARAM"];
_this73.zoomFactor = 1;
_this73.dataHandler = new _data_handler__WEBPACK_IMPORTED_MODULE_8__["DataHandler"](_assertThisInitialized(_this73));
_this73.textVersions = [];
_this73.geneticOrders = [];
_this73.contextView = _this73.PAGE_CONTEXT_VIEW;
_this73.fullscreen = false;
_this73.pagesWithGeneticOrder = [];
_this73.max_width = -1;
_this73.max_height = -1;
_this73.each_version_height = -1;
_this73.selectedLines = [];
_this73.selectedTextVersions = [];
_this73.increment = 0.333;
_this73.decrement = _this73.increment * -1;
_this73.margin_width = 280;
_this73.initialPreviewWidth = 400;
_this73.previewWidth = _this73.initialPreviewWidth;
_this73.currentRoute = _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_CROSSREF_ROUTE"];
_this73.mapping = {
findText: {
param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_FIND_PARAM"],
type: "string"
},
fullscreen: {
param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_FULLSCREEN_PARAM"],
type: "boolean"
},
contextView: {
param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_CONTEXT_VIEW_PARAM"],
type: "string"
},
current_iri: {
param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_PAGE_PARAM"],
type: "string"
},
current_manuscript_unity: {
param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_MANUSCRIPT_PARAM"],
type: "string"
},
current_genetic_order_iri: {
param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_TEXT_GENETIC_ORDER_PARAM"],
type: "string"
},
selectedLines: {
param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_SELECTED_LINES_PARAM"],
type: "string"
},
zoomFactor: {
param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_ZOOM_PARAM"],
type: "number"
}
};
_this73.selectedViewOption = _constants__WEBPACK_IMPORTED_MODULE_3__["VIEW_OPTIONS"].TRANSKRIPTION;
_this73.updating = false;
_this73.viewOptions = [_constants__WEBPACK_IMPORTED_MODULE_3__["VIEW_OPTIONS"].TRANSKRIPTION, _constants__WEBPACK_IMPORTED_MODULE_3__["VIEW_OPTIONS"].FAKSIMILE];
return _this73;
}
_createClass(TlnCrossrefComponent, [{
key: "ngOnInit",
value: function ngOnInit() {
var _this74 = this;
if (screen.availWidth - this.initialPreviewWidth - this.margin_width > 1000) {
this.previewWidth = screen.availWidth - this.initialPreviewWidth - 1000;
}
this.max_width = screen.availWidth - this.previewWidth - this.margin_width;
this.max_height = screen.availHeight - 200;
var tlnQueryService = this.queryService != null ? this.queryService : this.localQueryService;
this.dataHandler.addHandler('page_content', ['current_page', 'geneticOrders']);
this.dataHandler.addHandler('manuscript_content', ['current_manuscript', 'pagesWithGeneticOrder']);
this.dataHandler.addHandler('current_manuscript', {
'handler': _datatypes_manuscript__WEBPACK_IMPORTED_MODULE_5__["ManuscriptStub"]
});
this.dataHandler.addHandler('current_page', {
'handler': _datatypes_navigation__WEBPACK_IMPORTED_MODULE_4__["TlnNavigationPage"]
});
this.dataHandler.addHandler('geneticOrders', {
'handler': _datatypes_text_version__WEBPACK_IMPORTED_MODULE_6__["TlnTextGeneticOrder"]
});
this.dataHandler.addHandler('pagesWithGeneticOrder', {
'handler': _datatypes_text_version__WEBPACK_IMPORTED_MODULE_6__["TlnPageWithTextGeneticOrder"]
});
this.dataHandler.addHandler('textVersions', {
'handler': _datatypes_text_version__WEBPACK_IMPORTED_MODULE_6__["TlnStandaloneTextVersion"],
'process_data': this
});
this.dataHandler.setQueryService(tlnQueryService);
this.dataHandler.start_processing.subscribe(function (started) {
_this74.updating = true;
});
this.dataHandler.processing_finished.subscribe(function (finished) {
_this74.updating = false;
});
_get(_getPrototypeOf(TlnCrossrefComponent.prototype), "ngOnInit", this).call(this);
}
}, {
key: "processData",
value: function processData() {
this.selectedTextVersions = [];
var index = 0;
while (index < this.textVersions.length && this.selectedTextVersions.length < 1) {
if (this.textVersions[index].textUnities != undefined && this.textVersions[index].textUnities.length > 0) {
this.selectedTextVersions.push(this.textVersions[index]);
}
index++;
}
}
}, {
key: "addOrRemove",
value: function addOrRemove(textVersion) {
var index = this.selectedTextVersions.indexOf(textVersion);
if (index == -1) {
this.selectedTextVersions.push(textVersion);
} else {
this.selectedTextVersions.splice(index, 1);
}
this.each_version_height = this.selectedTextVersions.length > 0 ? this.max_height / this.selectedTextVersions.length : this.max_height;
}
}, {
key: "clearFindText",
value: function clearFindText() {
this.findText = '';
this.updateParams();
}
}, {
key: "getButtonTitle",
value: function getButtonTitle(textVersion) {
return this.selectedTextVersions.indexOf(textVersion) == -1 ? 'Textstelle anzeigen' : 'Textstelle ausblenden';
}
}, {
key: "readParams",
value: function readParams(params) {
var old_genetic_order_iri = this.current_genetic_order_iri;
var old_current_iri = this.current_iri;
var old_manuscript_unity = this.current_manuscript_unity;
var old_context_view = this.contextView;
_get(_getPrototypeOf(TlnCrossrefComponent.prototype), "readParams", this).call(this, params);
if (this.dataHandler.ready) {
if (this.contextView == this.PAGE_CONTEXT_VIEW && (this.contextView != old_context_view || this.current_iri != null && this.current_iri != old_current_iri)) {
this.dataHandler.resetData('page_content');
this.dataHandler.getData('page_content', this.current_iri);
}
if (this.contextView == this.MANUSCRIPT_CONTEXT_VIEW && (this.contextView != old_context_view || this.current_manuscript_unity != null && this.current_manuscript_unity != old_manuscript_unity)) {
this.dataHandler.resetData('manuscript_content');
this.dataHandler.getData('manuscript_content', this.current_manuscript_unity);
}
if (this.contextView == this.PAGE_CONTEXT_VIEW && (this.contextView != old_context_view || this.current_genetic_order_iri != null && (this.textVersions.length == 0 || this.current_genetic_order_iri != old_genetic_order_iri))) {
this.dataHandler.resetData('textVersions');
this.dataHandler.getData('textVersions', this.current_genetic_order_iri);
}
}
}
}, {
key: "openInViewer",
value: function openInViewer(pageIri, belongsToPageIri, manuscriptIri, launch) {
this.current_iri = belongsToPageIri != null ? belongsToPageIri : pageIri;
if (manuscriptIri != null) {
this.current_manuscript_unity = manuscriptIri;
}
this.currentRoute = _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_VIEWER_ROUTE"];
this.updateParams(launch);
}
}, {
key: "setZoomFactor",
value: function setZoomFactor(newZoomFactor) {
if (newZoomFactor > 0) {
this.zoomFactor = Math.round(newZoomFactor * 100) / 100;
} else {
this.zoomFactor = this.zoomFactor / 2;
}
this.updateParams();
}
}]);
return TlnCrossrefComponent;
}(_route_updater__WEBPACK_IMPORTED_MODULE_7__["RouteUpdater"]);
TlnCrossrefComponent.ctorParameters = function () {
return [{
type: _services__WEBPACK_IMPORTED_MODULE_9__["PageViewService"]
}, {
type: _services__WEBPACK_IMPORTED_MODULE_9__["TlnQueryService"]
}, {
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"]
}, {
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"]
}];
};
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TlnCrossrefComponent.prototype, "queryService", void 0);
TlnCrossrefComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'tln-crossref',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./tln-crossref.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/tln-crossref.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./tln-crossref.component.css */
"./src/app/tln-edition/tln-crossref/tln-crossref.component.css"))["default"]]
})], TlnCrossrefComponent);
/***/
},
/***/
"./src/app/tln-edition/tln-crossref/version-view/version-view.component.css":
/*!**********************************************************************************!*\
!*** ./src/app/tln-edition/tln-crossref/version-view/version-view.component.css ***!
\**********************************************************************************/
/*! exports provided: default */
/***/
function srcAppTlnEditionTlnCrossrefVersionViewVersionViewComponentCss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = ".highlight {\n text-decoration: underline;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tY3Jvc3NyZWYvdmVyc2lvbi12aWV3L3ZlcnNpb24tdmlldy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0dBQ0csMEJBQTBCO0FBQzdCIiwiZmlsZSI6ImFwcC90bG4tZWRpdGlvbi90bG4tY3Jvc3NyZWYvdmVyc2lvbi12aWV3L3ZlcnNpb24tdmlldy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmhpZ2hsaWdodCB7XG4gICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbiJdfQ== */";
+ __webpack_exports__["default"] = ".highlight {\n text-decoration: underline;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1jcm9zc3JlZi92ZXJzaW9uLXZpZXcvdmVyc2lvbi12aWV3LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRywwQkFBMEI7QUFDN0IiLCJmaWxlIjoidGxuLWVkaXRpb24vdGxuLWNyb3NzcmVmL3ZlcnNpb24tdmlldy92ZXJzaW9uLXZpZXcuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5oaWdobGlnaHQge1xuICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4iXX0= */";
/***/
},
/***/
"./src/app/tln-edition/tln-crossref/version-view/version-view.component.ts":
/*!*********************************************************************************!*\
!*** ./src/app/tln-edition/tln-crossref/version-view/version-view.component.ts ***!
\*********************************************************************************/
/*! exports provided: VersionViewComponent */
/***/
function srcAppTlnEditionTlnCrossrefVersionViewVersionViewComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "VersionViewComponent", function () {
return VersionViewComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
var VersionViewComponent = /*#__PURE__*/function () {
function VersionViewComponent() {
_classCallCheck(this, VersionViewComponent);
}
_createClass(VersionViewComponent, [{
key: "ngOnInit",
value: function ngOnInit() {}
}]);
return VersionViewComponent;
}();
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], VersionViewComponent.prototype, "version", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], VersionViewComponent.prototype, "current_iri", void 0);
VersionViewComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'version-view',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./version-view.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-crossref/version-view/version-view.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./version-view.component.css */
"./src/app/tln-edition/tln-crossref/version-view/version-view.component.css"))["default"]]
})], VersionViewComponent);
/***/
},
/***/
"./src/app/tln-edition/tln-edition.module.ts":
/*!***************************************************!*\
!*** ./src/app/tln-edition/tln-edition.module.ts ***!
\***************************************************/
/*! exports provided: TlnEditionModule */
/***/
function srcAppTlnEditionTlnEditionModuleTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnEditionModule", function () {
return TlnEditionModule;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/platform-browser */
"./node_modules/@angular/platform-browser/fesm2015/platform-browser.js");
/* harmony import */
var _angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @angular/common */
"./node_modules/@angular/common/fesm2015/common.js");
/* harmony import */
var _angular_forms__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! @angular/forms */
"./node_modules/@angular/forms/fesm2015/forms.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _angular_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
/*! @angular/material */
"./node_modules/@angular/material/esm2015/material.js");
/* harmony import */
var _lib_ngx_mat_standoff_markup_module__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
/*! ../lib/ngx-mat-standoff-markup.module */
"./src/app/lib/ngx-mat-standoff-markup.module.ts");
/* harmony import */
var _page_view_page_view_service__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(
/*! ../page-view/page-view.service */
"./src/app/page-view/page-view.service.ts");
/* harmony import */
var _page_view_page_view_module__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(
/*! ../page-view/page-view.module */
"./src/app/page-view/page-view.module.ts");
/* harmony import */
var _tln_page_view_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(
/*! ./tln-page-view.component */
"./src/app/tln-edition/tln-page-view.component.ts");
/* harmony import */
var _tln_query_service__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(
/*! ./tln-query.service */
"./src/app/tln-edition/tln-query.service.ts");
/* harmony import */
var _tooltip_tool_tip_component__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(
/*! ./tooltip/tool-tip.component */
"./src/app/tln-edition/tooltip/tool-tip.component.ts");
/* harmony import */
var _tln_viewer_navigation_tln_viewer_navigation_component__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(
/*! ./tln-viewer-navigation/tln-viewer-navigation.component */
"./src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.ts");
/* harmony import */
var _tln_information_tln_information_component__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(
/*! ./tln-information/tln-information.component */
"./src/app/tln-edition/tln-information/tln-information.component.ts");
/* harmony import */
var _tln_crossref_tln_crossref_component__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(
/*! ./tln-crossref/tln-crossref.component */
"./src/app/tln-edition/tln-crossref/tln-crossref.component.ts");
/* harmony import */
var _tln_crossref_version_view_version_view_component__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(
/*! ./tln-crossref/version-view/version-view.component */
"./src/app/tln-edition/tln-crossref/version-view/version-view.component.ts");
/* harmony import */
var _tln_crossref_page_version_view_page_version_view_component__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(
/*! ./tln-crossref/page-version-view/page-version-view.component */
"./src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.ts");
/* harmony import */
var _tln_crossref_navigation_navigation_component__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(
/*! ./tln-crossref/navigation/navigation.component */
"./src/app/tln-edition/tln-crossref/navigation/navigation.component.ts");
/* harmony import */
var _tln_crossref_page_version_view_filter_pipe__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(
/*! ./tln-crossref/page-version-view/filter.pipe */
"./src/app/tln-edition/tln-crossref/page-version-view/filter.pipe.ts");
/* harmony import */
var _tln_crossref_page_version_view_tln_page_version_view_component__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(
/*! ./tln-crossref/page-version-view/tln-page-version-view.component */
"./src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.ts");
/* harmony import */
var _tln_manuscript_view_tln_manuscript_view_component__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(
/*! ./tln-manuscript-view/tln-manuscript-view.component */
"./src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.ts");
/* harmony import */
var _tln_fulltext_tln_fulltext_component__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(
/*! ./tln-fulltext/tln-fulltext.component */
"./src/app/tln-edition/tln-fulltext/tln-fulltext.component.ts");
/* harmony import */
var _tln_fulltext_navigation_navigation_component__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(
/*! ./tln-fulltext/navigation/navigation.component */
"./src/app/tln-edition/tln-fulltext/navigation/navigation.component.ts");
/* harmony import */
var _tln_fulltext_result_pipe_pipe__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(
/*! ./tln-fulltext/result-pipe.pipe */
"./src/app/tln-edition/tln-fulltext/result-pipe.pipe.ts");
/* harmony import */
var _tln_navigation_elements_search_component__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(
/*! ./tln-navigation-elements/search.component */
"./src/app/tln-edition/tln-navigation-elements/search.component.ts");
/* harmony import */
var _tln_navigation_elements_toggle_navigation_component__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(
/*! ./tln-navigation-elements/toggle-navigation.component */
"./src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.ts");
/* harmony import */
var _tln_navigation_elements_zoom_component__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(
/*! ./tln-navigation-elements/zoom.component */
"./src/app/tln-edition/tln-navigation-elements/zoom.component.ts");
/* harmony import */
var _tln_navigation_elements_zoom_pipe__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(
/*! ./tln-navigation-elements/zoom.pipe */
"./src/app/tln-edition/tln-navigation-elements/zoom.pipe.ts");
/* harmony import */
var _tln_navigation_elements_open_in_viewer_component__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(
/*! ./tln-navigation-elements/open-in-viewer.component */
"./src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.ts");
/* harmony import */
var _debug_pipe__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(
/*! ./debug.pipe */
"./src/app/tln-edition/debug.pipe.ts");
/* harmony import */
var _tln_height_directive__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(
/*! ./tln-height.directive */
"./src/app/tln-edition/tln-height.directive.ts");
/* harmony import */
var _tln_fulltext_page_result_filter_pipe__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(
/*! ./tln-fulltext/page-result-filter.pipe */
"./src/app/tln-edition/tln-fulltext/page-result-filter.pipe.ts");
var TlnEditionModule = function TlnEditionModule() {
_classCallCheck(this, TlnEditionModule);
};
TlnEditionModule = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_4__["NgModule"])({
declarations: [_tln_fulltext_navigation_navigation_component__WEBPACK_IMPORTED_MODULE_22__["FulltextNavigationComponent"], _tln_page_view_component__WEBPACK_IMPORTED_MODULE_9__["TlnPageViewComponent"], _tooltip_tool_tip_component__WEBPACK_IMPORTED_MODULE_11__["ToolTipComponent"], _tln_viewer_navigation_tln_viewer_navigation_component__WEBPACK_IMPORTED_MODULE_12__["TlnViewerNavigation"], _tln_information_tln_information_component__WEBPACK_IMPORTED_MODULE_13__["TlnInformationComponent"], _tln_crossref_tln_crossref_component__WEBPACK_IMPORTED_MODULE_14__["TlnCrossrefComponent"], _tln_crossref_version_view_version_view_component__WEBPACK_IMPORTED_MODULE_15__["VersionViewComponent"], _tln_crossref_page_version_view_page_version_view_component__WEBPACK_IMPORTED_MODULE_16__["PageVersionViewComponent"], _tln_crossref_navigation_navigation_component__WEBPACK_IMPORTED_MODULE_17__["NavigationComponent"], _tln_crossref_page_version_view_filter_pipe__WEBPACK_IMPORTED_MODULE_18__["FilterPipe"], _tln_crossref_page_version_view_tln_page_version_view_component__WEBPACK_IMPORTED_MODULE_19__["TlnPageVersionViewComponent"], _tln_manuscript_view_tln_manuscript_view_component__WEBPACK_IMPORTED_MODULE_20__["TlnManuscriptViewComponent"], _tln_fulltext_tln_fulltext_component__WEBPACK_IMPORTED_MODULE_21__["TlnFulltextComponent"], _tln_fulltext_result_pipe_pipe__WEBPACK_IMPORTED_MODULE_23__["ResultPipePipe"], _tln_navigation_elements_search_component__WEBPACK_IMPORTED_MODULE_24__["SearchComponent"], _tln_navigation_elements_toggle_navigation_component__WEBPACK_IMPORTED_MODULE_25__["ToggleNavigationComponent"], _tln_navigation_elements_zoom_component__WEBPACK_IMPORTED_MODULE_26__["ZoomComponent"], _tln_navigation_elements_zoom_pipe__WEBPACK_IMPORTED_MODULE_27__["ZoomPipe"], _tln_navigation_elements_open_in_viewer_component__WEBPACK_IMPORTED_MODULE_28__["OpenInViewerComponent"], _debug_pipe__WEBPACK_IMPORTED_MODULE_29__["DebugPipe"], _tln_height_directive__WEBPACK_IMPORTED_MODULE_30__["TlnHeightDirective"], _tln_fulltext_page_result_filter_pipe__WEBPACK_IMPORTED_MODULE_31__["PageResultFilterPipe"]],
imports: [_angular_material__WEBPACK_IMPORTED_MODULE_5__["MatBottomSheetModule"], _angular_material__WEBPACK_IMPORTED_MODULE_5__["MatButtonModule"], _angular_material__WEBPACK_IMPORTED_MODULE_5__["MatButtonToggleModule"], _angular_material__WEBPACK_IMPORTED_MODULE_5__["MatCardModule"], _angular_material__WEBPACK_IMPORTED_MODULE_5__["MatCheckboxModule"], _angular_material__WEBPACK_IMPORTED_MODULE_5__["MatDialogModule"], _angular_material__WEBPACK_IMPORTED_MODULE_5__["MatExpansionModule"], _angular_material__WEBPACK_IMPORTED_MODULE_5__["MatFormFieldModule"], _angular_material__WEBPACK_IMPORTED_MODULE_5__["MatIconModule"], _angular_material__WEBPACK_IMPORTED_MODULE_5__["MatInputModule"], _angular_material__WEBPACK_IMPORTED_MODULE_5__["MatListModule"], _angular_material__WEBPACK_IMPORTED_MODULE_5__["MatMenuModule"], _angular_material__WEBPACK_IMPORTED_MODULE_5__["MatProgressSpinnerModule"], _angular_material__WEBPACK_IMPORTED_MODULE_5__["MatPaginatorModule"], _angular_material__WEBPACK_IMPORTED_MODULE_5__["MatRadioModule"], _angular_material__WEBPACK_IMPORTED_MODULE_5__["MatSelectModule"], _angular_material__WEBPACK_IMPORTED_MODULE_5__["MatSidenavModule"], _angular_material__WEBPACK_IMPORTED_MODULE_5__["MatSortModule"], _angular_material__WEBPACK_IMPORTED_MODULE_5__["MatTableModule"], _angular_material__WEBPACK_IMPORTED_MODULE_5__["MatTabsModule"], _angular_material__WEBPACK_IMPORTED_MODULE_5__["MatToolbarModule"], _angular_material__WEBPACK_IMPORTED_MODULE_5__["MatTooltipModule"], _angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__["BrowserModule"], _angular_common__WEBPACK_IMPORTED_MODULE_2__["CommonModule"], _angular_forms__WEBPACK_IMPORTED_MODULE_3__["FormsModule"], _lib_ngx_mat_standoff_markup_module__WEBPACK_IMPORTED_MODULE_6__["NgxMatStandoffMarkupModule"], _page_view_page_view_module__WEBPACK_IMPORTED_MODULE_8__["PageViewModule"]],
exports: [_debug_pipe__WEBPACK_IMPORTED_MODULE_29__["DebugPipe"], _tln_fulltext_navigation_navigation_component__WEBPACK_IMPORTED_MODULE_22__["FulltextNavigationComponent"], _tln_crossref_navigation_navigation_component__WEBPACK_IMPORTED_MODULE_17__["NavigationComponent"], _tooltip_tool_tip_component__WEBPACK_IMPORTED_MODULE_11__["ToolTipComponent"], _tln_crossref_tln_crossref_component__WEBPACK_IMPORTED_MODULE_14__["TlnCrossrefComponent"], _tln_height_directive__WEBPACK_IMPORTED_MODULE_30__["TlnHeightDirective"], _tln_manuscript_view_tln_manuscript_view_component__WEBPACK_IMPORTED_MODULE_20__["TlnManuscriptViewComponent"], _tln_page_view_component__WEBPACK_IMPORTED_MODULE_9__["TlnPageViewComponent"], _tln_viewer_navigation_tln_viewer_navigation_component__WEBPACK_IMPORTED_MODULE_12__["TlnViewerNavigation"]],
providers: [_page_view_page_view_service__WEBPACK_IMPORTED_MODULE_7__["PageViewService"], _tln_query_service__WEBPACK_IMPORTED_MODULE_10__["TlnQueryService"]],
entryComponents: [_tln_information_tln_information_component__WEBPACK_IMPORTED_MODULE_13__["TlnInformationComponent"]]
})], TlnEditionModule);
/***/
},
/***/
"./src/app/tln-edition/tln-fulltext/navigation/navigation.component.css":
/*!******************************************************************************!*\
!*** ./src/app/tln-edition/tln-fulltext/navigation/navigation.component.css ***!
\******************************************************************************/
/*! exports provided: default */
/***/
function srcAppTlnEditionTlnFulltextNavigationNavigationComponentCss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = "#navi {\n width: 100%;\n height: 50px;\n margin: 0;\n padding: 0;\n white-space: nowrap;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tZnVsbHRleHQvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxXQUFXO0dBQ1gsWUFBWTtHQUNaLFNBQVM7R0FDVCxVQUFVO0dBQ1YsbUJBQW1CO0FBQ3RCIiwiZmlsZSI6ImFwcC90bG4tZWRpdGlvbi90bG4tZnVsbHRleHQvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjbmF2aSB7XG4gICB3aWR0aDogMTAwJTtcbiAgIGhlaWdodDogNTBweDtcbiAgIG1hcmdpbjogMDtcbiAgIHBhZGRpbmc6IDA7XG4gICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuIl19 */";
+ __webpack_exports__["default"] = "#navi {\n width: 100%;\n height: 50px;\n margin: 0;\n padding: 0;\n white-space: nowrap;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1mdWxsdGV4dC9uYXZpZ2F0aW9uL25hdmlnYXRpb24uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLFdBQVc7R0FDWCxZQUFZO0dBQ1osU0FBUztHQUNULFVBQVU7R0FDVixtQkFBbUI7QUFDdEIiLCJmaWxlIjoidGxuLWVkaXRpb24vdGxuLWZ1bGx0ZXh0L25hdmlnYXRpb24vbmF2aWdhdGlvbi5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI25hdmkge1xuICAgd2lkdGg6IDEwMCU7XG4gICBoZWlnaHQ6IDUwcHg7XG4gICBtYXJnaW46IDA7XG4gICBwYWRkaW5nOiAwO1xuICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiJdfQ== */";
/***/
},
/***/
"./src/app/tln-edition/tln-fulltext/navigation/navigation.component.ts":
/*!*****************************************************************************!*\
!*** ./src/app/tln-edition/tln-fulltext/navigation/navigation.component.ts ***!
\*****************************************************************************/
/*! exports provided: FulltextNavigationComponent */
/***/
function srcAppTlnEditionTlnFulltextNavigationNavigationComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "FulltextNavigationComponent", function () {
return FulltextNavigationComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
var FulltextNavigationComponent = /*#__PURE__*/function () {
function FulltextNavigationComponent() {
_classCallCheck(this, FulltextNavigationComponent);
}
_createClass(FulltextNavigationComponent, [{
key: "ngOnInit",
value: function ngOnInit() {}
}]);
return FulltextNavigationComponent;
}();
FulltextNavigationComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'fulltext-navigation',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./navigation.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-fulltext/navigation/navigation.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./navigation.component.css */
"./src/app/tln-edition/tln-fulltext/navigation/navigation.component.css"))["default"]]
})], FulltextNavigationComponent);
/***/
},
/***/
"./src/app/tln-edition/tln-fulltext/page-result-filter.pipe.ts":
/*!*********************************************************************!*\
!*** ./src/app/tln-edition/tln-fulltext/page-result-filter.pipe.ts ***!
\*********************************************************************/
/*! exports provided: PageResultFilterPipe */
/***/
function srcAppTlnEditionTlnFulltextPageResultFilterPipeTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "PageResultFilterPipe", function () {
return PageResultFilterPipe;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
var PageResultFilterPipe = /*#__PURE__*/function () {
function PageResultFilterPipe() {
_classCallCheck(this, PageResultFilterPipe);
}
_createClass(PageResultFilterPipe, [{
key: "transform",
value: function transform(results, range) {
if (results.length <= range.start) {
return results;
}
return results.slice(range.start, range.end);
}
}]);
return PageResultFilterPipe;
}();
PageResultFilterPipe = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Pipe"])({
name: 'pageResultFilter'
})], PageResultFilterPipe);
/***/
},
/***/
"./src/app/tln-edition/tln-fulltext/result-pipe.pipe.ts":
/*!**************************************************************!*\
!*** ./src/app/tln-edition/tln-fulltext/result-pipe.pipe.ts ***!
\**************************************************************/
/*! exports provided: ResultPipePipe */
/***/
function srcAppTlnEditionTlnFulltextResultPipePipeTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "ResultPipePipe", function () {
return ResultPipePipe;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
var ResultPipePipe = /*#__PURE__*/function () {
function ResultPipePipe() {
_classCallCheck(this, ResultPipePipe);
}
_createClass(ResultPipePipe, [{
key: "transform",
value: function transform(pages) {
if (pages.length == 0) {
return 'Keine Treffer';
}
var pageResult = pages.length > 1 ? pages.length + ' Seiten' : pages[0].title + ' ' + pages[0].number;
var numFoundWords = 0;
pages.forEach(function (page) {
return page.results.forEach(function (result) {
return numFoundWords++;
});
});
return numFoundWords + ' Treffer auf ' + pageResult;
}
}]);
return ResultPipePipe;
}();
ResultPipePipe = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Pipe"])({
name: 'resultPipe'
})], ResultPipePipe);
/***/
},
/***/
"./src/app/tln-edition/tln-fulltext/tln-fulltext.component.css":
/*!*********************************************************************!*\
!*** ./src/app/tln-edition/tln-fulltext/tln-fulltext.component.css ***!
\*********************************************************************/
/*! exports provided: default */
/***/
function srcAppTlnEditionTlnFulltextTlnFulltextComponentCss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = "#page {\n width: 98%;\n position: relative;\n top: 0px;\n left: 0px;\n height: 100%;\n overflow: visible;\n}\n.icon-button {\n width: 15px;\n margin-left: 3px;\n}\n.page-navi {\n float: left;\n margin-top: -3px;\n margin-bottom: 1px;\n height: 38px;\n background-color: lightblue;\n z-index: 2;\n}\n.default-mouse {\n cursor: default;\n}\n.small-grey {\n color: lightgrey;\n font-size: 80%;\n}\n.text {\n position: absolute;\n top: 10px;\n left: 500px;\n}\n.search {\n position: relative;\n top: 60px;\n width: 500px;\n height: 100%;\n text-align: center;\n margin-right: 20px;\n}\n.extra-space {\n margin-top: 45px;\n}\n.title {\n text-align: left;\n margin-left: 20px;\n}\n.form {\n width: 95%;\n}\n.full-width {\n min-width: 150px;\n max-width: 500px;\n width: 80%;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tZnVsbHRleHQvdGxuLWZ1bGx0ZXh0LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxVQUFVO0dBQ1Ysa0JBQWtCO0dBQ2xCLFFBQVE7R0FDUixTQUFTO0dBQ1QsWUFBWTtHQUNaLGlCQUFpQjtBQUNwQjtBQUNBO0dBQ0csV0FBVztHQUNYLGdCQUFnQjtBQUNuQjtBQUNBO0dBQ0csV0FBVztHQUNYLGdCQUFnQjtHQUNoQixrQkFBa0I7R0FDbEIsWUFBWTtHQUNaLDJCQUEyQjtHQUMzQixVQUFVO0FBQ2I7QUFDQTtHQUNHLGVBQWU7QUFDbEI7QUFDQTtHQUNHLGdCQUFnQjtHQUNoQixjQUFjO0FBQ2pCO0FBQ0E7R0FDRyxrQkFBa0I7R0FDbEIsU0FBUztHQUNULFdBQVc7QUFDZDtBQUNBO0dBQ0csa0JBQWtCO0dBQ2xCLFNBQVM7R0FDVCxZQUFZO0dBQ1osWUFBWTtHQUNaLGtCQUFrQjtHQUNsQixrQkFBa0I7QUFDckI7QUFDQTtHQUNHLGlCQUFpQjtBQUNwQjtBQUNBO0dBQ0csZ0JBQWdCO0dBQ2hCLGlCQUFpQjtBQUNwQjtBQUNBO0VBQ0UsVUFBVTtBQUNaO0FBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsZ0JBQWdCO0VBQ2hCLFVBQVU7QUFDWiIsImZpbGUiOiJhcHAvdGxuLWVkaXRpb24vdGxuLWZ1bGx0ZXh0L3Rsbi1mdWxsdGV4dC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI3BhZ2Uge1xuICAgd2lkdGg6IDk4JTtcbiAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgIHRvcDogMHB4O1xuICAgbGVmdDogMHB4O1xuICAgaGVpZ2h0OiAxMDAlO1xuICAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4uaWNvbi1idXR0b24ge1xuICAgd2lkdGg6IDE1cHg7XG4gICBtYXJnaW4tbGVmdDogM3B4O1xufVxuLnBhZ2UtbmF2aSB7XG4gICBmbG9hdDogbGVmdDtcbiAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICBtYXJnaW4tYm90dG9tOiAxcHg7XG4gICBoZWlnaHQ6IDM4cHg7XG4gICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGJsdWU7XG4gICB6LWluZGV4OiAyO1xufVxuLmRlZmF1bHQtbW91c2Uge1xuICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLnNtYWxsLWdyZXkge1xuICAgY29sb3I6IGxpZ2h0Z3JleTtcbiAgIGZvbnQtc2l6ZTogODAlO1xufVxuLnRleHQge1xuICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgdG9wOiAxMHB4O1xuICAgbGVmdDogNTAwcHg7XG59XG4uc2VhcmNoIHtcbiAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgIHRvcDogNjBweDtcbiAgIHdpZHRoOiA1MDBweDtcbiAgIGhlaWdodDogMTAwJTtcbiAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgIG1hcmdpbi1yaWdodDogMjBweDtcbn1cbi5leHRyYS1zcGFjZSB7XG4gICBtYXJnaW4tdG9wOiAgNDVweDtcbn1cbi50aXRsZSB7XG4gICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG59XG4uZm9ybSB7XG4gIHdpZHRoOiA5NSU7XG59XG4uZnVsbC13aWR0aCB7XG4gIG1pbi13aWR0aDogMTUwcHg7XG4gIG1heC13aWR0aDogNTAwcHg7XG4gIHdpZHRoOiA4MCU7XG59XG4iXX0= */";
+ __webpack_exports__["default"] = "#page {\n width: 98%;\n position: relative;\n top: 0px;\n left: 0px;\n height: 100%;\n overflow: visible;\n}\n.icon-button {\n width: 15px;\n margin-left: 3px;\n}\n.page-navi {\n float: left;\n margin-top: -3px;\n margin-bottom: 1px;\n height: 38px;\n background-color: lightblue;\n z-index: 2;\n}\n.default-mouse {\n cursor: default;\n}\n.small-grey {\n color: lightgrey;\n font-size: 80%;\n}\n.text {\n position: absolute;\n top: 10px;\n left: 500px;\n}\n.search {\n position: relative;\n top: 60px;\n width: 500px;\n height: 100%;\n text-align: center;\n margin-right: 20px;\n}\n.extra-space {\n margin-top: 45px;\n}\n.title {\n text-align: left;\n margin-left: 20px;\n}\n.form {\n width: 95%;\n}\n.full-width {\n min-width: 150px;\n max-width: 500px;\n width: 80%;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1mdWxsdGV4dC90bG4tZnVsbHRleHQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLFVBQVU7R0FDVixrQkFBa0I7R0FDbEIsUUFBUTtHQUNSLFNBQVM7R0FDVCxZQUFZO0dBQ1osaUJBQWlCO0FBQ3BCO0FBQ0E7R0FDRyxXQUFXO0dBQ1gsZ0JBQWdCO0FBQ25CO0FBQ0E7R0FDRyxXQUFXO0dBQ1gsZ0JBQWdCO0dBQ2hCLGtCQUFrQjtHQUNsQixZQUFZO0dBQ1osMkJBQTJCO0dBQzNCLFVBQVU7QUFDYjtBQUNBO0dBQ0csZUFBZTtBQUNsQjtBQUNBO0dBQ0csZ0JBQWdCO0dBQ2hCLGNBQWM7QUFDakI7QUFDQTtHQUNHLGtCQUFrQjtHQUNsQixTQUFTO0dBQ1QsV0FBVztBQUNkO0FBQ0E7R0FDRyxrQkFBa0I7R0FDbEIsU0FBUztHQUNULFlBQVk7R0FDWixZQUFZO0dBQ1osa0JBQWtCO0dBQ2xCLGtCQUFrQjtBQUNyQjtBQUNBO0dBQ0csaUJBQWlCO0FBQ3BCO0FBQ0E7R0FDRyxnQkFBZ0I7R0FDaEIsaUJBQWlCO0FBQ3BCO0FBQ0E7RUFDRSxVQUFVO0FBQ1o7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIsVUFBVTtBQUNaIiwiZmlsZSI6InRsbi1lZGl0aW9uL3Rsbi1mdWxsdGV4dC90bG4tZnVsbHRleHQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiNwYWdlIHtcbiAgIHdpZHRoOiA5OCU7XG4gICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICB0b3A6IDBweDtcbiAgIGxlZnQ6IDBweDtcbiAgIGhlaWdodDogMTAwJTtcbiAgIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLmljb24tYnV0dG9uIHtcbiAgIHdpZHRoOiAxNXB4O1xuICAgbWFyZ2luLWxlZnQ6IDNweDtcbn1cbi5wYWdlLW5hdmkge1xuICAgZmxvYXQ6IGxlZnQ7XG4gICBtYXJnaW4tdG9wOiAtM3B4O1xuICAgbWFyZ2luLWJvdHRvbTogMXB4O1xuICAgaGVpZ2h0OiAzOHB4O1xuICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRibHVlO1xuICAgei1pbmRleDogMjtcbn1cbi5kZWZhdWx0LW1vdXNlIHtcbiAgIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5zbWFsbC1ncmV5IHtcbiAgIGNvbG9yOiBsaWdodGdyZXk7XG4gICBmb250LXNpemU6IDgwJTtcbn1cbi50ZXh0IHtcbiAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgIHRvcDogMTBweDtcbiAgIGxlZnQ6IDUwMHB4O1xufVxuLnNlYXJjaCB7XG4gICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICB0b3A6IDYwcHg7XG4gICB3aWR0aDogNTAwcHg7XG4gICBoZWlnaHQ6IDEwMCU7XG4gICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG4uZXh0cmEtc3BhY2Uge1xuICAgbWFyZ2luLXRvcDogIDQ1cHg7XG59XG4udGl0bGUge1xuICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xufVxuLmZvcm0ge1xuICB3aWR0aDogOTUlO1xufVxuLmZ1bGwtd2lkdGgge1xuICBtaW4td2lkdGg6IDE1MHB4O1xuICBtYXgtd2lkdGg6IDUwMHB4O1xuICB3aWR0aDogODAlO1xufVxuIl19 */";
/***/
},
/***/
"./src/app/tln-edition/tln-fulltext/tln-fulltext.component.ts":
/*!********************************************************************!*\
!*** ./src/app/tln-edition/tln-fulltext/tln-fulltext.component.ts ***!
\********************************************************************/
/*! exports provided: TlnFulltextComponent */
/***/
function srcAppTlnEditionTlnFulltextTlnFulltextComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnFulltextComponent", function () {
return TlnFulltextComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @angular/router */
"./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */
var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ../constants */
"./src/app/tln-edition/constants.ts");
/* harmony import */
var _data_handler__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! ../data_handler */
"./src/app/tln-edition/data_handler.ts");
/* harmony import */
var _datatypes_search__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
/*! ../datatypes/search */
"./src/app/tln-edition/datatypes/search.ts");
/* harmony import */
var _route_updater__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
/*! ../route-updater */
"./src/app/tln-edition/route-updater.ts");
/* harmony import */
var _services__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(
/*! ../services */
"./src/app/tln-edition/services.ts"); //TODO: german language support for paginator, see: https://github.com/ngx-translate/core
var TlnFulltextComponent = /*#__PURE__*/function (_route_updater__WEBPA4) {
_inherits(TlnFulltextComponent, _route_updater__WEBPA4);
var _super43 = _createSuper(TlnFulltextComponent);
function TlnFulltextComponent(tlnQueryService, router, activatedRoute) {
var _this75;
_classCallCheck(this, TlnFulltextComponent);
_this75 = _super43.call(this, router, activatedRoute);
_this75.tlnQueryService = tlnQueryService;
_this75.router = router;
_this75.activatedRoute = activatedRoute;
_this75.currentRoute = _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_SEARCH_ROUTE"];
_this75.dataHandler = new _data_handler__WEBPACK_IMPORTED_MODULE_4__["DataHandler"](_assertThisInitialized(_this75));
_this75.max_width = -1;
_this75.max_height = -1;
_this75.resultIndex = 0;
_this75.resultLength = 5;
_this75.resultRange = {
start: 0,
end: 4
};
_this75.resultsReceived = false;
_this75.selectedViewOption = _constants__WEBPACK_IMPORTED_MODULE_3__["VIEW_OPTIONS"].TRANSKRIPTION;
_this75.startSearch = false;
_this75.mapping = {
current_page_iri: {
param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_PAGE_PARAM"],
type: "string"
},
resultIndex: {
param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_RESULT_INDEX_PARAM"],
type: "number"
},
searchTerm: {
param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_FIND_PARAM"],
type: "string"
},
current_manuscript_unity: {
param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_MANUSCRIPT_PARAM"],
type: "string"
},
fullscreen: {
param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_FULLSCREEN_PARAM"],
type: "boolean"
}
};
_this75.pages = [];
_this75.margin_width = 280;
_this75.initialPreviewWidth = 300;
_this75.previewWidth = _this75.initialPreviewWidth;
return _this75;
}
_createClass(TlnFulltextComponent, [{
key: "ngOnInit",
value: function ngOnInit() {
var _this76 = this;
if (screen.availWidth - this.initialPreviewWidth - this.margin_width > 1000) {
this.previewWidth = screen.availWidth - this.initialPreviewWidth - 1000;
}
this.max_width = screen.availWidth - this.previewWidth - this.margin_width;
this.max_height = screen.availHeight - 200;
this.dataHandler.addHandler('pages', {
'handler': _datatypes_search__WEBPACK_IMPORTED_MODULE_5__["FoundPage"]
});
this.dataHandler['pages']['service'] = this;
this.dataHandler.setQueryService(this.tlnQueryService);
this.dataHandler.start_processing.subscribe(function (started) {
_this76.resultsReceived = false;
_this76.startSearch = true;
});
this.dataHandler.processing_finished.subscribe(function (finished) {
_this76.resultsReceived = true;
_this76.startSearch = false;
});
_get(_getPrototypeOf(TlnFulltextComponent.prototype), "ngOnInit", this).call(this);
}
}, {
key: "clearFindText",
value: function clearFindText() {
this.searchTerm = '';
this.pages = [];
this.resultIndex = 0;
_get(_getPrototypeOf(TlnFulltextComponent.prototype), "updateParams", this).call(this);
}
}, {
key: "search",
value: function search() {
this.resultIndex = 0;
this.updateResultRange();
_get(_getPrototypeOf(TlnFulltextComponent.prototype), "updateParams", this).call(this);
if (this.searchTerm != undefined && this.searchTerm != null && this.searchTerm != '') {
this.dataHandler.resetData('pages');
this.dataHandler.getData('pages', this.searchTerm);
}
}
}, {
key: "readParams",
value: function readParams(params) {
var oldSearchTerm = this.searchTerm;
var oldResultIndex = this.resultIndex;
_get(_getPrototypeOf(TlnFulltextComponent.prototype), "readParams", this).call(this, params);
if (this.searchTerm != undefined && this.searchTerm != null && this.searchTerm != '' && this.searchTerm != oldSearchTerm) {
this.resultIndex = 0;
this.dataHandler.getData('pages', this.searchTerm);
}
if (oldResultIndex != this.resultIndex) {
this.updateResultRange();
}
}
}, {
key: "getSearchTerms",
value: function getSearchTerms() {
return this.searchTerm.split(' ');
}
}, {
key: "showResults",
value: function showResults(event) {
this.resultIndex = event.pageIndex;
this.updateResultRange();
this.updateParams();
}
}, {
key: "updateResultRange",
value: function updateResultRange() {
var newStart = this.resultIndex * this.resultLength;
var newEnd = newStart + this.resultLength;
this.resultRange = {
start: newStart,
end: newEnd
};
}
}]);
return TlnFulltextComponent;
}(_route_updater__WEBPACK_IMPORTED_MODULE_6__["RouteUpdater"]);
TlnFulltextComponent.ctorParameters = function () {
return [{
type: _services__WEBPACK_IMPORTED_MODULE_7__["TlnQueryService"]
}, {
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"]
}, {
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"]
}];
};
TlnFulltextComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'tln-fulltext',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./tln-fulltext.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-fulltext/tln-fulltext.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./tln-fulltext.component.css */
"./src/app/tln-edition/tln-fulltext/tln-fulltext.component.css"))["default"]]
})], TlnFulltextComponent);
/***/
},
/***/
"./src/app/tln-edition/tln-height.directive.ts":
/*!*****************************************************!*\
!*** ./src/app/tln-edition/tln-height.directive.ts ***!
\*****************************************************/
/*! exports provided: TlnHeightDirective */
/***/
function srcAppTlnEditionTlnHeightDirectiveTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnHeightDirective", function () {
return TlnHeightDirective;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
var TlnHeightDirective = /*#__PURE__*/function () {
function TlnHeightDirective(el) {
_classCallCheck(this, TlnHeightDirective);
this.el = el;
}
_createClass(TlnHeightDirective, [{
key: "ngOnInit",
value: function ngOnInit() {
if (this.pageView != undefined && this.pageView != null) {
this.pageView.max_height = window.innerHeight - this.el.nativeElement.offsetHeight - 15;
}
}
}]);
return TlnHeightDirective;
}();
TlnHeightDirective.ctorParameters = function () {
return [{
type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ElementRef"]
}];
};
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('setMaxHeightTo')], TlnHeightDirective.prototype, "pageView", void 0);
TlnHeightDirective = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Directive"])({
selector: '[setMaxHeightTo]'
})], TlnHeightDirective);
/***/
},
/***/
"./src/app/tln-edition/tln-information/tln-information.component.css":
/*!***************************************************************************!*\
!*** ./src/app/tln-edition/tln-information/tln-information.component.css ***!
\***************************************************************************/
/*! exports provided: default */
/***/
function srcAppTlnEditionTlnInformationTlnInformationComponentCss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = ".highlight {\n text-decoration: underline;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4taW5mb3JtYXRpb24vdGxuLWluZm9ybWF0aW9uLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRywwQkFBMEI7QUFDN0IiLCJmaWxlIjoiYXBwL3Rsbi1lZGl0aW9uL3Rsbi1pbmZvcm1hdGlvbi90bG4taW5mb3JtYXRpb24uY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5oaWdobGlnaHQge1xuICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4iXX0= */";
+ __webpack_exports__["default"] = ".highlight {\n text-decoration: underline;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1pbmZvcm1hdGlvbi90bG4taW5mb3JtYXRpb24uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLDBCQUEwQjtBQUM3QiIsImZpbGUiOiJ0bG4tZWRpdGlvbi90bG4taW5mb3JtYXRpb24vdGxuLWluZm9ybWF0aW9uLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuaGlnaGxpZ2h0IHtcbiAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuIl19 */";
/***/
},
/***/
"./src/app/tln-edition/tln-information/tln-information.component.ts":
/*!**************************************************************************!*\
!*** ./src/app/tln-edition/tln-information/tln-information.component.ts ***!
\**************************************************************************/
/*! exports provided: TlnInformationComponent */
/***/
function srcAppTlnEditionTlnInformationTlnInformationComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnInformationComponent", function () {
return TlnInformationComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @angular/router */
"./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */
var _angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! @angular/material/bottom-sheet */
"./node_modules/@angular/material/esm2015/bottom-sheet.js");
/* harmony import */
var _route_updater__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! ../route-updater */
"./src/app/tln-edition/route-updater.ts");
/* harmony import */
var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
/*! ../constants */
"./src/app/tln-edition/constants.ts");
var TlnInformationComponent = /*#__PURE__*/function (_route_updater__WEBPA5) {
_inherits(TlnInformationComponent, _route_updater__WEBPA5);
var _super44 = _createSuper(TlnInformationComponent);
function TlnInformationComponent(data, bottomSheetRef, router, activatedRoute) {
var _this77;
_classCallCheck(this, TlnInformationComponent);
_this77 = _super44.call(this, router, activatedRoute);
_this77.data = data;
_this77.bottomSheetRef = bottomSheetRef;
_this77.router = router;
_this77.activatedRoute = activatedRoute;
/**
* the data handler of this component that retrieves
* data and instantiates it according to their proper
* datatypes.
**/
_this77.geneticOrders = [];
_this77.currentRoute = _constants__WEBPACK_IMPORTED_MODULE_5__["TLN_CROSSREF_ROUTE"];
_this77.mapping = {
current_iri: {
param: _constants__WEBPACK_IMPORTED_MODULE_5__["TLN_PAGE_PARAM"],
type: "string"
},
current_manuscript_iri: {
param: _constants__WEBPACK_IMPORTED_MODULE_5__["TLN_MANUSCRIPT_PARAM"],
type: "string"
},
current_genetic_order: {
param: _constants__WEBPACK_IMPORTED_MODULE_5__["TLN_TEXT_GENETIC_ORDER_PARAM"],
type: "string"
}
};
_this77.current_page = data.page;
_this77.geneticOrders = data.geneticOrders;
_this77.current_manuscript_iri = data.manuscript_iri;
return _this77;
}
_createClass(TlnInformationComponent, [{
key: "ngOnInit",
value: function ngOnInit() {
_get(_getPrototypeOf(TlnInformationComponent.prototype), "ngOnInit", this).call(this);
}
}, {
key: "openCrossRef",
value: function openCrossRef(geneticOrder) {
this.current_genetic_order = geneticOrder.id;
this.current_iri = this.current_page.id;
this.updateParams();
}
}]);
return TlnInformationComponent;
}(_route_updater__WEBPACK_IMPORTED_MODULE_4__["RouteUpdater"]);
TlnInformationComponent.ctorParameters = function () {
return [{
type: undefined,
decorators: [{
type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Inject"],
args: [_angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_3__["MAT_BOTTOM_SHEET_DATA"]]
}]
}, {
type: _angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_3__["MatBottomSheetRef"]
}, {
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"]
}, {
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"]
}];
};
TlnInformationComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-tln-information',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./tln-information.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-information/tln-information.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./tln-information.component.css */
"./src/app/tln-edition/tln-information/tln-information.component.css"))["default"]]
}), tslib__WEBPACK_IMPORTED_MODULE_0__["__param"](0, Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Inject"])(_angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_3__["MAT_BOTTOM_SHEET_DATA"]))], TlnInformationComponent);
/***/
},
/***/
"./src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.css":
/*!***********************************************************************************!*\
!*** ./src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.css ***!
\***********************************************************************************/
/*! exports provided: default */
/***/
function srcAppTlnEditionTlnManuscriptViewTlnManuscriptViewComponentCss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = "img.thumb {\n overflow: auto;\n padding: 0 20px;\n text-align: center;\n}\ntd.author {\n text-align: left;\n width: 150px;\n vertical-align: top;\n padding-right: 10px;\n}\ntd.text {\n text-align: justify;\n width: 600px;\n}\np.text {\n text-align: justify;\n width: 760px;\n}\nbutton.nospace {\n /*margin: -12px;*/\n max-width: 15px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tbWFudXNjcmlwdC12aWV3L3Rsbi1tYW51c2NyaXB0LXZpZXcuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLGNBQWM7R0FDZCxlQUFlO0dBQ2Ysa0JBQWtCO0FBQ3JCO0FBQ0E7R0FDRyxnQkFBZ0I7R0FDaEIsWUFBWTtHQUNaLG1CQUFtQjtHQUNuQixtQkFBbUI7QUFDdEI7QUFDQTtHQUNHLG1CQUFtQjtHQUNuQixZQUFZO0FBQ2Y7QUFDQTtHQUNHLG1CQUFtQjtHQUNuQixZQUFZO0FBQ2Y7QUFDQTtHQUNHLGlCQUFpQjtHQUNqQixlQUFlO0FBQ2xCIiwiZmlsZSI6ImFwcC90bG4tZWRpdGlvbi90bG4tbWFudXNjcmlwdC12aWV3L3Rsbi1tYW51c2NyaXB0LXZpZXcuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbImltZy50aHVtYiB7XG4gICBvdmVyZmxvdzogYXV0bztcbiAgIHBhZGRpbmc6IDAgMjBweDtcbiAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbnRkLmF1dGhvciB7XG4gICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgd2lkdGg6IDE1MHB4O1xuICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG59XG50ZC50ZXh0IHtcbiAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICB3aWR0aDogNjAwcHg7XG59XG5wLnRleHQge1xuICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgIHdpZHRoOiA3NjBweDtcbn1cbmJ1dHRvbi5ub3NwYWNlIHtcbiAgIC8qbWFyZ2luOiAtMTJweDsqL1xuICAgbWF4LXdpZHRoOiAxNXB4O1xufVxuIl19 */";
+ __webpack_exports__["default"] = "img.thumb {\n overflow: auto;\n padding: 0 20px;\n text-align: center;\n}\ntd.author {\n text-align: left;\n width: 150px;\n vertical-align: top;\n padding-right: 10px;\n}\ntd.text {\n text-align: justify;\n width: 600px;\n}\np.text {\n text-align: justify;\n width: 760px;\n}\nbutton.nospace {\n /*margin: -12px;*/\n max-width: 15px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1tYW51c2NyaXB0LXZpZXcvdGxuLW1hbnVzY3JpcHQtdmlldy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0dBQ0csY0FBYztHQUNkLGVBQWU7R0FDZixrQkFBa0I7QUFDckI7QUFDQTtHQUNHLGdCQUFnQjtHQUNoQixZQUFZO0dBQ1osbUJBQW1CO0dBQ25CLG1CQUFtQjtBQUN0QjtBQUNBO0dBQ0csbUJBQW1CO0dBQ25CLFlBQVk7QUFDZjtBQUNBO0dBQ0csbUJBQW1CO0dBQ25CLFlBQVk7QUFDZjtBQUNBO0dBQ0csaUJBQWlCO0dBQ2pCLGVBQWU7QUFDbEIiLCJmaWxlIjoidGxuLWVkaXRpb24vdGxuLW1hbnVzY3JpcHQtdmlldy90bG4tbWFudXNjcmlwdC12aWV3LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJpbWcudGh1bWIge1xuICAgb3ZlcmZsb3c6IGF1dG87XG4gICBwYWRkaW5nOiAwIDIwcHg7XG4gICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG50ZC5hdXRob3Ige1xuICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgIHdpZHRoOiAxNTBweDtcbiAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xufVxudGQudGV4dCB7XG4gICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgd2lkdGg6IDYwMHB4O1xufVxucC50ZXh0IHtcbiAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICB3aWR0aDogNzYwcHg7XG59XG5idXR0b24ubm9zcGFjZSB7XG4gICAvKm1hcmdpbjogLTEycHg7Ki9cbiAgIG1heC13aWR0aDogMTVweDtcbn1cbiJdfQ== */";
/***/
},
/***/
"./src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.ts":
/*!**********************************************************************************!*\
!*** ./src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.ts ***!
\**********************************************************************************/
/*! exports provided: TlnManuscriptViewComponent */
/***/
function srcAppTlnEditionTlnManuscriptViewTlnManuscriptViewComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnManuscriptViewComponent", function () {
return TlnManuscriptViewComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @angular/router */
"./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */
var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ../constants */
"./src/app/tln-edition/constants.ts");
/* harmony import */
var _data_handler__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! ../data_handler */
"./src/app/tln-edition/data_handler.ts");
/* harmony import */
var _datatypes_manuscript__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
/*! ../datatypes/manuscript */
"./src/app/tln-edition/datatypes/manuscript.ts");
/* harmony import */
var _datatypes_page__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
/*! ../datatypes/page */
"./src/app/tln-edition/datatypes/page.ts");
/* harmony import */
var _route_updater__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(
/*! ../route-updater */
"./src/app/tln-edition/route-updater.ts");
/* harmony import */
var _services__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(
/*! ../services */
"./src/app/tln-edition/services.ts");
/* harmony import */
var _lib_ngx_mat_standoff_markup_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(
/*! ../../lib/ngx-mat-standoff-markup.component */
"./src/app/lib/ngx-mat-standoff-markup.component.ts");
var TlnManuscriptViewComponent = /*#__PURE__*/function (_route_updater__WEBPA6) {
_inherits(TlnManuscriptViewComponent, _route_updater__WEBPA6);
var _super45 = _createSuper(TlnManuscriptViewComponent);
function TlnManuscriptViewComponent(tlnQueryService, router, activatedRoute) {
var _this78;
_classCallCheck(this, TlnManuscriptViewComponent);
_this78 = _super45.call(this, router, activatedRoute);
_this78.tlnQueryService = tlnQueryService;
_this78.router = router;
_this78.activatedRoute = activatedRoute;
_this78.contextView = _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_MANUSCRIPT_PARAM"];
_this78.currentRoute = _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_MANUSCRIPT_ROUTE"];
_this78.cssDef = {
type: 'text',
css: ''
};
_this78.dataHandler = new _data_handler__WEBPACK_IMPORTED_MODULE_4__["DataHandler"](_assertThisInitialized(_this78));
_this78.earlierDescriptions = [];
_this78.mapping = {
contextView: {
param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_CONTEXT_VIEW_PARAM"],
type: "string"
},
current_page_iri: {
param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_PAGE_PARAM"],
type: "string"
},
current_manuscript_unity: {
param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_MANUSCRIPT_PARAM"],
type: "string"
},
fullscreen: {
param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_FULLSCREEN_PARAM"],
type: "boolean"
}
};
_this78.mySettings = new _lib_ngx_mat_standoff_markup_component__WEBPACK_IMPORTED_MODULE_9__["StandoffMarkupSettings"](true, true, false, 1);
_this78.pages = [];
return _this78;
}
_createClass(TlnManuscriptViewComponent, [{
key: "ngOnInit",
value: function ngOnInit() {
this.dataHandler.addHandler('manuscript_content', ['current_manuscript', 'manuscriptDescription', 'earlierDescriptions', 'pages', 'reconstructedKonvolut']);
this.dataHandler.addHandler('current_manuscript', {
'handler': _datatypes_manuscript__WEBPACK_IMPORTED_MODULE_5__["TlnExtManuscript"]
});
this.dataHandler.addHandler('manuscriptDescription', {
'handler': _datatypes_manuscript__WEBPACK_IMPORTED_MODULE_5__["ManuscriptDescription"]
});
this.dataHandler.addHandler('earlierDescriptions', {
'handler': _datatypes_manuscript__WEBPACK_IMPORTED_MODULE_5__["ManuscriptEarlierDescription"]
});
this.dataHandler.addHandler('pages', {
'handler': _datatypes_page__WEBPACK_IMPORTED_MODULE_6__["PageStub"]
});
this.dataHandler.addHandler('reconstructedKonvolut', {
'handler': _datatypes_manuscript__WEBPACK_IMPORTED_MODULE_5__["ReconstructedKonvolut"]
});
this.dataHandler.setQueryService(this.tlnQueryService);
_get(_getPrototypeOf(TlnManuscriptViewComponent.prototype), "ngOnInit", this).call(this);
}
}, {
key: "readParams",
value: function readParams(params) {
var old_manuscript_unity = this.current_manuscript_unity;
_get(_getPrototypeOf(TlnManuscriptViewComponent.prototype), "readParams", this).call(this, params);
if (this.dataHandler.ready) {
if (this.current_manuscript_unity != null && this.current_manuscript_unity != old_manuscript_unity) {
this.dataHandler.resetData('manuscript_content');
this.dataHandler.getData('manuscript_content', this.current_manuscript_unity);
}
}
}
}, {
key: "openInViewer",
value: function openInViewer(pageIri, launch) {
this.current_page_iri = pageIri;
this.currentRoute = _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_VIEWER_ROUTE"];
this.fullscreen = true;
this.updateParams(launch);
}
}]);
return TlnManuscriptViewComponent;
}(_route_updater__WEBPACK_IMPORTED_MODULE_7__["RouteUpdater"]);
TlnManuscriptViewComponent.ctorParameters = function () {
return [{
type: _services__WEBPACK_IMPORTED_MODULE_8__["TlnQueryService"]
}, {
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"]
}, {
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"]
}];
};
TlnManuscriptViewComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'tln-manuscript-view',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./tln-manuscript-view.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./tln-manuscript-view.component.css */
"./src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.css"))["default"]]
})], TlnManuscriptViewComponent);
/***/
},
/***/
"./src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.scss":
/*!***********************************************************************************!*\
!*** ./src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.scss ***!
\***********************************************************************************/
/*! exports provided: default */
/***/
function srcAppTlnEditionTlnNavigationElementsOpenInViewerComponentScss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = ".icon-button {\n width: 15px;\n margin-left: 3px;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL3Rsbi1lZGl0aW9uL3Rsbi1uYXZpZ2F0aW9uLWVsZW1lbnRzL29wZW4taW4tdmlld2VyLmNvbXBvbmVudC5zY3NzIiwiYXBwL3Rsbi1lZGl0aW9uL3Rsbi1uYXZpZ2F0aW9uLWVsZW1lbnRzL29wZW4taW4tdmlld2VyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0csV0FBQTtFQUNBLGdCQUFBO0FDQ0giLCJmaWxlIjoiYXBwL3Rsbi1lZGl0aW9uL3Rsbi1uYXZpZ2F0aW9uLWVsZW1lbnRzL29wZW4taW4tdmlld2VyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmljb24tYnV0dG9uIHtcbiAgIHdpZHRoOiAxNXB4OyBcbiAgIG1hcmdpbi1sZWZ0OiAzcHg7XG59XG4iLCIuaWNvbi1idXR0b24ge1xuICB3aWR0aDogMTVweDtcbiAgbWFyZ2luLWxlZnQ6IDNweDtcbn0iXX0= */";
+ __webpack_exports__["default"] = ".icon-button {\n width: 15px;\n margin-left: 3px;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9zcmMvYXBwL3Rsbi1lZGl0aW9uL3Rsbi1uYXZpZ2F0aW9uLWVsZW1lbnRzL29wZW4taW4tdmlld2VyLmNvbXBvbmVudC5zY3NzIiwidGxuLWVkaXRpb24vdGxuLW5hdmlnYXRpb24tZWxlbWVudHMvb3Blbi1pbi12aWV3ZXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRyxXQUFBO0VBQ0EsZ0JBQUE7QUNDSCIsImZpbGUiOiJ0bG4tZWRpdGlvbi90bG4tbmF2aWdhdGlvbi1lbGVtZW50cy9vcGVuLWluLXZpZXdlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5pY29uLWJ1dHRvbiB7XG4gICB3aWR0aDogMTVweDsgXG4gICBtYXJnaW4tbGVmdDogM3B4O1xufVxuIiwiLmljb24tYnV0dG9uIHtcbiAgd2lkdGg6IDE1cHg7XG4gIG1hcmdpbi1sZWZ0OiAzcHg7XG59Il19 */";
/***/
},
/***/
"./src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.ts":
/*!*********************************************************************************!*\
!*** ./src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.ts ***!
\*********************************************************************************/
/*! exports provided: OpenInViewerComponent */
/***/
function srcAppTlnEditionTlnNavigationElementsOpenInViewerComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "OpenInViewerComponent", function () {
return OpenInViewerComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @angular/router */
"./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */
var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ../constants */
"./src/app/tln-edition/constants.ts");
/* harmony import */
var _route_updater__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! ../route-updater */
"./src/app/tln-edition/route-updater.ts");
var OpenInViewerComponent = /*#__PURE__*/function (_route_updater__WEBPA7) {
_inherits(OpenInViewerComponent, _route_updater__WEBPA7);
var _super46 = _createSuper(OpenInViewerComponent);
function OpenInViewerComponent(router, activatedRoute) {
var _this79;
_classCallCheck(this, OpenInViewerComponent);
_this79 = _super46.call(this, router, activatedRoute);
_this79.router = router;
_this79.activatedRoute = activatedRoute;
_this79.launch = false;
_this79.currentRoute = _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_VIEWER_ROUTE"];
_this79.mapping = {
current_iri: {
param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_PAGE_PARAM"],
type: "string"
},
current_manuscript_unity: {
param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_MANUSCRIPT_PARAM"],
type: "string"
}
};
return _this79;
}
_createClass(OpenInViewerComponent, [{
key: "ngOnInit",
value: function ngOnInit() {
_get(_getPrototypeOf(OpenInViewerComponent.prototype), "ngOnInit", this).call(this);
this.page = {
id: this.routerInformation.page,
number: this.routerInformation.number,
title: this.routerInformation.title
};
this.launch = this.routerInformation.launchExternally != undefined && this.routerInformation.launchExternally != null && this.routerInformation.launchExternally;
}
}, {
key: "openInViewer",
value: function openInViewer() {
if (this.routerInformation != undefined && this.routerInformation != null) {
this.current_iri = this.routerInformation.page;
if (this.routerInformation.manuscript != undefined && this.routerInformation != null) {
this.current_manuscript_unity = this.routerInformation.manuscript;
}
this.updateParams(this.launch);
}
}
}]);
return OpenInViewerComponent;
}(_route_updater__WEBPACK_IMPORTED_MODULE_4__["RouteUpdater"]);
OpenInViewerComponent.ctorParameters = function () {
return [{
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"]
}, {
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"]
}];
};
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], OpenInViewerComponent.prototype, "routerInformation", void 0);
OpenInViewerComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'open-in-viewer',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./open-in-viewer.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./open-in-viewer.component.scss */
"./src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.scss"))["default"]]
})], OpenInViewerComponent);
/***/
},
/***/
"./src/app/tln-edition/tln-navigation-elements/search.component.css":
/*!**************************************************************************!*\
!*** ./src/app/tln-edition/tln-navigation-elements/search.component.css ***!
\**************************************************************************/
/*! exports provided: default */
/***/
function srcAppTlnEditionTlnNavigationElementsSearchComponentCss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = ".search {\n margin-left: 8px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tbmF2aWdhdGlvbi1lbGVtZW50cy9zZWFyY2guY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLGdCQUFnQjtBQUNuQiIsImZpbGUiOiJhcHAvdGxuLWVkaXRpb24vdGxuLW5hdmlnYXRpb24tZWxlbWVudHMvc2VhcmNoLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc2VhcmNoIHtcbiAgIG1hcmdpbi1sZWZ0OiA4cHg7XG59XG4iXX0= */";
+ __webpack_exports__["default"] = ".search {\n margin-left: 8px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1uYXZpZ2F0aW9uLWVsZW1lbnRzL3NlYXJjaC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0dBQ0csZ0JBQWdCO0FBQ25CIiwiZmlsZSI6InRsbi1lZGl0aW9uL3Rsbi1uYXZpZ2F0aW9uLWVsZW1lbnRzL3NlYXJjaC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnNlYXJjaCB7XG4gICBtYXJnaW4tbGVmdDogOHB4O1xufVxuIl19 */";
/***/
},
/***/
"./src/app/tln-edition/tln-navigation-elements/search.component.ts":
/*!*************************************************************************!*\
!*** ./src/app/tln-edition/tln-navigation-elements/search.component.ts ***!
\*************************************************************************/
/*! exports provided: SearchComponent */
/***/
function srcAppTlnEditionTlnNavigationElementsSearchComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "SearchComponent", function () {
return SearchComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @angular/router */
"./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */
var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ../constants */
"./src/app/tln-edition/constants.ts");
/* harmony import */
var _route_updater__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! ../route-updater */
"./src/app/tln-edition/route-updater.ts");
var SearchComponent = /*#__PURE__*/function (_route_updater__WEBPA8) {
_inherits(SearchComponent, _route_updater__WEBPA8);
var _super47 = _createSuper(SearchComponent);
function SearchComponent(router, activatedRoute) {
var _this80;
_classCallCheck(this, SearchComponent);
_this80 = _super47.call(this, router, activatedRoute);
_this80.router = router;
_this80.activatedRoute = activatedRoute;
_this80.mapping = {
findText: {
param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_FIND_PARAM"],
type: "string"
}
};
return _this80;
}
_createClass(SearchComponent, [{
key: "openFulltextSearch",
value: function openFulltextSearch() {
this.currentRoute = _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_SEARCH_ROUTE"];
this.updateParams();
}
}, {
key: "clearFindText",
value: function clearFindText() {
this.findText = '';
this.updateParams();
}
}]);
return SearchComponent;
}(_route_updater__WEBPACK_IMPORTED_MODULE_4__["RouteUpdater"]);
SearchComponent.ctorParameters = function () {
return [{
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"]
}, {
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"]
}];
};
SearchComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'search',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./search.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-navigation-elements/search.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./search.component.css */
"./src/app/tln-edition/tln-navigation-elements/search.component.css"))["default"]]
})], SearchComponent);
/***/
},
/***/
"./src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.css":
/*!*************************************************************************************!*\
!*** ./src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.css ***!
\*************************************************************************************/
/*! exports provided: default */
/***/
function srcAppTlnEditionTlnNavigationElementsToggleNavigationComponentCss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = "\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhcHAvdGxuLWVkaXRpb24vdGxuLW5hdmlnYXRpb24tZWxlbWVudHMvdG9nZ2xlLW5hdmlnYXRpb24uY29tcG9uZW50LmNzcyJ9 */";
+ __webpack_exports__["default"] = "\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ0bG4tZWRpdGlvbi90bG4tbmF2aWdhdGlvbi1lbGVtZW50cy90b2dnbGUtbmF2aWdhdGlvbi5jb21wb25lbnQuY3NzIn0= */";
/***/
},
/***/
"./src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.ts":
/*!************************************************************************************!*\
!*** ./src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.ts ***!
\************************************************************************************/
/*! exports provided: ToggleNavigationComponent */
/***/
function srcAppTlnEditionTlnNavigationElementsToggleNavigationComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "ToggleNavigationComponent", function () {
return ToggleNavigationComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @angular/router */
"./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */
var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ../constants */
"./src/app/tln-edition/constants.ts");
/* harmony import */
var _route_updater__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! ../route-updater */
"./src/app/tln-edition/route-updater.ts");
var ToggleNavigationComponent = /*#__PURE__*/function (_route_updater__WEBPA9) {
_inherits(ToggleNavigationComponent, _route_updater__WEBPA9);
var _super48 = _createSuper(ToggleNavigationComponent);
function ToggleNavigationComponent(router, activatedRoute) {
var _this81;
_classCallCheck(this, ToggleNavigationComponent);
_this81 = _super48.call(this, router, activatedRoute);
_this81.router = router;
_this81.activatedRoute = activatedRoute;
_this81.fullscreen = false;
_this81.navBarOpenState = false;
_this81.mapping = {
navBarOpenState: {
param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_NAV_BAR_OPEN_STATE_PARAM"],
type: "boolean"
},
fullscreen: {
param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_FULLSCREEN_PARAM"],
type: "boolean"
}
};
return _this81;
}
_createClass(ToggleNavigationComponent, [{
key: "toggleFullscreen",
value: function toggleFullscreen() {
this.fullscreen = !this.fullscreen;
this.updateParams();
}
}, {
key: "toggleNavDrawer",
value: function toggleNavDrawer() {
this.navBarOpenState = !this.navBarOpenState;
this.updateParams();
}
}]);
return ToggleNavigationComponent;
}(_route_updater__WEBPACK_IMPORTED_MODULE_4__["RouteUpdater"]);
ToggleNavigationComponent.ctorParameters = function () {
return [{
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"]
}, {
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"]
}];
};
ToggleNavigationComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'toggle-navigation',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./toggle-navigation.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./toggle-navigation.component.css */
"./src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.css"))["default"]]
})], ToggleNavigationComponent);
/***/
},
/***/
"./src/app/tln-edition/tln-navigation-elements/zoom.component.css":
/*!************************************************************************!*\
!*** ./src/app/tln-edition/tln-navigation-elements/zoom.component.css ***!
\************************************************************************/
/*! exports provided: default */
/***/
function srcAppTlnEditionTlnNavigationElementsZoomComponentCss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = ".zoom {\n max-width: 20px;\n}\n.zoom-in {\n cursor: zoom-in;\n}\n.zoom-out {\n cursor: zoom-out;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tbmF2aWdhdGlvbi1lbGVtZW50cy96b29tLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxlQUFlO0FBQ2xCO0FBQ0E7R0FDRyxlQUFlO0FBQ2xCO0FBQ0E7R0FDRyxnQkFBZ0I7QUFDbkIiLCJmaWxlIjoiYXBwL3Rsbi1lZGl0aW9uL3Rsbi1uYXZpZ2F0aW9uLWVsZW1lbnRzL3pvb20uY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi56b29tIHtcbiAgIG1heC13aWR0aDogMjBweDtcbn1cbi56b29tLWluIHtcbiAgIGN1cnNvcjogem9vbS1pbjtcbn1cbi56b29tLW91dCB7XG4gICBjdXJzb3I6IHpvb20tb3V0O1xufVxuIl19 */";
+ __webpack_exports__["default"] = ".zoom {\n max-width: 20px;\n}\n.zoom-in {\n cursor: zoom-in;\n}\n.zoom-out {\n cursor: zoom-out;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi1uYXZpZ2F0aW9uLWVsZW1lbnRzL3pvb20uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLGVBQWU7QUFDbEI7QUFDQTtHQUNHLGVBQWU7QUFDbEI7QUFDQTtHQUNHLGdCQUFnQjtBQUNuQiIsImZpbGUiOiJ0bG4tZWRpdGlvbi90bG4tbmF2aWdhdGlvbi1lbGVtZW50cy96b29tLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuem9vbSB7XG4gICBtYXgtd2lkdGg6IDIwcHg7XG59XG4uem9vbS1pbiB7XG4gICBjdXJzb3I6IHpvb20taW47XG59XG4uem9vbS1vdXQge1xuICAgY3Vyc29yOiB6b29tLW91dDtcbn1cbiJdfQ== */";
/***/
},
/***/
"./src/app/tln-edition/tln-navigation-elements/zoom.component.ts":
/*!***********************************************************************!*\
!*** ./src/app/tln-edition/tln-navigation-elements/zoom.component.ts ***!
\***********************************************************************/
/*! exports provided: ZoomComponent */
/***/
function srcAppTlnEditionTlnNavigationElementsZoomComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "ZoomComponent", function () {
return ZoomComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @angular/router */
"./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */
var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ../constants */
"./src/app/tln-edition/constants.ts");
/* harmony import */
var _route_updater__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! ../route-updater */
"./src/app/tln-edition/route-updater.ts");
var ZoomComponent = /*#__PURE__*/function (_route_updater__WEBPA10) {
_inherits(ZoomComponent, _route_updater__WEBPA10);
var _super49 = _createSuper(ZoomComponent);
function ZoomComponent(router, activatedRoute) {
var _this82;
_classCallCheck(this, ZoomComponent);
_this82 = _super49.call(this, router, activatedRoute);
_this82.router = router;
_this82.activatedRoute = activatedRoute;
_this82.increment = 0.25;
_this82.decrement = _this82.increment * -1;
_this82.zoomFactor = 1;
_this82.mapping = {
zoomFactor: {
param: _constants__WEBPACK_IMPORTED_MODULE_3__["TLN_ZOOM_PARAM"],
type: "number"
}
};
return _this82;
}
_createClass(ZoomComponent, [{
key: "setZoomFactor",
value: function setZoomFactor(newZoomFactor) {
if (newZoomFactor > 0) {
this.zoomFactor = Math.round(newZoomFactor * 100) / 100;
} else {
this.zoomFactor = this.zoomFactor / 2;
}
this.updateParams();
}
}]);
return ZoomComponent;
}(_route_updater__WEBPACK_IMPORTED_MODULE_4__["RouteUpdater"]);
ZoomComponent.ctorParameters = function () {
return [{
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"]
}, {
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"]
}];
};
ZoomComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'zoom',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./zoom.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-navigation-elements/zoom.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./zoom.component.css */
"./src/app/tln-edition/tln-navigation-elements/zoom.component.css"))["default"]]
})], ZoomComponent);
/***/
},
/***/
"./src/app/tln-edition/tln-navigation-elements/zoom.pipe.ts":
/*!******************************************************************!*\
!*** ./src/app/tln-edition/tln-navigation-elements/zoom.pipe.ts ***!
\******************************************************************/
/*! exports provided: ZoomPipe */
/***/
function srcAppTlnEditionTlnNavigationElementsZoomPipeTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "ZoomPipe", function () {
return ZoomPipe;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
var ZoomPipe = /*#__PURE__*/function () {
function ZoomPipe() {
_classCallCheck(this, ZoomPipe);
}
_createClass(ZoomPipe, [{
key: "transform",
value: function transform(zoom) {
return zoom.zoomFactor + zoom.changeValue < 0 ? Math.round(zoom.zoomFactor * 50) + '%' : Math.round((zoom.zoomFactor + zoom.changeValue) * 100) + '%';
}
}]);
return ZoomPipe;
}();
ZoomPipe = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Pipe"])({
name: 'zoomTitle'
})], ZoomPipe);
/***/
},
/***/
"./src/app/tln-edition/tln-page-view.component.css":
/*!*********************************************************!*\
!*** ./src/app/tln-edition/tln-page-view.component.css ***!
\*********************************************************/
/*! exports provided: default */
/***/
function srcAppTlnEditionTlnPageViewComponentCss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = "\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhcHAvdGxuLWVkaXRpb24vdGxuLXBhZ2Utdmlldy5jb21wb25lbnQuY3NzIn0= */";
+ __webpack_exports__["default"] = "\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ0bG4tZWRpdGlvbi90bG4tcGFnZS12aWV3LmNvbXBvbmVudC5jc3MifQ== */";
/***/
},
/***/
"./src/app/tln-edition/tln-page-view.component.ts":
/*!********************************************************!*\
!*** ./src/app/tln-edition/tln-page-view.component.ts ***!
\********************************************************/
/*! exports provided: TlnPageViewComponent */
/***/
function srcAppTlnEditionTlnPageViewComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnPageViewComponent", function () {
return TlnPageViewComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @angular/router */
"./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */
var _tln_query_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ./tln-query.service */
"./src/app/tln-edition/tln-query.service.ts");
/* harmony import */
var _datatypes_faksimile_image__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! ./datatypes/faksimile_image */
"./src/app/tln-edition/datatypes/faksimile_image.ts");
/* harmony import */
var _datatypes_svg_image__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
/*! ./datatypes/svg_image */
"./src/app/tln-edition/datatypes/svg_image.ts");
/* harmony import */
var _datatypes_line__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
/*! ./datatypes/line */
"./src/app/tln-edition/datatypes/line.ts");
/* harmony import */
var _datatypes_word__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(
/*! ./datatypes/word */
"./src/app/tln-edition/datatypes/word.ts");
/* harmony import */
var _datatypes_foreign_text__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(
/*! ./datatypes/foreign_text */
"./src/app/tln-edition/datatypes/foreign_text.ts");
/* harmony import */
var _services__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(
/*! ./services */
"./src/app/tln-edition/services.ts");
/* harmony import */
var _data_handler__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(
/*! ./data_handler */
"./src/app/tln-edition/data_handler.ts");
/* harmony import */
var _constants__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(
/*! ./constants */
"./src/app/tln-edition/constants.ts");
/* harmony import */
var _route_reader__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(
/*! ./route-reader */
"./src/app/tln-edition/route-reader.ts");
/**
* Given a page IRI, this component will request all relevant information and
* display the data with {@link /components/PageViewComponent.html|PageViewComponent}.
**/
var TlnPageViewComponent = /*#__PURE__*/function (_route_reader__WEBPAC2) {
_inherits(TlnPageViewComponent, _route_reader__WEBPAC2);
var _super50 = _createSuper(TlnPageViewComponent);
/**
* @param localQueryService internal query service that will be used if no external queryService is passed
* to input.
**/
function TlnPageViewComponent(localQueryService, router, activatedRoute) {
var _this83;
_classCallCheck(this, TlnPageViewComponent);
_this83 = _super50.call(this, router, activatedRoute);
_this83.localQueryService = localQueryService;
_this83.router = router;
_this83.activatedRoute = activatedRoute;
_this83.configuration = {
'*': {
'useExtendedTooltip': true
}
};
/**
* whether or not to ignore the params
**/
_this83.ignoreParams = false;
/**
* global zoom factor.
**/
_this83.zoomFactor = 1;
/**
* identifiers of selected words that should be highlighted.
**/
_this83.selectedWords = [];
/**
* identifiers of selected lines that should be highlighted.
**/
_this83.selectedLines = [];
/**
* the (initial) maximum height of the image.
**/
_this83.max_height = -1;
/**
* the (initial) maximum width of the image, if both height and width are specified prefer width.
**/
_this83.max_width = -1;
_this83.dontShowReference = false;
/**
* should primary Url be used for image. Use secondary Url if false.
**/
_this83.preferPrimaryUrl = true;
/**
* selected view option, i.e. one of the following
* {@link /miscellaneous/enumerations.html#VIEW_OPTIONS|VIEW_OPTIONS}.
* */
_this83.selectedViewOption = _constants__WEBPACK_IMPORTED_MODULE_11__["DEFAULT_VIEW_OPTION"];
/**
* the data handler of this component that retrieves
* data and instantiates it according to their proper
* datatypes.
**/
_this83.dataHandler = new _data_handler__WEBPACK_IMPORTED_MODULE_10__["DataHandler"](_assertThisInitialized(_this83));
/**
* whether or not to show page view in fullscreen mode.
**/
_this83.fullscreen = false;
/**
* texts written by foreign hand
**/
_this83.foreignTexts = [];
/**
* the Array of lines of the first image that will be displayed by {@link /components/MarginFieldComponent.html|MarginFieldComponent}.
**/
_this83.lines = [];
/**
* texts written by foreign hand
**/
_this83.second_foreignTexts = [];
/**
* the Array of lines of the second image that will be displayed by {@link /components/MarginFieldComponent.html|MarginFieldComponent}.
**/
_this83.second_lines = [];
/**
* the Array of words of the second image that will be displayed by {@link /components/TextFieldComponent.html|TextFieldComponent}.
**/
_this83.second_words = [];
/**
* the Array of words of the first image that will be displayed by {@link /components/TextFieldComponent.html|TextFieldComponent}.
**/
_this83.words = [];
_this83.multiInstanceMode = false;
_this83.mapping = {
findText: {
param: _constants__WEBPACK_IMPORTED_MODULE_11__["TLN_FIND_PARAM"],
type: "string"
},
fullscreen: {
param: _constants__WEBPACK_IMPORTED_MODULE_11__["TLN_FULLSCREEN_PARAM"],
type: "boolean"
},
selectedViewOption: {
param: _constants__WEBPACK_IMPORTED_MODULE_11__["TLN_VIEW_OPTION_PARAM"],
type: "string"
},
selectedLines: {
param: _constants__WEBPACK_IMPORTED_MODULE_11__["TLN_SELECTED_LINES_PARAM"],
type: "string"
},
current_iri: {
param: _constants__WEBPACK_IMPORTED_MODULE_11__["TLN_PAGE_PARAM"],
type: "string"
},
zoomFactor: {
param: _constants__WEBPACK_IMPORTED_MODULE_11__["TLN_ZOOM_PARAM"],
type: "number"
}
};
return _this83;
}
_createClass(TlnPageViewComponent, [{
key: "ngOnInit",
value: function ngOnInit() {
if (this.multiInstanceMode) {
this.mapping['current_iri']['ignore'] = this.current_iri != null;
this.mapping['selectedViewOption']['ignore'] = true;
this.dontShowReference = true; //this.configuration['*']['useExtendedTooltip'] = false;
}
_get(_getPrototypeOf(TlnPageViewComponent.prototype), "ngOnInit", this).call(this);
var tlnQueryService = this.queryService != null ? this.queryService : this.localQueryService;
var queryConfiguration = {
'*': {
'tlnQueryService': tlnQueryService
}
};
this.configuration = _services__WEBPACK_IMPORTED_MODULE_9__["ConfigurableComponent"].updateConfiguration(this.configuration, queryConfiguration);
this.dataHandler.addHandler('image', {
'handler': _datatypes_svg_image__WEBPACK_IMPORTED_MODULE_5__["SVGImage"]
});
this.dataHandler.addHandler('words', {
'handler': _datatypes_word__WEBPACK_IMPORTED_MODULE_7__["TlnWord"]
});
this.dataHandler.addHandler('foreignTexts', {
'handler': _datatypes_foreign_text__WEBPACK_IMPORTED_MODULE_8__["TlnTextByForeignHand"]
});
this.dataHandler.addHandler('lines', {
'handler': _datatypes_line__WEBPACK_IMPORTED_MODULE_6__["TlnLine"]
});
this.dataHandler.addHandler('second_image', {
'handler': _datatypes_faksimile_image__WEBPACK_IMPORTED_MODULE_4__["FaksimileImage"]
});
this.dataHandler.addHandler('second_words', {
'handler': _datatypes_word__WEBPACK_IMPORTED_MODULE_7__["FaksimileWord"]
});
this.dataHandler.addHandler('second_lines', {
'handler': _datatypes_line__WEBPACK_IMPORTED_MODULE_6__["FaksimileLine"]
});
this.dataHandler.addHandler('second_foreignTexts', {
'handler': _datatypes_foreign_text__WEBPACK_IMPORTED_MODULE_8__["FaksimileTextByForeignHand"]
});
this.dataHandler.addHandler('page_content', ['image', 'lines', 'words', 'foreignTexts']);
this.dataHandler.addHandler('second_page_content', ['second_image', 'second_lines', 'second_words', 'second_foreignTexts']);
this.dataHandler.setQueryService(tlnQueryService);
this.updatePageData();
}
}, {
key: "ngOnChanges",
value: function ngOnChanges(change) {
if (this.dataHandler.ready && change.current_iri != undefined && change.current_iri != null && !change.current_iri.firstChange || change.selectedViewOption != undefined && change.selectedViewOption != null && !change.selectedViewOption.firstChange) {
this.updatePageData();
}
}
}, {
key: "readParams",
value: function readParams(params) {
var old_page_iri = this.current_iri;
var old_selectedViewOption = this.selectedViewOption;
var old_fullscreen = this.fullscreen;
_get(_getPrototypeOf(TlnPageViewComponent.prototype), "readParams", this).call(this, params);
if (this.dataHandler.ready && (old_page_iri != this.current_iri || old_selectedViewOption != this.selectedViewOption)) {
this.updatePageData();
}
if (old_fullscreen != this.fullscreen && !this.multiInstanceMode) {//this.dontShowReference = !this.fullscreen;
//this.configuration['*']['useExtendedTooltip'] = this.fullscreen;
}
}
/**
* This function updates the page data by setting the handlers for the current
* {@link #selectedViewOption|selectedViewOption} and by retrieving the data.
**/
}, {
key: "updatePageData",
value: function updatePageData() {
this.dataHandler['image']['handler'] = this.selectedViewOption != _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].FAKSIMILE && this.selectedViewOption != _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].SYNOPSIS_B ? _datatypes_svg_image__WEBPACK_IMPORTED_MODULE_5__["SVGImage"] : _datatypes_faksimile_image__WEBPACK_IMPORTED_MODULE_4__["FaksimileImage"];
this.dataHandler['words']['handler'] = this.selectedViewOption != _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].FAKSIMILE && this.selectedViewOption != _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].SYNOPSIS_B ? _datatypes_word__WEBPACK_IMPORTED_MODULE_7__["TlnWord"] : _datatypes_word__WEBPACK_IMPORTED_MODULE_7__["FaksimileWord"];
this.dataHandler['lines']['handler'] = this.selectedViewOption != _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].FAKSIMILE && this.selectedViewOption != _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].SYNOPSIS_B ? _datatypes_line__WEBPACK_IMPORTED_MODULE_6__["TlnLine"] : _datatypes_line__WEBPACK_IMPORTED_MODULE_6__["FaksimileLine"];
this.dataHandler['foreignTexts']['handler'] = this.selectedViewOption != _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].FAKSIMILE && this.selectedViewOption != _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].SYNOPSIS_B ? _datatypes_foreign_text__WEBPACK_IMPORTED_MODULE_8__["TlnTextByForeignHand"] : _datatypes_foreign_text__WEBPACK_IMPORTED_MODULE_8__["FaksimileTextByForeignHand"];
if (this.dataHandler['page_content'][this.dataHandler['page_content'].length - 1] == 'second_page_content') {
this.dataHandler['page_content'].pop();
this.second_image = null;
this.second_foreignTexts = [];
this.second_words = [];
this.second_lines = [];
}
if (this.selectedViewOption == _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].SYNOPSIS || this.selectedViewOption == _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].SYNOPSIS_B) {
this.dataHandler['second_image']['handler'] = this.selectedViewOption == _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].SYNOPSIS_B ? _datatypes_svg_image__WEBPACK_IMPORTED_MODULE_5__["SVGImage"] : _datatypes_faksimile_image__WEBPACK_IMPORTED_MODULE_4__["FaksimileImage"];
this.dataHandler['second_words']['handler'] = this.selectedViewOption == _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].SYNOPSIS_B ? _datatypes_word__WEBPACK_IMPORTED_MODULE_7__["TlnWord"] : _datatypes_word__WEBPACK_IMPORTED_MODULE_7__["FaksimileWord"];
this.dataHandler['second_lines']['handler'] = this.selectedViewOption == _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].SYNOPSIS_B ? _datatypes_line__WEBPACK_IMPORTED_MODULE_6__["TlnLine"] : _datatypes_line__WEBPACK_IMPORTED_MODULE_6__["FaksimileLine"];
this.dataHandler['second_foreignTexts']['handler'] = this.selectedViewOption == _constants__WEBPACK_IMPORTED_MODULE_11__["VIEW_OPTIONS"].SYNOPSIS_B ? _datatypes_foreign_text__WEBPACK_IMPORTED_MODULE_8__["TlnTextByForeignHand"] : _datatypes_foreign_text__WEBPACK_IMPORTED_MODULE_8__["FaksimileTextByForeignHand"];
this.dataHandler['page_content'].push('second_page_content');
}
if (this.current_iri != null) {
this.dataHandler.resetData('page_content');
if (this.startLine != null && this.startLine != undefined) {
this.dataHandler['image']['handler'] = _datatypes_svg_image__WEBPACK_IMPORTED_MODULE_5__["SVGImageClip"];
var endLine = this.endLine != null && this.endLine != undefined ? this.endLine : this.startLine;
var complex = {
idIndex: 0,
mapping: [{
key: 'page',
iri: this.current_iri
}, {
key: 'startLine',
iri: this.startLine
}, {
key: 'endLine',
iri: endLine
}]
};
this.dataHandler['page_content'] = this.dataHandler['page_content'].filter(function (key) {
return key != 'image';
});
this.dataHandler.getData4Keys('image', complex);
} else if (this.dataHandler['page_content'].indexOf('image') == -1) {
this.dataHandler['page_content'].splice(0, 0, 'image');
}
this.dataHandler.getData('page_content', this.current_iri);
}
}
}]);
return TlnPageViewComponent;
}(_route_reader__WEBPACK_IMPORTED_MODULE_12__["RouteReader"]);
TlnPageViewComponent.ctorParameters = function () {
return [{
type: _tln_query_service__WEBPACK_IMPORTED_MODULE_3__["TlnQueryService"]
}, {
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"]
}, {
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"]
}];
};
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TlnPageViewComponent.prototype, "configuration", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('page')], TlnPageViewComponent.prototype, "current_iri", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TlnPageViewComponent.prototype, "findText", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TlnPageViewComponent.prototype, "queryService", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TlnPageViewComponent.prototype, "zoomFactor", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TlnPageViewComponent.prototype, "selectedWords", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TlnPageViewComponent.prototype, "selectedLines", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TlnPageViewComponent.prototype, "max_height", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TlnPageViewComponent.prototype, "max_width", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TlnPageViewComponent.prototype, "startLine", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TlnPageViewComponent.prototype, "endLine", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TlnPageViewComponent.prototype, "preferPrimaryUrl", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TlnPageViewComponent.prototype, "selectedViewOption", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('assignClass')], TlnPageViewComponent.prototype, "assignClass", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('assignStyle')], TlnPageViewComponent.prototype, "assignStyle", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TlnPageViewComponent.prototype, "multiInstanceMode", void 0);
TlnPageViewComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'tln-page-view',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./tln-page-view.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-page-view.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./tln-page-view.component.css */
"./src/app/tln-edition/tln-page-view.component.css"))["default"]]
})], TlnPageViewComponent);
/***/
},
/***/
"./src/app/tln-edition/tln-query.service.ts":
/*!**************************************************!*\
!*** ./src/app/tln-edition/tln-query.service.ts ***!
\**************************************************/
/*! exports provided: TlnQueryService */
/***/
function srcAppTlnEditionTlnQueryServiceTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnQueryService", function () {
return TlnQueryService;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _angular_common_http__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @angular/common/http */
"./node_modules/@angular/common/fesm2015/http.js");
/**
* This is the internal query service
* that communicates with the SPARQL-endpoint.
* */
var TlnQueryService = /*#__PURE__*/function () {
function TlnQueryService(http) {
_classCallCheck(this, TlnQueryService);
this.http = http; //baseUrl = 'http://localhost:3030/nietzsche/query';
this.baseUrl = 'https://nietzsche.fuseki.services.dasch.swiss/nietzsche';
this.reset_data = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
}
_createClass(TlnQueryService, [{
key: "resetData",
value: function resetData(key) {
this.reset_data.emit(key);
}
/**
* Gets the data from an endpoint via http post
*
* @param query: The query to run.
* @returns response
*/
}, {
key: "getData",
value: function getData(query) {
var httpOptions = {
headers: new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpHeaders"]({
'Content-Type': 'application/sparql-query',
'Accept': 'application/sparql-results+json; charset=UTF-8'
})
};
return this.http.post(this.baseUrl, query, httpOptions);
}
}]);
return TlnQueryService;
}();
TlnQueryService.ctorParameters = function () {
return [{
type: _angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpClient"]
}];
};
TlnQueryService = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"])()], TlnQueryService);
/***/
},
/***/
"./src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.css":
/*!***************************************************************************************!*\
!*** ./src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.css ***!
\***************************************************************************************/
/*! exports provided: default */
/***/
function srcAppTlnEditionTlnViewerNavigationTlnViewerNavigationComponentCss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = "#navi {\n width: 100%;\n height: 50px;\n margin: 0;\n padding: 0;\n white-space: nowrap;\n}\n.search {\n margin-left: 8px;\n }\n.zoom {\n max-width: 20px;\n}\n.zoom-in {\n cursor: zoom-in;\n}\n.zoom-out {\n cursor: zoom-out;\n}\n.mat-button.min-width {\n min-width: 120px;\n max-width: 120px;\n}\n.default-mouse {\n cursor: default;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90bG4tdmlld2VyLW5hdmlnYXRpb24vdGxuLXZpZXdlci1uYXZpZ2F0aW9uLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7R0FDRyxXQUFXO0dBQ1gsWUFBWTtHQUNaLFNBQVM7R0FDVCxVQUFVO0dBQ1YsbUJBQW1CO0FBQ3RCO0FBQ0E7R0FDRyxnQkFBZ0I7Q0FDbEI7QUFDRDtHQUNHLGVBQWU7QUFDbEI7QUFDQTtHQUNHLGVBQWU7QUFDbEI7QUFDQTtHQUNHLGdCQUFnQjtBQUNuQjtBQUNBO0dBQ0csZ0JBQWdCO0dBQ2hCLGdCQUFnQjtBQUNuQjtBQUNBO0dBQ0csZUFBZTtBQUNsQiIsImZpbGUiOiJhcHAvdGxuLWVkaXRpb24vdGxuLXZpZXdlci1uYXZpZ2F0aW9uL3Rsbi12aWV3ZXItbmF2aWdhdGlvbi5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI25hdmkge1xuICAgd2lkdGg6IDEwMCU7XG4gICBoZWlnaHQ6IDUwcHg7XG4gICBtYXJnaW46IDA7XG4gICBwYWRkaW5nOiAwO1xuICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5zZWFyY2gge1xuICAgbWFyZ2luLWxlZnQ6IDhweDtcbiB9XG4uem9vbSB7XG4gICBtYXgtd2lkdGg6IDIwcHg7XG59XG4uem9vbS1pbiB7XG4gICBjdXJzb3I6IHpvb20taW47XG59XG4uem9vbS1vdXQge1xuICAgY3Vyc29yOiB6b29tLW91dDtcbn1cbi5tYXQtYnV0dG9uLm1pbi13aWR0aCB7XG4gICBtaW4td2lkdGg6IDEyMHB4O1xuICAgbWF4LXdpZHRoOiAxMjBweDtcbn1cbi5kZWZhdWx0LW1vdXNlIHtcbiAgIGN1cnNvcjogZGVmYXVsdDtcbn1cbiJdfQ== */";
+ __webpack_exports__["default"] = "#navi {\n width: 100%;\n height: 50px;\n margin: 0;\n padding: 0;\n white-space: nowrap;\n}\n.search {\n margin-left: 8px;\n }\n.zoom {\n max-width: 20px;\n}\n.zoom-in {\n cursor: zoom-in;\n}\n.zoom-out {\n cursor: zoom-out;\n}\n.mat-button.min-width {\n min-width: 120px;\n max-width: 120px;\n}\n.default-mouse {\n cursor: default;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rsbi12aWV3ZXItbmF2aWdhdGlvbi90bG4tdmlld2VyLW5hdmlnYXRpb24uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtHQUNHLFdBQVc7R0FDWCxZQUFZO0dBQ1osU0FBUztHQUNULFVBQVU7R0FDVixtQkFBbUI7QUFDdEI7QUFDQTtHQUNHLGdCQUFnQjtDQUNsQjtBQUNEO0dBQ0csZUFBZTtBQUNsQjtBQUNBO0dBQ0csZUFBZTtBQUNsQjtBQUNBO0dBQ0csZ0JBQWdCO0FBQ25CO0FBQ0E7R0FDRyxnQkFBZ0I7R0FDaEIsZ0JBQWdCO0FBQ25CO0FBQ0E7R0FDRyxlQUFlO0FBQ2xCIiwiZmlsZSI6InRsbi1lZGl0aW9uL3Rsbi12aWV3ZXItbmF2aWdhdGlvbi90bG4tdmlld2VyLW5hdmlnYXRpb24uY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiNuYXZpIHtcbiAgIHdpZHRoOiAxMDAlO1xuICAgaGVpZ2h0OiA1MHB4O1xuICAgbWFyZ2luOiAwO1xuICAgcGFkZGluZzogMDtcbiAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uc2VhcmNoIHtcbiAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gfVxuLnpvb20ge1xuICAgbWF4LXdpZHRoOiAyMHB4O1xufVxuLnpvb20taW4ge1xuICAgY3Vyc29yOiB6b29tLWluO1xufVxuLnpvb20tb3V0IHtcbiAgIGN1cnNvcjogem9vbS1vdXQ7XG59XG4ubWF0LWJ1dHRvbi5taW4td2lkdGgge1xuICAgbWluLXdpZHRoOiAxMjBweDtcbiAgIG1heC13aWR0aDogMTIwcHg7XG59XG4uZGVmYXVsdC1tb3VzZSB7XG4gICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4iXX0= */";
/***/
},
/***/
"./src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.ts":
/*!**************************************************************************************!*\
!*** ./src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.ts ***!
\**************************************************************************************/
/*! exports provided: TlnViewerNavigation */
/***/
function srcAppTlnEditionTlnViewerNavigationTlnViewerNavigationComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "TlnViewerNavigation", function () {
return TlnViewerNavigation;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @angular/router */
"./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */
var _angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! @angular/material/bottom-sheet */
"./node_modules/@angular/material/esm2015/bottom-sheet.js");
/* harmony import */
var _datatypes_navigation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! ../datatypes/navigation */
"./src/app/tln-edition/datatypes/navigation.ts");
/* harmony import */
var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
/*! ../constants */
"./src/app/tln-edition/constants.ts");
/* harmony import */
var _datatypes_basic_datatype__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
/*! ../datatypes/basic_datatype */
"./src/app/tln-edition/datatypes/basic_datatype.ts");
/* harmony import */
var _datatypes_text_version__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(
/*! ../datatypes/text_version */
"./src/app/tln-edition/datatypes/text_version.ts");
/* harmony import */
var _route_updater__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(
/*! ../route-updater */
"./src/app/tln-edition/route-updater.ts");
/* harmony import */
var _data_handler__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(
/*! ../data_handler */
"./src/app/tln-edition/data_handler.ts");
/* harmony import */
var _services__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(
/*! ../services */
"./src/app/tln-edition/services.ts");
/* harmony import */
var _tln_information_tln_information_component__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(
/*! ../tln-information/tln-information.component */
"./src/app/tln-edition/tln-information/tln-information.component.ts");
var TlnViewerNavigation = /*#__PURE__*/function (_route_updater__WEBPA11) {
_inherits(TlnViewerNavigation, _route_updater__WEBPA11);
var _super51 = _createSuper(TlnViewerNavigation);
function TlnViewerNavigation(el, bottomSheet, pageViewService, localQueryService, router, activatedRoute) {
var _this84;
_classCallCheck(this, TlnViewerNavigation);
_this84 = _super51.call(this, router, activatedRoute);
_this84.bottomSheet = bottomSheet;
_this84.pageViewService = pageViewService;
_this84.localQueryService = localQueryService;
_this84.router = router;
_this84.activatedRoute = activatedRoute;
/**
* whether or not to show page view in fullscreen mode.
**/
_this84.fullscreen = false;
_this84.showArchivalManuscriptUnity = false;
_this84.dataHandler = new _data_handler__WEBPACK_IMPORTED_MODULE_9__["DataHandler"](_assertThisInitialized(_this84));
_this84.geneticOrders = [];
_this84.selectedLines = [];
_this84.increment = 0.333;
_this84.decrement = _this84.increment * -1;
_this84.currentRoute = _constants__WEBPACK_IMPORTED_MODULE_5__["TLN_VIEWER_ROUTE"];
_this84.mapping = {
findText: {
param: _constants__WEBPACK_IMPORTED_MODULE_5__["TLN_FIND_PARAM"],
type: "string"
},
current_iri: {
param: _constants__WEBPACK_IMPORTED_MODULE_5__["TLN_PAGE_PARAM"],
type: "string"
},
navBarOpenState: {
param: _constants__WEBPACK_IMPORTED_MODULE_5__["TLN_NAV_BAR_OPEN_STATE_PARAM"],
type: "boolean"
},
current_manuscript_iri: {
param: _constants__WEBPACK_IMPORTED_MODULE_5__["TLN_MANUSCRIPT_PARAM"],
type: "string"
},
fullscreen: {
param: _constants__WEBPACK_IMPORTED_MODULE_5__["TLN_FULLSCREEN_PARAM"],
type: "boolean"
},
selectedViewOption: {
param: _constants__WEBPACK_IMPORTED_MODULE_5__["TLN_VIEW_OPTION_PARAM"],
type: "string"
},
selectedLines: {
param: _constants__WEBPACK_IMPORTED_MODULE_5__["TLN_SELECTED_LINES_PARAM"],
type: "string"
}
};
_this84.selectedViewOption = _constants__WEBPACK_IMPORTED_MODULE_5__["DEFAULT_VIEW_OPTION"];
_this84.updating = false;
_this84.viewOptions = [_constants__WEBPACK_IMPORTED_MODULE_5__["VIEW_OPTIONS"].TRANSKRIPTION, _constants__WEBPACK_IMPORTED_MODULE_5__["VIEW_OPTIONS"].FAKSIMILE, _constants__WEBPACK_IMPORTED_MODULE_5__["VIEW_OPTIONS"].SYNOPSIS, _constants__WEBPACK_IMPORTED_MODULE_5__["VIEW_OPTIONS"].SYNOPSIS_B];
return _this84;
}
_createClass(TlnViewerNavigation, [{
key: "ngOnInit",
value: function ngOnInit() {
var _this85 = this;
var tlnQueryService = this.queryService != null ? this.queryService : this.localQueryService;
this.dataHandler.addHandler('manuscript_unity', {
'handler': _datatypes_navigation__WEBPACK_IMPORTED_MODULE_4__["TlnManuscriptUnity"],
'next_key': 'navigation_page'
});
this.dataHandler.addHandler('navigation_page', ['current_page', 'geneticOrders']);
this.dataHandler.addHandler('current_page', {
'handler': _datatypes_navigation__WEBPACK_IMPORTED_MODULE_4__["TlnNavigationPage"]
});
this.dataHandler.addHandler('geneticOrders', {
'handler': _datatypes_text_version__WEBPACK_IMPORTED_MODULE_7__["TlnTextGeneticOrder"]
});
this.dataHandler.setQueryService(tlnQueryService);
this.dataHandler.start_processing.subscribe(function (started) {
_this85.updating = true;
});
this.dataHandler.processing_finished.subscribe(function (finished) {
_this85.updating = false;
});
_get(_getPrototypeOf(TlnViewerNavigation.prototype), "ngOnInit", this).call(this);
this.pageViewService.reference.subscribe(function (newReference) {
_this85.updatePageToReference(newReference);
});
this.pageViewService.onClickedLine.subscribe(function (clickedLine) {
var index = _this85.selectedLines.indexOf(clickedLine.id);
if (index > -1) {
_this85.selectedLines.splice(index, 1);
} else {
_this85.selectedLines.push(clickedLine.id);
}
_this85.updateParams();
});
}
}, {
key: "clearFindText",
value: function clearFindText() {
this.findText = '';
this.updateParams();
}
}, {
key: "getPageTitle",
value: function getPageTitle(page, numPages) {
if (page == null) {
return '';
}
var indexPrefix = numPages != null ? page.index + '/' + numPages : page.index;
return indexPrefix + ': ' + page.title + ' ' + page.number;
}
}, {
key: "readParams",
value: function readParams(params) {
_get(_getPrototypeOf(TlnViewerNavigation.prototype), "readParams", this).call(this, params);
if (this.dataHandler.ready && (this.current_page == null || this.current_page.id != this.current_iri)) {
this.dataHandler.resetData('navigation_page');
if (this.current_manuscript_iri != null) {
//this.dataHandler.debug = true;
this.dataHandler.conditionalAddHandler(_datatypes_basic_datatype__WEBPACK_IMPORTED_MODULE_6__["IsReconstructedKonvolut"].getQuery(this.current_manuscript_iri), 'current_page', {
handler: _datatypes_navigation__WEBPACK_IMPORTED_MODULE_4__["TlnNavigationPage"]
}, {
handler: _datatypes_navigation__WEBPACK_IMPORTED_MODULE_4__["TlnNavigationPage"]
});
this.dataHandler.getData('manuscript_unity', this.current_manuscript_iri, this.current_iri);
} else {
this.dataHandler.getData('current_page', this.current_iri);
}
}
}
}, {
key: "setCurrentIri",
value: function setCurrentIri(pageIri, manuscriptIir) {
this.dataHandler.stop_processing.emit(true);
this.current_iri = pageIri;
this.updateParams();
}
}, {
key: "showInformation",
value: function showInformation() {
var parentData = {
geneticOrders: this.geneticOrders,
page: this.current_page,
manuscript_iri: this.current_manuscript_iri,
parentActivatedRoute: this.activatedRoute.parent
};
this.bottomSheet.open(_tln_information_tln_information_component__WEBPACK_IMPORTED_MODULE_11__["TlnInformationComponent"], {
data: parentData
});
}
}, {
key: "updatePageToReference",
value: function updatePageToReference(reference) {
this.current_iri = reference.page.id;
this.selectedLines = [reference.line.id];
this.updateParams();
}
}]);
return TlnViewerNavigation;
}(_route_updater__WEBPACK_IMPORTED_MODULE_8__["RouteUpdater"]);
TlnViewerNavigation.ctorParameters = function () {
return [{
type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ElementRef"]
}, {
type: _angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_3__["MatBottomSheet"]
}, {
type: _services__WEBPACK_IMPORTED_MODULE_10__["PageViewService"]
}, {
type: _services__WEBPACK_IMPORTED_MODULE_10__["TlnQueryService"]
}, {
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"]
}, {
type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"]
}];
};
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], TlnViewerNavigation.prototype, "queryService", void 0);
TlnViewerNavigation = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'tln-viewer-navigation',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./tln-viewer-navigation.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./tln-viewer-navigation.component.css */
"./src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.css"))["default"]]
})], TlnViewerNavigation);
/***/
},
/***/
"./src/app/tln-edition/tooltip/tool-tip.component.css":
/*!************************************************************!*\
!*** ./src/app/tln-edition/tooltip/tool-tip.component.css ***!
\************************************************************/
/*! exports provided: default */
/***/
function srcAppTlnEditionTooltipToolTipComponentCss(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */
- __webpack_exports__["default"] = ".tooltip {\n position: absolute;\n /*color: white;\n background-color: black;*/\n border-radius: 10px;\n padding: 8px;\n font-size: 0.8em;\n opacity: 0.65;\n z-index: 1000;\n}\ndiv .text, .edited_text, .overwritten {\n display: block;\n}\nspan {\n display: inline;\n}\n.deleted {\n text-decoration: line-through;\n -webkit-text-decoration-color: red;\n text-decoration-color: red;\n}\n.blackfg {\n color: black;\n}\n.word { \n opacity: 0.7; \n background-color: black;\n color: white;\n}\n.foreignHand { \n opacity: 0.5; \n background-color: blue; \n color: white;\n}\n.continuation { \n opacity: 1.0; \n background-color: black; \n color: white;\n}\n.copyright { \n opacity: 1.0; \n background-color: white; \n color: black;\n}\n\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC90bG4tZWRpdGlvbi90b29sdGlwL3Rvb2wtdGlwLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Q0FDQyxrQkFBa0I7Q0FDbEI7MEJBQ3lCO0NBQ3pCLG9CQUFvQjtDQUNwQixZQUFZO0NBQ1osZ0JBQWdCO0NBQ2hCLGFBQWE7Q0FDYixhQUFhO0FBQ2Q7QUFDQTtHQUNHLGNBQWM7QUFDakI7QUFDQTtHQUNHLGVBQWU7QUFDbEI7QUFDQTtHQUNHLDZCQUE2QjtHQUM3QixrQ0FBMEI7V0FBMUIsMEJBQTBCO0FBQzdCO0FBQ0E7R0FDRyxZQUFZO0FBQ2Y7QUFDQTtHQUNHLFlBQVk7R0FDWix1QkFBdUI7R0FDdkIsWUFBWTtBQUNmO0FBQ0E7R0FDRyxZQUFZO0dBQ1osc0JBQXNCO0dBQ3RCLFlBQVk7QUFDZjtBQUNBO0dBQ0csWUFBWTtHQUNaLHVCQUF1QjtHQUN2QixZQUFZO0FBQ2Y7QUFDQTtHQUNHLFlBQVk7R0FDWix1QkFBdUI7R0FDdkIsWUFBWTtBQUNmIiwiZmlsZSI6ImFwcC90bG4tZWRpdGlvbi90b29sdGlwL3Rvb2wtdGlwLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudG9vbHRpcCB7XG4gcG9zaXRpb246IGFic29sdXRlO1xuIC8qY29sb3I6IHdoaXRlO1xuIGJhY2tncm91bmQtY29sb3I6IGJsYWNrOyovXG4gYm9yZGVyLXJhZGl1czogIDEwcHg7XG4gcGFkZGluZzogOHB4O1xuIGZvbnQtc2l6ZTogMC44ZW07XG4gb3BhY2l0eTogMC42NTtcbiB6LWluZGV4OiAxMDAwO1xufVxuZGl2IC50ZXh0LCAuZWRpdGVkX3RleHQsIC5vdmVyd3JpdHRlbiB7XG4gICBkaXNwbGF5OiBibG9jaztcbn1cbnNwYW4ge1xuICAgZGlzcGxheTogaW5saW5lO1xufVxuLmRlbGV0ZWQge1xuICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHJlZDtcbn1cbi5ibGFja2ZnIHtcbiAgIGNvbG9yOiBibGFjaztcbn1cbi53b3JkIHsgXG4gICBvcGFjaXR5OiAwLjc7IFxuICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gICBjb2xvcjogd2hpdGU7XG59XG4uZm9yZWlnbkhhbmQgeyBcbiAgIG9wYWNpdHk6IDAuNTsgXG4gICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOyBcbiAgIGNvbG9yOiB3aGl0ZTtcbn1cbi5jb250aW51YXRpb24geyBcbiAgIG9wYWNpdHk6IDEuMDsgXG4gICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsgXG4gICBjb2xvcjogd2hpdGU7XG59XG4uY29weXJpZ2h0IHsgXG4gICBvcGFjaXR5OiAxLjA7IFxuICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IFxuICAgY29sb3I6IGJsYWNrO1xufVxuXG4iXX0= */";
+ __webpack_exports__["default"] = ".tooltip {\n position: absolute;\n /*color: white;\n background-color: black;*/\n border-radius: 10px;\n padding: 8px;\n font-size: 0.8em;\n opacity: 0.65;\n z-index: 1000;\n}\ndiv .text, .edited_text, .overwritten {\n display: block;\n}\nspan {\n display: inline;\n}\n.deleted {\n text-decoration: line-through;\n -webkit-text-decoration-color: red;\n text-decoration-color: red;\n}\n.blackfg {\n color: black;\n}\n.word { \n opacity: 0.7; \n background-color: black;\n color: white;\n}\n.foreignHand { \n opacity: 0.5; \n background-color: blue; \n color: white;\n}\n.continuation { \n opacity: 1.0; \n background-color: black; \n color: white;\n}\n.copyright { \n opacity: 1.0; \n background-color: white; \n color: black;\n}\n\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRsbi1lZGl0aW9uL3Rvb2x0aXAvdG9vbC10aXAuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtDQUNDLGtCQUFrQjtDQUNsQjswQkFDeUI7Q0FDekIsb0JBQW9CO0NBQ3BCLFlBQVk7Q0FDWixnQkFBZ0I7Q0FDaEIsYUFBYTtDQUNiLGFBQWE7QUFDZDtBQUNBO0dBQ0csY0FBYztBQUNqQjtBQUNBO0dBQ0csZUFBZTtBQUNsQjtBQUNBO0dBQ0csNkJBQTZCO0dBQzdCLGtDQUEwQjtXQUExQiwwQkFBMEI7QUFDN0I7QUFDQTtHQUNHLFlBQVk7QUFDZjtBQUNBO0dBQ0csWUFBWTtHQUNaLHVCQUF1QjtHQUN2QixZQUFZO0FBQ2Y7QUFDQTtHQUNHLFlBQVk7R0FDWixzQkFBc0I7R0FDdEIsWUFBWTtBQUNmO0FBQ0E7R0FDRyxZQUFZO0dBQ1osdUJBQXVCO0dBQ3ZCLFlBQVk7QUFDZjtBQUNBO0dBQ0csWUFBWTtHQUNaLHVCQUF1QjtHQUN2QixZQUFZO0FBQ2YiLCJmaWxlIjoidGxuLWVkaXRpb24vdG9vbHRpcC90b29sLXRpcC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnRvb2x0aXAge1xuIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAvKmNvbG9yOiB3aGl0ZTtcbiBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsqL1xuIGJvcmRlci1yYWRpdXM6ICAxMHB4O1xuIHBhZGRpbmc6IDhweDtcbiBmb250LXNpemU6IDAuOGVtO1xuIG9wYWNpdHk6IDAuNjU7XG4gei1pbmRleDogMTAwMDtcbn1cbmRpdiAudGV4dCwgLmVkaXRlZF90ZXh0LCAub3ZlcndyaXR0ZW4ge1xuICAgZGlzcGxheTogYmxvY2s7XG59XG5zcGFuIHtcbiAgIGRpc3BsYXk6IGlubGluZTtcbn1cbi5kZWxldGVkIHtcbiAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiByZWQ7XG59XG4uYmxhY2tmZyB7XG4gICBjb2xvcjogYmxhY2s7XG59XG4ud29yZCB7IFxuICAgb3BhY2l0eTogMC43OyBcbiAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgY29sb3I6IHdoaXRlO1xufVxuLmZvcmVpZ25IYW5kIHsgXG4gICBvcGFjaXR5OiAwLjU7IFxuICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsgXG4gICBjb2xvcjogd2hpdGU7XG59XG4uY29udGludWF0aW9uIHsgXG4gICBvcGFjaXR5OiAxLjA7IFxuICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7IFxuICAgY29sb3I6IHdoaXRlO1xufVxuLmNvcHlyaWdodCB7IFxuICAgb3BhY2l0eTogMS4wOyBcbiAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyBcbiAgIGNvbG9yOiBibGFjaztcbn1cblxuIl19 */";
/***/
},
/***/
"./src/app/tln-edition/tooltip/tool-tip.component.ts":
/*!***********************************************************!*\
!*** ./src/app/tln-edition/tooltip/tool-tip.component.ts ***!
\***********************************************************/
/*! exports provided: ToolTipComponent */
/***/
function srcAppTlnEditionTooltipToolTipComponentTs(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */
__webpack_require__.d(__webpack_exports__, "ToolTipComponent", function () {
return ToolTipComponent;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _services__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! ../services */
"./src/app/tln-edition/services.ts");
/* harmony import */
var _datatypes_earlier_version__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ../datatypes/earlier_version */
"./src/app/tln-edition/datatypes/earlier_version.ts");
/* harmony import */
var _datatypes_line_reference__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! ../datatypes/line_reference */
"./src/app/tln-edition/datatypes/line_reference.ts");
/* harmony import */
var _datatypes_preview_data__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
/*! ../datatypes/preview_data */
"./src/app/tln-edition/datatypes/preview_data.ts");
/* harmony import */
var _datatypes_positional_markup__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
/*! ../datatypes/positional-markup */
"./src/app/tln-edition/datatypes/positional-markup.ts");
/* harmony import */
var _data_handler__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(
/*! ../data_handler */
"./src/app/tln-edition/data_handler.ts");
/* harmony import */
var _lib_ngx_mat_standoff_markup_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(
/*! ../../lib/ngx-mat-standoff-markup.component */
"./src/app/lib/ngx-mat-standoff-markup.component.ts");
/**
* This component can be used to show extended tooltips, i.e. with deleted words and distinguished
* words if they are by foreign hand.
**/
var ToolTipComponent = /*#__PURE__*/function (_services__WEBPACK_IM) {
_inherits(ToolTipComponent, _services__WEBPACK_IM);
var _super52 = _createSuper(ToolTipComponent);
function ToolTipComponent(pageViewService, tlnQueryService) {
var _this86;
_classCallCheck(this, ToolTipComponent);
_this86 = _super52.call(this);
_this86.pageViewService = pageViewService;
_this86.tlnQueryService = tlnQueryService;
_this86.fullscreen = false;
_this86.hasMenuIssues = false; //fullscreen: boolean = false;
/**
* content keys
**/
_this86.contentKeys = ['word', 'foreignHand', 'copyright', 'continuation'];
_this86.debug = false;
_this86.position = 0;
/**
* the data handler of this component that retrieves
* data and instantiates it according to their proper
* datatypes.
**/
_this86.dataHandler = new _data_handler__WEBPACK_IMPORTED_MODULE_7__["DataHandler"](_assertThisInitialized(_this86));
/**
* a list of positional style markups.
**/
_this86.positionalStyleMarkups = [];
_this86.continuation_words = [];
_this86.cssDef = {
type: 'text',
css: ''
};
_this86.mySettings = new _lib_ngx_mat_standoff_markup_component__WEBPACK_IMPORTED_MODULE_8__["StandoffMarkupSettings"](true, true, false, 1);
_this86.width = 300;
/**
* actual tooltip position
**/
_this86.tooltipPosition = {
visible: false,
clientX: -1,
clientY: -1,
layerX: -1,
layerY: -1
};
/**
* whether or not to show extended tooltips
**/
_this86.useExtendedTooltip = true;
/**
* y offset for tooltip position relative to mouse position
**/
_this86.yOffset = 25;
_this86.menuIssueOffset = 80;
_this86.menuIssueXOffset = 55;
_this86.topOffset = 0;
_this86.leftOffset = 0;
return _this86;
}
_createClass(ToolTipComponent, [{
key: "ngOnChanges",
value: function ngOnChanges() {
var _this87 = this;
_get(_getPrototypeOf(ToolTipComponent.prototype), "ngOnChanges", this).call(this);
/*if((this.fullscreen && this.fullscreenString != 'true') || (!this.fullscreen && this.fullscreenString == 'true')){
this.fullscreen = (this.fullscreenString == 'true')
}*/
if (this.tlnQueryService != null && !this.dataHandler.ready) {
this.dataHandler.addHandler('earlier_version', {
'handler': _datatypes_earlier_version__WEBPACK_IMPORTED_MODULE_3__["TlnEarlierVersionStub"]
});
this.dataHandler.addHandler('overwrittenWord', {
'handler': _datatypes_earlier_version__WEBPACK_IMPORTED_MODULE_3__["TlnOverwrittenStub"]
});
this.dataHandler.addHandler('positionalStyleMarkups', {
'handler': _datatypes_positional_markup__WEBPACK_IMPORTED_MODULE_6__["TlnFilteredPositionalStyleMarkup"]
});
this.dataHandler.addHandler('sourceLineReference', {
'handler': _datatypes_line_reference__WEBPACK_IMPORTED_MODULE_4__["TlnLineReference"]
});
this.dataHandler.addHandler('continuation_words', {
'handler': _datatypes_preview_data__WEBPACK_IMPORTED_MODULE_5__["TlnPreviewWord"]
});
this.dataHandler.addHandler('wordStubs', ['earlier_version', 'overwrittenWord', 'positionalStyleMarkups']);
this.dataHandler.setQueryService(this.tlnQueryService);
this.tlnQueryService.reset_data.subscribe(function (data_key) {
if (data_key == 'page_content') {
_this87.resetData();
}
});
}
}
/**
* listen on pageViewService
**/
}, {
key: "ngOnInit",
value: function ngOnInit() {
var _this88 = this;
this.pageViewService.mousePosition.subscribe(function (newPoint) {
_this88.tooltipPosition = newPoint; //console.log(this.tooltipPosition);
});
this.pageViewService.onHoveredWord.subscribe(function (newWord) {
_this88.setContent('word', newWord);
_this88.updateEarlierVersion();
});
this.pageViewService.offHoveredWord.subscribe(function (newWord) {
return _this88.word = null;
});
this.pageViewService.onHoveredTextByForeignHand.subscribe(function (newTextByForeignHand) {
_this88.setContent('foreignHand', newTextByForeignHand);
});
this.pageViewService.offHoveredTextByForeignHand.subscribe(function (newTextByForeignHand) {
return _this88.foreignHand = null;
});
this.pageViewService.copyright.subscribe(function (copyright) {
_this88.setContent('copyright', _this88.copyright == null ? copyright : null);
});
this.pageViewService.onHoveredContinuation.subscribe(function (newContinuation) {
if (_this88.continuation == null) {
_this88.updateLineContinuation(newContinuation);
}
});
this.pageViewService.offHoveredContinuation.subscribe(function (newContinuation) {
_this88.dataHandler.stop_processing.emit(true);
_this88.continuation = null;
_this88.updateLineContinuation();
});
}
/**
* reset data
**/
}, {
key: "resetData",
value: function resetData() {
var _this89 = this;
this.dataHandler.resetData('wordStubs');
this.contentKeys.forEach(function (key) {
return _this89[key] = null;
});
}
/**
* update earlier version of word
**/
}, {
key: "updateEarlierVersion",
value: function updateEarlierVersion() {
if (this.word != null && this.dataHandler.ready) {
this.dataHandler.resetData('wordStubs');
this.dataHandler.getData('wordStubs', this.word.id);
}
}
}, {
key: "updateLineContinuation",
value: function updateLineContinuation(continuation) {
this.setContent('continuation', continuation);
if (continuation != null && this.dataHandler.ready) {
this.dataHandler.resetData('continuation_words');
if (continuation.source.page != null) {
this.dataHandler.getData('continuation_words', this.continuation.reference.line.id);
}
}
}
}, {
key: "getTop",
value: function getTop(key) {
if (this.menuOffsetPosition != undefined && this.menuOffsetPosition != null && this.container != null && this.container != undefined) {
var containerRect = this.container.getBoundingClientRect();
this.topOffset = containerRect.top;
if (!this.fullscreen) {
this.topOffset = this.topOffset - this.menuOffsetPosition.y;
}
}
return this.tooltipPosition.clientY - this.topOffset + this.yOffset;
}
}, {
key: "getLeft",
value: function getLeft(width) {
var containerRect = this.container != null && this.container != undefined ? this.container.getBoundingClientRect() : null;
this.leftOffset = this.menuOffsetPosition != undefined && this.menuOffsetPosition != null && containerRect != null ? containerRect.left : 0;
var left = this.tooltipPosition.clientX - this.leftOffset;
if (this.menuOffsetPosition != undefined && this.menuOffsetPosition != null) {
left += this.menuOffsetPosition.x;
}
if (!this.tooltipPosition.visible || this.continuation == null || this.continuation.show == null || this.continuation.show != 'to') {
return left;
}
return left + width <= containerRect.right ? left : left - (left + width - containerRect.right) - 5;
}
/**
* Set tooltip's content and remove prior content.
* @param key key of content
* @param content new content
**/
}, {
key: "setContent",
value: function setContent(key, content) {
var _this90 = this;
this.contentKeys.forEach(function (key) {
return _this90[key] = null;
});
this[key] = content;
this.currentKey = key;
}
/**
* whether tooltip has any content (i.e. any content of {@link /components/ToolTipComponent.html#contentKeys|contentKeys})
**/
}, {
key: "hasAnyContent",
value: function hasAnyContent() {
var _this91 = this;
return this.contentKeys.filter(function (key) {
return _this91[key] != null;
}).length > 0;
}
}]);
return ToolTipComponent;
}(_services__WEBPACK_IMPORTED_MODULE_2__["ConfigurableComponent"]);
ToolTipComponent.ctorParameters = function () {
return [{
type: _services__WEBPACK_IMPORTED_MODULE_2__["PageViewService"]
}, {
type: _services__WEBPACK_IMPORTED_MODULE_2__["TlnQueryService"]
}];
};
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('fullscreen')], ToolTipComponent.prototype, "fullscreen", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], ToolTipComponent.prototype, "hasMenuIssues", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], ToolTipComponent.prototype, "menuOffsetPosition", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()], ToolTipComponent.prototype, "container", void 0);
ToolTipComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'tool-tip',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! raw-loader!./tool-tip.component.html */
"./node_modules/raw-loader/dist/cjs.js!./src/app/tln-edition/tooltip/tool-tip.component.html"))["default"],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(
/*! ./tool-tip.component.css */
"./src/app/tln-edition/tooltip/tool-tip.component.css"))["default"]]
})], ToolTipComponent);
/***/
},
/***/
"./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;
});
/* harmony import */
var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js"); // 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 tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
/*! tslib */
"./node_modules/tslib/tslib.es6.js");
/* harmony import */
var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
/*! @angular/core */
"./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */
var _angular_platform_browser_dynamic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
/*! @angular/platform-browser-dynamic */
"./node_modules/@angular/platform-browser-dynamic/fesm2015/platform-browser-dynamic.js");
/* harmony import */
var _app_app_module__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
/*! ./app/app.module */
"./src/app/app.module.ts");
/* harmony import */
var _environments_environment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
/*! ./environments/environment */
"./src/environments/environment.ts");
if (_environments_environment__WEBPACK_IMPORTED_MODULE_4__["environment"].production) {
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["enableProdMode"])();
}
Object(_angular_platform_browser_dynamic__WEBPACK_IMPORTED_MODULE_2__["platformBrowserDynamic"])().bootstrapModule(_app_app_module__WEBPACK_IMPORTED_MODULE_3__["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__(
/*! /data/home/knister0/githubs/NietzscheBeta/nietzsche-beta-app/src/main.ts */
"./src/main.ts");
/***/
},
/***/
1:
/*!********************!*\
!*** fs (ignored) ***!
\********************/
/*! no static exports found */
/***/
function _(module, exports) {
/* (ignored) */
/***/
},
/***/
2:
/*!**********************!*\
!*** path (ignored) ***!
\**********************/
/*! no static exports found */
/***/
function _(module, exports) {
/* (ignored) */
/***/
}
}, [[0, "runtime", "vendor"]]]);
//# sourceMappingURL=main-es5.js.map
\ No newline at end of file
diff --git a/nietzsche-beta-app/dist/nietzsche-beta-app/main-es5.js.map b/nietzsche-beta-app/dist/nietzsche-beta-app/main-es5.js.map
index 8ff0752..d928795 100644
--- a/nietzsche-beta-app/dist/nietzsche-beta-app/main-es5.js.map
+++ b/nietzsche-beta-app/dist/nietzsche-beta-app/main-es5.js.map
@@ -1 +1 @@
-{"version":3,"sources":["$_lazy_route_resource lazy namespace object","src/app/app.component.html","src/app/content-view-tab-component/content-view-tab-component.component.html","src/app/home.component.html","src/app/impressum.component.html","src/app/lib/ngx-mat-standoff-markup.component.html","src/app/main-menu-component/main-menu-component.component.html","src/app/manuscript-view-component/manuscript-view-component.component.html","src/app/navigation-list-component/navigation-list-component.component.html","src/app/page-view-wrapper-component/page-view-wrapper.component.html","src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.html","src/app/page-view/copyright/copyright.component.html","src/app/page-view/margin-field/line-reference/line-reference.component.html","src/app/page-view/margin-field/margin-field.component.html","src/app/page-view/page-view.component.html","src/app/page-view/textfield-component/textfield.component.html","src/app/project.component.html","src/app/rhizome-view-component/rhizome-view-component.component.html","src/app/tln-edition/tln-crossref/navigation/navigation.component.html","src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.html","src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.html","src/app/tln-edition/tln-crossref/tln-crossref.component.html","src/app/tln-edition/tln-crossref/version-view/version-view.component.html","src/app/tln-edition/tln-fulltext/navigation/navigation.component.html","src/app/tln-edition/tln-fulltext/tln-fulltext.component.html","src/app/tln-edition/tln-information/tln-information.component.html","src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.html","src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.html","src/app/tln-edition/tln-navigation-elements/search.component.html","src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.html","src/app/tln-edition/tln-navigation-elements/zoom.component.html","src/app/tln-edition/tln-page-view.component.html","src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.html","src/app/tln-edition/tooltip/tool-tip.component.html","node_modules/tslib/tslib.es6.js","src/app/app.component.css","src/app/app.component.ts","src/app/app.module.ts","src/app/app.routing.ts","src/app/constants.ts","src/app/content-view-tab-component/content-view-routes.ts","src/app/content-view-tab-component/content-view-tab-component.component.scss","src/app/content-view-tab-component/content-view-tab-component.component.ts","src/app/content-view-tab-component/lazy-image-load-directive.directive.ts","src/app/home.component.css","src/app/home.component.ts","src/app/impressum.component.css","src/app/impressum.component.ts","src/app/lib/ngx-mat-standoff-markup.component.ts","src/app/lib/ngx-mat-standoff-markup.module.ts","src/app/lib/ngx-mat-standoff-markup.service.ts","src/app/main-menu-component/main-menu-component.component.scss","src/app/main-menu-component/main-menu-component.component.ts","src/app/manuscript-view-component/manuscript-view-component.component.scss","src/app/manuscript-view-component/manuscript-view-component.component.ts","src/app/models/models.ts","src/app/navigation-list-component/navigation-list-component.component.scss","src/app/navigation-list-component/navigation-list-component.component.ts","src/app/navigation-list-component/navtree-directive.directive.ts","src/app/page-view-wrapper-component/page-view-wrapper.component.scss","src/app/page-view-wrapper-component/page-view-wrapper.component.ts","src/app/page-view/configurable-component.ts","src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.css","src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.ts","src/app/page-view/copyright/copyright.component.css","src/app/page-view/copyright/copyright.component.ts","src/app/page-view/highlight_status.ts","src/app/page-view/interacted.directive.ts","src/app/page-view/margin-field/line-reference/line-reference.component.css","src/app/page-view/margin-field/line-reference/line-reference.component.ts","src/app/page-view/margin-field/margin-field.component.css","src/app/page-view/margin-field/margin-field.component.ts","src/app/page-view/page-view.component.css","src/app/page-view/page-view.component.ts","src/app/page-view/page-view.module.ts","src/app/page-view/page-view.service.ts","src/app/page-view/textfield-component/matrix.ts","src/app/page-view/textfield-component/textfield.component.css","src/app/page-view/textfield-component/textfield.component.ts","src/app/project.component.css","src/app/project.component.ts","src/app/rhizome-view-component/rhizome-view-component.component.css","src/app/rhizome-view-component/rhizome-view-component.component.ts","src/app/services/navigation-service.service.ts","src/app/services/query.service.ts","src/app/tln-edition/constants.ts","src/app/tln-edition/data_handler.ts","src/app/tln-edition/datatypes/basic_datatype.ts","src/app/tln-edition/datatypes/earlier_version.ts","src/app/tln-edition/datatypes/faksimile_image.ts","src/app/tln-edition/datatypes/foreign_text.ts","src/app/tln-edition/datatypes/image.ts","src/app/tln-edition/datatypes/line.ts","src/app/tln-edition/datatypes/line_reference.ts","src/app/tln-edition/datatypes/manuscript.ts","src/app/tln-edition/datatypes/navigation.ts","src/app/tln-edition/datatypes/page.ts","src/app/tln-edition/datatypes/positional-markup.ts","src/app/tln-edition/datatypes/positional_object.ts","src/app/tln-edition/datatypes/preview_data.ts","src/app/tln-edition/datatypes/search.ts","src/app/tln-edition/datatypes/svg_image.ts","src/app/tln-edition/datatypes/text_version.ts","src/app/tln-edition/datatypes/word.ts","src/app/tln-edition/debug.pipe.ts","src/app/tln-edition/route-reader.ts","src/app/tln-edition/route-updater.ts","src/app/tln-edition/tln-crossref/navigation/navigation.component.css","src/app/tln-edition/tln-crossref/navigation/navigation.component.ts","src/app/tln-edition/tln-crossref/page-version-view/filter.pipe.ts","src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.css","src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.ts","src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.css","src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.ts","src/app/tln-edition/tln-crossref/tln-crossref.component.css","src/app/tln-edition/tln-crossref/tln-crossref.component.ts","src/app/tln-edition/tln-crossref/version-view/version-view.component.css","src/app/tln-edition/tln-crossref/version-view/version-view.component.ts","src/app/tln-edition/tln-edition.module.ts","src/app/tln-edition/tln-fulltext/navigation/navigation.component.css","src/app/tln-edition/tln-fulltext/navigation/navigation.component.ts","src/app/tln-edition/tln-fulltext/page-result-filter.pipe.ts","src/app/tln-edition/tln-fulltext/result-pipe.pipe.ts","src/app/tln-edition/tln-fulltext/tln-fulltext.component.css","src/app/tln-edition/tln-fulltext/tln-fulltext.component.ts","src/app/tln-edition/tln-height.directive.ts","src/app/tln-edition/tln-information/tln-information.component.css","src/app/tln-edition/tln-information/tln-information.component.ts","src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.css","src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.ts","src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.scss","src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.ts","src/app/tln-edition/tln-navigation-elements/search.component.css","src/app/tln-edition/tln-navigation-elements/search.component.ts","src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.css","src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.ts","src/app/tln-edition/tln-navigation-elements/zoom.component.css","src/app/tln-edition/tln-navigation-elements/zoom.component.ts","src/app/tln-edition/tln-navigation-elements/zoom.pipe.ts","src/app/tln-edition/tln-page-view.component.css","src/app/tln-edition/tln-page-view.component.ts","src/app/tln-edition/tln-query.service.ts","src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.css","src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.ts","src/app/tln-edition/tooltip/tool-tip.component.css","src/app/tln-edition/tooltip/tool-tip.component.ts","src/environments/environment.ts","src/main.ts","fs (ignored)","path (ignored)"],"names":[],"mappings":"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","file":"main-es5.js","sourceRoot":"webpack:///"}
\ No newline at end of file
+{"version":3,"sources":["$_lazy_route_resource lazy namespace object","src/app/app.component.html","src/app/content-view-tab-component/content-view-tab-component.component.html","src/app/home.component.html","src/app/impressum.component.html","src/app/lib/ngx-mat-standoff-markup.component.html","src/app/main-menu-component/main-menu-component.component.html","src/app/manuscript-view-component/manuscript-view-component.component.html","src/app/navigation-list-component/navigation-list-component.component.html","src/app/page-view-wrapper-component/page-view-wrapper.component.html","src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.html","src/app/page-view/copyright/copyright.component.html","src/app/page-view/margin-field/line-reference/line-reference.component.html","src/app/page-view/margin-field/margin-field.component.html","src/app/page-view/page-view.component.html","src/app/page-view/textfield-component/textfield.component.html","src/app/project.component.html","src/app/rhizome-view-component/rhizome-view-component.component.html","src/app/tln-edition/tln-crossref/navigation/navigation.component.html","src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.html","src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.html","src/app/tln-edition/tln-crossref/tln-crossref.component.html","src/app/tln-edition/tln-crossref/version-view/version-view.component.html","src/app/tln-edition/tln-fulltext/navigation/navigation.component.html","src/app/tln-edition/tln-fulltext/tln-fulltext.component.html","src/app/tln-edition/tln-information/tln-information.component.html","src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.html","src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.html","src/app/tln-edition/tln-navigation-elements/search.component.html","src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.html","src/app/tln-edition/tln-navigation-elements/zoom.component.html","src/app/tln-edition/tln-page-view.component.html","src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.html","src/app/tln-edition/tooltip/tool-tip.component.html","node_modules/tslib/tslib.es6.js","src/app/app.component.css","src/app/app.component.ts","src/app/app.module.ts","src/app/app.routing.ts","src/app/constants.ts","src/app/content-view-tab-component/content-view-routes.ts","src/app/content-view-tab-component/content-view-tab-component.component.scss","src/app/content-view-tab-component/content-view-tab-component.component.ts","src/app/content-view-tab-component/lazy-image-load-directive.directive.ts","src/app/home.component.css","src/app/home.component.ts","src/app/impressum.component.css","src/app/impressum.component.ts","src/app/lib/ngx-mat-standoff-markup.component.ts","src/app/lib/ngx-mat-standoff-markup.module.ts","src/app/lib/ngx-mat-standoff-markup.service.ts","src/app/main-menu-component/main-menu-component.component.scss","src/app/main-menu-component/main-menu-component.component.ts","src/app/manuscript-view-component/manuscript-view-component.component.scss","src/app/manuscript-view-component/manuscript-view-component.component.ts","src/app/models/models.ts","src/app/navigation-list-component/navigation-list-component.component.scss","src/app/navigation-list-component/navigation-list-component.component.ts","src/app/navigation-list-component/navtree-directive.directive.ts","src/app/page-view-wrapper-component/page-view-wrapper.component.scss","src/app/page-view-wrapper-component/page-view-wrapper.component.ts","src/app/page-view/configurable-component.ts","src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.css","src/app/page-view/copyright/copyright-sheet/copyright-sheet.component.ts","src/app/page-view/copyright/copyright.component.css","src/app/page-view/copyright/copyright.component.ts","src/app/page-view/highlight_status.ts","src/app/page-view/interacted.directive.ts","src/app/page-view/margin-field/line-reference/line-reference.component.css","src/app/page-view/margin-field/line-reference/line-reference.component.ts","src/app/page-view/margin-field/margin-field.component.css","src/app/page-view/margin-field/margin-field.component.ts","src/app/page-view/page-view.component.css","src/app/page-view/page-view.component.ts","src/app/page-view/page-view.module.ts","src/app/page-view/page-view.service.ts","src/app/page-view/textfield-component/matrix.ts","src/app/page-view/textfield-component/textfield.component.css","src/app/page-view/textfield-component/textfield.component.ts","src/app/project.component.css","src/app/project.component.ts","src/app/rhizome-view-component/rhizome-view-component.component.css","src/app/rhizome-view-component/rhizome-view-component.component.ts","src/app/services/navigation-service.service.ts","src/app/services/query.service.ts","src/app/tln-edition/constants.ts","src/app/tln-edition/data_handler.ts","src/app/tln-edition/datatypes/basic_datatype.ts","src/app/tln-edition/datatypes/earlier_version.ts","src/app/tln-edition/datatypes/faksimile_image.ts","src/app/tln-edition/datatypes/foreign_text.ts","src/app/tln-edition/datatypes/image.ts","src/app/tln-edition/datatypes/line.ts","src/app/tln-edition/datatypes/line_reference.ts","src/app/tln-edition/datatypes/manuscript.ts","src/app/tln-edition/datatypes/navigation.ts","src/app/tln-edition/datatypes/page.ts","src/app/tln-edition/datatypes/positional-markup.ts","src/app/tln-edition/datatypes/positional_object.ts","src/app/tln-edition/datatypes/preview_data.ts","src/app/tln-edition/datatypes/search.ts","src/app/tln-edition/datatypes/svg_image.ts","src/app/tln-edition/datatypes/text_version.ts","src/app/tln-edition/datatypes/word.ts","src/app/tln-edition/debug.pipe.ts","src/app/tln-edition/route-reader.ts","src/app/tln-edition/route-updater.ts","src/app/tln-edition/tln-crossref/navigation/navigation.component.css","src/app/tln-edition/tln-crossref/navigation/navigation.component.ts","src/app/tln-edition/tln-crossref/page-version-view/filter.pipe.ts","src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.css","src/app/tln-edition/tln-crossref/page-version-view/page-version-view.component.ts","src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.css","src/app/tln-edition/tln-crossref/page-version-view/tln-page-version-view.component.ts","src/app/tln-edition/tln-crossref/tln-crossref.component.css","src/app/tln-edition/tln-crossref/tln-crossref.component.ts","src/app/tln-edition/tln-crossref/version-view/version-view.component.css","src/app/tln-edition/tln-crossref/version-view/version-view.component.ts","src/app/tln-edition/tln-edition.module.ts","src/app/tln-edition/tln-fulltext/navigation/navigation.component.css","src/app/tln-edition/tln-fulltext/navigation/navigation.component.ts","src/app/tln-edition/tln-fulltext/page-result-filter.pipe.ts","src/app/tln-edition/tln-fulltext/result-pipe.pipe.ts","src/app/tln-edition/tln-fulltext/tln-fulltext.component.css","src/app/tln-edition/tln-fulltext/tln-fulltext.component.ts","src/app/tln-edition/tln-height.directive.ts","src/app/tln-edition/tln-information/tln-information.component.css","src/app/tln-edition/tln-information/tln-information.component.ts","src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.css","src/app/tln-edition/tln-manuscript-view/tln-manuscript-view.component.ts","src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.scss","src/app/tln-edition/tln-navigation-elements/open-in-viewer.component.ts","src/app/tln-edition/tln-navigation-elements/search.component.css","src/app/tln-edition/tln-navigation-elements/search.component.ts","src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.css","src/app/tln-edition/tln-navigation-elements/toggle-navigation.component.ts","src/app/tln-edition/tln-navigation-elements/zoom.component.css","src/app/tln-edition/tln-navigation-elements/zoom.component.ts","src/app/tln-edition/tln-navigation-elements/zoom.pipe.ts","src/app/tln-edition/tln-page-view.component.css","src/app/tln-edition/tln-page-view.component.ts","src/app/tln-edition/tln-query.service.ts","src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.css","src/app/tln-edition/tln-viewer-navigation/tln-viewer-navigation.component.ts","src/app/tln-edition/tooltip/tool-tip.component.css","src/app/tln-edition/tooltip/tool-tip.component.ts","src/environments/environment.ts","src/main.ts","fs (ignored)","path (ignored)"],"names":[],"mappings":"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","file":"main-es5.js","sourceRoot":"webpack:///"}
\ No newline at end of file
diff --git a/nietzsche-beta-app/dist/nietzsche-beta-app/styles-es2015.js b/nietzsche-beta-app/dist/nietzsche-beta-app/styles-es2015.js
index 704b7ec..a169caa 100644
--- a/nietzsche-beta-app/dist/nietzsche-beta-app/styles-es2015.js
+++ b/nietzsche-beta-app/dist/nietzsche-beta-app/styles-es2015.js
@@ -1,347 +1,347 @@
(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/sass-loader/lib/loader.js?!./src/styles.scss":
/*!**********************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!./node_modules/postcss-loader/src??embedded!./node_modules/sass-loader/lib/loader.js??ref--15-3!./src/styles.scss ***!
\**********************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
-module.exports = [[module.i, "/* Theme for the ripple elements.*/\n/* stylelint-disable material/no-prefixes */\n/* stylelint-enable */\n.mat-badge-content {\n font-weight: 600;\n font-size: 12px;\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-badge-small .mat-badge-content {\n font-size: 9px;\n}\n.mat-badge-large .mat-badge-content {\n font-size: 24px;\n}\n.mat-h1, .mat-headline, .mat-typography h1 {\n font: 400 24px/32px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 16px;\n}\n.mat-h2, .mat-title, .mat-typography h2 {\n font: 500 20px/32px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 16px;\n}\n.mat-h3, .mat-subheading-2, .mat-typography h3 {\n font: 400 16px/28px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 16px;\n}\n.mat-h4, .mat-subheading-1, .mat-typography h4 {\n font: 400 15px/24px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 16px;\n}\n.mat-h5, .mat-typography h5 {\n font: 400 calc(14px * 0.83)/20px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 12px;\n}\n.mat-h6, .mat-typography h6 {\n font: 400 calc(14px * 0.67)/20px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 12px;\n}\n.mat-body-strong, .mat-body-2 {\n font: 500 14px/24px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-body, .mat-body-1, .mat-typography {\n font: 400 14px/20px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-body p, .mat-body-1 p, .mat-typography p {\n margin: 0 0 12px;\n}\n.mat-small, .mat-caption {\n font: 400 12px/20px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-display-4, .mat-typography .mat-display-4 {\n font: 300 112px/112px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: -0.05em;\n margin: 0 0 56px;\n}\n.mat-display-3, .mat-typography .mat-display-3 {\n font: 400 56px/56px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: -0.02em;\n margin: 0 0 64px;\n}\n.mat-display-2, .mat-typography .mat-display-2 {\n font: 400 45px/48px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: -0.005em;\n margin: 0 0 64px;\n}\n.mat-display-1, .mat-typography .mat-display-1 {\n font: 400 34px/40px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 64px;\n}\n.mat-bottom-sheet-container {\n font: 400 14px/20px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-button, .mat-raised-button, .mat-icon-button, .mat-stroked-button,\n.mat-flat-button, .mat-fab, .mat-mini-fab {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n font-weight: 500;\n}\n.mat-button-toggle {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-card {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-card-title {\n font-size: 24px;\n font-weight: 500;\n}\n.mat-card-header .mat-card-title {\n font-size: 20px;\n}\n.mat-card-subtitle,\n.mat-card-content {\n font-size: 14px;\n}\n.mat-checkbox {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-checkbox-layout .mat-checkbox-label {\n line-height: 24px;\n}\n.mat-chip {\n font-size: 14px;\n font-weight: 500;\n}\n.mat-chip .mat-chip-trailing-icon.mat-icon,\n.mat-chip .mat-chip-remove.mat-icon {\n font-size: 18px;\n}\n.mat-table {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-header-cell {\n font-size: 12px;\n font-weight: 500;\n}\n.mat-cell, .mat-footer-cell {\n font-size: 14px;\n}\n.mat-calendar {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-calendar-body {\n font-size: 13px;\n}\n.mat-calendar-body-label,\n.mat-calendar-period-button {\n font-size: 14px;\n font-weight: 500;\n}\n.mat-calendar-table-header th {\n font-size: 11px;\n font-weight: 400;\n}\n.mat-dialog-title {\n font: 500 20px/32px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-expansion-panel-header {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 15px;\n font-weight: 400;\n}\n.mat-expansion-panel-content {\n font: 400 14px/20px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-form-field {\n font-size: inherit;\n font-weight: 400;\n line-height: 1.125;\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-form-field-wrapper {\n padding-bottom: 1.34375em;\n}\n.mat-form-field-prefix .mat-icon,\n.mat-form-field-suffix .mat-icon {\n font-size: 150%;\n line-height: 1.125;\n}\n.mat-form-field-prefix .mat-icon-button,\n.mat-form-field-suffix .mat-icon-button {\n height: 1.5em;\n width: 1.5em;\n}\n.mat-form-field-prefix .mat-icon-button .mat-icon,\n.mat-form-field-suffix .mat-icon-button .mat-icon {\n height: 1.125em;\n line-height: 1.125;\n}\n.mat-form-field-infix {\n padding: 0.5em 0;\n border-top: 0.84375em solid transparent;\n}\n.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\n.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.34375em) scale(0.75);\n width: 133.3333333333%;\n}\n.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.34374em) scale(0.75);\n width: 133.3333433333%;\n}\n.mat-form-field-label-wrapper {\n top: -0.84375em;\n padding-top: 0.84375em;\n}\n.mat-form-field-label {\n top: 1.34375em;\n}\n.mat-form-field-underline {\n bottom: 1.34375em;\n}\n.mat-form-field-subscript-wrapper {\n font-size: 75%;\n margin-top: 0.6666666667em;\n top: calc(100% - 1.7916666667em);\n}\n.mat-form-field-appearance-legacy .mat-form-field-wrapper {\n padding-bottom: 1.25em;\n}\n.mat-form-field-appearance-legacy .mat-form-field-infix {\n padding: 0.4375em 0;\n}\n.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);\n -ms-transform: translateY(-1.28125em) scale(0.75);\n width: 133.3333333333%;\n}\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);\n -ms-transform: translateY(-1.28124em) scale(0.75);\n width: 133.3333433333%;\n}\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);\n -ms-transform: translateY(-1.28123em) scale(0.75);\n width: 133.3333533333%;\n}\n.mat-form-field-appearance-legacy .mat-form-field-label {\n top: 1.28125em;\n}\n.mat-form-field-appearance-legacy .mat-form-field-underline {\n bottom: 1.25em;\n}\n.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper {\n margin-top: 0.5416666667em;\n top: calc(100% - 1.6666666667em);\n}\n@media print {\n .mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.28122em) scale(0.75);\n }\n .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.28121em) scale(0.75);\n }\n .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.2812em) scale(0.75);\n }\n}\n.mat-form-field-appearance-fill .mat-form-field-infix {\n padding: 0.25em 0 0.75em 0;\n}\n.mat-form-field-appearance-fill .mat-form-field-label {\n top: 1.09375em;\n margin-top: -0.5em;\n}\n.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\n.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-0.59375em) scale(0.75);\n width: 133.3333333333%;\n}\n.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-0.59374em) scale(0.75);\n width: 133.3333433333%;\n}\n.mat-form-field-appearance-outline .mat-form-field-infix {\n padding: 1em 0 1em 0;\n}\n.mat-form-field-appearance-outline .mat-form-field-label {\n top: 1.84375em;\n margin-top: -0.25em;\n}\n.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\n.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.59375em) scale(0.75);\n width: 133.3333333333%;\n}\n.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.59374em) scale(0.75);\n width: 133.3333433333%;\n}\n.mat-grid-tile-header,\n.mat-grid-tile-footer {\n font-size: 14px;\n}\n.mat-grid-tile-header .mat-line,\n.mat-grid-tile-footer .mat-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n box-sizing: border-box;\n}\n.mat-grid-tile-header .mat-line:nth-child(n+2),\n.mat-grid-tile-footer .mat-line:nth-child(n+2) {\n font-size: 12px;\n}\ninput.mat-input-element {\n margin-top: -0.0625em;\n}\n.mat-menu-item {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n font-weight: 400;\n}\n.mat-paginator,\n.mat-paginator-page-size .mat-select-trigger {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 12px;\n}\n.mat-radio-button {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-select {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-select-trigger {\n height: 1.125em;\n}\n.mat-slide-toggle-content {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-slider-thumb-label-text {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 12px;\n font-weight: 500;\n}\n.mat-stepper-vertical, .mat-stepper-horizontal {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-step-label {\n font-size: 14px;\n font-weight: 400;\n}\n.mat-step-sub-label-error {\n font-weight: normal;\n}\n.mat-step-label-error {\n font-size: 14px;\n}\n.mat-step-label-selected {\n font-size: 14px;\n font-weight: 500;\n}\n.mat-tab-group {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-tab-label, .mat-tab-link {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n font-weight: 500;\n}\n.mat-toolbar,\n.mat-toolbar h1,\n.mat-toolbar h2,\n.mat-toolbar h3,\n.mat-toolbar h4,\n.mat-toolbar h5,\n.mat-toolbar h6 {\n font: 500 20px/32px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0;\n}\n.mat-tooltip {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 10px;\n padding-top: 6px;\n padding-bottom: 6px;\n}\n.mat-tooltip-handset {\n font-size: 14px;\n padding-top: 8px;\n padding-bottom: 8px;\n}\n.mat-list-item {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-list-option {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-list-base .mat-list-item {\n font-size: 16px;\n}\n.mat-list-base .mat-list-item .mat-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n box-sizing: border-box;\n}\n.mat-list-base .mat-list-item .mat-line:nth-child(n+2) {\n font-size: 14px;\n}\n.mat-list-base .mat-list-option {\n font-size: 16px;\n}\n.mat-list-base .mat-list-option .mat-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n box-sizing: border-box;\n}\n.mat-list-base .mat-list-option .mat-line:nth-child(n+2) {\n font-size: 14px;\n}\n.mat-list-base .mat-subheader {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n font-weight: 500;\n}\n.mat-list-base[dense] .mat-list-item {\n font-size: 12px;\n}\n.mat-list-base[dense] .mat-list-item .mat-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n box-sizing: border-box;\n}\n.mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2) {\n font-size: 12px;\n}\n.mat-list-base[dense] .mat-list-option {\n font-size: 12px;\n}\n.mat-list-base[dense] .mat-list-option .mat-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n box-sizing: border-box;\n}\n.mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2) {\n font-size: 12px;\n}\n.mat-list-base[dense] .mat-subheader {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 12px;\n font-weight: 500;\n}\n.mat-option {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 16px;\n}\n.mat-optgroup-label {\n font: 500 14px/24px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-simple-snackbar {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n}\n.mat-simple-snackbar-action {\n line-height: 1;\n font-family: inherit;\n font-size: inherit;\n font-weight: 500;\n}\n.mat-tree {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-tree-node,\n.mat-nested-tree-node {\n font-weight: 400;\n font-size: 14px;\n}\n.mat-ripple {\n overflow: hidden;\n position: relative;\n}\n.mat-ripple.mat-ripple-unbounded {\n overflow: visible;\n}\n.mat-ripple-element {\n position: absolute;\n border-radius: 50%;\n pointer-events: none;\n transition: opacity, transform 0ms cubic-bezier(0, 0, 0.2, 1);\n transform: scale(0);\n}\n@media (-ms-high-contrast: active) {\n .mat-ripple-element {\n display: none;\n }\n}\n.cdk-visually-hidden {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n outline: 0;\n -webkit-appearance: none;\n -moz-appearance: none;\n}\n.cdk-overlay-container, .cdk-global-overlay-wrapper {\n pointer-events: none;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n}\n.cdk-overlay-container {\n position: fixed;\n z-index: 1000;\n}\n.cdk-overlay-container:empty {\n display: none;\n}\n.cdk-global-overlay-wrapper {\n display: flex;\n position: absolute;\n z-index: 1000;\n}\n.cdk-overlay-pane {\n position: absolute;\n pointer-events: auto;\n box-sizing: border-box;\n z-index: 1000;\n display: flex;\n max-width: 100%;\n max-height: 100%;\n}\n.cdk-overlay-backdrop {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 1000;\n pointer-events: auto;\n -webkit-tap-highlight-color: transparent;\n transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);\n opacity: 0;\n}\n.cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\n opacity: 1;\n}\n@media screen and (-ms-high-contrast: active) {\n .cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\n opacity: 0.6;\n }\n}\n.cdk-overlay-dark-backdrop {\n background: rgba(0, 0, 0, 0.32);\n}\n.cdk-overlay-transparent-backdrop, .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {\n opacity: 0;\n}\n.cdk-overlay-connected-position-bounding-box {\n position: absolute;\n z-index: 1000;\n display: flex;\n flex-direction: column;\n min-width: 1px;\n min-height: 1px;\n}\n.cdk-global-scrollblock {\n position: fixed;\n width: 100%;\n overflow-y: scroll;\n}\n@-webkit-keyframes cdk-text-field-autofill-start {\n /*!*/\n}\n@keyframes cdk-text-field-autofill-start {\n /*!*/\n}\n@-webkit-keyframes cdk-text-field-autofill-end {\n /*!*/\n}\n@keyframes cdk-text-field-autofill-end {\n /*!*/\n}\n.cdk-text-field-autofill-monitored:-webkit-autofill {\n -webkit-animation-name: cdk-text-field-autofill-start;\n animation-name: cdk-text-field-autofill-start;\n}\n.cdk-text-field-autofill-monitored:not(:-webkit-autofill) {\n -webkit-animation-name: cdk-text-field-autofill-end;\n animation-name: cdk-text-field-autofill-end;\n}\ntextarea.cdk-textarea-autosize {\n resize: none;\n}\ntextarea.cdk-textarea-autosize-measuring {\n height: auto !important;\n overflow: hidden !important;\n padding: 2px 0 !important;\n box-sizing: content-box !important;\n}\n.standard-theme .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.standard-theme .mat-option {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-option:hover:not(.mat-option-disabled), .standard-theme .mat-option:focus:not(.mat-option-disabled) {\n background: rgba(0, 0, 0, 0.04);\n}\n.standard-theme .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {\n background: rgba(0, 0, 0, 0.04);\n}\n.standard-theme .mat-option.mat-active {\n background: rgba(0, 0, 0, 0.04);\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-option.mat-option-disabled {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\n color: #607d8b;\n}\n.standard-theme .mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {\n color: #448aff;\n}\n.standard-theme .mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {\n color: #f44336;\n}\n.standard-theme .mat-optgroup-label {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-optgroup-disabled .mat-optgroup-label {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-pseudo-checkbox {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-pseudo-checkbox::after {\n color: #fafafa;\n}\n.standard-theme .mat-pseudo-checkbox-disabled {\n color: #b0b0b0;\n}\n.standard-theme .mat-primary .mat-pseudo-checkbox-checked,\n.standard-theme .mat-primary .mat-pseudo-checkbox-indeterminate {\n background: #607d8b;\n}\n.standard-theme .mat-pseudo-checkbox-checked,\n.standard-theme .mat-pseudo-checkbox-indeterminate,\n.standard-theme .mat-accent .mat-pseudo-checkbox-checked,\n.standard-theme .mat-accent .mat-pseudo-checkbox-indeterminate {\n background: #448aff;\n}\n.standard-theme .mat-warn .mat-pseudo-checkbox-checked,\n.standard-theme .mat-warn .mat-pseudo-checkbox-indeterminate {\n background: #f44336;\n}\n.standard-theme .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,\n.standard-theme .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {\n background: #b0b0b0;\n}\n.standard-theme .mat-elevation-z0 {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z1 {\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z2 {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z3 {\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z4 {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z5 {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z6 {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z7 {\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z8 {\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z9 {\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z10 {\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z11 {\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z12 {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z13 {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z14 {\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z15 {\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z16 {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z17 {\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z18 {\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z19 {\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z20 {\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z21 {\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z22 {\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z23 {\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z24 {\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-app-background, .standard-theme.mat-app-background {\n background-color: #fafafa;\n color: rgba(0, 0, 0, 0.87);\n}\n.mat-theme-loaded-marker {\n display: none;\n}\n.standard-theme .mat-autocomplete-panel {\n background: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-autocomplete-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {\n background: white;\n}\n.standard-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-badge-content {\n color: white;\n background: #607d8b;\n}\n@media (-ms-high-contrast: active) {\n .standard-theme .mat-badge-content {\n outline: solid 1px;\n border-radius: 0;\n }\n}\n.standard-theme .mat-badge-accent .mat-badge-content {\n background: #448aff;\n color: white;\n}\n.standard-theme .mat-badge-warn .mat-badge-content {\n color: white;\n background: #f44336;\n}\n.standard-theme .mat-badge {\n position: relative;\n}\n.standard-theme .mat-badge-hidden .mat-badge-content {\n display: none;\n}\n.standard-theme .mat-badge-disabled .mat-badge-content {\n background: #b9b9b9;\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-badge-content {\n position: absolute;\n text-align: center;\n display: inline-block;\n border-radius: 50%;\n transition: transform 200ms ease-in-out;\n transform: scale(0.6);\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n pointer-events: none;\n}\n.standard-theme .ng-animate-disabled .mat-badge-content,\n.standard-theme .mat-badge-content._mat-animation-noopable {\n transition: none;\n}\n.standard-theme .mat-badge-content.mat-badge-active {\n transform: none;\n}\n.standard-theme .mat-badge-small .mat-badge-content {\n width: 16px;\n height: 16px;\n line-height: 16px;\n}\n.standard-theme .mat-badge-small.mat-badge-above .mat-badge-content {\n top: -8px;\n}\n.standard-theme .mat-badge-small.mat-badge-below .mat-badge-content {\n bottom: -8px;\n}\n.standard-theme .mat-badge-small.mat-badge-before .mat-badge-content {\n left: -16px;\n}\n[dir=rtl] .standard-theme .mat-badge-small.mat-badge-before .mat-badge-content {\n left: auto;\n right: -16px;\n}\n.standard-theme .mat-badge-small.mat-badge-after .mat-badge-content {\n right: -16px;\n}\n[dir=rtl] .standard-theme .mat-badge-small.mat-badge-after .mat-badge-content {\n right: auto;\n left: -16px;\n}\n.standard-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: -8px;\n}\n[dir=rtl] .standard-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: auto;\n right: -8px;\n}\n.standard-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: -8px;\n}\n[dir=rtl] .standard-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: auto;\n left: -8px;\n}\n.standard-theme .mat-badge-medium .mat-badge-content {\n width: 22px;\n height: 22px;\n line-height: 22px;\n}\n.standard-theme .mat-badge-medium.mat-badge-above .mat-badge-content {\n top: -11px;\n}\n.standard-theme .mat-badge-medium.mat-badge-below .mat-badge-content {\n bottom: -11px;\n}\n.standard-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\n left: -22px;\n}\n[dir=rtl] .standard-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\n left: auto;\n right: -22px;\n}\n.standard-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\n right: -22px;\n}\n[dir=rtl] .standard-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\n right: auto;\n left: -22px;\n}\n.standard-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: -11px;\n}\n[dir=rtl] .standard-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: auto;\n right: -11px;\n}\n.standard-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: -11px;\n}\n[dir=rtl] .standard-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: auto;\n left: -11px;\n}\n.standard-theme .mat-badge-large .mat-badge-content {\n width: 28px;\n height: 28px;\n line-height: 28px;\n}\n.standard-theme .mat-badge-large.mat-badge-above .mat-badge-content {\n top: -14px;\n}\n.standard-theme .mat-badge-large.mat-badge-below .mat-badge-content {\n bottom: -14px;\n}\n.standard-theme .mat-badge-large.mat-badge-before .mat-badge-content {\n left: -28px;\n}\n[dir=rtl] .standard-theme .mat-badge-large.mat-badge-before .mat-badge-content {\n left: auto;\n right: -28px;\n}\n.standard-theme .mat-badge-large.mat-badge-after .mat-badge-content {\n right: -28px;\n}\n[dir=rtl] .standard-theme .mat-badge-large.mat-badge-after .mat-badge-content {\n right: auto;\n left: -28px;\n}\n.standard-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: -14px;\n}\n[dir=rtl] .standard-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: auto;\n right: -14px;\n}\n.standard-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: -14px;\n}\n[dir=rtl] .standard-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: auto;\n left: -14px;\n}\n.standard-theme .mat-bottom-sheet-container {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n background: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-button, .standard-theme .mat-icon-button, .standard-theme .mat-stroked-button {\n color: inherit;\n background: transparent;\n}\n.standard-theme .mat-button.mat-primary, .standard-theme .mat-icon-button.mat-primary, .standard-theme .mat-stroked-button.mat-primary {\n color: #607d8b;\n}\n.standard-theme .mat-button.mat-accent, .standard-theme .mat-icon-button.mat-accent, .standard-theme .mat-stroked-button.mat-accent {\n color: #448aff;\n}\n.standard-theme .mat-button.mat-warn, .standard-theme .mat-icon-button.mat-warn, .standard-theme .mat-stroked-button.mat-warn {\n color: #f44336;\n}\n.standard-theme .mat-button.mat-primary[disabled], .standard-theme .mat-button.mat-accent[disabled], .standard-theme .mat-button.mat-warn[disabled], .standard-theme .mat-button[disabled][disabled], .standard-theme .mat-icon-button.mat-primary[disabled], .standard-theme .mat-icon-button.mat-accent[disabled], .standard-theme .mat-icon-button.mat-warn[disabled], .standard-theme .mat-icon-button[disabled][disabled], .standard-theme .mat-stroked-button.mat-primary[disabled], .standard-theme .mat-stroked-button.mat-accent[disabled], .standard-theme .mat-stroked-button.mat-warn[disabled], .standard-theme .mat-stroked-button[disabled][disabled] {\n color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-button.mat-primary .mat-button-focus-overlay, .standard-theme .mat-icon-button.mat-primary .mat-button-focus-overlay, .standard-theme .mat-stroked-button.mat-primary .mat-button-focus-overlay {\n background-color: #607d8b;\n}\n.standard-theme .mat-button.mat-accent .mat-button-focus-overlay, .standard-theme .mat-icon-button.mat-accent .mat-button-focus-overlay, .standard-theme .mat-stroked-button.mat-accent .mat-button-focus-overlay {\n background-color: #448aff;\n}\n.standard-theme .mat-button.mat-warn .mat-button-focus-overlay, .standard-theme .mat-icon-button.mat-warn .mat-button-focus-overlay, .standard-theme .mat-stroked-button.mat-warn .mat-button-focus-overlay {\n background-color: #f44336;\n}\n.standard-theme .mat-button[disabled] .mat-button-focus-overlay, .standard-theme .mat-icon-button[disabled] .mat-button-focus-overlay, .standard-theme .mat-stroked-button[disabled] .mat-button-focus-overlay {\n background-color: transparent;\n}\n.standard-theme .mat-button .mat-ripple-element, .standard-theme .mat-icon-button .mat-ripple-element, .standard-theme .mat-stroked-button .mat-ripple-element {\n opacity: 0.1;\n background-color: currentColor;\n}\n.standard-theme .mat-button-focus-overlay {\n background: black;\n}\n.standard-theme .mat-stroked-button:not([disabled]) {\n border-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-flat-button, .standard-theme .mat-raised-button, .standard-theme .mat-fab, .standard-theme .mat-mini-fab {\n color: rgba(0, 0, 0, 0.87);\n background-color: white;\n}\n.standard-theme .mat-flat-button.mat-primary, .standard-theme .mat-raised-button.mat-primary, .standard-theme .mat-fab.mat-primary, .standard-theme .mat-mini-fab.mat-primary {\n color: white;\n}\n.standard-theme .mat-flat-button.mat-accent, .standard-theme .mat-raised-button.mat-accent, .standard-theme .mat-fab.mat-accent, .standard-theme .mat-mini-fab.mat-accent {\n color: white;\n}\n.standard-theme .mat-flat-button.mat-warn, .standard-theme .mat-raised-button.mat-warn, .standard-theme .mat-fab.mat-warn, .standard-theme .mat-mini-fab.mat-warn {\n color: white;\n}\n.standard-theme .mat-flat-button.mat-primary[disabled], .standard-theme .mat-flat-button.mat-accent[disabled], .standard-theme .mat-flat-button.mat-warn[disabled], .standard-theme .mat-flat-button[disabled][disabled], .standard-theme .mat-raised-button.mat-primary[disabled], .standard-theme .mat-raised-button.mat-accent[disabled], .standard-theme .mat-raised-button.mat-warn[disabled], .standard-theme .mat-raised-button[disabled][disabled], .standard-theme .mat-fab.mat-primary[disabled], .standard-theme .mat-fab.mat-accent[disabled], .standard-theme .mat-fab.mat-warn[disabled], .standard-theme .mat-fab[disabled][disabled], .standard-theme .mat-mini-fab.mat-primary[disabled], .standard-theme .mat-mini-fab.mat-accent[disabled], .standard-theme .mat-mini-fab.mat-warn[disabled], .standard-theme .mat-mini-fab[disabled][disabled] {\n color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-flat-button.mat-primary, .standard-theme .mat-raised-button.mat-primary, .standard-theme .mat-fab.mat-primary, .standard-theme .mat-mini-fab.mat-primary {\n background-color: #607d8b;\n}\n.standard-theme .mat-flat-button.mat-accent, .standard-theme .mat-raised-button.mat-accent, .standard-theme .mat-fab.mat-accent, .standard-theme .mat-mini-fab.mat-accent {\n background-color: #448aff;\n}\n.standard-theme .mat-flat-button.mat-warn, .standard-theme .mat-raised-button.mat-warn, .standard-theme .mat-fab.mat-warn, .standard-theme .mat-mini-fab.mat-warn {\n background-color: #f44336;\n}\n.standard-theme .mat-flat-button.mat-primary[disabled], .standard-theme .mat-flat-button.mat-accent[disabled], .standard-theme .mat-flat-button.mat-warn[disabled], .standard-theme .mat-flat-button[disabled][disabled], .standard-theme .mat-raised-button.mat-primary[disabled], .standard-theme .mat-raised-button.mat-accent[disabled], .standard-theme .mat-raised-button.mat-warn[disabled], .standard-theme .mat-raised-button[disabled][disabled], .standard-theme .mat-fab.mat-primary[disabled], .standard-theme .mat-fab.mat-accent[disabled], .standard-theme .mat-fab.mat-warn[disabled], .standard-theme .mat-fab[disabled][disabled], .standard-theme .mat-mini-fab.mat-primary[disabled], .standard-theme .mat-mini-fab.mat-accent[disabled], .standard-theme .mat-mini-fab.mat-warn[disabled], .standard-theme .mat-mini-fab[disabled][disabled] {\n background-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-flat-button.mat-primary .mat-ripple-element, .standard-theme .mat-raised-button.mat-primary .mat-ripple-element, .standard-theme .mat-fab.mat-primary .mat-ripple-element, .standard-theme .mat-mini-fab.mat-primary .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.standard-theme .mat-flat-button.mat-accent .mat-ripple-element, .standard-theme .mat-raised-button.mat-accent .mat-ripple-element, .standard-theme .mat-fab.mat-accent .mat-ripple-element, .standard-theme .mat-mini-fab.mat-accent .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.standard-theme .mat-flat-button.mat-warn .mat-ripple-element, .standard-theme .mat-raised-button.mat-warn .mat-ripple-element, .standard-theme .mat-fab.mat-warn .mat-ripple-element, .standard-theme .mat-mini-fab.mat-warn .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.standard-theme .mat-stroked-button:not([class*=mat-elevation-z]), .standard-theme .mat-flat-button:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-raised-button:not([class*=mat-elevation-z]) {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]) {\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-raised-button[disabled]:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-fab:not([class*=mat-elevation-z]), .standard-theme .mat-mini-fab:not([class*=mat-elevation-z]) {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-fab:not([disabled]):active:not([class*=mat-elevation-z]), .standard-theme .mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]) {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-fab[disabled]:not([class*=mat-elevation-z]), .standard-theme .mat-mini-fab[disabled]:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-button-toggle-standalone,\n.standard-theme .mat-button-toggle-group {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\n.standard-theme .mat-button-toggle-group-appearance-standard {\n box-shadow: none;\n}\n.standard-theme .mat-button-toggle {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-button-toggle .mat-button-toggle-focus-overlay {\n background-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-button-toggle-appearance-standard {\n color: rgba(0, 0, 0, 0.87);\n background: white;\n}\n.standard-theme .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {\n background-color: black;\n}\n.standard-theme .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\n border-left: solid 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\n border-left: none;\n border-right: solid 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {\n border-left: none;\n border-right: none;\n border-top: solid 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-button-toggle-checked {\n background-color: #e0e0e0;\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-button-toggle-checked.mat-button-toggle-appearance-standard {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-button-toggle-disabled {\n color: rgba(0, 0, 0, 0.26);\n background-color: #eeeeee;\n}\n.standard-theme .mat-button-toggle-disabled.mat-button-toggle-appearance-standard {\n background: white;\n}\n.standard-theme .mat-button-toggle-disabled.mat-button-toggle-checked {\n background-color: #bdbdbd;\n}\n.standard-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\n.standard-theme .mat-button-toggle-group-appearance-standard {\n border: solid 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-card {\n background: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-card:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-card.mat-card-flat:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-card-subtitle {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-checkbox-frame {\n border-color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-checkbox-checkmark {\n fill: #fafafa;\n}\n.standard-theme .mat-checkbox-checkmark-path {\n stroke: #fafafa !important;\n}\n@media (-ms-high-contrast: black-on-white) {\n .standard-theme .mat-checkbox-checkmark-path {\n stroke: #000 !important;\n }\n}\n.standard-theme .mat-checkbox-mixedmark {\n background-color: #fafafa;\n}\n.standard-theme .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .standard-theme .mat-checkbox-checked.mat-primary .mat-checkbox-background {\n background-color: #607d8b;\n}\n.standard-theme .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .standard-theme .mat-checkbox-checked.mat-accent .mat-checkbox-background {\n background-color: #448aff;\n}\n.standard-theme .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .standard-theme .mat-checkbox-checked.mat-warn .mat-checkbox-background {\n background-color: #f44336;\n}\n.standard-theme .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .standard-theme .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {\n background-color: #b0b0b0;\n}\n.standard-theme .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {\n border-color: #b0b0b0;\n}\n.standard-theme .mat-checkbox-disabled .mat-checkbox-label {\n color: rgba(0, 0, 0, 0.54);\n}\n@media (-ms-high-contrast: active) {\n .standard-theme .mat-checkbox-disabled {\n opacity: 0.5;\n }\n}\n@media (-ms-high-contrast: active) {\n .standard-theme .mat-checkbox-background {\n background: none;\n }\n}\n.standard-theme .mat-checkbox .mat-ripple-element {\n background-color: black;\n}\n.standard-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,\n.standard-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {\n background: #607d8b;\n}\n.standard-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,\n.standard-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {\n background: #448aff;\n}\n.standard-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,\n.standard-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {\n background: #f44336;\n}\n.standard-theme .mat-chip.mat-standard-chip {\n background-color: #e0e0e0;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-chip.mat-standard-chip .mat-chip-remove {\n color: rgba(0, 0, 0, 0.87);\n opacity: 0.4;\n}\n.standard-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {\n opacity: 0.54;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-disabled {\n opacity: 0.4;\n}\n.standard-theme .mat-chip.mat-standard-chip::after {\n background: black;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {\n background-color: #607d8b;\n color: white;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {\n color: white;\n opacity: 0.4;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {\n background: rgba(255, 255, 255, 0.1);\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {\n background-color: #f44336;\n color: white;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {\n color: white;\n opacity: 0.4;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {\n background: rgba(255, 255, 255, 0.1);\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {\n background-color: #448aff;\n color: white;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {\n color: white;\n opacity: 0.4;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {\n background: rgba(255, 255, 255, 0.1);\n}\n.standard-theme .mat-table {\n background: white;\n}\n.standard-theme .mat-table thead, .standard-theme .mat-table tbody, .standard-theme .mat-table tfoot,\n.standard-theme mat-header-row, .standard-theme mat-row, .standard-theme mat-footer-row,\n.standard-theme [mat-header-row], .standard-theme [mat-row], .standard-theme [mat-footer-row],\n.standard-theme .mat-table-sticky {\n background: inherit;\n}\n.standard-theme mat-row, .standard-theme mat-header-row, .standard-theme mat-footer-row,\n.standard-theme th.mat-header-cell, .standard-theme td.mat-cell, .standard-theme td.mat-footer-cell {\n border-bottom-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-header-cell {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-cell, .standard-theme .mat-footer-cell {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-calendar-arrow {\n border-top-color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-datepicker-toggle,\n.standard-theme .mat-datepicker-content .mat-calendar-next-button,\n.standard-theme .mat-datepicker-content .mat-calendar-previous-button {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-calendar-table-header {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-calendar-table-header-divider::after {\n background: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-calendar-body-label {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-calendar-body-cell-content {\n color: rgba(0, 0, 0, 0.87);\n border-color: transparent;\n}\n.standard-theme .mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\n.standard-theme .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\n.standard-theme .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\n background-color: rgba(0, 0, 0, 0.04);\n}\n.standard-theme .mat-calendar-body-today:not(.mat-calendar-body-selected) {\n border-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected) {\n border-color: rgba(0, 0, 0, 0.18);\n}\n.standard-theme .mat-calendar-body-selected {\n background-color: #607d8b;\n color: white;\n}\n.standard-theme .mat-calendar-body-disabled > .mat-calendar-body-selected {\n background-color: rgba(96, 125, 139, 0.4);\n}\n.standard-theme .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 1px white;\n}\n.standard-theme .mat-datepicker-content {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n background-color: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-datepicker-content.mat-accent .mat-calendar-body-selected {\n background-color: #448aff;\n color: white;\n}\n.standard-theme .mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {\n background-color: rgba(68, 138, 255, 0.4);\n}\n.standard-theme .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 1px white;\n}\n.standard-theme .mat-datepicker-content.mat-warn .mat-calendar-body-selected {\n background-color: #f44336;\n color: white;\n}\n.standard-theme .mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {\n background-color: rgba(244, 67, 54, 0.4);\n}\n.standard-theme .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 1px white;\n}\n.standard-theme .mat-datepicker-content-touch {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-datepicker-toggle-active {\n color: #607d8b;\n}\n.standard-theme .mat-datepicker-toggle-active.mat-accent {\n color: #448aff;\n}\n.standard-theme .mat-datepicker-toggle-active.mat-warn {\n color: #f44336;\n}\n.standard-theme .mat-dialog-container {\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\n background: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-divider {\n border-top-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-divider-vertical {\n border-right-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-expansion-panel {\n background: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-expansion-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-action-row {\n border-top-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]), .standard-theme .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]), .standard-theme .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]) {\n background: rgba(0, 0, 0, 0.04);\n}\n@media (hover: none) {\n .standard-theme .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover {\n background: white;\n }\n}\n.standard-theme .mat-expansion-panel-header-title {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-expansion-panel-header-description,\n.standard-theme .mat-expansion-indicator::after {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-expansion-panel-header[aria-disabled=true] {\n color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,\n.standard-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description {\n color: inherit;\n}\n.standard-theme .mat-form-field-label {\n color: rgba(0, 0, 0, 0.6);\n}\n.standard-theme .mat-hint {\n color: rgba(0, 0, 0, 0.6);\n}\n.standard-theme .mat-form-field.mat-focused .mat-form-field-label {\n color: #607d8b;\n}\n.standard-theme .mat-form-field.mat-focused .mat-form-field-label.mat-accent {\n color: #448aff;\n}\n.standard-theme .mat-form-field.mat-focused .mat-form-field-label.mat-warn {\n color: #f44336;\n}\n.standard-theme .mat-focused .mat-form-field-required-marker {\n color: #448aff;\n}\n.standard-theme .mat-form-field-ripple {\n background-color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-form-field.mat-focused .mat-form-field-ripple {\n background-color: #607d8b;\n}\n.standard-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {\n background-color: #448aff;\n}\n.standard-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {\n background-color: #f44336;\n}\n.standard-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {\n color: #607d8b;\n}\n.standard-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {\n color: #448aff;\n}\n.standard-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {\n color: #f44336;\n}\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label {\n color: #f44336;\n}\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {\n color: #f44336;\n}\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {\n background-color: #f44336;\n}\n.standard-theme .mat-error {\n color: #f44336;\n}\n.standard-theme .mat-form-field-appearance-legacy .mat-form-field-label {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-form-field-appearance-legacy .mat-hint {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-form-field-appearance-legacy .mat-form-field-underline {\n background-color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\n background-size: 4px 100%;\n background-repeat: repeat-x;\n}\n.standard-theme .mat-form-field-appearance-standard .mat-form-field-underline {\n background-color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\n background-size: 4px 100%;\n background-repeat: repeat-x;\n}\n.standard-theme .mat-form-field-appearance-fill .mat-form-field-flex {\n background-color: rgba(0, 0, 0, 0.04);\n}\n.standard-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {\n background-color: rgba(0, 0, 0, 0.02);\n}\n.standard-theme .mat-form-field-appearance-fill .mat-form-field-underline::before {\n background-color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {\n background-color: transparent;\n}\n.standard-theme .mat-form-field-appearance-outline .mat-form-field-outline {\n color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-form-field-appearance-outline .mat-form-field-outline-thick {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {\n color: #607d8b;\n}\n.standard-theme .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {\n color: #448aff;\n}\n.standard-theme .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {\n color: #f44336;\n}\n.standard-theme .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {\n color: #f44336;\n}\n.standard-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {\n color: rgba(0, 0, 0, 0.06);\n}\n.standard-theme .mat-icon.mat-primary {\n color: #607d8b;\n}\n.standard-theme .mat-icon.mat-accent {\n color: #448aff;\n}\n.standard-theme .mat-icon.mat-warn {\n color: #f44336;\n}\n.standard-theme .mat-form-field-type-mat-native-select .mat-form-field-infix::after {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-input-element:disabled,\n.standard-theme .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-input-element {\n caret-color: #607d8b;\n}\n.standard-theme .mat-input-element::-webkit-input-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-input-element::-moz-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-input-element::-ms-input-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-input-element::placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-input-element::-moz-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-input-element::-webkit-input-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-input-element:-ms-input-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-accent .mat-input-element {\n caret-color: #448aff;\n}\n.standard-theme .mat-warn .mat-input-element,\n.standard-theme .mat-form-field-invalid .mat-input-element {\n caret-color: #f44336;\n}\n.standard-theme .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {\n color: #f44336;\n}\n.standard-theme .mat-list-base .mat-list-item {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-list-base .mat-list-option {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-list-base .mat-subheader {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-list-item-disabled {\n background-color: #eeeeee;\n}\n.standard-theme .mat-list-option:hover, .standard-theme .mat-list-option:focus,\n.standard-theme .mat-nav-list .mat-list-item:hover,\n.standard-theme .mat-nav-list .mat-list-item:focus,\n.standard-theme .mat-action-list .mat-list-item:hover,\n.standard-theme .mat-action-list .mat-list-item:focus {\n background: rgba(0, 0, 0, 0.04);\n}\n.standard-theme .mat-menu-panel {\n background: white;\n}\n.standard-theme .mat-menu-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-menu-item {\n background: transparent;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-menu-item[disabled], .standard-theme .mat-menu-item[disabled]::after {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-menu-item .mat-icon-no-color,\n.standard-theme .mat-menu-item-submenu-trigger::after {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-menu-item:hover:not([disabled]),\n.standard-theme .mat-menu-item.cdk-program-focused:not([disabled]),\n.standard-theme .mat-menu-item.cdk-keyboard-focused:not([disabled]),\n.standard-theme .mat-menu-item-highlighted:not([disabled]) {\n background: rgba(0, 0, 0, 0.04);\n}\n.standard-theme .mat-paginator {\n background: white;\n}\n.standard-theme .mat-paginator,\n.standard-theme .mat-paginator-page-size .mat-select-trigger {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-paginator-decrement,\n.standard-theme .mat-paginator-increment {\n border-top: 2px solid rgba(0, 0, 0, 0.54);\n border-right: 2px solid rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-paginator-first,\n.standard-theme .mat-paginator-last {\n border-top: 2px solid rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-icon-button[disabled] .mat-paginator-decrement,\n.standard-theme .mat-icon-button[disabled] .mat-paginator-increment,\n.standard-theme .mat-icon-button[disabled] .mat-paginator-first,\n.standard-theme .mat-icon-button[disabled] .mat-paginator-last {\n border-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-progress-bar-background {\n fill: #cfd8dc;\n}\n.standard-theme .mat-progress-bar-buffer {\n background-color: #cfd8dc;\n}\n.standard-theme .mat-progress-bar-fill::after {\n background-color: #607d8b;\n}\n.standard-theme .mat-progress-bar.mat-accent .mat-progress-bar-background {\n fill: #82b1ff;\n}\n.standard-theme .mat-progress-bar.mat-accent .mat-progress-bar-buffer {\n background-color: #82b1ff;\n}\n.standard-theme .mat-progress-bar.mat-accent .mat-progress-bar-fill::after {\n background-color: #448aff;\n}\n.standard-theme .mat-progress-bar.mat-warn .mat-progress-bar-background {\n fill: #ffcdd2;\n}\n.standard-theme .mat-progress-bar.mat-warn .mat-progress-bar-buffer {\n background-color: #ffcdd2;\n}\n.standard-theme .mat-progress-bar.mat-warn .mat-progress-bar-fill::after {\n background-color: #f44336;\n}\n.standard-theme .mat-progress-spinner circle, .standard-theme .mat-spinner circle {\n stroke: #607d8b;\n}\n.standard-theme .mat-progress-spinner.mat-accent circle, .standard-theme .mat-spinner.mat-accent circle {\n stroke: #448aff;\n}\n.standard-theme .mat-progress-spinner.mat-warn circle, .standard-theme .mat-spinner.mat-warn circle {\n stroke: #f44336;\n}\n.standard-theme .mat-radio-outer-circle {\n border-color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {\n border-color: #607d8b;\n}\n.standard-theme .mat-radio-button.mat-primary .mat-radio-inner-circle,\n.standard-theme .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .standard-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple, .standard-theme .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {\n background-color: #607d8b;\n}\n.standard-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {\n border-color: #448aff;\n}\n.standard-theme .mat-radio-button.mat-accent .mat-radio-inner-circle,\n.standard-theme .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .standard-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple, .standard-theme .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {\n background-color: #448aff;\n}\n.standard-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {\n border-color: #f44336;\n}\n.standard-theme .mat-radio-button.mat-warn .mat-radio-inner-circle,\n.standard-theme .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .standard-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple, .standard-theme .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {\n background-color: #f44336;\n}\n.standard-theme .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,\n.standard-theme .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {\n border-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,\n.standard-theme .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {\n background-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-radio-button.mat-radio-disabled .mat-radio-label-content {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-radio-button .mat-ripple-element {\n background-color: black;\n}\n.standard-theme .mat-select-value {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-select-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-select-disabled .mat-select-value {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-select-arrow {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-select-panel {\n background: white;\n}\n.standard-theme .mat-select-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {\n background: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-form-field.mat-focused.mat-primary .mat-select-arrow {\n color: #607d8b;\n}\n.standard-theme .mat-form-field.mat-focused.mat-accent .mat-select-arrow {\n color: #448aff;\n}\n.standard-theme .mat-form-field.mat-focused.mat-warn .mat-select-arrow {\n color: #f44336;\n}\n.standard-theme .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {\n color: #f44336;\n}\n.standard-theme .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-drawer-container {\n background-color: #fafafa;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-drawer {\n background-color: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-drawer.mat-drawer-push {\n background-color: white;\n}\n.standard-theme .mat-drawer:not(.mat-drawer-side) {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-drawer-side {\n border-right: solid 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-drawer-side.mat-drawer-end {\n border-left: solid 1px rgba(0, 0, 0, 0.12);\n border-right: none;\n}\n.standard-theme [dir=rtl] .mat-drawer-side {\n border-left: solid 1px rgba(0, 0, 0, 0.12);\n border-right: none;\n}\n.standard-theme [dir=rtl] .mat-drawer-side.mat-drawer-end {\n border-left: none;\n border-right: solid 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-drawer-backdrop.mat-drawer-shown {\n background-color: rgba(0, 0, 0, 0.6);\n}\n.standard-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {\n background-color: #448aff;\n}\n.standard-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-bar {\n background-color: rgba(68, 138, 255, 0.54);\n}\n.standard-theme .mat-slide-toggle.mat-checked .mat-ripple-element {\n background-color: #448aff;\n}\n.standard-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {\n background-color: #607d8b;\n}\n.standard-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {\n background-color: rgba(96, 125, 139, 0.54);\n}\n.standard-theme .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {\n background-color: #607d8b;\n}\n.standard-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {\n background-color: #f44336;\n}\n.standard-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {\n background-color: rgba(244, 67, 54, 0.54);\n}\n.standard-theme .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {\n background-color: #f44336;\n}\n.standard-theme .mat-slide-toggle:not(.mat-checked) .mat-ripple-element {\n background-color: black;\n}\n.standard-theme .mat-slide-toggle-thumb {\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n background-color: #fafafa;\n}\n.standard-theme .mat-slide-toggle-bar {\n background-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-slider-track-background {\n background-color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-primary .mat-slider-track-fill,\n.standard-theme .mat-primary .mat-slider-thumb,\n.standard-theme .mat-primary .mat-slider-thumb-label {\n background-color: #607d8b;\n}\n.standard-theme .mat-primary .mat-slider-thumb-label-text {\n color: white;\n}\n.standard-theme .mat-accent .mat-slider-track-fill,\n.standard-theme .mat-accent .mat-slider-thumb,\n.standard-theme .mat-accent .mat-slider-thumb-label {\n background-color: #448aff;\n}\n.standard-theme .mat-accent .mat-slider-thumb-label-text {\n color: white;\n}\n.standard-theme .mat-warn .mat-slider-track-fill,\n.standard-theme .mat-warn .mat-slider-thumb,\n.standard-theme .mat-warn .mat-slider-thumb-label {\n background-color: #f44336;\n}\n.standard-theme .mat-warn .mat-slider-thumb-label-text {\n color: white;\n}\n.standard-theme .mat-slider-focus-ring {\n background-color: rgba(68, 138, 255, 0.2);\n}\n.standard-theme .mat-slider:hover .mat-slider-track-background,\n.standard-theme .cdk-focused .mat-slider-track-background {\n background-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-slider-disabled .mat-slider-track-background,\n.standard-theme .mat-slider-disabled .mat-slider-track-fill,\n.standard-theme .mat-slider-disabled .mat-slider-thumb {\n background-color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-slider-disabled:hover .mat-slider-track-background {\n background-color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-slider-min-value .mat-slider-focus-ring {\n background-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,\n.standard-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label {\n background-color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,\n.standard-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label {\n background-color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb {\n border-color: rgba(0, 0, 0, 0.26);\n background-color: transparent;\n}\n.standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb, .standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb {\n border-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb, .standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb {\n border-color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-slider-has-ticks .mat-slider-wrapper::after {\n border-color: rgba(0, 0, 0, 0.7);\n}\n.standard-theme .mat-slider-horizontal .mat-slider-ticks {\n background-image: repeating-linear-gradient(to right, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\n background-image: -moz-repeating-linear-gradient(0.0001deg, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\n}\n.standard-theme .mat-slider-vertical .mat-slider-ticks {\n background-image: repeating-linear-gradient(to bottom, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\n}\n.standard-theme .mat-step-header.cdk-keyboard-focused, .standard-theme .mat-step-header.cdk-program-focused, .standard-theme .mat-step-header:hover {\n background-color: rgba(0, 0, 0, 0.04);\n}\n@media (hover: none) {\n .standard-theme .mat-step-header:hover {\n background: none;\n }\n}\n.standard-theme .mat-step-header .mat-step-label,\n.standard-theme .mat-step-header .mat-step-optional {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-step-header .mat-step-icon {\n background-color: rgba(0, 0, 0, 0.54);\n color: white;\n}\n.standard-theme .mat-step-header .mat-step-icon-selected,\n.standard-theme .mat-step-header .mat-step-icon-state-done,\n.standard-theme .mat-step-header .mat-step-icon-state-edit {\n background-color: #607d8b;\n color: white;\n}\n.standard-theme .mat-step-header .mat-step-icon-state-error {\n background-color: transparent;\n color: #f44336;\n}\n.standard-theme .mat-step-header .mat-step-label.mat-step-label-active {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-step-header .mat-step-label.mat-step-label-error {\n color: #f44336;\n}\n.standard-theme .mat-stepper-horizontal, .standard-theme .mat-stepper-vertical {\n background-color: white;\n}\n.standard-theme .mat-stepper-vertical-line::before {\n border-left-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-horizontal-stepper-header::before,\n.standard-theme .mat-horizontal-stepper-header::after,\n.standard-theme .mat-stepper-horizontal-line {\n border-top-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-sort-header-arrow {\n color: #757575;\n}\n.standard-theme .mat-tab-nav-bar,\n.standard-theme .mat-tab-header {\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-tab-group-inverted-header .mat-tab-nav-bar,\n.standard-theme .mat-tab-group-inverted-header .mat-tab-header {\n border-top: 1px solid rgba(0, 0, 0, 0.12);\n border-bottom: none;\n}\n.standard-theme .mat-tab-label, .standard-theme .mat-tab-link {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-link.mat-tab-disabled {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-tab-group[class*=mat-background-] .mat-tab-header,\n.standard-theme .mat-tab-nav-bar[class*=mat-background-] {\n border-bottom: none;\n border-top: none;\n}\n.standard-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(207, 216, 220, 0.3);\n}\n.standard-theme .mat-tab-group.mat-primary .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-primary .mat-ink-bar {\n background-color: #607d8b;\n}\n.standard-theme .mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar {\n background-color: white;\n}\n.standard-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(130, 177, 255, 0.3);\n}\n.standard-theme .mat-tab-group.mat-accent .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-accent .mat-ink-bar {\n background-color: #448aff;\n}\n.standard-theme .mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar {\n background-color: white;\n}\n.standard-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(255, 205, 210, 0.3);\n}\n.standard-theme .mat-tab-group.mat-warn .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-warn .mat-ink-bar {\n background-color: #f44336;\n}\n.standard-theme .mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar {\n background-color: white;\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(207, 216, 220, 0.3);\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-header, .standard-theme .mat-tab-group.mat-background-primary .mat-tab-links, .standard-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-links, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination {\n background-color: #607d8b;\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-label, .standard-theme .mat-tab-group.mat-background-primary .mat-tab-link, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link {\n color: white;\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled {\n color: rgba(255, 255, 255, 0.4);\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron {\n border-color: white;\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(255, 255, 255, 0.4);\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-ripple-element, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(130, 177, 255, 0.3);\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-header, .standard-theme .mat-tab-group.mat-background-accent .mat-tab-links, .standard-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-links, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination {\n background-color: #448aff;\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-label, .standard-theme .mat-tab-group.mat-background-accent .mat-tab-link, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link {\n color: white;\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled {\n color: rgba(255, 255, 255, 0.4);\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron {\n border-color: white;\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(255, 255, 255, 0.4);\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-ripple-element, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(255, 205, 210, 0.3);\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-header, .standard-theme .mat-tab-group.mat-background-warn .mat-tab-links, .standard-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-links, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination {\n background-color: #f44336;\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-label, .standard-theme .mat-tab-group.mat-background-warn .mat-tab-link, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link {\n color: white;\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled {\n color: rgba(255, 255, 255, 0.4);\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron {\n border-color: white;\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(255, 255, 255, 0.4);\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-ripple-element, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.standard-theme .mat-toolbar {\n background: whitesmoke;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-toolbar.mat-primary {\n background: #607d8b;\n color: white;\n}\n.standard-theme .mat-toolbar.mat-accent {\n background: #448aff;\n color: white;\n}\n.standard-theme .mat-toolbar.mat-warn {\n background: #f44336;\n color: white;\n}\n.standard-theme .mat-toolbar .mat-form-field-underline,\n.standard-theme .mat-toolbar .mat-form-field-ripple,\n.standard-theme .mat-toolbar .mat-focused .mat-form-field-ripple {\n background-color: currentColor;\n}\n.standard-theme .mat-toolbar .mat-form-field-label,\n.standard-theme .mat-toolbar .mat-focused .mat-form-field-label,\n.standard-theme .mat-toolbar .mat-select-value,\n.standard-theme .mat-toolbar .mat-select-arrow,\n.standard-theme .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow {\n color: inherit;\n}\n.standard-theme .mat-toolbar .mat-input-element {\n caret-color: currentColor;\n}\n.standard-theme .mat-tooltip {\n background: rgba(97, 97, 97, 0.9);\n}\n.standard-theme .mat-tree {\n background: white;\n}\n.standard-theme .mat-tree-node,\n.standard-theme .mat-nested-tree-node {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-snack-bar-container {\n color: rgba(255, 255, 255, 0.7);\n background: #323232;\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-simple-snackbar-action {\n color: #448aff;\n}\n.standard-theme h1 {\n color: #607d8b;\n}\n.green-theme .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.green-theme .mat-option {\n color: white;\n}\n.green-theme .mat-option:hover:not(.mat-option-disabled), .green-theme .mat-option:focus:not(.mat-option-disabled) {\n background: rgba(255, 255, 255, 0.04);\n}\n.green-theme .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {\n background: rgba(255, 255, 255, 0.04);\n}\n.green-theme .mat-option.mat-active {\n background: rgba(255, 255, 255, 0.04);\n color: white;\n}\n.green-theme .mat-option.mat-option-disabled {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\n color: #8bc34a;\n}\n.green-theme .mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {\n color: #4caf50;\n}\n.green-theme .mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {\n color: #4caf50;\n}\n.green-theme .mat-optgroup-label {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-optgroup-disabled .mat-optgroup-label {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-pseudo-checkbox {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-pseudo-checkbox::after {\n color: #303030;\n}\n.green-theme .mat-pseudo-checkbox-disabled {\n color: #686868;\n}\n.green-theme .mat-primary .mat-pseudo-checkbox-checked,\n.green-theme .mat-primary .mat-pseudo-checkbox-indeterminate {\n background: #8bc34a;\n}\n.green-theme .mat-pseudo-checkbox-checked,\n.green-theme .mat-pseudo-checkbox-indeterminate,\n.green-theme .mat-accent .mat-pseudo-checkbox-checked,\n.green-theme .mat-accent .mat-pseudo-checkbox-indeterminate {\n background: #4caf50;\n}\n.green-theme .mat-warn .mat-pseudo-checkbox-checked,\n.green-theme .mat-warn .mat-pseudo-checkbox-indeterminate {\n background: #4caf50;\n}\n.green-theme .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,\n.green-theme .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {\n background: #686868;\n}\n.green-theme .mat-elevation-z0 {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z1 {\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z2 {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z3 {\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z4 {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z5 {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z6 {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z7 {\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z8 {\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z9 {\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z10 {\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z11 {\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z12 {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z13 {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z14 {\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z15 {\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z16 {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z17 {\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z18 {\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z19 {\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z20 {\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z21 {\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z22 {\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z23 {\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z24 {\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-app-background, .green-theme.mat-app-background {\n background-color: #303030;\n color: white;\n}\n.mat-theme-loaded-marker {\n display: none;\n}\n.green-theme .mat-autocomplete-panel {\n background: #424242;\n color: white;\n}\n.green-theme .mat-autocomplete-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {\n background: #424242;\n}\n.green-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {\n color: white;\n}\n.green-theme .mat-badge-content {\n color: rgba(0, 0, 0, 0.87);\n background: #8bc34a;\n}\n@media (-ms-high-contrast: active) {\n .green-theme .mat-badge-content {\n outline: solid 1px;\n border-radius: 0;\n }\n}\n.green-theme .mat-badge-accent .mat-badge-content {\n background: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-badge-warn .mat-badge-content {\n color: rgba(0, 0, 0, 0.87);\n background: #4caf50;\n}\n.green-theme .mat-badge {\n position: relative;\n}\n.green-theme .mat-badge-hidden .mat-badge-content {\n display: none;\n}\n.green-theme .mat-badge-disabled .mat-badge-content {\n background: #6e6e6e;\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-badge-content {\n position: absolute;\n text-align: center;\n display: inline-block;\n border-radius: 50%;\n transition: transform 200ms ease-in-out;\n transform: scale(0.6);\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n pointer-events: none;\n}\n.green-theme .ng-animate-disabled .mat-badge-content,\n.green-theme .mat-badge-content._mat-animation-noopable {\n transition: none;\n}\n.green-theme .mat-badge-content.mat-badge-active {\n transform: none;\n}\n.green-theme .mat-badge-small .mat-badge-content {\n width: 16px;\n height: 16px;\n line-height: 16px;\n}\n.green-theme .mat-badge-small.mat-badge-above .mat-badge-content {\n top: -8px;\n}\n.green-theme .mat-badge-small.mat-badge-below .mat-badge-content {\n bottom: -8px;\n}\n.green-theme .mat-badge-small.mat-badge-before .mat-badge-content {\n left: -16px;\n}\n[dir=rtl] .green-theme .mat-badge-small.mat-badge-before .mat-badge-content {\n left: auto;\n right: -16px;\n}\n.green-theme .mat-badge-small.mat-badge-after .mat-badge-content {\n right: -16px;\n}\n[dir=rtl] .green-theme .mat-badge-small.mat-badge-after .mat-badge-content {\n right: auto;\n left: -16px;\n}\n.green-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: -8px;\n}\n[dir=rtl] .green-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: auto;\n right: -8px;\n}\n.green-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: -8px;\n}\n[dir=rtl] .green-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: auto;\n left: -8px;\n}\n.green-theme .mat-badge-medium .mat-badge-content {\n width: 22px;\n height: 22px;\n line-height: 22px;\n}\n.green-theme .mat-badge-medium.mat-badge-above .mat-badge-content {\n top: -11px;\n}\n.green-theme .mat-badge-medium.mat-badge-below .mat-badge-content {\n bottom: -11px;\n}\n.green-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\n left: -22px;\n}\n[dir=rtl] .green-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\n left: auto;\n right: -22px;\n}\n.green-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\n right: -22px;\n}\n[dir=rtl] .green-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\n right: auto;\n left: -22px;\n}\n.green-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: -11px;\n}\n[dir=rtl] .green-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: auto;\n right: -11px;\n}\n.green-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: -11px;\n}\n[dir=rtl] .green-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: auto;\n left: -11px;\n}\n.green-theme .mat-badge-large .mat-badge-content {\n width: 28px;\n height: 28px;\n line-height: 28px;\n}\n.green-theme .mat-badge-large.mat-badge-above .mat-badge-content {\n top: -14px;\n}\n.green-theme .mat-badge-large.mat-badge-below .mat-badge-content {\n bottom: -14px;\n}\n.green-theme .mat-badge-large.mat-badge-before .mat-badge-content {\n left: -28px;\n}\n[dir=rtl] .green-theme .mat-badge-large.mat-badge-before .mat-badge-content {\n left: auto;\n right: -28px;\n}\n.green-theme .mat-badge-large.mat-badge-after .mat-badge-content {\n right: -28px;\n}\n[dir=rtl] .green-theme .mat-badge-large.mat-badge-after .mat-badge-content {\n right: auto;\n left: -28px;\n}\n.green-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: -14px;\n}\n[dir=rtl] .green-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: auto;\n right: -14px;\n}\n.green-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: -14px;\n}\n[dir=rtl] .green-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: auto;\n left: -14px;\n}\n.green-theme .mat-bottom-sheet-container {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n background: #424242;\n color: white;\n}\n.green-theme .mat-button, .green-theme .mat-icon-button, .green-theme .mat-stroked-button {\n color: inherit;\n background: transparent;\n}\n.green-theme .mat-button.mat-primary, .green-theme .mat-icon-button.mat-primary, .green-theme .mat-stroked-button.mat-primary {\n color: #8bc34a;\n}\n.green-theme .mat-button.mat-accent, .green-theme .mat-icon-button.mat-accent, .green-theme .mat-stroked-button.mat-accent {\n color: #4caf50;\n}\n.green-theme .mat-button.mat-warn, .green-theme .mat-icon-button.mat-warn, .green-theme .mat-stroked-button.mat-warn {\n color: #4caf50;\n}\n.green-theme .mat-button.mat-primary[disabled], .green-theme .mat-button.mat-accent[disabled], .green-theme .mat-button.mat-warn[disabled], .green-theme .mat-button[disabled][disabled], .green-theme .mat-icon-button.mat-primary[disabled], .green-theme .mat-icon-button.mat-accent[disabled], .green-theme .mat-icon-button.mat-warn[disabled], .green-theme .mat-icon-button[disabled][disabled], .green-theme .mat-stroked-button.mat-primary[disabled], .green-theme .mat-stroked-button.mat-accent[disabled], .green-theme .mat-stroked-button.mat-warn[disabled], .green-theme .mat-stroked-button[disabled][disabled] {\n color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-button.mat-primary .mat-button-focus-overlay, .green-theme .mat-icon-button.mat-primary .mat-button-focus-overlay, .green-theme .mat-stroked-button.mat-primary .mat-button-focus-overlay {\n background-color: #8bc34a;\n}\n.green-theme .mat-button.mat-accent .mat-button-focus-overlay, .green-theme .mat-icon-button.mat-accent .mat-button-focus-overlay, .green-theme .mat-stroked-button.mat-accent .mat-button-focus-overlay {\n background-color: #4caf50;\n}\n.green-theme .mat-button.mat-warn .mat-button-focus-overlay, .green-theme .mat-icon-button.mat-warn .mat-button-focus-overlay, .green-theme .mat-stroked-button.mat-warn .mat-button-focus-overlay {\n background-color: #4caf50;\n}\n.green-theme .mat-button[disabled] .mat-button-focus-overlay, .green-theme .mat-icon-button[disabled] .mat-button-focus-overlay, .green-theme .mat-stroked-button[disabled] .mat-button-focus-overlay {\n background-color: transparent;\n}\n.green-theme .mat-button .mat-ripple-element, .green-theme .mat-icon-button .mat-ripple-element, .green-theme .mat-stroked-button .mat-ripple-element {\n opacity: 0.1;\n background-color: currentColor;\n}\n.green-theme .mat-button-focus-overlay {\n background: white;\n}\n.green-theme .mat-stroked-button:not([disabled]) {\n border-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-flat-button, .green-theme .mat-raised-button, .green-theme .mat-fab, .green-theme .mat-mini-fab {\n color: white;\n background-color: #424242;\n}\n.green-theme .mat-flat-button.mat-primary, .green-theme .mat-raised-button.mat-primary, .green-theme .mat-fab.mat-primary, .green-theme .mat-mini-fab.mat-primary {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-flat-button.mat-accent, .green-theme .mat-raised-button.mat-accent, .green-theme .mat-fab.mat-accent, .green-theme .mat-mini-fab.mat-accent {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-flat-button.mat-warn, .green-theme .mat-raised-button.mat-warn, .green-theme .mat-fab.mat-warn, .green-theme .mat-mini-fab.mat-warn {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-flat-button.mat-primary[disabled], .green-theme .mat-flat-button.mat-accent[disabled], .green-theme .mat-flat-button.mat-warn[disabled], .green-theme .mat-flat-button[disabled][disabled], .green-theme .mat-raised-button.mat-primary[disabled], .green-theme .mat-raised-button.mat-accent[disabled], .green-theme .mat-raised-button.mat-warn[disabled], .green-theme .mat-raised-button[disabled][disabled], .green-theme .mat-fab.mat-primary[disabled], .green-theme .mat-fab.mat-accent[disabled], .green-theme .mat-fab.mat-warn[disabled], .green-theme .mat-fab[disabled][disabled], .green-theme .mat-mini-fab.mat-primary[disabled], .green-theme .mat-mini-fab.mat-accent[disabled], .green-theme .mat-mini-fab.mat-warn[disabled], .green-theme .mat-mini-fab[disabled][disabled] {\n color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-flat-button.mat-primary, .green-theme .mat-raised-button.mat-primary, .green-theme .mat-fab.mat-primary, .green-theme .mat-mini-fab.mat-primary {\n background-color: #8bc34a;\n}\n.green-theme .mat-flat-button.mat-accent, .green-theme .mat-raised-button.mat-accent, .green-theme .mat-fab.mat-accent, .green-theme .mat-mini-fab.mat-accent {\n background-color: #4caf50;\n}\n.green-theme .mat-flat-button.mat-warn, .green-theme .mat-raised-button.mat-warn, .green-theme .mat-fab.mat-warn, .green-theme .mat-mini-fab.mat-warn {\n background-color: #4caf50;\n}\n.green-theme .mat-flat-button.mat-primary[disabled], .green-theme .mat-flat-button.mat-accent[disabled], .green-theme .mat-flat-button.mat-warn[disabled], .green-theme .mat-flat-button[disabled][disabled], .green-theme .mat-raised-button.mat-primary[disabled], .green-theme .mat-raised-button.mat-accent[disabled], .green-theme .mat-raised-button.mat-warn[disabled], .green-theme .mat-raised-button[disabled][disabled], .green-theme .mat-fab.mat-primary[disabled], .green-theme .mat-fab.mat-accent[disabled], .green-theme .mat-fab.mat-warn[disabled], .green-theme .mat-fab[disabled][disabled], .green-theme .mat-mini-fab.mat-primary[disabled], .green-theme .mat-mini-fab.mat-accent[disabled], .green-theme .mat-mini-fab.mat-warn[disabled], .green-theme .mat-mini-fab[disabled][disabled] {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-flat-button.mat-primary .mat-ripple-element, .green-theme .mat-raised-button.mat-primary .mat-ripple-element, .green-theme .mat-fab.mat-primary .mat-ripple-element, .green-theme .mat-mini-fab.mat-primary .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.green-theme .mat-flat-button.mat-accent .mat-ripple-element, .green-theme .mat-raised-button.mat-accent .mat-ripple-element, .green-theme .mat-fab.mat-accent .mat-ripple-element, .green-theme .mat-mini-fab.mat-accent .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.green-theme .mat-flat-button.mat-warn .mat-ripple-element, .green-theme .mat-raised-button.mat-warn .mat-ripple-element, .green-theme .mat-fab.mat-warn .mat-ripple-element, .green-theme .mat-mini-fab.mat-warn .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.green-theme .mat-stroked-button:not([class*=mat-elevation-z]), .green-theme .mat-flat-button:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-raised-button:not([class*=mat-elevation-z]) {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]) {\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-raised-button[disabled]:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-fab:not([class*=mat-elevation-z]), .green-theme .mat-mini-fab:not([class*=mat-elevation-z]) {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-fab:not([disabled]):active:not([class*=mat-elevation-z]), .green-theme .mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]) {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-fab[disabled]:not([class*=mat-elevation-z]), .green-theme .mat-mini-fab[disabled]:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-button-toggle-standalone,\n.green-theme .mat-button-toggle-group {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\n.green-theme .mat-button-toggle-group-appearance-standard {\n box-shadow: none;\n}\n.green-theme .mat-button-toggle {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-button-toggle .mat-button-toggle-focus-overlay {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-button-toggle-appearance-standard {\n color: white;\n background: #424242;\n}\n.green-theme .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {\n background-color: white;\n}\n.green-theme .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\n border-left: solid 1px rgba(255, 255, 255, 0.12);\n}\n.green-theme [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\n border-left: none;\n border-right: solid 1px rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {\n border-left: none;\n border-right: none;\n border-top: solid 1px rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-button-toggle-checked {\n background-color: #212121;\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-button-toggle-checked.mat-button-toggle-appearance-standard {\n color: white;\n}\n.green-theme .mat-button-toggle-disabled {\n color: rgba(255, 255, 255, 0.3);\n background-color: black;\n}\n.green-theme .mat-button-toggle-disabled.mat-button-toggle-appearance-standard {\n background: #424242;\n}\n.green-theme .mat-button-toggle-disabled.mat-button-toggle-checked {\n background-color: #424242;\n}\n.green-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\n.green-theme .mat-button-toggle-group-appearance-standard {\n border: solid 1px rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-card {\n background: #424242;\n color: white;\n}\n.green-theme .mat-card:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-card.mat-card-flat:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-card-subtitle {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-checkbox-frame {\n border-color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-checkbox-checkmark {\n fill: #303030;\n}\n.green-theme .mat-checkbox-checkmark-path {\n stroke: #303030 !important;\n}\n@media (-ms-high-contrast: black-on-white) {\n .green-theme .mat-checkbox-checkmark-path {\n stroke: #000 !important;\n }\n}\n.green-theme .mat-checkbox-mixedmark {\n background-color: #303030;\n}\n.green-theme .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .green-theme .mat-checkbox-checked.mat-primary .mat-checkbox-background {\n background-color: #8bc34a;\n}\n.green-theme .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .green-theme .mat-checkbox-checked.mat-accent .mat-checkbox-background {\n background-color: #4caf50;\n}\n.green-theme .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .green-theme .mat-checkbox-checked.mat-warn .mat-checkbox-background {\n background-color: #4caf50;\n}\n.green-theme .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .green-theme .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {\n background-color: #686868;\n}\n.green-theme .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {\n border-color: #686868;\n}\n.green-theme .mat-checkbox-disabled .mat-checkbox-label {\n color: rgba(255, 255, 255, 0.7);\n}\n@media (-ms-high-contrast: active) {\n .green-theme .mat-checkbox-disabled {\n opacity: 0.5;\n }\n}\n@media (-ms-high-contrast: active) {\n .green-theme .mat-checkbox-background {\n background: none;\n }\n}\n.green-theme .mat-checkbox .mat-ripple-element {\n background-color: white;\n}\n.green-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,\n.green-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {\n background: #8bc34a;\n}\n.green-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,\n.green-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {\n background: #4caf50;\n}\n.green-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,\n.green-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {\n background: #4caf50;\n}\n.green-theme .mat-chip.mat-standard-chip {\n background-color: #616161;\n color: white;\n}\n.green-theme .mat-chip.mat-standard-chip .mat-chip-remove {\n color: white;\n opacity: 0.4;\n}\n.green-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {\n opacity: 0.54;\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-disabled {\n opacity: 0.4;\n}\n.green-theme .mat-chip.mat-standard-chip::after {\n background: white;\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {\n background-color: #8bc34a;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {\n color: rgba(0, 0, 0, 0.87);\n opacity: 0.4;\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {\n background: rgba(0, 0, 0, 0.1);\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {\n background-color: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {\n color: rgba(0, 0, 0, 0.87);\n opacity: 0.4;\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {\n background: rgba(0, 0, 0, 0.1);\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {\n background-color: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {\n color: rgba(0, 0, 0, 0.87);\n opacity: 0.4;\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {\n background: rgba(0, 0, 0, 0.1);\n}\n.green-theme .mat-table {\n background: #424242;\n}\n.green-theme .mat-table thead, .green-theme .mat-table tbody, .green-theme .mat-table tfoot,\n.green-theme mat-header-row, .green-theme mat-row, .green-theme mat-footer-row,\n.green-theme [mat-header-row], .green-theme [mat-row], .green-theme [mat-footer-row],\n.green-theme .mat-table-sticky {\n background: inherit;\n}\n.green-theme mat-row, .green-theme mat-header-row, .green-theme mat-footer-row,\n.green-theme th.mat-header-cell, .green-theme td.mat-cell, .green-theme td.mat-footer-cell {\n border-bottom-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-header-cell {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-cell, .green-theme .mat-footer-cell {\n color: white;\n}\n.green-theme .mat-calendar-arrow {\n border-top-color: white;\n}\n.green-theme .mat-datepicker-toggle,\n.green-theme .mat-datepicker-content .mat-calendar-next-button,\n.green-theme .mat-datepicker-content .mat-calendar-previous-button {\n color: white;\n}\n.green-theme .mat-calendar-table-header {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-calendar-table-header-divider::after {\n background: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-calendar-body-label {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-calendar-body-cell-content {\n color: white;\n border-color: transparent;\n}\n.green-theme .mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\n.green-theme .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\n.green-theme .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\n background-color: rgba(255, 255, 255, 0.04);\n}\n.green-theme .mat-calendar-body-today:not(.mat-calendar-body-selected) {\n border-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected) {\n border-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-calendar-body-selected {\n background-color: #8bc34a;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-calendar-body-disabled > .mat-calendar-body-selected {\n background-color: rgba(139, 195, 74, 0.4);\n}\n.green-theme .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-datepicker-content {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n background-color: #424242;\n color: white;\n}\n.green-theme .mat-datepicker-content.mat-accent .mat-calendar-body-selected {\n background-color: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {\n background-color: rgba(76, 175, 80, 0.4);\n}\n.green-theme .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-datepicker-content.mat-warn .mat-calendar-body-selected {\n background-color: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {\n background-color: rgba(76, 175, 80, 0.4);\n}\n.green-theme .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-datepicker-content-touch {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-datepicker-toggle-active {\n color: #8bc34a;\n}\n.green-theme .mat-datepicker-toggle-active.mat-accent {\n color: #4caf50;\n}\n.green-theme .mat-datepicker-toggle-active.mat-warn {\n color: #4caf50;\n}\n.green-theme .mat-dialog-container {\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\n background: #424242;\n color: white;\n}\n.green-theme .mat-divider {\n border-top-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-divider-vertical {\n border-right-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-expansion-panel {\n background: #424242;\n color: white;\n}\n.green-theme .mat-expansion-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-action-row {\n border-top-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]), .green-theme .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]), .green-theme .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]) {\n background: rgba(255, 255, 255, 0.04);\n}\n@media (hover: none) {\n .green-theme .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover {\n background: #424242;\n }\n}\n.green-theme .mat-expansion-panel-header-title {\n color: white;\n}\n.green-theme .mat-expansion-panel-header-description,\n.green-theme .mat-expansion-indicator::after {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-expansion-panel-header[aria-disabled=true] {\n color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,\n.green-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description {\n color: inherit;\n}\n.green-theme .mat-form-field-label {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-hint {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-form-field.mat-focused .mat-form-field-label {\n color: #8bc34a;\n}\n.green-theme .mat-form-field.mat-focused .mat-form-field-label.mat-accent {\n color: #4caf50;\n}\n.green-theme .mat-form-field.mat-focused .mat-form-field-label.mat-warn {\n color: #4caf50;\n}\n.green-theme .mat-focused .mat-form-field-required-marker {\n color: #4caf50;\n}\n.green-theme .mat-form-field-ripple {\n background-color: white;\n}\n.green-theme .mat-form-field.mat-focused .mat-form-field-ripple {\n background-color: #8bc34a;\n}\n.green-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {\n background-color: #4caf50;\n}\n.green-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {\n background-color: #4caf50;\n}\n.green-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {\n color: #8bc34a;\n}\n.green-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {\n color: #4caf50;\n}\n.green-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {\n color: #4caf50;\n}\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label {\n color: #4caf50;\n}\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {\n color: #4caf50;\n}\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {\n background-color: #4caf50;\n}\n.green-theme .mat-error {\n color: #4caf50;\n}\n.green-theme .mat-form-field-appearance-legacy .mat-form-field-label {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-form-field-appearance-legacy .mat-hint {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-form-field-appearance-legacy .mat-form-field-underline {\n background-color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0.7) 33%, transparent 0%);\n background-size: 4px 100%;\n background-repeat: repeat-x;\n}\n.green-theme .mat-form-field-appearance-standard .mat-form-field-underline {\n background-color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0.7) 33%, transparent 0%);\n background-size: 4px 100%;\n background-repeat: repeat-x;\n}\n.green-theme .mat-form-field-appearance-fill .mat-form-field-flex {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.green-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {\n background-color: rgba(255, 255, 255, 0.05);\n}\n.green-theme .mat-form-field-appearance-fill .mat-form-field-underline::before {\n background-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {\n background-color: transparent;\n}\n.green-theme .mat-form-field-appearance-outline .mat-form-field-outline {\n color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-form-field-appearance-outline .mat-form-field-outline-thick {\n color: white;\n}\n.green-theme .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {\n color: #8bc34a;\n}\n.green-theme .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {\n color: #4caf50;\n}\n.green-theme .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {\n color: #4caf50;\n}\n.green-theme .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {\n color: #4caf50;\n}\n.green-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {\n color: rgba(255, 255, 255, 0.15);\n}\n.green-theme .mat-icon.mat-primary {\n color: #8bc34a;\n}\n.green-theme .mat-icon.mat-accent {\n color: #4caf50;\n}\n.green-theme .mat-icon.mat-warn {\n color: #4caf50;\n}\n.green-theme .mat-form-field-type-mat-native-select .mat-form-field-infix::after {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-input-element:disabled,\n.green-theme .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element {\n caret-color: #8bc34a;\n}\n.green-theme .mat-input-element::-webkit-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element::-moz-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element::-ms-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element::placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element::-moz-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element::-webkit-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element:-ms-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element option {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-input-element option:disabled {\n color: rgba(0, 0, 0, 0.38);\n}\n.green-theme .mat-accent .mat-input-element {\n caret-color: #4caf50;\n}\n.green-theme .mat-warn .mat-input-element,\n.green-theme .mat-form-field-invalid .mat-input-element {\n caret-color: #4caf50;\n}\n.green-theme .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {\n color: #4caf50;\n}\n.green-theme .mat-list-base .mat-list-item {\n color: white;\n}\n.green-theme .mat-list-base .mat-list-option {\n color: white;\n}\n.green-theme .mat-list-base .mat-subheader {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-list-item-disabled {\n background-color: black;\n}\n.green-theme .mat-list-option:hover, .green-theme .mat-list-option:focus,\n.green-theme .mat-nav-list .mat-list-item:hover,\n.green-theme .mat-nav-list .mat-list-item:focus,\n.green-theme .mat-action-list .mat-list-item:hover,\n.green-theme .mat-action-list .mat-list-item:focus {\n background: rgba(255, 255, 255, 0.04);\n}\n.green-theme .mat-menu-panel {\n background: #424242;\n}\n.green-theme .mat-menu-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-menu-item {\n background: transparent;\n color: white;\n}\n.green-theme .mat-menu-item[disabled], .green-theme .mat-menu-item[disabled]::after {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-menu-item .mat-icon-no-color,\n.green-theme .mat-menu-item-submenu-trigger::after {\n color: white;\n}\n.green-theme .mat-menu-item:hover:not([disabled]),\n.green-theme .mat-menu-item.cdk-program-focused:not([disabled]),\n.green-theme .mat-menu-item.cdk-keyboard-focused:not([disabled]),\n.green-theme .mat-menu-item-highlighted:not([disabled]) {\n background: rgba(255, 255, 255, 0.04);\n}\n.green-theme .mat-paginator {\n background: #424242;\n}\n.green-theme .mat-paginator,\n.green-theme .mat-paginator-page-size .mat-select-trigger {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-paginator-decrement,\n.green-theme .mat-paginator-increment {\n border-top: 2px solid white;\n border-right: 2px solid white;\n}\n.green-theme .mat-paginator-first,\n.green-theme .mat-paginator-last {\n border-top: 2px solid white;\n}\n.green-theme .mat-icon-button[disabled] .mat-paginator-decrement,\n.green-theme .mat-icon-button[disabled] .mat-paginator-increment,\n.green-theme .mat-icon-button[disabled] .mat-paginator-first,\n.green-theme .mat-icon-button[disabled] .mat-paginator-last {\n border-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-progress-bar-background {\n fill: #dcedc8;\n}\n.green-theme .mat-progress-bar-buffer {\n background-color: #dcedc8;\n}\n.green-theme .mat-progress-bar-fill::after {\n background-color: #8bc34a;\n}\n.green-theme .mat-progress-bar.mat-accent .mat-progress-bar-background {\n fill: #c8e6c9;\n}\n.green-theme .mat-progress-bar.mat-accent .mat-progress-bar-buffer {\n background-color: #c8e6c9;\n}\n.green-theme .mat-progress-bar.mat-accent .mat-progress-bar-fill::after {\n background-color: #4caf50;\n}\n.green-theme .mat-progress-bar.mat-warn .mat-progress-bar-background {\n fill: #c8e6c9;\n}\n.green-theme .mat-progress-bar.mat-warn .mat-progress-bar-buffer {\n background-color: #c8e6c9;\n}\n.green-theme .mat-progress-bar.mat-warn .mat-progress-bar-fill::after {\n background-color: #4caf50;\n}\n.green-theme .mat-progress-spinner circle, .green-theme .mat-spinner circle {\n stroke: #8bc34a;\n}\n.green-theme .mat-progress-spinner.mat-accent circle, .green-theme .mat-spinner.mat-accent circle {\n stroke: #4caf50;\n}\n.green-theme .mat-progress-spinner.mat-warn circle, .green-theme .mat-spinner.mat-warn circle {\n stroke: #4caf50;\n}\n.green-theme .mat-radio-outer-circle {\n border-color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {\n border-color: #8bc34a;\n}\n.green-theme .mat-radio-button.mat-primary .mat-radio-inner-circle,\n.green-theme .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .green-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple, .green-theme .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {\n background-color: #8bc34a;\n}\n.green-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {\n border-color: #4caf50;\n}\n.green-theme .mat-radio-button.mat-accent .mat-radio-inner-circle,\n.green-theme .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .green-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple, .green-theme .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {\n background-color: #4caf50;\n}\n.green-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {\n border-color: #4caf50;\n}\n.green-theme .mat-radio-button.mat-warn .mat-radio-inner-circle,\n.green-theme .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .green-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple, .green-theme .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {\n background-color: #4caf50;\n}\n.green-theme .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,\n.green-theme .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {\n border-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,\n.green-theme .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {\n background-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-radio-button.mat-radio-disabled .mat-radio-label-content {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-radio-button .mat-ripple-element {\n background-color: white;\n}\n.green-theme .mat-select-value {\n color: white;\n}\n.green-theme .mat-select-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-select-disabled .mat-select-value {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-select-arrow {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-select-panel {\n background: #424242;\n}\n.green-theme .mat-select-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {\n background: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-form-field.mat-focused.mat-primary .mat-select-arrow {\n color: #8bc34a;\n}\n.green-theme .mat-form-field.mat-focused.mat-accent .mat-select-arrow {\n color: #4caf50;\n}\n.green-theme .mat-form-field.mat-focused.mat-warn .mat-select-arrow {\n color: #4caf50;\n}\n.green-theme .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {\n color: #4caf50;\n}\n.green-theme .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-drawer-container {\n background-color: #303030;\n color: white;\n}\n.green-theme .mat-drawer {\n background-color: #424242;\n color: white;\n}\n.green-theme .mat-drawer.mat-drawer-push {\n background-color: #424242;\n}\n.green-theme .mat-drawer:not(.mat-drawer-side) {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-drawer-side {\n border-right: solid 1px rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-drawer-side.mat-drawer-end {\n border-left: solid 1px rgba(255, 255, 255, 0.12);\n border-right: none;\n}\n.green-theme [dir=rtl] .mat-drawer-side {\n border-left: solid 1px rgba(255, 255, 255, 0.12);\n border-right: none;\n}\n.green-theme [dir=rtl] .mat-drawer-side.mat-drawer-end {\n border-left: none;\n border-right: solid 1px rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-drawer-backdrop.mat-drawer-shown {\n background-color: rgba(189, 189, 189, 0.6);\n}\n.green-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {\n background-color: #4caf50;\n}\n.green-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-bar {\n background-color: rgba(76, 175, 80, 0.54);\n}\n.green-theme .mat-slide-toggle.mat-checked .mat-ripple-element {\n background-color: #4caf50;\n}\n.green-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {\n background-color: #8bc34a;\n}\n.green-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {\n background-color: rgba(139, 195, 74, 0.54);\n}\n.green-theme .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {\n background-color: #8bc34a;\n}\n.green-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {\n background-color: #4caf50;\n}\n.green-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {\n background-color: rgba(76, 175, 80, 0.54);\n}\n.green-theme .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {\n background-color: #4caf50;\n}\n.green-theme .mat-slide-toggle:not(.mat-checked) .mat-ripple-element {\n background-color: white;\n}\n.green-theme .mat-slide-toggle-thumb {\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n background-color: #bdbdbd;\n}\n.green-theme .mat-slide-toggle-bar {\n background-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-slider-track-background {\n background-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-primary .mat-slider-track-fill,\n.green-theme .mat-primary .mat-slider-thumb,\n.green-theme .mat-primary .mat-slider-thumb-label {\n background-color: #8bc34a;\n}\n.green-theme .mat-primary .mat-slider-thumb-label-text {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-accent .mat-slider-track-fill,\n.green-theme .mat-accent .mat-slider-thumb,\n.green-theme .mat-accent .mat-slider-thumb-label {\n background-color: #4caf50;\n}\n.green-theme .mat-accent .mat-slider-thumb-label-text {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-warn .mat-slider-track-fill,\n.green-theme .mat-warn .mat-slider-thumb,\n.green-theme .mat-warn .mat-slider-thumb-label {\n background-color: #4caf50;\n}\n.green-theme .mat-warn .mat-slider-thumb-label-text {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-slider-focus-ring {\n background-color: rgba(76, 175, 80, 0.2);\n}\n.green-theme .mat-slider:hover .mat-slider-track-background,\n.green-theme .cdk-focused .mat-slider-track-background {\n background-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-slider-disabled .mat-slider-track-background,\n.green-theme .mat-slider-disabled .mat-slider-track-fill,\n.green-theme .mat-slider-disabled .mat-slider-thumb {\n background-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-slider-disabled:hover .mat-slider-track-background {\n background-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-slider-min-value .mat-slider-focus-ring {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,\n.green-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label {\n background-color: white;\n}\n.green-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,\n.green-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label {\n background-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb {\n border-color: rgba(255, 255, 255, 0.3);\n background-color: transparent;\n}\n.green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb, .green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb {\n border-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb, .green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb {\n border-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-slider-has-ticks .mat-slider-wrapper::after {\n border-color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-slider-horizontal .mat-slider-ticks {\n background-image: repeating-linear-gradient(to right, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\n background-image: -moz-repeating-linear-gradient(0.0001deg, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\n}\n.green-theme .mat-slider-vertical .mat-slider-ticks {\n background-image: repeating-linear-gradient(to bottom, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\n}\n.green-theme .mat-step-header.cdk-keyboard-focused, .green-theme .mat-step-header.cdk-program-focused, .green-theme .mat-step-header:hover {\n background-color: rgba(255, 255, 255, 0.04);\n}\n@media (hover: none) {\n .green-theme .mat-step-header:hover {\n background: none;\n }\n}\n.green-theme .mat-step-header .mat-step-label,\n.green-theme .mat-step-header .mat-step-optional {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-step-header .mat-step-icon {\n background-color: rgba(255, 255, 255, 0.7);\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-step-header .mat-step-icon-selected,\n.green-theme .mat-step-header .mat-step-icon-state-done,\n.green-theme .mat-step-header .mat-step-icon-state-edit {\n background-color: #8bc34a;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-step-header .mat-step-icon-state-error {\n background-color: transparent;\n color: #4caf50;\n}\n.green-theme .mat-step-header .mat-step-label.mat-step-label-active {\n color: white;\n}\n.green-theme .mat-step-header .mat-step-label.mat-step-label-error {\n color: #4caf50;\n}\n.green-theme .mat-stepper-horizontal, .green-theme .mat-stepper-vertical {\n background-color: #424242;\n}\n.green-theme .mat-stepper-vertical-line::before {\n border-left-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-horizontal-stepper-header::before,\n.green-theme .mat-horizontal-stepper-header::after,\n.green-theme .mat-stepper-horizontal-line {\n border-top-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-sort-header-arrow {\n color: #c6c6c6;\n}\n.green-theme .mat-tab-nav-bar,\n.green-theme .mat-tab-header {\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-tab-group-inverted-header .mat-tab-nav-bar,\n.green-theme .mat-tab-group-inverted-header .mat-tab-header {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n border-bottom: none;\n}\n.green-theme .mat-tab-label, .green-theme .mat-tab-link {\n color: white;\n}\n.green-theme .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-link.mat-tab-disabled {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-tab-header-pagination-chevron {\n border-color: white;\n}\n.green-theme .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-tab-group[class*=mat-background-] .mat-tab-header,\n.green-theme .mat-tab-nav-bar[class*=mat-background-] {\n border-bottom: none;\n border-top: none;\n}\n.green-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(220, 237, 200, 0.3);\n}\n.green-theme .mat-tab-group.mat-primary .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-primary .mat-ink-bar {\n background-color: #8bc34a;\n}\n.green-theme .mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar {\n background-color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(200, 230, 201, 0.3);\n}\n.green-theme .mat-tab-group.mat-accent .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-accent .mat-ink-bar {\n background-color: #4caf50;\n}\n.green-theme .mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar {\n background-color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(200, 230, 201, 0.3);\n}\n.green-theme .mat-tab-group.mat-warn .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-warn .mat-ink-bar {\n background-color: #4caf50;\n}\n.green-theme .mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar {\n background-color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(220, 237, 200, 0.3);\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-header, .green-theme .mat-tab-group.mat-background-primary .mat-tab-links, .green-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-links, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination {\n background-color: #8bc34a;\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-label, .green-theme .mat-tab-group.mat-background-primary .mat-tab-link, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled {\n color: rgba(0, 0, 0, 0.4);\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.4);\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-ripple-element, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(200, 230, 201, 0.3);\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-header, .green-theme .mat-tab-group.mat-background-accent .mat-tab-links, .green-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-links, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination {\n background-color: #4caf50;\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-label, .green-theme .mat-tab-group.mat-background-accent .mat-tab-link, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled {\n color: rgba(0, 0, 0, 0.4);\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.4);\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-ripple-element, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(200, 230, 201, 0.3);\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-header, .green-theme .mat-tab-group.mat-background-warn .mat-tab-links, .green-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-links, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination {\n background-color: #4caf50;\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-label, .green-theme .mat-tab-group.mat-background-warn .mat-tab-link, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled {\n color: rgba(0, 0, 0, 0.4);\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.4);\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-ripple-element, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-toolbar {\n background: #212121;\n color: white;\n}\n.green-theme .mat-toolbar.mat-primary {\n background: #8bc34a;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-toolbar.mat-accent {\n background: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-toolbar.mat-warn {\n background: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-toolbar .mat-form-field-underline,\n.green-theme .mat-toolbar .mat-form-field-ripple,\n.green-theme .mat-toolbar .mat-focused .mat-form-field-ripple {\n background-color: currentColor;\n}\n.green-theme .mat-toolbar .mat-form-field-label,\n.green-theme .mat-toolbar .mat-focused .mat-form-field-label,\n.green-theme .mat-toolbar .mat-select-value,\n.green-theme .mat-toolbar .mat-select-arrow,\n.green-theme .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow {\n color: inherit;\n}\n.green-theme .mat-toolbar .mat-input-element {\n caret-color: currentColor;\n}\n.green-theme .mat-tooltip {\n background: rgba(97, 97, 97, 0.9);\n}\n.green-theme .mat-tree {\n background: #424242;\n}\n.green-theme .mat-tree-node,\n.green-theme .mat-nested-tree-node {\n color: white;\n}\n.green-theme .mat-snack-bar-container {\n color: rgba(0, 0, 0, 0.87);\n background: #fafafa;\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-simple-snackbar-action {\n color: inherit;\n}\n.green-theme h1 {\n color: #8bc34a;\n}\n/* You can add global styles to this file, and also import other style files */\nhtml, body {\n height: 100%;\n}\nbody {\n margin: 0;\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.flex-spacer {\n flex: 1 1 auto;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvbWF0ZXJpYWwvX3RoZW1pbmcuc2NzcyIsInN0eWxlcy5zY3NzIiwiL2RhdGEvaG9tZS9rbmlzdGVyMC9naXRodWJzL05pZXR6c2NoZUJldGEvbmlldHpzY2hlLWJldGEtYXBwL3NyYy9zdHlsZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwMUNBLGtDQUFBO0FBNmlEQSwyQ0FBQTtBQXdDQSxxQkFBQTtBQXgvQkU7RUFDRSxnQkFyTG9CO0VBc0xwQixlQXZMa0I7RUF3TGxCLGlEQUFBO0FDbjdESjtBRHM3REU7RUFFRSxjQUFBO0FDcDdESjtBRHU3REU7RUFDRSxlQUFBO0FDcDdESjtBRHluREU7RUE5TkUsd0RBQUE7RUFnT0EsZ0JBQUE7QUN0bkRKO0FEeW5ERTtFQW5PRSx3REFBQTtFQXFPQSxnQkFBQTtBQ3RuREo7QUR5bkRFO0VBeE9FLHdEQUFBO0VBME9BLGdCQUFBO0FDdG5ESjtBRHluREU7RUE3T0Usd0RBQUE7RUErT0EsZ0JBQUE7QUN0bkRKO0FENG5ERTtFQXJQRSxxRUFBQTtFQThQQSxnQkFBQTtBQ2hvREo7QURtb0RFO0VBalFFLHFFQUFBO0VBMFFBLGdCQUFBO0FDdm9ESjtBRDBvREU7RUE3UUUsd0RBQUE7QUN6M0NKO0FEMG9ERTtFQWpSRSx3REFBQTtBQ3IzQ0o7QUR5b0RJO0VBQ0UsZ0JBQUE7QUN2b0ROO0FEMm9ERTtFQXpSRSx3REFBQTtBQzkyQ0o7QUQyb0RFO0VBN1JFLDBEQUFBO0VBWUYsdUJBQUE7RUFtUkUsZ0JBQUE7QUN2b0RKO0FEMG9ERTtFQWxTRSx3REFBQTtFQVlGLHVCQUFBO0VBd1JFLGdCQUFBO0FDdG9ESjtBRHlvREU7RUF2U0Usd0RBQUE7RUFZRix3QkFBQTtFQTZSRSxnQkFBQTtBQ3JvREo7QUR3b0RFO0VBNVNFLHdEQUFBO0VBOFNBLGdCQUFBO0FD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QUlJLG9DQUFBO0FDanNCTjtBRCt4QkU7RUFDRSwwQkFBQTtBQzd4Qko7QUQreEJJO0VBRUUsK0JBQUE7QUM5eEJOO0FEa3lCSTtFQUNFLCtCQUFBO0FDaHlCTjtBRG15Qkk7RUFDRSwrQkFBQTtFQUNBLDBCQUFBO0FDanlCTjtBRG95Qkk7RUFDRSwwQkFBQTtBQ2x5Qk47QURzeUJFO0VBQ0UsY0FBQTtBQ3B5Qko7QUR1eUJFO0VBQ0UsY0FBQTtBQ3J5Qko7QUR3eUJFO0VBQ0UsY0FBQTtBQ3R5Qko7QUQwekJFO0VBQ0UsMEJBQUE7QUN4ekJKO0FEMnpCRTtFQUNFLDBCQUFBO0FDenpCSjtBRG8xQkU7RUFDRSwwQkFBQTtBQ2wxQko7QURvMUJJO0VBQ0UsY0FBQTtBQ2wxQk47QURzMUJFO0VBQ0UsY0FaZTtBQ3gwQm5CO0FEdTFCRTs7RUFFRSxtQkFBQTtBQ3IxQko7QUQ2MUJFOzs7O0VBSUUsbUJBQUE7QUMzMUJKO0FEODFCRTs7RUFFRSxtQkFBQTtBQzUxQko7QURpMkJJOztFQUNFLG1CQXhDYTtBQ3R6Qm5CO0FEZ29JSTtFQW42SUYsd0hBQUE7QUNzU0Y7QUQ2bklJO0VBbjZJRix5SEFBQTtBQ3lTRjtBRDBuSUk7RUFuNklGLHlIQUFBO0FDNFNGO0FEdW5JSTtFQW42SUYseUhBQUE7QUMrU0Y7QURvbklJO0VBbjZJRiwwSEFBQTtBQ2tURjtBRGluSUk7RUFuNklGLDBIQUFBO0FDcVRGO0FEOG1JSTtFQW42SUYsMkhBQUE7QUN3VEY7QUQybUlJO0VBbjZJRiwySEFBQTtBQzJURjtBRHdtSUk7RUFuNklGLDJIQUFBO0FDOFRGO0FEcW1JSTtFQW42SUYsMkhBQUE7QUNpVUY7QURrbUlJO0VBbjZJRiw0SEFBQTtBQ29VRjtBRCtsSUk7RUFuNklGLDRIQUFBO0FDdVVGO0FENGxJSTtFQW42SUYsNEhBQUE7QUMwVUY7QUR5bElJO0VBbjZJRiw0SEFBQTtBQzZVRjtBRHNsSUk7RUFuNklGLDRIQUFBO0FDZ1ZGO0FEbWxJSTtFQW42SUYsNEhBQUE7QUNtVkY7QURnbElJO0VBbjZJRiw2SEFBQTtBQ3NWRjtB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Qko7QUQ2Zk07Ozs7O0VBQ0UsMENBQUE7QUN2ZlI7QUQrZkU7RUFDRSx5QkFBQTtBQzdmSjtBRGlnQkU7RUFDRSwwQkFBQTtBQy9mSjtBRGlnQkk7RUFDRSx5QkFBQTtBQy9mTjtBRG9nQkU7RUFDRSxpQ0FBQTtBQ2xnQko7QURxZ0JFO0VBQ0UsZ0NBQUE7QUNuZ0JKO0FEd2dCRTtFQUNFLHFDQUFBO0FDdGdCSjtBRG9lTTs7Ozs7RUFDRSwwQ0FBQTtBQzlkUjtBRHNlRTtFQUNFLHlCQUFBO0FDcGVKO0FEd2VFO0VBQ0UsMEJBQUE7QUN0ZUo7QUR3ZUk7RUFDRSx5QkFBQTtBQ3RlTjtBRDJlRTtFQUNFLGlDQUFBO0FDemVKO0FENGVFO0VBQ0UsZ0NBQUE7QUMxZUo7QUQrZUU7RUFDRSxxQ0FBQTtBQzdlSjtBRG9pQkU7RUFDRSxtQkFBQTtFQUNBLFlBQUE7QUNsaUJKO0FEb2lCSTtFQW5DRixtQkFBQTtFQUNBLDBCQUFBO0FDOWZGO0FEb2lCSTtFQXZDRixtQkFBQTtFQUNBLDBCQUFBO0FDMWZGO0FEb2lCSTtFQTNDRixtQkFBQTtFQUNBLDBCQUFBO0FDdGZGO0FEMGZFOzs7RUFHRSw4QkFBQTtBQ3hmSjtBRDJmRTs7Ozs7RUFLRSxjQUFBO0FDemZKO0FENGZFO0VBQ0UseUJBQUE7QUMxZko7QURvakJFO0VBQ0UsaUNBQUE7QUNsakJKO0FEaXhDRTtFQUNFLG1CQUFBO0FDL3dDSjtBRGt4Q0U7O0VBRUUsWUFBQTtBQ2h4Q0o7QURza0JFO0VBR0UsMEJBQUE7RUFDQSxtQkFBQTtFQTFvSEYsMkhBQUE7QUNxa0dGO0FEMGtCRTtFQUNFLGNBQUE7QUN4a0JKO0FDcCtHRTtFQUFLLGNBQUE7QUR1K0dQO0FDbitHQSw4RUFBQTtBQUdBO0VBQWEsWUFBQTtBRHErR2I7QUNwK0dBO0VBQU8sU0FBQTtFQUFXLGlEQUFBO0FEeStHbEI7QUN2K0dBO0VBQ0UsY0FBQTtBRDArR0YiLCJmaWxlIjoic3R5bGVzLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnQgYWxsIHRoZSB0aGVtaW5nIGZ1bmN0aW9uYWxpdHkuXG4vLyBXZSBjYW4gdXNlIHJlbGF0aXZlIGltcG9ydHMgZm9yIGltcG9ydHMgZnJvbSB0aGUgY2RrIGJlY2F1c2Ugd2UgYnVuZGxlIGV2ZXJ5dGhpbmdcbi8vIHVwIGludG8gYSBzaW5nbGUgZmxhdCBzY3NzIGZpbGUgZm9yIG1hdGVyaWFsLlxuLy8gV2Ugd2FudCBvdmVybGF5cyB0byBhbHdheXMgYXBwZWFyIG92ZXIgdXNlciBjb250ZW50LCBzbyBzZXQgYSBiYXNlbGluZVxuLy8gdmVyeSBoaWdoIHotaW5kZXggZm9yIHRoZSBvdmVybGF5IGNvbnRhaW5lciwgd2hpY2ggaXMgd2hlcmUgd2UgY3JlYXRlIHRoZSBuZXdcbi8vIHN0YWNraW5nIGNvbnRleHQgZm9yIGFsbCBvdmVybGF5cy5cbiRjZGstei1pbmRleC1vdmVybGF5LWNvbnRhaW5lcjogMTAwMCAhZGVmYXVsdDtcbiRjZGstei1pbmRleC1vdmVybGF5OiAxMDAwICFkZWZhdWx0O1xuJGNkay16LWluZGV4LW92ZXJsYXktYmFja2Ryb3A6IDEwMDAgIWRlZmF1bHQ7XG5cbi8vIEJhY2tncm91bmQgY29sb3IgZm9yIGFsbCBvZiB0aGUgYmFja2Ryb3BzXG4kY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcC1iYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzIpICFkZWZhdWx0O1xuXG4vLyBEZWZhdWx0IGJhY2tkcm9wIGFuaW1hdGlvbiBpcyBiYXNlZCBvbiB0aGUgTWF0ZXJpYWwgRGVzaWduIHN3aWZ0LWVhc2Utb3V0LlxuJGJhY2tkcm9wLWFuaW1hdGlvbi1kdXJhdGlvbjogNDAwbXMgIWRlZmF1bHQ7XG4kYmFja2Ryb3AtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSkgIWRlZmF1bHQ7XG5cblxuQG1peGluIGNkay1vdmVybGF5KCkge1xuICAuY2RrLW92ZXJsYXktY29udGFpbmVyLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICAgIC8vIERpc2FibGUgZXZlbnRzIGZyb20gYmVpbmcgY2FwdHVyZWQgb24gdGhlIG92ZXJsYXkgY29udGFpbmVyLlxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgLy8gVGhlIGNvbnRhaW5lciBzaG91bGQgYmUgdGhlIHNpemUgb2YgdGhlIHZpZXdwb3J0LlxuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIFRoZSBvdmVybGF5LWNvbnRhaW5lciBpcyBhbiBpbnZpc2libGUgZWxlbWVudCB3aGljaCBjb250YWlucyBhbGwgaW5kaXZpZHVhbCBvdmVybGF5cy5cbiAgLmNkay1vdmVybGF5LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5LWNvbnRhaW5lcjtcblxuICAgICY6ZW1wdHkge1xuICAgICAgLy8gSGlkZSB0aGUgZWxlbWVudCB3aGVuIGl0IGRvZXNuJ3QgaGF2ZSBhbnkgY2hpbGQgbm9kZXMuIFRoaXMgZG9lc24ndFxuICAgICAgLy8gaW5jbHVkZSBvdmVybGF5cyB0aGF0IGhhdmUgYmVlbiBkZXRhY2hlZCwgcmF0aGVyIHRoYW4gZGlzcG9zZWQuXG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdlIHVzZSBhbiBleHRyYSB3cmFwcGVyIGVsZW1lbnQgaW4gb3JkZXIgdG8gdXNlIG1ha2UgdGhlIG92ZXJsYXkgaXRzZWxmIGEgZmxleCBpdGVtLlxuICAvLyBUaGlzIG1ha2VzIGNlbnRlcmluZyB0aGUgb3ZlcmxheSBlYXN5IHdpdGhvdXQgcnVubmluZyBpbnRvIHRoZSBzdWJwaXhlbCByZW5kZXJpbmdcbiAgLy8gcHJvYmxlbXMgdGllZCB0byB1c2luZyBgdHJhbnNmb3JtYCBhbmQgd2l0aG91dCBpbnRlcmZlcmluZyB3aXRoIHRoZSBvdGhlciBwb3NpdGlvblxuICAvLyBzdHJhdGVnaWVzLlxuICAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5O1xuICB9XG5cbiAgLy8gQSBzaW5nbGUgb3ZlcmxheSBwYW5lLlxuICAuY2RrLW92ZXJsYXktcGFuZSB7XG4gICAgLy8gTm90ZTogaXQncyBpbXBvcnRhbnQgZm9yIHRoaXMgb25lIHRvIHN0YXJ0IG9mZiBgYWJzb2x1dGVgLFxuICAgIC8vIGluIG9yZGVyIGZvciB1cyB0byBiZSBhYmxlIHRvIG1lYXN1cmUgaXQgY29ycmVjdGx5LlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5O1xuXG4gICAgLy8gRm9yIGNvbm5lY3RlZC1wb3NpdGlvbiBvdmVybGF5cywgd2Ugc2V0IGBkaXNwbGF5OiBmbGV4YCBpblxuICAgIC8vIG9yZGVyIHRvIGZvcmNlIGBtYXgtd2lkdGhgIGFuZCBgbWF4LWhlaWdodGAgdG8gdGFrZSBlZmZlY3QuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1iYWNrZHJvcCB7XG4gICAgLy8gVE9ETyhqZWxib3Vybik6IHJldXNlIHNpZGVuYXYgZnVsbHNjcmVlbiBtaXhpbi5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuXG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXktYmFja2Ryb3A7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRiYWNrZHJvcC1hbmltYXRpb24tZHVyYXRpb24gJGJhY2tkcm9wLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb247XG4gICAgb3BhY2l0eTogMDtcblxuICAgICYuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAvLyBJbiBoaWdoIGNvbnRyYXN0IG1vZGUgdGhlIHJnYmEgYmFja2dyb3VuZCB3aWxsIGJlY29tZSBzb2xpZCBzbyB3ZSBuZWVkIHRvIGZhbGwgYmFja1xuICAgICAgLy8gdG8gbWFraW5nIGl0IG9wYXF1ZSB1c2luZyBgb3BhY2l0eWAuIE5vdGUgdGhhdCB3ZSBjYW4ndCB1c2UgdGhlIGBjZGstaGlnaC1jb250cmFzdGBcbiAgICAgIC8vIG1peGluLCBiZWNhdXNlIHdlIGNhbid0IG5vcm1hbGl6ZSB0aGUgaW1wb3J0IHBhdGggdG8gdGhlIF9hMTF5LnNjc3MgYm90aCBmb3IgdGhlXG4gICAgICAvLyBzb3VyY2UgYW5kIHdoZW4gdGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkLiBTZWUgIzEwOTA4LlxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wIHtcbiAgICBiYWNrZ3JvdW5kOiAkY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcC1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wIHtcbiAgICAvLyBOb3RlOiBhcyBvZiBGaXJlZm94IDU3LCBoYXZpbmcgdGhlIGJhY2tkcm9wIGJlIGBiYWNrZ3JvdW5kOiBub25lYCB3aWxsIHByZXZlbnQgaXQgZnJvbVxuICAgIC8vIGNhcHR1cmluZyB0aGUgdXNlcidzIG1vdXNlIHNjcm9sbCBldmVudHMuIFNpbmNlIHdlIGFsc28gY2FuJ3QgdXNlIHNvbWV0aGluZyBsaWtlXG4gICAgLy8gYHJnYmEoMCwgMCwgMCwgMClgLCB3ZSB3b3JrIGFyb3VuZCB0aGUgaW5jb25zaXN0ZW5jeSBieSBub3Qgc2V0dGluZyB0aGUgYmFja2dyb3VuZCBhdFxuICAgIC8vIGFsbCBhbmQgdXNpbmcgYG9wYWNpdHlgIHRvIG1ha2UgdGhlIGVsZW1lbnQgdHJhbnNwYXJlbnQuXG4gICAgJiwgJi5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gT3ZlcmxheSBwYXJlbnQgZWxlbWVudCB1c2VkIHdpdGggdGhlIGNvbm5lY3RlZCBwb3NpdGlvbiBzdHJhdGVneS4gVXNlZCB0byBjb25zdHJhaW4gdGhlXG4gIC8vIG92ZXJsYXkgZWxlbWVudCdzIHNpemUgdG8gZml0IHdpdGhpbiB0aGUgdmlld3BvcnQuXG4gIC5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXk7XG5cbiAgICAvLyBXZSB1c2UgYGRpc3BsYXk6IGZsZXhgIG9uIHRoaXMgZWxlbWVudCBleGNsdXNpdmVseSBmb3IgY2VudGVyaW5nIGNvbm5lY3RlZCBvdmVybGF5cy5cbiAgICAvLyBXaGVuICpub3QqIGNlbnRlcmluZywgYSB0b3AvbGVmdC9ib3R0b20vcmlnaHQgd2lsbCBiZSBzZXQgd2hpY2ggb3ZlcnJpZGVzIHRoZSBub3JtYWxcbiAgICAvLyBmbGV4IGxheW91dC5cbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgLy8gV2UgdXNlIHRoZSBgY29sdW1uYCBkaXJlY3Rpb24gaGVyZSB0byBhdm9pZCBzb21lIGZsZXhib3ggaXNzdWVzIGluIEVkZ2VcbiAgICAvLyB3aGVuIHVzaW5nIHRoZSBcImdyb3cgYWZ0ZXIgb3BlblwiIG9wdGlvbnMuXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC8vIEFkZCBzb21lIGRpbWVuc2lvbnMgc28gdGhlIGVsZW1lbnQgaGFzIGFuIGBpbm5lclRleHRgIHdoaWNoIHNvbWUgcGVvcGxlIGRlcGVuZCBvbiBpbiB0ZXN0cy5cbiAgICBtaW4td2lkdGg6IDFweDtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gIH1cblxuICAvLyBVc2VkIHdoZW4gZGlzYWJsaW5nIGdsb2JhbCBzY3JvbGxpbmcuXG4gIC5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG5cbiAgICAvLyBOZWNlc3NhcnkgZm9yIHRoZSBjb250ZW50IG5vdCB0byBsb3NlIGl0cyB3aWR0aC4gTm90ZSB0aGF0IHdlJ3JlIHVzaW5nIDEwMCUsIGluc3RlYWQgb2ZcbiAgICAvLyAxMDB2dywgYmVjYXVzZSAxMDB2dyBpbmNsdWRlcyB0aGUgd2lkdGggcGx1cyB0aGUgc2Nyb2xsYmFyLCB3aGVyZWFzIDEwMCUgaXMgdGhlIHdpZHRoXG4gICAgLy8gdGhhdCB0aGUgZWxlbWVudCBoYWQgYmVmb3JlIHdlIG1hZGUgaXQgYGZpeGVkYC5cbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC8vIE5vdGU6IHRoaXMgd2lsbCBhbHdheXMgYWRkIGEgc2Nyb2xsYmFyIHRvIHdoYXRldmVyIGVsZW1lbnQgaXQgaXMgb24sIHdoaWNoIGNhblxuICAgIC8vIHBvdGVudGlhbGx5IHJlc3VsdCBpbiBkb3VibGUgc2Nyb2xsYmFycy4gSXQgc2hvdWxkbid0IGJlIGFuIGlzc3VlLCBiZWNhdXNlIHdlIHdvbid0XG4gICAgLy8gYmxvY2sgc2Nyb2xsaW5nIG9uIGEgcGFnZSB0aGF0IGRvZXNuJ3QgaGF2ZSBhIHNjcm9sbGJhciBpbiB0aGUgZmlyc3QgcGxhY2UuXG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICB9XG59XG5cbkBtaXhpbiBjZGstYTExeSB7XG4gIC5jZGstdmlzdWFsbHktaGlkZGVuIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuXG4gICAgLy8gQXZvaWQgYnJvd3NlcnMgcmVuZGVyaW5nIHRoZSBmb2N1cyByaW5nIGluIHNvbWUgY2FzZXMuXG4gICAgb3V0bGluZTogMDtcblxuICAgIC8vIEF2b2lkIHNvbWUgY2FzZXMgd2hlcmUgdGhlIGJyb3dzZXIgd2lsbCBzdGlsbCByZW5kZXIgdGhlIG5hdGl2ZSBjb250cm9scyAoc2VlICM5MDQ5KS5cbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICB9XG59XG5cbi8vIEFwcGxpZXMgc3R5bGVzIGZvciB1c2VycyBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuIE5vdGUgdGhhdCB0aGlzIG9ubHkgYXBwbGllc1xuLy8gdG8gTWljcm9zb2Z0IGJyb3dzZXJzLiBDaHJvbWUgY2FuIGJlIGluY2x1ZGVkIGJ5IGNoZWNraW5nIGZvciB0aGUgYGh0bWxbaGNdYFxuLy8gYXR0cmlidXRlLCBob3dldmVyIENocm9tZSBoYW5kbGVzIGhpZ2ggY29udHJhc3QgZGlmZmVyZW50bHkuXG4vL1xuLy8gQHBhcmFtIHRhcmdldCBXaGljaCBraW5kIG9mIGhpZ2ggY29udHJhc3Qgc2V0dGluZyB0byB0YXJnZXQuIERlZmF1bHRzIHRvIGBhY3RpdmVgLCBjYW4gYmVcbi8vICAgIGB3aGl0ZS1vbi1ibGFja2Agb3IgYGJsYWNrLW9uLXdoaXRlYC5cbkBtaXhpbiBjZGstaGlnaC1jb250cmFzdCgkdGFyZ2V0OiBhY3RpdmUpIHtcbiAgQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogJHRhcmdldCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIENvcmUgc3R5bGVzIHRoYXQgZW5hYmxlIG1vbml0b3JpbmcgYXV0b2ZpbGwgc3RhdGUgb2YgdGV4dCBmaWVsZHMuXG5AbWl4aW4gY2RrLXRleHQtZmllbGQge1xuICAvLyBLZXlmcmFtZXMgdGhhdCBhcHBseSBubyBzdHlsZXMsIGJ1dCBhbGxvdyB1cyB0byBtb25pdG9yIHdoZW4gYW4gdGV4dCBmaWVsZCBiZWNvbWVzIGF1dG9maWxsZWRcbiAgLy8gYnkgd2F0Y2hpbmcgZm9yIHRoZSBhbmltYXRpb24gZXZlbnRzIHRoYXQgYXJlIGZpcmVkIHdoZW4gdGhleSBzdGFydC4gTm90ZTogdGhlIC8qISovIGNvbW1lbnQgaXNcbiAgLy8gbmVlZGVkIHRvIHByZXZlbnQgTGliU2FzcyBmcm9tIHN0cmlwcGluZyB0aGUga2V5ZnJhbWVzIG91dC5cbiAgLy8gQmFzZWQgb246IGh0dHBzOi8vbWVkaXVtLmNvbS9AYnJ1bm4vZGV0ZWN0aW5nLWF1dG9maWxsZWQtZmllbGRzLWluLWphdmFzY3JpcHQtYWVkNTk4ZDI1ZGE3XG4gIEBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgey8qISovfVxuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCB7LyohKi99XG5cbiAgLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxsIHtcbiAgICBhbmltYXRpb24tbmFtZTogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQ7XG4gIH1cblxuICAuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCkge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQ7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIHJlc2l6ZSBoYW5kbGUgb24gYXV0b3NpemluZyB0ZXh0YXJlYXMsIGJlY2F1c2Ugd2hhdGV2ZXIgaGVpZ2h0XG4gIC8vIHRoZSB1c2VyIHJlc2l6ZWQgdG8gd2lsbCBiZSBvdmVyd3JpdHRlbiBvbmNlIHRoZXkgc3RhcnQgdHlwaW5nIGFnYWluLlxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUge1xuICAgIHJlc2l6ZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRoaXMgY2xhc3MgaXMgdGVtcG9yYXJpbHkgYXBwbGllZCB0byB0aGUgdGV4dGFyZWEgd2hlbiBpdCBpcyBiZWluZyBtZWFzdXJlZC4gSXQgaXMgaW1tZWRpYXRlbHlcbiAgLy8gcmVtb3ZlZCB3aGVuIG1lYXN1cmluZyBpcyBjb21wbGV0ZS4gV2UgdXNlIGAhaW1wb3J0YW50YCBydWxlcyBoZXJlIHRvIG1ha2Ugc3VyZSB1c2VyLXNwZWNpZmllZFxuICAvLyBydWxlcyBkbyBub3QgaW50ZXJmZXJlIHdpdGggdGhlIG1lYXN1cmVtZW50LlxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nIHtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgLy8gSGF2aW5nIDJweCB0b3AgYW5kIGJvdHRvbSBwYWRkaW5nIHNlZW1zIHRvIGZpeCBhIGJ1ZyB3aGVyZSBDaHJvbWUgZ2V0cyBhbiBpbmNvcnJlY3RcbiAgICAvLyBtZWFzdXJlbWVudC4gV2UganVzdCBoYXZlIHRvIGFjY291bnQgZm9yIGl0IGxhdGVyIGFuZCBzdWJ0cmFjdCBpdCBvZmYgdGhlIGZpbmFsIHJlc3VsdC5cbiAgICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8gVXNlZCB0byBnZW5lcmF0ZSBVSURzIGZvciBrZXlmcmFtZXMgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQgZmllbGQgYXV0b2ZpbGwgc3R5bGVzLlxuJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50OiAwO1xuXG4vLyBNaXhpbiB1c2VkIHRvIGFwcGx5IGN1c3RvbSBiYWNrZ3JvdW5kIGFuZCBmb3JlZ3JvdW5kIGNvbG9ycyB0byBhbiBhdXRvZmlsbGVkIHRleHQgZmllbGQuXG4vLyBCYXNlZCBvbjogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjc4MTU0OS9cbi8vIHJlbW92aW5nLWlucHV0LWJhY2tncm91bmQtY29sb3VyLWZvci1jaHJvbWUtYXV0b2NvbXBsZXRlI2Fuc3dlci0zNzQzMjI2MFxuQG1peGluIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yKCRiYWNrZ3JvdW5kLCAkZm9yZWdyb3VuZDonJykge1xuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLSN7JGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50fSB7XG4gICAgdG8ge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICBAaWYgJGZvcmVncm91bmQgIT0gJycgeyBjb2xvcjogJGZvcmVncm91bmQ7IH1cbiAgICB9XG4gIH1cblxuICAmOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci0jeyRjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudH07XG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgfVxuXG4gICYuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCxcbiAgICAgICAgICAgICAgICAgICAgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItI3skY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnR9O1xuICB9XG5cbiAgJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50OlxuICAgICAgJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50ICsgMSAhZ2xvYmFsO1xufVxuXG5cbi8vIENvcmUgc3R5bGVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gYXBwbHkgbWF0ZXJpYWwgZGVzaWduIHRyZWF0bWVudHMgdG8gYW55IGVsZW1lbnQuXG4vLyBNZWRpYSBxdWVyaWVzXG4vLyBUT0RPKGpvc2VwaHBlcnJvdHQpOiBDaGFuZ2UgJG1hdC14c21hbGwgYW5kICRtYXQtc21hbGwgdXNhZ2VzIHRvIHJlbHkgb24gQnJlYWtwb2ludE9ic2VydmVyLFxuJG1hdC14c21hbGw6ICdtYXgtd2lkdGg6IDU5OXB4JztcbiRtYXQtc21hbGw6ICdtYXgtd2lkdGg6IDk1OXB4JztcblxuLy8gVE9ETzogUmV2aXNpdCBhbGwgei1pbmRpY2VzIGJlZm9yZSBiZXRhXG4vLyB6LWluZGV4IG1hc3RlciBsaXN0XG5cbiR6LWluZGV4LWZhYjogMjAgIWRlZmF1bHQ7XG4kei1pbmRleC1kcmF3ZXI6IDEwMCAhZGVmYXVsdDtcblxuLy8gR2xvYmFsIGNvbnN0YW50c1xuJHBpOiAzLjE0MTU5MjY1O1xuXG4vLyBQYWRkaW5nIGJldHdlZW4gaW5wdXQgdG9nZ2xlcyBhbmQgdGhlaXIgbGFiZWxzXG4kbWF0LXRvZ2dsZS1wYWRkaW5nOiA4cHggIWRlZmF1bHQ7XG4vLyBXaWR0aCBhbmQgaGVpZ2h0IG9mIGlucHV0IHRvZ2dsZXNcbiRtYXQtdG9nZ2xlLXNpemU6IDIwcHggIWRlZmF1bHQ7XG5cbi8vIEVhc2luZyBDdXJ2ZXNcbi8vIFRPRE8oamVsYm91cm4pOiBhbGwgb2YgdGhlc2UgbmVlZCB0byBiZSByZXZpc2l0ZWRcblxuLy8gVGhlIGRlZmF1bHQgYW5pbWF0aW9uIGN1cnZlcyB1c2VkIGJ5IG1hdGVyaWFsIGRlc2lnbi5cbiRtYXQtbGluZWFyLW91dC1zbG93LWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMC4xKSAhZGVmYXVsdDtcbiRtYXQtZmFzdC1vdXQtc2xvdy1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWRlZmF1bHQ7XG4kbWF0LWZhc3Qtb3V0LWxpbmVhci1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpICFkZWZhdWx0O1xuXG4kZWFzZS1pbi1vdXQtY3VydmUtZnVuY3Rpb246IGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKSAhZGVmYXVsdDtcblxuJHN3aWZ0LWVhc2Utb3V0LWR1cmF0aW9uOiA0MDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLW91dC10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpICFkZWZhdWx0O1xuJHN3aWZ0LWVhc2Utb3V0OiBhbGwgJHN3aWZ0LWVhc2Utb3V0LWR1cmF0aW9uICRzd2lmdC1lYXNlLW91dC10aW1pbmctZnVuY3Rpb24gIWRlZmF1bHQ7XG5cbiRzd2lmdC1lYXNlLWluLWR1cmF0aW9uOiAzMDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAsIDAuNTUsIDAuMikgIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1pbjogYWxsICRzd2lmdC1lYXNlLWluLWR1cmF0aW9uICRzd2lmdC1lYXNlLWluLXRpbWluZy1mdW5jdGlvbiAhZGVmYXVsdDtcblxuJHN3aWZ0LWVhc2UtaW4tb3V0LWR1cmF0aW9uOiA1MDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLW91dC10aW1pbmctZnVuY3Rpb246ICRlYXNlLWluLW91dC1jdXJ2ZS1mdW5jdGlvbiAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLW91dDogYWxsICRzd2lmdC1lYXNlLWluLW91dC1kdXJhdGlvbiAkc3dpZnQtZWFzZS1pbi1vdXQtdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuXG4kc3dpZnQtbGluZWFyLWR1cmF0aW9uOiA4MG1zICFkZWZhdWx0O1xuJHN3aWZ0LWxpbmVhci10aW1pbmctZnVuY3Rpb246IGxpbmVhciAhZGVmYXVsdDtcbiRzd2lmdC1saW5lYXI6IGFsbCAkc3dpZnQtbGluZWFyLWR1cmF0aW9uICRzd2lmdC1saW5lYXItdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuXG5cblxuLy8gQSBjb2xsZWN0aW9uIG9mIG1peGlucyBhbmQgQ1NTIGNsYXNzZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBhcHBseSBlbGV2YXRpb24gdG8gYSBtYXRlcmlhbFxuLy8gZWxlbWVudC5cbi8vIFNlZTogaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vZW52aXJvbm1lbnQvZWxldmF0aW9uLmh0bWxcbi8vIEV4YW1wbGVzOlxuLy9cbi8vXG4vLyAubWF0LWZvbyB7XG4vLyAgIEBpbmNsdWRlICRtYXQtZWxldmF0aW9uKDIpO1xuLy9cbi8vICAgJjphY3RpdmUge1xuLy8gICAgIEBpbmNsdWRlICRtYXQtZWxldmF0aW9uKDgpO1xuLy8gICB9XG4vLyB9XG4vL1xuLy8gPGRpdiBpZD1cImV4dGVybmFsLWNhcmRcIiBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejJcIj48cD5Tb21lIGNvbnRlbnQ8L3A+PC9kaXY+XG4vL1xuLy8gRm9yIGFuIGV4cGxhbmF0aW9uIG9mIHRoZSBkZXNpZ24gYmVoaW5kIGhvdyBlbGV2YXRpb24gaXMgaW1wbGVtZW50ZWQsIHNlZSB0aGUgZGVzaWduIGRvYyBhdFxuLy8gaHR0cHM6Ly9nb28uZ2wvS3EwazlaLlxuXG4vLyBDb2xvcnMgZm9yIHVtYnJhLCBwZW51bWJyYSwgYW5kIGFtYmllbnQgc2hhZG93cy4gQXMgZGVzY3JpYmVkIGluIHRoZSBkZXNpZ24gZG9jLCBlYWNoIGVsZXZhdGlvblxuLy8gbGV2ZWwgaXMgY3JlYXRlZCB1c2luZyBhIHNldCBvZiAzIHNoYWRvdyB2YWx1ZXMsIG9uZSBmb3IgdW1icmEgKHRoZSBzaGFkb3cgcmVwcmVzZW50aW5nIHRoZVxuLy8gc3BhY2UgY29tcGxldGVseSBvYnNjdXJlZCBieSBhbiBvYmplY3QgcmVsYXRpdmUgdG8gaXRzIGxpZ2h0IHNvdXJjZSksIG9uZSBmb3IgcGVudW1icmEgKHRoZVxuLy8gc3BhY2UgcGFydGlhbGx5IG9ic2N1cmVkIGJ5IGFuIG9iamVjdCksIGFuZCBvbmUgZm9yIGFtYmllbnQgKHRoZSBzcGFjZSB3aGljaCBjb250YWlucyB0aGUgb2JqZWN0XG4vLyBpdHNlbGYpLiBGb3IgYSBmdXJ0aGVyIGV4cGxhbmF0aW9uIG9mIHRoZXNlIHRlcm1zIGFuZCB0aGVpciBtZWFuaW5ncywgc2VlXG4vLyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9VbWJyYSxfcGVudW1icmFfYW5kX2FudHVtYnJhLlxuXG4vLyBNYXBzIGZvciB0aGUgZGlmZmVyZW50IHNoYWRvdyBzZXRzIGFuZCB0aGVpciB2YWx1ZXMgd2l0aGluIGVhY2ggei1zcGFjZS4gVGhlc2UgdmFsdWVzIHdlcmVcbi8vIGNyZWF0ZWQgYnkgdGFraW5nIGEgZmV3IHJlZmVyZW5jZSBzaGFkb3cgc2V0cyBjcmVhdGVkIGJ5IEdvb2dsZSdzIERlc2lnbmVycyBhbmQgaW50ZXJwb2xhdGluZ1xuLy8gYWxsIG9mIHRoZSB2YWx1ZXMgYmV0d2VlbiB0aGVtLlxuXG5AZnVuY3Rpb24gX2dldC11bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSkge1xuICAkc2hhZG93LWNvbG9yOiBpZih0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IsIHJnYmEoJGNvbG9yLCAkb3BhY2l0eSAqIDAuMiksICRjb2xvcik7XG5cbiAgQHJldHVybiAoXG4gICAgMDogJzBweCAwcHggMHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOiAnMHB4IDJweCAxcHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyOiAnMHB4IDNweCAxcHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAzOiAnMHB4IDNweCAzcHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA0OiAnMHB4IDJweCA0cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA1OiAnMHB4IDNweCA1cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA2OiAnMHB4IDNweCA1cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA3OiAnMHB4IDRweCA1cHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA4OiAnMHB4IDVweCA1cHggLTNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA5OiAnMHB4IDVweCA2cHggLTNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMDogJzBweCA2cHggNnB4IC0zcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTE6ICcwcHggNnB4IDdweCAtNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEyOiAnMHB4IDdweCA4cHggLTRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMzogJzBweCA3cHggOHB4IC00cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTQ6ICcwcHggN3B4IDlweCAtNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE1OiAnMHB4IDhweCA5cHggLTVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNjogJzBweCA4cHggMTBweCAtNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE3OiAnMHB4IDhweCAxMXB4IC01cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTg6ICcwcHggOXB4IDExcHggLTVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOTogJzBweCA5cHggMTJweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIwOiAnMHB4IDEwcHggMTNweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIxOiAnMHB4IDEwcHggMTNweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIyOiAnMHB4IDEwcHggMTRweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIzOiAnMHB4IDExcHggMTRweCAtN3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI0OiAnMHB4IDExcHggMTVweCAtN3B4ICN7JHNoYWRvdy1jb2xvcn0nXG4gICk7XG59XG5cbkBmdW5jdGlvbiBfZ2V0LXBlbnVtYnJhLW1hcCgkY29sb3IsICRvcGFjaXR5KSB7XG4gICRzaGFkb3ctY29sb3I6IGlmKHR5cGUtb2YoJGNvbG9yKSA9PSBjb2xvciwgcmdiYSgkY29sb3IsICRvcGFjaXR5ICogMC4xNCksICRjb2xvcik7XG5cbiAgQHJldHVybiAoXG4gICAgMDogJzBweCAwcHggMHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOiAnMHB4IDFweCAxcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI6ICcwcHggMnB4IDJweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMzogJzBweCAzcHggNHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA0OiAnMHB4IDRweCA1cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDU6ICcwcHggNXB4IDhweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNjogJzBweCA2cHggMTBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNzogJzBweCA3cHggMTBweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgODogJzBweCA4cHggMTBweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgOTogJzBweCA5cHggMTJweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTA6ICcwcHggMTBweCAxNHB4IDFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMTogJzBweCAxMXB4IDE1cHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEyOiAnMHB4IDEycHggMTdweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTM6ICcwcHggMTNweCAxOXB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNDogJzBweCAxNHB4IDIxcHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE1OiAnMHB4IDE1cHggMjJweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTY6ICcwcHggMTZweCAyNHB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNzogJzBweCAxN3B4IDI2cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE4OiAnMHB4IDE4cHggMjhweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTk6ICcwcHggMTlweCAyOXB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMDogJzBweCAyMHB4IDMxcHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIxOiAnMHB4IDIxcHggMzNweCAzcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjI6ICcwcHggMjJweCAzNXB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMzogJzBweCAyM3B4IDM2cHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI0OiAnMHB4IDI0cHggMzhweCAzcHggI3skc2hhZG93LWNvbG9yfSdcbiAgKTtcbn1cblxuQGZ1bmN0aW9uIF9nZXQtYW1iaWVudC1tYXAoJGNvbG9yLCAkb3BhY2l0eSkge1xuICAkc2hhZG93LWNvbG9yOiBpZih0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IsIHJnYmEoJGNvbG9yLCAkb3BhY2l0eSAqIDAuMTIpLCAkY29sb3IpO1xuXG4gIEByZXR1cm4gKFxuICAgIDA6ICcwcHggMHB4IDBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTogJzBweCAxcHggM3B4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyOiAnMHB4IDFweCA1cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDM6ICcwcHggMXB4IDhweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNDogJzBweCAxcHggMTBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNTogJzBweCAxcHggMTRweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNjogJzBweCAxcHggMThweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNzogJzBweCAycHggMTZweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgODogJzBweCAzcHggMTRweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgOTogJzBweCAzcHggMTZweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTA6ICcwcHggNHB4IDE4cHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDExOiAnMHB4IDRweCAyMHB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMjogJzBweCA1cHggMjJweCA0cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTM6ICcwcHggNXB4IDI0cHggNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE0OiAnMHB4IDVweCAyNnB4IDRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNTogJzBweCA2cHggMjhweCA1cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTY6ICcwcHggNnB4IDMwcHggNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE3OiAnMHB4IDZweCAzMnB4IDVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxODogJzBweCA3cHggMzRweCA2cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTk6ICcwcHggN3B4IDM2cHggNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIwOiAnMHB4IDhweCAzOHB4IDdweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMTogJzBweCA4cHggNDBweCA3cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjI6ICcwcHggOHB4IDQycHggN3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIzOiAnMHB4IDlweCA0NHB4IDhweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyNDogJzBweCA5cHggNDZweCA4cHggI3skc2hhZG93LWNvbG9yfSdcbiAgKTtcbn1cblxuLy8gVGhlIGRlZmF1bHQgZHVyYXRpb24gdmFsdWUgZm9yIGVsZXZhdGlvbiB0cmFuc2l0aW9ucy5cbiRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb246IDI4MG1zICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBlYXNpbmcgdmFsdWUgZm9yIGVsZXZhdGlvbiB0cmFuc2l0aW9ucy5cbiRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkbWF0LWZhc3Qtb3V0LXNsb3ctaW4tdGltaW5nLWZ1bmN0aW9uO1xuXG4vLyBUaGUgZGVmYXVsdCBjb2xvciBmb3IgZWxldmF0aW9uIHNoYWRvd3MuXG4kbWF0LWVsZXZhdGlvbi1jb2xvcjogYmxhY2sgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IG9wYWNpdHkgc2NhbGluZyB2YWx1ZSBmb3IgZWxldmF0aW9uIHNoYWRvd3MuXG4kbWF0LWVsZXZhdGlvbi1vcGFjaXR5OiAxICFkZWZhdWx0O1xuXG4vLyBQcmVmaXggZm9yIGVsZXZhdGlvbi1yZWxhdGVkIHNlbGVjdG9ycy5cbiRfbWF0LWVsZXZhdGlvbi1wcmVmaXg6ICdtYXQtZWxldmF0aW9uLXonO1xuXG4vLyBBcHBsaWVzIHRoZSBjb3JyZWN0IGNzcyBydWxlcyB0byBhbiBlbGVtZW50IHRvIGdpdmUgaXQgdGhlIGVsZXZhdGlvbiBzcGVjaWZpZWQgYnkgJHpWYWx1ZS5cbi8vIFRoZSAkelZhbHVlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyNC5cbkBtaXhpbiBtYXQtZWxldmF0aW9uKCR6VmFsdWUsICRjb2xvcjogJG1hdC1lbGV2YXRpb24tY29sb3IsICRvcGFjaXR5OiAkbWF0LWVsZXZhdGlvbi1vcGFjaXR5KSB7XG4gIEBpZiB0eXBlLW9mKCR6VmFsdWUpICE9IG51bWJlciBvciBub3QgdW5pdGxlc3MoJHpWYWx1ZSkge1xuICAgIEBlcnJvciAnJHpWYWx1ZSBtdXN0IGJlIGEgdW5pdGxlc3MgbnVtYmVyJztcbiAgfVxuICBAaWYgJHpWYWx1ZSA8IDAgb3IgJHpWYWx1ZSA+IDI0IHtcbiAgICBAZXJyb3IgJyR6VmFsdWUgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDI0JztcbiAgfVxuXG4gIGJveC1zaGFkb3c6ICN7bWFwLWdldChfZ2V0LXVtYnJhLW1hcCgkY29sb3IsICRvcGFjaXR5KSwgJHpWYWx1ZSl9LFxuICAgICAgICAgICAgICAje21hcC1nZXQoX2dldC1wZW51bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSksICR6VmFsdWUpfSxcbiAgICAgICAgICAgICAgI3ttYXAtZ2V0KF9nZXQtYW1iaWVudC1tYXAoJGNvbG9yLCAkb3BhY2l0eSksICR6VmFsdWUpfTtcbn1cblxuQG1peGluIF9tYXQtdGhlbWUtZWxldmF0aW9uKCR6VmFsdWUsICR0aGVtZSwgJG9wYWNpdHk6ICRtYXQtZWxldmF0aW9uLW9wYWNpdHkpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGVsZXZhdGlvbi1jb2xvcjogbWFwLWdldCgkZm9yZWdyb3VuZCwgZWxldmF0aW9uKTtcbiAgJGVsZXZhdGlvbi1jb2xvci1vci1kZWZhdWx0OiBpZigkZWxldmF0aW9uLWNvbG9yID09IG51bGwsICRtYXQtZWxldmF0aW9uLWNvbG9yLCAkZWxldmF0aW9uLWNvbG9yKTtcblxuICBAaW5jbHVkZSBtYXQtZWxldmF0aW9uKCR6VmFsdWUsICRlbGV2YXRpb24tY29sb3Itb3ItZGVmYXVsdCwgJG9wYWNpdHkpO1xufVxuXG4vLyBBcHBsaWVzIHRoZSBlbGV2YXRpb24gdG8gYW4gZWxlbWVudCBpbiBhIG1hbm5lciB0aGF0IGFsbG93c1xuLy8gY29uc3VtZXJzIHRvIG92ZXJyaWRlIGl0IHZpYSB0aGUgTWF0ZXJpYWwgZWxldmF0aW9uIGNsYXNzZXMuXG5AbWl4aW4gbWF0LW92ZXJyaWRhYmxlLWVsZXZhdGlvbihcbiAgICAkelZhbHVlLFxuICAgICRjb2xvcjogJG1hdC1lbGV2YXRpb24tY29sb3IsXG4gICAgJG9wYWNpdHk6ICRtYXQtZWxldmF0aW9uLW9wYWNpdHkpIHtcbiAgJjpub3QoW2NsYXNzKj0nI3skX21hdC1lbGV2YXRpb24tcHJlZml4fSddKSB7XG4gICAgQGluY2x1ZGUgbWF0LWVsZXZhdGlvbigkelZhbHVlLCAkY29sb3IsICRvcGFjaXR5KTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oJHpWYWx1ZSwgJHRoZW1lLCAkb3BhY2l0eTogJG1hdC1lbGV2YXRpb24tb3BhY2l0eSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkZWxldmF0aW9uLWNvbG9yOiBtYXAtZ2V0KCRmb3JlZ3JvdW5kLCBlbGV2YXRpb24pO1xuICAkZWxldmF0aW9uLWNvbG9yLW9yLWRlZmF1bHQ6IGlmKCRlbGV2YXRpb24tY29sb3IgPT0gbnVsbCwgJG1hdC1lbGV2YXRpb24tY29sb3IsICRlbGV2YXRpb24tY29sb3IpO1xuXG4gIEBpbmNsdWRlIG1hdC1vdmVycmlkYWJsZS1lbGV2YXRpb24oJHpWYWx1ZSwgJGVsZXZhdGlvbi1jb2xvci1vci1kZWZhdWx0LCAkb3BhY2l0eSk7XG59XG5cbi8vIFJldHVybnMgYSBzdHJpbmcgdGhhdCBjYW4gYmUgdXNlZCBhcyB0aGUgdmFsdWUgZm9yIGEgdHJhbnNpdGlvbiBwcm9wZXJ0eSBmb3IgZWxldmF0aW9uLlxuLy8gQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIGRpcmVjdGx5IGlzIHVzZWZ1bCBpbiBzaXR1YXRpb25zIHdoZXJlIGEgY29tcG9uZW50IG5lZWRzIHRvIHRyYW5zaXRpb25cbi8vIG1vcmUgdGhhbiBvbmUgcHJvcGVydHkuXG4vL1xuLy8gLmZvbyB7XG4vLyAgIHRyYW5zaXRpb246IG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1wcm9wZXJ0eS12YWx1ZSgpLCBvcGFjaXR5IDEwMG1zIGVhc2U7XG4vLyB9XG5AZnVuY3Rpb24gbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXByb3BlcnR5LXZhbHVlKFxuICAgICRkdXJhdGlvbjogJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbixcbiAgICAkZWFzaW5nOiAkbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbikge1xuICBAcmV0dXJuIGJveC1zaGFkb3cgI3skZHVyYXRpb259ICN7JGVhc2luZ307XG59XG5cbi8vIEFwcGxpZXMgdGhlIGNvcnJlY3QgY3NzIHJ1bGVzIG5lZWRlZCB0byBoYXZlIGFuIGVsZW1lbnQgdHJhbnNpdGlvbiBiZXR3ZWVuIGVsZXZhdGlvbnMuXG4vLyBUaGlzIG1peGluIHNob3VsZCBiZSBhcHBsaWVkIHRvIGVsZW1lbnRzIHdob3NlIGVsZXZhdGlvbiB2YWx1ZXMgd2lsbCBjaGFuZ2UgZGVwZW5kaW5nIG9uIHRoZWlyXG4vLyBjb250ZXh0IChlLmcuIHdoZW4gYWN0aXZlIG9yIGRpc2FibGVkKS5cbi8vXG4vLyBOT1RFKHRyYXZpc2thdWZtYW4pOiBCb3RoIHRoaXMgbWl4aW4gYW5kIHRoZSBhYm92ZSBmdW5jdGlvbiB1c2UgZGVmYXVsdCBwYXJhbWV0ZXJzIHNvIHRoZXkgY2FuXG4vLyBiZSB1c2VkIGluIHRoZSBzYW1lIHdheSBieSBjbGllbnRzLlxuQG1peGluIG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbihcbiAgICAkZHVyYXRpb246ICRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24sXG4gICAgJGVhc2luZzogJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pIHtcbiAgdHJhbnNpdGlvbjogbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXByb3BlcnR5LXZhbHVlKCRkdXJhdGlvbiwgJGVhc2luZyk7XG59XG5cbi8vIENvbG9yIHBhbGV0dGVzIGZyb20gdGhlIE1hdGVyaWFsIERlc2lnbiBzcGVjLlxuLy8gU2VlIGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2NvbG9yL1xuLy9cbi8vIENvbnRyYXN0IGNvbG9ycyBhcmUgaGFyZC1jb2RlZCBiZWNhdXNlIGl0IGlzIHRvbyBkaWZmaWN1bHQgKHByb2JhYmx5IGltcG9zc2libGUpIHRvXG4vLyBjYWxjdWxhdGUgdGhlbS4gVGhlc2UgY29udHJhc3QgY29sb3JzIGFyZSBwdWxsZWQgZnJvbSB0aGUgcHVibGljIE1hdGVyaWFsIERlc2lnbiBzcGVjIHN3YXRjaGVzLlxuLy8gV2hpbGUgdGhlIGNvbnRyYXN0IGNvbG9ycyBpbiB0aGUgc3BlYyBhcmUgbm90IHByZXNjcmlwdGl2ZSwgd2UgdXNlIHRoZW0gZm9yIGNvbnZlbmllbmNlLlxuXG5cbi8vIEBkZXByZWNhdGVkIHJlbmFtZWQgdG8gJGRhcmstcHJpbWFyeS10ZXh0LlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJGJsYWNrLTg3LW9wYWNpdHk6IHJnYmEoYmxhY2ssIDAuODcpO1xuLy8gQGRlcHJlY2F0ZWQgcmVuYW1lZCB0byAkbGlnaHQtcHJpbWFyeS10ZXh0LlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJHdoaXRlLTg3LW9wYWNpdHk6IHJnYmEod2hpdGUsIDAuODcpO1xuLy8gQGRlcHJlY2F0ZWQgdXNlICRkYXJrLVtzZWNvbmRhcnktdGV4dCxkaXNhYmxlZC10ZXh0LGRpdmlkZXJzLGZvY3VzZWRdIGluc3RlYWQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kYmxhY2stMTItb3BhY2l0eTogcmdiYShibGFjaywgMC4xMik7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGxpZ2h0LVtzZWNvbmRhcnktdGV4dCxkaXNhYmxlZC10ZXh0LGRpdmlkZXJzLGZvY3VzZWRdIGluc3RlYWQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kd2hpdGUtMTItb3BhY2l0eTogcmdiYSh3aGl0ZSwgMC4xMik7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGRhcmstW3NlY29uZGFyeS10ZXh0LGRpc2FibGVkLXRleHQsZGl2aWRlcnMsZm9jdXNlZF0gaW5zdGVhZC5cbi8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjBcbiRibGFjay02LW9wYWNpdHk6IHJnYmEoYmxhY2ssIDAuMDYpO1xuLy8gQGRlcHJlY2F0ZWQgdXNlICRsaWdodC1bc2Vjb25kYXJ5LXRleHQsZGlzYWJsZWQtdGV4dCxkaXZpZGVycyxmb2N1c2VkXSBpbnN0ZWFkLlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJHdoaXRlLTYtb3BhY2l0eTogcmdiYSh3aGl0ZSwgMC4wNik7XG5cbiRkYXJrLXByaW1hcnktdGV4dDogcmdiYShibGFjaywgMC44Nyk7XG4kZGFyay1zZWNvbmRhcnktdGV4dDogcmdiYShibGFjaywgMC41NCk7XG4kZGFyay1kaXNhYmxlZC10ZXh0OiByZ2JhKGJsYWNrLCAwLjM4KTtcbiRkYXJrLWRpdmlkZXJzOiByZ2JhKGJsYWNrLCAwLjEyKTtcbiRkYXJrLWZvY3VzZWQ6IHJnYmEoYmxhY2ssIDAuMTIpO1xuJGxpZ2h0LXByaW1hcnktdGV4dDogd2hpdGU7XG4kbGlnaHQtc2Vjb25kYXJ5LXRleHQ6IHJnYmEod2hpdGUsIDAuNyk7XG4kbGlnaHQtZGlzYWJsZWQtdGV4dDogcmdiYSh3aGl0ZSwgMC41KTtcbiRsaWdodC1kaXZpZGVyczogcmdiYSh3aGl0ZSwgMC4xMik7XG4kbGlnaHQtZm9jdXNlZDogcmdiYSh3aGl0ZSwgMC4xMik7XG5cbiRtYXQtcmVkOiAoXG4gIDUwOiAjZmZlYmVlLFxuICAxMDA6ICNmZmNkZDIsXG4gIDIwMDogI2VmOWE5YSxcbiAgMzAwOiAjZTU3MzczLFxuICA0MDA6ICNlZjUzNTAsXG4gIDUwMDogI2Y0NDMzNixcbiAgNjAwOiAjZTUzOTM1LFxuICA3MDA6ICNkMzJmMmYsXG4gIDgwMDogI2M2MjgyOCxcbiAgOTAwOiAjYjcxYzFjLFxuICBBMTAwOiAjZmY4YTgwLFxuICBBMjAwOiAjZmY1MjUyLFxuICBBNDAwOiAjZmYxNzQ0LFxuICBBNzAwOiAjZDUwMDAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtcGluazogKFxuICA1MDogI2ZjZTRlYyxcbiAgMTAwOiAjZjhiYmQwLFxuICAyMDA6ICNmNDhmYjEsXG4gIDMwMDogI2YwNjI5MixcbiAgNDAwOiAjZWM0MDdhLFxuICA1MDA6ICNlOTFlNjMsXG4gIDYwMDogI2Q4MWI2MCxcbiAgNzAwOiAjYzIxODViLFxuICA4MDA6ICNhZDE0NTcsXG4gIDkwMDogIzg4MGU0ZixcbiAgQTEwMDogI2ZmODBhYixcbiAgQTIwMDogI2ZmNDA4MSxcbiAgQTQwMDogI2Y1MDA1NyxcbiAgQTcwMDogI2M1MTE2MixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LXB1cnBsZTogKFxuICA1MDogI2YzZTVmNSxcbiAgMTAwOiAjZTFiZWU3LFxuICAyMDA6ICNjZTkzZDgsXG4gIDMwMDogI2JhNjhjOCxcbiAgNDAwOiAjYWI0N2JjLFxuICA1MDA6ICM5YzI3YjAsXG4gIDYwMDogIzhlMjRhYSxcbiAgNzAwOiAjN2IxZmEyLFxuICA4MDA6ICM2YTFiOWEsXG4gIDkwMDogIzRhMTQ4YyxcbiAgQTEwMDogI2VhODBmYyxcbiAgQTIwMDogI2UwNDBmYixcbiAgQTQwMDogI2Q1MDBmOSxcbiAgQTcwMDogI2FhMDBmZixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtZGVlcC1wdXJwbGU6IChcbiAgNTA6ICNlZGU3ZjYsXG4gIDEwMDogI2QxYzRlOSxcbiAgMjAwOiAjYjM5ZGRiLFxuICAzMDA6ICM5NTc1Y2QsXG4gIDQwMDogIzdlNTdjMixcbiAgNTAwOiAjNjczYWI3LFxuICA2MDA6ICM1ZTM1YjEsXG4gIDcwMDogIzUxMmRhOCxcbiAgODAwOiAjNDUyN2EwLFxuICA5MDA6ICMzMTFiOTIsXG4gIEExMDA6ICNiMzg4ZmYsXG4gIEEyMDA6ICM3YzRkZmYsXG4gIEE0MDA6ICM2NTFmZmYsXG4gIEE3MDA6ICM2MjAwZWEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWluZGlnbzogKFxuICA1MDogI2U4ZWFmNixcbiAgMTAwOiAjYzVjYWU5LFxuICAyMDA6ICM5ZmE4ZGEsXG4gIDMwMDogIzc5ODZjYixcbiAgNDAwOiAjNWM2YmMwLFxuICA1MDA6ICMzZjUxYjUsXG4gIDYwMDogIzM5NDlhYixcbiAgNzAwOiAjMzAzZjlmLFxuICA4MDA6ICMyODM1OTMsXG4gIDkwMDogIzFhMjM3ZSxcbiAgQTEwMDogIzhjOWVmZixcbiAgQTIwMDogIzUzNmRmZSxcbiAgQTQwMDogIzNkNWFmZSxcbiAgQTcwMDogIzMwNGZmZSxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtYmx1ZTogKFxuICA1MDogI2UzZjJmZCxcbiAgMTAwOiAjYmJkZWZiLFxuICAyMDA6ICM5MGNhZjksXG4gIDMwMDogIzY0YjVmNixcbiAgNDAwOiAjNDJhNWY1LFxuICA1MDA6ICMyMTk2ZjMsXG4gIDYwMDogIzFlODhlNSxcbiAgNzAwOiAjMTk3NmQyLFxuICA4MDA6ICMxNTY1YzAsXG4gIDkwMDogIzBkNDdhMSxcbiAgQTEwMDogIzgyYjFmZixcbiAgQTIwMDogIzQ0OGFmZixcbiAgQTQwMDogIzI5NzlmZixcbiAgQTcwMDogIzI5NjJmZixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWxpZ2h0LWJsdWU6IChcbiAgNTA6ICNlMWY1ZmUsXG4gIDEwMDogI2IzZTVmYyxcbiAgMjAwOiAjODFkNGZhLFxuICAzMDA6ICM0ZmMzZjcsXG4gIDQwMDogIzI5YjZmNixcbiAgNTAwOiAjMDNhOWY0LFxuICA2MDA6ICMwMzliZTUsXG4gIDcwMDogIzAyODhkMSxcbiAgODAwOiAjMDI3N2JkLFxuICA5MDA6ICMwMTU3OWIsXG4gIEExMDA6ICM4MGQ4ZmYsXG4gIEEyMDA6ICM0MGM0ZmYsXG4gIEE0MDA6ICMwMGIwZmYsXG4gIEE3MDA6ICMwMDkxZWEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtY3lhbjogKFxuICA1MDogI2UwZjdmYSxcbiAgMTAwOiAjYjJlYmYyLFxuICAyMDA6ICM4MGRlZWEsXG4gIDMwMDogIzRkZDBlMSxcbiAgNDAwOiAjMjZjNmRhLFxuICA1MDA6ICMwMGJjZDQsXG4gIDYwMDogIzAwYWNjMSxcbiAgNzAwOiAjMDA5N2E3LFxuICA4MDA6ICMwMDgzOGYsXG4gIDkwMDogIzAwNjA2NCxcbiAgQTEwMDogIzg0ZmZmZixcbiAgQTIwMDogIzE4ZmZmZixcbiAgQTQwMDogIzAwZTVmZixcbiAgQTcwMDogIzAwYjhkNCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LXRlYWw6IChcbiAgNTA6ICNlMGYyZjEsXG4gIDEwMDogI2IyZGZkYixcbiAgMjAwOiAjODBjYmM0LFxuICAzMDA6ICM0ZGI2YWMsXG4gIDQwMDogIzI2YTY5YSxcbiAgNTAwOiAjMDA5Njg4LFxuICA2MDA6ICMwMDg5N2IsXG4gIDcwMDogIzAwNzk2YixcbiAgODAwOiAjMDA2OTVjLFxuICA5MDA6ICMwMDRkNDAsXG4gIEExMDA6ICNhN2ZmZWIsXG4gIEEyMDA6ICM2NGZmZGEsXG4gIEE0MDA6ICMxZGU5YjYsXG4gIEE3MDA6ICMwMGJmYTUsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1ncmVlbjogKFxuICA1MDogI2U4ZjVlOSxcbiAgMTAwOiAjYzhlNmM5LFxuICAyMDA6ICNhNWQ2YTcsXG4gIDMwMDogIzgxYzc4NCxcbiAgNDAwOiAjNjZiYjZhLFxuICA1MDA6ICM0Y2FmNTAsXG4gIDYwMDogIzQzYTA0NyxcbiAgNzAwOiAjMzg4ZTNjLFxuICA4MDA6ICMyZTdkMzIsXG4gIDkwMDogIzFiNWUyMCxcbiAgQTEwMDogI2I5ZjZjYSxcbiAgQTIwMDogIzY5ZjBhZSxcbiAgQTQwMDogIzAwZTY3NixcbiAgQTcwMDogIzAwYzg1MyxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtbGlnaHQtZ3JlZW46IChcbiAgNTA6ICNmMWY4ZTksXG4gIDEwMDogI2RjZWRjOCxcbiAgMjAwOiAjYzVlMWE1LFxuICAzMDA6ICNhZWQ1ODEsXG4gIDQwMDogIzljY2M2NSxcbiAgNTAwOiAjOGJjMzRhLFxuICA2MDA6ICM3Y2IzNDIsXG4gIDcwMDogIzY4OWYzOCxcbiAgODAwOiAjNTU4YjJmLFxuICA5MDA6ICMzMzY5MWUsXG4gIEExMDA6ICNjY2ZmOTAsXG4gIEEyMDA6ICNiMmZmNTksXG4gIEE0MDA6ICM3NmZmMDMsXG4gIEE3MDA6ICM2NGRkMTcsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtbGltZTogKFxuICA1MDogI2Y5ZmJlNyxcbiAgMTAwOiAjZjBmNGMzLFxuICAyMDA6ICNlNmVlOWMsXG4gIDMwMDogI2RjZTc3NSxcbiAgNDAwOiAjZDRlMTU3LFxuICA1MDA6ICNjZGRjMzksXG4gIDYwMDogI2MwY2EzMyxcbiAgNzAwOiAjYWZiNDJiLFxuICA4MDA6ICM5ZTlkMjQsXG4gIDkwMDogIzgyNzcxNyxcbiAgQTEwMDogI2Y0ZmY4MSxcbiAgQTIwMDogI2VlZmY0MSxcbiAgQTQwMDogI2M2ZmYwMCxcbiAgQTcwMDogI2FlZWEwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQteWVsbG93OiAoXG4gIDUwOiAjZmZmZGU3LFxuICAxMDA6ICNmZmY5YzQsXG4gIDIwMDogI2ZmZjU5ZCxcbiAgMzAwOiAjZmZmMTc2LFxuICA0MDA6ICNmZmVlNTgsXG4gIDUwMDogI2ZmZWIzYixcbiAgNjAwOiAjZmRkODM1LFxuICA3MDA6ICNmYmMwMmQsXG4gIDgwMDogI2Y5YTgyNSxcbiAgOTAwOiAjZjU3ZjE3LFxuICBBMTAwOiAjZmZmZjhkLFxuICBBMjAwOiAjZmZmZjAwLFxuICBBNDAwOiAjZmZlYTAwLFxuICBBNzAwOiAjZmZkNjAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWFtYmVyOiAoXG4gIDUwOiAjZmZmOGUxLFxuICAxMDA6ICNmZmVjYjMsXG4gIDIwMDogI2ZmZTA4MixcbiAgMzAwOiAjZmZkNTRmLFxuICA0MDA6ICNmZmNhMjgsXG4gIDUwMDogI2ZmYzEwNyxcbiAgNjAwOiAjZmZiMzAwLFxuICA3MDA6ICNmZmEwMDAsXG4gIDgwMDogI2ZmOGYwMCxcbiAgOTAwOiAjZmY2ZjAwLFxuICBBMTAwOiAjZmZlNTdmLFxuICBBMjAwOiAjZmZkNzQwLFxuICBBNDAwOiAjZmZjNDAwLFxuICBBNzAwOiAjZmZhYjAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LW9yYW5nZTogKFxuICA1MDogI2ZmZjNlMCxcbiAgMTAwOiAjZmZlMGIyLFxuICAyMDA6ICNmZmNjODAsXG4gIDMwMDogI2ZmYjc0ZCxcbiAgNDAwOiAjZmZhNzI2LFxuICA1MDA6ICNmZjk4MDAsXG4gIDYwMDogI2ZiOGMwMCxcbiAgNzAwOiAjZjU3YzAwLFxuICA4MDA6ICNlZjZjMDAsXG4gIDkwMDogI2U2NTEwMCxcbiAgQTEwMDogI2ZmZDE4MCxcbiAgQTIwMDogI2ZmYWI0MCxcbiAgQTQwMDogI2ZmOTEwMCxcbiAgQTcwMDogI2ZmNmQwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogYmxhY2ssXG4gIClcbik7XG5cbiRtYXQtZGVlcC1vcmFuZ2U6IChcbiAgNTA6ICNmYmU5ZTcsXG4gIDEwMDogI2ZmY2NiYyxcbiAgMjAwOiAjZmZhYjkxLFxuICAzMDA6ICNmZjhhNjUsXG4gIDQwMDogI2ZmNzA0MyxcbiAgNTAwOiAjZmY1NzIyLFxuICA2MDA6ICNmNDUxMWUsXG4gIDcwMDogI2U2NGExOSxcbiAgODAwOiAjZDg0MzE1LFxuICA5MDA6ICNiZjM2MGMsXG4gIEExMDA6ICNmZjllODAsXG4gIEEyMDA6ICNmZjZlNDAsXG4gIEE0MDA6ICNmZjNkMDAsXG4gIEE3MDA6ICNkZDJjMDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWJyb3duOiAoXG4gIDUwOiAjZWZlYmU5LFxuICAxMDA6ICNkN2NjYzgsXG4gIDIwMDogI2JjYWFhNCxcbiAgMzAwOiAjYTE4ODdmLFxuICA0MDA6ICM4ZDZlNjMsXG4gIDUwMDogIzc5NTU0OCxcbiAgNjAwOiAjNmQ0YzQxLFxuICA3MDA6ICM1ZDQwMzcsXG4gIDgwMDogIzRlMzQyZSxcbiAgOTAwOiAjM2UyNzIzLFxuICBBMTAwOiAjZDdjY2M4LFxuICBBMjAwOiAjYmNhYWE0LFxuICBBNDAwOiAjOGQ2ZTYzLFxuICBBNzAwOiAjNWQ0MDM3LFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWdyZXk6IChcbiAgNTA6ICNmYWZhZmEsXG4gIDEwMDogI2Y1ZjVmNSxcbiAgMjAwOiAjZWVlZWVlLFxuICAzMDA6ICNlMGUwZTAsXG4gIDQwMDogI2JkYmRiZCxcbiAgNTAwOiAjOWU5ZTllLFxuICA2MDA6ICM3NTc1NzUsXG4gIDcwMDogIzYxNjE2MSxcbiAgODAwOiAjNDI0MjQyLFxuICA5MDA6ICMyMTIxMjEsXG4gIEExMDA6ICNmZmZmZmYsXG4gIEEyMDA6ICNlZWVlZWUsXG4gIEE0MDA6ICNiZGJkYmQsXG4gIEE3MDA6ICM2MTYxNjEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuLy8gQWxpYXMgZm9yIGFsdGVybmF0ZSBzcGVsbGluZy5cbiRtYXQtZ3JheTogJG1hdC1ncmV5O1xuXG4kbWF0LWJsdWUtZ3JleTogKFxuICA1MDogI2VjZWZmMSxcbiAgMTAwOiAjY2ZkOGRjLFxuICAyMDA6ICNiMGJlYzUsXG4gIDMwMDogIzkwYTRhZSxcbiAgNDAwOiAjNzg5MDljLFxuICA1MDA6ICM2MDdkOGIsXG4gIDYwMDogIzU0NmU3YSxcbiAgNzAwOiAjNDU1YTY0LFxuICA4MDA6ICMzNzQ3NGYsXG4gIDkwMDogIzI2MzIzOCxcbiAgQTEwMDogI2NmZDhkYyxcbiAgQTIwMDogI2IwYmVjNSxcbiAgQTQwMDogIzc4OTA5YyxcbiAgQTcwMDogIzQ1NWE2NCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4vLyBBbGlhcyBmb3IgYWx0ZXJuYXRlIHNwZWxsaW5nLlxuJG1hdC1ibHVlLWdyYXk6ICRtYXQtYmx1ZS1ncmV5O1xuXG5cbi8vIEJhY2tncm91bmQgcGFsZXR0ZSBmb3IgbGlnaHQgdGhlbWVzLlxuJG1hdC1saWdodC10aGVtZS1iYWNrZ3JvdW5kOiAoXG4gIHN0YXR1cy1iYXI6IG1hcF9nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBhcHAtYmFyOiAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgMTAwKSxcbiAgYmFja2dyb3VuZDogbWFwX2dldCgkbWF0LWdyZXksIDUwKSxcbiAgaG92ZXI6ICAgICAgcmdiYShibGFjaywgMC4wNCksIC8vIFRPRE8oa2FyYSk6IGNoZWNrIHN0eWxlIHdpdGggTWF0ZXJpYWwgRGVzaWduIFVYXG4gIGNhcmQ6ICAgICAgIHdoaXRlLFxuICBkaWFsb2c6ICAgICB3aGl0ZSxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKGJsYWNrLCAwLjEyKSxcbiAgcmFpc2VkLWJ1dHRvbjogd2hpdGUsXG4gIGZvY3VzZWQtYnV0dG9uOiAkZGFyay1mb2N1c2VkLFxuICBzZWxlY3RlZC1idXR0b246IG1hcF9nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBzZWxlY3RlZC1kaXNhYmxlZC1idXR0b246IG1hcF9nZXQoJG1hdC1ncmV5LCA0MDApLFxuICBkaXNhYmxlZC1idXR0b24tdG9nZ2xlOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMjAwKSxcbiAgdW5zZWxlY3RlZC1jaGlwOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMzAwKSxcbiAgZGlzYWJsZWQtbGlzdC1vcHRpb246IG1hcF9nZXQoJG1hdC1ncmV5LCAyMDApLFxuKTtcblxuLy8gQmFja2dyb3VuZCBwYWxldHRlIGZvciBkYXJrIHRoZW1lcy5cbiRtYXQtZGFyay10aGVtZS1iYWNrZ3JvdW5kOiAoXG4gIHN0YXR1cy1iYXI6IGJsYWNrLFxuICBhcHAtYmFyOiAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgOTAwKSxcbiAgYmFja2dyb3VuZDogIzMwMzAzMCxcbiAgaG92ZXI6ICAgICAgcmdiYSh3aGl0ZSwgMC4wNCksIC8vIFRPRE8oa2FyYSk6IGNoZWNrIHN0eWxlIHdpdGggTWF0ZXJpYWwgRGVzaWduIFVYXG4gIGNhcmQ6ICAgICAgIG1hcF9nZXQoJG1hdC1ncmV5LCA4MDApLFxuICBkaWFsb2c6ICAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKHdoaXRlLCAwLjEyKSxcbiAgcmFpc2VkLWJ1dHRvbjogbWFwLWdldCgkbWF0LWdyZXksIDgwMCksXG4gIGZvY3VzZWQtYnV0dG9uOiAkbGlnaHQtZm9jdXNlZCxcbiAgc2VsZWN0ZWQtYnV0dG9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgOTAwKSxcbiAgc2VsZWN0ZWQtZGlzYWJsZWQtYnV0dG9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uLXRvZ2dsZTogYmxhY2ssXG4gIHVuc2VsZWN0ZWQtY2hpcDogbWFwX2dldCgkbWF0LWdyZXksIDcwMCksXG4gIGRpc2FibGVkLWxpc3Qtb3B0aW9uOiBibGFjayxcbik7XG5cbi8vIEZvcmVncm91bmQgcGFsZXR0ZSBmb3IgbGlnaHQgdGhlbWVzLlxuJG1hdC1saWdodC10aGVtZS1mb3JlZ3JvdW5kOiAoXG4gIGJhc2U6ICAgICAgICAgICAgICBibGFjayxcbiAgZGl2aWRlcjogICAgICAgICAgICRkYXJrLWRpdmlkZXJzLFxuICBkaXZpZGVyczogICAgICAgICAgJGRhcmstZGl2aWRlcnMsXG4gIGRpc2FibGVkOiAgICAgICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBkaXNhYmxlZC1idXR0b246ICAgcmdiYShibGFjaywgMC4yNiksXG4gIGRpc2FibGVkLXRleHQ6ICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBlbGV2YXRpb246ICAgICAgICAgYmxhY2ssXG4gIGhpbnQtdGV4dDogICAgICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBzZWNvbmRhcnktdGV4dDogICAgJGRhcmstc2Vjb25kYXJ5LXRleHQsXG4gIGljb246ICAgICAgICAgICAgICByZ2JhKGJsYWNrLCAwLjU0KSxcbiAgaWNvbnM6ICAgICAgICAgICAgIHJnYmEoYmxhY2ssIDAuNTQpLFxuICB0ZXh0OiAgICAgICAgICAgICAgcmdiYShibGFjaywgMC44NyksXG4gIHNsaWRlci1taW46ICAgICAgICByZ2JhKGJsYWNrLCAwLjg3KSxcbiAgc2xpZGVyLW9mZjogICAgICAgIHJnYmEoYmxhY2ssIDAuMjYpLFxuICBzbGlkZXItb2ZmLWFjdGl2ZTogcmdiYShibGFjaywgMC4zOCksXG4pO1xuXG4vLyBGb3JlZ3JvdW5kIHBhbGV0dGUgZm9yIGRhcmsgdGhlbWVzLlxuJG1hdC1kYXJrLXRoZW1lLWZvcmVncm91bmQ6IChcbiAgYmFzZTogICAgICAgICAgICAgIHdoaXRlLFxuICBkaXZpZGVyOiAgICAgICAgICAgJGxpZ2h0LWRpdmlkZXJzLFxuICBkaXZpZGVyczogICAgICAgICAgJGxpZ2h0LWRpdmlkZXJzLFxuICBkaXNhYmxlZDogICAgICAgICAgJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIGRpc2FibGVkLWJ1dHRvbjogICByZ2JhKHdoaXRlLCAwLjMpLFxuICBkaXNhYmxlZC10ZXh0OiAgICAgJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIGVsZXZhdGlvbjogICAgICAgICBibGFjayxcbiAgaGludC10ZXh0OiAgICAgICAgICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBzZWNvbmRhcnktdGV4dDogICAgJGxpZ2h0LXNlY29uZGFyeS10ZXh0LFxuICBpY29uOiAgICAgICAgICAgICAgd2hpdGUsXG4gIGljb25zOiAgICAgICAgICAgICB3aGl0ZSxcbiAgdGV4dDogICAgICAgICAgICAgIHdoaXRlLFxuICBzbGlkZXItbWluOiAgICAgICAgd2hpdGUsXG4gIHNsaWRlci1vZmY6ICAgICAgICByZ2JhKHdoaXRlLCAwLjMpLFxuICBzbGlkZXItb2ZmLWFjdGl2ZTogcmdiYSh3aGl0ZSwgMC4zKSxcbik7XG5cblxuXG4vLyBGb3IgYSBnaXZlbiBodWUgaW4gYSBwYWxldHRlLCByZXR1cm4gdGhlIGNvbnRyYXN0IGNvbG9yIGZyb20gdGhlIG1hcCBvZiBjb250cmFzdCBwYWxldHRlcy5cbi8vIEBwYXJhbSAkY29sb3ItbWFwXG4vLyBAcGFyYW0gJGh1ZVxuQGZ1bmN0aW9uIG1hdC1jb250cmFzdCgkcGFsZXR0ZSwgJGh1ZSkge1xuICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkcGFsZXR0ZSwgY29udHJhc3QpLCAkaHVlKTtcbn1cblxuXG4vLyBDcmVhdGVzIGEgbWFwIG9mIGh1ZXMgdG8gY29sb3JzIGZvciBhIHRoZW1lLiBUaGlzIGlzIHVzZWQgdG8gZGVmaW5lIGEgdGhlbWUgcGFsZXR0ZSBpbiB0ZXJtc1xuLy8gb2YgdGhlIE1hdGVyaWFsIERlc2lnbiBodWVzLlxuLy8gQHBhcmFtICRjb2xvci1tYXBcbi8vIEBwYXJhbSAkcHJpbWFyeVxuLy8gQHBhcmFtICRsaWdodGVyXG5AZnVuY3Rpb24gbWF0LXBhbGV0dGUoJGJhc2UtcGFsZXR0ZSwgJGRlZmF1bHQ6IDUwMCwgJGxpZ2h0ZXI6IDEwMCwgJGRhcmtlcjogNzAwLCAkdGV4dDogJGRlZmF1bHQpIHtcbiAgJHJlc3VsdDogbWFwX21lcmdlKCRiYXNlLXBhbGV0dGUsIChcbiAgICBkZWZhdWx0OiBtYXAtZ2V0KCRiYXNlLXBhbGV0dGUsICRkZWZhdWx0KSxcbiAgICBsaWdodGVyOiBtYXAtZ2V0KCRiYXNlLXBhbGV0dGUsICRsaWdodGVyKSxcbiAgICBkYXJrZXI6IG1hcC1nZXQoJGJhc2UtcGFsZXR0ZSwgJGRhcmtlciksXG4gICAgdGV4dDogbWFwLWdldCgkYmFzZS1wYWxldHRlLCAkdGV4dCksXG5cbiAgICBkZWZhdWx0LWNvbnRyYXN0OiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGRlZmF1bHQpLFxuICAgIGxpZ2h0ZXItY29udHJhc3Q6IG1hdC1jb250cmFzdCgkYmFzZS1wYWxldHRlLCAkbGlnaHRlciksXG4gICAgZGFya2VyLWNvbnRyYXN0OiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGRhcmtlcilcbiAgKSk7XG5cbiAgLy8gRm9yIGVhY2ggaHVlIGluIHRoZSBwYWxldHRlLCBhZGQgYSBcIi1jb250cmFzdFwiIGNvbG9yIHRvIHRoZSBtYXAuXG4gIEBlYWNoICRodWUsICRjb2xvciBpbiAkYmFzZS1wYWxldHRlIHtcbiAgICAkcmVzdWx0OiBtYXBfbWVyZ2UoJHJlc3VsdCwgKFxuICAgICAgJyN7JGh1ZX0tY29udHJhc3QnOiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGh1ZSlcbiAgICApKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuXG4vLyBHZXRzIGEgY29sb3IgZnJvbSBhIHRoZW1lIHBhbGV0dGUgKHRoZSBvdXRwdXQgb2YgbWF0LXBhbGV0dGUpLlxuLy8gVGhlIGh1ZSBjYW4gYmUgb25lIG9mIHRoZSBzdGFuZGFyZCB2YWx1ZXMgKDUwMCwgQTQwMCwgZXRjLiksIG9uZSBvZiB0aGUgdGhyZWUgcHJlY29uZmlndXJlZFxuLy8gaHVlcyAoZGVmYXVsdCwgbGlnaHRlciwgZGFya2VyKSwgb3IgYW55IG9mIHRoZSBhZm9yZW1lbnRpb25lZCBwcmVmaXhlZCB3aXRoIFwiLWNvbnRyYXN0XCIuXG4vL1xuLy8gQHBhcmFtICRjb2xvci1tYXAgVGhlIHRoZW1lIHBhbGV0dGUgKG91dHB1dCBvZiBtYXQtcGFsZXR0ZSkuXG4vLyBAcGFyYW0gJGh1ZSBUaGUgaHVlIGZyb20gdGhlIHBhbGV0dGUgdG8gdXNlLiBJZiB0aGlzIGlzIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxLCBpdCB3aWxsXG4vLyAgICAgYmUgdHJlYXRlZCBhcyBvcGFjaXR5LlxuLy8gQHBhcmFtICRvcGFjaXR5IFRoZSBhbHBoYSBjaGFubmVsIHZhbHVlIGZvciB0aGUgY29sb3IuXG5AZnVuY3Rpb24gbWF0LWNvbG9yKCRwYWxldHRlLCAkaHVlOiBkZWZhdWx0LCAkb3BhY2l0eTogbnVsbCkge1xuICAvLyBJZiBodWVLZXkgaXMgYSBudW1iZXIgYmV0d2VlbiB6ZXJvIGFuZCBvbmUsIHRoZW4gaXQgYWN0dWFsbHkgY29udGFpbnMgYW5cbiAgLy8gb3BhY2l0eSB2YWx1ZSwgc28gcmVjYWxsIHRoaXMgZnVuY3Rpb24gd2l0aCB0aGUgZGVmYXVsdCBodWUgYW5kIHRoYXQgZ2l2ZW4gb3BhY2l0eS5cbiAgQGlmIHR5cGUtb2YoJGh1ZSkgPT0gbnVtYmVyIGFuZCAkaHVlID49IDAgYW5kICRodWUgPD0gMSB7XG4gICAgQHJldHVybiBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQsICRodWUpO1xuICB9XG5cbiAgJGNvbG9yOiBtYXAtZ2V0KCRwYWxldHRlLCAkaHVlKTtcblxuICBAaWYgKHR5cGUtb2YoJGNvbG9yKSAhPSBjb2xvcikge1xuICAgIC8vIElmIHRoZSAkY29sb3IgcmVzb2x2ZWQgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIGEgY29sb3IgKGUuZy4gYSBDU1MgdmFyaWFibGUpLFxuICAgIC8vIHdlIGNhbid0IGFwcGx5IHRoZSBvcGFjaXR5IGFueXdheSBzbyB3ZSByZXR1cm4gdGhlIHZhbHVlIGFzIGlzLCBvdGhlcndpc2UgU2FzcyBjYW5cbiAgICAvLyB0aHJvdyBhbiBlcnJvciBvciBvdXRwdXQgc29tZXRoaW5nIGludmFsaWQuXG4gICAgQHJldHVybiAkY29sb3I7XG4gIH1cblxuICBAcmV0dXJuIHJnYmEoJGNvbG9yLCBpZigkb3BhY2l0eSA9PSBudWxsLCBvcGFjaXR5KCRjb2xvciksICRvcGFjaXR5KSk7XG59XG5cblxuLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBvYmplY3QgZm9yIGEgbGlnaHQgdGhlbWUgdG8gYmUgZ2l2ZW4gdG8gaW5kaXZpZHVhbCBjb21wb25lbnQgdGhlbWUgbWl4aW5zLlxuQGZ1bmN0aW9uIG1hdC1saWdodC10aGVtZSgkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm46IG1hdC1wYWxldHRlKCRtYXQtcmVkKSkge1xuICBAcmV0dXJuIChcbiAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICBhY2NlbnQ6ICRhY2NlbnQsXG4gICAgd2FybjogJHdhcm4sXG4gICAgaXMtZGFyazogZmFsc2UsXG4gICAgZm9yZWdyb3VuZDogJG1hdC1saWdodC10aGVtZS1mb3JlZ3JvdW5kLFxuICAgIGJhY2tncm91bmQ6ICRtYXQtbGlnaHQtdGhlbWUtYmFja2dyb3VuZCxcbiAgKTtcbn1cblxuXG4vLyBDcmVhdGVzIGEgY29udGFpbmVyIG9iamVjdCBmb3IgYSBkYXJrIHRoZW1lIHRvIGJlIGdpdmVuIHRvIGluZGl2aWR1YWwgY29tcG9uZW50IHRoZW1lIG1peGlucy5cbkBmdW5jdGlvbiBtYXQtZGFyay10aGVtZSgkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm46IG1hdC1wYWxldHRlKCRtYXQtcmVkKSkge1xuICBAcmV0dXJuIChcbiAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICBhY2NlbnQ6ICRhY2NlbnQsXG4gICAgd2FybjogJHdhcm4sXG4gICAgaXMtZGFyazogdHJ1ZSxcbiAgICBmb3JlZ3JvdW5kOiAkbWF0LWRhcmstdGhlbWUtZm9yZWdyb3VuZCxcbiAgICBiYWNrZ3JvdW5kOiAkbWF0LWRhcmstdGhlbWUtYmFja2dyb3VuZCxcbiAgKTtcbn1cblxuXG5cbiRtYXQtcmlwcGxlLWNvbG9yLW9wYWNpdHk6IDAuMTtcblxuQG1peGluIG1hdC1yaXBwbGUoKSB7XG5cbiAgLy8gVGhlIGhvc3QgZWxlbWVudCBvZiBhbiBtYXQtcmlwcGxlIGRpcmVjdGl2ZSBzaG91bGQgYWx3YXlzIGhhdmUgYSBwb3NpdGlvbiBvZiBcImFic29sdXRlXCIgb3JcbiAgLy8gXCJyZWxhdGl2ZVwiIHNvIHRoYXQgdGhlIHJpcHBsZXMgaW5zaWRlIGFyZSBjb3JyZWN0bHkgcG9zaXRpb25lZCByZWxhdGl2ZWx5IHRvIHRoZSBjb250YWluZXIuXG4gIC5tYXQtcmlwcGxlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLy8gQnkgZGVmYXVsdCwgZXZlcnkgcmlwcGxlIGNvbnRhaW5lciBzaG91bGQgaGF2ZSBwb3NpdGlvbjogcmVsYXRpdmUgaW4gZmF2b3Igb2YgY3JlYXRpbmcgYW5cbiAgICAvLyBlYXN5IEFQSSBmb3IgZGV2ZWxvcGVycyB1c2luZyB0aGUgTWF0UmlwcGxlIGRpcmVjdGl2ZS5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZCB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cblxuICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSwgdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuXG4gICAgLy8gSW4gaGlnaCBjb250cmFzdCBtb2RlIHRoZSByaXBwbGUgaXMgb3BhcXVlLCBjYXVzaW5nIGl0IHRvIG9ic3RydWN0IHRoZSBjb250ZW50LlxuICAgIEBpbmNsdWRlIGNkay1oaWdoLWNvbnRyYXN0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8qIFRoZW1lIGZvciB0aGUgcmlwcGxlIGVsZW1lbnRzLiovXG5AbWl4aW4gbWF0LXJpcHBsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcF9nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQtYmFzZTogbWFwX2dldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgLy8gSWYgdGhlIHJpcHBsZSBjb2xvciBpcyByZXNvbHZlcyB0byBhIGNvbG9yICp0eXBlKiwgd2UgY2FuIHVzZSBpdCBkaXJlY3RseSwgb3RoZXJ3aXNlXG4gICAgLy8gKGUuZy4gaXQgcmVzb2x2ZXMgdG8gYSBDU1MgdmFyaWFibGUpIHdlIGZhbGwgYmFjayB0byB1c2luZyB0aGUgY29sb3IgYW5kIHNldHRpbmcgYW4gb3BhY2l0eS5cbiAgICBAaWYgKHR5cGUtb2YoJGZvcmVncm91bmQtYmFzZSkgPT0gY29sb3IpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGZvcmVncm91bmQtYmFzZSwgJG1hdC1yaXBwbGUtY29sb3Itb3BhY2l0eSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmb3JlZ3JvdW5kLWJhc2U7XG4gICAgICBvcGFjaXR5OiAkbWF0LXJpcHBsZS1jb2xvci1vcGFjaXR5O1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gVXRpbGl0eSBmb3IgZmV0Y2hpbmcgYSBuZXN0ZWQgdmFsdWUgZnJvbSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCAkbmFtZSkge1xuICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkY29uZmlnLCAkbGV2ZWwpLCAkbmFtZSk7XG59XG5cbi8vIEdldHMgdGhlIGZvbnQgc2l6ZSBmb3IgYSBsZXZlbCBpbnNpZGUgYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBtYXQtZm9udC1zaXplKCRjb25maWcsICRsZXZlbCkge1xuICBAcmV0dXJuIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBmb250LXNpemUpO1xufVxuXG4vLyBHZXRzIHRoZSBsaW5lIGhlaWdodCBmb3IgYSBsZXZlbCBpbnNpZGUgYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgJGxldmVsKSB7XG4gIEByZXR1cm4gX21hdC1nZXQtdHlwZS12YWx1ZSgkY29uZmlnLCAkbGV2ZWwsIGxpbmUtaGVpZ2h0KTtcbn1cblxuLy8gR2V0cyB0aGUgZm9udCB3ZWlnaHQgZm9yIGEgbGV2ZWwgaW5zaWRlIGEgdHlwb2dyYXBoeSBjb25maWcuXG5AZnVuY3Rpb24gbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsICRsZXZlbCkge1xuICBAcmV0dXJuIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBmb250LXdlaWdodCk7XG59XG5cbi8vIEdldHMgdGhlIGxldHRlciBzcGFjaW5nIGZvciBhIGxldmVsIGluc2lkZSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIG1hdC1sZXR0ZXItc3BhY2luZygkY29uZmlnLCAkbGV2ZWwpIHtcbiAgQHJldHVybiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgbGV0dGVyLXNwYWNpbmcpO1xufVxuXG4vLyBHZXRzIHRoZSBmb250LWZhbWlseSBmcm9tIGEgdHlwb2dyYXBoeSBjb25maWcgYW5kIHJlbW92ZXMgdGhlIHF1b3RlcyBhcm91bmQgaXQuXG5AZnVuY3Rpb24gbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsICRsZXZlbDogbnVsbCkge1xuICAkZm9udC1mYW1pbHk6IG1hcC1nZXQoJGNvbmZpZywgZm9udC1mYW1pbHkpO1xuXG4gIEBpZiAkbGV2ZWwgIT0gbnVsbCB7XG4gICAgJGZvbnQtZmFtaWx5OiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgZm9udC1mYW1pbHkpO1xuICB9XG5cbiAgLy8gR3VhcmQgYWdhaW5zdCB1bnF1b3Rpbmcgbm9uLXN0cmluZyB2YWx1ZXMsIGJlY2F1c2UgaXQncyBkZXByZWNhdGVkLlxuICBAcmV0dXJuIGlmKHR5cGUtb2YoJGZvbnQtZmFtaWx5KSA9PSBzdHJpbmcsIHVucXVvdGUoJGZvbnQtZmFtaWx5KSwgJGZvbnQtZmFtaWx5KTtcbn1cblxuLy8gT3V0cHV0cyB0aGUgc2hvcnRoYW5kIGBmb250YCBDU1MgcHJvcGVydHksIGJhc2VkIG9uIGEgc2V0IG9mIHR5cG9ncmFwaHkgdmFsdWVzLiBGYWxscyBiYWNrIHRvXG4vLyB0aGUgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIGlmIGEgdmFsdWUgdGhhdCBpc24ndCBhbGxvd2VkIGluIHRoZSBzaG9ydGhhbmQgaXMgcGFzc2VkIGluLlxuQG1peGluIG1hdC10eXBvZ3JhcGh5LWZvbnQtc2hvcnRoYW5kKCRmb250LXNpemUsICRmb250LXdlaWdodCwgJGxpbmUtaGVpZ2h0LCAkZm9udC1mYW1pbHkpIHtcbiAgLy8gSWYgYW55IG9mIHRoZSB2YWx1ZXMgYXJlIHNldCB0byBgaW5oZXJpdGAsIHdlIGNhbid0IHVzZSB0aGUgc2hvcnRoYW5kXG4gIC8vIHNvIHdlIGZhbGwgYmFjayB0byBwYXNzaW5nIGluIHRoZSBpbmRpdmlkdWFsIHByb3BlcnRpZXMuXG4gIEBpZiAoJGZvbnQtc2l6ZSA9PSBpbmhlcml0IG9yXG4gICAgICAgJGZvbnQtd2VpZ2h0ID09IGluaGVyaXQgb3JcbiAgICAgICAkbGluZS1oZWlnaHQgPT0gaW5oZXJpdCBvclxuICAgICAgICRmb250LWZhbWlseSA9PSBpbmhlcml0IG9yXG4gICAgICAgJGZvbnQtc2l6ZSA9PSBudWxsIG9yXG4gICAgICAgJGZvbnQtd2VpZ2h0ID09IG51bGwgb3JcbiAgICAgICAkbGluZS1oZWlnaHQgPT0gbnVsbCBvclxuICAgICAgICRmb250LWZhbWlseSA9PSBudWxsKSB7XG5cbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIE90aGVyd2lzZSB1c2UgdGhlIHNob3J0aGFuZCBgZm9udGAsIGJlY2F1c2UgaXQncyB0aGUgbGVhc3QgYW1vdW50IG9mIGJ5dGVzLiBOb3RlXG4gICAgLy8gdGhhdCB3ZSBuZWVkIHRvIHVzZSBpbnRlcnBvbGF0aW9uIGZvciBgZm9udC1zaXplL2xpbmUtaGVpZ2h0YCBpbiBvcmRlciB0byBwcmV2ZW50XG4gICAgLy8gU2FzcyBmcm9tIGRpdmlkaW5nIHRoZSB0d28gdmFsdWVzLlxuICAgIGZvbnQ6ICRmb250LXdlaWdodCAjeyRmb250LXNpemV9LyN7JGxpbmUtaGVpZ2h0fSAkZm9udC1mYW1pbHk7XG4gIH1cbn1cblxuLy8gQ29udmVydHMgYSB0eXBvZ3JhcGh5IGxldmVsIGludG8gQ1NTIHN0eWxlcy5cbkBtaXhpbiBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgJGxldmVsKSB7XG4gICRmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgJGxldmVsKTtcbiAgJGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgJGxldmVsKTtcbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgJGxldmVsKTtcbiAgJGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgJGxldmVsKTtcblxuICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZCgkZm9udC1zaXplLCAkZm9udC13ZWlnaHQsICRsaW5lLWhlaWdodCwgJGZvbnQtZmFtaWx5KTtcbiAgbGV0dGVyLXNwYWNpbmc6IG1hdC1sZXR0ZXItc3BhY2luZygkY29uZmlnLCAkbGV2ZWwpO1xufVxuXG5cbkBtaXhpbiBtYXQtb3B0aW9uLXRoZW1lKCR0aGVtZSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcblxuICAubWF0LW9wdGlvbiB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAmOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksXG4gICAgJjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgIH1cblxuICAgIC8vIEluIG11bHRpcGxlIG1vZGUgdGhlcmUgaXMgYSBjaGVja2JveCB0byBzaG93IHRoYXQgdGhlIG9wdGlvbiBpcyBzZWxlY3RlZC5cbiAgICAmLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgfVxuXG4gICAgJi5tYXQtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtb3B0aW9uLWRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1wcmltYXJ5IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LW9wdGlvbi10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1vcHRpb24ge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBzdWJoZWFkaW5nLTIpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtb3B0Z3JvdXAtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1vcHRncm91cC1kaXNhYmxlZCAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtb3B0Z3JvdXAtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTIpO1xuICB9XG59XG5cblxuXG5AbWl4aW4gbWF0LXBzZXVkby1jaGVja2JveC10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG5cbiAgLy8gTk9URSh0cmF2aXNrYXVmbWFuKTogV2hpbGUgdGhlIHNwZWMgY2FsbHMgZm9yIHRyYW5zbHVjZW50IGJsYWNrcy93aGl0ZXMgZm9yIGRpc2FibGVkIGNvbG9ycyxcbiAgLy8gdGhpcyBkb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBlbGVtZW50cyBsYXllcmVkIG9uIHRvcCBvZiBvbmUgYW5vdGhlci4gVG8gZ2V0IGFyb3VuZCB0aGlzIHdlXG4gIC8vIGJsZW5kIHRoZSBjb2xvcnMgdG9nZXRoZXIgYmFzZWQgb24gdGhlIGJhc2UgY29sb3IgYW5kIHRoZSB0aGVtZSBiYWNrZ3JvdW5kLlxuICAkd2hpdGUtMzBwY3Qtb3BhY2l0eS1vbi1kYXJrOiAjNjg2ODY4O1xuICAkYmxhY2stMjZwY3Qtb3BhY2l0eS1vbi1saWdodDogI2IwYjBiMDtcbiAgJGRpc2FibGVkLWNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJHdoaXRlLTMwcGN0LW9wYWNpdHktb24tZGFyaywgJGJsYWNrLTI2cGN0LW9wYWNpdHktb24tbGlnaHQpO1xuICAkY29sb3JlZC1ib3gtc2VsZWN0b3I6ICcubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlJztcblxuICAubWF0LXBzZXVkby1jaGVja2JveCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCksIHNlY29uZGFyeS10ZXh0KTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICBjb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IobWFwLWdldCgkdGhlbWUsIHByaW1hcnkpKTtcbiAgfVxuXG4gIC8vIERlZmF1bHQgdG8gdGhlIGFjY2VudCBjb2xvci4gTm90ZSB0aGF0IHRoZSBwc2V1ZG8gY2hlY2tib3hlcyBhcmUgbWVhbnQgdG8gaW5oZXJpdCB0aGVcbiAgLy8gdGhlbWUgZnJvbSB0aGVpciBwYXJlbnQsIHJhdGhlciB0aGFuIGltcGxlbWVudGluZyB0aGVpciBvd24gdGhlbWluZywgd2hpY2ggaXMgd2h5IHdlXG4gIC8vIGRvbid0IGF0dGFjaCB0byB0aGUgYG1hdC0qYCBjbGFzc2VzLiBBbHNvIG5vdGUgdGhhdCB0aGlzIG5lZWRzIHRvIGJlIGJlbG93IGAubWF0LXByaW1hcnlgXG4gIC8vIGluIG9yZGVyIHRvIGFsbG93IGZvciB0aGUgY29sb3IgdG8gYmUgb3ZlcndyaXR0ZW4gaWYgdGhlIGNoZWNrYm94IGlzIGluc2lkZSBhIHBhcmVudCB0aGF0XG4gIC8vIGhhcyBgbWF0LWFjY2VudGAgYW5kIGlzIHBsYWNlZCBpbnNpZGUgYW5vdGhlciBwYXJlbnQgdGhhdCBoYXMgYG1hdC1wcmltYXJ5YC5cbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSxcbiAgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbiAgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpKTtcbiAgfVxuXG4gIC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKG1hcC1nZXQoJHRoZW1lLCB3YXJuKSk7XG4gIH1cblxuICAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICAmLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICAgICAgYmFja2dyb3VuZDogJGRpc2FibGVkLWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gUmVwcmVzZW50cyBhIHR5cG9ncmFwaHkgbGV2ZWwgZnJvbSB0aGUgTWF0ZXJpYWwgZGVzaWduIHNwZWMuXG5AZnVuY3Rpb24gbWF0LXR5cG9ncmFwaHktbGV2ZWwoXG4gICRmb250LXNpemUsXG4gICRsaW5lLWhlaWdodDogJGZvbnQtc2l6ZSxcbiAgJGZvbnQtd2VpZ2h0OiA0MDAsXG4gICRmb250LWZhbWlseTogbnVsbCxcbiAgJGxldHRlci1zcGFjaW5nOiBudWxsKSB7XG5cbiAgQHJldHVybiAoXG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLFxuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQsXG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodCxcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LFxuICAgIGxldHRlci1zcGFjaW5nOiAkbGV0dGVyLXNwYWNpbmdcbiAgKTtcbn1cblxuLy8gUmVwcmVzZW50cyBhIGNvbGxlY3Rpb24gb2YgdHlwb2dyYXBoeSBsZXZlbHMuXG4vLyBEZWZhdWx0cyBjb21lIGZyb20gaHR0cHM6Ly9tYXRlcmlhbC5pby9ndWlkZWxpbmVzL3N0eWxlL3R5cG9ncmFwaHkuaHRtbFxuLy8gTm90ZTogVGhlIHNwZWMgZG9lc24ndCBtZW50aW9uIGxldHRlciBzcGFjaW5nLiBUaGUgdmFsdWVzIGhlcmUgY29tZSBmcm9tXG4vLyBleWViYWxsaW5nIGl0IHVudGlsIGl0IGxvb2tlZCBleGFjdGx5IGxpa2UgdGhlIHNwZWMgZXhhbXBsZXMuXG5AZnVuY3Rpb24gbWF0LXR5cG9ncmFwaHktY29uZmlnKFxuICAkZm9udC1mYW1pbHk6ICAgJ1JvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmJyxcbiAgJGRpc3BsYXktNDogICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDExMnB4LCAxMTJweCwgMzAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjA1ZW0pLFxuICAkZGlzcGxheS0zOiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoNTZweCwgNTZweCwgNDAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW0pLFxuICAkZGlzcGxheS0yOiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoNDVweCwgNDhweCwgNDAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjAwNWVtKSxcbiAgJGRpc3BsYXktMTogICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDM0cHgsIDQwcHgsIDQwMCksXG4gICRoZWFkbGluZTogICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgyNHB4LCAzMnB4LCA0MDApLFxuICAkdGl0bGU6ICAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMjBweCwgMzJweCwgNTAwKSxcbiAgJHN1YmhlYWRpbmctMjogIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE2cHgsIDI4cHgsIDQwMCksXG4gICRzdWJoZWFkaW5nLTE6ICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNXB4LCAyNHB4LCA0MDApLFxuICAkYm9keS0yOiAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTRweCwgMjRweCwgNTAwKSxcbiAgJGJvZHktMTogICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE0cHgsIDIwcHgsIDQwMCksXG4gICRjYXB0aW9uOiAgICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxMnB4LCAyMHB4LCA0MDApLFxuICAkYnV0dG9uOiAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTRweCwgMTRweCwgNTAwKSxcbiAgLy8gTGluZS1oZWlnaHQgbXVzdCBiZSB1bml0LWxlc3MgZnJhY3Rpb24gb2YgdGhlIGZvbnQtc2l6ZS5cbiAgJGlucHV0OiAgICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKGluaGVyaXQsIDEuMTI1LCA0MDApXG4pIHtcblxuICAvLyBEZWNsYXJlIGFuIGluaXRpYWwgbWFwIHdpdGggYWxsIG9mIHRoZSBsZXZlbHMuXG4gICRjb25maWc6IChcbiAgICBkaXNwbGF5LTQ6ICAgICAgJGRpc3BsYXktNCxcbiAgICBkaXNwbGF5LTM6ICAgICAgJGRpc3BsYXktMyxcbiAgICBkaXNwbGF5LTI6ICAgICAgJGRpc3BsYXktMixcbiAgICBkaXNwbGF5LTE6ICAgICAgJGRpc3BsYXktMSxcbiAgICBoZWFkbGluZTogICAgICAgJGhlYWRsaW5lLFxuICAgIHRpdGxlOiAgICAgICAgICAkdGl0bGUsXG4gICAgc3ViaGVhZGluZy0yOiAgICRzdWJoZWFkaW5nLTIsXG4gICAgc3ViaGVhZGluZy0xOiAgICRzdWJoZWFkaW5nLTEsXG4gICAgYm9keS0yOiAgICAgICAgICRib2R5LTIsXG4gICAgYm9keS0xOiAgICAgICAgICRib2R5LTEsXG4gICAgY2FwdGlvbjogICAgICAgICRjYXB0aW9uLFxuICAgIGJ1dHRvbjogICAgICAgICAkYnV0dG9uLFxuICAgIGlucHV0OiAgICAgICAgICAkaW5wdXQsXG4gICk7XG5cbiAgLy8gTG9vcCB0aHJvdWdoIHRoZSBsZXZlbHMgYW5kIHNldCB0aGUgYGZvbnQtZmFtaWx5YCBvZiB0aGUgb25lcyB0aGF0IGRvbid0IGhhdmUgb25lIHRvIHRoZSBiYXNlLlxuICAvLyBOb3RlIHRoYXQgU2FzcyBjYW4ndCBtb2RpZnkgbWFwcyBpbiBwbGFjZSwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBuZWVkIHRvIG1lcmdlIGFuZCByZS1hc3NpZ24uXG4gIEBlYWNoICRrZXksICRsZXZlbCBpbiAkY29uZmlnIHtcbiAgICBAaWYgbWFwLWdldCgkbGV2ZWwsIGZvbnQtZmFtaWx5KSA9PSBudWxsIHtcbiAgICAgICRuZXctbGV2ZWw6IG1hcC1tZXJnZSgkbGV2ZWwsIChmb250LWZhbWlseTogJGZvbnQtZmFtaWx5KSk7XG4gICAgICAkY29uZmlnOiBtYXAtbWVyZ2UoJGNvbmZpZywgKCRrZXk6ICRuZXctbGV2ZWwpKTtcbiAgICB9XG4gIH1cblxuICAvLyBBZGQgdGhlIGJhc2UgZm9udCBmYW1pbHkgdG8gdGhlIGNvbmZpZy5cbiAgQHJldHVybiBtYXAtbWVyZ2UoJGNvbmZpZywgKGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHkpKTtcbn1cblxuLy8gQWRkcyB0aGUgYmFzZSB0eXBvZ3JhcGh5IHN0eWxlcywgYmFzZWQgb24gYSBjb25maWcuXG5AbWl4aW4gbWF0LWJhc2UtdHlwb2dyYXBoeSgkY29uZmlnLCAkc2VsZWN0b3I6ICcubWF0LXR5cG9ncmFwaHknKSB7XG4gIC5tYXQtaDEsIC5tYXQtaGVhZGxpbmUsICN7JHNlbGVjdG9yfSBoMSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGhlYWRsaW5lKTtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICB9XG5cbiAgLm1hdC1oMiwgLm1hdC10aXRsZSwgI3skc2VsZWN0b3J9IGgyIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgdGl0bGUpO1xuICAgIG1hcmdpbjogMCAwIDE2cHg7XG4gIH1cblxuICAubWF0LWgzLCAubWF0LXN1YmhlYWRpbmctMiwgI3skc2VsZWN0b3J9IGgzIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgc3ViaGVhZGluZy0yKTtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICB9XG5cbiAgLm1hdC1oNCwgLm1hdC1zdWJoZWFkaW5nLTEsICN7JHNlbGVjdG9yfSBoNCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgbWFyZ2luOiAwIDAgMTZweDtcbiAgfVxuXG4gIC8vIE5vdGU6IHRoZSBzcGVjIGRvZXNuJ3QgaGF2ZSBhbnl0aGluZyB0aGF0IHdvdWxkIGNvcnJlc3BvbmQgdG8gaDUgYW5kIGg2LCBidXQgd2UgYWRkIHRoZXNlIGZvclxuICAvLyBjb25zaXN0ZW5jeS4gVGhlIGZvbnQgc2l6ZXMgY29tZSBmcm9tIHRoZSBDaHJvbWUgdXNlciBhZ2VudCBzdHlsZXMgd2hpY2ggaGF2ZSBoNSBhdCAwLjgzZW1cbiAgLy8gYW5kIGg2IGF0IDAuNjdlbS5cbiAgLm1hdC1oNSwgI3skc2VsZWN0b3J9IGg1IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZChcbiAgICAgICAvLyBjYWxjIGlzIHVzZWQgaGVyZSB0byBzdXBwb3J0IGNzcyB2YXJpYWJsZXNcbiAgICAgIGNhbGMoI3ttYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSl9ICogMC44MyksXG4gICAgICBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgIG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBib2R5LTEpLFxuICAgICAgbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMSlcbiAgICApO1xuXG4gICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgfVxuXG4gIC5tYXQtaDYsICN7JHNlbGVjdG9yfSBoNiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktZm9udC1zaG9ydGhhbmQoXG4gICAgICAgLy8gY2FsYyBpcyB1c2VkIGhlcmUgdG8gc3VwcG9ydCBjc3MgdmFyaWFibGVzXG4gICAgICBjYWxjKCN7bWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpfSAqIDAuNjcpLFxuICAgICAgbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSksXG4gICAgICBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgIG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBib2R5LTEpXG4gICAgKTtcblxuICAgIG1hcmdpbjogMCAwIDEycHg7XG4gIH1cblxuICAubWF0LWJvZHktc3Ryb25nLCAubWF0LWJvZHktMiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGJvZHktMik7XG4gIH1cblxuICAubWF0LWJvZHksIC5tYXQtYm9keS0xLCAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuXG4gICAgcCB7XG4gICAgICBtYXJnaW46IDAgMCAxMnB4O1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc21hbGwsIC5tYXQtY2FwdGlvbiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGNhcHRpb24pO1xuICB9XG5cbiAgLm1hdC1kaXNwbGF5LTQsICN7JHNlbGVjdG9yfSAubWF0LWRpc3BsYXktNCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGRpc3BsYXktNCk7XG4gICAgbWFyZ2luOiAwIDAgNTZweDtcbiAgfVxuXG4gIC5tYXQtZGlzcGxheS0zLCAjeyRzZWxlY3Rvcn0gLm1hdC1kaXNwbGF5LTMge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBkaXNwbGF5LTMpO1xuICAgIG1hcmdpbjogMCAwIDY0cHg7XG4gIH1cblxuICAubWF0LWRpc3BsYXktMiwgI3skc2VsZWN0b3J9IC5tYXQtZGlzcGxheS0yIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgZGlzcGxheS0yKTtcbiAgICBtYXJnaW46IDAgMCA2NHB4O1xuICB9XG5cbiAgLm1hdC1kaXNwbGF5LTEsICN7JHNlbGVjdG9yfSAubWF0LWRpc3BsYXktMSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGRpc3BsYXktMSk7XG4gICAgbWFyZ2luOiAwIDAgNjRweDtcbiAgfVxufVxuXG5cblxuXG5AbWl4aW4gbWF0LWF1dG9jb21wbGV0ZS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcblxuICAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgLy8gU2VsZWN0ZWQgb3B0aW9ucyBpbiBhdXRvY29tcGxldGVzIHNob3VsZCBub3QgYmUgZ3JheSwgYnV0IHdlXG4gICAgLy8gb25seSB3YW50IHRvIG92ZXJyaWRlIHRoZSBiYWNrZ3JvdW5kIGZvciBzZWxlY3RlZCBvcHRpb25zIGlmXG4gICAgLy8gdGhleSBhcmUgKm5vdCogaW4gaG92ZXIgb3IgZm9jdXMgc3RhdGUuIFRoaXMgY2hhbmdlIGhhcyB0byBiZVxuICAgIC8vIG1hZGUgaGVyZSBiZWNhdXNlIGJhc2Ugb3B0aW9uIHN0eWxlcyBhcmUgc2hhcmVkIGJldHdlZW4gdGhlXG4gICAgLy8gYXV0b2NvbXBsZXRlIGFuZCB0aGUgc2VsZWN0LlxuICAgIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG5cbiAgICAgICY6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbkBtaXhpbiBtYXQtYXV0b2NvbXBsZXRlLXR5cG9ncmFwaHkoJGNvbmZpZykgeyB9XG5cbi8vIFRoaXMgY29udGFpbnMgYWxsIG9mIHRoZSBzdHlsZXMgZm9yIHRoZSBiYWRnZVxuLy8gcmF0aGVyIHRoYW4ganVzdCB0aGUgY29sb3IvdGhlbWUgYmVjYXVzZSBvZlxuLy8gbm8gc3R5bGUgc2hlZXQgc3VwcG9ydCBmb3IgZGlyZWN0aXZlcy5cblxuXG5cblxuXG4kbWF0LWJhZGdlLWZvbnQtc2l6ZTogMTJweDtcbiRtYXQtYmFkZ2UtZm9udC13ZWlnaHQ6IDYwMDtcbiRtYXQtYmFkZ2UtZGVmYXVsdC1zaXplOiAyMnB4ICFkZWZhdWx0O1xuJG1hdC1iYWRnZS1zbWFsbC1zaXplOiAkbWF0LWJhZGdlLWRlZmF1bHQtc2l6ZSAtIDY7XG4kbWF0LWJhZGdlLWxhcmdlLXNpemU6ICRtYXQtYmFkZ2UtZGVmYXVsdC1zaXplICsgNjtcblxuLy8gTWl4aW4gZm9yIGJ1aWxkaW5nIG9mZnNldCBnaXZlbiBkaWZmZXJlbnQgc2l6ZXNcbkBtaXhpbiBfbWF0LWJhZGdlLXNpemUoJHNpemUpIHtcbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJHNpemU7XG4gIH1cblxuICAmLm1hdC1iYWRnZS1hYm92ZSB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIHRvcDogLSRzaXplIC8gMjtcbiAgICB9XG4gIH1cblxuICAmLm1hdC1iYWRnZS1iZWxvdyB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIGJvdHRvbTogLSRzaXplIC8gMjtcbiAgICB9XG4gIH1cblxuICAmLm1hdC1iYWRnZS1iZWZvcmUge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBsZWZ0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgW2Rpcj0ncnRsJ10gJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIHJpZ2h0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgJi5tYXQtYmFkZ2UtYWZ0ZXIge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICByaWdodDogLSRzaXplO1xuICAgIH1cbiAgfVxuXG4gIFtkaXI9J3J0bCddICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBsZWZ0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgJi5tYXQtYmFkZ2Utb3ZlcmxhcCB7XG4gICAgJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIGxlZnQ6IC0kc2l6ZSAvIDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgW2Rpcj0ncnRsJ10gJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIHJpZ2h0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cblxuICAgIFtkaXI9J3J0bCddICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBsZWZ0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJhZGdlLXRoZW1lKCR0aGVtZSkge1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG5cbiAgICBAaW5jbHVkZSBjZGstaGlnaC1jb250cmFzdCB7XG4gICAgICBvdXRsaW5lOiBzb2xpZCAxcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2UtYWNjZW50IHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJhZGdlLXdhcm4ge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLm1hdC1iYWRnZS1oaWRkZW4ge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2UtZGlzYWJsZWQge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAkYXBwLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2JhY2tncm91bmQnKTtcbiAgICAgICRiYWRnZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC1idXR0b24pO1xuXG4gICAgICAvLyBUaGUgZGlzYWJsZWQgY29sb3IgdXN1YWxseSBoYXMgc29tZSBraW5kIG9mIG9wYWNpdHksIGJ1dCBiZWNhdXNlIHRoZSBiYWRnZSBpcyBvdmVybGF5ZWRcbiAgICAgIC8vIG9uIHRvcCBvZiBzb21ldGhpbmcgZWxzZSwgaXQgd29uJ3QgbG9vayBnb29kIGlmIGl0J3Mgb3BhcXVlLiBJZiBpdCBpcyBhIGNvbG9yICp0eXBlKixcbiAgICAgIC8vIHdlIGNvbnZlcnQgaXQgaW50byBhIHNvbGlkIGNvbG9yIGJ5IHRha2luZyB0aGUgb3BhY2l0eSBmcm9tIHRoZSByZ2JhIHZhbHVlIGFuZCB1c2luZ1xuICAgICAgLy8gdGhlIHZhbHVlIHRvIGRldGVybWluZSB0aGUgcGVyY2VudGFnZSBvZiB0aGUgYmFja2dyb3VuZCB0byBwdXQgaW50byBmb3JlZ3JvdW5kIHdoZW5cbiAgICAgIC8vIG1peGluZyB0aGUgY29sb3JzIHRvZ2V0aGVyLlxuICAgICAgQGlmICh0eXBlLW9mKCRiYWRnZS1jb2xvcikgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGFwcC1iYWNrZ3JvdW5kKSA9PSBjb2xvcikge1xuICAgICAgICAkYmFkZ2Utb3BhY2l0eTogb3BhY2l0eSgkYmFkZ2UtY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kOiBtaXgoJGFwcC1iYWNrZ3JvdW5kLCByZ2JhKCRiYWRnZS1jb2xvciwgMSksICgxIC0gJGJhZGdlLW9wYWNpdHkpICogMTAwJSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRiYWRnZS1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0O1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsXG4gIC5tYXQtYmFkZ2UtY29udGVudC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8vIFRoZSBhY3RpdmUgY2xhc3MgaXMgYWRkZWQgYWZ0ZXIgdGhlIGVsZW1lbnQgaXMgYWRkZWRcbiAgLy8gc28gaXQgY2FuIGFuaW1hdGUgc2NhbGUgdG8gZGVmYXVsdFxuICAubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZSB7XG4gICAgLy8gU2NhbGUgdG8gYG5vbmVgIGluc3RlYWQgb2YgYDFgIHRvIGF2b2lkIGJsdXJyeSB0ZXh0IGluIHNvbWUgYnJvd3NlcnMuXG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgLm1hdC1iYWRnZS1zbWFsbCB7XG4gICAgQGluY2x1ZGUgX21hdC1iYWRnZS1zaXplKCRtYXQtYmFkZ2Utc21hbGwtc2l6ZSk7XG4gIH1cbiAgLm1hdC1iYWRnZS1tZWRpdW0ge1xuICAgIEBpbmNsdWRlIF9tYXQtYmFkZ2Utc2l6ZSgkbWF0LWJhZGdlLWRlZmF1bHQtc2l6ZSk7XG4gIH1cbiAgLm1hdC1iYWRnZS1sYXJnZSB7XG4gICAgQGluY2x1ZGUgX21hdC1iYWRnZS1zaXplKCRtYXQtYmFkZ2UtbGFyZ2Utc2l6ZSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1iYWRnZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBmb250LXdlaWdodDogJG1hdC1iYWRnZS1mb250LXdlaWdodDtcbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplO1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgLy8gU2V0IHRoZSBmb250IHNpemUgdG8gNzUlIG9mIHRoZSBvcmlnaW5hbC5cbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplICogMC43NTtcbiAgfVxuXG4gIC5tYXQtYmFkZ2UtbGFyZ2UgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplICogMjtcbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtYm90dG9tLXNoZWV0LXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMTYsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtYm90dG9tLXNoZWV0LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG5cblxuJF9tYXQtYnV0dG9uLXJpcHBsZS1vcGFjaXR5OiAwLjE7XG5cbi8vIEFwcGxpZXMgYSBmb2N1cyBzdHlsZSB0byBhbiBtYXQtYnV0dG9uIGVsZW1lbnQgZm9yIGVhY2ggb2YgdGhlIHN1cHBvcnRlZCBwYWxldHRlcy5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LWNvbG9yKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcblxuICAmLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gIH1cblxuICAmLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICB9XG5cbiAgJi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHdhcm4pO1xuICB9XG5cbiAgJltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8gQXBwbGllcyB0aGUgYmFja2dyb3VuZCBjb2xvciBmb3IgYSByaXBwbGUuIElmIHRoZSB2YWx1ZSBwcm92aWRlZCBpcyBub3QgYSBTYXNzIGNvbG9yLFxuLy8gd2UgYXNzdW1lIHRoYXQgd2UndmUgYmVlbiBnaXZlbiBhIENTUyB2YXJpYWJsZS4gU2luY2Ugd2UgY2FuJ3QgcGVyZm9ybSBhbHBoYS1ibGVuZGluZ1xuLy8gb24gYSBDU1MgdmFyaWFibGUsIHdlIGluc3RlYWQgYWRkIHRoZSBvcGFjaXR5IGRpcmVjdGx5IHRvIHRoZSByaXBwbGUgZWxlbWVudC5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1yaXBwbGUtYmFja2dyb3VuZCgkcGFsZXR0ZSwgJGh1ZSwgJG9wYWNpdHkpIHtcbiAgJGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgJGh1ZSwgJG9wYWNpdHkpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgQGlmICh0eXBlLW9mKCRiYWNrZ3JvdW5kLWNvbG9yKSAhPSBjb2xvcikge1xuICAgIG9wYWNpdHk6ICRvcGFjaXR5O1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1yaXBwbGUtY29sb3IoJHRoZW1lLCAkaHVlLCAkb3BhY2l0eTogJF9tYXQtYnV0dG9uLXJpcHBsZS1vcGFjaXR5KSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gICYubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tcmlwcGxlLWJhY2tncm91bmQoJHByaW1hcnksICRodWUsICRvcGFjaXR5KTtcbiAgfVxuXG4gICYubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi1yaXBwbGUtYmFja2dyb3VuZCgkYWNjZW50LCAkaHVlLCAkb3BhY2l0eSk7XG4gIH1cblxuICAmLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXJpcHBsZS1iYWNrZ3JvdW5kKCR3YXJuLCAkaHVlLCAkb3BhY2l0eSk7XG4gIH1cbn1cblxuLy8gQXBwbGllcyBhIHByb3BlcnR5IHRvIGFuIG1hdC1idXR0b24gZWxlbWVudCBmb3IgZWFjaCBvZiB0aGUgc3VwcG9ydGVkIHBhbGV0dGVzLlxuQG1peGluIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCR0aGVtZSwgJHByb3BlcnR5LCAkaHVlKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICYubWF0LXByaW1hcnkge1xuICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRwcmltYXJ5LCAkaHVlKTtcbiAgfVxuICAmLm1hdC1hY2NlbnQge1xuICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRhY2NlbnQsICRodWUpO1xuICB9XG4gICYubWF0LXdhcm4ge1xuICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCR3YXJuLCAkaHVlKTtcbiAgfVxuXG4gICYubWF0LXByaW1hcnksICYubWF0LWFjY2VudCwgJi5tYXQtd2FybiwgJltkaXNhYmxlZF0ge1xuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICRwYWxldHRlOiBpZigkcHJvcGVydHkgPT0gJ2NvbG9yJywgJGZvcmVncm91bmQsICRiYWNrZ3JvdW5kKTtcbiAgICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRwYWxldHRlLCBkaXNhYmxlZC1idXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJ1dHRvbi10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1idXR0b24sIC5tYXQtaWNvbi1idXR0b24sIC5tYXQtc3Ryb2tlZC1idXR0b24ge1xuICAgIC8vIEJ1dHRvbnMgd2l0aG91dCBhIGJhY2tncm91bmQgY29sb3Igc2hvdWxkIGluaGVyaXQgdGhlIGZvbnQgY29sb3IuIFRoaXMgaXMgbmVjZXNzYXJ5IHRvXG4gICAgLy8gZW5zdXJlIHRoYXQgdGhlIGJ1dHRvbiBpcyByZWFkYWJsZSBvbiBjdXN0b20gYmFja2dyb3VuZCBjb2xvcnMuIEl0J3Mgd3JvbmcgdG8gYWx3YXlzIGFzc3VtZVxuICAgIC8vIHRoYXQgdGhvc2UgYnV0dG9ucyBhcmUgYWx3YXlzIHBsYWNlZCBpbnNpZGUgb2YgY29udGFpbmVycyB3aXRoIHRoZSBkZWZhdWx0IGJhY2tncm91bmRcbiAgICAvLyBjb2xvciBvZiB0aGUgdGhlbWUgKGUuZy4gdGhlbWVkIHRvb2xiYXJzKS5cbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCR0aGVtZSwgJ2NvbG9yJywgdGV4dCk7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tZm9jdXMtb3ZlcmxheS1jb2xvcigkdGhlbWUpO1xuXG4gICAgLy8gU2V0dXAgdGhlIHJpcHBsZSBjb2xvciB0byBiZSBiYXNlZCBvbiB0aGUgdGV4dCBjb2xvci4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHJpcHBsZXNcbiAgICAvLyBhcmUgbWF0Y2hpbmcgd2l0aCB0aGUgY3VycmVudCB0aGVtZSBwYWxldHRlIGFuZCBhcmUgaW4gY29udHJhc3QgdG8gdGhlIGJhY2tncm91bmQgY29sb3JcbiAgICAvLyAoZS5nIGluIHRoZW1lZCB0b29sYmFycykuXG4gICAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBvcGFjaXR5OiAkX21hdC1idXR0b24tcmlwcGxlLW9wYWNpdHk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZDogbWFwX2dldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG4gIH1cblxuICAvLyBOb3RlOiB0aGlzIG5lZWRzIGEgYml0IGV4dHJhIHNwZWNpZmljaXR5LCBiZWNhdXNlIHdlJ3JlIG5vdCBndWFyYW50ZWVkIHRoZSBpbmNsdXNpb25cbiAgLy8gb3JkZXIgb2YgdGhlIHRoZW1lIHN0eWxlcyBhbmQgdGhlIGJ1dHRvbiByZXNldCBtYXkgZW5kIHVwIHJlc2V0dGluZyB0aGlzIGFzIHdlbGwuXG4gIC5tYXQtc3Ryb2tlZC1idXR0b246bm90KFtkaXNhYmxlZF0pIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWZsYXQtYnV0dG9uLCAubWF0LXJhaXNlZC1idXR0b24sIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgICAvLyBEZWZhdWx0IGZvbnQgYW5kIGJhY2tncm91bmQgY29sb3Igd2hlbiBub3QgdXNpbmcgYW55IGNvbG9yIHBhbGV0dGUuXG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCByYWlzZWQtYnV0dG9uKTtcblxuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCR0aGVtZSwgJ2NvbG9yJywgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tdGhlbWUtcHJvcGVydHkoJHRoZW1lLCAnYmFja2dyb3VuZC1jb2xvcicsIGRlZmF1bHQpO1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXJpcHBsZS1jb2xvcigkdGhlbWUsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgLm1hdC1zdHJva2VkLWJ1dHRvbiwgLm1hdC1mbGF0LWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMCwgJHRoZW1lKTtcbiAgfVxuXG4gIC5tYXQtcmFpc2VkLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMiwgJHRoZW1lKTtcblxuICAgICY6bm90KFtkaXNhYmxlZF0pOmFjdGl2ZSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbig4LCAkdGhlbWUpO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mYWIsIC5tYXQtbWluaS1mYWIge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDYsICR0aGVtZSk7XG5cbiAgICAmOm5vdChbZGlzYWJsZWRdKTphY3RpdmUge1xuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMTIsICR0aGVtZSk7XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMCwgJHRoZW1lKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1idXR0b24tdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtYnV0dG9uLCAubWF0LXJhaXNlZC1idXR0b24sIC5tYXQtaWNvbi1idXR0b24sIC5tYXQtc3Ryb2tlZC1idXR0b24sXG4gIC5tYXQtZmxhdC1idXR0b24sIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYnV0dG9uKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRvZ2dsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGRpdmlkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUsXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMiwgJHRoZW1lKTtcbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuXG4gICAgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBmb2N1c2VkLWJ1dHRvbik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG5cbiAgICAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGZvY3VzZWQtYnV0dG9uLCAxKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggJGRpdmlkZXItY29sb3I7XG4gIH1cblxuICBbZGlyPSdydGwnXSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIGJvcmRlci1yaWdodDogc29saWQgMXB4ICRkaXZpZGVyLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwge1xuICAgIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgIGJvcmRlci10b3A6IHNvbGlkIDFweCAkZGl2aWRlci1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBzZWxlY3RlZC1idXR0b24pO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLWJ1dHRvbik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaXNhYmxlZC1idXR0b24tdG9nZ2xlKTtcblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIH1cblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIHNlbGVjdGVkLWRpc2FibGVkLWJ1dHRvbik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIGJvcmRlcjogc29saWQgMXB4ICRkaXZpZGVyLWNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRvZ2dsZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtY2FyZC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWNhcmQge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDEsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgIC8vIE5lZWRzIGV4dHJhIHNwZWNpZmljaXR5IHRvIGJlIGFibGUgdG8gb3ZlcnJpZGUgdGhlIGVsZXZhdGlvbiBzZWxlY3RvcnMuXG4gICAgJi5tYXQtY2FyZC1mbGF0IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYXJkLXN1YnRpdGxlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1jYXJkLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWNhcmQge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWNhcmQtdGl0bGUge1xuICAgIGZvbnQ6IHtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgaGVhZGxpbmUpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgdGl0bGUpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FyZC1oZWFkZXIgLm1hdC1jYXJkLXRpdGxlIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgdGl0bGUpO1xuICB9XG5cbiAgLm1hdC1jYXJkLXN1YnRpdGxlLFxuICAubWF0LWNhcmQtY29udGVudCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtY2hlY2tib3gtdGhlbWUoJHRoZW1lKSB7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG5cbiAgLy8gVGhlIGNvbG9yIG9mIHRoZSBjaGVja2JveCdzIGNoZWNrbWFyayAvIG1peGVkbWFyay5cbiAgJGNoZWNrYm94LW1hcmstY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgYmFja2dyb3VuZCk7XG5cbiAgLy8gTk9URSh0cmF2aXNrYXVmbWFuKTogV2hpbGUgdGhlIHNwZWMgY2FsbHMgZm9yIHRyYW5zbHVjZW50IGJsYWNrcy93aGl0ZXMgZm9yIGRpc2FibGVkIGNvbG9ycyxcbiAgLy8gdGhpcyBkb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBlbGVtZW50cyBsYXllcmVkIG9uIHRvcCBvZiBvbmUgYW5vdGhlci4gVG8gZ2V0IGFyb3VuZCB0aGlzIHdlXG4gIC8vIGJsZW5kIHRoZSBjb2xvcnMgdG9nZXRoZXIgYmFzZWQgb24gdGhlIGJhc2UgY29sb3IgYW5kIHRoZSB0aGVtZSBiYWNrZ3JvdW5kLlxuICAkd2hpdGUtMzBwY3Qtb3BhY2l0eS1vbi1kYXJrOiAjNjg2ODY4O1xuICAkYmxhY2stMjZwY3Qtb3BhY2l0eS1vbi1saWdodDogI2IwYjBiMDtcbiAgJGRpc2FibGVkLWNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJHdoaXRlLTMwcGN0LW9wYWNpdHktb24tZGFyaywgJGJsYWNrLTI2cGN0LW9wYWNpdHktb24tbGlnaHQpO1xuXG4gIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gICAgZmlsbDogJGNoZWNrYm94LW1hcmstY29sb3I7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIHtcbiAgICAvLyAhaW1wb3J0YW50IGlzIG5lZWRlZCBoZXJlIGJlY2F1c2UgYSBzdHJva2UgbXVzdCBiZSBzZXQgYXMgYW5cbiAgICAvLyBhdHRyaWJ1dGUgb24gdGhlIFNWRyBpbiBvcmRlciBmb3IgbGluZSBhbmltYXRpb24gdG8gd29yayBwcm9wZXJseS5cbiAgICBzdHJva2U6ICRjaGVja2JveC1tYXJrLWNvbG9yICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBjZGstaGlnaC1jb250cmFzdChibGFjay1vbi13aGl0ZSkge1xuICAgICAgLy8gSGF2aW5nIHRoZSBvbmUgYWJvdmUgYmUgIWltcG9ydGFudCBlbmRzIHVwIG92ZXJyaWRpbmcgdGhlIGJyb3dzZXIncyBhdXRvbWF0aWNcbiAgICAgIC8vIGNvbG9yIGludmVyc2lvbiBzbyB3ZSBuZWVkIHRvIHJlLWludmVydCBpdCBvdXJzZWx2ZXMgZm9yIGJsYWNrLW9uLXdoaXRlLlxuICAgICAgc3Ryb2tlOiAjMDAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjaGVja2JveC1tYXJrLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLCAubWF0LWNoZWNrYm94LWNoZWNrZWQge1xuICAgICYubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICAmLm1hdC1jaGVja2JveC1jaGVja2VkLFxuICAgICYubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICAgICAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5tYXQtY2hlY2tib3gtY2hlY2tlZCkge1xuICAgICAgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGNkay1oaWdoLWNvbnRyYXN0IHtcbiAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG4gIH1cblxuICAvLyBUaGlzIG9uZSBpcyBtb3ZlZCBkb3duIGhlcmUgc28gaXQgY2FuIHRhcmdldCBib3RoXG4gIC8vIHRoZSB0aGVtZSBjb2xvcnMgYW5kIHRoZSBkaXNhYmxlZCBzdGF0ZS5cbiAgQGluY2x1ZGUgY2RrLWhpZ2gtY29udHJhc3Qge1xuICAgIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICAvLyBOZWVkcyB0byBiZSByZW1vdmVkIGJlY2F1c2UgaXQgaGlkZXMgdGhlIGNoZWNrYm94IG91dGxpbmUuXG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN3aXRjaCB0aGlzIHRvIGEgc29saWQgY29sb3Igc2luY2Ugd2UncmUgdXNpbmcgYG9wYWNpdHlgXG4gIC8vIHRvIGNvbnRyb2wgaG93IG9wYXF1ZSB0aGUgcmlwcGxlIHNob3VsZCBiZS5cbiAgLm1hdC1jaGVja2JveCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXBfZ2V0KG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKSwgYmFzZSk7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLFxuICAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkge1xuICAgICYubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1jaGVja2JveC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1jaGVja2JveCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC8vIFRPRE8oa2FyYSk6IFJlbW92ZSB0aGlzIHN0eWxlIHdoZW4gZml4aW5nIHZlcnRpY2FsIGJhc2VsaW5lXG4gIC5tYXQtY2hlY2tib3gtbGF5b3V0IC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICAgIGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxufVxuXG5cblxuXG5cblxuJG1hdC1jaGlwLXJlbW92ZS1mb250LXNpemU6IDE4cHg7XG5cbkBtaXhpbiBtYXQtY2hpcHMtY29sb3IoJGZvcmVncm91bmQsICRiYWNrZ3JvdW5kKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGZvcmVncm91bmQ7XG5cbiAgLm1hdC1jaGlwLXJlbW92ZSB7XG4gICAgY29sb3I6ICRmb3JlZ3JvdW5kO1xuICAgIG9wYWNpdHk6IDAuNDtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWNoaXBzLXRoZW1lLWNvbG9yKCRwYWxldHRlKSB7XG4gIEBpbmNsdWRlIG1hdC1jaGlwcy1jb2xvcihtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QpLCBtYXQtY29sb3IoJHBhbGV0dGUpKTtcblxuICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QsIDAuMSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1jaGlwcy10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgJHVuc2VsZWN0ZWQtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCB1bnNlbGVjdGVkLWNoaXApO1xuICAkdW5zZWxlY3RlZC1mb3JlZ3JvdW5kOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcCB7XG4gICAgQGluY2x1ZGUgbWF0LWNoaXBzLWNvbG9yKCR1bnNlbGVjdGVkLWZvcmVncm91bmQsICR1bnNlbGVjdGVkLWJhY2tncm91bmQpO1xuXG4gICAgJjpub3QoLm1hdC1jaGlwLWRpc2FibGVkKSB7XG4gICAgICAmOmFjdGl2ZSB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDMsICR0aGVtZSk7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtY2hpcC1yZW1vdmU6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAwLjU0O1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWNoaXAtZGlzYWJsZWQge1xuICAgICAgb3BhY2l0eTogMC40O1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hcF9nZXQoJGZvcmVncm91bmQsIGJhc2UpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZCB7XG4gICAgJi5tYXQtcHJpbWFyeSB7XG4gICAgICBAaW5jbHVkZSBtYXQtY2hpcHMtdGhlbWUtY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgbWF0LWNoaXBzLXRoZW1lLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgbWF0LWNoaXBzLXRoZW1lLWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWNoaXBzLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWNoaXAge1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTIpO1xuICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcblxuICAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uLFxuICAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkbWF0LWNoaXAtcmVtb3ZlLWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LXRhYmxlLXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtdGFibGUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgfVxuXG4gIC5tYXQtdGFibGUgdGhlYWQsIC5tYXQtdGFibGUgdGJvZHksIC5tYXQtdGFibGUgdGZvb3QsXG4gIG1hdC1oZWFkZXItcm93LCBtYXQtcm93LCBtYXQtZm9vdGVyLXJvdyxcbiAgW21hdC1oZWFkZXItcm93XSwgW21hdC1yb3ddLCBbbWF0LWZvb3Rlci1yb3ddLFxuICAubWF0LXRhYmxlLXN0aWNreSB7XG4gICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgfVxuXG4gIG1hdC1yb3csIG1hdC1oZWFkZXItcm93LCBtYXQtZm9vdGVyLXJvdyxcbiAgdGgubWF0LWhlYWRlci1jZWxsLCB0ZC5tYXQtY2VsbCwgdGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jZWxsLCAubWF0LWZvb3Rlci1jZWxsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRhYmxlLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXRhYmxlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxuXG4gIC5tYXQtY2VsbCwgLm1hdC1mb290ZXItY2VsbCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuXG5cblxuJG1hdC1kYXRlcGlja2VyLXNlbGVjdGVkLXRvZGF5LWJveC1zaGFkb3ctd2lkdGg6IDFweDtcbiRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC1mYWRlLWFtb3VudDogMC42O1xuJG1hdC1kYXRlcGlja2VyLXRvZGF5LWZhZGUtYW1vdW50OiAwLjI7XG4kbWF0LWNhbGVuZGFyLWJvZHktZm9udC1zaXplOiAxM3B4ICFkZWZhdWx0O1xuJG1hdC1jYWxlbmRhci13ZWVrZGF5LXRhYmxlLWZvbnQtc2l6ZTogMTFweCAhZGVmYXVsdDtcblxuQG1peGluIF9tYXQtZGF0ZXBpY2tlci1jb2xvcigkcGFsZXR0ZSkge1xuICAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgICRiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRiYWNrZ3JvdW5kKSA9PSBjb2xvcikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZmFkZS1vdXQoJGJhY2tncm91bmQsICRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC1mYWRlLWFtb3VudCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIElmIHdlIGNvdWxkbid0IHJlc29sdmUgdG8gYmFja2dyb3VuZCB0byBhIGNvbG9yIChlLmcuIGl0J3MgYSBDU1MgdmFyaWFibGUpLFxuICAgICAgLy8gZmFsbCBiYWNrIHRvIGZhZGluZyB0aGUgY29udGVudCBvdXQgdmlhIGBvcGFjaXR5YC5cbiAgICAgIG9wYWNpdHk6ICRtYXQtZGF0ZXBpY2tlci10b2RheS1mYWRlLWFtb3VudDtcbiAgICB9XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwICRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC10b2RheS1ib3gtc2hhZG93LXdpZHRoXG4gICAgICAgICAgICAgICAgbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWRhdGVwaWNrZXItdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG5cbiAgLm1hdC1jYWxlbmRhci1hcnJvdyB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBpY29uKTtcbiAgfVxuXG4gIC8vIFRoZSBwcmV2L25leHQgYnV0dG9ucyBuZWVkIGEgYml0IG1vcmUgc3BlY2lmaWNpdHkgdG9cbiAgLy8gYXZvaWQgYmVpbmcgb3ZlcndyaXR0ZW4gYnkgdGhlIC5tYXQtaWNvbi1idXR0b24uXG4gIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUsXG4gIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItbmV4dC1idXR0b24sXG4gIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItcHJldmlvdXMtYnV0dG9uIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBpY29uKTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXItZGl2aWRlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQpOmhvdmVyLFxuICAuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZSxcbiAgLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZSB7XG4gICAgJiA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgICAvLyBOb3RlOiB0aG91Z2ggaXQncyBub3QgdGV4dCwgdGhlIGJvcmRlciBpcyBhIGhpbnQgYWJvdXQgdGhlIGZhY3QgdGhhdCB0aGlzIGlzIHRvZGF5J3MgZGF0ZSxcbiAgICAvLyBzbyB3ZSB1c2UgdGhlIGhpbnQgY29sb3IuXG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICAgICRjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IpIHtcbiAgICAgIGJvcmRlci1jb2xvcjogZmFkZS1vdXQoJGNvbG9yLCAkbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBJZiB0aGUgY29sb3IgZGlkbid0IHJlc29sdmUgdG8gYSBjb2xvciB2YWx1ZSwgYnV0IHNvbWV0aGluZyBsaWtlIGEgQ1NTIHZhcmlhYmxlLCB3ZSBjYW4ndFxuICAgICAgLy8gZmFkZSBpdCBvdXQgc28gd2UgZmFsbCBiYWNrIHRvIHJlZHVjaW5nIHRoZSBlbGVtZW50IG9wYWNpdHkuIE5vdGUgdGhhdCB3ZSBkb24ndCB1c2UgdGhlXG4gICAgICAvLyAkbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQsIGJlY2F1c2UgaGludCB0ZXh0IHVzdWFsbHkgaGFzIHNvbWUgb3BhY2l0eSBhcHBsaWVkXG4gICAgICAvLyB0byBpdCBhbHJlYWR5IGFuZCB3ZSBkb24ndCB3YW50IHRoZW0gdG8gc3RhY2sgb24gdG9wIG9mIGVhY2ggb3RoZXIuXG4gICAgICBvcGFjaXR5OiAwLjU7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLWNvbG9yKG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KSk7XG5cbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDQsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWRhdGVwaWNrZXItY29sb3IobWFwLWdldCgkdGhlbWUsIGFjY2VudCkpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLWNvbG9yKG1hcC1nZXQoJHRoZW1lLCB3YXJuKSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQtdG91Y2gge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gIH1cblxuICAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSksIHRleHQpO1xuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IobWFwLWdldCgkdGhlbWUsIGFjY2VudCksIHRleHQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgd2FybiksIHRleHQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWRhdGVwaWNrZXItdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtY2FsZW5kYXIge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHkge1xuICAgIGZvbnQtc2l6ZTogJG1hdC1jYWxlbmRhci1ib2R5LWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCxcbiAgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJ1dHRvbik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHRoIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiAkbWF0LWNhbGVuZGFyLXdlZWtkYXktdGFibGUtZm9udC1zaXplO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1kaWFsb2ctdGhlbWUoJHRoZW1lKSB7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1kaWFsb2ctY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigyNCwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGRpYWxvZyk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1kaWFsb2ctdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtZGlhbG9nLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgdGl0bGUpO1xuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LWV4cGFuc2lvbi1wYW5lbC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWV4cGFuc2lvbi1wYW5lbCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMiwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1hY3Rpb24tcm93IHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwge1xuICAgICYgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkLFxuICAgICYgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gICAgJjpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyIHtcbiAgICAgICY6bm90KFthcmlhLWRpc2FibGVkPSd0cnVlJ10pIHtcbiAgICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gRGlzYWJsZSB0aGUgaG92ZXIgb24gdG91Y2ggZGV2aWNlcyBzaW5jZSBpdCBjYW4gYXBwZWFyIGxpa2UgaXQgaXMgc3R1Y2suIFdlIGNhbid0IHVzZVxuICAvLyBgQG1lZGlhIChob3ZlcilgIGFib3ZlLCBiZWNhdXNlIHRoZSBkZXNrdG9wIHN1cHBvcnQgYnJvd3NlciBzdXBwb3J0IGlzbid0IGdyZWF0LlxuICBAbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gICAgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpOm5vdChbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddKVxuICAgICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbixcbiAgLm1hdC1leHBhbnNpb24taW5kaWNhdG9yOjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtYnV0dG9uKTtcblxuICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSxcbiAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtZXhwYW5zaW9uLXBhbmVsLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBzdWJoZWFkaW5nLTEpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG5cbi8vIFRoaXMgbWl4aW4gd2lsbCBlbnN1cmUgdGhhdCBsaW5lcyB0aGF0IG92ZXJmbG93IHRoZSBjb250YWluZXIgd2lsbCBoaWRlIHRoZSBvdmVyZmxvdyBhbmRcbi8vIHRydW5jYXRlIG5lYXRseSB3aXRoIGFuIGVsbGlwc2lzLlxuQG1peGluIG1hdC10cnVuY2F0ZS1saW5lKCkge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLy8gTWl4aW4gdG8gcHJvdmlkZSBhbGwgbWF0LWxpbmUgc3R5bGVzLCBjaGFuZ2luZyBzZWNvbmRhcnkgZm9udCBzaXplIGJhc2VkIG9uIHdoZXRoZXIgdGhlIGxpc3Rcbi8vIGlzIGluIGRlbnNlIG1vZGUuXG5AbWl4aW4gbWF0LWxpbmUtYmFzZSgkc2Vjb25kYXJ5LWZvbnQtc2l6ZSkge1xuICAubWF0LWxpbmUge1xuICAgIEBpbmNsdWRlIG1hdC10cnVuY2F0ZS1saW5lKCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIC8vIGFsbCBsaW5lcyBidXQgdGhlIHRvcCBsaW5lIHNob3VsZCBoYXZlIHNtYWxsZXIgdGV4dFxuICAgICY6bnRoLWNoaWxkKG4rMikge1xuICAgICAgZm9udC1zaXplOiAkc2Vjb25kYXJ5LWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gVGhpcyBtaXhpbiBub3JtYWxpemVzIGRlZmF1bHQgZWxlbWVudCBzdHlsZXMsIGUuZy4gZm9udCB3ZWlnaHQgZm9yIGhlYWRpbmcgdGV4dC5cbkBtaXhpbiBtYXQtbm9ybWFsaXplLXRleHQoKSB7XG4gICYgPiAqIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgfVxufVxuXG4vLyBUaGlzIG1peGluIHByb3ZpZGVzIGJhc2Ugc3R5bGVzIGZvciB0aGUgd3JhcHBlciBhcm91bmQgbWF0LWxpbmUgZWxlbWVudHMgaW4gYSBsaXN0LlxuQG1peGluIG1hdC1saW5lLXdyYXBwZXItYmFzZSgpIHtcbiAgQGluY2x1ZGUgbWF0LW5vcm1hbGl6ZS10ZXh0KCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgLy8gTXVzdCByZW1vdmUgd3JhcHBlciB3aGVuIGxpbmVzIGFyZSBlbXB0eSBvciBpdCB0YWtlcyB1cCBob3Jpem9udGFsXG4gIC8vIHNwYWNlIGFuZCBwdXNoZXMgb3RoZXIgZWxlbWVudHMgdG8gdGhlIHJpZ2h0LlxuICAmOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cblxuXG4vLyBJbmNsdWRlIHRoaXMgZW1wdHkgbWl4aW4gZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIG90aGVyIGNvbXBvbmVudHMuXG5AbWl4aW4gbWF0LWdyaWQtbGlzdC10aGVtZSgkdGhlbWUpIHsgfVxuXG5AbWl4aW4gbWF0LWdyaWQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1ncmlkLXRpbGUtaGVhZGVyLFxuICAubWF0LWdyaWQtdGlsZS1mb290ZXIge1xuICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKSk7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuLy8gSW5jbHVkZSB0aGlzIGVtcHR5IG1peGluIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBvdGhlciBjb21wb25lbnRzLlxuQG1peGluIG1hdC1pY29uLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWljb24ge1xuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1pY29uLXR5cG9ncmFwaHkoJGNvbmZpZykgeyB9XG5cblxuXG5cblxuLy8gUmVuZGVycyBhIGdyYWRpZW50IGZvciBzaG93aW5nIHRoZSBkYXNoZWQgbGluZSB3aGVuIHRoZSBpbnB1dCBpcyBkaXNhYmxlZC5cbi8vIFVubGlrZSB1c2luZyBhIGJvcmRlciwgYSBncmFkaWVudCBhbGxvd3MgdXMgdG8gYWRqdXN0IHRoZSBzcGFjaW5nIG9mIHRoZSBkb3R0ZWQgbGluZVxuLy8gdG8gbWF0Y2ggdGhlIE1hdGVyaWFsIERlc2lnbiBzcGVjLlxuQG1peGluIG1hdC1jb250cm9sLWRpc2FibGVkLXVuZGVybGluZSgkY29sb3IpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkY29sb3IgMCUsICRjb2xvciAzMyUsIHRyYW5zcGFyZW50IDAlKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0cHggMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuXG4vLyBGaWd1cmVzIG91dCB0aGUgY29sb3Igb2YgdGhlIHBsYWNlaG9sZGVyIGZvciBhIGZvcm0gY29udHJvbC5cbi8vIFVzZWQgcHJpbWFyaWx5IHRvIHByZXZlbnQgdGhlIHZhcmlvdXMgZm9ybSBjb250cm9scyBmcm9tXG4vLyBiZWNvbWluZyBvdXQgb2Ygc3luYyBzaW5jZSB0aGVzZSBjb2xvcnMgYXJlbid0IGluIGEgcGFsZXR0ZS5cbkBmdW5jdGlvbiBfbWF0LWNvbnRyb2wtcGxhY2Vob2xkZXItY29sb3IoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG4gIEByZXR1cm4gbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCwgaWYoJGlzLWRhcmstdGhlbWUsIDAuNSwgMC40MikpO1xufVxuXG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIG1hdGVyaWFsL25vLXByZWZpeGVzICovXG5AbWl4aW4gdXNlci1zZWxlY3QoJHZhbHVlKSB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgLW1vei11c2VyLXNlbGVjdDogJHZhbHVlO1xuICAtbXMtdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbn1cblxuQG1peGluIGlucHV0LXBsYWNlaG9sZGVyIHtcbiAgJjo6cGxhY2Vob2xkZXIge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgJjo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gY3Vyc29yLWdyYWIge1xuICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcbiAgY3Vyc29yOiBncmFiO1xufVxuXG5AbWl4aW4gY3Vyc29yLWdyYWJiaW5nIHtcbiAgY3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nO1xuICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuXG5AbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmFsdWUpIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiAkdmFsdWU7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6ICR2YWx1ZTtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cblxuXG5cbkBtaXhpbiBtYXQtaW5wdXQtdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtaW5wdXQtZWxlbWVudDpkaXNhYmxlZCxcbiAgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gIH1cblxuICAubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIGNhcmV0LWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuXG4gICAgQGluY2x1ZGUgaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IF9tYXQtY29udHJvbC1wbGFjZWhvbGRlci1jb2xvcigkdGhlbWUpO1xuICAgIH1cblxuICAgIC8vIE9uIGRhcmsgdGhlbWVzIHdlIHNldCB0aGUgbmF0aXZlIGBzZWxlY3RgIGNvbG9yIHRvIHNvbWUgc2hhZGUgb2Ygd2hpdGUsXG4gICAgLy8gaG93ZXZlciB0aGUgY29sb3IgcHJvcGFnYXRlcyB0byBhbGwgb2YgdGhlIGBvcHRpb25gIGVsZW1lbnRzLCB3aGljaCBhcmVcbiAgICAvLyBhbHdheXMgb24gYSB3aGl0ZSBiYWNrZ3JvdW5kIGluc2lkZSB0aGUgZHJvcGRvd24sIGNhdXNpbmcgdGhlbSB0byBibGVuZCBpbi5cbiAgICAvLyBTaW5jZSB3ZSBjYW4ndCBjaGFuZ2UgYmFja2dyb3VuZCBvZiB0aGUgZHJvcGRvd24sIHdlIG5lZWQgdG8gZXhwbGljaXRseVxuICAgIC8vIHJlc2V0IHRoZSBjb2xvciBvZiB0aGUgb3B0aW9ucyB0byBzb21ldGhpbmcgZGFyay5cbiAgICBAaWYgKG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKSkge1xuICAgICAgb3B0aW9uIHtcbiAgICAgICAgY29sb3I6ICRkYXJrLXByaW1hcnktdGV4dDtcbiAgICAgIH1cblxuICAgICAgb3B0aW9uOmRpc2FibGVkIHtcbiAgICAgICAgY29sb3I6ICRkYXJrLWRpc2FibGVkLXRleHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1hY2NlbnQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC13YXJuIC5tYXQtaW5wdXQtZWxlbWVudCxcbiAgLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1pbnB1dC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuXG4gIC8vIFRoZSBhbW91bnQgb2Ygc3BhY2UgYmV0d2VlbiB0aGUgdG9wIG9mIHRoZSBsaW5lIGFuZCB0aGUgdG9wIG9mIHRoZSBhY3R1YWwgdGV4dFxuICAvLyAoYXMgYSBmcmFjdGlvbiBvZiB0aGUgZm9udC1zaXplKS5cbiAgJGxpbmUtc3BhY2luZzogKCRsaW5lLWhlaWdodCAtIDEpIC8gMjtcblxuICAvLyA8aW5wdXQ+IGVsZW1lbnRzIHNlZW0gdG8gaGF2ZSB0aGVpciBoZWlnaHQgc2V0IHNsaWdodGx5IHRvbyBsYXJnZSBvbiBTYWZhcmkgY2F1c2luZyB0aGUgdGV4dCB0b1xuICAvLyBiZSBtaXNhbGlnbmVkIHcuci50LiB0aGUgcGxhY2Vob2xkZXIuIEFkZGluZyB0aGlzIG1hcmdpbiBjb3JyZWN0cyBpdC5cbiAgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIG1hcmdpbi10b3A6IC0kbGluZS1zcGFjaW5nICogMWVtO1xuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtbGlzdC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWxpc3QtYmFzZSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXN1YmhlYWRlciB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1saXN0LWl0ZW0tZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlzYWJsZWQtbGlzdC1vcHRpb24pO1xuICB9XG5cbiAgLm1hdC1saXN0LW9wdGlvbixcbiAgLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbSxcbiAgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbSB7XG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdob3ZlcicpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWxpc3QtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gICRmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuXG4gIC5tYXQtbGlzdC1pdGVtIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICB9XG5cbiAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgfVxuXG4gIC8vIERlZmF1bHQgbGlzdFxuICAubWF0LWxpc3QtYmFzZSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHN1YmhlYWRpbmctMik7XG4gICAgICBAaW5jbHVkZSBtYXQtbGluZS1iYXNlKG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKSk7XG4gICAgfVxuXG4gICAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgc3ViaGVhZGluZy0yKTtcbiAgICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpKTtcbiAgICB9XG5cbiAgICAubWF0LXN1YmhlYWRlciB7XG4gICAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMik7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0yKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cblxuICAvLyBEZW5zZSBsaXN0XG4gIC5tYXQtbGlzdC1iYXNlW2RlbnNlXSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgQGluY2x1ZGUgbWF0LWxpbmUtYmFzZShtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pKTtcbiAgICB9XG5cbiAgICAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKSk7XG4gICAgfVxuXG4gICAgLm1hdC1zdWJoZWFkZXIge1xuICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1tZW51LXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtbWVudS1wYW5lbCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdjYXJkJyk7XG4gIH1cblxuICAubWF0LW1lbnUtaXRlbSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ3RleHQnKTtcblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICYsICY6OmFmdGVyIHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2Rpc2FibGVkJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1tZW51LWl0ZW0gLm1hdC1pY29uLW5vLWNvbG9yLFxuICAubWF0LW1lbnUtaXRlbS1zdWJtZW51LXRyaWdnZXI6OmFmdGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAnaWNvbicpO1xuICB9XG5cbiAgLm1hdC1tZW51LWl0ZW06aG92ZXIsXG4gIC5tYXQtbWVudS1pdGVtLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gIC5tYXQtbWVudS1pdGVtLmNkay1rZXlib2FyZC1mb2N1c2VkLFxuICAubWF0LW1lbnUtaXRlbS1oaWdobGlnaHRlZCB7XG4gICAgJjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnaG92ZXInKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1tZW51LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LW1lbnUtaXRlbSB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LXBhZ2luYXRvci10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcblxuICAubWF0LXBhZ2luYXRvciB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICB9XG5cbiAgLm1hdC1wYWdpbmF0b3IsXG4gIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4gIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCB7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2ljb24nKTtcbiAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCBtYXQtY29sb3IoJGZvcmVncm91bmQsICdpY29uJyk7XG4gIH1cblxuICAubWF0LXBhZ2luYXRvci1maXJzdCxcbiAgLm1hdC1wYWdpbmF0b3ItbGFzdCB7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2ljb24nKTtcbiAgfVxuXG4gIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIHtcbiAgICAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4gICAgLm1hdC1wYWdpbmF0b3ItaW5jcmVtZW50LFxuICAgIC5tYXQtcGFnaW5hdG9yLWZpcnN0LFxuICAgIC5tYXQtcGFnaW5hdG9yLWxhc3Qge1xuICAgICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsICdkaXNhYmxlZCcpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXBhZ2luYXRvci10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1wYWdpbmF0b3IsXG4gIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbik7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuQG1peGluIG1hdC1wcm9ncmVzcy1iYXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICAgIGZpbGw6IG1hdC1jb2xvcigkcHJpbWFyeSwgbGlnaHRlcik7XG4gIH1cblxuICAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgbGlnaHRlcik7XG4gIH1cblxuICAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQge1xuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICAgICAgZmlsbDogbWF0LWNvbG9yKCRhY2NlbnQsIGxpZ2h0ZXIpO1xuICAgIH1cblxuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIHtcbiAgICAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgICAgIGZpbGw6IG1hdC1jb2xvcigkd2FybiwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkd2FybiwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1wcm9ncmVzcy1iYXItdHlwb2dyYXBoeSgkY29uZmlnKSB7IH1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG5cbiAgLm1hdC1wcm9ncmVzcy1zcGlubmVyLCAubWF0LXNwaW5uZXIge1xuICAgIGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cbkBtaXhpbiBfbWF0LXJhZGlvLWNvbG9yKCRwYWxldHRlKSB7XG4gICYubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlKTtcbiAgfVxuXG4gIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuICAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSxcbiAgJi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLFxuICAmOmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtcmFkaW8tdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1yYWRpby1idXR0b24ge1xuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgX21hdC1yYWRpby1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtcmFkaW8tY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXJhZGlvLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIG5lZWRzIGV4dHJhIHNwZWNpZmljaXR5LCBiZWNhdXNlIHRoZSBjbGFzc2VzIGFib3ZlIGFyZSBjb21iaW5lZFxuICAgIC8vIChlLmcuIGAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50YCkgd2hpY2ggaW5jcmVhc2VzIHRoZWlyIHNwZWNpZmljaXR5IGEgbG90LlxuICAgIC8vIFRPRE86IGNvbnNpZGVyIG1ha2luZyB0aGUgc2VsZWN0b3JzIGludG8gZGVzY2VuZGFudHMgKGAubWF0LXByaW1hcnkgLm1hdC1yYWRpby1idXR0b25gKS5cbiAgICAmLm1hdC1yYWRpby1kaXNhYmxlZCB7XG4gICAgICAmLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlLFxuICAgICAgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgICAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQpO1xuICAgICAgfVxuXG4gICAgICAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50LFxuICAgICAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkKTtcbiAgICAgIH1cblxuICAgICAgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFN3aXRjaCB0aGlzIHRvIGEgc29saWQgY29sb3Igc2luY2Ugd2UncmUgdXNpbmcgYG9wYWNpdHlgXG4gICAgLy8gdG8gY29udHJvbCBob3cgb3BhcXVlIHRoZSByaXBwbGUgc2hvdWxkIGJlLlxuICAgIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwX2dldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcmFkaW8tdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1zZWxlY3QtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogX21hdC1jb250cm9sLXBsYWNlaG9sZGVyLWNvbG9yKCR0aGVtZSk7XG4gIH1cblxuICAubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gIH1cblxuICAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1zZWxlY3QtcGFuZWwge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJHRoZW1lKTtcblxuICAgIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIsIDAuMTIpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZCB7XG4gICAgJi5tYXQtZm9jdXNlZCB7XG4gICAgICAmLm1hdC1wcmltYXJ5IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWFjY2VudCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LXdhcm4gLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWludmFsaWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1zZWxlY3QtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcblxuICAubWF0LXNlbGVjdCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIGhlaWdodDogJGxpbmUtaGVpZ2h0ICogMWVtO1xuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LXNpZGVuYXYtdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICRkcmF3ZXItYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAkZHJhd2VyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yOiAgbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBiYWNrZ3JvdW5kKTtcbiAgJGRyYXdlci1wdXNoLWJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlhbG9nKTtcbiAgJGRyYXdlci1zaWRlLWJvcmRlcjogc29saWQgMXB4IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG5cbiAgLm1hdC1kcmF3ZXItY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJhd2VyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1kcmF3ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkcmF3ZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LWRyYXdlci1wdXNoIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkcmF3ZXItcHVzaC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cblxuICAgICY6bm90KC5tYXQtZHJhd2VyLXNpZGUpIHtcbiAgICAgIC8vIFRoZSBlbGV2YXRpb24gb2Ygei0xNiBpcyBub3RlZCBpbiB0aGUgZGVzaWduIHNwZWNpZmljYXRpb25zLlxuICAgICAgLy8gU2VlIGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1kcmF3ZXIuaHRtbFxuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMTYsICR0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kcmF3ZXItc2lkZSB7XG4gICAgYm9yZGVyLXJpZ2h0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuXG4gICAgJi5tYXQtZHJhd2VyLWVuZCB7XG4gICAgICBib3JkZXItbGVmdDogJGRyYXdlci1zaWRlLWJvcmRlcjtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICB9XG4gIH1cblxuICBbZGlyPSdydGwnXSAubWF0LWRyYXdlci1zaWRlIHtcbiAgICBib3JkZXItbGVmdDogJGRyYXdlci1zaWRlLWJvcmRlcjtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG5cbiAgICAmLm1hdC1kcmF3ZXItZW5kIHtcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZHJhd2VyLWJhY2tkcm9wLm1hdC1kcmF3ZXItc2hvd24ge1xuICAgICRvcGFjaXR5OiAwLjY7XG4gICAgJGJhY2tkcm9wLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQsICRvcGFjaXR5KTtcblxuICAgIEBpZiAodHlwZS1vZigkYmFja2Ryb3AtY29sb3IpID09IGNvbG9yKSB7XG4gICAgICAvLyBXZSB1c2UgaW52ZXJ0KCkgaGVyZSB0byBoYXZlIHRoZSBkYXJrZW4gdGhlIGJhY2tncm91bmQgY29sb3IgZXhwZWN0ZWQgdG8gYmUgdXNlZC4gSWYgdGhlXG4gICAgICAvLyBiYWNrZ3JvdW5kIGlzIGxpZ2h0LCB3ZSB1c2UgYSBkYXJrIGJhY2tkcm9wLiBJZiB0aGUgYmFja2dyb3VuZCBpcyBkYXJrLFxuICAgICAgLy8gd2UgdXNlIGEgbGlnaHQgYmFja2Ryb3AuXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbnZlcnQoJGJhY2tkcm9wLWNvbG9yKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gSWYgd2UgY291bGRuJ3QgcmVzb2x2ZSB0aGUgYmFja2Ryb3AgY29sb3IgdG8gYSBjb2xvciB2YWx1ZSwgZmFsbCBiYWNrIHRvIHVzaW5nXG4gICAgICAvLyBgb3BhY2l0eWAgdG8gbWFrZSBpdCBvcGFxdWUgc2luY2UgaXRzIGVuZCB2YWx1ZSBjb3VsZCBiZSBhIHNvbGlkIGNvbG9yLlxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tkcm9wLWNvbG9yO1xuICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc2lkZW5hdi10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cblxuQG1peGluIF9tYXQtc2xpZGUtdG9nZ2xlLWNoZWNrZWQoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSkge1xuICAmLm1hdC1jaGVja2VkIHtcbiAgICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSk7XG4gICAgfVxuXG4gICAgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgICAgIC8vIE9wYWNpdHkgaXMgZGV0ZXJtaW5lZCBmcm9tIHRoZSBzcGVjcyBmb3IgdGhlIHNlbGVjdGlvbiBjb250cm9scy5cbiAgICAgIC8vIFNlZTogaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vY29tcG9uZW50cy9zZWxlY3Rpb24tY29udHJvbHMuaHRtbCNzcGVjc1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAkdGh1bWItY2hlY2tlZC1odWUsIDAuNTQpO1xuICAgIH1cblxuICAgIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgLy8gU2V0IG5vIG9wYWNpdHkgZm9yIHRoZSByaXBwbGVzIGJlY2F1c2UgdGhlIHJpcHBsZSBvcGFjaXR5IHdpbGwgYmUgYWRqdXN0ZWQgZHluYW1pY2FsbHlcbiAgICAgIC8vIGJhc2VkIG9uIHRoZSB0eXBlIG9mIGludGVyYWN0aW9uIHdpdGggdGhlIHNsaWRlLXRvZ2dsZSAoZS5nLiBmb3IgaG92ZXIsIGZvY3VzKVxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAkdGh1bWItY2hlY2tlZC1odWUpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNsaWRlLXRvZ2dsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcms6IG1hcF9nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLy8gQ29sb3IgaHVlcyBhcmUgYmFzZWQgb24gdGhlIHNwZWNzIHdoaWNoIGJyaWVmbHkgc2hvdyB0aGUgaHVlcyB0aGF0IGFyZSBhcHBsaWVkIHRvIGEgc3dpdGNoLlxuICAvLyBUaGUgMjAxOCBzcGVjcyBubyBsb25nZXIgZGVzY3JpYmUgaG93IGRhcmsgc3dpdGNoZXMgc2hvdWxkIGxvb2sgbGlrZS4gRHVlIHRvIHRoZSBsYWNrIG9mXG4gIC8vIGluZm9ybWF0aW9uIGZvciBkYXJrIHRoZW1lZCBzd2l0Y2hlcywgd2UgcGFydGlhbGx5IGtlZXAgdGhlIG9sZCBiZWhhdmlvciB0aGF0IGlzIGJhc2VkIG9uXG4gIC8vIHRoZSBwcmV2aW91cyBzcGVjaWZpY2F0aW9ucy4gRm9yIHRoZSBjaGVja2VkIGNvbG9yIHdlIGFsd2F5cyB1c2UgdGhlIGBkZWZhdWx0YCBodWUgYmVjYXVzZVxuICAvLyB0aGF0IGZvbGxvd3MgTURDIGFuZCBhbHNvIG1ha2VzIGl0IGVhc2llciBmb3IgcGVvcGxlIHRvIGNyZWF0ZSBhIGN1c3RvbSB0aGVtZSB3aXRob3V0IG5lZWRpbmdcbiAgLy8gdG8gc3BlY2lmeSBlYWNoIGh1ZSBpbmRpdmlkdWFsbHkuXG4gICR0aHVtYi11bmNoZWNrZWQtaHVlOiBpZigkaXMtZGFyaywgNDAwLCA1MCk7XG4gICR0aHVtYi1jaGVja2VkLWh1ZTogZGVmYXVsdDtcblxuICAkYmFyLXVuY2hlY2tlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZCk7XG4gICRyaXBwbGUtdW5jaGVja2VkLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGJhc2UpO1xuXG4gIC5tYXQtc2xpZGUtdG9nZ2xlIHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlLXRvZ2dsZS1jaGVja2VkKCRhY2NlbnQsICR0aHVtYi1jaGVja2VkLWh1ZSk7XG5cbiAgICAmLm1hdC1wcmltYXJ5IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtc2xpZGUtdG9nZ2xlLWNoZWNrZWQoJHByaW1hcnksICR0aHVtYi1jaGVja2VkLWh1ZSk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXNsaWRlLXRvZ2dsZS1jaGVja2VkKCR3YXJuLCAkdGh1bWItY2hlY2tlZC1odWUpO1xuICAgIH1cblxuICAgICY6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICAvLyBTZXQgbm8gb3BhY2l0eSBmb3IgdGhlIHJpcHBsZXMgYmVjYXVzZSB0aGUgcmlwcGxlIG9wYWNpdHkgd2lsbCBiZSBhZGp1c3RlZCBkeW5hbWljYWxseVxuICAgICAgLy8gYmFzZWQgb24gdGhlIHR5cGUgb2YgaW50ZXJhY3Rpb24gd2l0aCB0aGUgc2xpZGUtdG9nZ2xlIChlLmcuIGZvciBob3ZlciwgZm9jdXMpXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmlwcGxlLXVuY2hlY2tlZC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMSwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJG1hdC1ncmV5LCAkdGh1bWItdW5jaGVja2VkLWh1ZSk7XG4gIH1cblxuICAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXItdW5jaGVja2VkLWNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc2xpZGUtdG9nZ2xlLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50IHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cblxuXG5cblxuQG1peGluIF9tYXQtc2xpZGVyLWlubmVyLWNvbnRlbnQtdGhlbWUoJHBhbGV0dGUpIHtcbiAgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbiAgLm1hdC1zbGlkZXItdGh1bWIsXG4gIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICB9XG5cbiAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1zbGlkZXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICRtYXQtc2xpZGVyLW9mZi1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmKTtcbiAgJG1hdC1zbGlkZXItb2ZmLWZvY3VzZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW9mZi1hY3RpdmUpO1xuICAkbWF0LXNsaWRlci1kaXNhYmxlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmKTtcbiAgJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW1pbik7XG4gICRtYXQtc2xpZGVyLWxhYmVsZWQtbWluLXZhbHVlLXRodW1iLWxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNsaWRlci1vZmYpO1xuICAkbWF0LXNsaWRlci1mb2N1cy1yaW5nLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgZGVmYXVsdCwgMC4yKTtcbiAgJG1hdC1zbGlkZXItZm9jdXMtcmluZy1taW4tdmFsdWUtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgMC4xMik7XG4gICRtYXQtc2xpZGVyLXRpY2stY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgMC43KTtcbiAgJG1hdC1zbGlkZXItdGljay1zaXplOiAycHg7XG5cbiAgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItb2ZmLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1wcmltYXJ5IHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCRwcmltYXJ5KTtcbiAgfVxuXG4gIC5tYXQtYWNjZW50IHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCRhY2NlbnQpO1xuICB9XG5cbiAgLm1hdC13YXJuIHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCR3YXJuKTtcbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWZvY3VzLXJpbmctY29sb3I7XG4gIH1cblxuICAubWF0LXNsaWRlcjpob3ZlcixcbiAgLmNkay1mb2N1c2VkIHtcbiAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLW9mZi1mb2N1c2VkLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWRpc2FibGVkIHtcbiAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLFxuICAgIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4gICAgLm1hdC1zbGlkZXItdGh1bWIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItZGlzYWJsZWQtY29sb3I7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zbGlkZXItbWluLXZhbHVlIHtcbiAgICAubWF0LXNsaWRlci1mb2N1cy1yaW5nIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWZvY3VzLXJpbmctbWluLXZhbHVlLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIHtcbiAgICAgIC5tYXQtc2xpZGVyLXRodW1iLFxuICAgICAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWF0LXNsaWRlci1sYWJlbGVkLW1pbi12YWx1ZS10aHVtYi1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgJi5jZGstZm9jdXNlZCB7XG4gICAgICAgIC5tYXQtc2xpZGVyLXRodW1iLFxuICAgICAgICAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItbGFiZWwtY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKSB7XG4gICAgICAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJG1hdC1zbGlkZXItb2ZmLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlcixcbiAgICAgICYuY2RrLWZvY3VzZWQge1xuICAgICAgICAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci1vZmYtZm9jdXNlZC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWhhcy10aWNrcyAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci10aWNrLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgICAvLyBGaXJlZm94IGRvZXNuJ3QgZHJhdyB0aGUgZ3JhZGllbnQgY29ycmVjdGx5IHdpdGggJ3RvIHJpZ2h0J1xuICAgIC8vIChzZWUgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxNDMxOSkuXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1yZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDAuMDAwMWRlZywgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgfVxuXG4gIC5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRpY2tzIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNsaWRlci10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LXN0ZXBwZXItdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG5cbiAgLm1hdC1zdGVwLWhlYWRlciB7XG4gICAgJi5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgICAmLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGhvdmVyKTtcbiAgICB9XG5cbiAgICAvLyBPbiB0b3VjaCBkZXZpY2VzIHRoZSA6aG92ZXIgc3RhdGUgd2lsbCBsaW5nZXIgb24gdGhlIGVsZW1lbnQgYWZ0ZXIgYSB0YXAuXG4gICAgLy8gUmVzZXQgaXQgdmlhIGBAbWVkaWFgIGFmdGVyIHRoZSBkZWNsYXJhdGlvbiwgYmVjYXVzZSB0aGUgbWVkaWEgcXVlcnkgaXNuJ3RcbiAgICAvLyBzdXBwb3J0ZWQgYnkgYWxsIGJyb3dzZXJzIHlldC5cbiAgICBAbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtbGFiZWwsXG4gICAgLm1hdC1zdGVwLW9wdGlvbmFsIHtcbiAgICAgIC8vIFRPRE8oam9zZXBocGVycm90dCk6IFVwZGF0ZSB0byB1c2luZyBhIGNvcnJlY3RlZCBkaXNhYmxlZC10ZXh0IGNvbnRyYXN0XG4gICAgICAvLyBpbnN0ZWFkIG9mIHNlY29uZGFyeS10ZXh0LlxuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1pY29uIHtcbiAgICAgIC8vIFRPRE8oam9zZXBocGVycm90dCk6IFVwZGF0ZSB0byB1c2luZyBhIGNvcnJlY3RlZCBkaXNhYmxlZC10ZXh0IGNvbnRyYXN0XG4gICAgICAvLyBpbnN0ZWFkIG9mIHNlY29uZGFyeS10ZXh0LlxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCxcbiAgICAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVkaXQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVycm9yIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWFjdGl2ZSB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtZXJyb3Ige1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zdGVwcGVyLWhvcml6b250YWwsIC5tYXQtc3RlcHBlci12ZXJ0aWNhbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgfVxuXG4gIC5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmUge1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmUsXG4gIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YWZ0ZXIsXG4gIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmUge1xuICAgIGJvcmRlci10b3AtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cbn1cblxuQG1peGluIG1hdC1zdGVwcGVyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXN0ZXBwZXItdmVydGljYWwsIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1zdGVwLWxhYmVsIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpO1xuICAgIH07XG4gIH1cblxuICAubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICB9XG5cbiAgLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxuXG4gIC5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZCB7XG4gICAgZm9udDoge1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTIpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9O1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc29ydC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXNvcnQtaGVhZGVyLWFycm93IHtcbiAgICAkdGFibGUtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICAgICR0ZXh0LWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcblxuICAgIC8vIEJlY2F1c2UgdGhlIGFycm93IGlzIG1hZGUgdXAgb2YgbXVsdGlwbGUgZWxlbWVudHMgdGhhdCBhcmUgc3RhY2tlZCBvbiB0b3Agb2YgZWFjaCBvdGhlcixcbiAgICAvLyB3ZSBjYW4ndCB1c2UgdGhlIHNlbWktdHJhc3BhcmVudCBjb2xvciBmcm9tIHRoZSB0aGVtZSBkaXJlY3RseS4gSWYgdGhlIHZhbHVlIGlzIGEgY29sb3JcbiAgICAvLyAqdHlwZSosIHdlIGNvbnZlcnQgaXQgaW50byBhIHNvbGlkIGNvbG9yIGJ5IHRha2luZyB0aGUgb3BhY2l0eSBmcm9tIHRoZSByZ2JhIHZhbHVlIGFuZFxuICAgIC8vIHVzaW5nIHRoZSB2YWx1ZSB0byBkZXRlcm1pbmUgdGhlIHBlcmNlbnRhZ2Ugb2YgdGhlIGJhY2tncm91bmQgdG8gcHV0IGludG8gZm9yZWdyb3VuZFxuICAgIC8vIHdoZW4gbWl4aW5nIHRoZSBjb2xvcnMgdG9nZXRoZXIuIE90aGVyd2lzZSwgaWYgaXQgcmVzb2x2ZXMgdG8gc29tZXRoaW5nIGRpZmZlcmVudFxuICAgIC8vIChlLmcuIGl0IHJlc29sdmVzIHRvIGEgQ1NTIHZhcmlhYmxlKSwgd2UgdXNlIHRoZSBjb2xvciBkaXJlY3RseS5cbiAgICBAaWYgKHR5cGUtb2YoJHRhYmxlLWJhY2tncm91bmQpID09IGNvbG9yIGFuZCB0eXBlLW9mKCR0ZXh0LWNvbG9yKSA9PSBjb2xvcikge1xuICAgICAgJHRleHQtb3BhY2l0eTogb3BhY2l0eSgkdGV4dC1jb2xvcik7XG4gICAgICBjb2xvcjogbWl4KCR0YWJsZS1iYWNrZ3JvdW5kLCByZ2JhKCR0ZXh0LWNvbG9yLCAxKSwgKDEgLSAkdGV4dC1vcGFjaXR5KSAqIDEwMCUpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBjb2xvcjogJHRleHQtY29sb3I7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc29ydC10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtdGFicy10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRoZWFkZXItYm9yZGVyOiAxcHggc29saWQgbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcblxuICAubWF0LXRhYi1uYXYtYmFyLFxuICAubWF0LXRhYi1oZWFkZXIge1xuICAgIGJvcmRlci1ib3R0b206ICRoZWFkZXItYm9yZGVyO1xuICB9XG5cbiAgLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIHtcbiAgICAubWF0LXRhYi1uYXYtYmFyLFxuICAgIC5tYXQtdGFiLWhlYWRlciB7XG4gICAgICBib3JkZXItdG9wOiAkaGVhZGVyLWJvcmRlcjtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgJi5tYXQtdGFiLWRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgfVxuXG4gIC8vIFJlbW92ZSBoZWFkZXIgYm9yZGVyIHdoZW4gdGhlcmUgaXMgYSBiYWNrZ3JvdW5kIGNvbG9yXG4gIC5tYXQtdGFiLWdyb3VwW2NsYXNzKj0nbWF0LWJhY2tncm91bmQtJ10gLm1hdC10YWItaGVhZGVyLFxuICAubWF0LXRhYi1uYXYtYmFyW2NsYXNzKj0nbWF0LWJhY2tncm91bmQtJ10ge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgfVxuXG4gIC5tYXQtdGFiLWdyb3VwLCAubWF0LXRhYi1uYXYtYmFyIHtcbiAgICAkdGhlbWUtY29sb3JzOiAoXG4gICAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICAgIGFjY2VudDogJGFjY2VudCxcbiAgICAgIHdhcm46ICR3YXJuXG4gICAgKTtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJHRoZW1lLWNvbG9ycyB7XG4gICAgICAvLyBTZXQgdGhlIGZvcmVncm91bmQgY29sb3Igb2YgdGhlIHRhYnNcbiAgICAgICYubWF0LSN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWItbGFiZWwtZm9jdXMoJGNvbG9yKTtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1pbmstYmFyKCRjb2xvcik7XG5cbiAgICAgICAgLy8gT3ZlcnJpZGUgaW5rIGJhciB3aGVuIGJhY2tncm91bmQgY29sb3IgaXMgdGhlIHNhbWVcbiAgICAgICAgJi5tYXQtYmFja2dyb3VuZC0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1pbmstYmFyKCRjb2xvciwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICR0aGVtZS1jb2xvcnMge1xuICAgICAgLy8gU2V0IGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHRhYnMgYW5kIG92ZXJyaWRlIGZvY3VzIGNvbG9yXG4gICAgICAmLm1hdC1iYWNrZ3JvdW5kLSN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWItbGFiZWwtZm9jdXMoJGNvbG9yKTtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWJzLWJhY2tncm91bmQoJGNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9tYXQtaW5rLWJhcigkY29sb3IsICRodWU6IGRlZmF1bHQpIHtcbiAgLm1hdC1pbmstYmFyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGNvbG9yLCAkaHVlKTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC10YWItbGFiZWwtZm9jdXMoJHRhYi1mb2N1cy1jb2xvcikge1xuICAubWF0LXRhYi1sYWJlbCxcbiAgLm1hdC10YWItbGluayB7XG4gICAgJi5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgICAmLmNkay1wcm9ncmFtLWZvY3VzZWQge1xuICAgICAgJjpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR0YWItZm9jdXMtY29sb3IsIGxpZ2h0ZXIsIDAuMyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LXRhYnMtYmFja2dyb3VuZCgkYmFja2dyb3VuZC1jb2xvcikge1xuICAvLyBTZXQgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHRhYiBncm91cFxuICAubWF0LXRhYi1oZWFkZXIsIC5tYXQtdGFiLWxpbmtzLCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yKTtcbiAgfVxuXG4gIC8vIFNldCBsYWJlbHMgdG8gY29udHJhc3QgYWdhaW5zdCBiYWNrZ3JvdW5kXG4gIC5tYXQtdGFiLWxhYmVsLCAubWF0LXRhYi1saW5rIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0KTtcblxuICAgICYubWF0LXRhYi1kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBwYWdpbmF0aW9uIGNoZXZyb25zIHRvIGNvbnRyYXN0IGJhY2tncm91bmRcbiAgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QsIDAuNCk7XG4gIH1cblxuICAvLyBTZXQgcmlwcGxlcyBjb2xvciB0byBiZSB0aGUgY29udHJhc3QgY29sb3Igb2YgdGhlIG5ldyBiYWNrZ3JvdW5kLiBPdGhlcndpc2UgdGhlIHJpcHBsZVxuICAvLyBjb2xvciB3aWxsIGJlIGJhc2VkIG9uIHRoZSBhcHAgYmFja2dyb3VuZCBjb2xvci5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjEyKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRhYnMtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtdGFiLWdyb3VwIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJ1dHRvbik7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJ1dHRvbik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuQG1peGluIF9tYXQtdG9vbGJhci1jb2xvcigkcGFsZXR0ZSkge1xuICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICBjb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KTtcbn1cblxuQG1peGluIF9tYXQtdG9vbGJhci1mb3JtLWZpZWxkLW92ZXJyaWRlcyB7XG4gIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUsXG4gIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUsXG4gIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gIC5tYXQtc2VsZWN0LXZhbHVlLFxuICAubWF0LXNlbGVjdC1hcnJvdyxcbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuXG4gIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgY2FyZXQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2xiYXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtdG9vbGJhciB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBhcHAtYmFyKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCRwcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBfbWF0LXRvb2xiYXItZm9ybS1maWVsZC1vdmVycmlkZXM7XG4gIH1cbn1cblxuQG1peGluIG1hdC10b29sYmFyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXRvb2xiYXIsXG4gIC5tYXQtdG9vbGJhciBoMSxcbiAgLm1hdC10b29sYmFyIGgyLFxuICAubWF0LXRvb2xiYXIgaDMsXG4gIC5tYXQtdG9vbGJhciBoNCxcbiAgLm1hdC10b29sYmFyIGg1LFxuICAubWF0LXRvb2xiYXIgaDYge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCB0aXRsZSk7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cblxuXG5cblxuJG1hdC10b29sdGlwLXRhcmdldC1oZWlnaHQ6IDIycHg7XG4kbWF0LXRvb2x0aXAtZm9udC1zaXplOiAxMHB4O1xuJG1hdC10b29sdGlwLXZlcnRpY2FsLXBhZGRpbmc6ICgkbWF0LXRvb2x0aXAtdGFyZ2V0LWhlaWdodCAtICRtYXQtdG9vbHRpcC1mb250LXNpemUpIC8gMjtcblxuJG1hdC10b29sdGlwLWhhbmRzZXQtdGFyZ2V0LWhlaWdodDogMzBweDtcbiRtYXQtdG9vbHRpcC1oYW5kc2V0LWZvbnQtc2l6ZTogMTRweDtcbiRtYXQtdG9vbHRpcC1oYW5kc2V0LXZlcnRpY2FsLXBhZGRpbmc6XG4gICAgKCRtYXQtdG9vbHRpcC1oYW5kc2V0LXRhcmdldC1oZWlnaHQgLSAkbWF0LXRvb2x0aXAtaGFuZHNldC1mb250LXNpemUpIC8gMjtcblxuQG1peGluIG1hdC10b29sdGlwLXRoZW1lKCR0aGVtZSkge1xuICAubWF0LXRvb2x0aXAge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkbWF0LWdyZXksIDcwMCwgMC45KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2x0aXAtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtdG9vbHRpcCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgICBmb250LXNpemU6ICRtYXQtdG9vbHRpcC1mb250LXNpemU7XG4gICAgcGFkZGluZy10b3A6ICRtYXQtdG9vbHRpcC12ZXJ0aWNhbC1wYWRkaW5nO1xuICAgIHBhZGRpbmctYm90dG9tOiAkbWF0LXRvb2x0aXAtdmVydGljYWwtcGFkZGluZztcbiAgfVxuXG4gIC5tYXQtdG9vbHRpcC1oYW5kc2V0IHtcbiAgICBmb250LXNpemU6ICRtYXQtdG9vbHRpcC1oYW5kc2V0LWZvbnQtc2l6ZTtcbiAgICBwYWRkaW5nLXRvcDogJG1hdC10b29sdGlwLWhhbmRzZXQtdmVydGljYWwtcGFkZGluZztcbiAgICBwYWRkaW5nLWJvdHRvbTogJG1hdC10b29sdGlwLWhhbmRzZXQtdmVydGljYWwtcGFkZGluZztcbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtc25hY2stYmFyLXRoZW1lKCR0aGVtZSkge1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkdGhlbWUsIGlzLWRhcmspO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcblxuICAubWF0LXNuYWNrLWJhci1jb250YWluZXIge1xuICAgIC8vIFVzZSB0aGUgcHJpbWFyeSB0ZXh0IG9uIHRoZSBkYXJrIHRoZW1lLCBldmVuIHRob3VnaCB0aGUgbGlnaHRlciBvbmUgdXNlc1xuICAgIC8vIGEgc2Vjb25kYXJ5LCBiZWNhdXNlIHRoZSBjb250cmFzdCBvbiB0aGUgbGlnaHQgcHJpbWFyeSB0ZXh0IGlzIHBvb3IuXG4gICAgY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCAkZGFyay1wcmltYXJ5LXRleHQsICRsaWdodC1zZWNvbmRhcnktdGV4dCk7XG4gICAgYmFja2dyb3VuZDogaWYoJGlzLWRhcmstdGhlbWUsIG1hcC1nZXQoJG1hdC1ncmV5LCA1MCksICMzMjMyMzIpO1xuXG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oNiwgJHRoZW1lKTtcbiAgfVxuXG4gIC5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiB7XG4gICAgY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCBpbmhlcml0LCBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCkpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc25hY2stYmFyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXNpbXBsZS1zbmFja2JhciB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9XG4gIH1cblxuICAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogaW5oZXJpdDtcbiAgICAgIHNpemU6IGluaGVyaXQ7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIGZpbGwgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWZpbGwtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG5cbiAgJGZpbGwtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBiYXNlLCBpZigkaXMtZGFyay10aGVtZSwgMC4xLCAwLjA0KSk7XG4gICRmaWxsLWRpc2FibGVkLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgaWYoJGlzLWRhcmstdGhlbWUsIDAuMDUsIDAuMDIpKTtcbiAgJHVuZGVybGluZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyLCBpZigkaXMtZGFyay10aGVtZSwgMC41LCAwLjQyKSk7XG4gICRsYWJlbC1kaXNhYmxlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIHtcbiAgICAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmlsbC1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZpbGwtZGlzYWJsZWQtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkbGFiZWwtZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZTogMDtcblxuLy8gQXBwbGllcyBhIGZsb2F0aW5nIGxhYmVsIGFib3ZlIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaXRzZWxmLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1maWxsLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLWZpbGwtZGVkdXBlKVxuICAgICAgICAgICAgIHNjYWxlKCRmb250LXNjYWxlKTtcbiAgd2lkdGg6IDEwMCUgLyAkZm9udC1zY2FsZSArICRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZTtcblxuICAkbWF0LWZvcm0tZmllbGQtZmlsbC1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZSArIDAuMDAwMDEgIWdsb2JhbDtcbn1cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWZpbGwtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcbiAgLy8gVGhlIGFtb3VudCB0byBzY2FsZSB0aGUgZm9udCBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsIGFuZCBzdWJzY3JpcHQuXG4gICRzdWJzY3JpcHQtZm9udC1zY2FsZTogMC43NTtcbiAgLy8gVGhlIHBhZGRpbmcgb24gdG9wIG9mIHRoZSBpbmZpeC5cbiAgJGluZml4LXBhZGRpbmctdG9wOiAwLjI1ZW07XG4gIC8vIFRoZSBwYWRkaW5nIGJlbG93IHRoZSBpbmZpeC5cbiAgJGluZml4LXBhZGRpbmctYm90dG9tOiAwLjc1ZW07XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBhbW91bnQgd2Ugb2Zmc2V0IHRoZSBsYWJlbCBmcm9tIHRoZSBpbnB1dCB0ZXh0IGluIHRoZSBmaWxsIGFwcGVhcmFuY2UuXG4gICRmaWxsLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0OiAtMC41ZW07XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICAgIHBhZGRpbmc6ICRpbmZpeC1wYWRkaW5nLXRvcCAwICRpbmZpeC1wYWRkaW5nLWJvdHRvbSAwO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmctdG9wO1xuICAgICAgbWFyZ2luLXRvcDogJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQ7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtZmlsbC1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLXRvcCArICRmaWxsLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1maWxsLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmctdG9wICsgJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQsXG4gICAgICAgICAgICAgICAgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHRoZSBsZWdhY3kgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAkdW5kZXJsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjcsIDAuNDIpKTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kge1xuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtaGludCB7XG4gICAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgQGluY2x1ZGUgbWF0LWNvbnRyb2wtZGlzYWJsZWQtdW5kZXJsaW5lKCR1bmRlcmxpbmUtY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlOiAwO1xuXG4vLyBBcHBsaWVzIGEgZmxvYXRpbmcgbGFiZWwgYWJvdmUgdGhlIGZvcm0gZmllbGQgY29udHJvbCBpdHNlbGYuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZygkZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKSB7XG4gIC8vIFdlIHVzZSBwZXJzcGVjdGl2ZSB0byBmaXggdGhlIHRleHQgYmx1cnJpbmVzcyBhcyBkZXNjcmliZWQgaGVyZTpcbiAgLy8gaHR0cDovL3d3dy51c2VyYWdlbnRtYW4uY29tL2Jsb2cvMjAxNC8wNS8wNC9maXhpbmctdHlwb2dyYXBoeS1pbnNpZGUtb2YtMi1kLWNzcy10cmFuc2Zvcm1zL1xuICAvLyBUaGlzIHJlc3VsdHMgaW4gYSBzbWFsbCBqaXR0ZXIgYWZ0ZXIgdGhlIGxhYmVsIGZsb2F0cyBvbiBGaXJlZm94LCB3aGljaCB0aGVcbiAgLy8gdHJhbnNsYXRlWiBmaXhlcy5cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nKSBzY2FsZSgkZm9udC1zY2FsZSkgcGVyc3BlY3RpdmUoMTAwcHgpXG4gIHRyYW5zbGF0ZVooMC4wMDFweCArICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlKTtcbiAgLy8gVGhlIHRyaWNrcyBhYm92ZSB1c2VkIHRvIHNtb290aCBvdXQgdGhlIGFuaW1hdGlvbiBvbiBjaHJvbWUgYW5kIGZpcmVmb3ggYWN0dWFsbHkgbWFrZSB0aGluZ3NcbiAgLy8gd29yc2Ugb24gSUUsIHNvIHdlIGRvbid0IGluY2x1ZGUgdGhlbSBpbiB0aGUgSUUgdmVyc2lvbi5cbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJGluZml4LW1hcmdpbi10b3AgLSAkaW5maXgtcGFkZGluZyArICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlKVxuICAgICAgICAgICAgICAgICAgc2NhbGUoJGZvbnQtc2NhbGUpO1xuXG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZTtcblxuICAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZTogJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbi8vIFNhbWUgYXMgbWl4aW4gYWJvdmUsIGJ1dCBvbWl0cyB0aGUgdHJhbnNsYXRlWiBmb3IgcHJpbnRpbmcgcHVycG9zZXMuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludCgkZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKSB7XG4gIC8vIFRoaXMgcmVzdWx0cyBpbiBhIHNtYWxsIGppdHRlciBhZnRlciB0aGUgbGFiZWwgZmxvYXRzIG9uIEZpcmVmb3gsIHdoaWNoIHRoZVxuICAvLyB0cmFuc2xhdGVaIGZpeGVzLlxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRpbmZpeC1tYXJnaW4tdG9wIC0gJGluZml4LXBhZGRpbmcgKyAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZSlcbiAgICAgICAgICAgICAgICAgIHNjYWxlKCRmb250LXNjYWxlKTtcbiAgLy8gVGhlIHRyaWNrcyBhYm92ZSB1c2VkIHRvIHNtb290aCBvdXQgdGhlIGFuaW1hdGlvbiBvbiBjaHJvbWUgYW5kIGZpcmVmb3ggYWN0dWFsbHkgbWFrZSB0aGluZ3NcbiAgLy8gd29yc2Ugb24gSUUsIHNvIHdlIGRvbid0IGluY2x1ZGUgdGhlbSBpbiB0aGUgSUUgdmVyc2lvbi5cbiAgJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlICsgMC4wMDAwMSAhZ2xvYmFsO1xufVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtbGVnYWN5LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBhbW91bnQgb2Ygc3BhY2UgYmV0d2VlbiB0aGUgdG9wIG9mIHRoZSBsaW5lIGFuZCB0aGUgdG9wIG9mIHRoZSBhY3R1YWwgdGV4dFxuICAvLyAoYXMgYSBmcmFjdGlvbiBvZiB0aGUgZm9udC1zaXplKS5cbiAgJGxpbmUtc3BhY2luZzogKCRsaW5lLWhlaWdodCAtIDEpIC8gMjtcbiAgLy8gVGhlIHBhZGRpbmcgb24gdGhlIGluZml4LiBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZSwgYnV0IHNlZW0gdG8gbWVhc3VyZSBmcm9tIHRoZSBlZGdlXG4gIC8vIG9mIHRoZSB0ZXh0IGl0c2VsZiwgbm90IHRoZSBlZGdlIG9mIHRoZSBsaW5lOyB0aGVyZWZvcmUgd2Ugc3VidHJhY3Qgb2ZmIHRoZSBsaW5lIHNwYWNpbmcuXG4gICRpbmZpeC1wYWRkaW5nOiAwLjVlbSAtICRsaW5lLXNwYWNpbmc7XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBib3R0b20gb2YgdGhlIC5tYXQtZm9ybS1maWVsZC1mbGV4IGFyZWEgYW5kIHRoZSBzdWJzY3JpcHQgd3JhcHBlci5cbiAgLy8gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCB0aGlzIG1hcmdpbiBpcyBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgd2l0aCB0aGUgc3Vic2NyaXB0XG4gIC8vIHRleHQgZm9udCBzaXplLCBzbyB3ZSBuZWVkIHRvIGRpdmlkZSBieSB0aGUgc2NhbGUgZmFjdG9yIHRvIG1ha2UgaXQgaGFsZiBvZiB0aGUgb3JpZ2luYWwgdGV4dFxuICAvLyBzaXplLiBXZSBhZ2FpbiBuZWVkIHRvIHN1YnRyYWN0IG9mZiB0aGUgbGluZSBzcGFjaW5nIHNpbmNlIHRoZSBtb2NrcyBtZWFzdXJlIHRvIHRoZSBlZGdlIG9mIHRoZVxuICAvLyB0ZXh0LCBub3QgdGhlICBlZGdlIG9mIHRoZSBsaW5lLlxuICAkc3Vic2NyaXB0LW1hcmdpbi10b3A6IDAuNWVtIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlIC0gKCRsaW5lLXNwYWNpbmcgKiAyKTtcbiAgLy8gVGhlIHBhZGRpbmcgYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC13cmFwcGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBzdWJzY3JpcHQsIHNpbmNlIGl0J3NcbiAgLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkLiBUaGlzIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIHN1YnNjcmlwdCdzIG1hcmdpbiBhbmQgbGluZS1oZWlnaHQsIGJ1dCB3ZVxuICAvLyBuZWVkIHRvIG11bHRpcGx5IGJ5IHRoZSBzdWJzY3JpcHQgZm9udCBzY2FsZSBmYWN0b3Igc2luY2UgdGhlIHdyYXBwZXIgaGFzIGEgbGFyZ2VyIGZvbnQgc2l6ZS5cbiAgJHdyYXBwZXItcGFkZGluZy1ib3R0b206ICgkc3Vic2NyaXB0LW1hcmdpbi10b3AgKyAkbGluZS1oZWlnaHQpICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgICAgcGFkZGluZy1ib3R0b206ICR3cmFwcGVyLXBhZGRpbmctYm90dG9tO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICBwYWRkaW5nOiAkaW5maXgtcGFkZGluZyAwO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjAgd2lsbCByZWx5IG9uIEF1dG9maWxsTW9uaXRvciBpbnN0ZWFkLlxuICAgICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICAvLyBXZSB3YW50IHRoZSB1bmRlcmxpbmUgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgICAvLyBzbyB3ZSBtb3ZlIGl0IHVwIGJ5IHRoZSBwYWRkaW5nIGFtb3VudC5cbiAgICAgIGJvdHRvbTogJHdyYXBwZXItcGFkZGluZy1ib3R0b207XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgICAgIG1hcmdpbi10b3A6ICRzdWJzY3JpcHQtbWFyZ2luLXRvcDtcblxuICAgICAgLy8gV2Ugd2FudCB0aGUgc3Vic2NyaXB0IHRvIHN0YXJ0IGF0IHRoZSBlbmQgb2YgdGhlIGNvbnRlbnQgYm94LCBub3QgdGhlIHBhZGRpbmcgYm94LFxuICAgICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQgKGFkanVzdGVkIGZvciB0aGUgc21hbGxlciBmb250IHNpemUpO1xuICAgICAgdG9wOiBjYWxjKDEwMCUgLSAjeyR3cmFwcGVyLXBhZGRpbmctYm90dG9tIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gdHJhbnNsYXRlWiBjYXVzZXMgdGhlIGxhYmVsIHRvIG5vdCBhcHBlYXIgd2hpbGUgcHJpbnRpbmcsIHNvIHdlIG92ZXJyaWRlIGl0IHRvIG5vdFxuICAvLyBhcHBseSB0cmFuc2xhdGVaIHdoaWxlIHByaW50aW5nXG4gIEBtZWRpYSBwcmludCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgICAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludChcbiAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjAgd2lsbCByZWx5IG9uIEF1dG9maWxsTW9uaXRvciBpbnN0ZWFkLlxuICAgICAgICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbDotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nLXByaW50KFxuICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAgIC8vICh1c2VkIGFzIGEgcHVyZSBDU1Mgc3RhbmQtaW4gZm9yIG1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCkuXG4gICAgICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludChcbiAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHRoZSBvdXRsaW5lIGFwcGVhcmFuY2Ugb2YgdGhlIGZvcm0tZmllbGQuXG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkbGFiZWwtZGlzYWJsZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gICRvdXRsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjMsIDAuMTIpKTtcbiAgJG91dGxpbmUtY29sb3ItaG92ZXI6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDEsIDAuODcpKTtcbiAgJG91dGxpbmUtY29sb3ItcHJpbWFyeTogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgJG91dGxpbmUtY29sb3ItYWNjZW50OiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICRvdXRsaW5lLWNvbG9yLXdhcm46IG1hdC1jb2xvcigkd2Fybik7XG4gICRvdXRsaW5lLWNvbG9yLWRpc2FibGVkOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjE1LCAwLjA2KSk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xuICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1ob3ZlcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb2N1c2VkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLXByaW1hcnk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gICAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1hY2NlbnQ7XG4gICAgICB9XG5cbiAgICAgICYubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDbGFzcyByZXBlYXRlZCBzbyB0aGF0IHJ1bGUgaXMgc3BlY2lmaWMgZW5vdWdoIHRvIG92ZXJyaWRlIGZvY3VzZWQgYWNjZW50IGNvbG9yIGNhc2UuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQge1xuICAgICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkbGFiZWwtZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLWRpc2FibGVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWRlZHVwZTogMDtcblxuLy8gQXBwbGllcyBhIGZsb2F0aW5nIGxhYmVsIGFib3ZlIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaXRzZWxmLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlKVxuICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGU7XG5cbiAgJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlOiAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBwYWRkaW5nIGFib3ZlIGFuZCBiZWxvdyB0aGUgaW5maXguXG4gICRpbmZpeC1wYWRkaW5nOiAxZW07XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBib3R0b20gb2YgdGhlIC5tYXQtZm9ybS1maWVsZC1mbGV4IGFyZWEgYW5kIHRoZSBzdWJzY3JpcHQgd3JhcHBlci5cbiAgLy8gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCB0aGlzIG1hcmdpbiBpcyBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgd2l0aCB0aGUgc3Vic2NyaXB0XG4gIC8vIHRleHQgZm9udCBzaXplLCBzbyB3ZSBuZWVkIHRvIGRpdmlkZSBieSB0aGUgc2NhbGUgZmFjdG9yIHRvIG1ha2UgaXQgaGFsZiBvZiB0aGUgb3JpZ2luYWwgdGV4dFxuICAvLyBzaXplLlxuICAkc3Vic2NyaXB0LW1hcmdpbi10b3A6IDAuNWVtIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBUaGUgcGFkZGluZyBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLXdyYXBwZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIHN1YnNjcmlwdCwgc2luY2UgaXQnc1xuICAvLyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQuIFRoaXMgaXMgYSBjb21iaW5hdGlvbiBvZiB0aGUgc3Vic2NyaXB0J3MgbWFyZ2luIGFuZCBsaW5lLWhlaWdodCwgYnV0IHdlXG4gIC8vIG5lZWQgdG8gbXVsdGlwbHkgYnkgdGhlIHN1YnNjcmlwdCBmb250IHNjYWxlIGZhY3RvciBzaW5jZSB0aGUgd3JhcHBlciBoYXMgYSBsYXJnZXIgZm9udCBzaXplLlxuICAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTogKCRzdWJzY3JpcHQtbWFyZ2luLXRvcCArICRsaW5lLWhlaWdodCkgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBhbW91bnQgd2Ugb2Zmc2V0IHRoZSBsYWJlbCBmcm9tIHRoZSBpbnB1dCB0ZXh0IGluIHRoZSBvdXRsaW5lIGFwcGVhcmFuY2UuXG4gICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0OiAtMC4yNWVtO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUge1xuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICBwYWRkaW5nOiAkaW5maXgtcGFkZGluZyAwICRpbmZpeC1wYWRkaW5nIDA7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIHRvcDogJGluZml4LW1hcmdpbi10b3AgKyAkaW5maXgtcGFkZGluZztcbiAgICAgIG1hcmdpbi10b3A6ICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0O1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLW91dGxpbmUtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZyArICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcgKyAkb3V0bGluZS1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldCxcbiAgICAgICAgICAgICAgICAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIHN0YW5kYXJkIGFwcGVhcmFuY2Ugb2YgdGhlIGZvcm0tZmllbGQuXG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkdW5kZXJsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjcsIDAuNDIpKTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICBAaW5jbHVkZSBtYXQtY29udHJvbC1kaXNhYmxlZC11bmRlcmxpbmUoJHVuZGVybGluZS1jb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10eXBvZ3JhcGh5KCRjb25maWcpIHt9XG5cblxuLy8gVGhlbWUgc3R5bGVzIHRoYXQgYXBwbHkgdG8gYWxsIGFwcGVhcmFuY2VzIG9mIHRoZSBmb3JtLWZpZWxkLlxuQG1peGluIG1hdC1mb3JtLWZpZWxkLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAvLyBMYWJlbCBjb2xvcnMuIFJlcXVpcmVkIGlzIHVzZWQgZm9yIHRoZSBgKmAgc3RhciBzaG93biBpbiB0aGUgbGFiZWwuXG4gICRsYWJlbC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCwgaWYoJGlzLWRhcmstdGhlbWUsIDAuNywgMC42KSk7XG4gICRmb2N1c2VkLWxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuICAkcmVxdWlyZWQtbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcblxuICAvLyBVbmRlcmxpbmUgY29sb3JzLlxuICAkdW5kZXJsaW5lLWNvbG9yLWJhc2U6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDEsIDAuODcpKTtcbiAgJHVuZGVybGluZS1jb2xvci1hY2NlbnQ6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcbiAgJHVuZGVybGluZS1jb2xvci13YXJuOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICAkdW5kZXJsaW5lLWZvY3VzZWQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1oaW50IHtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgY29sb3I6ICRmb2N1c2VkLWxhYmVsLWNvbG9yO1xuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWFjY2VudDtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIge1xuICAgIGNvbG9yOiAkcmVxdWlyZWQtbGFiZWwtY29sb3I7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWJhc2U7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQge1xuICAgIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1mb2N1c2VkLWNvbG9yO1xuXG4gICAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWFjY2VudDtcbiAgICAgIH1cblxuICAgICAgJi5tYXQtd2FybiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpIHtcbiAgICAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWZvY3VzZWQtY29sb3I7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3ItYWNjZW50O1xuICAgIH1cblxuICAgICYubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN0eWxpbmcgZm9yIHRoZSBlcnJvciBzdGF0ZSBvZiB0aGUgZm9ybSBmaWVsZC4gTm90ZSB0aGF0IHdoaWxlIHRoZSBzYW1lIGNhbiBiZVxuICAvLyBhY2hpZXZlZCB3aXRoIHRoZSBuZy0qIGNsYXNzZXMsIHdlIHVzZSB0aGlzIGFwcHJvYWNoIGluIG9yZGVyIHRvIGVuc3VyZSB0aGF0IHRoZSBzYW1lXG4gIC8vIGxvZ2ljIGlzIHVzZWQgdG8gc3R5bGUgdGhlIGVycm9yIHN0YXRlIGFuZCB0byBzaG93IHRoZSBlcnJvciBtZXNzYWdlcy5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQge1xuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuXG4gICAgICAmLm1hdC1hY2NlbnQsXG4gICAgICAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtcmlwcGxlLFxuICAgIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgfVxuICB9XG5cbiAgLm1hdC1lcnJvciB7XG4gICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1maWxsLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhlbWUoJHRoZW1lKTtcbn1cblxuLy8gVXNlZCB0byBtYWtlIGluc3RhbmNlcyBvZiB0aGUgX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nIG1peGluIG5lZ2xpZ2libHkgZGlmZmVyZW50LFxuLy8gYW5kIHByZXZlbnQgR29vZ2xlJ3MgQ1NTIE9wdGltaXplciBmcm9tIGNvbGxhcHNpbmcgdGhlIGRlY2xhcmF0aW9ucy4gVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBzb21lXG4vLyBvZiB0aGUgc2VsZWN0b3JzIGNvbnRhaW4gcHNldWRvLWNsYXNzZXMgbm90IHJlY29nbml6ZWQgaW4gYWxsIGJyb3dzZXJzLiBJZiBhIGJyb3dzZXIgZW5jb3VudGVyc1xuLy8gYW4gdW5rbm93biBwc2V1ZG8tY2xhc3MgaXQgd2lsbCBkaXNjYXJkIHRoZSBlbnRpcmUgcnVsZSBzZXQuXG4kbWF0LWZvcm0tZmllbGQtZGVkdXBlOiAwO1xuXG4vLyBBcHBsaWVzIGEgZmxvYXRpbmcgbGFiZWwgYWJvdmUgdGhlIGZvcm0gZmllbGQgY29udHJvbCBpdHNlbGYuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLWRlZHVwZSlcbiAgICAgICAgICAgICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtZGVkdXBlO1xuXG4gICRtYXQtZm9ybS1maWVsZC1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuXG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBwcmVmaXggYW5kIHN1ZmZpeCBpY29ucy5cbiAgJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNjYWxlOiAxLjU7XG5cbiAgLy8gVGhlIHBhZGRpbmcgb24gdGhlIGluZml4LiBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZS5cbiAgJGluZml4LXBhZGRpbmc6IDAuNWVtO1xuICAvLyBUaGUgbWFyZ2luIGFwcGxpZWQgdG8gdGhlIGZvcm0tZmllbGQtaW5maXggdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsLlxuICAkaW5maXgtbWFyZ2luLXRvcDogMWVtICogJGxpbmUtaGVpZ2h0ICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBGb250IHNpemUgdG8gdXNlIGZvciB0aGUgbGFiZWwgYW5kIHN1YnNjcmlwdCB0ZXh0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2l6ZTogJHN1YnNjcmlwdC1mb250LXNjYWxlICogMTAwJTtcbiAgLy8gRm9udCBzaXplIHRvIHVzZSBmb3IgdGhlIGZvciB0aGUgcHJlZml4IGFuZCBzdWZmaXggaWNvbnMuXG4gICRwcmVmaXgtc3VmZml4LWljb24tZm9udC1zaXplOiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGUgKiAxMDAlO1xuICAvLyBUaGUgc3BhY2UgYmV0d2VlbiB0aGUgYm90dG9tIG9mIHRoZSAubWF0LWZvcm0tZmllbGQtZmxleCBhcmVhIGFuZCB0aGUgc3Vic2NyaXB0IHdyYXBwZXIuXG4gIC8vIE1vY2tzIHNob3cgaGFsZiBvZiB0aGUgdGV4dCBzaXplLCBidXQgdGhpcyBtYXJnaW4gaXMgYXBwbGllZCB0byBhbiBlbGVtZW50IHdpdGggdGhlIHN1YnNjcmlwdFxuICAvLyB0ZXh0IGZvbnQgc2l6ZSwgc28gd2UgbmVlZCB0byBkaXZpZGUgYnkgdGhlIHNjYWxlIGZhY3RvciB0byBtYWtlIGl0IGhhbGYgb2YgdGhlIG9yaWdpbmFsIHRleHRcbiAgLy8gc2l6ZS5cbiAgJHN1YnNjcmlwdC1tYXJnaW4tdG9wOiAwLjVlbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcbiAgLy8gVGhlIHBhZGRpbmcgYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC13cmFwcGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBzdWJzY3JpcHQsIHNpbmNlIGl0J3NcbiAgLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkLiBUaGlzIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIHN1YnNjcmlwdCdzIG1hcmdpbiBhbmQgbGluZS1oZWlnaHQsIGJ1dCB3ZVxuICAvLyBuZWVkIHRvIG11bHRpcGx5IGJ5IHRoZSBzdWJzY3JpcHQgZm9udCBzY2FsZSBmYWN0b3Igc2luY2UgdGhlIHdyYXBwZXIgaGFzIGEgbGFyZ2VyIGZvbnQgc2l6ZS5cbiAgJHdyYXBwZXItcGFkZGluZy1ib3R0b206ICgkc3Vic2NyaXB0LW1hcmdpbi10b3AgKyAkbGluZS1oZWlnaHQpICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuXG4gIC5tYXQtZm9ybS1maWVsZCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGlucHV0KTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHdyYXBwZXItcGFkZGluZy1ib3R0b207XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtcHJlZml4LFxuICAubWF0LWZvcm0tZmllbGQtc3VmZml4IHtcbiAgICAvLyBBbGxvdyBpY29ucyBpbiBhIHByZWZpeCBvciBzdWZmaXggdG8gYWRhcHQgdG8gdGhlIGNvcnJlY3Qgc2l6ZS5cbiAgICAubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gICAgfVxuXG4gICAgLy8gQWxsb3cgaWNvbiBidXR0b25zIGluIGEgcHJlZml4IG9yIHN1ZmZpeCB0byBhZGFwdCB0byB0aGUgY29ycmVjdCBzaXplLlxuICAgIC5tYXQtaWNvbi1idXR0b24ge1xuICAgICAgaGVpZ2h0OiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGUgKiAxZW07XG4gICAgICB3aWR0aDogJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNjYWxlICogMWVtO1xuXG4gICAgICAubWF0LWljb24ge1xuICAgICAgICBoZWlnaHQ6ICRsaW5lLWhlaWdodCAqIDFlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIHBhZGRpbmc6ICRpbmZpeC1wYWRkaW5nIDA7XG4gICAgLy8gVGhyb3dzIG9mZiB0aGUgYmFzZWxpbmUgaWYgd2UgZG8gaXQgYXMgYSByZWFsIG1hcmdpbiwgc28gd2UgZG8gaXQgYXMgYSBib3JkZXIgaW5zdGVhZC5cbiAgICBib3JkZXItdG9wOiAkaW5maXgtbWFyZ2luLXRvcCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICB9XG5cbiAgICAvLyBTZXJ2ZXItc2lkZSByZW5kZXJlZCBtYXRJbnB1dCB3aXRoIGEgbGFiZWwgYXR0cmlidXRlIGJ1dCBsYWJlbCBub3Qgc2hvd25cbiAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgdG9wOiAtJGluZml4LW1hcmdpbi10b3A7XG4gICAgcGFkZGluZy10b3A6ICRpbmZpeC1tYXJnaW4tdG9wO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmc7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAvLyBXZSB3YW50IHRoZSB1bmRlcmxpbmUgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQuXG4gICAgYm90dG9tOiAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciB7XG4gICAgZm9udC1zaXplOiAkc3Vic2NyaXB0LWZvbnQtc2l6ZTtcbiAgICBtYXJnaW4tdG9wOiAkc3Vic2NyaXB0LW1hcmdpbi10b3A7XG5cbiAgICAvLyBXZSB3YW50IHRoZSBzdWJzY3JpcHQgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQgKGFkanVzdGVkIGZvciB0aGUgc21hbGxlciBmb250IHNpemUpO1xuICAgIHRvcDogY2FsYygxMDAlIC0gI3skd3JhcHBlci1wYWRkaW5nLWJvdHRvbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZX0pO1xuICB9XG5cbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtbGVnYWN5LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXN0YW5kYXJkLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWZpbGwtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtb3V0bGluZS10eXBvZ3JhcGh5KCRjb25maWcpO1xufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtdHJlZS10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXRyZWUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgfVxuXG4gIC5tYXQtdHJlZS1ub2RlLFxuICAubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtdHJlZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC10cmVlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC10cmVlLW5vZGUsXG4gIC5tYXQtbmVzdGVkLXRyZWUtbm9kZSB7XG4gICAgZm9udC13ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpO1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG4vLyBJbmNsdWRlcyBhbGwgb2YgdGhlIHR5cG9ncmFwaGljIHN0eWxlcy5cbkBtaXhpbiBhbmd1bGFyLW1hdGVyaWFsLXR5cG9ncmFwaHkoJGNvbmZpZzogbnVsbCkge1xuICBAaWYgJGNvbmZpZyA9PSBudWxsIHtcbiAgICAkY29uZmlnOiBtYXQtdHlwb2dyYXBoeS1jb25maWcoKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1hdC1iYWRnZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYmFzZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYXV0b2NvbXBsZXRlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1ib3R0b20tc2hlZXQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYnV0dG9uLXRvZ2dsZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtY2FyZC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtY2hlY2tib3gtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWNoaXBzLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10YWJsZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZGF0ZXBpY2tlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZGlhbG9nLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1leHBhbnNpb24tcGFuZWwtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWdyaWQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtaWNvbi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtaW5wdXQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LW1lbnUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXBhZ2luYXRvci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3MtYmFyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcm9ncmVzcy1zcGlubmVyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1yYWRpby10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc2VsZWN0LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zaWRlbmF2LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zbGlkZS10b2dnbGUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXNsaWRlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc3RlcHBlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc29ydC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdGFicy10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdG9vbGJhci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdG9vbHRpcC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtb3B0aW9uLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1vcHRncm91cC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc25hY2stYmFyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10cmVlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG59XG5cblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBzdHlsZXMgdGhhdCBhcmUgbm90IHRoZW1lLWRlcGVuZGVudC5cbkBtaXhpbiBtYXQtY29yZSgkdHlwb2dyYXBoeS1jb25maWc6IG51bGwpIHtcbiAgQGluY2x1ZGUgYW5ndWxhci1tYXRlcmlhbC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5LWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1yaXBwbGUoKTtcbiAgQGluY2x1ZGUgY2RrLWExMXkoKTtcbiAgQGluY2x1ZGUgY2RrLW92ZXJsYXkoKTtcbiAgQGluY2x1ZGUgY2RrLXRleHQtZmllbGQoKTtcbn1cblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBzdHlsZXMgdGhhdCBkZXBlbmQgb24gdGhlIHRoZW1lLlxuQG1peGluIG1hdC1jb3JlLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtcmlwcGxlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1vcHRpb24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LW9wdGdyb3VwLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1wc2V1ZG8tY2hlY2tib3gtdGhlbWUoJHRoZW1lKTtcblxuICAvLyBQcm92aWRlcyBleHRlcm5hbCBDU1MgY2xhc3NlcyBmb3IgZWFjaCBlbGV2YXRpb24gdmFsdWUuIEVhY2ggQ1NTIGNsYXNzIGlzIGZvcm1hdHRlZCBhc1xuICAvLyBgbWF0LWVsZXZhdGlvbi16JHpWYWx1ZWAgd2hlcmUgYCR6VmFsdWVgIGNvcnJlc3BvbmRzIHRvIHRoZSB6LXNwYWNlIHRvIHdoaWNoIHRoZSBlbGVtZW50IGlzXG4gIC8vIGVsZXZhdGVkLlxuICBAZm9yICR6VmFsdWUgZnJvbSAwIHRocm91Z2ggMjQge1xuICAgIC4jeyRfbWF0LWVsZXZhdGlvbi1wcmVmaXh9I3skelZhbHVlfSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigkelZhbHVlLCAkdGhlbWUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdyYXBwZXIgZWxlbWVudCB0aGF0IHByb3ZpZGVzIHRoZSB0aGVtZSBiYWNrZ3JvdW5kIHdoZW4gdGhlIHVzZXIncyBjb250ZW50IGlzbid0XG4gIC8vIGluc2lkZSBvZiBhIGBtYXQtc2lkZW5hdi1jb250YWluZXJgLiBOb3RlIHRoYXQgd2UgbmVlZCB0byBleGNsdWRlIHRoZSBhbXBlcnNhbmRcbiAgLy8gc2VsZWN0b3IgaW4gY2FzZSB0aGUgbWl4aW4gaXMgaW5jbHVkZWQgYXQgdGhlIHRvcCBsZXZlbC5cbiAgLm1hdC1hcHAtYmFja2dyb3VuZCN7aWYoJiwgJywgJi5tYXQtYXBwLWJhY2tncm91bmQnLCAnJyl9IHtcbiAgICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAgICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLy8gTWFya2VyIHRoYXQgaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgdXNlciBoYXMgYWRkZWQgYSB0aGVtZSB0byB0aGVpciBwYWdlLlxuICBAYXQtcm9vdCB7XG4gICAgLm1hdC10aGVtZS1sb2FkZWQtbWFya2VyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtZGl2aWRlci10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWRpdmlkZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWRpdmlkZXItdmVydGljYWwge1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxufVxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4vLyBDcmVhdGUgYSB0aGVtZS5cbkBtaXhpbiBhbmd1bGFyLW1hdGVyaWFsLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtY29yZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtYXV0b2NvbXBsZXRlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1iYWRnZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtYm90dG9tLXNoZWV0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1idXR0b24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10b2dnbGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWNhcmQtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWNoZWNrYm94LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1jaGlwcy10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtdGFibGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWRhdGVwaWNrZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWRpYWxvZy10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZGl2aWRlci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZXhwYW5zaW9uLXBhbmVsLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1ncmlkLWxpc3QtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWljb24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWlucHV0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1saXN0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1tZW51LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1wYWdpbmF0b3ItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLWJhci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtcmFkaW8tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNlbGVjdC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtc2lkZW5hdi10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtc2xpZGUtdG9nZ2xlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1zbGlkZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXN0ZXBwZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNvcnQtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRhYnMtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRvb2xiYXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRvb2x0aXAtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRyZWUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNuYWNrLWJhci10aGVtZSgkdGhlbWUpO1xufVxuIiwiLyogVGhlbWUgZm9yIHRoZSByaXBwbGUgZWxlbWVudHMuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIG1hdGVyaWFsL25vLXByZWZpeGVzICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4ubWF0LWJhZGdlLWNvbnRlbnQge1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1iYWRnZS1zbWFsbCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBmb250LXNpemU6IDlweDtcbn1cblxuLm1hdC1iYWRnZS1sYXJnZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBmb250LXNpemU6IDI0cHg7XG59XG5cbi5tYXQtaDEsIC5tYXQtaGVhZGxpbmUsIC5tYXQtdHlwb2dyYXBoeSBoMSB7XG4gIGZvbnQ6IDQwMCAyNHB4LzMycHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDE2cHg7XG59XG5cbi5tYXQtaDIsIC5tYXQtdGl0bGUsIC5tYXQtdHlwb2dyYXBoeSBoMiB7XG4gIGZvbnQ6IDUwMCAyMHB4LzMycHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDE2cHg7XG59XG5cbi5tYXQtaDMsIC5tYXQtc3ViaGVhZGluZy0yLCAubWF0LXR5cG9ncmFwaHkgaDMge1xuICBmb250OiA0MDAgMTZweC8yOHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCAxNnB4O1xufVxuXG4ubWF0LWg0LCAubWF0LXN1YmhlYWRpbmctMSwgLm1hdC10eXBvZ3JhcGh5IGg0IHtcbiAgZm9udDogNDAwIDE1cHgvMjRweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgMTZweDtcbn1cblxuLm1hdC1oNSwgLm1hdC10eXBvZ3JhcGh5IGg1IHtcbiAgZm9udDogNDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDEycHg7XG59XG5cbi5tYXQtaDYsIC5tYXQtdHlwb2dyYXBoeSBoNiB7XG4gIGZvbnQ6IDQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCAxMnB4O1xufVxuXG4ubWF0LWJvZHktc3Ryb25nLCAubWF0LWJvZHktMiB7XG4gIGZvbnQ6IDUwMCAxNHB4LzI0cHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtYm9keSwgLm1hdC1ib2R5LTEsIC5tYXQtdHlwb2dyYXBoeSB7XG4gIGZvbnQ6IDQwMCAxNHB4LzIwcHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4ubWF0LWJvZHkgcCwgLm1hdC1ib2R5LTEgcCwgLm1hdC10eXBvZ3JhcGh5IHAge1xuICBtYXJnaW46IDAgMCAxMnB4O1xufVxuXG4ubWF0LXNtYWxsLCAubWF0LWNhcHRpb24ge1xuICBmb250OiA0MDAgMTJweC8yMHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWRpc3BsYXktNCwgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS00IHtcbiAgZm9udDogMzAwIDExMnB4LzExMnB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDVlbTtcbiAgbWFyZ2luOiAwIDAgNTZweDtcbn1cblxuLm1hdC1kaXNwbGF5LTMsIC5tYXQtdHlwb2dyYXBoeSAubWF0LWRpc3BsYXktMyB7XG4gIGZvbnQ6IDQwMCA1NnB4LzU2cHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICBtYXJnaW46IDAgMCA2NHB4O1xufVxuXG4ubWF0LWRpc3BsYXktMiwgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS0yIHtcbiAgZm9udDogNDAwIDQ1cHgvNDhweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwNWVtO1xuICBtYXJnaW46IDAgMCA2NHB4O1xufVxuXG4ubWF0LWRpc3BsYXktMSwgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS0xIHtcbiAgZm9udDogNDAwIDM0cHgvNDBweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgNjRweDtcbn1cblxuLm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyIHtcbiAgZm9udDogNDAwIDE0cHgvMjBweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1idXR0b24sIC5tYXQtcmFpc2VkLWJ1dHRvbiwgLm1hdC1pY29uLWJ1dHRvbiwgLm1hdC1zdHJva2VkLWJ1dHRvbixcbi5tYXQtZmxhdC1idXR0b24sIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1jYXJkIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWNhcmQtdGl0bGUge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtY2FyZC1oZWFkZXIgLm1hdC1jYXJkLXRpdGxlIHtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuXG4ubWF0LWNhcmQtc3VidGl0bGUsXG4ubWF0LWNhcmQtY29udGVudCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1hdC1jaGVja2JveCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1jaGVja2JveC1sYXlvdXQgLm1hdC1jaGVja2JveC1sYWJlbCB7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuXG4ubWF0LWNoaXAge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4ubWF0LWNoaXAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb24sXG4ubWF0LWNoaXAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLm1hdC10YWJsZSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1oZWFkZXItY2VsbCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1jZWxsLCAubWF0LWZvb3Rlci1jZWxsIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4ubWF0LWNhbGVuZGFyIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWNhbGVuZGFyLWJvZHkge1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCxcbi5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIgdGgge1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5tYXQtZGlhbG9nLXRpdGxlIHtcbiAgZm9udDogNTAwIDIwcHgvMzJweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnQge1xuICBmb250OiA0MDAgMTRweC8yMHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWZvcm0tZmllbGQge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjEyNTtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAxLjM0Mzc1ZW07XG59XG5cbi5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLFxuLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24ge1xuICBmb250LXNpemU6IDE1MCU7XG4gIGxpbmUtaGVpZ2h0OiAxLjEyNTtcbn1cbi5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbixcbi5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbiB7XG4gIGhlaWdodDogMS41ZW07XG4gIHdpZHRoOiAxLjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb24sXG4ubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29uIHtcbiAgaGVpZ2h0OiAxLjEyNWVtO1xuICBsaW5lLWhlaWdodDogMS4xMjU7XG59XG5cbi5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDAuNWVtIDA7XG4gIGJvcmRlci10b3A6IDAuODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzMzMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM0MzMzMzMlO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gIHRvcDogLTAuODQzNzVlbTtcbiAgcGFkZGluZy10b3A6IDAuODQzNzVlbTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAxLjM0Mzc1ZW07XG59XG5cbi5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBib3R0b206IDEuMzQzNzVlbTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIG1hcmdpbi10b3A6IDAuNjY2NjY2NjY2N2VtO1xuICB0b3A6IGNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDEuMjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBwYWRkaW5nOiAwLjQzNzVlbSAwO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzMzMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM0MzMzMzMlO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzNTMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuMjgxMjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYm90dG9tOiAxLjI1ZW07XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgbWFyZ2luLXRvcDogMC41NDE2NjY2NjY3ZW07XG4gIHRvcDogY2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pO1xufVxuXG5AbWVkaWEgcHJpbnQge1xuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSk7XG4gIH1cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbDotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSk7XG4gIH1cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpO1xuICB9XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDAuMjVlbSAwIDAuNzVlbSAwO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuMDkzNzVlbTtcbiAgbWFyZ2luLXRvcDogLTAuNWVtO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzMzMzMzMzMlO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM0MzMzMzMlO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDFlbSAwIDFlbSAwO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuODQzNzVlbTtcbiAgbWFyZ2luLXRvcDogLTAuMjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzMzMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzNDMzMzMzJTtcbn1cblxuLm1hdC1ncmlkLXRpbGUtaGVhZGVyLFxuLm1hdC1ncmlkLXRpbGUtZm9vdGVyIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLm1hdC1ncmlkLXRpbGUtaGVhZGVyIC5tYXQtbGluZSxcbi5tYXQtZ3JpZC10aWxlLWZvb3RlciAubWF0LWxpbmUge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubWF0LWdyaWQtdGlsZS1oZWFkZXIgLm1hdC1saW5lOm50aC1jaGlsZChuKzIpLFxuLm1hdC1ncmlkLXRpbGUtZm9vdGVyIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICBtYXJnaW4tdG9wOiAtMC4wNjI1ZW07XG59XG5cbi5tYXQtbWVudS1pdGVtIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5tYXQtcGFnaW5hdG9yLFxuLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLm1hdC1yYWRpby1idXR0b24ge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtc2VsZWN0IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgaGVpZ2h0OiAxLjEyNWVtO1xufVxuXG4ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtc3RlcHBlci12ZXJ0aWNhbCwgLm1hdC1zdGVwcGVyLWhvcml6b250YWwge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtc3RlcC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvciB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi5tYXQtc3RlcC1sYWJlbC1lcnJvciB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWF0LXRhYi1ncm91cCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC10b29sYmFyLFxuLm1hdC10b29sYmFyIGgxLFxuLm1hdC10b29sYmFyIGgyLFxuLm1hdC10b29sYmFyIGgzLFxuLm1hdC10b29sYmFyIGg0LFxuLm1hdC10b29sYmFyIGg1LFxuLm1hdC10b29sYmFyIGg2IHtcbiAgZm9udDogNTAwIDIwcHgvMzJweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwO1xufVxuXG4ubWF0LXRvb2x0aXAge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgcGFkZGluZy10b3A6IDZweDtcbiAgcGFkZGluZy1ib3R0b206IDZweDtcbn1cblxuLm1hdC10b29sdGlwLWhhbmRzZXQge1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmctdG9wOiA4cHg7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG59XG5cbi5tYXQtbGlzdC1pdGVtIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWxpc3Qtb3B0aW9uIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24ge1xuICBmb250LXNpemU6IDE2cHg7XG59XG4ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLm1hdC1saXN0LWJhc2UgLm1hdC1zdWJoZWFkZXIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1pdGVtIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3QtaXRlbSAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMikge1xuICBmb250LXNpemU6IDEycHg7XG59XG4ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LW9wdGlvbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LXN1YmhlYWRlciB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWF0LW9wdGlvbiB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4ubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgZm9udDogNTAwIDE0cHgvMjRweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1zaW1wbGUtc25hY2tiYXIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtdHJlZSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC10cmVlLW5vZGUsXG4ubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5tYXQtcmlwcGxlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4ubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5LCB0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmNkay12aXN1YWxseS1oaWRkZW4ge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgb3V0bGluZTogMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi5jZGstb3ZlcmxheS1jb250YWluZXIsIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jZGstb3ZlcmxheS1jb250YWluZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDEwMDA7XG59XG4uY2RrLW92ZXJsYXktY29udGFpbmVyOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDAwO1xufVxuXG4uY2RrLW92ZXJsYXktcGFuZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbn1cblxuLmNkay1vdmVybGF5LWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO1xuICBvcGFjaXR5OiAwO1xufVxuLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICBvcGFjaXR5OiAxO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgfVxufVxuXG4uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zMik7XG59XG5cbi5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICBvcGFjaXR5OiAwO1xufVxuXG4uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAwMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLXdpZHRoOiAxcHg7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbn1cblxuLmNkay1nbG9iYWwtc2Nyb2xsYmxvY2sge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG5cbkBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQge1xuICAvKiEqL1xufVxuQGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQge1xuICAvKiEqL1xufVxuLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxsIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0O1xufVxuXG4uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCkge1xuICBhbmltYXRpb24tbmFtZTogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kO1xufVxuXG50ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUge1xuICByZXNpemU6IG5vbmU7XG59XG5cbnRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmcge1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveCAhaW1wb3J0YW50O1xufVxuXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW9wdGlvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtb3B0aW9uOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LW9wdGlvbjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW9wdGlvbi5tYXQtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1vcHRpb24ubWF0LW9wdGlvbi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtb3B0Z3JvdXAtZGlzYWJsZWQgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHNldWRvLWNoZWNrYm94IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3g6OmFmdGVyIHtcbiAgY29sb3I6ICNmYWZhZmE7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBjb2xvcjogI2IwYjBiMDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiAjYjBiMGIwO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXowIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejMge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXo0IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDVweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16NiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16NyB7XG4gIGJveC1zaGFkb3c6IDBweCA0cHggNXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggN3B4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAycHggMTZweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16OCB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16OSB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOXB4IDEycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTZweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTAge1xuICBib3gtc2hhZG93OiAwcHggNnB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEwcHggMTRweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDRweCAxOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxMSB7XG4gIGJveC1zaGFkb3c6IDBweCA2cHggN3B4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTFweCAxNXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDIwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejEyIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTMge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEzcHggMTlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxNCB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOXB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTRweCAyMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejE1IHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCA5cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNXB4IDIycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMjhweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTYge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTcge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxN3B4IDI2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTgge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOHB4IDI4cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTkge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDEycHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOXB4IDI5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MjAge1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjBweCAzMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDM4cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejIxIHtcbiAgYm94LXNoYWRvdzogMHB4IDEwcHggMTNweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIxcHggMzNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MHB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoyMiB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDE0cHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMnB4IDM1cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDJweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MjMge1xuICBib3gtc2hhZG93OiAwcHggMTFweCAxNHB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjNweCAzNnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejI0IHtcbiAgYm94LXNoYWRvdzogMHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYXBwLWJhY2tncm91bmQsIC5zdGFuZGFyZC10aGVtZS5tYXQtYXBwLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtdGhlbWUtbG9hZGVkLW1hcmtlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zdGFuZGFyZC10aGVtZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LWFjdGl2ZSk6bm90KDpob3Zlcik6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZDogIzYwN2Q4Yjtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBvdXRsaW5lOiBzb2xpZCAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtYWNjZW50IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICM0NDhhZmY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXdhcm4gLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1oaWRkZW4gLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWRpc2FibGVkIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICNiOWI5Yjk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0O1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIHtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLThweDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC04cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNnB4O1xufVxuW2Rpcj1ydGxdIC5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTZweDtcbn1cbltkaXI9cnRsXSAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtOHB4O1xufVxuW2Rpcj1ydGxdIC5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC04cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC04cHg7XG59XG5bZGlyPXJ0bF0gLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtOHB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB0b3A6IC0xMXB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC0xMXB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0yMnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTIycHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTExcHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMTFweDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWxhcmdlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLTE0cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVsb3cgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYm90dG9tOiAtMTRweDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTI4cHg7XG59XG5bZGlyPXJ0bF0gLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTI4cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0yOHB4O1xufVxuW2Rpcj1ydGxdIC5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTI4cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNHB4O1xufVxuW2Rpcj1ydGxdIC5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNHB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTRweDtcbn1cbltkaXI9cnRsXSAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNHB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24sIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbiB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnksIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24ubWF0LWFjY2VudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24ubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b25bZGlzYWJsZWRdIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBvcGFjaXR5OiAwLjE7XG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZDogYmxhY2s7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2Rpc2FibGVkXSkge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnksIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC1wcmltYXJ5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWZhYi5tYXQtYWNjZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhaXNlZC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF06bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWI6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiOm5vdChbZGlzYWJsZWRdKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiOm5vdChbZGlzYWJsZWRdKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEycHggMTdweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiW2Rpc2FibGVkXTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWJbZGlzYWJsZWRdOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSBbZGlyPXJ0bF0gLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiZGJkYmQ7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGJvcmRlcjogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYXJkIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FyZDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYXJkLm1hdC1jYXJkLWZsYXQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYXJkLXN1YnRpdGxlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gIGZpbGw6ICNmYWZhZmE7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gIHN0cm9rZTogI2ZhZmFmYSAhaW1wb3J0YW50O1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHtcbiAgLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGgge1xuICAgIHN0cm9rZTogIzAwMCAhaW1wb3J0YW50O1xuICB9XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IwYjBiMDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkOm5vdCgubWF0LWNoZWNrYm94LWNoZWNrZWQpIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6ICNiMGIwYjA7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveC1kaXNhYmxlZCAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgb3BhY2l0eTogMC40O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDpub3QoLm1hdC1jaGlwLWRpc2FibGVkKTphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDpub3QoLm1hdC1jaGlwLWRpc2FibGVkKSAubWF0LWNoaXAtcmVtb3ZlOmhvdmVyIHtcbiAgb3BhY2l0eTogMC41NDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjQ7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOjphZnRlciB7XG4gIGJhY2tncm91bmQ6IGJsYWNrO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgb3BhY2l0eTogMC40O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXdhcm4gLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgb3BhY2l0eTogMC40O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFibGUge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYmxlIHRoZWFkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWJsZSB0Ym9keSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFibGUgdGZvb3QsXG4uc3RhbmRhcmQtdGhlbWUgbWF0LWhlYWRlci1yb3csIC5zdGFuZGFyZC10aGVtZSBtYXQtcm93LCAuc3RhbmRhcmQtdGhlbWUgbWF0LWZvb3Rlci1yb3csXG4uc3RhbmRhcmQtdGhlbWUgW21hdC1oZWFkZXItcm93XSwgLnN0YW5kYXJkLXRoZW1lIFttYXQtcm93XSwgLnN0YW5kYXJkLXRoZW1lIFttYXQtZm9vdGVyLXJvd10sXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWJsZS1zdGlja3kge1xuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xufVxuLnN0YW5kYXJkLXRoZW1lIG1hdC1yb3csIC5zdGFuZGFyZC10aGVtZSBtYXQtaGVhZGVyLXJvdywgLnN0YW5kYXJkLXRoZW1lIG1hdC1mb290ZXItcm93LFxuLnN0YW5kYXJkLXRoZW1lIHRoLm1hdC1oZWFkZXItY2VsbCwgLnN0YW5kYXJkLXRoZW1lIHRkLm1hdC1jZWxsLCAuc3RhbmRhcmQtdGhlbWUgdGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWhlYWRlci1jZWxsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jZWxsLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mb290ZXItY2VsbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItYXJyb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1uZXh0LWJ1dHRvbixcbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLXByZXZpb3VzLWJ1dHRvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXItZGl2aWRlcjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXIgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSxcbi5zdGFuZGFyZC10aGVtZSAuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS10b2RheTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xuICBjb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg5NiwgMTI1LCAxMzksIDAuNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDhhZmY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNjgsIDEzOCwgMjU1LCAwLjQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0NCwgNjcsIDU0LCAwLjQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC10b3VjaCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLm1hdC1hY2NlbnQge1xuICBjb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGl2aWRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kaXZpZGVyLXZlcnRpY2FsIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWFjdGlvbi1yb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5zdGFuZGFyZC10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCk6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICB9XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLWluZGljYXRvcjo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaGludCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKSAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKS5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LWFjY2VudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVycm9yIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWhpbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC40MikgMCUsIHJnYmEoMCwgMCwgMCwgMC40MikgMzMlLCB0cmFuc3BhcmVudCAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogNHB4IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNDIpIDAlLCByZ2JhKDAsIDAsIDAsIDAuNDIpIDMzJSwgdHJhbnNwYXJlbnQgMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDRweCAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA2KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWljb24ubWF0LXByaW1hcnkge1xuICBjb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWljb24ubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6ZGlzYWJsZWQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtaW5wdXQtZWxlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWlucHV0LWVsZW1lbnQge1xuICBjYXJldC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWxpc3QtYmFzZSAubWF0LXN1YmhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbGlzdC1pdGVtLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWxpc3Qtb3B0aW9uOmhvdmVyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1saXN0LW9wdGlvbjpmb2N1cyxcbi5zdGFuZGFyZC10aGVtZSAubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06Zm9jdXMsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbTpob3Zlcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtaXRlbSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF06OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1tZW51LWl0ZW0gLm1hdC1pY29uLW5vLWNvbG9yLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWVudS1pdGVtLXN1Ym1lbnUtdHJpZ2dlcjo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtaXRlbTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1tZW51LWl0ZW0uY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoW2Rpc2FibGVkXSksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1tZW51LWl0ZW0uY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWVudS1pdGVtLWhpZ2hsaWdodGVkOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wYWdpbmF0b3Ige1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvci1wYWdlLXNpemUgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQge1xuICBib3JkZXItdG9wOiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvci1maXJzdCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZGVjcmVtZW50LFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1maXJzdCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjY2ZkOGRjO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZmQ4ZGM7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gIGZpbGw6ICM4MmIxZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODJiMWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjZmZjZGQyO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmNkZDI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGUsIC5zdGFuZGFyZC10aGVtZSAubWF0LXNwaW5uZXIgY2lyY2xlIHtcbiAgc3Ryb2tlOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSB7XG4gIHN0cm9rZTogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXdhcm4gY2lyY2xlLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zcGlubmVyLm1hdC13YXJuIGNpcmNsZSB7XG4gIHN0cm9rZTogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeTphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudC5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50OmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2Fybi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybjphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zZWxlY3QtdmFsdWUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNlbGVjdC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNlbGVjdC1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2VsZWN0LXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zZWxlY3QtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtcHJpbWFyeSAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtYWNjZW50IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtaW52YWxpZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZCAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXItY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXIubWF0LWRyYXdlci1wdXNoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXI6bm90KC5tYXQtZHJhd2VyLXNpZGUpIHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXItc2lkZSB7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXItc2lkZS5tYXQtZHJhd2VyLWVuZCB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLnN0YW5kYXJkLXRoZW1lIFtkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRlIHtcbiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgW2Rpcj1ydGxdIC5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmQge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRyYXdlci1iYWNrZHJvcC5tYXQtZHJhd2VyLXNob3duIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDY4LCAxMzgsIDI1NSwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoOTYsIDEyNSwgMTM5LCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDQsIDY3LCA1NCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGU6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWIsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItZm9jdXMtcmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNjgsIDEzOCwgMjU1LCAwLjIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGVyOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4uc3RhbmRhcmQtdGhlbWUgLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItZGlzYWJsZWQ6aG92ZXIgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWIsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZy5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpOmhvdmVyIC5tYXQtc2xpZGVyLXRodW1iLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKS5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpOmhvdmVyLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpLmNkay1mb2N1c2VkLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItaGFzLXRpY2tzIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC43KSwgcmdiYSgwLCAwLCAwLCAwLjcpIDJweCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LXJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMC4wMDAxZGVnLCByZ2JhKDAsIDAsIDAsIDAuNyksIHJnYmEoMCwgMCwgMCwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDAsIDAsIDAsIDAuNyksIHJnYmEoMCwgMCwgMCwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXAtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlci5jZGstcHJvZ3JhbS1mb2N1c2VkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXAtaGVhZGVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtb3B0aW9uYWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVycm9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWFjdGl2ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwcGVyLWhvcml6b250YWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXBwZXItdmVydGljYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXBwZXItdmVydGljYWwtbGluZTo6YmVmb3JlIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjphZnRlcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbC1saW5lIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNvcnQtaGVhZGVyLWFycm93IHtcbiAgY29sb3I6ICM3NTc1NzU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC10YWItbmF2LWJhcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC10YWItaGVhZGVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbGFiZWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cFtjbGFzcyo9bWF0LWJhY2tncm91bmQtXSAubWF0LXRhYi1oZWFkZXIsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhcltjbGFzcyo9bWF0LWJhY2tncm91bmQtXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDcsIDIxNiwgMjIwLCAwLjMpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtaW5rLWJhciwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtaW5rLWJhciwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMzAsIDE3NywgMjU1LCAwLjMpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC1pbmstYmFyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1pbmstYmFyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50Lm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjA1LCAyMTAsIDAuMyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC1pbmstYmFyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1pbmstYmFyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwNywgMjE2LCAyMjAsIDAuMyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmtzLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGlua3MsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmssIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMzAsIDE3NywgMjU1LCAwLjMpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGlua3MsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rcywgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluaywgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMDUsIDIxMCwgMC4zKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlciwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGlua3MsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlciwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rcywgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluaywgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10b29sYmFyIHtcbiAgYmFja2dyb3VuZDogd2hpdGVzbW9rZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10b29sYmFyLm1hdC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzYwN2Q4YjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdG9vbGJhci5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZDogIzQ0OGFmZjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdG9vbGJhci5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQ6ICNmNDQzMzY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtdmFsdWUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LWFycm93LFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2x0aXAge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDk3LCA5NywgOTcsIDAuOSk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10cmVlIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10cmVlLW5vZGUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbmFjay1iYXItY29udGFpbmVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgYmFja2dyb3VuZDogIzMyMzIzMjtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIGgxIHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG5cbi5ncmVlbi10aGVtZSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtb3B0aW9uIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtb3B0aW9uOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksIC5ncmVlbi10aGVtZSAubWF0LW9wdGlvbjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW9wdGlvbi5tYXQtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtb3B0aW9uLm1hdC1vcHRpb24tZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1vcHRncm91cC1kaXNhYmxlZCAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3g6OmFmdGVyIHtcbiAgY29sb3I6ICMzMDMwMzA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBjb2xvcjogIzY4Njg2ODtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5ncmVlbi10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLFxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uZ3JlZW4tdGhlbWUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCxcbi5ncmVlbi10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiAjNjg2ODY4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXowIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejMge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXo0IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDVweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16NiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16NyB7XG4gIGJveC1zaGFkb3c6IDBweCA0cHggNXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggN3B4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAycHggMTZweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16OCB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16OSB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOXB4IDEycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTZweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTAge1xuICBib3gtc2hhZG93OiAwcHggNnB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEwcHggMTRweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDRweCAxOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxMSB7XG4gIGJveC1zaGFkb3c6IDBweCA2cHggN3B4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTFweCAxNXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDIwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejEyIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTMge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEzcHggMTlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxNCB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOXB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTRweCAyMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejE1IHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCA5cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNXB4IDIycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMjhweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTYge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTcge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxN3B4IDI2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTgge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOHB4IDI4cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTkge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDEycHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOXB4IDI5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MjAge1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjBweCAzMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDM4cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejIxIHtcbiAgYm94LXNoYWRvdzogMHB4IDEwcHggMTNweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIxcHggMzNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MHB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoyMiB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDE0cHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMnB4IDM1cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDJweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MjMge1xuICBib3gtc2hhZG93OiAwcHggMTFweCAxNHB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjNweCAzNnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejI0IHtcbiAgYm94LXNoYWRvdzogMHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYXBwLWJhY2tncm91bmQsIC5ncmVlbi10aGVtZS5tYXQtYXBwLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzAzMDMwO1xuICBjb2xvcjogd2hpdGU7XG59XG4ubWF0LXRoZW1lLWxvYWRlZC1tYXJrZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZ3JlZW4tdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtYWN0aXZlKTpub3QoOmhvdmVyKSB7XG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LWFjdGl2ZSk6bm90KDpob3Zlcik6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYmFja2dyb3VuZDogIzhiYzM0YTtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBvdXRsaW5lOiBzb2xpZCAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtYWNjZW50IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICM0Y2FmNTA7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utd2FybiAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYmFja2dyb3VuZDogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtaGlkZGVuIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiAjNmU2ZTZlO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0O1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIHtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLThweDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC04cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNnB4O1xufVxuW2Rpcj1ydGxdIC5ncmVlbi10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTZweDtcbn1cbltkaXI9cnRsXSAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtOHB4O1xufVxuW2Rpcj1ydGxdIC5ncmVlbi10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC04cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC04cHg7XG59XG5bZGlyPXJ0bF0gLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtOHB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB0b3A6IC0xMXB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC0xMXB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0yMnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTIycHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTExcHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMTFweDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWxhcmdlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLTE0cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVsb3cgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYm90dG9tOiAtMTRweDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTI4cHg7XG59XG5bZGlyPXJ0bF0gLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTI4cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0yOHB4O1xufVxuW2Rpcj1ydGxdIC5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTI4cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNHB4O1xufVxuW2Rpcj1ydGxdIC5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNHB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTRweDtcbn1cbltkaXI9cnRsXSAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNHB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24sIC5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbiB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24ubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuLCAuZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4ge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5ncmVlbi10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uW2Rpc2FibGVkXSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIG9wYWNpdHk6IDAuMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIsIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeSwgLmdyZWVuLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQsIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtZmFiLm1hdC1hY2NlbnQsIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0ge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeSwgLmdyZWVuLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiwgLmdyZWVuLXRoZW1lIC5tYXQtZmFiLm1hdC13YXJuLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtZmFiLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b246bm90KFtkaXNhYmxlZF0pOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmFiOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZhYjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZhYltkaXNhYmxlZF06bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiW2Rpc2FibGVkXTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZSxcbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSBbZGlyPXJ0bF0gLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMTIxO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyNDI0Mjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLFxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgYm9yZGVyOiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNhcmQge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYXJkOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNhcmQubWF0LWNhcmQtZmxhdDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNhcmQtc3VidGl0bGUge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gIGZpbGw6ICMzMDMwMzA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gIHN0cm9rZTogIzMwMzAzMCAhaW1wb3J0YW50O1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHtcbiAgLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGgge1xuICAgIHN0cm9rZTogIzAwMCAhaW1wb3J0YW50O1xuICB9XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzAzMDMwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwgLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY4Njg2ODtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkOm5vdCgubWF0LWNoZWNrYm94LWNoZWNrZWQpIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6ICM2ODY4Njg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1kaXNhYmxlZCAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAuZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3ggLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCxcbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LFxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjE2MTYxO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXA6bm90KC5tYXQtY2hpcC1kaXNhYmxlZCk6YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAzcHggNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXA6bm90KC5tYXQtY2hpcC1kaXNhYmxlZCkgLm1hdC1jaGlwLXJlbW92ZTpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNTQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC40O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBvcGFjaXR5OiAwLjQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgb3BhY2l0eTogMC40O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBvcGFjaXR5OiAwLjQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYmxlIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYmxlIHRoZWFkLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWJsZSB0Ym9keSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFibGUgdGZvb3QsXG4uZ3JlZW4tdGhlbWUgbWF0LWhlYWRlci1yb3csIC5ncmVlbi10aGVtZSBtYXQtcm93LCAuZ3JlZW4tdGhlbWUgbWF0LWZvb3Rlci1yb3csXG4uZ3JlZW4tdGhlbWUgW21hdC1oZWFkZXItcm93XSwgLmdyZWVuLXRoZW1lIFttYXQtcm93XSwgLmdyZWVuLXRoZW1lIFttYXQtZm9vdGVyLXJvd10sXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWJsZS1zdGlja3kge1xuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xufVxuLmdyZWVuLXRoZW1lIG1hdC1yb3csIC5ncmVlbi10aGVtZSBtYXQtaGVhZGVyLXJvdywgLmdyZWVuLXRoZW1lIG1hdC1mb290ZXItcm93LFxuLmdyZWVuLXRoZW1lIHRoLm1hdC1oZWFkZXItY2VsbCwgLmdyZWVuLXRoZW1lIHRkLm1hdC1jZWxsLCAuZ3JlZW4tdGhlbWUgdGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWhlYWRlci1jZWxsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNlbGwsIC5ncmVlbi10aGVtZSAubWF0LWZvb3Rlci1jZWxsIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2FsZW5kYXItYXJyb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLFxuLmdyZWVuLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItbmV4dC1idXR0b24sXG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1wcmV2aW91cy1idXR0b24ge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyLWRpdmlkZXI6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXIgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpLFxuLmdyZWVuLXRoZW1lIC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSxcbi5ncmVlbi10aGVtZSAuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMzksIDE5NSwgNzQsIDAuNCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDc2LCAxNzUsIDgwLCAwLjQpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3NiwgMTc1LCA4MCwgMC40KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC10b3VjaCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gIGNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLm1hdC1hY2NlbnQge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtd2FybiB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZDogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGl2aWRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kaXZpZGVyLXZlcnRpY2FsIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWFjdGlvbi1yb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLCAuZ3JlZW4tdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSwgLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5ncmVlbi10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCk6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICM0MjQyNDI7XG4gIH1cbn1cbi5ncmVlbi10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uLFxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLWluZGljYXRvcjo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUsXG4uZ3JlZW4tdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWhpbnQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC1hY2NlbnQge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC13YXJuIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtYWNjZW50LFxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXJyb3Ige1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1oaW50IHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMzMlLCB0cmFuc3BhcmVudCAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogNHB4IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDMzJSwgdHJhbnNwYXJlbnQgMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDRweCAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi5tYXQtcHJpbWFyeSB7XG4gIGNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi5tYXQtYWNjZW50IHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1pY29uLm1hdC13YXJuIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1pbnB1dC1lbGVtZW50OmRpc2FibGVkLFxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQgb3B0aW9uIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1pbnB1dC1lbGVtZW50IG9wdGlvbjpkaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtd2FybiAubWF0LWlucHV0LWVsZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW0ge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbiB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWxpc3QtYmFzZSAubWF0LXN1YmhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1saXN0LWl0ZW0tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbi5ncmVlbi10aGVtZSAubWF0LWxpc3Qtb3B0aW9uOmhvdmVyLCAuZ3JlZW4tdGhlbWUgLm1hdC1saXN0LW9wdGlvbjpmb2N1cyxcbi5ncmVlbi10aGVtZSAubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLFxuLmdyZWVuLXRoZW1lIC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06Zm9jdXMsXG4uZ3JlZW4tdGhlbWUgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbTpob3Zlcixcbi5ncmVlbi10aGVtZSAubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW1lbnUtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtbWVudS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtbWVudS1pdGVtIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF06OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW1lbnUtaXRlbSAubWF0LWljb24tbm8tY29sb3IsXG4uZ3JlZW4tdGhlbWUgLm1hdC1tZW51LWl0ZW0tc3VibWVudS10cmlnZ2VyOjphZnRlciB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW1lbnUtaXRlbTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4uZ3JlZW4tdGhlbWUgLm1hdC1tZW51LWl0ZW0uY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoW2Rpc2FibGVkXSksXG4uZ3JlZW4tdGhlbWUgLm1hdC1tZW51LWl0ZW0uY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLFxuLmdyZWVuLXRoZW1lIC5tYXQtbWVudS1pdGVtLWhpZ2hsaWdodGVkOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wYWdpbmF0b3Ige1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcGFnaW5hdG9yLFxuLmdyZWVuLXRoZW1lIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1wYWdpbmF0b3ItaW5jcmVtZW50IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHdoaXRlO1xuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXBhZ2luYXRvci1maXJzdCxcbi5ncmVlbi10aGVtZSAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxcbi5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZmlyc3QsXG4uZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItbGFzdCB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjZGNlZGM4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkY2VkYzg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gIGZpbGw6ICNjOGU2Yzk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzhlNmM5O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjYzhlNmM5O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjOGU2Yzk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGUsIC5ncmVlbi10aGVtZSAubWF0LXNwaW5uZXIgY2lyY2xlIHtcbiAgc3Ryb2tlOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSwgLmdyZWVuLXRoZW1lIC5tYXQtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSB7XG4gIHN0cm9rZTogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXdhcm4gY2lyY2xlLCAuZ3JlZW4tdGhlbWUgLm1hdC1zcGlubmVyLm1hdC13YXJuIGNpcmNsZSB7XG4gIHN0cm9rZTogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5OmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsXG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudCAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQ6YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4ubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuOmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUsXG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNlbGVjdC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtdmFsdWUge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNlbGVjdC1wYW5lbCB7XG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zZWxlY3QtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNlbGVjdC1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1wcmltYXJ5IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LXdhcm4gLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1pbnZhbGlkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZHJhd2VyLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMDMwMzA7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRyYXdlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MjQyNDI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRyYXdlci5tYXQtZHJhd2VyLXB1c2gge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZHJhd2VyOm5vdCgubWF0LWRyYXdlci1zaWRlKSB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZHJhd2VyLXNpZGUge1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmQge1xuICBib3JkZXItbGVmdDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSBbZGlyPXJ0bF0gLm1hdC1kcmF3ZXItc2lkZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLmdyZWVuLXRoZW1lIFtkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRlLm1hdC1kcmF3ZXItZW5kIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kcmF3ZXItYmFja2Ryb3AubWF0LWRyYXdlci1zaG93biB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTg5LCAxODksIDE4OSwgMC42KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3NiwgMTc1LCA4MCwgMC41NCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTM5LCAxOTUsIDc0LCAwLjU0KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3NiwgMTc1LCA4MCwgMC41NCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGU6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JkYmRiZDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4uZ3JlZW4tdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXdhcm4gLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5ncmVlbi10aGVtZSAubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDc2LCAxNzUsIDgwLCAwLjIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4uZ3JlZW4tdGhlbWUgLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCxcbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLWRpc2FibGVkOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZy5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyk6aG92ZXIgLm1hdC1zbGlkZXItdGh1bWIsIC5ncmVlbi10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKTpob3Zlci5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iLCAuZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKS5jZGstZm9jdXNlZC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItaGFzLXRpY2tzIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDJweCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LXJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMC4wMDAxZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXN0ZXAtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlci5jZGstcHJvZ3JhbS1mb2N1c2VkLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5ncmVlbi10aGVtZSAubWF0LXN0ZXAtaGVhZGVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwsXG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtb3B0aW9uYWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YmMzNGE7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZXJyb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtYWN0aXZlIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwcGVyLWhvcml6b250YWwsIC5ncmVlbi10aGVtZSAubWF0LXN0ZXBwZXItdmVydGljYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmUge1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmJlZm9yZSxcbi5ncmVlbi10aGVtZSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmFmdGVyLFxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmUge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc29ydC1oZWFkZXItYXJyb3cge1xuICBjb2xvcjogI2M2YzZjNjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciAubWF0LXRhYi1uYXYtYmFyLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciAubWF0LXRhYi1oZWFkZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1sYWJlbCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWxpbmsge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwW2NsYXNzKj1tYXQtYmFja2dyb3VuZC1dIC5tYXQtdGFiLWhlYWRlcixcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyW2NsYXNzKj1tYXQtYmFja2dyb3VuZC1dIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyMCwgMjM3LCAyMDAsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC1pbmstYmFyLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC1pbmstYmFyLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjAwLCAyMzAsIDIwMSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtaW5rLWJhciwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtaW5rLWJhciwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwMCwgMjMwLCAyMDEsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC1pbmstYmFyLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1pbmstYmFyLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjIwLCAyMzcsIDIwMCwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlciwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGlua3MsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlciwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rcywgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluaywgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDAsIDIzMCwgMjAxLCAwLjMpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGlua3MsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rcywgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluaywgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwMCwgMjMwLCAyMDEsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXIsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmtzLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXIsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGlua3MsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmssIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIge1xuICBiYWNrZ3JvdW5kOiAjMjEyMTIxO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10b29sYmFyLm1hdC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzhiYzM0YTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10b29sYmFyLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kOiAjNGNhZjUwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIubWF0LXdhcm4ge1xuICBiYWNrZ3JvdW5kOiAjNGNhZjUwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSxcbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtdmFsdWUsXG4uZ3JlZW4tdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LWFycm93LFxuLmdyZWVuLXRoZW1lIC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2x0aXAge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDk3LCA5NywgOTcsIDAuOSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10cmVlIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRyZWUtbm9kZSxcbi5ncmVlbi10aGVtZSAubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbmFjay1iYXItY29udGFpbmVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5ncmVlbi10aGVtZSBoMSB7XG4gIGNvbG9yOiAjOGJjMzRhO1xufVxuXG4vKiBZb3UgY2FuIGFkZCBnbG9iYWwgc3R5bGVzIHRvIHRoaXMgZmlsZSwgYW5kIGFsc28gaW1wb3J0IG90aGVyIHN0eWxlIGZpbGVzICovXG5odG1sLCBib2R5IHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5mbGV4LXNwYWNlciB7XG4gIGZsZXg6IDEgMSBhdXRvO1xufSIsIlxuLy8gQ3VzdG9tIFRoZW1pbmcgZm9yIEFuZ3VsYXIgTWF0ZXJpYWxcbi8vIEZvciBtb3JlIGluZm9ybWF0aW9uOiBodHRwczovL21hdGVyaWFsLmFuZ3VsYXIuaW8vZ3VpZGUvdGhlbWluZ1xuQGltcG9ydCAnfkBhbmd1bGFyL21hdGVyaWFsL3RoZW1pbmcnO1xuLy8gUGx1cyBpbXBvcnRzIGZvciBvdGhlciBjb21wb25lbnRzIGluIHlvdXIgYXBwLlxuXG4vLyBJbmNsdWRlIHRoZSBjb21tb24gc3R5bGVzIGZvciBBbmd1bGFyIE1hdGVyaWFsLiBXZSBpbmNsdWRlIHRoaXMgaGVyZSBzbyB0aGF0IHlvdSBvbmx5XG4vLyBoYXZlIHRvIGxvYWQgYSBzaW5nbGUgY3NzIGZpbGUgZm9yIEFuZ3VsYXIgTWF0ZXJpYWwgaW4geW91ciBhcHAuXG4vLyBCZSBzdXJlIHRoYXQgeW91IG9ubHkgZXZlciBpbmNsdWRlIHRoaXMgbWl4aW4gb25jZSFcbkBpbmNsdWRlIG1hdC1jb3JlKCk7XG5cbi8vIGltcG9ydGluZyB0aGUgdGhlbWVzIGZyb20gb3VyIHRoZW1lIGZpbGVzXG5AaW1wb3J0IFwiLi90aGVtZXMvc3RhbmRhcmQtdGhlbWVcIjtcbkBpbXBvcnQgXCIuL3RoZW1lcy9ncmVlbi10aGVtZVwiO1xuLy8gSW5jbHVkZSB0aGVtZSBzdHlsZXMgZm9yIGNvcmUgYW5kIGVhY2ggY29tcG9uZW50IHVzZWQgaW4geW91ciBhcHAuXG4vLyBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGltcG9ydCBhbmQgQGluY2x1ZGUgdGhlIHRoZW1lIG1peGlucyBmb3IgZWFjaCBjb21wb25lbnRcbi8vIHRoYXQgeW91IGFyZSB1c2luZy5cblxuLy8gZm9yIG93biBjb21wb25lbnRzLCBpLmUuIG5vbiBtYXRlcmlhbCBjb21wb25lbnQgd2UgbGlrZSB0byB1c2UgdGhlIHNhbWUgc3R5bGUvcGFsZXR0ZXNcblxuXG4uc3RhbmRhcmQtdGhlbWUge1xuICBAaW5jbHVkZSBhbmd1bGFyLW1hdGVyaWFsLXRoZW1lKCRzdGFuZGFyZC10aGVtZSk7XG5cbiAgaDEgeyBjb2xvcjogbWF0LWNvbG9yKCRzdGFuZGFyZC10aGVtZS1wcmltYXJ5KX1cbn1cbi5ncmVlbi10aGVtZSB7XG4gIEBpbmNsdWRlIGFuZ3VsYXItbWF0ZXJpYWwtdGhlbWUoJGdyZWVuLXRoZW1lKTtcblxuICBoMSB7IGNvbG9yOiBtYXQtY29sb3IoJGdyZWVuLXRoZW1lLXByaW1hcnkpfVxufVxuXG5cbi8qIFlvdSBjYW4gYWRkIGdsb2JhbCBzdHlsZXMgdG8gdGhpcyBmaWxlLCBhbmQgYWxzbyBpbXBvcnQgb3RoZXIgc3R5bGUgZmlsZXMgKi9cblxuXG5odG1sLCBib2R5IHsgaGVpZ2h0OiAxMDAlOyB9XG5ib2R5IHsgbWFyZ2luOiAwOyBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7IH1cblxuLmZsZXgtc3BhY2VyIHtcbiAgZmxleDogMSAxIGF1dG87XG59XG5cblxuXG4iXX0= */", '', '']]
+module.exports = [[module.i, "/* Theme for the ripple elements.*/\n/* stylelint-disable material/no-prefixes */\n/* stylelint-enable */\n.mat-badge-content {\n font-weight: 600;\n font-size: 12px;\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-badge-small .mat-badge-content {\n font-size: 9px;\n}\n.mat-badge-large .mat-badge-content {\n font-size: 24px;\n}\n.mat-h1, .mat-headline, .mat-typography h1 {\n font: 400 24px/32px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 16px;\n}\n.mat-h2, .mat-title, .mat-typography h2 {\n font: 500 20px/32px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 16px;\n}\n.mat-h3, .mat-subheading-2, .mat-typography h3 {\n font: 400 16px/28px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 16px;\n}\n.mat-h4, .mat-subheading-1, .mat-typography h4 {\n font: 400 15px/24px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 16px;\n}\n.mat-h5, .mat-typography h5 {\n font: 400 calc(14px * 0.83)/20px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 12px;\n}\n.mat-h6, .mat-typography h6 {\n font: 400 calc(14px * 0.67)/20px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 12px;\n}\n.mat-body-strong, .mat-body-2 {\n font: 500 14px/24px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-body, .mat-body-1, .mat-typography {\n font: 400 14px/20px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-body p, .mat-body-1 p, .mat-typography p {\n margin: 0 0 12px;\n}\n.mat-small, .mat-caption {\n font: 400 12px/20px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-display-4, .mat-typography .mat-display-4 {\n font: 300 112px/112px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: -0.05em;\n margin: 0 0 56px;\n}\n.mat-display-3, .mat-typography .mat-display-3 {\n font: 400 56px/56px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: -0.02em;\n margin: 0 0 64px;\n}\n.mat-display-2, .mat-typography .mat-display-2 {\n font: 400 45px/48px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: -0.005em;\n margin: 0 0 64px;\n}\n.mat-display-1, .mat-typography .mat-display-1 {\n font: 400 34px/40px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 64px;\n}\n.mat-bottom-sheet-container {\n font: 400 14px/20px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-button, .mat-raised-button, .mat-icon-button, .mat-stroked-button,\n.mat-flat-button, .mat-fab, .mat-mini-fab {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n font-weight: 500;\n}\n.mat-button-toggle {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-card {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-card-title {\n font-size: 24px;\n font-weight: 500;\n}\n.mat-card-header .mat-card-title {\n font-size: 20px;\n}\n.mat-card-subtitle,\n.mat-card-content {\n font-size: 14px;\n}\n.mat-checkbox {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-checkbox-layout .mat-checkbox-label {\n line-height: 24px;\n}\n.mat-chip {\n font-size: 14px;\n font-weight: 500;\n}\n.mat-chip .mat-chip-trailing-icon.mat-icon,\n.mat-chip .mat-chip-remove.mat-icon {\n font-size: 18px;\n}\n.mat-table {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-header-cell {\n font-size: 12px;\n font-weight: 500;\n}\n.mat-cell, .mat-footer-cell {\n font-size: 14px;\n}\n.mat-calendar {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-calendar-body {\n font-size: 13px;\n}\n.mat-calendar-body-label,\n.mat-calendar-period-button {\n font-size: 14px;\n font-weight: 500;\n}\n.mat-calendar-table-header th {\n font-size: 11px;\n font-weight: 400;\n}\n.mat-dialog-title {\n font: 500 20px/32px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-expansion-panel-header {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 15px;\n font-weight: 400;\n}\n.mat-expansion-panel-content {\n font: 400 14px/20px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-form-field {\n font-size: inherit;\n font-weight: 400;\n line-height: 1.125;\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-form-field-wrapper {\n padding-bottom: 1.34375em;\n}\n.mat-form-field-prefix .mat-icon,\n.mat-form-field-suffix .mat-icon {\n font-size: 150%;\n line-height: 1.125;\n}\n.mat-form-field-prefix .mat-icon-button,\n.mat-form-field-suffix .mat-icon-button {\n height: 1.5em;\n width: 1.5em;\n}\n.mat-form-field-prefix .mat-icon-button .mat-icon,\n.mat-form-field-suffix .mat-icon-button .mat-icon {\n height: 1.125em;\n line-height: 1.125;\n}\n.mat-form-field-infix {\n padding: 0.5em 0;\n border-top: 0.84375em solid transparent;\n}\n.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\n.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.34375em) scale(0.75);\n width: 133.3333333333%;\n}\n.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.34374em) scale(0.75);\n width: 133.3333433333%;\n}\n.mat-form-field-label-wrapper {\n top: -0.84375em;\n padding-top: 0.84375em;\n}\n.mat-form-field-label {\n top: 1.34375em;\n}\n.mat-form-field-underline {\n bottom: 1.34375em;\n}\n.mat-form-field-subscript-wrapper {\n font-size: 75%;\n margin-top: 0.6666666667em;\n top: calc(100% - 1.7916666667em);\n}\n.mat-form-field-appearance-legacy .mat-form-field-wrapper {\n padding-bottom: 1.25em;\n}\n.mat-form-field-appearance-legacy .mat-form-field-infix {\n padding: 0.4375em 0;\n}\n.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);\n -ms-transform: translateY(-1.28125em) scale(0.75);\n width: 133.3333333333%;\n}\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);\n -ms-transform: translateY(-1.28124em) scale(0.75);\n width: 133.3333433333%;\n}\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);\n -ms-transform: translateY(-1.28123em) scale(0.75);\n width: 133.3333533333%;\n}\n.mat-form-field-appearance-legacy .mat-form-field-label {\n top: 1.28125em;\n}\n.mat-form-field-appearance-legacy .mat-form-field-underline {\n bottom: 1.25em;\n}\n.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper {\n margin-top: 0.5416666667em;\n top: calc(100% - 1.6666666667em);\n}\n@media print {\n .mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.28122em) scale(0.75);\n }\n .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.28121em) scale(0.75);\n }\n .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.2812em) scale(0.75);\n }\n}\n.mat-form-field-appearance-fill .mat-form-field-infix {\n padding: 0.25em 0 0.75em 0;\n}\n.mat-form-field-appearance-fill .mat-form-field-label {\n top: 1.09375em;\n margin-top: -0.5em;\n}\n.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\n.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-0.59375em) scale(0.75);\n width: 133.3333333333%;\n}\n.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-0.59374em) scale(0.75);\n width: 133.3333433333%;\n}\n.mat-form-field-appearance-outline .mat-form-field-infix {\n padding: 1em 0 1em 0;\n}\n.mat-form-field-appearance-outline .mat-form-field-label {\n top: 1.84375em;\n margin-top: -0.25em;\n}\n.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\n.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.59375em) scale(0.75);\n width: 133.3333333333%;\n}\n.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.59374em) scale(0.75);\n width: 133.3333433333%;\n}\n.mat-grid-tile-header,\n.mat-grid-tile-footer {\n font-size: 14px;\n}\n.mat-grid-tile-header .mat-line,\n.mat-grid-tile-footer .mat-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n box-sizing: border-box;\n}\n.mat-grid-tile-header .mat-line:nth-child(n+2),\n.mat-grid-tile-footer .mat-line:nth-child(n+2) {\n font-size: 12px;\n}\ninput.mat-input-element {\n margin-top: -0.0625em;\n}\n.mat-menu-item {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n font-weight: 400;\n}\n.mat-paginator,\n.mat-paginator-page-size .mat-select-trigger {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 12px;\n}\n.mat-radio-button {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-select {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-select-trigger {\n height: 1.125em;\n}\n.mat-slide-toggle-content {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-slider-thumb-label-text {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 12px;\n font-weight: 500;\n}\n.mat-stepper-vertical, .mat-stepper-horizontal {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-step-label {\n font-size: 14px;\n font-weight: 400;\n}\n.mat-step-sub-label-error {\n font-weight: normal;\n}\n.mat-step-label-error {\n font-size: 14px;\n}\n.mat-step-label-selected {\n font-size: 14px;\n font-weight: 500;\n}\n.mat-tab-group {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-tab-label, .mat-tab-link {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n font-weight: 500;\n}\n.mat-toolbar,\n.mat-toolbar h1,\n.mat-toolbar h2,\n.mat-toolbar h3,\n.mat-toolbar h4,\n.mat-toolbar h5,\n.mat-toolbar h6 {\n font: 500 20px/32px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0;\n}\n.mat-tooltip {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 10px;\n padding-top: 6px;\n padding-bottom: 6px;\n}\n.mat-tooltip-handset {\n font-size: 14px;\n padding-top: 8px;\n padding-bottom: 8px;\n}\n.mat-list-item {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-list-option {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-list-base .mat-list-item {\n font-size: 16px;\n}\n.mat-list-base .mat-list-item .mat-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n box-sizing: border-box;\n}\n.mat-list-base .mat-list-item .mat-line:nth-child(n+2) {\n font-size: 14px;\n}\n.mat-list-base .mat-list-option {\n font-size: 16px;\n}\n.mat-list-base .mat-list-option .mat-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n box-sizing: border-box;\n}\n.mat-list-base .mat-list-option .mat-line:nth-child(n+2) {\n font-size: 14px;\n}\n.mat-list-base .mat-subheader {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n font-weight: 500;\n}\n.mat-list-base[dense] .mat-list-item {\n font-size: 12px;\n}\n.mat-list-base[dense] .mat-list-item .mat-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n box-sizing: border-box;\n}\n.mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2) {\n font-size: 12px;\n}\n.mat-list-base[dense] .mat-list-option {\n font-size: 12px;\n}\n.mat-list-base[dense] .mat-list-option .mat-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n box-sizing: border-box;\n}\n.mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2) {\n font-size: 12px;\n}\n.mat-list-base[dense] .mat-subheader {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 12px;\n font-weight: 500;\n}\n.mat-option {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 16px;\n}\n.mat-optgroup-label {\n font: 500 14px/24px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-simple-snackbar {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n}\n.mat-simple-snackbar-action {\n line-height: 1;\n font-family: inherit;\n font-size: inherit;\n font-weight: 500;\n}\n.mat-tree {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-tree-node,\n.mat-nested-tree-node {\n font-weight: 400;\n font-size: 14px;\n}\n.mat-ripple {\n overflow: hidden;\n position: relative;\n}\n.mat-ripple.mat-ripple-unbounded {\n overflow: visible;\n}\n.mat-ripple-element {\n position: absolute;\n border-radius: 50%;\n pointer-events: none;\n transition: opacity, transform 0ms cubic-bezier(0, 0, 0.2, 1);\n transform: scale(0);\n}\n@media (-ms-high-contrast: active) {\n .mat-ripple-element {\n display: none;\n }\n}\n.cdk-visually-hidden {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n outline: 0;\n -webkit-appearance: none;\n -moz-appearance: none;\n}\n.cdk-overlay-container, .cdk-global-overlay-wrapper {\n pointer-events: none;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n}\n.cdk-overlay-container {\n position: fixed;\n z-index: 1000;\n}\n.cdk-overlay-container:empty {\n display: none;\n}\n.cdk-global-overlay-wrapper {\n display: flex;\n position: absolute;\n z-index: 1000;\n}\n.cdk-overlay-pane {\n position: absolute;\n pointer-events: auto;\n box-sizing: border-box;\n z-index: 1000;\n display: flex;\n max-width: 100%;\n max-height: 100%;\n}\n.cdk-overlay-backdrop {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 1000;\n pointer-events: auto;\n -webkit-tap-highlight-color: transparent;\n transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);\n opacity: 0;\n}\n.cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\n opacity: 1;\n}\n@media screen and (-ms-high-contrast: active) {\n .cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\n opacity: 0.6;\n }\n}\n.cdk-overlay-dark-backdrop {\n background: rgba(0, 0, 0, 0.32);\n}\n.cdk-overlay-transparent-backdrop, .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {\n opacity: 0;\n}\n.cdk-overlay-connected-position-bounding-box {\n position: absolute;\n z-index: 1000;\n display: flex;\n flex-direction: column;\n min-width: 1px;\n min-height: 1px;\n}\n.cdk-global-scrollblock {\n position: fixed;\n width: 100%;\n overflow-y: scroll;\n}\n@-webkit-keyframes cdk-text-field-autofill-start {\n /*!*/\n}\n@keyframes cdk-text-field-autofill-start {\n /*!*/\n}\n@-webkit-keyframes cdk-text-field-autofill-end {\n /*!*/\n}\n@keyframes cdk-text-field-autofill-end {\n /*!*/\n}\n.cdk-text-field-autofill-monitored:-webkit-autofill {\n -webkit-animation-name: cdk-text-field-autofill-start;\n animation-name: cdk-text-field-autofill-start;\n}\n.cdk-text-field-autofill-monitored:not(:-webkit-autofill) {\n -webkit-animation-name: cdk-text-field-autofill-end;\n animation-name: cdk-text-field-autofill-end;\n}\ntextarea.cdk-textarea-autosize {\n resize: none;\n}\ntextarea.cdk-textarea-autosize-measuring {\n height: auto !important;\n overflow: hidden !important;\n padding: 2px 0 !important;\n box-sizing: content-box !important;\n}\n.standard-theme .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.standard-theme .mat-option {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-option:hover:not(.mat-option-disabled), .standard-theme .mat-option:focus:not(.mat-option-disabled) {\n background: rgba(0, 0, 0, 0.04);\n}\n.standard-theme .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {\n background: rgba(0, 0, 0, 0.04);\n}\n.standard-theme .mat-option.mat-active {\n background: rgba(0, 0, 0, 0.04);\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-option.mat-option-disabled {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\n color: #607d8b;\n}\n.standard-theme .mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {\n color: #448aff;\n}\n.standard-theme .mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {\n color: #f44336;\n}\n.standard-theme .mat-optgroup-label {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-optgroup-disabled .mat-optgroup-label {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-pseudo-checkbox {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-pseudo-checkbox::after {\n color: #fafafa;\n}\n.standard-theme .mat-pseudo-checkbox-disabled {\n color: #b0b0b0;\n}\n.standard-theme .mat-primary .mat-pseudo-checkbox-checked,\n.standard-theme .mat-primary .mat-pseudo-checkbox-indeterminate {\n background: #607d8b;\n}\n.standard-theme .mat-pseudo-checkbox-checked,\n.standard-theme .mat-pseudo-checkbox-indeterminate,\n.standard-theme .mat-accent .mat-pseudo-checkbox-checked,\n.standard-theme .mat-accent .mat-pseudo-checkbox-indeterminate {\n background: #448aff;\n}\n.standard-theme .mat-warn .mat-pseudo-checkbox-checked,\n.standard-theme .mat-warn .mat-pseudo-checkbox-indeterminate {\n background: #f44336;\n}\n.standard-theme .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,\n.standard-theme .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {\n background: #b0b0b0;\n}\n.standard-theme .mat-elevation-z0 {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z1 {\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z2 {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z3 {\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z4 {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z5 {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z6 {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z7 {\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z8 {\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z9 {\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z10 {\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z11 {\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z12 {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z13 {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z14 {\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z15 {\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z16 {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z17 {\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z18 {\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z19 {\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z20 {\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z21 {\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z22 {\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z23 {\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z24 {\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-app-background, .standard-theme.mat-app-background {\n background-color: #fafafa;\n color: rgba(0, 0, 0, 0.87);\n}\n.mat-theme-loaded-marker {\n display: none;\n}\n.standard-theme .mat-autocomplete-panel {\n background: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-autocomplete-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {\n background: white;\n}\n.standard-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-badge-content {\n color: white;\n background: #607d8b;\n}\n@media (-ms-high-contrast: active) {\n .standard-theme .mat-badge-content {\n outline: solid 1px;\n border-radius: 0;\n }\n}\n.standard-theme .mat-badge-accent .mat-badge-content {\n background: #448aff;\n color: white;\n}\n.standard-theme .mat-badge-warn .mat-badge-content {\n color: white;\n background: #f44336;\n}\n.standard-theme .mat-badge {\n position: relative;\n}\n.standard-theme .mat-badge-hidden .mat-badge-content {\n display: none;\n}\n.standard-theme .mat-badge-disabled .mat-badge-content {\n background: #b9b9b9;\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-badge-content {\n position: absolute;\n text-align: center;\n display: inline-block;\n border-radius: 50%;\n transition: transform 200ms ease-in-out;\n transform: scale(0.6);\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n pointer-events: none;\n}\n.standard-theme .ng-animate-disabled .mat-badge-content,\n.standard-theme .mat-badge-content._mat-animation-noopable {\n transition: none;\n}\n.standard-theme .mat-badge-content.mat-badge-active {\n transform: none;\n}\n.standard-theme .mat-badge-small .mat-badge-content {\n width: 16px;\n height: 16px;\n line-height: 16px;\n}\n.standard-theme .mat-badge-small.mat-badge-above .mat-badge-content {\n top: -8px;\n}\n.standard-theme .mat-badge-small.mat-badge-below .mat-badge-content {\n bottom: -8px;\n}\n.standard-theme .mat-badge-small.mat-badge-before .mat-badge-content {\n left: -16px;\n}\n[dir=rtl] .standard-theme .mat-badge-small.mat-badge-before .mat-badge-content {\n left: auto;\n right: -16px;\n}\n.standard-theme .mat-badge-small.mat-badge-after .mat-badge-content {\n right: -16px;\n}\n[dir=rtl] .standard-theme .mat-badge-small.mat-badge-after .mat-badge-content {\n right: auto;\n left: -16px;\n}\n.standard-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: -8px;\n}\n[dir=rtl] .standard-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: auto;\n right: -8px;\n}\n.standard-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: -8px;\n}\n[dir=rtl] .standard-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: auto;\n left: -8px;\n}\n.standard-theme .mat-badge-medium .mat-badge-content {\n width: 22px;\n height: 22px;\n line-height: 22px;\n}\n.standard-theme .mat-badge-medium.mat-badge-above .mat-badge-content {\n top: -11px;\n}\n.standard-theme .mat-badge-medium.mat-badge-below .mat-badge-content {\n bottom: -11px;\n}\n.standard-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\n left: -22px;\n}\n[dir=rtl] .standard-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\n left: auto;\n right: -22px;\n}\n.standard-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\n right: -22px;\n}\n[dir=rtl] .standard-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\n right: auto;\n left: -22px;\n}\n.standard-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: -11px;\n}\n[dir=rtl] .standard-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: auto;\n right: -11px;\n}\n.standard-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: -11px;\n}\n[dir=rtl] .standard-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: auto;\n left: -11px;\n}\n.standard-theme .mat-badge-large .mat-badge-content {\n width: 28px;\n height: 28px;\n line-height: 28px;\n}\n.standard-theme .mat-badge-large.mat-badge-above .mat-badge-content {\n top: -14px;\n}\n.standard-theme .mat-badge-large.mat-badge-below .mat-badge-content {\n bottom: -14px;\n}\n.standard-theme .mat-badge-large.mat-badge-before .mat-badge-content {\n left: -28px;\n}\n[dir=rtl] .standard-theme .mat-badge-large.mat-badge-before .mat-badge-content {\n left: auto;\n right: -28px;\n}\n.standard-theme .mat-badge-large.mat-badge-after .mat-badge-content {\n right: -28px;\n}\n[dir=rtl] .standard-theme .mat-badge-large.mat-badge-after .mat-badge-content {\n right: auto;\n left: -28px;\n}\n.standard-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: -14px;\n}\n[dir=rtl] .standard-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: auto;\n right: -14px;\n}\n.standard-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: -14px;\n}\n[dir=rtl] .standard-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: auto;\n left: -14px;\n}\n.standard-theme .mat-bottom-sheet-container {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n background: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-button, .standard-theme .mat-icon-button, .standard-theme .mat-stroked-button {\n color: inherit;\n background: transparent;\n}\n.standard-theme .mat-button.mat-primary, .standard-theme .mat-icon-button.mat-primary, .standard-theme .mat-stroked-button.mat-primary {\n color: #607d8b;\n}\n.standard-theme .mat-button.mat-accent, .standard-theme .mat-icon-button.mat-accent, .standard-theme .mat-stroked-button.mat-accent {\n color: #448aff;\n}\n.standard-theme .mat-button.mat-warn, .standard-theme .mat-icon-button.mat-warn, .standard-theme .mat-stroked-button.mat-warn {\n color: #f44336;\n}\n.standard-theme .mat-button.mat-primary[disabled], .standard-theme .mat-button.mat-accent[disabled], .standard-theme .mat-button.mat-warn[disabled], .standard-theme .mat-button[disabled][disabled], .standard-theme .mat-icon-button.mat-primary[disabled], .standard-theme .mat-icon-button.mat-accent[disabled], .standard-theme .mat-icon-button.mat-warn[disabled], .standard-theme .mat-icon-button[disabled][disabled], .standard-theme .mat-stroked-button.mat-primary[disabled], .standard-theme .mat-stroked-button.mat-accent[disabled], .standard-theme .mat-stroked-button.mat-warn[disabled], .standard-theme .mat-stroked-button[disabled][disabled] {\n color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-button.mat-primary .mat-button-focus-overlay, .standard-theme .mat-icon-button.mat-primary .mat-button-focus-overlay, .standard-theme .mat-stroked-button.mat-primary .mat-button-focus-overlay {\n background-color: #607d8b;\n}\n.standard-theme .mat-button.mat-accent .mat-button-focus-overlay, .standard-theme .mat-icon-button.mat-accent .mat-button-focus-overlay, .standard-theme .mat-stroked-button.mat-accent .mat-button-focus-overlay {\n background-color: #448aff;\n}\n.standard-theme .mat-button.mat-warn .mat-button-focus-overlay, .standard-theme .mat-icon-button.mat-warn .mat-button-focus-overlay, .standard-theme .mat-stroked-button.mat-warn .mat-button-focus-overlay {\n background-color: #f44336;\n}\n.standard-theme .mat-button[disabled] .mat-button-focus-overlay, .standard-theme .mat-icon-button[disabled] .mat-button-focus-overlay, .standard-theme .mat-stroked-button[disabled] .mat-button-focus-overlay {\n background-color: transparent;\n}\n.standard-theme .mat-button .mat-ripple-element, .standard-theme .mat-icon-button .mat-ripple-element, .standard-theme .mat-stroked-button .mat-ripple-element {\n opacity: 0.1;\n background-color: currentColor;\n}\n.standard-theme .mat-button-focus-overlay {\n background: black;\n}\n.standard-theme .mat-stroked-button:not([disabled]) {\n border-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-flat-button, .standard-theme .mat-raised-button, .standard-theme .mat-fab, .standard-theme .mat-mini-fab {\n color: rgba(0, 0, 0, 0.87);\n background-color: white;\n}\n.standard-theme .mat-flat-button.mat-primary, .standard-theme .mat-raised-button.mat-primary, .standard-theme .mat-fab.mat-primary, .standard-theme .mat-mini-fab.mat-primary {\n color: white;\n}\n.standard-theme .mat-flat-button.mat-accent, .standard-theme .mat-raised-button.mat-accent, .standard-theme .mat-fab.mat-accent, .standard-theme .mat-mini-fab.mat-accent {\n color: white;\n}\n.standard-theme .mat-flat-button.mat-warn, .standard-theme .mat-raised-button.mat-warn, .standard-theme .mat-fab.mat-warn, .standard-theme .mat-mini-fab.mat-warn {\n color: white;\n}\n.standard-theme .mat-flat-button.mat-primary[disabled], .standard-theme .mat-flat-button.mat-accent[disabled], .standard-theme .mat-flat-button.mat-warn[disabled], .standard-theme .mat-flat-button[disabled][disabled], .standard-theme .mat-raised-button.mat-primary[disabled], .standard-theme .mat-raised-button.mat-accent[disabled], .standard-theme .mat-raised-button.mat-warn[disabled], .standard-theme .mat-raised-button[disabled][disabled], .standard-theme .mat-fab.mat-primary[disabled], .standard-theme .mat-fab.mat-accent[disabled], .standard-theme .mat-fab.mat-warn[disabled], .standard-theme .mat-fab[disabled][disabled], .standard-theme .mat-mini-fab.mat-primary[disabled], .standard-theme .mat-mini-fab.mat-accent[disabled], .standard-theme .mat-mini-fab.mat-warn[disabled], .standard-theme .mat-mini-fab[disabled][disabled] {\n color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-flat-button.mat-primary, .standard-theme .mat-raised-button.mat-primary, .standard-theme .mat-fab.mat-primary, .standard-theme .mat-mini-fab.mat-primary {\n background-color: #607d8b;\n}\n.standard-theme .mat-flat-button.mat-accent, .standard-theme .mat-raised-button.mat-accent, .standard-theme .mat-fab.mat-accent, .standard-theme .mat-mini-fab.mat-accent {\n background-color: #448aff;\n}\n.standard-theme .mat-flat-button.mat-warn, .standard-theme .mat-raised-button.mat-warn, .standard-theme .mat-fab.mat-warn, .standard-theme .mat-mini-fab.mat-warn {\n background-color: #f44336;\n}\n.standard-theme .mat-flat-button.mat-primary[disabled], .standard-theme .mat-flat-button.mat-accent[disabled], .standard-theme .mat-flat-button.mat-warn[disabled], .standard-theme .mat-flat-button[disabled][disabled], .standard-theme .mat-raised-button.mat-primary[disabled], .standard-theme .mat-raised-button.mat-accent[disabled], .standard-theme .mat-raised-button.mat-warn[disabled], .standard-theme .mat-raised-button[disabled][disabled], .standard-theme .mat-fab.mat-primary[disabled], .standard-theme .mat-fab.mat-accent[disabled], .standard-theme .mat-fab.mat-warn[disabled], .standard-theme .mat-fab[disabled][disabled], .standard-theme .mat-mini-fab.mat-primary[disabled], .standard-theme .mat-mini-fab.mat-accent[disabled], .standard-theme .mat-mini-fab.mat-warn[disabled], .standard-theme .mat-mini-fab[disabled][disabled] {\n background-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-flat-button.mat-primary .mat-ripple-element, .standard-theme .mat-raised-button.mat-primary .mat-ripple-element, .standard-theme .mat-fab.mat-primary .mat-ripple-element, .standard-theme .mat-mini-fab.mat-primary .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.standard-theme .mat-flat-button.mat-accent .mat-ripple-element, .standard-theme .mat-raised-button.mat-accent .mat-ripple-element, .standard-theme .mat-fab.mat-accent .mat-ripple-element, .standard-theme .mat-mini-fab.mat-accent .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.standard-theme .mat-flat-button.mat-warn .mat-ripple-element, .standard-theme .mat-raised-button.mat-warn .mat-ripple-element, .standard-theme .mat-fab.mat-warn .mat-ripple-element, .standard-theme .mat-mini-fab.mat-warn .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.standard-theme .mat-stroked-button:not([class*=mat-elevation-z]), .standard-theme .mat-flat-button:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-raised-button:not([class*=mat-elevation-z]) {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]) {\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-raised-button[disabled]:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-fab:not([class*=mat-elevation-z]), .standard-theme .mat-mini-fab:not([class*=mat-elevation-z]) {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-fab:not([disabled]):active:not([class*=mat-elevation-z]), .standard-theme .mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]) {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-fab[disabled]:not([class*=mat-elevation-z]), .standard-theme .mat-mini-fab[disabled]:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-button-toggle-standalone,\n.standard-theme .mat-button-toggle-group {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\n.standard-theme .mat-button-toggle-group-appearance-standard {\n box-shadow: none;\n}\n.standard-theme .mat-button-toggle {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-button-toggle .mat-button-toggle-focus-overlay {\n background-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-button-toggle-appearance-standard {\n color: rgba(0, 0, 0, 0.87);\n background: white;\n}\n.standard-theme .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {\n background-color: black;\n}\n.standard-theme .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\n border-left: solid 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\n border-left: none;\n border-right: solid 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {\n border-left: none;\n border-right: none;\n border-top: solid 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-button-toggle-checked {\n background-color: #e0e0e0;\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-button-toggle-checked.mat-button-toggle-appearance-standard {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-button-toggle-disabled {\n color: rgba(0, 0, 0, 0.26);\n background-color: #eeeeee;\n}\n.standard-theme .mat-button-toggle-disabled.mat-button-toggle-appearance-standard {\n background: white;\n}\n.standard-theme .mat-button-toggle-disabled.mat-button-toggle-checked {\n background-color: #bdbdbd;\n}\n.standard-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\n.standard-theme .mat-button-toggle-group-appearance-standard {\n border: solid 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-card {\n background: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-card:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-card.mat-card-flat:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-card-subtitle {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-checkbox-frame {\n border-color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-checkbox-checkmark {\n fill: #fafafa;\n}\n.standard-theme .mat-checkbox-checkmark-path {\n stroke: #fafafa !important;\n}\n@media (-ms-high-contrast: black-on-white) {\n .standard-theme .mat-checkbox-checkmark-path {\n stroke: #000 !important;\n }\n}\n.standard-theme .mat-checkbox-mixedmark {\n background-color: #fafafa;\n}\n.standard-theme .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .standard-theme .mat-checkbox-checked.mat-primary .mat-checkbox-background {\n background-color: #607d8b;\n}\n.standard-theme .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .standard-theme .mat-checkbox-checked.mat-accent .mat-checkbox-background {\n background-color: #448aff;\n}\n.standard-theme .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .standard-theme .mat-checkbox-checked.mat-warn .mat-checkbox-background {\n background-color: #f44336;\n}\n.standard-theme .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .standard-theme .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {\n background-color: #b0b0b0;\n}\n.standard-theme .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {\n border-color: #b0b0b0;\n}\n.standard-theme .mat-checkbox-disabled .mat-checkbox-label {\n color: rgba(0, 0, 0, 0.54);\n}\n@media (-ms-high-contrast: active) {\n .standard-theme .mat-checkbox-disabled {\n opacity: 0.5;\n }\n}\n@media (-ms-high-contrast: active) {\n .standard-theme .mat-checkbox-background {\n background: none;\n }\n}\n.standard-theme .mat-checkbox .mat-ripple-element {\n background-color: black;\n}\n.standard-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,\n.standard-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {\n background: #607d8b;\n}\n.standard-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,\n.standard-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {\n background: #448aff;\n}\n.standard-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,\n.standard-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {\n background: #f44336;\n}\n.standard-theme .mat-chip.mat-standard-chip {\n background-color: #e0e0e0;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-chip.mat-standard-chip .mat-chip-remove {\n color: rgba(0, 0, 0, 0.87);\n opacity: 0.4;\n}\n.standard-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {\n opacity: 0.54;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-disabled {\n opacity: 0.4;\n}\n.standard-theme .mat-chip.mat-standard-chip::after {\n background: black;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {\n background-color: #607d8b;\n color: white;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {\n color: white;\n opacity: 0.4;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {\n background: rgba(255, 255, 255, 0.1);\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {\n background-color: #f44336;\n color: white;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {\n color: white;\n opacity: 0.4;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {\n background: rgba(255, 255, 255, 0.1);\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {\n background-color: #448aff;\n color: white;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {\n color: white;\n opacity: 0.4;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {\n background: rgba(255, 255, 255, 0.1);\n}\n.standard-theme .mat-table {\n background: white;\n}\n.standard-theme .mat-table thead, .standard-theme .mat-table tbody, .standard-theme .mat-table tfoot,\n.standard-theme mat-header-row, .standard-theme mat-row, .standard-theme mat-footer-row,\n.standard-theme [mat-header-row], .standard-theme [mat-row], .standard-theme [mat-footer-row],\n.standard-theme .mat-table-sticky {\n background: inherit;\n}\n.standard-theme mat-row, .standard-theme mat-header-row, .standard-theme mat-footer-row,\n.standard-theme th.mat-header-cell, .standard-theme td.mat-cell, .standard-theme td.mat-footer-cell {\n border-bottom-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-header-cell {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-cell, .standard-theme .mat-footer-cell {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-calendar-arrow {\n border-top-color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-datepicker-toggle,\n.standard-theme .mat-datepicker-content .mat-calendar-next-button,\n.standard-theme .mat-datepicker-content .mat-calendar-previous-button {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-calendar-table-header {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-calendar-table-header-divider::after {\n background: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-calendar-body-label {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-calendar-body-cell-content {\n color: rgba(0, 0, 0, 0.87);\n border-color: transparent;\n}\n.standard-theme .mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\n.standard-theme .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\n.standard-theme .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\n background-color: rgba(0, 0, 0, 0.04);\n}\n.standard-theme .mat-calendar-body-today:not(.mat-calendar-body-selected) {\n border-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected) {\n border-color: rgba(0, 0, 0, 0.18);\n}\n.standard-theme .mat-calendar-body-selected {\n background-color: #607d8b;\n color: white;\n}\n.standard-theme .mat-calendar-body-disabled > .mat-calendar-body-selected {\n background-color: rgba(96, 125, 139, 0.4);\n}\n.standard-theme .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 1px white;\n}\n.standard-theme .mat-datepicker-content {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n background-color: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-datepicker-content.mat-accent .mat-calendar-body-selected {\n background-color: #448aff;\n color: white;\n}\n.standard-theme .mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {\n background-color: rgba(68, 138, 255, 0.4);\n}\n.standard-theme .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 1px white;\n}\n.standard-theme .mat-datepicker-content.mat-warn .mat-calendar-body-selected {\n background-color: #f44336;\n color: white;\n}\n.standard-theme .mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {\n background-color: rgba(244, 67, 54, 0.4);\n}\n.standard-theme .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 1px white;\n}\n.standard-theme .mat-datepicker-content-touch {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-datepicker-toggle-active {\n color: #607d8b;\n}\n.standard-theme .mat-datepicker-toggle-active.mat-accent {\n color: #448aff;\n}\n.standard-theme .mat-datepicker-toggle-active.mat-warn {\n color: #f44336;\n}\n.standard-theme .mat-dialog-container {\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\n background: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-divider {\n border-top-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-divider-vertical {\n border-right-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-expansion-panel {\n background: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-expansion-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-action-row {\n border-top-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]), .standard-theme .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]), .standard-theme .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]) {\n background: rgba(0, 0, 0, 0.04);\n}\n@media (hover: none) {\n .standard-theme .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover {\n background: white;\n }\n}\n.standard-theme .mat-expansion-panel-header-title {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-expansion-panel-header-description,\n.standard-theme .mat-expansion-indicator::after {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-expansion-panel-header[aria-disabled=true] {\n color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,\n.standard-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description {\n color: inherit;\n}\n.standard-theme .mat-form-field-label {\n color: rgba(0, 0, 0, 0.6);\n}\n.standard-theme .mat-hint {\n color: rgba(0, 0, 0, 0.6);\n}\n.standard-theme .mat-form-field.mat-focused .mat-form-field-label {\n color: #607d8b;\n}\n.standard-theme .mat-form-field.mat-focused .mat-form-field-label.mat-accent {\n color: #448aff;\n}\n.standard-theme .mat-form-field.mat-focused .mat-form-field-label.mat-warn {\n color: #f44336;\n}\n.standard-theme .mat-focused .mat-form-field-required-marker {\n color: #448aff;\n}\n.standard-theme .mat-form-field-ripple {\n background-color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-form-field.mat-focused .mat-form-field-ripple {\n background-color: #607d8b;\n}\n.standard-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {\n background-color: #448aff;\n}\n.standard-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {\n background-color: #f44336;\n}\n.standard-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {\n color: #607d8b;\n}\n.standard-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {\n color: #448aff;\n}\n.standard-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {\n color: #f44336;\n}\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label {\n color: #f44336;\n}\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {\n color: #f44336;\n}\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {\n background-color: #f44336;\n}\n.standard-theme .mat-error {\n color: #f44336;\n}\n.standard-theme .mat-form-field-appearance-legacy .mat-form-field-label {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-form-field-appearance-legacy .mat-hint {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-form-field-appearance-legacy .mat-form-field-underline {\n background-color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\n background-size: 4px 100%;\n background-repeat: repeat-x;\n}\n.standard-theme .mat-form-field-appearance-standard .mat-form-field-underline {\n background-color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\n background-size: 4px 100%;\n background-repeat: repeat-x;\n}\n.standard-theme .mat-form-field-appearance-fill .mat-form-field-flex {\n background-color: rgba(0, 0, 0, 0.04);\n}\n.standard-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {\n background-color: rgba(0, 0, 0, 0.02);\n}\n.standard-theme .mat-form-field-appearance-fill .mat-form-field-underline::before {\n background-color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {\n background-color: transparent;\n}\n.standard-theme .mat-form-field-appearance-outline .mat-form-field-outline {\n color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-form-field-appearance-outline .mat-form-field-outline-thick {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {\n color: #607d8b;\n}\n.standard-theme .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {\n color: #448aff;\n}\n.standard-theme .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {\n color: #f44336;\n}\n.standard-theme .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {\n color: #f44336;\n}\n.standard-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {\n color: rgba(0, 0, 0, 0.06);\n}\n.standard-theme .mat-icon.mat-primary {\n color: #607d8b;\n}\n.standard-theme .mat-icon.mat-accent {\n color: #448aff;\n}\n.standard-theme .mat-icon.mat-warn {\n color: #f44336;\n}\n.standard-theme .mat-form-field-type-mat-native-select .mat-form-field-infix::after {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-input-element:disabled,\n.standard-theme .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-input-element {\n caret-color: #607d8b;\n}\n.standard-theme .mat-input-element::-webkit-input-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-input-element::-moz-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-input-element::-ms-input-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-input-element::placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-input-element::-moz-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-input-element::-webkit-input-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-input-element:-ms-input-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-accent .mat-input-element {\n caret-color: #448aff;\n}\n.standard-theme .mat-warn .mat-input-element,\n.standard-theme .mat-form-field-invalid .mat-input-element {\n caret-color: #f44336;\n}\n.standard-theme .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {\n color: #f44336;\n}\n.standard-theme .mat-list-base .mat-list-item {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-list-base .mat-list-option {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-list-base .mat-subheader {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-list-item-disabled {\n background-color: #eeeeee;\n}\n.standard-theme .mat-list-option:hover, .standard-theme .mat-list-option:focus,\n.standard-theme .mat-nav-list .mat-list-item:hover,\n.standard-theme .mat-nav-list .mat-list-item:focus,\n.standard-theme .mat-action-list .mat-list-item:hover,\n.standard-theme .mat-action-list .mat-list-item:focus {\n background: rgba(0, 0, 0, 0.04);\n}\n.standard-theme .mat-menu-panel {\n background: white;\n}\n.standard-theme .mat-menu-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-menu-item {\n background: transparent;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-menu-item[disabled], .standard-theme .mat-menu-item[disabled]::after {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-menu-item .mat-icon-no-color,\n.standard-theme .mat-menu-item-submenu-trigger::after {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-menu-item:hover:not([disabled]),\n.standard-theme .mat-menu-item.cdk-program-focused:not([disabled]),\n.standard-theme .mat-menu-item.cdk-keyboard-focused:not([disabled]),\n.standard-theme .mat-menu-item-highlighted:not([disabled]) {\n background: rgba(0, 0, 0, 0.04);\n}\n.standard-theme .mat-paginator {\n background: white;\n}\n.standard-theme .mat-paginator,\n.standard-theme .mat-paginator-page-size .mat-select-trigger {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-paginator-decrement,\n.standard-theme .mat-paginator-increment {\n border-top: 2px solid rgba(0, 0, 0, 0.54);\n border-right: 2px solid rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-paginator-first,\n.standard-theme .mat-paginator-last {\n border-top: 2px solid rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-icon-button[disabled] .mat-paginator-decrement,\n.standard-theme .mat-icon-button[disabled] .mat-paginator-increment,\n.standard-theme .mat-icon-button[disabled] .mat-paginator-first,\n.standard-theme .mat-icon-button[disabled] .mat-paginator-last {\n border-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-progress-bar-background {\n fill: #cfd8dc;\n}\n.standard-theme .mat-progress-bar-buffer {\n background-color: #cfd8dc;\n}\n.standard-theme .mat-progress-bar-fill::after {\n background-color: #607d8b;\n}\n.standard-theme .mat-progress-bar.mat-accent .mat-progress-bar-background {\n fill: #82b1ff;\n}\n.standard-theme .mat-progress-bar.mat-accent .mat-progress-bar-buffer {\n background-color: #82b1ff;\n}\n.standard-theme .mat-progress-bar.mat-accent .mat-progress-bar-fill::after {\n background-color: #448aff;\n}\n.standard-theme .mat-progress-bar.mat-warn .mat-progress-bar-background {\n fill: #ffcdd2;\n}\n.standard-theme .mat-progress-bar.mat-warn .mat-progress-bar-buffer {\n background-color: #ffcdd2;\n}\n.standard-theme .mat-progress-bar.mat-warn .mat-progress-bar-fill::after {\n background-color: #f44336;\n}\n.standard-theme .mat-progress-spinner circle, .standard-theme .mat-spinner circle {\n stroke: #607d8b;\n}\n.standard-theme .mat-progress-spinner.mat-accent circle, .standard-theme .mat-spinner.mat-accent circle {\n stroke: #448aff;\n}\n.standard-theme .mat-progress-spinner.mat-warn circle, .standard-theme .mat-spinner.mat-warn circle {\n stroke: #f44336;\n}\n.standard-theme .mat-radio-outer-circle {\n border-color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {\n border-color: #607d8b;\n}\n.standard-theme .mat-radio-button.mat-primary .mat-radio-inner-circle,\n.standard-theme .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .standard-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple, .standard-theme .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {\n background-color: #607d8b;\n}\n.standard-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {\n border-color: #448aff;\n}\n.standard-theme .mat-radio-button.mat-accent .mat-radio-inner-circle,\n.standard-theme .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .standard-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple, .standard-theme .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {\n background-color: #448aff;\n}\n.standard-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {\n border-color: #f44336;\n}\n.standard-theme .mat-radio-button.mat-warn .mat-radio-inner-circle,\n.standard-theme .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .standard-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple, .standard-theme .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {\n background-color: #f44336;\n}\n.standard-theme .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,\n.standard-theme .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {\n border-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,\n.standard-theme .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {\n background-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-radio-button.mat-radio-disabled .mat-radio-label-content {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-radio-button .mat-ripple-element {\n background-color: black;\n}\n.standard-theme .mat-select-value {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-select-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-select-disabled .mat-select-value {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-select-arrow {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-select-panel {\n background: white;\n}\n.standard-theme .mat-select-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {\n background: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-form-field.mat-focused.mat-primary .mat-select-arrow {\n color: #607d8b;\n}\n.standard-theme .mat-form-field.mat-focused.mat-accent .mat-select-arrow {\n color: #448aff;\n}\n.standard-theme .mat-form-field.mat-focused.mat-warn .mat-select-arrow {\n color: #f44336;\n}\n.standard-theme .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {\n color: #f44336;\n}\n.standard-theme .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-drawer-container {\n background-color: #fafafa;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-drawer {\n background-color: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-drawer.mat-drawer-push {\n background-color: white;\n}\n.standard-theme .mat-drawer:not(.mat-drawer-side) {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-drawer-side {\n border-right: solid 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-drawer-side.mat-drawer-end {\n border-left: solid 1px rgba(0, 0, 0, 0.12);\n border-right: none;\n}\n.standard-theme [dir=rtl] .mat-drawer-side {\n border-left: solid 1px rgba(0, 0, 0, 0.12);\n border-right: none;\n}\n.standard-theme [dir=rtl] .mat-drawer-side.mat-drawer-end {\n border-left: none;\n border-right: solid 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-drawer-backdrop.mat-drawer-shown {\n background-color: rgba(0, 0, 0, 0.6);\n}\n.standard-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {\n background-color: #448aff;\n}\n.standard-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-bar {\n background-color: rgba(68, 138, 255, 0.54);\n}\n.standard-theme .mat-slide-toggle.mat-checked .mat-ripple-element {\n background-color: #448aff;\n}\n.standard-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {\n background-color: #607d8b;\n}\n.standard-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {\n background-color: rgba(96, 125, 139, 0.54);\n}\n.standard-theme .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {\n background-color: #607d8b;\n}\n.standard-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {\n background-color: #f44336;\n}\n.standard-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {\n background-color: rgba(244, 67, 54, 0.54);\n}\n.standard-theme .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {\n background-color: #f44336;\n}\n.standard-theme .mat-slide-toggle:not(.mat-checked) .mat-ripple-element {\n background-color: black;\n}\n.standard-theme .mat-slide-toggle-thumb {\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n background-color: #fafafa;\n}\n.standard-theme .mat-slide-toggle-bar {\n background-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-slider-track-background {\n background-color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-primary .mat-slider-track-fill,\n.standard-theme .mat-primary .mat-slider-thumb,\n.standard-theme .mat-primary .mat-slider-thumb-label {\n background-color: #607d8b;\n}\n.standard-theme .mat-primary .mat-slider-thumb-label-text {\n color: white;\n}\n.standard-theme .mat-accent .mat-slider-track-fill,\n.standard-theme .mat-accent .mat-slider-thumb,\n.standard-theme .mat-accent .mat-slider-thumb-label {\n background-color: #448aff;\n}\n.standard-theme .mat-accent .mat-slider-thumb-label-text {\n color: white;\n}\n.standard-theme .mat-warn .mat-slider-track-fill,\n.standard-theme .mat-warn .mat-slider-thumb,\n.standard-theme .mat-warn .mat-slider-thumb-label {\n background-color: #f44336;\n}\n.standard-theme .mat-warn .mat-slider-thumb-label-text {\n color: white;\n}\n.standard-theme .mat-slider-focus-ring {\n background-color: rgba(68, 138, 255, 0.2);\n}\n.standard-theme .mat-slider:hover .mat-slider-track-background,\n.standard-theme .cdk-focused .mat-slider-track-background {\n background-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-slider-disabled .mat-slider-track-background,\n.standard-theme .mat-slider-disabled .mat-slider-track-fill,\n.standard-theme .mat-slider-disabled .mat-slider-thumb {\n background-color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-slider-disabled:hover .mat-slider-track-background {\n background-color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-slider-min-value .mat-slider-focus-ring {\n background-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,\n.standard-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label {\n background-color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,\n.standard-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label {\n background-color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb {\n border-color: rgba(0, 0, 0, 0.26);\n background-color: transparent;\n}\n.standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb, .standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb {\n border-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb, .standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb {\n border-color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-slider-has-ticks .mat-slider-wrapper::after {\n border-color: rgba(0, 0, 0, 0.7);\n}\n.standard-theme .mat-slider-horizontal .mat-slider-ticks {\n background-image: repeating-linear-gradient(to right, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\n background-image: -moz-repeating-linear-gradient(0.0001deg, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\n}\n.standard-theme .mat-slider-vertical .mat-slider-ticks {\n background-image: repeating-linear-gradient(to bottom, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\n}\n.standard-theme .mat-step-header.cdk-keyboard-focused, .standard-theme .mat-step-header.cdk-program-focused, .standard-theme .mat-step-header:hover {\n background-color: rgba(0, 0, 0, 0.04);\n}\n@media (hover: none) {\n .standard-theme .mat-step-header:hover {\n background: none;\n }\n}\n.standard-theme .mat-step-header .mat-step-label,\n.standard-theme .mat-step-header .mat-step-optional {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-step-header .mat-step-icon {\n background-color: rgba(0, 0, 0, 0.54);\n color: white;\n}\n.standard-theme .mat-step-header .mat-step-icon-selected,\n.standard-theme .mat-step-header .mat-step-icon-state-done,\n.standard-theme .mat-step-header .mat-step-icon-state-edit {\n background-color: #607d8b;\n color: white;\n}\n.standard-theme .mat-step-header .mat-step-icon-state-error {\n background-color: transparent;\n color: #f44336;\n}\n.standard-theme .mat-step-header .mat-step-label.mat-step-label-active {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-step-header .mat-step-label.mat-step-label-error {\n color: #f44336;\n}\n.standard-theme .mat-stepper-horizontal, .standard-theme .mat-stepper-vertical {\n background-color: white;\n}\n.standard-theme .mat-stepper-vertical-line::before {\n border-left-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-horizontal-stepper-header::before,\n.standard-theme .mat-horizontal-stepper-header::after,\n.standard-theme .mat-stepper-horizontal-line {\n border-top-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-sort-header-arrow {\n color: #757575;\n}\n.standard-theme .mat-tab-nav-bar,\n.standard-theme .mat-tab-header {\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-tab-group-inverted-header .mat-tab-nav-bar,\n.standard-theme .mat-tab-group-inverted-header .mat-tab-header {\n border-top: 1px solid rgba(0, 0, 0, 0.12);\n border-bottom: none;\n}\n.standard-theme .mat-tab-label, .standard-theme .mat-tab-link {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-link.mat-tab-disabled {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-tab-group[class*=mat-background-] .mat-tab-header,\n.standard-theme .mat-tab-nav-bar[class*=mat-background-] {\n border-bottom: none;\n border-top: none;\n}\n.standard-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(207, 216, 220, 0.3);\n}\n.standard-theme .mat-tab-group.mat-primary .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-primary .mat-ink-bar {\n background-color: #607d8b;\n}\n.standard-theme .mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar {\n background-color: white;\n}\n.standard-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(130, 177, 255, 0.3);\n}\n.standard-theme .mat-tab-group.mat-accent .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-accent .mat-ink-bar {\n background-color: #448aff;\n}\n.standard-theme .mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar {\n background-color: white;\n}\n.standard-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(255, 205, 210, 0.3);\n}\n.standard-theme .mat-tab-group.mat-warn .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-warn .mat-ink-bar {\n background-color: #f44336;\n}\n.standard-theme .mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar {\n background-color: white;\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(207, 216, 220, 0.3);\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-header, .standard-theme .mat-tab-group.mat-background-primary .mat-tab-links, .standard-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-links, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination {\n background-color: #607d8b;\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-label, .standard-theme .mat-tab-group.mat-background-primary .mat-tab-link, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link {\n color: white;\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled {\n color: rgba(255, 255, 255, 0.4);\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron {\n border-color: white;\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(255, 255, 255, 0.4);\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-ripple-element, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(130, 177, 255, 0.3);\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-header, .standard-theme .mat-tab-group.mat-background-accent .mat-tab-links, .standard-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-links, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination {\n background-color: #448aff;\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-label, .standard-theme .mat-tab-group.mat-background-accent .mat-tab-link, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link {\n color: white;\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled {\n color: rgba(255, 255, 255, 0.4);\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron {\n border-color: white;\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(255, 255, 255, 0.4);\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-ripple-element, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(255, 205, 210, 0.3);\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-header, .standard-theme .mat-tab-group.mat-background-warn .mat-tab-links, .standard-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-links, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination {\n background-color: #f44336;\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-label, .standard-theme .mat-tab-group.mat-background-warn .mat-tab-link, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link {\n color: white;\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled {\n color: rgba(255, 255, 255, 0.4);\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron {\n border-color: white;\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(255, 255, 255, 0.4);\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-ripple-element, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.standard-theme .mat-toolbar {\n background: whitesmoke;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-toolbar.mat-primary {\n background: #607d8b;\n color: white;\n}\n.standard-theme .mat-toolbar.mat-accent {\n background: #448aff;\n color: white;\n}\n.standard-theme .mat-toolbar.mat-warn {\n background: #f44336;\n color: white;\n}\n.standard-theme .mat-toolbar .mat-form-field-underline,\n.standard-theme .mat-toolbar .mat-form-field-ripple,\n.standard-theme .mat-toolbar .mat-focused .mat-form-field-ripple {\n background-color: currentColor;\n}\n.standard-theme .mat-toolbar .mat-form-field-label,\n.standard-theme .mat-toolbar .mat-focused .mat-form-field-label,\n.standard-theme .mat-toolbar .mat-select-value,\n.standard-theme .mat-toolbar .mat-select-arrow,\n.standard-theme .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow {\n color: inherit;\n}\n.standard-theme .mat-toolbar .mat-input-element {\n caret-color: currentColor;\n}\n.standard-theme .mat-tooltip {\n background: rgba(97, 97, 97, 0.9);\n}\n.standard-theme .mat-tree {\n background: white;\n}\n.standard-theme .mat-tree-node,\n.standard-theme .mat-nested-tree-node {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-snack-bar-container {\n color: rgba(255, 255, 255, 0.7);\n background: #323232;\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-simple-snackbar-action {\n color: #448aff;\n}\n.standard-theme h1 {\n color: #607d8b;\n}\n.green-theme .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.green-theme .mat-option {\n color: white;\n}\n.green-theme .mat-option:hover:not(.mat-option-disabled), .green-theme .mat-option:focus:not(.mat-option-disabled) {\n background: rgba(255, 255, 255, 0.04);\n}\n.green-theme .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {\n background: rgba(255, 255, 255, 0.04);\n}\n.green-theme .mat-option.mat-active {\n background: rgba(255, 255, 255, 0.04);\n color: white;\n}\n.green-theme .mat-option.mat-option-disabled {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\n color: #8bc34a;\n}\n.green-theme .mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {\n color: #4caf50;\n}\n.green-theme .mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {\n color: #4caf50;\n}\n.green-theme .mat-optgroup-label {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-optgroup-disabled .mat-optgroup-label {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-pseudo-checkbox {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-pseudo-checkbox::after {\n color: #303030;\n}\n.green-theme .mat-pseudo-checkbox-disabled {\n color: #686868;\n}\n.green-theme .mat-primary .mat-pseudo-checkbox-checked,\n.green-theme .mat-primary .mat-pseudo-checkbox-indeterminate {\n background: #8bc34a;\n}\n.green-theme .mat-pseudo-checkbox-checked,\n.green-theme .mat-pseudo-checkbox-indeterminate,\n.green-theme .mat-accent .mat-pseudo-checkbox-checked,\n.green-theme .mat-accent .mat-pseudo-checkbox-indeterminate {\n background: #4caf50;\n}\n.green-theme .mat-warn .mat-pseudo-checkbox-checked,\n.green-theme .mat-warn .mat-pseudo-checkbox-indeterminate {\n background: #4caf50;\n}\n.green-theme .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,\n.green-theme .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {\n background: #686868;\n}\n.green-theme .mat-elevation-z0 {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z1 {\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z2 {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z3 {\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z4 {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z5 {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z6 {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z7 {\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z8 {\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z9 {\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z10 {\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z11 {\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z12 {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z13 {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z14 {\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z15 {\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z16 {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z17 {\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z18 {\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z19 {\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z20 {\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z21 {\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z22 {\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z23 {\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z24 {\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-app-background, .green-theme.mat-app-background {\n background-color: #303030;\n color: white;\n}\n.mat-theme-loaded-marker {\n display: none;\n}\n.green-theme .mat-autocomplete-panel {\n background: #424242;\n color: white;\n}\n.green-theme .mat-autocomplete-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {\n background: #424242;\n}\n.green-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {\n color: white;\n}\n.green-theme .mat-badge-content {\n color: rgba(0, 0, 0, 0.87);\n background: #8bc34a;\n}\n@media (-ms-high-contrast: active) {\n .green-theme .mat-badge-content {\n outline: solid 1px;\n border-radius: 0;\n }\n}\n.green-theme .mat-badge-accent .mat-badge-content {\n background: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-badge-warn .mat-badge-content {\n color: rgba(0, 0, 0, 0.87);\n background: #4caf50;\n}\n.green-theme .mat-badge {\n position: relative;\n}\n.green-theme .mat-badge-hidden .mat-badge-content {\n display: none;\n}\n.green-theme .mat-badge-disabled .mat-badge-content {\n background: #6e6e6e;\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-badge-content {\n position: absolute;\n text-align: center;\n display: inline-block;\n border-radius: 50%;\n transition: transform 200ms ease-in-out;\n transform: scale(0.6);\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n pointer-events: none;\n}\n.green-theme .ng-animate-disabled .mat-badge-content,\n.green-theme .mat-badge-content._mat-animation-noopable {\n transition: none;\n}\n.green-theme .mat-badge-content.mat-badge-active {\n transform: none;\n}\n.green-theme .mat-badge-small .mat-badge-content {\n width: 16px;\n height: 16px;\n line-height: 16px;\n}\n.green-theme .mat-badge-small.mat-badge-above .mat-badge-content {\n top: -8px;\n}\n.green-theme .mat-badge-small.mat-badge-below .mat-badge-content {\n bottom: -8px;\n}\n.green-theme .mat-badge-small.mat-badge-before .mat-badge-content {\n left: -16px;\n}\n[dir=rtl] .green-theme .mat-badge-small.mat-badge-before .mat-badge-content {\n left: auto;\n right: -16px;\n}\n.green-theme .mat-badge-small.mat-badge-after .mat-badge-content {\n right: -16px;\n}\n[dir=rtl] .green-theme .mat-badge-small.mat-badge-after .mat-badge-content {\n right: auto;\n left: -16px;\n}\n.green-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: -8px;\n}\n[dir=rtl] .green-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: auto;\n right: -8px;\n}\n.green-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: -8px;\n}\n[dir=rtl] .green-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: auto;\n left: -8px;\n}\n.green-theme .mat-badge-medium .mat-badge-content {\n width: 22px;\n height: 22px;\n line-height: 22px;\n}\n.green-theme .mat-badge-medium.mat-badge-above .mat-badge-content {\n top: -11px;\n}\n.green-theme .mat-badge-medium.mat-badge-below .mat-badge-content {\n bottom: -11px;\n}\n.green-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\n left: -22px;\n}\n[dir=rtl] .green-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\n left: auto;\n right: -22px;\n}\n.green-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\n right: -22px;\n}\n[dir=rtl] .green-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\n right: auto;\n left: -22px;\n}\n.green-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: -11px;\n}\n[dir=rtl] .green-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: auto;\n right: -11px;\n}\n.green-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: -11px;\n}\n[dir=rtl] .green-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: auto;\n left: -11px;\n}\n.green-theme .mat-badge-large .mat-badge-content {\n width: 28px;\n height: 28px;\n line-height: 28px;\n}\n.green-theme .mat-badge-large.mat-badge-above .mat-badge-content {\n top: -14px;\n}\n.green-theme .mat-badge-large.mat-badge-below .mat-badge-content {\n bottom: -14px;\n}\n.green-theme .mat-badge-large.mat-badge-before .mat-badge-content {\n left: -28px;\n}\n[dir=rtl] .green-theme .mat-badge-large.mat-badge-before .mat-badge-content {\n left: auto;\n right: -28px;\n}\n.green-theme .mat-badge-large.mat-badge-after .mat-badge-content {\n right: -28px;\n}\n[dir=rtl] .green-theme .mat-badge-large.mat-badge-after .mat-badge-content {\n right: auto;\n left: -28px;\n}\n.green-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: -14px;\n}\n[dir=rtl] .green-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: auto;\n right: -14px;\n}\n.green-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: -14px;\n}\n[dir=rtl] .green-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: auto;\n left: -14px;\n}\n.green-theme .mat-bottom-sheet-container {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n background: #424242;\n color: white;\n}\n.green-theme .mat-button, .green-theme .mat-icon-button, .green-theme .mat-stroked-button {\n color: inherit;\n background: transparent;\n}\n.green-theme .mat-button.mat-primary, .green-theme .mat-icon-button.mat-primary, .green-theme .mat-stroked-button.mat-primary {\n color: #8bc34a;\n}\n.green-theme .mat-button.mat-accent, .green-theme .mat-icon-button.mat-accent, .green-theme .mat-stroked-button.mat-accent {\n color: #4caf50;\n}\n.green-theme .mat-button.mat-warn, .green-theme .mat-icon-button.mat-warn, .green-theme .mat-stroked-button.mat-warn {\n color: #4caf50;\n}\n.green-theme .mat-button.mat-primary[disabled], .green-theme .mat-button.mat-accent[disabled], .green-theme .mat-button.mat-warn[disabled], .green-theme .mat-button[disabled][disabled], .green-theme .mat-icon-button.mat-primary[disabled], .green-theme .mat-icon-button.mat-accent[disabled], .green-theme .mat-icon-button.mat-warn[disabled], .green-theme .mat-icon-button[disabled][disabled], .green-theme .mat-stroked-button.mat-primary[disabled], .green-theme .mat-stroked-button.mat-accent[disabled], .green-theme .mat-stroked-button.mat-warn[disabled], .green-theme .mat-stroked-button[disabled][disabled] {\n color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-button.mat-primary .mat-button-focus-overlay, .green-theme .mat-icon-button.mat-primary .mat-button-focus-overlay, .green-theme .mat-stroked-button.mat-primary .mat-button-focus-overlay {\n background-color: #8bc34a;\n}\n.green-theme .mat-button.mat-accent .mat-button-focus-overlay, .green-theme .mat-icon-button.mat-accent .mat-button-focus-overlay, .green-theme .mat-stroked-button.mat-accent .mat-button-focus-overlay {\n background-color: #4caf50;\n}\n.green-theme .mat-button.mat-warn .mat-button-focus-overlay, .green-theme .mat-icon-button.mat-warn .mat-button-focus-overlay, .green-theme .mat-stroked-button.mat-warn .mat-button-focus-overlay {\n background-color: #4caf50;\n}\n.green-theme .mat-button[disabled] .mat-button-focus-overlay, .green-theme .mat-icon-button[disabled] .mat-button-focus-overlay, .green-theme .mat-stroked-button[disabled] .mat-button-focus-overlay {\n background-color: transparent;\n}\n.green-theme .mat-button .mat-ripple-element, .green-theme .mat-icon-button .mat-ripple-element, .green-theme .mat-stroked-button .mat-ripple-element {\n opacity: 0.1;\n background-color: currentColor;\n}\n.green-theme .mat-button-focus-overlay {\n background: white;\n}\n.green-theme .mat-stroked-button:not([disabled]) {\n border-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-flat-button, .green-theme .mat-raised-button, .green-theme .mat-fab, .green-theme .mat-mini-fab {\n color: white;\n background-color: #424242;\n}\n.green-theme .mat-flat-button.mat-primary, .green-theme .mat-raised-button.mat-primary, .green-theme .mat-fab.mat-primary, .green-theme .mat-mini-fab.mat-primary {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-flat-button.mat-accent, .green-theme .mat-raised-button.mat-accent, .green-theme .mat-fab.mat-accent, .green-theme .mat-mini-fab.mat-accent {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-flat-button.mat-warn, .green-theme .mat-raised-button.mat-warn, .green-theme .mat-fab.mat-warn, .green-theme .mat-mini-fab.mat-warn {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-flat-button.mat-primary[disabled], .green-theme .mat-flat-button.mat-accent[disabled], .green-theme .mat-flat-button.mat-warn[disabled], .green-theme .mat-flat-button[disabled][disabled], .green-theme .mat-raised-button.mat-primary[disabled], .green-theme .mat-raised-button.mat-accent[disabled], .green-theme .mat-raised-button.mat-warn[disabled], .green-theme .mat-raised-button[disabled][disabled], .green-theme .mat-fab.mat-primary[disabled], .green-theme .mat-fab.mat-accent[disabled], .green-theme .mat-fab.mat-warn[disabled], .green-theme .mat-fab[disabled][disabled], .green-theme .mat-mini-fab.mat-primary[disabled], .green-theme .mat-mini-fab.mat-accent[disabled], .green-theme .mat-mini-fab.mat-warn[disabled], .green-theme .mat-mini-fab[disabled][disabled] {\n color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-flat-button.mat-primary, .green-theme .mat-raised-button.mat-primary, .green-theme .mat-fab.mat-primary, .green-theme .mat-mini-fab.mat-primary {\n background-color: #8bc34a;\n}\n.green-theme .mat-flat-button.mat-accent, .green-theme .mat-raised-button.mat-accent, .green-theme .mat-fab.mat-accent, .green-theme .mat-mini-fab.mat-accent {\n background-color: #4caf50;\n}\n.green-theme .mat-flat-button.mat-warn, .green-theme .mat-raised-button.mat-warn, .green-theme .mat-fab.mat-warn, .green-theme .mat-mini-fab.mat-warn {\n background-color: #4caf50;\n}\n.green-theme .mat-flat-button.mat-primary[disabled], .green-theme .mat-flat-button.mat-accent[disabled], .green-theme .mat-flat-button.mat-warn[disabled], .green-theme .mat-flat-button[disabled][disabled], .green-theme .mat-raised-button.mat-primary[disabled], .green-theme .mat-raised-button.mat-accent[disabled], .green-theme .mat-raised-button.mat-warn[disabled], .green-theme .mat-raised-button[disabled][disabled], .green-theme .mat-fab.mat-primary[disabled], .green-theme .mat-fab.mat-accent[disabled], .green-theme .mat-fab.mat-warn[disabled], .green-theme .mat-fab[disabled][disabled], .green-theme .mat-mini-fab.mat-primary[disabled], .green-theme .mat-mini-fab.mat-accent[disabled], .green-theme .mat-mini-fab.mat-warn[disabled], .green-theme .mat-mini-fab[disabled][disabled] {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-flat-button.mat-primary .mat-ripple-element, .green-theme .mat-raised-button.mat-primary .mat-ripple-element, .green-theme .mat-fab.mat-primary .mat-ripple-element, .green-theme .mat-mini-fab.mat-primary .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.green-theme .mat-flat-button.mat-accent .mat-ripple-element, .green-theme .mat-raised-button.mat-accent .mat-ripple-element, .green-theme .mat-fab.mat-accent .mat-ripple-element, .green-theme .mat-mini-fab.mat-accent .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.green-theme .mat-flat-button.mat-warn .mat-ripple-element, .green-theme .mat-raised-button.mat-warn .mat-ripple-element, .green-theme .mat-fab.mat-warn .mat-ripple-element, .green-theme .mat-mini-fab.mat-warn .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.green-theme .mat-stroked-button:not([class*=mat-elevation-z]), .green-theme .mat-flat-button:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-raised-button:not([class*=mat-elevation-z]) {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]) {\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-raised-button[disabled]:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-fab:not([class*=mat-elevation-z]), .green-theme .mat-mini-fab:not([class*=mat-elevation-z]) {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-fab:not([disabled]):active:not([class*=mat-elevation-z]), .green-theme .mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]) {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-fab[disabled]:not([class*=mat-elevation-z]), .green-theme .mat-mini-fab[disabled]:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-button-toggle-standalone,\n.green-theme .mat-button-toggle-group {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\n.green-theme .mat-button-toggle-group-appearance-standard {\n box-shadow: none;\n}\n.green-theme .mat-button-toggle {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-button-toggle .mat-button-toggle-focus-overlay {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-button-toggle-appearance-standard {\n color: white;\n background: #424242;\n}\n.green-theme .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {\n background-color: white;\n}\n.green-theme .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\n border-left: solid 1px rgba(255, 255, 255, 0.12);\n}\n.green-theme [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\n border-left: none;\n border-right: solid 1px rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {\n border-left: none;\n border-right: none;\n border-top: solid 1px rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-button-toggle-checked {\n background-color: #212121;\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-button-toggle-checked.mat-button-toggle-appearance-standard {\n color: white;\n}\n.green-theme .mat-button-toggle-disabled {\n color: rgba(255, 255, 255, 0.3);\n background-color: black;\n}\n.green-theme .mat-button-toggle-disabled.mat-button-toggle-appearance-standard {\n background: #424242;\n}\n.green-theme .mat-button-toggle-disabled.mat-button-toggle-checked {\n background-color: #424242;\n}\n.green-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\n.green-theme .mat-button-toggle-group-appearance-standard {\n border: solid 1px rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-card {\n background: #424242;\n color: white;\n}\n.green-theme .mat-card:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-card.mat-card-flat:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-card-subtitle {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-checkbox-frame {\n border-color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-checkbox-checkmark {\n fill: #303030;\n}\n.green-theme .mat-checkbox-checkmark-path {\n stroke: #303030 !important;\n}\n@media (-ms-high-contrast: black-on-white) {\n .green-theme .mat-checkbox-checkmark-path {\n stroke: #000 !important;\n }\n}\n.green-theme .mat-checkbox-mixedmark {\n background-color: #303030;\n}\n.green-theme .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .green-theme .mat-checkbox-checked.mat-primary .mat-checkbox-background {\n background-color: #8bc34a;\n}\n.green-theme .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .green-theme .mat-checkbox-checked.mat-accent .mat-checkbox-background {\n background-color: #4caf50;\n}\n.green-theme .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .green-theme .mat-checkbox-checked.mat-warn .mat-checkbox-background {\n background-color: #4caf50;\n}\n.green-theme .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .green-theme .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {\n background-color: #686868;\n}\n.green-theme .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {\n border-color: #686868;\n}\n.green-theme .mat-checkbox-disabled .mat-checkbox-label {\n color: rgba(255, 255, 255, 0.7);\n}\n@media (-ms-high-contrast: active) {\n .green-theme .mat-checkbox-disabled {\n opacity: 0.5;\n }\n}\n@media (-ms-high-contrast: active) {\n .green-theme .mat-checkbox-background {\n background: none;\n }\n}\n.green-theme .mat-checkbox .mat-ripple-element {\n background-color: white;\n}\n.green-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,\n.green-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {\n background: #8bc34a;\n}\n.green-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,\n.green-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {\n background: #4caf50;\n}\n.green-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,\n.green-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {\n background: #4caf50;\n}\n.green-theme .mat-chip.mat-standard-chip {\n background-color: #616161;\n color: white;\n}\n.green-theme .mat-chip.mat-standard-chip .mat-chip-remove {\n color: white;\n opacity: 0.4;\n}\n.green-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {\n opacity: 0.54;\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-disabled {\n opacity: 0.4;\n}\n.green-theme .mat-chip.mat-standard-chip::after {\n background: white;\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {\n background-color: #8bc34a;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {\n color: rgba(0, 0, 0, 0.87);\n opacity: 0.4;\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {\n background: rgba(0, 0, 0, 0.1);\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {\n background-color: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {\n color: rgba(0, 0, 0, 0.87);\n opacity: 0.4;\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {\n background: rgba(0, 0, 0, 0.1);\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {\n background-color: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {\n color: rgba(0, 0, 0, 0.87);\n opacity: 0.4;\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {\n background: rgba(0, 0, 0, 0.1);\n}\n.green-theme .mat-table {\n background: #424242;\n}\n.green-theme .mat-table thead, .green-theme .mat-table tbody, .green-theme .mat-table tfoot,\n.green-theme mat-header-row, .green-theme mat-row, .green-theme mat-footer-row,\n.green-theme [mat-header-row], .green-theme [mat-row], .green-theme [mat-footer-row],\n.green-theme .mat-table-sticky {\n background: inherit;\n}\n.green-theme mat-row, .green-theme mat-header-row, .green-theme mat-footer-row,\n.green-theme th.mat-header-cell, .green-theme td.mat-cell, .green-theme td.mat-footer-cell {\n border-bottom-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-header-cell {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-cell, .green-theme .mat-footer-cell {\n color: white;\n}\n.green-theme .mat-calendar-arrow {\n border-top-color: white;\n}\n.green-theme .mat-datepicker-toggle,\n.green-theme .mat-datepicker-content .mat-calendar-next-button,\n.green-theme .mat-datepicker-content .mat-calendar-previous-button {\n color: white;\n}\n.green-theme .mat-calendar-table-header {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-calendar-table-header-divider::after {\n background: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-calendar-body-label {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-calendar-body-cell-content {\n color: white;\n border-color: transparent;\n}\n.green-theme .mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\n.green-theme .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\n.green-theme .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\n background-color: rgba(255, 255, 255, 0.04);\n}\n.green-theme .mat-calendar-body-today:not(.mat-calendar-body-selected) {\n border-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected) {\n border-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-calendar-body-selected {\n background-color: #8bc34a;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-calendar-body-disabled > .mat-calendar-body-selected {\n background-color: rgba(139, 195, 74, 0.4);\n}\n.green-theme .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-datepicker-content {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n background-color: #424242;\n color: white;\n}\n.green-theme .mat-datepicker-content.mat-accent .mat-calendar-body-selected {\n background-color: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {\n background-color: rgba(76, 175, 80, 0.4);\n}\n.green-theme .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-datepicker-content.mat-warn .mat-calendar-body-selected {\n background-color: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {\n background-color: rgba(76, 175, 80, 0.4);\n}\n.green-theme .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-datepicker-content-touch {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-datepicker-toggle-active {\n color: #8bc34a;\n}\n.green-theme .mat-datepicker-toggle-active.mat-accent {\n color: #4caf50;\n}\n.green-theme .mat-datepicker-toggle-active.mat-warn {\n color: #4caf50;\n}\n.green-theme .mat-dialog-container {\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\n background: #424242;\n color: white;\n}\n.green-theme .mat-divider {\n border-top-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-divider-vertical {\n border-right-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-expansion-panel {\n background: #424242;\n color: white;\n}\n.green-theme .mat-expansion-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-action-row {\n border-top-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]), .green-theme .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]), .green-theme .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]) {\n background: rgba(255, 255, 255, 0.04);\n}\n@media (hover: none) {\n .green-theme .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover {\n background: #424242;\n }\n}\n.green-theme .mat-expansion-panel-header-title {\n color: white;\n}\n.green-theme .mat-expansion-panel-header-description,\n.green-theme .mat-expansion-indicator::after {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-expansion-panel-header[aria-disabled=true] {\n color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,\n.green-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description {\n color: inherit;\n}\n.green-theme .mat-form-field-label {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-hint {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-form-field.mat-focused .mat-form-field-label {\n color: #8bc34a;\n}\n.green-theme .mat-form-field.mat-focused .mat-form-field-label.mat-accent {\n color: #4caf50;\n}\n.green-theme .mat-form-field.mat-focused .mat-form-field-label.mat-warn {\n color: #4caf50;\n}\n.green-theme .mat-focused .mat-form-field-required-marker {\n color: #4caf50;\n}\n.green-theme .mat-form-field-ripple {\n background-color: white;\n}\n.green-theme .mat-form-field.mat-focused .mat-form-field-ripple {\n background-color: #8bc34a;\n}\n.green-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {\n background-color: #4caf50;\n}\n.green-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {\n background-color: #4caf50;\n}\n.green-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {\n color: #8bc34a;\n}\n.green-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {\n color: #4caf50;\n}\n.green-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {\n color: #4caf50;\n}\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label {\n color: #4caf50;\n}\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {\n color: #4caf50;\n}\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {\n background-color: #4caf50;\n}\n.green-theme .mat-error {\n color: #4caf50;\n}\n.green-theme .mat-form-field-appearance-legacy .mat-form-field-label {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-form-field-appearance-legacy .mat-hint {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-form-field-appearance-legacy .mat-form-field-underline {\n background-color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0.7) 33%, transparent 0%);\n background-size: 4px 100%;\n background-repeat: repeat-x;\n}\n.green-theme .mat-form-field-appearance-standard .mat-form-field-underline {\n background-color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0.7) 33%, transparent 0%);\n background-size: 4px 100%;\n background-repeat: repeat-x;\n}\n.green-theme .mat-form-field-appearance-fill .mat-form-field-flex {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.green-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {\n background-color: rgba(255, 255, 255, 0.05);\n}\n.green-theme .mat-form-field-appearance-fill .mat-form-field-underline::before {\n background-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {\n background-color: transparent;\n}\n.green-theme .mat-form-field-appearance-outline .mat-form-field-outline {\n color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-form-field-appearance-outline .mat-form-field-outline-thick {\n color: white;\n}\n.green-theme .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {\n color: #8bc34a;\n}\n.green-theme .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {\n color: #4caf50;\n}\n.green-theme .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {\n color: #4caf50;\n}\n.green-theme .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {\n color: #4caf50;\n}\n.green-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {\n color: rgba(255, 255, 255, 0.15);\n}\n.green-theme .mat-icon.mat-primary {\n color: #8bc34a;\n}\n.green-theme .mat-icon.mat-accent {\n color: #4caf50;\n}\n.green-theme .mat-icon.mat-warn {\n color: #4caf50;\n}\n.green-theme .mat-form-field-type-mat-native-select .mat-form-field-infix::after {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-input-element:disabled,\n.green-theme .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element {\n caret-color: #8bc34a;\n}\n.green-theme .mat-input-element::-webkit-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element::-moz-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element::-ms-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element::placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element::-moz-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element::-webkit-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element:-ms-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element option {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-input-element option:disabled {\n color: rgba(0, 0, 0, 0.38);\n}\n.green-theme .mat-accent .mat-input-element {\n caret-color: #4caf50;\n}\n.green-theme .mat-warn .mat-input-element,\n.green-theme .mat-form-field-invalid .mat-input-element {\n caret-color: #4caf50;\n}\n.green-theme .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {\n color: #4caf50;\n}\n.green-theme .mat-list-base .mat-list-item {\n color: white;\n}\n.green-theme .mat-list-base .mat-list-option {\n color: white;\n}\n.green-theme .mat-list-base .mat-subheader {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-list-item-disabled {\n background-color: black;\n}\n.green-theme .mat-list-option:hover, .green-theme .mat-list-option:focus,\n.green-theme .mat-nav-list .mat-list-item:hover,\n.green-theme .mat-nav-list .mat-list-item:focus,\n.green-theme .mat-action-list .mat-list-item:hover,\n.green-theme .mat-action-list .mat-list-item:focus {\n background: rgba(255, 255, 255, 0.04);\n}\n.green-theme .mat-menu-panel {\n background: #424242;\n}\n.green-theme .mat-menu-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-menu-item {\n background: transparent;\n color: white;\n}\n.green-theme .mat-menu-item[disabled], .green-theme .mat-menu-item[disabled]::after {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-menu-item .mat-icon-no-color,\n.green-theme .mat-menu-item-submenu-trigger::after {\n color: white;\n}\n.green-theme .mat-menu-item:hover:not([disabled]),\n.green-theme .mat-menu-item.cdk-program-focused:not([disabled]),\n.green-theme .mat-menu-item.cdk-keyboard-focused:not([disabled]),\n.green-theme .mat-menu-item-highlighted:not([disabled]) {\n background: rgba(255, 255, 255, 0.04);\n}\n.green-theme .mat-paginator {\n background: #424242;\n}\n.green-theme .mat-paginator,\n.green-theme .mat-paginator-page-size .mat-select-trigger {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-paginator-decrement,\n.green-theme .mat-paginator-increment {\n border-top: 2px solid white;\n border-right: 2px solid white;\n}\n.green-theme .mat-paginator-first,\n.green-theme .mat-paginator-last {\n border-top: 2px solid white;\n}\n.green-theme .mat-icon-button[disabled] .mat-paginator-decrement,\n.green-theme .mat-icon-button[disabled] .mat-paginator-increment,\n.green-theme .mat-icon-button[disabled] .mat-paginator-first,\n.green-theme .mat-icon-button[disabled] .mat-paginator-last {\n border-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-progress-bar-background {\n fill: #dcedc8;\n}\n.green-theme .mat-progress-bar-buffer {\n background-color: #dcedc8;\n}\n.green-theme .mat-progress-bar-fill::after {\n background-color: #8bc34a;\n}\n.green-theme .mat-progress-bar.mat-accent .mat-progress-bar-background {\n fill: #c8e6c9;\n}\n.green-theme .mat-progress-bar.mat-accent .mat-progress-bar-buffer {\n background-color: #c8e6c9;\n}\n.green-theme .mat-progress-bar.mat-accent .mat-progress-bar-fill::after {\n background-color: #4caf50;\n}\n.green-theme .mat-progress-bar.mat-warn .mat-progress-bar-background {\n fill: #c8e6c9;\n}\n.green-theme .mat-progress-bar.mat-warn .mat-progress-bar-buffer {\n background-color: #c8e6c9;\n}\n.green-theme .mat-progress-bar.mat-warn .mat-progress-bar-fill::after {\n background-color: #4caf50;\n}\n.green-theme .mat-progress-spinner circle, .green-theme .mat-spinner circle {\n stroke: #8bc34a;\n}\n.green-theme .mat-progress-spinner.mat-accent circle, .green-theme .mat-spinner.mat-accent circle {\n stroke: #4caf50;\n}\n.green-theme .mat-progress-spinner.mat-warn circle, .green-theme .mat-spinner.mat-warn circle {\n stroke: #4caf50;\n}\n.green-theme .mat-radio-outer-circle {\n border-color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {\n border-color: #8bc34a;\n}\n.green-theme .mat-radio-button.mat-primary .mat-radio-inner-circle,\n.green-theme .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .green-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple, .green-theme .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {\n background-color: #8bc34a;\n}\n.green-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {\n border-color: #4caf50;\n}\n.green-theme .mat-radio-button.mat-accent .mat-radio-inner-circle,\n.green-theme .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .green-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple, .green-theme .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {\n background-color: #4caf50;\n}\n.green-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {\n border-color: #4caf50;\n}\n.green-theme .mat-radio-button.mat-warn .mat-radio-inner-circle,\n.green-theme .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .green-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple, .green-theme .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {\n background-color: #4caf50;\n}\n.green-theme .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,\n.green-theme .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {\n border-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,\n.green-theme .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {\n background-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-radio-button.mat-radio-disabled .mat-radio-label-content {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-radio-button .mat-ripple-element {\n background-color: white;\n}\n.green-theme .mat-select-value {\n color: white;\n}\n.green-theme .mat-select-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-select-disabled .mat-select-value {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-select-arrow {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-select-panel {\n background: #424242;\n}\n.green-theme .mat-select-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {\n background: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-form-field.mat-focused.mat-primary .mat-select-arrow {\n color: #8bc34a;\n}\n.green-theme .mat-form-field.mat-focused.mat-accent .mat-select-arrow {\n color: #4caf50;\n}\n.green-theme .mat-form-field.mat-focused.mat-warn .mat-select-arrow {\n color: #4caf50;\n}\n.green-theme .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {\n color: #4caf50;\n}\n.green-theme .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-drawer-container {\n background-color: #303030;\n color: white;\n}\n.green-theme .mat-drawer {\n background-color: #424242;\n color: white;\n}\n.green-theme .mat-drawer.mat-drawer-push {\n background-color: #424242;\n}\n.green-theme .mat-drawer:not(.mat-drawer-side) {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-drawer-side {\n border-right: solid 1px rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-drawer-side.mat-drawer-end {\n border-left: solid 1px rgba(255, 255, 255, 0.12);\n border-right: none;\n}\n.green-theme [dir=rtl] .mat-drawer-side {\n border-left: solid 1px rgba(255, 255, 255, 0.12);\n border-right: none;\n}\n.green-theme [dir=rtl] .mat-drawer-side.mat-drawer-end {\n border-left: none;\n border-right: solid 1px rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-drawer-backdrop.mat-drawer-shown {\n background-color: rgba(189, 189, 189, 0.6);\n}\n.green-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {\n background-color: #4caf50;\n}\n.green-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-bar {\n background-color: rgba(76, 175, 80, 0.54);\n}\n.green-theme .mat-slide-toggle.mat-checked .mat-ripple-element {\n background-color: #4caf50;\n}\n.green-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {\n background-color: #8bc34a;\n}\n.green-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {\n background-color: rgba(139, 195, 74, 0.54);\n}\n.green-theme .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {\n background-color: #8bc34a;\n}\n.green-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {\n background-color: #4caf50;\n}\n.green-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {\n background-color: rgba(76, 175, 80, 0.54);\n}\n.green-theme .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {\n background-color: #4caf50;\n}\n.green-theme .mat-slide-toggle:not(.mat-checked) .mat-ripple-element {\n background-color: white;\n}\n.green-theme .mat-slide-toggle-thumb {\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n background-color: #bdbdbd;\n}\n.green-theme .mat-slide-toggle-bar {\n background-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-slider-track-background {\n background-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-primary .mat-slider-track-fill,\n.green-theme .mat-primary .mat-slider-thumb,\n.green-theme .mat-primary .mat-slider-thumb-label {\n background-color: #8bc34a;\n}\n.green-theme .mat-primary .mat-slider-thumb-label-text {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-accent .mat-slider-track-fill,\n.green-theme .mat-accent .mat-slider-thumb,\n.green-theme .mat-accent .mat-slider-thumb-label {\n background-color: #4caf50;\n}\n.green-theme .mat-accent .mat-slider-thumb-label-text {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-warn .mat-slider-track-fill,\n.green-theme .mat-warn .mat-slider-thumb,\n.green-theme .mat-warn .mat-slider-thumb-label {\n background-color: #4caf50;\n}\n.green-theme .mat-warn .mat-slider-thumb-label-text {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-slider-focus-ring {\n background-color: rgba(76, 175, 80, 0.2);\n}\n.green-theme .mat-slider:hover .mat-slider-track-background,\n.green-theme .cdk-focused .mat-slider-track-background {\n background-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-slider-disabled .mat-slider-track-background,\n.green-theme .mat-slider-disabled .mat-slider-track-fill,\n.green-theme .mat-slider-disabled .mat-slider-thumb {\n background-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-slider-disabled:hover .mat-slider-track-background {\n background-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-slider-min-value .mat-slider-focus-ring {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,\n.green-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label {\n background-color: white;\n}\n.green-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,\n.green-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label {\n background-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb {\n border-color: rgba(255, 255, 255, 0.3);\n background-color: transparent;\n}\n.green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb, .green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb {\n border-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb, .green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb {\n border-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-slider-has-ticks .mat-slider-wrapper::after {\n border-color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-slider-horizontal .mat-slider-ticks {\n background-image: repeating-linear-gradient(to right, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\n background-image: -moz-repeating-linear-gradient(0.0001deg, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\n}\n.green-theme .mat-slider-vertical .mat-slider-ticks {\n background-image: repeating-linear-gradient(to bottom, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\n}\n.green-theme .mat-step-header.cdk-keyboard-focused, .green-theme .mat-step-header.cdk-program-focused, .green-theme .mat-step-header:hover {\n background-color: rgba(255, 255, 255, 0.04);\n}\n@media (hover: none) {\n .green-theme .mat-step-header:hover {\n background: none;\n }\n}\n.green-theme .mat-step-header .mat-step-label,\n.green-theme .mat-step-header .mat-step-optional {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-step-header .mat-step-icon {\n background-color: rgba(255, 255, 255, 0.7);\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-step-header .mat-step-icon-selected,\n.green-theme .mat-step-header .mat-step-icon-state-done,\n.green-theme .mat-step-header .mat-step-icon-state-edit {\n background-color: #8bc34a;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-step-header .mat-step-icon-state-error {\n background-color: transparent;\n color: #4caf50;\n}\n.green-theme .mat-step-header .mat-step-label.mat-step-label-active {\n color: white;\n}\n.green-theme .mat-step-header .mat-step-label.mat-step-label-error {\n color: #4caf50;\n}\n.green-theme .mat-stepper-horizontal, .green-theme .mat-stepper-vertical {\n background-color: #424242;\n}\n.green-theme .mat-stepper-vertical-line::before {\n border-left-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-horizontal-stepper-header::before,\n.green-theme .mat-horizontal-stepper-header::after,\n.green-theme .mat-stepper-horizontal-line {\n border-top-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-sort-header-arrow {\n color: #c6c6c6;\n}\n.green-theme .mat-tab-nav-bar,\n.green-theme .mat-tab-header {\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-tab-group-inverted-header .mat-tab-nav-bar,\n.green-theme .mat-tab-group-inverted-header .mat-tab-header {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n border-bottom: none;\n}\n.green-theme .mat-tab-label, .green-theme .mat-tab-link {\n color: white;\n}\n.green-theme .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-link.mat-tab-disabled {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-tab-header-pagination-chevron {\n border-color: white;\n}\n.green-theme .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-tab-group[class*=mat-background-] .mat-tab-header,\n.green-theme .mat-tab-nav-bar[class*=mat-background-] {\n border-bottom: none;\n border-top: none;\n}\n.green-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(220, 237, 200, 0.3);\n}\n.green-theme .mat-tab-group.mat-primary .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-primary .mat-ink-bar {\n background-color: #8bc34a;\n}\n.green-theme .mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar {\n background-color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(200, 230, 201, 0.3);\n}\n.green-theme .mat-tab-group.mat-accent .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-accent .mat-ink-bar {\n background-color: #4caf50;\n}\n.green-theme .mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar {\n background-color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(200, 230, 201, 0.3);\n}\n.green-theme .mat-tab-group.mat-warn .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-warn .mat-ink-bar {\n background-color: #4caf50;\n}\n.green-theme .mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar {\n background-color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(220, 237, 200, 0.3);\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-header, .green-theme .mat-tab-group.mat-background-primary .mat-tab-links, .green-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-links, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination {\n background-color: #8bc34a;\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-label, .green-theme .mat-tab-group.mat-background-primary .mat-tab-link, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled {\n color: rgba(0, 0, 0, 0.4);\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.4);\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-ripple-element, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(200, 230, 201, 0.3);\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-header, .green-theme .mat-tab-group.mat-background-accent .mat-tab-links, .green-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-links, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination {\n background-color: #4caf50;\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-label, .green-theme .mat-tab-group.mat-background-accent .mat-tab-link, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled {\n color: rgba(0, 0, 0, 0.4);\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.4);\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-ripple-element, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(200, 230, 201, 0.3);\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-header, .green-theme .mat-tab-group.mat-background-warn .mat-tab-links, .green-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-links, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination {\n background-color: #4caf50;\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-label, .green-theme .mat-tab-group.mat-background-warn .mat-tab-link, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled {\n color: rgba(0, 0, 0, 0.4);\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.4);\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-ripple-element, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-toolbar {\n background: #212121;\n color: white;\n}\n.green-theme .mat-toolbar.mat-primary {\n background: #8bc34a;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-toolbar.mat-accent {\n background: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-toolbar.mat-warn {\n background: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-toolbar .mat-form-field-underline,\n.green-theme .mat-toolbar .mat-form-field-ripple,\n.green-theme .mat-toolbar .mat-focused .mat-form-field-ripple {\n background-color: currentColor;\n}\n.green-theme .mat-toolbar .mat-form-field-label,\n.green-theme .mat-toolbar .mat-focused .mat-form-field-label,\n.green-theme .mat-toolbar .mat-select-value,\n.green-theme .mat-toolbar .mat-select-arrow,\n.green-theme .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow {\n color: inherit;\n}\n.green-theme .mat-toolbar .mat-input-element {\n caret-color: currentColor;\n}\n.green-theme .mat-tooltip {\n background: rgba(97, 97, 97, 0.9);\n}\n.green-theme .mat-tree {\n background: #424242;\n}\n.green-theme .mat-tree-node,\n.green-theme .mat-nested-tree-node {\n color: white;\n}\n.green-theme .mat-snack-bar-container {\n color: rgba(0, 0, 0, 0.87);\n background: #fafafa;\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-simple-snackbar-action {\n color: inherit;\n}\n.green-theme h1 {\n color: #8bc34a;\n}\n/* You can add global styles to this file, and also import other style files */\nhtml, body {\n height: 100%;\n}\nbody {\n margin: 0;\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.flex-spacer {\n flex: 1 1 auto;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvbWF0ZXJpYWwvX3RoZW1pbmcuc2NzcyIsIi4uL3N0eWxlcy5zY3NzIiwiL2RhdGEvaG9tZS9rbmlzdGVyMC9naXRodWJzL05pZXR6c2NoZUJldGEvbmlldHpzY2hlLWJldGEtYXBwL3NyYy9zdHlsZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwMUNBLGtDQUFBO0FBNmlEQSwyQ0FBQTtBQXdDQSxxQkFBQTtBQXgvQkU7RUFDRSxnQkFyTG9CO0VBc0xwQixlQXZMa0I7RUF3TGxCLGlEQUFBO0FDbjdESjtBRHM3REU7RUFFRSxjQUFBO0FDcDdESjtBRHU3REU7RUFDRSxlQUFBO0FDcDdESjtBRHluREU7RUE5TkUsd0RBQUE7RUFnT0EsZ0JBQUE7QUN0bkRKO0FEeW5ERTtFQW5PRSx3REFBQTtFQXFPQSxnQkFBQTtBQ3RuREo7QUR5bkRFO0VBeE9FLHdEQUFBO0VBME9BLGdCQUFBO0FDdG5ESjtBRHluREU7RUE3T0Usd0RBQUE7RUErT0EsZ0JBQUE7QUN0bkRKO0FENG5ERTtFQXJQRSxxRUFBQTtFQThQQSxnQkFBQTtBQ2hvREo7QURtb0RFO0VBalFFLHFFQUFBO0VBMFFBLGdCQUFBO0FDdm9ESjtBRDBvREU7RUE3UUUsd0RBQUE7QUN6M0NKO0FEMG9ERTtFQWpSRSx3REFBQTtBQ3IzQ0o7QUR5b0RJO0VBQ0UsZ0JBQUE7QUN2b0ROO0FEMm9ERTtFQXpSRSx3REFBQTtBQzkyQ0o7QUQyb0RFO0VBN1JFLDBEQUFBO0VBWUYsdUJBQUE7RUFtUkUsZ0JBQUE7QUN2b0RKO0FEMG9ERTtFQWxTRSx3REFBQTtFQVlGLHVCQUFBO0VBd1JFLGdCQUFBO0FDdG9ESjtBRHlvREU7RUF2U0Usd0RBQUE7RUFZRix3QkFBQTtFQTZSRSxnQkFBQTtBQ3JvREo7QUR3b0RFO0VBNVNFLHdEQUFBO0VBOFNBLGdCQUFB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Qy9oQko7QUQ2Zk07Ozs7O0VBQ0UsMENBQUE7QUN2ZlI7QUQrZkU7RUFDRSx5QkFBQTtBQzdmSjtBRGlnQkU7RUFDRSwwQkFBQTtBQy9mSjtBRGlnQkk7RUFDRSx5QkFBQTtBQy9mTjtBRG9nQkU7RUFDRSxpQ0FBQTtBQ2xnQko7QURxZ0JFO0VBQ0UsZ0NBQUE7QUNuZ0JKO0FEd2dCRTtFQUNFLHFDQUFBO0FDdGdCSjtBRG9lTTs7Ozs7RUFDRSwwQ0FBQTtBQzlkUjtBRHNlRTtFQUNFLHlCQUFBO0FDcGVKO0FEd2VFO0VBQ0UsMEJBQUE7QUN0ZUo7QUR3ZUk7RUFDRSx5QkFBQTtBQ3RlTjtBRDJlRTtFQUNFLGlDQUFBO0FDemVKO0FENGVFO0VBQ0UsZ0NBQUE7QUMxZUo7QUQrZUU7RUFDRSxxQ0FBQTtBQzdlSjtBRG9pQkU7RUFDRSxtQkFBQTtFQUNBLFlBQUE7QUNsaUJKO0FEb2lCSTtFQW5DRixtQkFBQTtFQUNBLDBCQUFBO0FDOWZGO0FEb2lCSTtFQXZDRixtQkFBQTtFQUNBLDBCQUFBO0FDMWZGO0FEb2lCSTtFQTNDRixtQkFBQTtFQUNBLDBCQUFBO0FDdGZGO0FEMGZFOzs7RUFHRSw4QkFBQTtBQ3hmSjtBRDJmRTs7Ozs7RUFLRSxjQUFBO0FDemZKO0FENGZFO0VBQ0UseUJBQUE7QUMxZko7QURvakJFO0VBQ0UsaUNBQUE7QUNsakJKO0FEaXhDRTtFQUNFLG1CQUFBO0FDL3dDSjtBRGt4Q0U7O0VBRUUsWUFBQTtBQ2h4Q0o7QURza0JFO0VBR0UsMEJBQUE7RUFDQSxtQkFBQTtFQTFvSEYsMkhBQUE7QUNxa0dGO0FEMGtCRTtFQUNFLGNBQUE7QUN4a0JKO0FDcCtHRTtFQUFLLGNBQUE7QUR1K0dQO0FDbitHQSw4RUFBQTtBQUdBO0VBQWEsWUFBQTtBRHErR2I7QUNwK0dBO0VBQU8sU0FBQTtFQUFXLGlEQUFBO0FEeStHbEI7QUN2K0dBO0VBQ0UsY0FBQTtBRDArR0YiLCJmaWxlIjoiLi4vc3R5bGVzLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnQgYWxsIHRoZSB0aGVtaW5nIGZ1bmN0aW9uYWxpdHkuXG4vLyBXZSBjYW4gdXNlIHJlbGF0aXZlIGltcG9ydHMgZm9yIGltcG9ydHMgZnJvbSB0aGUgY2RrIGJlY2F1c2Ugd2UgYnVuZGxlIGV2ZXJ5dGhpbmdcbi8vIHVwIGludG8gYSBzaW5nbGUgZmxhdCBzY3NzIGZpbGUgZm9yIG1hdGVyaWFsLlxuLy8gV2Ugd2FudCBvdmVybGF5cyB0byBhbHdheXMgYXBwZWFyIG92ZXIgdXNlciBjb250ZW50LCBzbyBzZXQgYSBiYXNlbGluZVxuLy8gdmVyeSBoaWdoIHotaW5kZXggZm9yIHRoZSBvdmVybGF5IGNvbnRhaW5lciwgd2hpY2ggaXMgd2hlcmUgd2UgY3JlYXRlIHRoZSBuZXdcbi8vIHN0YWNraW5nIGNvbnRleHQgZm9yIGFsbCBvdmVybGF5cy5cbiRjZGstei1pbmRleC1vdmVybGF5LWNvbnRhaW5lcjogMTAwMCAhZGVmYXVsdDtcbiRjZGstei1pbmRleC1vdmVybGF5OiAxMDAwICFkZWZhdWx0O1xuJGNkay16LWluZGV4LW92ZXJsYXktYmFja2Ryb3A6IDEwMDAgIWRlZmF1bHQ7XG5cbi8vIEJhY2tncm91bmQgY29sb3IgZm9yIGFsbCBvZiB0aGUgYmFja2Ryb3BzXG4kY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcC1iYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzIpICFkZWZhdWx0O1xuXG4vLyBEZWZhdWx0IGJhY2tkcm9wIGFuaW1hdGlvbiBpcyBiYXNlZCBvbiB0aGUgTWF0ZXJpYWwgRGVzaWduIHN3aWZ0LWVhc2Utb3V0LlxuJGJhY2tkcm9wLWFuaW1hdGlvbi1kdXJhdGlvbjogNDAwbXMgIWRlZmF1bHQ7XG4kYmFja2Ryb3AtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSkgIWRlZmF1bHQ7XG5cblxuQG1peGluIGNkay1vdmVybGF5KCkge1xuICAuY2RrLW92ZXJsYXktY29udGFpbmVyLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICAgIC8vIERpc2FibGUgZXZlbnRzIGZyb20gYmVpbmcgY2FwdHVyZWQgb24gdGhlIG92ZXJsYXkgY29udGFpbmVyLlxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgLy8gVGhlIGNvbnRhaW5lciBzaG91bGQgYmUgdGhlIHNpemUgb2YgdGhlIHZpZXdwb3J0LlxuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIFRoZSBvdmVybGF5LWNvbnRhaW5lciBpcyBhbiBpbnZpc2libGUgZWxlbWVudCB3aGljaCBjb250YWlucyBhbGwgaW5kaXZpZHVhbCBvdmVybGF5cy5cbiAgLmNkay1vdmVybGF5LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5LWNvbnRhaW5lcjtcblxuICAgICY6ZW1wdHkge1xuICAgICAgLy8gSGlkZSB0aGUgZWxlbWVudCB3aGVuIGl0IGRvZXNuJ3QgaGF2ZSBhbnkgY2hpbGQgbm9kZXMuIFRoaXMgZG9lc24ndFxuICAgICAgLy8gaW5jbHVkZSBvdmVybGF5cyB0aGF0IGhhdmUgYmVlbiBkZXRhY2hlZCwgcmF0aGVyIHRoYW4gZGlzcG9zZWQuXG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdlIHVzZSBhbiBleHRyYSB3cmFwcGVyIGVsZW1lbnQgaW4gb3JkZXIgdG8gdXNlIG1ha2UgdGhlIG92ZXJsYXkgaXRzZWxmIGEgZmxleCBpdGVtLlxuICAvLyBUaGlzIG1ha2VzIGNlbnRlcmluZyB0aGUgb3ZlcmxheSBlYXN5IHdpdGhvdXQgcnVubmluZyBpbnRvIHRoZSBzdWJwaXhlbCByZW5kZXJpbmdcbiAgLy8gcHJvYmxlbXMgdGllZCB0byB1c2luZyBgdHJhbnNmb3JtYCBhbmQgd2l0aG91dCBpbnRlcmZlcmluZyB3aXRoIHRoZSBvdGhlciBwb3NpdGlvblxuICAvLyBzdHJhdGVnaWVzLlxuICAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5O1xuICB9XG5cbiAgLy8gQSBzaW5nbGUgb3ZlcmxheSBwYW5lLlxuICAuY2RrLW92ZXJsYXktcGFuZSB7XG4gICAgLy8gTm90ZTogaXQncyBpbXBvcnRhbnQgZm9yIHRoaXMgb25lIHRvIHN0YXJ0IG9mZiBgYWJzb2x1dGVgLFxuICAgIC8vIGluIG9yZGVyIGZvciB1cyB0byBiZSBhYmxlIHRvIG1lYXN1cmUgaXQgY29ycmVjdGx5LlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5O1xuXG4gICAgLy8gRm9yIGNvbm5lY3RlZC1wb3NpdGlvbiBvdmVybGF5cywgd2Ugc2V0IGBkaXNwbGF5OiBmbGV4YCBpblxuICAgIC8vIG9yZGVyIHRvIGZvcmNlIGBtYXgtd2lkdGhgIGFuZCBgbWF4LWhlaWdodGAgdG8gdGFrZSBlZmZlY3QuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1iYWNrZHJvcCB7XG4gICAgLy8gVE9ETyhqZWxib3Vybik6IHJldXNlIHNpZGVuYXYgZnVsbHNjcmVlbiBtaXhpbi5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuXG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXktYmFja2Ryb3A7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRiYWNrZHJvcC1hbmltYXRpb24tZHVyYXRpb24gJGJhY2tkcm9wLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb247XG4gICAgb3BhY2l0eTogMDtcblxuICAgICYuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAvLyBJbiBoaWdoIGNvbnRyYXN0IG1vZGUgdGhlIHJnYmEgYmFja2dyb3VuZCB3aWxsIGJlY29tZSBzb2xpZCBzbyB3ZSBuZWVkIHRvIGZhbGwgYmFja1xuICAgICAgLy8gdG8gbWFraW5nIGl0IG9wYXF1ZSB1c2luZyBgb3BhY2l0eWAuIE5vdGUgdGhhdCB3ZSBjYW4ndCB1c2UgdGhlIGBjZGstaGlnaC1jb250cmFzdGBcbiAgICAgIC8vIG1peGluLCBiZWNhdXNlIHdlIGNhbid0IG5vcm1hbGl6ZSB0aGUgaW1wb3J0IHBhdGggdG8gdGhlIF9hMTF5LnNjc3MgYm90aCBmb3IgdGhlXG4gICAgICAvLyBzb3VyY2UgYW5kIHdoZW4gdGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkLiBTZWUgIzEwOTA4LlxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wIHtcbiAgICBiYWNrZ3JvdW5kOiAkY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcC1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wIHtcbiAgICAvLyBOb3RlOiBhcyBvZiBGaXJlZm94IDU3LCBoYXZpbmcgdGhlIGJhY2tkcm9wIGJlIGBiYWNrZ3JvdW5kOiBub25lYCB3aWxsIHByZXZlbnQgaXQgZnJvbVxuICAgIC8vIGNhcHR1cmluZyB0aGUgdXNlcidzIG1vdXNlIHNjcm9sbCBldmVudHMuIFNpbmNlIHdlIGFsc28gY2FuJ3QgdXNlIHNvbWV0aGluZyBsaWtlXG4gICAgLy8gYHJnYmEoMCwgMCwgMCwgMClgLCB3ZSB3b3JrIGFyb3VuZCB0aGUgaW5jb25zaXN0ZW5jeSBieSBub3Qgc2V0dGluZyB0aGUgYmFja2dyb3VuZCBhdFxuICAgIC8vIGFsbCBhbmQgdXNpbmcgYG9wYWNpdHlgIHRvIG1ha2UgdGhlIGVsZW1lbnQgdHJhbnNwYXJlbnQuXG4gICAgJiwgJi5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gT3ZlcmxheSBwYXJlbnQgZWxlbWVudCB1c2VkIHdpdGggdGhlIGNvbm5lY3RlZCBwb3NpdGlvbiBzdHJhdGVneS4gVXNlZCB0byBjb25zdHJhaW4gdGhlXG4gIC8vIG92ZXJsYXkgZWxlbWVudCdzIHNpemUgdG8gZml0IHdpdGhpbiB0aGUgdmlld3BvcnQuXG4gIC5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXk7XG5cbiAgICAvLyBXZSB1c2UgYGRpc3BsYXk6IGZsZXhgIG9uIHRoaXMgZWxlbWVudCBleGNsdXNpdmVseSBmb3IgY2VudGVyaW5nIGNvbm5lY3RlZCBvdmVybGF5cy5cbiAgICAvLyBXaGVuICpub3QqIGNlbnRlcmluZywgYSB0b3AvbGVmdC9ib3R0b20vcmlnaHQgd2lsbCBiZSBzZXQgd2hpY2ggb3ZlcnJpZGVzIHRoZSBub3JtYWxcbiAgICAvLyBmbGV4IGxheW91dC5cbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgLy8gV2UgdXNlIHRoZSBgY29sdW1uYCBkaXJlY3Rpb24gaGVyZSB0byBhdm9pZCBzb21lIGZsZXhib3ggaXNzdWVzIGluIEVkZ2VcbiAgICAvLyB3aGVuIHVzaW5nIHRoZSBcImdyb3cgYWZ0ZXIgb3BlblwiIG9wdGlvbnMuXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC8vIEFkZCBzb21lIGRpbWVuc2lvbnMgc28gdGhlIGVsZW1lbnQgaGFzIGFuIGBpbm5lclRleHRgIHdoaWNoIHNvbWUgcGVvcGxlIGRlcGVuZCBvbiBpbiB0ZXN0cy5cbiAgICBtaW4td2lkdGg6IDFweDtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gIH1cblxuICAvLyBVc2VkIHdoZW4gZGlzYWJsaW5nIGdsb2JhbCBzY3JvbGxpbmcuXG4gIC5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG5cbiAgICAvLyBOZWNlc3NhcnkgZm9yIHRoZSBjb250ZW50IG5vdCB0byBsb3NlIGl0cyB3aWR0aC4gTm90ZSB0aGF0IHdlJ3JlIHVzaW5nIDEwMCUsIGluc3RlYWQgb2ZcbiAgICAvLyAxMDB2dywgYmVjYXVzZSAxMDB2dyBpbmNsdWRlcyB0aGUgd2lkdGggcGx1cyB0aGUgc2Nyb2xsYmFyLCB3aGVyZWFzIDEwMCUgaXMgdGhlIHdpZHRoXG4gICAgLy8gdGhhdCB0aGUgZWxlbWVudCBoYWQgYmVmb3JlIHdlIG1hZGUgaXQgYGZpeGVkYC5cbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC8vIE5vdGU6IHRoaXMgd2lsbCBhbHdheXMgYWRkIGEgc2Nyb2xsYmFyIHRvIHdoYXRldmVyIGVsZW1lbnQgaXQgaXMgb24sIHdoaWNoIGNhblxuICAgIC8vIHBvdGVudGlhbGx5IHJlc3VsdCBpbiBkb3VibGUgc2Nyb2xsYmFycy4gSXQgc2hvdWxkbid0IGJlIGFuIGlzc3VlLCBiZWNhdXNlIHdlIHdvbid0XG4gICAgLy8gYmxvY2sgc2Nyb2xsaW5nIG9uIGEgcGFnZSB0aGF0IGRvZXNuJ3QgaGF2ZSBhIHNjcm9sbGJhciBpbiB0aGUgZmlyc3QgcGxhY2UuXG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICB9XG59XG5cbkBtaXhpbiBjZGstYTExeSB7XG4gIC5jZGstdmlzdWFsbHktaGlkZGVuIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuXG4gICAgLy8gQXZvaWQgYnJvd3NlcnMgcmVuZGVyaW5nIHRoZSBmb2N1cyByaW5nIGluIHNvbWUgY2FzZXMuXG4gICAgb3V0bGluZTogMDtcblxuICAgIC8vIEF2b2lkIHNvbWUgY2FzZXMgd2hlcmUgdGhlIGJyb3dzZXIgd2lsbCBzdGlsbCByZW5kZXIgdGhlIG5hdGl2ZSBjb250cm9scyAoc2VlICM5MDQ5KS5cbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICB9XG59XG5cbi8vIEFwcGxpZXMgc3R5bGVzIGZvciB1c2VycyBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuIE5vdGUgdGhhdCB0aGlzIG9ubHkgYXBwbGllc1xuLy8gdG8gTWljcm9zb2Z0IGJyb3dzZXJzLiBDaHJvbWUgY2FuIGJlIGluY2x1ZGVkIGJ5IGNoZWNraW5nIGZvciB0aGUgYGh0bWxbaGNdYFxuLy8gYXR0cmlidXRlLCBob3dldmVyIENocm9tZSBoYW5kbGVzIGhpZ2ggY29udHJhc3QgZGlmZmVyZW50bHkuXG4vL1xuLy8gQHBhcmFtIHRhcmdldCBXaGljaCBraW5kIG9mIGhpZ2ggY29udHJhc3Qgc2V0dGluZyB0byB0YXJnZXQuIERlZmF1bHRzIHRvIGBhY3RpdmVgLCBjYW4gYmVcbi8vICAgIGB3aGl0ZS1vbi1ibGFja2Agb3IgYGJsYWNrLW9uLXdoaXRlYC5cbkBtaXhpbiBjZGstaGlnaC1jb250cmFzdCgkdGFyZ2V0OiBhY3RpdmUpIHtcbiAgQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogJHRhcmdldCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIENvcmUgc3R5bGVzIHRoYXQgZW5hYmxlIG1vbml0b3JpbmcgYXV0b2ZpbGwgc3RhdGUgb2YgdGV4dCBmaWVsZHMuXG5AbWl4aW4gY2RrLXRleHQtZmllbGQge1xuICAvLyBLZXlmcmFtZXMgdGhhdCBhcHBseSBubyBzdHlsZXMsIGJ1dCBhbGxvdyB1cyB0byBtb25pdG9yIHdoZW4gYW4gdGV4dCBmaWVsZCBiZWNvbWVzIGF1dG9maWxsZWRcbiAgLy8gYnkgd2F0Y2hpbmcgZm9yIHRoZSBhbmltYXRpb24gZXZlbnRzIHRoYXQgYXJlIGZpcmVkIHdoZW4gdGhleSBzdGFydC4gTm90ZTogdGhlIC8qISovIGNvbW1lbnQgaXNcbiAgLy8gbmVlZGVkIHRvIHByZXZlbnQgTGliU2FzcyBmcm9tIHN0cmlwcGluZyB0aGUga2V5ZnJhbWVzIG91dC5cbiAgLy8gQmFzZWQgb246IGh0dHBzOi8vbWVkaXVtLmNvbS9AYnJ1bm4vZGV0ZWN0aW5nLWF1dG9maWxsZWQtZmllbGRzLWluLWphdmFzY3JpcHQtYWVkNTk4ZDI1ZGE3XG4gIEBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgey8qISovfVxuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCB7LyohKi99XG5cbiAgLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxsIHtcbiAgICBhbmltYXRpb24tbmFtZTogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQ7XG4gIH1cblxuICAuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCkge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQ7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIHJlc2l6ZSBoYW5kbGUgb24gYXV0b3NpemluZyB0ZXh0YXJlYXMsIGJlY2F1c2Ugd2hhdGV2ZXIgaGVpZ2h0XG4gIC8vIHRoZSB1c2VyIHJlc2l6ZWQgdG8gd2lsbCBiZSBvdmVyd3JpdHRlbiBvbmNlIHRoZXkgc3RhcnQgdHlwaW5nIGFnYWluLlxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUge1xuICAgIHJlc2l6ZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRoaXMgY2xhc3MgaXMgdGVtcG9yYXJpbHkgYXBwbGllZCB0byB0aGUgdGV4dGFyZWEgd2hlbiBpdCBpcyBiZWluZyBtZWFzdXJlZC4gSXQgaXMgaW1tZWRpYXRlbHlcbiAgLy8gcmVtb3ZlZCB3aGVuIG1lYXN1cmluZyBpcyBjb21wbGV0ZS4gV2UgdXNlIGAhaW1wb3J0YW50YCBydWxlcyBoZXJlIHRvIG1ha2Ugc3VyZSB1c2VyLXNwZWNpZmllZFxuICAvLyBydWxlcyBkbyBub3QgaW50ZXJmZXJlIHdpdGggdGhlIG1lYXN1cmVtZW50LlxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nIHtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgLy8gSGF2aW5nIDJweCB0b3AgYW5kIGJvdHRvbSBwYWRkaW5nIHNlZW1zIHRvIGZpeCBhIGJ1ZyB3aGVyZSBDaHJvbWUgZ2V0cyBhbiBpbmNvcnJlY3RcbiAgICAvLyBtZWFzdXJlbWVudC4gV2UganVzdCBoYXZlIHRvIGFjY291bnQgZm9yIGl0IGxhdGVyIGFuZCBzdWJ0cmFjdCBpdCBvZmYgdGhlIGZpbmFsIHJlc3VsdC5cbiAgICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8gVXNlZCB0byBnZW5lcmF0ZSBVSURzIGZvciBrZXlmcmFtZXMgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQgZmllbGQgYXV0b2ZpbGwgc3R5bGVzLlxuJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50OiAwO1xuXG4vLyBNaXhpbiB1c2VkIHRvIGFwcGx5IGN1c3RvbSBiYWNrZ3JvdW5kIGFuZCBmb3JlZ3JvdW5kIGNvbG9ycyB0byBhbiBhdXRvZmlsbGVkIHRleHQgZmllbGQuXG4vLyBCYXNlZCBvbjogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjc4MTU0OS9cbi8vIHJlbW92aW5nLWlucHV0LWJhY2tncm91bmQtY29sb3VyLWZvci1jaHJvbWUtYXV0b2NvbXBsZXRlI2Fuc3dlci0zNzQzMjI2MFxuQG1peGluIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yKCRiYWNrZ3JvdW5kLCAkZm9yZWdyb3VuZDonJykge1xuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLSN7JGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50fSB7XG4gICAgdG8ge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICBAaWYgJGZvcmVncm91bmQgIT0gJycgeyBjb2xvcjogJGZvcmVncm91bmQ7IH1cbiAgICB9XG4gIH1cblxuICAmOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci0jeyRjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudH07XG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgfVxuXG4gICYuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCxcbiAgICAgICAgICAgICAgICAgICAgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItI3skY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnR9O1xuICB9XG5cbiAgJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50OlxuICAgICAgJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50ICsgMSAhZ2xvYmFsO1xufVxuXG5cbi8vIENvcmUgc3R5bGVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gYXBwbHkgbWF0ZXJpYWwgZGVzaWduIHRyZWF0bWVudHMgdG8gYW55IGVsZW1lbnQuXG4vLyBNZWRpYSBxdWVyaWVzXG4vLyBUT0RPKGpvc2VwaHBlcnJvdHQpOiBDaGFuZ2UgJG1hdC14c21hbGwgYW5kICRtYXQtc21hbGwgdXNhZ2VzIHRvIHJlbHkgb24gQnJlYWtwb2ludE9ic2VydmVyLFxuJG1hdC14c21hbGw6ICdtYXgtd2lkdGg6IDU5OXB4JztcbiRtYXQtc21hbGw6ICdtYXgtd2lkdGg6IDk1OXB4JztcblxuLy8gVE9ETzogUmV2aXNpdCBhbGwgei1pbmRpY2VzIGJlZm9yZSBiZXRhXG4vLyB6LWluZGV4IG1hc3RlciBsaXN0XG5cbiR6LWluZGV4LWZhYjogMjAgIWRlZmF1bHQ7XG4kei1pbmRleC1kcmF3ZXI6IDEwMCAhZGVmYXVsdDtcblxuLy8gR2xvYmFsIGNvbnN0YW50c1xuJHBpOiAzLjE0MTU5MjY1O1xuXG4vLyBQYWRkaW5nIGJldHdlZW4gaW5wdXQgdG9nZ2xlcyBhbmQgdGhlaXIgbGFiZWxzXG4kbWF0LXRvZ2dsZS1wYWRkaW5nOiA4cHggIWRlZmF1bHQ7XG4vLyBXaWR0aCBhbmQgaGVpZ2h0IG9mIGlucHV0IHRvZ2dsZXNcbiRtYXQtdG9nZ2xlLXNpemU6IDIwcHggIWRlZmF1bHQ7XG5cbi8vIEVhc2luZyBDdXJ2ZXNcbi8vIFRPRE8oamVsYm91cm4pOiBhbGwgb2YgdGhlc2UgbmVlZCB0byBiZSByZXZpc2l0ZWRcblxuLy8gVGhlIGRlZmF1bHQgYW5pbWF0aW9uIGN1cnZlcyB1c2VkIGJ5IG1hdGVyaWFsIGRlc2lnbi5cbiRtYXQtbGluZWFyLW91dC1zbG93LWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMC4xKSAhZGVmYXVsdDtcbiRtYXQtZmFzdC1vdXQtc2xvdy1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWRlZmF1bHQ7XG4kbWF0LWZhc3Qtb3V0LWxpbmVhci1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpICFkZWZhdWx0O1xuXG4kZWFzZS1pbi1vdXQtY3VydmUtZnVuY3Rpb246IGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKSAhZGVmYXVsdDtcblxuJHN3aWZ0LWVhc2Utb3V0LWR1cmF0aW9uOiA0MDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLW91dC10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpICFkZWZhdWx0O1xuJHN3aWZ0LWVhc2Utb3V0OiBhbGwgJHN3aWZ0LWVhc2Utb3V0LWR1cmF0aW9uICRzd2lmdC1lYXNlLW91dC10aW1pbmctZnVuY3Rpb24gIWRlZmF1bHQ7XG5cbiRzd2lmdC1lYXNlLWluLWR1cmF0aW9uOiAzMDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAsIDAuNTUsIDAuMikgIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1pbjogYWxsICRzd2lmdC1lYXNlLWluLWR1cmF0aW9uICRzd2lmdC1lYXNlLWluLXRpbWluZy1mdW5jdGlvbiAhZGVmYXVsdDtcblxuJHN3aWZ0LWVhc2UtaW4tb3V0LWR1cmF0aW9uOiA1MDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLW91dC10aW1pbmctZnVuY3Rpb246ICRlYXNlLWluLW91dC1jdXJ2ZS1mdW5jdGlvbiAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLW91dDogYWxsICRzd2lmdC1lYXNlLWluLW91dC1kdXJhdGlvbiAkc3dpZnQtZWFzZS1pbi1vdXQtdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuXG4kc3dpZnQtbGluZWFyLWR1cmF0aW9uOiA4MG1zICFkZWZhdWx0O1xuJHN3aWZ0LWxpbmVhci10aW1pbmctZnVuY3Rpb246IGxpbmVhciAhZGVmYXVsdDtcbiRzd2lmdC1saW5lYXI6IGFsbCAkc3dpZnQtbGluZWFyLWR1cmF0aW9uICRzd2lmdC1saW5lYXItdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuXG5cblxuLy8gQSBjb2xsZWN0aW9uIG9mIG1peGlucyBhbmQgQ1NTIGNsYXNzZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBhcHBseSBlbGV2YXRpb24gdG8gYSBtYXRlcmlhbFxuLy8gZWxlbWVudC5cbi8vIFNlZTogaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vZW52aXJvbm1lbnQvZWxldmF0aW9uLmh0bWxcbi8vIEV4YW1wbGVzOlxuLy9cbi8vXG4vLyAubWF0LWZvbyB7XG4vLyAgIEBpbmNsdWRlICRtYXQtZWxldmF0aW9uKDIpO1xuLy9cbi8vICAgJjphY3RpdmUge1xuLy8gICAgIEBpbmNsdWRlICRtYXQtZWxldmF0aW9uKDgpO1xuLy8gICB9XG4vLyB9XG4vL1xuLy8gPGRpdiBpZD1cImV4dGVybmFsLWNhcmRcIiBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejJcIj48cD5Tb21lIGNvbnRlbnQ8L3A+PC9kaXY+XG4vL1xuLy8gRm9yIGFuIGV4cGxhbmF0aW9uIG9mIHRoZSBkZXNpZ24gYmVoaW5kIGhvdyBlbGV2YXRpb24gaXMgaW1wbGVtZW50ZWQsIHNlZSB0aGUgZGVzaWduIGRvYyBhdFxuLy8gaHR0cHM6Ly9nb28uZ2wvS3EwazlaLlxuXG4vLyBDb2xvcnMgZm9yIHVtYnJhLCBwZW51bWJyYSwgYW5kIGFtYmllbnQgc2hhZG93cy4gQXMgZGVzY3JpYmVkIGluIHRoZSBkZXNpZ24gZG9jLCBlYWNoIGVsZXZhdGlvblxuLy8gbGV2ZWwgaXMgY3JlYXRlZCB1c2luZyBhIHNldCBvZiAzIHNoYWRvdyB2YWx1ZXMsIG9uZSBmb3IgdW1icmEgKHRoZSBzaGFkb3cgcmVwcmVzZW50aW5nIHRoZVxuLy8gc3BhY2UgY29tcGxldGVseSBvYnNjdXJlZCBieSBhbiBvYmplY3QgcmVsYXRpdmUgdG8gaXRzIGxpZ2h0IHNvdXJjZSksIG9uZSBmb3IgcGVudW1icmEgKHRoZVxuLy8gc3BhY2UgcGFydGlhbGx5IG9ic2N1cmVkIGJ5IGFuIG9iamVjdCksIGFuZCBvbmUgZm9yIGFtYmllbnQgKHRoZSBzcGFjZSB3aGljaCBjb250YWlucyB0aGUgb2JqZWN0XG4vLyBpdHNlbGYpLiBGb3IgYSBmdXJ0aGVyIGV4cGxhbmF0aW9uIG9mIHRoZXNlIHRlcm1zIGFuZCB0aGVpciBtZWFuaW5ncywgc2VlXG4vLyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9VbWJyYSxfcGVudW1icmFfYW5kX2FudHVtYnJhLlxuXG4vLyBNYXBzIGZvciB0aGUgZGlmZmVyZW50IHNoYWRvdyBzZXRzIGFuZCB0aGVpciB2YWx1ZXMgd2l0aGluIGVhY2ggei1zcGFjZS4gVGhlc2UgdmFsdWVzIHdlcmVcbi8vIGNyZWF0ZWQgYnkgdGFraW5nIGEgZmV3IHJlZmVyZW5jZSBzaGFkb3cgc2V0cyBjcmVhdGVkIGJ5IEdvb2dsZSdzIERlc2lnbmVycyBhbmQgaW50ZXJwb2xhdGluZ1xuLy8gYWxsIG9mIHRoZSB2YWx1ZXMgYmV0d2VlbiB0aGVtLlxuXG5AZnVuY3Rpb24gX2dldC11bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSkge1xuICAkc2hhZG93LWNvbG9yOiBpZih0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IsIHJnYmEoJGNvbG9yLCAkb3BhY2l0eSAqIDAuMiksICRjb2xvcik7XG5cbiAgQHJldHVybiAoXG4gICAgMDogJzBweCAwcHggMHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOiAnMHB4IDJweCAxcHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyOiAnMHB4IDNweCAxcHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAzOiAnMHB4IDNweCAzcHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA0OiAnMHB4IDJweCA0cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA1OiAnMHB4IDNweCA1cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA2OiAnMHB4IDNweCA1cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA3OiAnMHB4IDRweCA1cHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA4OiAnMHB4IDVweCA1cHggLTNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA5OiAnMHB4IDVweCA2cHggLTNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMDogJzBweCA2cHggNnB4IC0zcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTE6ICcwcHggNnB4IDdweCAtNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEyOiAnMHB4IDdweCA4cHggLTRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMzogJzBweCA3cHggOHB4IC00cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTQ6ICcwcHggN3B4IDlweCAtNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE1OiAnMHB4IDhweCA5cHggLTVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNjogJzBweCA4cHggMTBweCAtNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE3OiAnMHB4IDhweCAxMXB4IC01cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTg6ICcwcHggOXB4IDExcHggLTVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOTogJzBweCA5cHggMTJweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIwOiAnMHB4IDEwcHggMTNweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIxOiAnMHB4IDEwcHggMTNweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIyOiAnMHB4IDEwcHggMTRweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIzOiAnMHB4IDExcHggMTRweCAtN3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI0OiAnMHB4IDExcHggMTVweCAtN3B4ICN7JHNoYWRvdy1jb2xvcn0nXG4gICk7XG59XG5cbkBmdW5jdGlvbiBfZ2V0LXBlbnVtYnJhLW1hcCgkY29sb3IsICRvcGFjaXR5KSB7XG4gICRzaGFkb3ctY29sb3I6IGlmKHR5cGUtb2YoJGNvbG9yKSA9PSBjb2xvciwgcmdiYSgkY29sb3IsICRvcGFjaXR5ICogMC4xNCksICRjb2xvcik7XG5cbiAgQHJldHVybiAoXG4gICAgMDogJzBweCAwcHggMHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOiAnMHB4IDFweCAxcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI6ICcwcHggMnB4IDJweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMzogJzBweCAzcHggNHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA0OiAnMHB4IDRweCA1cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDU6ICcwcHggNXB4IDhweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNjogJzBweCA2cHggMTBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNzogJzBweCA3cHggMTBweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgODogJzBweCA4cHggMTBweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgOTogJzBweCA5cHggMTJweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTA6ICcwcHggMTBweCAxNHB4IDFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMTogJzBweCAxMXB4IDE1cHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEyOiAnMHB4IDEycHggMTdweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTM6ICcwcHggMTNweCAxOXB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNDogJzBweCAxNHB4IDIxcHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE1OiAnMHB4IDE1cHggMjJweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTY6ICcwcHggMTZweCAyNHB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNzogJzBweCAxN3B4IDI2cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE4OiAnMHB4IDE4cHggMjhweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTk6ICcwcHggMTlweCAyOXB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMDogJzBweCAyMHB4IDMxcHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIxOiAnMHB4IDIxcHggMzNweCAzcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjI6ICcwcHggMjJweCAzNXB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMzogJzBweCAyM3B4IDM2cHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI0OiAnMHB4IDI0cHggMzhweCAzcHggI3skc2hhZG93LWNvbG9yfSdcbiAgKTtcbn1cblxuQGZ1bmN0aW9uIF9nZXQtYW1iaWVudC1tYXAoJGNvbG9yLCAkb3BhY2l0eSkge1xuICAkc2hhZG93LWNvbG9yOiBpZih0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IsIHJnYmEoJGNvbG9yLCAkb3BhY2l0eSAqIDAuMTIpLCAkY29sb3IpO1xuXG4gIEByZXR1cm4gKFxuICAgIDA6ICcwcHggMHB4IDBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTogJzBweCAxcHggM3B4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyOiAnMHB4IDFweCA1cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDM6ICcwcHggMXB4IDhweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNDogJzBweCAxcHggMTBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNTogJzBweCAxcHggMTRweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNjogJzBweCAxcHggMThweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNzogJzBweCAycHggMTZweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgODogJzBweCAzcHggMTRweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgOTogJzBweCAzcHggMTZweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTA6ICcwcHggNHB4IDE4cHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDExOiAnMHB4IDRweCAyMHB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMjogJzBweCA1cHggMjJweCA0cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTM6ICcwcHggNXB4IDI0cHggNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE0OiAnMHB4IDVweCAyNnB4IDRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNTogJzBweCA2cHggMjhweCA1cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTY6ICcwcHggNnB4IDMwcHggNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE3OiAnMHB4IDZweCAzMnB4IDVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxODogJzBweCA3cHggMzRweCA2cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTk6ICcwcHggN3B4IDM2cHggNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIwOiAnMHB4IDhweCAzOHB4IDdweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMTogJzBweCA4cHggNDBweCA3cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjI6ICcwcHggOHB4IDQycHggN3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIzOiAnMHB4IDlweCA0NHB4IDhweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyNDogJzBweCA5cHggNDZweCA4cHggI3skc2hhZG93LWNvbG9yfSdcbiAgKTtcbn1cblxuLy8gVGhlIGRlZmF1bHQgZHVyYXRpb24gdmFsdWUgZm9yIGVsZXZhdGlvbiB0cmFuc2l0aW9ucy5cbiRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb246IDI4MG1zICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBlYXNpbmcgdmFsdWUgZm9yIGVsZXZhdGlvbiB0cmFuc2l0aW9ucy5cbiRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkbWF0LWZhc3Qtb3V0LXNsb3ctaW4tdGltaW5nLWZ1bmN0aW9uO1xuXG4vLyBUaGUgZGVmYXVsdCBjb2xvciBmb3IgZWxldmF0aW9uIHNoYWRvd3MuXG4kbWF0LWVsZXZhdGlvbi1jb2xvcjogYmxhY2sgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IG9wYWNpdHkgc2NhbGluZyB2YWx1ZSBmb3IgZWxldmF0aW9uIHNoYWRvd3MuXG4kbWF0LWVsZXZhdGlvbi1vcGFjaXR5OiAxICFkZWZhdWx0O1xuXG4vLyBQcmVmaXggZm9yIGVsZXZhdGlvbi1yZWxhdGVkIHNlbGVjdG9ycy5cbiRfbWF0LWVsZXZhdGlvbi1wcmVmaXg6ICdtYXQtZWxldmF0aW9uLXonO1xuXG4vLyBBcHBsaWVzIHRoZSBjb3JyZWN0IGNzcyBydWxlcyB0byBhbiBlbGVtZW50IHRvIGdpdmUgaXQgdGhlIGVsZXZhdGlvbiBzcGVjaWZpZWQgYnkgJHpWYWx1ZS5cbi8vIFRoZSAkelZhbHVlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyNC5cbkBtaXhpbiBtYXQtZWxldmF0aW9uKCR6VmFsdWUsICRjb2xvcjogJG1hdC1lbGV2YXRpb24tY29sb3IsICRvcGFjaXR5OiAkbWF0LWVsZXZhdGlvbi1vcGFjaXR5KSB7XG4gIEBpZiB0eXBlLW9mKCR6VmFsdWUpICE9IG51bWJlciBvciBub3QgdW5pdGxlc3MoJHpWYWx1ZSkge1xuICAgIEBlcnJvciAnJHpWYWx1ZSBtdXN0IGJlIGEgdW5pdGxlc3MgbnVtYmVyJztcbiAgfVxuICBAaWYgJHpWYWx1ZSA8IDAgb3IgJHpWYWx1ZSA+IDI0IHtcbiAgICBAZXJyb3IgJyR6VmFsdWUgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDI0JztcbiAgfVxuXG4gIGJveC1zaGFkb3c6ICN7bWFwLWdldChfZ2V0LXVtYnJhLW1hcCgkY29sb3IsICRvcGFjaXR5KSwgJHpWYWx1ZSl9LFxuICAgICAgICAgICAgICAje21hcC1nZXQoX2dldC1wZW51bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSksICR6VmFsdWUpfSxcbiAgICAgICAgICAgICAgI3ttYXAtZ2V0KF9nZXQtYW1iaWVudC1tYXAoJGNvbG9yLCAkb3BhY2l0eSksICR6VmFsdWUpfTtcbn1cblxuQG1peGluIF9tYXQtdGhlbWUtZWxldmF0aW9uKCR6VmFsdWUsICR0aGVtZSwgJG9wYWNpdHk6ICRtYXQtZWxldmF0aW9uLW9wYWNpdHkpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGVsZXZhdGlvbi1jb2xvcjogbWFwLWdldCgkZm9yZWdyb3VuZCwgZWxldmF0aW9uKTtcbiAgJGVsZXZhdGlvbi1jb2xvci1vci1kZWZhdWx0OiBpZigkZWxldmF0aW9uLWNvbG9yID09IG51bGwsICRtYXQtZWxldmF0aW9uLWNvbG9yLCAkZWxldmF0aW9uLWNvbG9yKTtcblxuICBAaW5jbHVkZSBtYXQtZWxldmF0aW9uKCR6VmFsdWUsICRlbGV2YXRpb24tY29sb3Itb3ItZGVmYXVsdCwgJG9wYWNpdHkpO1xufVxuXG4vLyBBcHBsaWVzIHRoZSBlbGV2YXRpb24gdG8gYW4gZWxlbWVudCBpbiBhIG1hbm5lciB0aGF0IGFsbG93c1xuLy8gY29uc3VtZXJzIHRvIG92ZXJyaWRlIGl0IHZpYSB0aGUgTWF0ZXJpYWwgZWxldmF0aW9uIGNsYXNzZXMuXG5AbWl4aW4gbWF0LW92ZXJyaWRhYmxlLWVsZXZhdGlvbihcbiAgICAkelZhbHVlLFxuICAgICRjb2xvcjogJG1hdC1lbGV2YXRpb24tY29sb3IsXG4gICAgJG9wYWNpdHk6ICRtYXQtZWxldmF0aW9uLW9wYWNpdHkpIHtcbiAgJjpub3QoW2NsYXNzKj0nI3skX21hdC1lbGV2YXRpb24tcHJlZml4fSddKSB7XG4gICAgQGluY2x1ZGUgbWF0LWVsZXZhdGlvbigkelZhbHVlLCAkY29sb3IsICRvcGFjaXR5KTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oJHpWYWx1ZSwgJHRoZW1lLCAkb3BhY2l0eTogJG1hdC1lbGV2YXRpb24tb3BhY2l0eSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkZWxldmF0aW9uLWNvbG9yOiBtYXAtZ2V0KCRmb3JlZ3JvdW5kLCBlbGV2YXRpb24pO1xuICAkZWxldmF0aW9uLWNvbG9yLW9yLWRlZmF1bHQ6IGlmKCRlbGV2YXRpb24tY29sb3IgPT0gbnVsbCwgJG1hdC1lbGV2YXRpb24tY29sb3IsICRlbGV2YXRpb24tY29sb3IpO1xuXG4gIEBpbmNsdWRlIG1hdC1vdmVycmlkYWJsZS1lbGV2YXRpb24oJHpWYWx1ZSwgJGVsZXZhdGlvbi1jb2xvci1vci1kZWZhdWx0LCAkb3BhY2l0eSk7XG59XG5cbi8vIFJldHVybnMgYSBzdHJpbmcgdGhhdCBjYW4gYmUgdXNlZCBhcyB0aGUgdmFsdWUgZm9yIGEgdHJhbnNpdGlvbiBwcm9wZXJ0eSBmb3IgZWxldmF0aW9uLlxuLy8gQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIGRpcmVjdGx5IGlzIHVzZWZ1bCBpbiBzaXR1YXRpb25zIHdoZXJlIGEgY29tcG9uZW50IG5lZWRzIHRvIHRyYW5zaXRpb25cbi8vIG1vcmUgdGhhbiBvbmUgcHJvcGVydHkuXG4vL1xuLy8gLmZvbyB7XG4vLyAgIHRyYW5zaXRpb246IG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1wcm9wZXJ0eS12YWx1ZSgpLCBvcGFjaXR5IDEwMG1zIGVhc2U7XG4vLyB9XG5AZnVuY3Rpb24gbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXByb3BlcnR5LXZhbHVlKFxuICAgICRkdXJhdGlvbjogJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbixcbiAgICAkZWFzaW5nOiAkbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbikge1xuICBAcmV0dXJuIGJveC1zaGFkb3cgI3skZHVyYXRpb259ICN7JGVhc2luZ307XG59XG5cbi8vIEFwcGxpZXMgdGhlIGNvcnJlY3QgY3NzIHJ1bGVzIG5lZWRlZCB0byBoYXZlIGFuIGVsZW1lbnQgdHJhbnNpdGlvbiBiZXR3ZWVuIGVsZXZhdGlvbnMuXG4vLyBUaGlzIG1peGluIHNob3VsZCBiZSBhcHBsaWVkIHRvIGVsZW1lbnRzIHdob3NlIGVsZXZhdGlvbiB2YWx1ZXMgd2lsbCBjaGFuZ2UgZGVwZW5kaW5nIG9uIHRoZWlyXG4vLyBjb250ZXh0IChlLmcuIHdoZW4gYWN0aXZlIG9yIGRpc2FibGVkKS5cbi8vXG4vLyBOT1RFKHRyYXZpc2thdWZtYW4pOiBCb3RoIHRoaXMgbWl4aW4gYW5kIHRoZSBhYm92ZSBmdW5jdGlvbiB1c2UgZGVmYXVsdCBwYXJhbWV0ZXJzIHNvIHRoZXkgY2FuXG4vLyBiZSB1c2VkIGluIHRoZSBzYW1lIHdheSBieSBjbGllbnRzLlxuQG1peGluIG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbihcbiAgICAkZHVyYXRpb246ICRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24sXG4gICAgJGVhc2luZzogJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pIHtcbiAgdHJhbnNpdGlvbjogbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXByb3BlcnR5LXZhbHVlKCRkdXJhdGlvbiwgJGVhc2luZyk7XG59XG5cbi8vIENvbG9yIHBhbGV0dGVzIGZyb20gdGhlIE1hdGVyaWFsIERlc2lnbiBzcGVjLlxuLy8gU2VlIGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2NvbG9yL1xuLy9cbi8vIENvbnRyYXN0IGNvbG9ycyBhcmUgaGFyZC1jb2RlZCBiZWNhdXNlIGl0IGlzIHRvbyBkaWZmaWN1bHQgKHByb2JhYmx5IGltcG9zc2libGUpIHRvXG4vLyBjYWxjdWxhdGUgdGhlbS4gVGhlc2UgY29udHJhc3QgY29sb3JzIGFyZSBwdWxsZWQgZnJvbSB0aGUgcHVibGljIE1hdGVyaWFsIERlc2lnbiBzcGVjIHN3YXRjaGVzLlxuLy8gV2hpbGUgdGhlIGNvbnRyYXN0IGNvbG9ycyBpbiB0aGUgc3BlYyBhcmUgbm90IHByZXNjcmlwdGl2ZSwgd2UgdXNlIHRoZW0gZm9yIGNvbnZlbmllbmNlLlxuXG5cbi8vIEBkZXByZWNhdGVkIHJlbmFtZWQgdG8gJGRhcmstcHJpbWFyeS10ZXh0LlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJGJsYWNrLTg3LW9wYWNpdHk6IHJnYmEoYmxhY2ssIDAuODcpO1xuLy8gQGRlcHJlY2F0ZWQgcmVuYW1lZCB0byAkbGlnaHQtcHJpbWFyeS10ZXh0LlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJHdoaXRlLTg3LW9wYWNpdHk6IHJnYmEod2hpdGUsIDAuODcpO1xuLy8gQGRlcHJlY2F0ZWQgdXNlICRkYXJrLVtzZWNvbmRhcnktdGV4dCxkaXNhYmxlZC10ZXh0LGRpdmlkZXJzLGZvY3VzZWRdIGluc3RlYWQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kYmxhY2stMTItb3BhY2l0eTogcmdiYShibGFjaywgMC4xMik7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGxpZ2h0LVtzZWNvbmRhcnktdGV4dCxkaXNhYmxlZC10ZXh0LGRpdmlkZXJzLGZvY3VzZWRdIGluc3RlYWQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kd2hpdGUtMTItb3BhY2l0eTogcmdiYSh3aGl0ZSwgMC4xMik7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGRhcmstW3NlY29uZGFyeS10ZXh0LGRpc2FibGVkLXRleHQsZGl2aWRlcnMsZm9jdXNlZF0gaW5zdGVhZC5cbi8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjBcbiRibGFjay02LW9wYWNpdHk6IHJnYmEoYmxhY2ssIDAuMDYpO1xuLy8gQGRlcHJlY2F0ZWQgdXNlICRsaWdodC1bc2Vjb25kYXJ5LXRleHQsZGlzYWJsZWQtdGV4dCxkaXZpZGVycyxmb2N1c2VkXSBpbnN0ZWFkLlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJHdoaXRlLTYtb3BhY2l0eTogcmdiYSh3aGl0ZSwgMC4wNik7XG5cbiRkYXJrLXByaW1hcnktdGV4dDogcmdiYShibGFjaywgMC44Nyk7XG4kZGFyay1zZWNvbmRhcnktdGV4dDogcmdiYShibGFjaywgMC41NCk7XG4kZGFyay1kaXNhYmxlZC10ZXh0OiByZ2JhKGJsYWNrLCAwLjM4KTtcbiRkYXJrLWRpdmlkZXJzOiByZ2JhKGJsYWNrLCAwLjEyKTtcbiRkYXJrLWZvY3VzZWQ6IHJnYmEoYmxhY2ssIDAuMTIpO1xuJGxpZ2h0LXByaW1hcnktdGV4dDogd2hpdGU7XG4kbGlnaHQtc2Vjb25kYXJ5LXRleHQ6IHJnYmEod2hpdGUsIDAuNyk7XG4kbGlnaHQtZGlzYWJsZWQtdGV4dDogcmdiYSh3aGl0ZSwgMC41KTtcbiRsaWdodC1kaXZpZGVyczogcmdiYSh3aGl0ZSwgMC4xMik7XG4kbGlnaHQtZm9jdXNlZDogcmdiYSh3aGl0ZSwgMC4xMik7XG5cbiRtYXQtcmVkOiAoXG4gIDUwOiAjZmZlYmVlLFxuICAxMDA6ICNmZmNkZDIsXG4gIDIwMDogI2VmOWE5YSxcbiAgMzAwOiAjZTU3MzczLFxuICA0MDA6ICNlZjUzNTAsXG4gIDUwMDogI2Y0NDMzNixcbiAgNjAwOiAjZTUzOTM1LFxuICA3MDA6ICNkMzJmMmYsXG4gIDgwMDogI2M2MjgyOCxcbiAgOTAwOiAjYjcxYzFjLFxuICBBMTAwOiAjZmY4YTgwLFxuICBBMjAwOiAjZmY1MjUyLFxuICBBNDAwOiAjZmYxNzQ0LFxuICBBNzAwOiAjZDUwMDAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtcGluazogKFxuICA1MDogI2ZjZTRlYyxcbiAgMTAwOiAjZjhiYmQwLFxuICAyMDA6ICNmNDhmYjEsXG4gIDMwMDogI2YwNjI5MixcbiAgNDAwOiAjZWM0MDdhLFxuICA1MDA6ICNlOTFlNjMsXG4gIDYwMDogI2Q4MWI2MCxcbiAgNzAwOiAjYzIxODViLFxuICA4MDA6ICNhZDE0NTcsXG4gIDkwMDogIzg4MGU0ZixcbiAgQTEwMDogI2ZmODBhYixcbiAgQTIwMDogI2ZmNDA4MSxcbiAgQTQwMDogI2Y1MDA1NyxcbiAgQTcwMDogI2M1MTE2MixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LXB1cnBsZTogKFxuICA1MDogI2YzZTVmNSxcbiAgMTAwOiAjZTFiZWU3LFxuICAyMDA6ICNjZTkzZDgsXG4gIDMwMDogI2JhNjhjOCxcbiAgNDAwOiAjYWI0N2JjLFxuICA1MDA6ICM5YzI3YjAsXG4gIDYwMDogIzhlMjRhYSxcbiAgNzAwOiAjN2IxZmEyLFxuICA4MDA6ICM2YTFiOWEsXG4gIDkwMDogIzRhMTQ4YyxcbiAgQTEwMDogI2VhODBmYyxcbiAgQTIwMDogI2UwNDBmYixcbiAgQTQwMDogI2Q1MDBmOSxcbiAgQTcwMDogI2FhMDBmZixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtZGVlcC1wdXJwbGU6IChcbiAgNTA6ICNlZGU3ZjYsXG4gIDEwMDogI2QxYzRlOSxcbiAgMjAwOiAjYjM5ZGRiLFxuICAzMDA6ICM5NTc1Y2QsXG4gIDQwMDogIzdlNTdjMixcbiAgNTAwOiAjNjczYWI3LFxuICA2MDA6ICM1ZTM1YjEsXG4gIDcwMDogIzUxMmRhOCxcbiAgODAwOiAjNDUyN2EwLFxuICA5MDA6ICMzMTFiOTIsXG4gIEExMDA6ICNiMzg4ZmYsXG4gIEEyMDA6ICM3YzRkZmYsXG4gIEE0MDA6ICM2NTFmZmYsXG4gIEE3MDA6ICM2MjAwZWEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWluZGlnbzogKFxuICA1MDogI2U4ZWFmNixcbiAgMTAwOiAjYzVjYWU5LFxuICAyMDA6ICM5ZmE4ZGEsXG4gIDMwMDogIzc5ODZjYixcbiAgNDAwOiAjNWM2YmMwLFxuICA1MDA6ICMzZjUxYjUsXG4gIDYwMDogIzM5NDlhYixcbiAgNzAwOiAjMzAzZjlmLFxuICA4MDA6ICMyODM1OTMsXG4gIDkwMDogIzFhMjM3ZSxcbiAgQTEwMDogIzhjOWVmZixcbiAgQTIwMDogIzUzNmRmZSxcbiAgQTQwMDogIzNkNWFmZSxcbiAgQTcwMDogIzMwNGZmZSxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtYmx1ZTogKFxuICA1MDogI2UzZjJmZCxcbiAgMTAwOiAjYmJkZWZiLFxuICAyMDA6ICM5MGNhZjksXG4gIDMwMDogIzY0YjVmNixcbiAgNDAwOiAjNDJhNWY1LFxuICA1MDA6ICMyMTk2ZjMsXG4gIDYwMDogIzFlODhlNSxcbiAgNzAwOiAjMTk3NmQyLFxuICA4MDA6ICMxNTY1YzAsXG4gIDkwMDogIzBkNDdhMSxcbiAgQTEwMDogIzgyYjFmZixcbiAgQTIwMDogIzQ0OGFmZixcbiAgQTQwMDogIzI5NzlmZixcbiAgQTcwMDogIzI5NjJmZixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWxpZ2h0LWJsdWU6IChcbiAgNTA6ICNlMWY1ZmUsXG4gIDEwMDogI2IzZTVmYyxcbiAgMjAwOiAjODFkNGZhLFxuICAzMDA6ICM0ZmMzZjcsXG4gIDQwMDogIzI5YjZmNixcbiAgNTAwOiAjMDNhOWY0LFxuICA2MDA6ICMwMzliZTUsXG4gIDcwMDogIzAyODhkMSxcbiAgODAwOiAjMDI3N2JkLFxuICA5MDA6ICMwMTU3OWIsXG4gIEExMDA6ICM4MGQ4ZmYsXG4gIEEyMDA6ICM0MGM0ZmYsXG4gIEE0MDA6ICMwMGIwZmYsXG4gIEE3MDA6ICMwMDkxZWEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtY3lhbjogKFxuICA1MDogI2UwZjdmYSxcbiAgMTAwOiAjYjJlYmYyLFxuICAyMDA6ICM4MGRlZWEsXG4gIDMwMDogIzRkZDBlMSxcbiAgNDAwOiAjMjZjNmRhLFxuICA1MDA6ICMwMGJjZDQsXG4gIDYwMDogIzAwYWNjMSxcbiAgNzAwOiAjMDA5N2E3LFxuICA4MDA6ICMwMDgzOGYsXG4gIDkwMDogIzAwNjA2NCxcbiAgQTEwMDogIzg0ZmZmZixcbiAgQTIwMDogIzE4ZmZmZixcbiAgQTQwMDogIzAwZTVmZixcbiAgQTcwMDogIzAwYjhkNCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LXRlYWw6IChcbiAgNTA6ICNlMGYyZjEsXG4gIDEwMDogI2IyZGZkYixcbiAgMjAwOiAjODBjYmM0LFxuICAzMDA6ICM0ZGI2YWMsXG4gIDQwMDogIzI2YTY5YSxcbiAgNTAwOiAjMDA5Njg4LFxuICA2MDA6ICMwMDg5N2IsXG4gIDcwMDogIzAwNzk2YixcbiAgODAwOiAjMDA2OTVjLFxuICA5MDA6ICMwMDRkNDAsXG4gIEExMDA6ICNhN2ZmZWIsXG4gIEEyMDA6ICM2NGZmZGEsXG4gIEE0MDA6ICMxZGU5YjYsXG4gIEE3MDA6ICMwMGJmYTUsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1ncmVlbjogKFxuICA1MDogI2U4ZjVlOSxcbiAgMTAwOiAjYzhlNmM5LFxuICAyMDA6ICNhNWQ2YTcsXG4gIDMwMDogIzgxYzc4NCxcbiAgNDAwOiAjNjZiYjZhLFxuICA1MDA6ICM0Y2FmNTAsXG4gIDYwMDogIzQzYTA0NyxcbiAgNzAwOiAjMzg4ZTNjLFxuICA4MDA6ICMyZTdkMzIsXG4gIDkwMDogIzFiNWUyMCxcbiAgQTEwMDogI2I5ZjZjYSxcbiAgQTIwMDogIzY5ZjBhZSxcbiAgQTQwMDogIzAwZTY3NixcbiAgQTcwMDogIzAwYzg1MyxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtbGlnaHQtZ3JlZW46IChcbiAgNTA6ICNmMWY4ZTksXG4gIDEwMDogI2RjZWRjOCxcbiAgMjAwOiAjYzVlMWE1LFxuICAzMDA6ICNhZWQ1ODEsXG4gIDQwMDogIzljY2M2NSxcbiAgNTAwOiAjOGJjMzRhLFxuICA2MDA6ICM3Y2IzNDIsXG4gIDcwMDogIzY4OWYzOCxcbiAgODAwOiAjNTU4YjJmLFxuICA5MDA6ICMzMzY5MWUsXG4gIEExMDA6ICNjY2ZmOTAsXG4gIEEyMDA6ICNiMmZmNTksXG4gIEE0MDA6ICM3NmZmMDMsXG4gIEE3MDA6ICM2NGRkMTcsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtbGltZTogKFxuICA1MDogI2Y5ZmJlNyxcbiAgMTAwOiAjZjBmNGMzLFxuICAyMDA6ICNlNmVlOWMsXG4gIDMwMDogI2RjZTc3NSxcbiAgNDAwOiAjZDRlMTU3LFxuICA1MDA6ICNjZGRjMzksXG4gIDYwMDogI2MwY2EzMyxcbiAgNzAwOiAjYWZiNDJiLFxuICA4MDA6ICM5ZTlkMjQsXG4gIDkwMDogIzgyNzcxNyxcbiAgQTEwMDogI2Y0ZmY4MSxcbiAgQTIwMDogI2VlZmY0MSxcbiAgQTQwMDogI2M2ZmYwMCxcbiAgQTcwMDogI2FlZWEwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQteWVsbG93OiAoXG4gIDUwOiAjZmZmZGU3LFxuICAxMDA6ICNmZmY5YzQsXG4gIDIwMDogI2ZmZjU5ZCxcbiAgMzAwOiAjZmZmMTc2LFxuICA0MDA6ICNmZmVlNTgsXG4gIDUwMDogI2ZmZWIzYixcbiAgNjAwOiAjZmRkODM1LFxuICA3MDA6ICNmYmMwMmQsXG4gIDgwMDogI2Y5YTgyNSxcbiAgOTAwOiAjZjU3ZjE3LFxuICBBMTAwOiAjZmZmZjhkLFxuICBBMjAwOiAjZmZmZjAwLFxuICBBNDAwOiAjZmZlYTAwLFxuICBBNzAwOiAjZmZkNjAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWFtYmVyOiAoXG4gIDUwOiAjZmZmOGUxLFxuICAxMDA6ICNmZmVjYjMsXG4gIDIwMDogI2ZmZTA4MixcbiAgMzAwOiAjZmZkNTRmLFxuICA0MDA6ICNmZmNhMjgsXG4gIDUwMDogI2ZmYzEwNyxcbiAgNjAwOiAjZmZiMzAwLFxuICA3MDA6ICNmZmEwMDAsXG4gIDgwMDogI2ZmOGYwMCxcbiAgOTAwOiAjZmY2ZjAwLFxuICBBMTAwOiAjZmZlNTdmLFxuICBBMjAwOiAjZmZkNzQwLFxuICBBNDAwOiAjZmZjNDAwLFxuICBBNzAwOiAjZmZhYjAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LW9yYW5nZTogKFxuICA1MDogI2ZmZjNlMCxcbiAgMTAwOiAjZmZlMGIyLFxuICAyMDA6ICNmZmNjODAsXG4gIDMwMDogI2ZmYjc0ZCxcbiAgNDAwOiAjZmZhNzI2LFxuICA1MDA6ICNmZjk4MDAsXG4gIDYwMDogI2ZiOGMwMCxcbiAgNzAwOiAjZjU3YzAwLFxuICA4MDA6ICNlZjZjMDAsXG4gIDkwMDogI2U2NTEwMCxcbiAgQTEwMDogI2ZmZDE4MCxcbiAgQTIwMDogI2ZmYWI0MCxcbiAgQTQwMDogI2ZmOTEwMCxcbiAgQTcwMDogI2ZmNmQwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogYmxhY2ssXG4gIClcbik7XG5cbiRtYXQtZGVlcC1vcmFuZ2U6IChcbiAgNTA6ICNmYmU5ZTcsXG4gIDEwMDogI2ZmY2NiYyxcbiAgMjAwOiAjZmZhYjkxLFxuICAzMDA6ICNmZjhhNjUsXG4gIDQwMDogI2ZmNzA0MyxcbiAgNTAwOiAjZmY1NzIyLFxuICA2MDA6ICNmNDUxMWUsXG4gIDcwMDogI2U2NGExOSxcbiAgODAwOiAjZDg0MzE1LFxuICA5MDA6ICNiZjM2MGMsXG4gIEExMDA6ICNmZjllODAsXG4gIEEyMDA6ICNmZjZlNDAsXG4gIEE0MDA6ICNmZjNkMDAsXG4gIEE3MDA6ICNkZDJjMDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWJyb3duOiAoXG4gIDUwOiAjZWZlYmU5LFxuICAxMDA6ICNkN2NjYzgsXG4gIDIwMDogI2JjYWFhNCxcbiAgMzAwOiAjYTE4ODdmLFxuICA0MDA6ICM4ZDZlNjMsXG4gIDUwMDogIzc5NTU0OCxcbiAgNjAwOiAjNmQ0YzQxLFxuICA3MDA6ICM1ZDQwMzcsXG4gIDgwMDogIzRlMzQyZSxcbiAgOTAwOiAjM2UyNzIzLFxuICBBMTAwOiAjZDdjY2M4LFxuICBBMjAwOiAjYmNhYWE0LFxuICBBNDAwOiAjOGQ2ZTYzLFxuICBBNzAwOiAjNWQ0MDM3LFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWdyZXk6IChcbiAgNTA6ICNmYWZhZmEsXG4gIDEwMDogI2Y1ZjVmNSxcbiAgMjAwOiAjZWVlZWVlLFxuICAzMDA6ICNlMGUwZTAsXG4gIDQwMDogI2JkYmRiZCxcbiAgNTAwOiAjOWU5ZTllLFxuICA2MDA6ICM3NTc1NzUsXG4gIDcwMDogIzYxNjE2MSxcbiAgODAwOiAjNDI0MjQyLFxuICA5MDA6ICMyMTIxMjEsXG4gIEExMDA6ICNmZmZmZmYsXG4gIEEyMDA6ICNlZWVlZWUsXG4gIEE0MDA6ICNiZGJkYmQsXG4gIEE3MDA6ICM2MTYxNjEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuLy8gQWxpYXMgZm9yIGFsdGVybmF0ZSBzcGVsbGluZy5cbiRtYXQtZ3JheTogJG1hdC1ncmV5O1xuXG4kbWF0LWJsdWUtZ3JleTogKFxuICA1MDogI2VjZWZmMSxcbiAgMTAwOiAjY2ZkOGRjLFxuICAyMDA6ICNiMGJlYzUsXG4gIDMwMDogIzkwYTRhZSxcbiAgNDAwOiAjNzg5MDljLFxuICA1MDA6ICM2MDdkOGIsXG4gIDYwMDogIzU0NmU3YSxcbiAgNzAwOiAjNDU1YTY0LFxuICA4MDA6ICMzNzQ3NGYsXG4gIDkwMDogIzI2MzIzOCxcbiAgQTEwMDogI2NmZDhkYyxcbiAgQTIwMDogI2IwYmVjNSxcbiAgQTQwMDogIzc4OTA5YyxcbiAgQTcwMDogIzQ1NWE2NCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4vLyBBbGlhcyBmb3IgYWx0ZXJuYXRlIHNwZWxsaW5nLlxuJG1hdC1ibHVlLWdyYXk6ICRtYXQtYmx1ZS1ncmV5O1xuXG5cbi8vIEJhY2tncm91bmQgcGFsZXR0ZSBmb3IgbGlnaHQgdGhlbWVzLlxuJG1hdC1saWdodC10aGVtZS1iYWNrZ3JvdW5kOiAoXG4gIHN0YXR1cy1iYXI6IG1hcF9nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBhcHAtYmFyOiAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgMTAwKSxcbiAgYmFja2dyb3VuZDogbWFwX2dldCgkbWF0LWdyZXksIDUwKSxcbiAgaG92ZXI6ICAgICAgcmdiYShibGFjaywgMC4wNCksIC8vIFRPRE8oa2FyYSk6IGNoZWNrIHN0eWxlIHdpdGggTWF0ZXJpYWwgRGVzaWduIFVYXG4gIGNhcmQ6ICAgICAgIHdoaXRlLFxuICBkaWFsb2c6ICAgICB3aGl0ZSxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKGJsYWNrLCAwLjEyKSxcbiAgcmFpc2VkLWJ1dHRvbjogd2hpdGUsXG4gIGZvY3VzZWQtYnV0dG9uOiAkZGFyay1mb2N1c2VkLFxuICBzZWxlY3RlZC1idXR0b246IG1hcF9nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBzZWxlY3RlZC1kaXNhYmxlZC1idXR0b246IG1hcF9nZXQoJG1hdC1ncmV5LCA0MDApLFxuICBkaXNhYmxlZC1idXR0b24tdG9nZ2xlOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMjAwKSxcbiAgdW5zZWxlY3RlZC1jaGlwOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMzAwKSxcbiAgZGlzYWJsZWQtbGlzdC1vcHRpb246IG1hcF9nZXQoJG1hdC1ncmV5LCAyMDApLFxuKTtcblxuLy8gQmFja2dyb3VuZCBwYWxldHRlIGZvciBkYXJrIHRoZW1lcy5cbiRtYXQtZGFyay10aGVtZS1iYWNrZ3JvdW5kOiAoXG4gIHN0YXR1cy1iYXI6IGJsYWNrLFxuICBhcHAtYmFyOiAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgOTAwKSxcbiAgYmFja2dyb3VuZDogIzMwMzAzMCxcbiAgaG92ZXI6ICAgICAgcmdiYSh3aGl0ZSwgMC4wNCksIC8vIFRPRE8oa2FyYSk6IGNoZWNrIHN0eWxlIHdpdGggTWF0ZXJpYWwgRGVzaWduIFVYXG4gIGNhcmQ6ICAgICAgIG1hcF9nZXQoJG1hdC1ncmV5LCA4MDApLFxuICBkaWFsb2c6ICAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKHdoaXRlLCAwLjEyKSxcbiAgcmFpc2VkLWJ1dHRvbjogbWFwLWdldCgkbWF0LWdyZXksIDgwMCksXG4gIGZvY3VzZWQtYnV0dG9uOiAkbGlnaHQtZm9jdXNlZCxcbiAgc2VsZWN0ZWQtYnV0dG9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgOTAwKSxcbiAgc2VsZWN0ZWQtZGlzYWJsZWQtYnV0dG9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uLXRvZ2dsZTogYmxhY2ssXG4gIHVuc2VsZWN0ZWQtY2hpcDogbWFwX2dldCgkbWF0LWdyZXksIDcwMCksXG4gIGRpc2FibGVkLWxpc3Qtb3B0aW9uOiBibGFjayxcbik7XG5cbi8vIEZvcmVncm91bmQgcGFsZXR0ZSBmb3IgbGlnaHQgdGhlbWVzLlxuJG1hdC1saWdodC10aGVtZS1mb3JlZ3JvdW5kOiAoXG4gIGJhc2U6ICAgICAgICAgICAgICBibGFjayxcbiAgZGl2aWRlcjogICAgICAgICAgICRkYXJrLWRpdmlkZXJzLFxuICBkaXZpZGVyczogICAgICAgICAgJGRhcmstZGl2aWRlcnMsXG4gIGRpc2FibGVkOiAgICAgICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBkaXNhYmxlZC1idXR0b246ICAgcmdiYShibGFjaywgMC4yNiksXG4gIGRpc2FibGVkLXRleHQ6ICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBlbGV2YXRpb246ICAgICAgICAgYmxhY2ssXG4gIGhpbnQtdGV4dDogICAgICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBzZWNvbmRhcnktdGV4dDogICAgJGRhcmstc2Vjb25kYXJ5LXRleHQsXG4gIGljb246ICAgICAgICAgICAgICByZ2JhKGJsYWNrLCAwLjU0KSxcbiAgaWNvbnM6ICAgICAgICAgICAgIHJnYmEoYmxhY2ssIDAuNTQpLFxuICB0ZXh0OiAgICAgICAgICAgICAgcmdiYShibGFjaywgMC44NyksXG4gIHNsaWRlci1taW46ICAgICAgICByZ2JhKGJsYWNrLCAwLjg3KSxcbiAgc2xpZGVyLW9mZjogICAgICAgIHJnYmEoYmxhY2ssIDAuMjYpLFxuICBzbGlkZXItb2ZmLWFjdGl2ZTogcmdiYShibGFjaywgMC4zOCksXG4pO1xuXG4vLyBGb3JlZ3JvdW5kIHBhbGV0dGUgZm9yIGRhcmsgdGhlbWVzLlxuJG1hdC1kYXJrLXRoZW1lLWZvcmVncm91bmQ6IChcbiAgYmFzZTogICAgICAgICAgICAgIHdoaXRlLFxuICBkaXZpZGVyOiAgICAgICAgICAgJGxpZ2h0LWRpdmlkZXJzLFxuICBkaXZpZGVyczogICAgICAgICAgJGxpZ2h0LWRpdmlkZXJzLFxuICBkaXNhYmxlZDogICAgICAgICAgJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIGRpc2FibGVkLWJ1dHRvbjogICByZ2JhKHdoaXRlLCAwLjMpLFxuICBkaXNhYmxlZC10ZXh0OiAgICAgJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIGVsZXZhdGlvbjogICAgICAgICBibGFjayxcbiAgaGludC10ZXh0OiAgICAgICAgICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBzZWNvbmRhcnktdGV4dDogICAgJGxpZ2h0LXNlY29uZGFyeS10ZXh0LFxuICBpY29uOiAgICAgICAgICAgICAgd2hpdGUsXG4gIGljb25zOiAgICAgICAgICAgICB3aGl0ZSxcbiAgdGV4dDogICAgICAgICAgICAgIHdoaXRlLFxuICBzbGlkZXItbWluOiAgICAgICAgd2hpdGUsXG4gIHNsaWRlci1vZmY6ICAgICAgICByZ2JhKHdoaXRlLCAwLjMpLFxuICBzbGlkZXItb2ZmLWFjdGl2ZTogcmdiYSh3aGl0ZSwgMC4zKSxcbik7XG5cblxuXG4vLyBGb3IgYSBnaXZlbiBodWUgaW4gYSBwYWxldHRlLCByZXR1cm4gdGhlIGNvbnRyYXN0IGNvbG9yIGZyb20gdGhlIG1hcCBvZiBjb250cmFzdCBwYWxldHRlcy5cbi8vIEBwYXJhbSAkY29sb3ItbWFwXG4vLyBAcGFyYW0gJGh1ZVxuQGZ1bmN0aW9uIG1hdC1jb250cmFzdCgkcGFsZXR0ZSwgJGh1ZSkge1xuICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkcGFsZXR0ZSwgY29udHJhc3QpLCAkaHVlKTtcbn1cblxuXG4vLyBDcmVhdGVzIGEgbWFwIG9mIGh1ZXMgdG8gY29sb3JzIGZvciBhIHRoZW1lLiBUaGlzIGlzIHVzZWQgdG8gZGVmaW5lIGEgdGhlbWUgcGFsZXR0ZSBpbiB0ZXJtc1xuLy8gb2YgdGhlIE1hdGVyaWFsIERlc2lnbiBodWVzLlxuLy8gQHBhcmFtICRjb2xvci1tYXBcbi8vIEBwYXJhbSAkcHJpbWFyeVxuLy8gQHBhcmFtICRsaWdodGVyXG5AZnVuY3Rpb24gbWF0LXBhbGV0dGUoJGJhc2UtcGFsZXR0ZSwgJGRlZmF1bHQ6IDUwMCwgJGxpZ2h0ZXI6IDEwMCwgJGRhcmtlcjogNzAwLCAkdGV4dDogJGRlZmF1bHQpIHtcbiAgJHJlc3VsdDogbWFwX21lcmdlKCRiYXNlLXBhbGV0dGUsIChcbiAgICBkZWZhdWx0OiBtYXAtZ2V0KCRiYXNlLXBhbGV0dGUsICRkZWZhdWx0KSxcbiAgICBsaWdodGVyOiBtYXAtZ2V0KCRiYXNlLXBhbGV0dGUsICRsaWdodGVyKSxcbiAgICBkYXJrZXI6IG1hcC1nZXQoJGJhc2UtcGFsZXR0ZSwgJGRhcmtlciksXG4gICAgdGV4dDogbWFwLWdldCgkYmFzZS1wYWxldHRlLCAkdGV4dCksXG5cbiAgICBkZWZhdWx0LWNvbnRyYXN0OiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGRlZmF1bHQpLFxuICAgIGxpZ2h0ZXItY29udHJhc3Q6IG1hdC1jb250cmFzdCgkYmFzZS1wYWxldHRlLCAkbGlnaHRlciksXG4gICAgZGFya2VyLWNvbnRyYXN0OiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGRhcmtlcilcbiAgKSk7XG5cbiAgLy8gRm9yIGVhY2ggaHVlIGluIHRoZSBwYWxldHRlLCBhZGQgYSBcIi1jb250cmFzdFwiIGNvbG9yIHRvIHRoZSBtYXAuXG4gIEBlYWNoICRodWUsICRjb2xvciBpbiAkYmFzZS1wYWxldHRlIHtcbiAgICAkcmVzdWx0OiBtYXBfbWVyZ2UoJHJlc3VsdCwgKFxuICAgICAgJyN7JGh1ZX0tY29udHJhc3QnOiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGh1ZSlcbiAgICApKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuXG4vLyBHZXRzIGEgY29sb3IgZnJvbSBhIHRoZW1lIHBhbGV0dGUgKHRoZSBvdXRwdXQgb2YgbWF0LXBhbGV0dGUpLlxuLy8gVGhlIGh1ZSBjYW4gYmUgb25lIG9mIHRoZSBzdGFuZGFyZCB2YWx1ZXMgKDUwMCwgQTQwMCwgZXRjLiksIG9uZSBvZiB0aGUgdGhyZWUgcHJlY29uZmlndXJlZFxuLy8gaHVlcyAoZGVmYXVsdCwgbGlnaHRlciwgZGFya2VyKSwgb3IgYW55IG9mIHRoZSBhZm9yZW1lbnRpb25lZCBwcmVmaXhlZCB3aXRoIFwiLWNvbnRyYXN0XCIuXG4vL1xuLy8gQHBhcmFtICRjb2xvci1tYXAgVGhlIHRoZW1lIHBhbGV0dGUgKG91dHB1dCBvZiBtYXQtcGFsZXR0ZSkuXG4vLyBAcGFyYW0gJGh1ZSBUaGUgaHVlIGZyb20gdGhlIHBhbGV0dGUgdG8gdXNlLiBJZiB0aGlzIGlzIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxLCBpdCB3aWxsXG4vLyAgICAgYmUgdHJlYXRlZCBhcyBvcGFjaXR5LlxuLy8gQHBhcmFtICRvcGFjaXR5IFRoZSBhbHBoYSBjaGFubmVsIHZhbHVlIGZvciB0aGUgY29sb3IuXG5AZnVuY3Rpb24gbWF0LWNvbG9yKCRwYWxldHRlLCAkaHVlOiBkZWZhdWx0LCAkb3BhY2l0eTogbnVsbCkge1xuICAvLyBJZiBodWVLZXkgaXMgYSBudW1iZXIgYmV0d2VlbiB6ZXJvIGFuZCBvbmUsIHRoZW4gaXQgYWN0dWFsbHkgY29udGFpbnMgYW5cbiAgLy8gb3BhY2l0eSB2YWx1ZSwgc28gcmVjYWxsIHRoaXMgZnVuY3Rpb24gd2l0aCB0aGUgZGVmYXVsdCBodWUgYW5kIHRoYXQgZ2l2ZW4gb3BhY2l0eS5cbiAgQGlmIHR5cGUtb2YoJGh1ZSkgPT0gbnVtYmVyIGFuZCAkaHVlID49IDAgYW5kICRodWUgPD0gMSB7XG4gICAgQHJldHVybiBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQsICRodWUpO1xuICB9XG5cbiAgJGNvbG9yOiBtYXAtZ2V0KCRwYWxldHRlLCAkaHVlKTtcblxuICBAaWYgKHR5cGUtb2YoJGNvbG9yKSAhPSBjb2xvcikge1xuICAgIC8vIElmIHRoZSAkY29sb3IgcmVzb2x2ZWQgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIGEgY29sb3IgKGUuZy4gYSBDU1MgdmFyaWFibGUpLFxuICAgIC8vIHdlIGNhbid0IGFwcGx5IHRoZSBvcGFjaXR5IGFueXdheSBzbyB3ZSByZXR1cm4gdGhlIHZhbHVlIGFzIGlzLCBvdGhlcndpc2UgU2FzcyBjYW5cbiAgICAvLyB0aHJvdyBhbiBlcnJvciBvciBvdXRwdXQgc29tZXRoaW5nIGludmFsaWQuXG4gICAgQHJldHVybiAkY29sb3I7XG4gIH1cblxuICBAcmV0dXJuIHJnYmEoJGNvbG9yLCBpZigkb3BhY2l0eSA9PSBudWxsLCBvcGFjaXR5KCRjb2xvciksICRvcGFjaXR5KSk7XG59XG5cblxuLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBvYmplY3QgZm9yIGEgbGlnaHQgdGhlbWUgdG8gYmUgZ2l2ZW4gdG8gaW5kaXZpZHVhbCBjb21wb25lbnQgdGhlbWUgbWl4aW5zLlxuQGZ1bmN0aW9uIG1hdC1saWdodC10aGVtZSgkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm46IG1hdC1wYWxldHRlKCRtYXQtcmVkKSkge1xuICBAcmV0dXJuIChcbiAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICBhY2NlbnQ6ICRhY2NlbnQsXG4gICAgd2FybjogJHdhcm4sXG4gICAgaXMtZGFyazogZmFsc2UsXG4gICAgZm9yZWdyb3VuZDogJG1hdC1saWdodC10aGVtZS1mb3JlZ3JvdW5kLFxuICAgIGJhY2tncm91bmQ6ICRtYXQtbGlnaHQtdGhlbWUtYmFja2dyb3VuZCxcbiAgKTtcbn1cblxuXG4vLyBDcmVhdGVzIGEgY29udGFpbmVyIG9iamVjdCBmb3IgYSBkYXJrIHRoZW1lIHRvIGJlIGdpdmVuIHRvIGluZGl2aWR1YWwgY29tcG9uZW50IHRoZW1lIG1peGlucy5cbkBmdW5jdGlvbiBtYXQtZGFyay10aGVtZSgkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm46IG1hdC1wYWxldHRlKCRtYXQtcmVkKSkge1xuICBAcmV0dXJuIChcbiAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICBhY2NlbnQ6ICRhY2NlbnQsXG4gICAgd2FybjogJHdhcm4sXG4gICAgaXMtZGFyazogdHJ1ZSxcbiAgICBmb3JlZ3JvdW5kOiAkbWF0LWRhcmstdGhlbWUtZm9yZWdyb3VuZCxcbiAgICBiYWNrZ3JvdW5kOiAkbWF0LWRhcmstdGhlbWUtYmFja2dyb3VuZCxcbiAgKTtcbn1cblxuXG5cbiRtYXQtcmlwcGxlLWNvbG9yLW9wYWNpdHk6IDAuMTtcblxuQG1peGluIG1hdC1yaXBwbGUoKSB7XG5cbiAgLy8gVGhlIGhvc3QgZWxlbWVudCBvZiBhbiBtYXQtcmlwcGxlIGRpcmVjdGl2ZSBzaG91bGQgYWx3YXlzIGhhdmUgYSBwb3NpdGlvbiBvZiBcImFic29sdXRlXCIgb3JcbiAgLy8gXCJyZWxhdGl2ZVwiIHNvIHRoYXQgdGhlIHJpcHBsZXMgaW5zaWRlIGFyZSBjb3JyZWN0bHkgcG9zaXRpb25lZCByZWxhdGl2ZWx5IHRvIHRoZSBjb250YWluZXIuXG4gIC5tYXQtcmlwcGxlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLy8gQnkgZGVmYXVsdCwgZXZlcnkgcmlwcGxlIGNvbnRhaW5lciBzaG91bGQgaGF2ZSBwb3NpdGlvbjogcmVsYXRpdmUgaW4gZmF2b3Igb2YgY3JlYXRpbmcgYW5cbiAgICAvLyBlYXN5IEFQSSBmb3IgZGV2ZWxvcGVycyB1c2luZyB0aGUgTWF0UmlwcGxlIGRpcmVjdGl2ZS5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZCB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cblxuICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSwgdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuXG4gICAgLy8gSW4gaGlnaCBjb250cmFzdCBtb2RlIHRoZSByaXBwbGUgaXMgb3BhcXVlLCBjYXVzaW5nIGl0IHRvIG9ic3RydWN0IHRoZSBjb250ZW50LlxuICAgIEBpbmNsdWRlIGNkay1oaWdoLWNvbnRyYXN0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8qIFRoZW1lIGZvciB0aGUgcmlwcGxlIGVsZW1lbnRzLiovXG5AbWl4aW4gbWF0LXJpcHBsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcF9nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQtYmFzZTogbWFwX2dldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgLy8gSWYgdGhlIHJpcHBsZSBjb2xvciBpcyByZXNvbHZlcyB0byBhIGNvbG9yICp0eXBlKiwgd2UgY2FuIHVzZSBpdCBkaXJlY3RseSwgb3RoZXJ3aXNlXG4gICAgLy8gKGUuZy4gaXQgcmVzb2x2ZXMgdG8gYSBDU1MgdmFyaWFibGUpIHdlIGZhbGwgYmFjayB0byB1c2luZyB0aGUgY29sb3IgYW5kIHNldHRpbmcgYW4gb3BhY2l0eS5cbiAgICBAaWYgKHR5cGUtb2YoJGZvcmVncm91bmQtYmFzZSkgPT0gY29sb3IpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGZvcmVncm91bmQtYmFzZSwgJG1hdC1yaXBwbGUtY29sb3Itb3BhY2l0eSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmb3JlZ3JvdW5kLWJhc2U7XG4gICAgICBvcGFjaXR5OiAkbWF0LXJpcHBsZS1jb2xvci1vcGFjaXR5O1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gVXRpbGl0eSBmb3IgZmV0Y2hpbmcgYSBuZXN0ZWQgdmFsdWUgZnJvbSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCAkbmFtZSkge1xuICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkY29uZmlnLCAkbGV2ZWwpLCAkbmFtZSk7XG59XG5cbi8vIEdldHMgdGhlIGZvbnQgc2l6ZSBmb3IgYSBsZXZlbCBpbnNpZGUgYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBtYXQtZm9udC1zaXplKCRjb25maWcsICRsZXZlbCkge1xuICBAcmV0dXJuIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBmb250LXNpemUpO1xufVxuXG4vLyBHZXRzIHRoZSBsaW5lIGhlaWdodCBmb3IgYSBsZXZlbCBpbnNpZGUgYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgJGxldmVsKSB7XG4gIEByZXR1cm4gX21hdC1nZXQtdHlwZS12YWx1ZSgkY29uZmlnLCAkbGV2ZWwsIGxpbmUtaGVpZ2h0KTtcbn1cblxuLy8gR2V0cyB0aGUgZm9udCB3ZWlnaHQgZm9yIGEgbGV2ZWwgaW5zaWRlIGEgdHlwb2dyYXBoeSBjb25maWcuXG5AZnVuY3Rpb24gbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsICRsZXZlbCkge1xuICBAcmV0dXJuIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBmb250LXdlaWdodCk7XG59XG5cbi8vIEdldHMgdGhlIGxldHRlciBzcGFjaW5nIGZvciBhIGxldmVsIGluc2lkZSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIG1hdC1sZXR0ZXItc3BhY2luZygkY29uZmlnLCAkbGV2ZWwpIHtcbiAgQHJldHVybiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgbGV0dGVyLXNwYWNpbmcpO1xufVxuXG4vLyBHZXRzIHRoZSBmb250LWZhbWlseSBmcm9tIGEgdHlwb2dyYXBoeSBjb25maWcgYW5kIHJlbW92ZXMgdGhlIHF1b3RlcyBhcm91bmQgaXQuXG5AZnVuY3Rpb24gbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsICRsZXZlbDogbnVsbCkge1xuICAkZm9udC1mYW1pbHk6IG1hcC1nZXQoJGNvbmZpZywgZm9udC1mYW1pbHkpO1xuXG4gIEBpZiAkbGV2ZWwgIT0gbnVsbCB7XG4gICAgJGZvbnQtZmFtaWx5OiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgZm9udC1mYW1pbHkpO1xuICB9XG5cbiAgLy8gR3VhcmQgYWdhaW5zdCB1bnF1b3Rpbmcgbm9uLXN0cmluZyB2YWx1ZXMsIGJlY2F1c2UgaXQncyBkZXByZWNhdGVkLlxuICBAcmV0dXJuIGlmKHR5cGUtb2YoJGZvbnQtZmFtaWx5KSA9PSBzdHJpbmcsIHVucXVvdGUoJGZvbnQtZmFtaWx5KSwgJGZvbnQtZmFtaWx5KTtcbn1cblxuLy8gT3V0cHV0cyB0aGUgc2hvcnRoYW5kIGBmb250YCBDU1MgcHJvcGVydHksIGJhc2VkIG9uIGEgc2V0IG9mIHR5cG9ncmFwaHkgdmFsdWVzLiBGYWxscyBiYWNrIHRvXG4vLyB0aGUgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIGlmIGEgdmFsdWUgdGhhdCBpc24ndCBhbGxvd2VkIGluIHRoZSBzaG9ydGhhbmQgaXMgcGFzc2VkIGluLlxuQG1peGluIG1hdC10eXBvZ3JhcGh5LWZvbnQtc2hvcnRoYW5kKCRmb250LXNpemUsICRmb250LXdlaWdodCwgJGxpbmUtaGVpZ2h0LCAkZm9udC1mYW1pbHkpIHtcbiAgLy8gSWYgYW55IG9mIHRoZSB2YWx1ZXMgYXJlIHNldCB0byBgaW5oZXJpdGAsIHdlIGNhbid0IHVzZSB0aGUgc2hvcnRoYW5kXG4gIC8vIHNvIHdlIGZhbGwgYmFjayB0byBwYXNzaW5nIGluIHRoZSBpbmRpdmlkdWFsIHByb3BlcnRpZXMuXG4gIEBpZiAoJGZvbnQtc2l6ZSA9PSBpbmhlcml0IG9yXG4gICAgICAgJGZvbnQtd2VpZ2h0ID09IGluaGVyaXQgb3JcbiAgICAgICAkbGluZS1oZWlnaHQgPT0gaW5oZXJpdCBvclxuICAgICAgICRmb250LWZhbWlseSA9PSBpbmhlcml0IG9yXG4gICAgICAgJGZvbnQtc2l6ZSA9PSBudWxsIG9yXG4gICAgICAgJGZvbnQtd2VpZ2h0ID09IG51bGwgb3JcbiAgICAgICAkbGluZS1oZWlnaHQgPT0gbnVsbCBvclxuICAgICAgICRmb250LWZhbWlseSA9PSBudWxsKSB7XG5cbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIE90aGVyd2lzZSB1c2UgdGhlIHNob3J0aGFuZCBgZm9udGAsIGJlY2F1c2UgaXQncyB0aGUgbGVhc3QgYW1vdW50IG9mIGJ5dGVzLiBOb3RlXG4gICAgLy8gdGhhdCB3ZSBuZWVkIHRvIHVzZSBpbnRlcnBvbGF0aW9uIGZvciBgZm9udC1zaXplL2xpbmUtaGVpZ2h0YCBpbiBvcmRlciB0byBwcmV2ZW50XG4gICAgLy8gU2FzcyBmcm9tIGRpdmlkaW5nIHRoZSB0d28gdmFsdWVzLlxuICAgIGZvbnQ6ICRmb250LXdlaWdodCAjeyRmb250LXNpemV9LyN7JGxpbmUtaGVpZ2h0fSAkZm9udC1mYW1pbHk7XG4gIH1cbn1cblxuLy8gQ29udmVydHMgYSB0eXBvZ3JhcGh5IGxldmVsIGludG8gQ1NTIHN0eWxlcy5cbkBtaXhpbiBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgJGxldmVsKSB7XG4gICRmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgJGxldmVsKTtcbiAgJGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgJGxldmVsKTtcbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgJGxldmVsKTtcbiAgJGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgJGxldmVsKTtcblxuICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZCgkZm9udC1zaXplLCAkZm9udC13ZWlnaHQsICRsaW5lLWhlaWdodCwgJGZvbnQtZmFtaWx5KTtcbiAgbGV0dGVyLXNwYWNpbmc6IG1hdC1sZXR0ZXItc3BhY2luZygkY29uZmlnLCAkbGV2ZWwpO1xufVxuXG5cbkBtaXhpbiBtYXQtb3B0aW9uLXRoZW1lKCR0aGVtZSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcblxuICAubWF0LW9wdGlvbiB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAmOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksXG4gICAgJjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgIH1cblxuICAgIC8vIEluIG11bHRpcGxlIG1vZGUgdGhlcmUgaXMgYSBjaGVja2JveCB0byBzaG93IHRoYXQgdGhlIG9wdGlvbiBpcyBzZWxlY3RlZC5cbiAgICAmLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgfVxuXG4gICAgJi5tYXQtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtb3B0aW9uLWRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1wcmltYXJ5IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LW9wdGlvbi10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1vcHRpb24ge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBzdWJoZWFkaW5nLTIpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtb3B0Z3JvdXAtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1vcHRncm91cC1kaXNhYmxlZCAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtb3B0Z3JvdXAtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTIpO1xuICB9XG59XG5cblxuXG5AbWl4aW4gbWF0LXBzZXVkby1jaGVja2JveC10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG5cbiAgLy8gTk9URSh0cmF2aXNrYXVmbWFuKTogV2hpbGUgdGhlIHNwZWMgY2FsbHMgZm9yIHRyYW5zbHVjZW50IGJsYWNrcy93aGl0ZXMgZm9yIGRpc2FibGVkIGNvbG9ycyxcbiAgLy8gdGhpcyBkb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBlbGVtZW50cyBsYXllcmVkIG9uIHRvcCBvZiBvbmUgYW5vdGhlci4gVG8gZ2V0IGFyb3VuZCB0aGlzIHdlXG4gIC8vIGJsZW5kIHRoZSBjb2xvcnMgdG9nZXRoZXIgYmFzZWQgb24gdGhlIGJhc2UgY29sb3IgYW5kIHRoZSB0aGVtZSBiYWNrZ3JvdW5kLlxuICAkd2hpdGUtMzBwY3Qtb3BhY2l0eS1vbi1kYXJrOiAjNjg2ODY4O1xuICAkYmxhY2stMjZwY3Qtb3BhY2l0eS1vbi1saWdodDogI2IwYjBiMDtcbiAgJGRpc2FibGVkLWNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJHdoaXRlLTMwcGN0LW9wYWNpdHktb24tZGFyaywgJGJsYWNrLTI2cGN0LW9wYWNpdHktb24tbGlnaHQpO1xuICAkY29sb3JlZC1ib3gtc2VsZWN0b3I6ICcubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlJztcblxuICAubWF0LXBzZXVkby1jaGVja2JveCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCksIHNlY29uZGFyeS10ZXh0KTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICBjb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IobWFwLWdldCgkdGhlbWUsIHByaW1hcnkpKTtcbiAgfVxuXG4gIC8vIERlZmF1bHQgdG8gdGhlIGFjY2VudCBjb2xvci4gTm90ZSB0aGF0IHRoZSBwc2V1ZG8gY2hlY2tib3hlcyBhcmUgbWVhbnQgdG8gaW5oZXJpdCB0aGVcbiAgLy8gdGhlbWUgZnJvbSB0aGVpciBwYXJlbnQsIHJhdGhlciB0aGFuIGltcGxlbWVudGluZyB0aGVpciBvd24gdGhlbWluZywgd2hpY2ggaXMgd2h5IHdlXG4gIC8vIGRvbid0IGF0dGFjaCB0byB0aGUgYG1hdC0qYCBjbGFzc2VzLiBBbHNvIG5vdGUgdGhhdCB0aGlzIG5lZWRzIHRvIGJlIGJlbG93IGAubWF0LXByaW1hcnlgXG4gIC8vIGluIG9yZGVyIHRvIGFsbG93IGZvciB0aGUgY29sb3IgdG8gYmUgb3ZlcndyaXR0ZW4gaWYgdGhlIGNoZWNrYm94IGlzIGluc2lkZSBhIHBhcmVudCB0aGF0XG4gIC8vIGhhcyBgbWF0LWFjY2VudGAgYW5kIGlzIHBsYWNlZCBpbnNpZGUgYW5vdGhlciBwYXJlbnQgdGhhdCBoYXMgYG1hdC1wcmltYXJ5YC5cbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSxcbiAgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbiAgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpKTtcbiAgfVxuXG4gIC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKG1hcC1nZXQoJHRoZW1lLCB3YXJuKSk7XG4gIH1cblxuICAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICAmLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICAgICAgYmFja2dyb3VuZDogJGRpc2FibGVkLWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gUmVwcmVzZW50cyBhIHR5cG9ncmFwaHkgbGV2ZWwgZnJvbSB0aGUgTWF0ZXJpYWwgZGVzaWduIHNwZWMuXG5AZnVuY3Rpb24gbWF0LXR5cG9ncmFwaHktbGV2ZWwoXG4gICRmb250LXNpemUsXG4gICRsaW5lLWhlaWdodDogJGZvbnQtc2l6ZSxcbiAgJGZvbnQtd2VpZ2h0OiA0MDAsXG4gICRmb250LWZhbWlseTogbnVsbCxcbiAgJGxldHRlci1zcGFjaW5nOiBudWxsKSB7XG5cbiAgQHJldHVybiAoXG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLFxuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQsXG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodCxcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LFxuICAgIGxldHRlci1zcGFjaW5nOiAkbGV0dGVyLXNwYWNpbmdcbiAgKTtcbn1cblxuLy8gUmVwcmVzZW50cyBhIGNvbGxlY3Rpb24gb2YgdHlwb2dyYXBoeSBsZXZlbHMuXG4vLyBEZWZhdWx0cyBjb21lIGZyb20gaHR0cHM6Ly9tYXRlcmlhbC5pby9ndWlkZWxpbmVzL3N0eWxlL3R5cG9ncmFwaHkuaHRtbFxuLy8gTm90ZTogVGhlIHNwZWMgZG9lc24ndCBtZW50aW9uIGxldHRlciBzcGFjaW5nLiBUaGUgdmFsdWVzIGhlcmUgY29tZSBmcm9tXG4vLyBleWViYWxsaW5nIGl0IHVudGlsIGl0IGxvb2tlZCBleGFjdGx5IGxpa2UgdGhlIHNwZWMgZXhhbXBsZXMuXG5AZnVuY3Rpb24gbWF0LXR5cG9ncmFwaHktY29uZmlnKFxuICAkZm9udC1mYW1pbHk6ICAgJ1JvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmJyxcbiAgJGRpc3BsYXktNDogICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDExMnB4LCAxMTJweCwgMzAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjA1ZW0pLFxuICAkZGlzcGxheS0zOiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoNTZweCwgNTZweCwgNDAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW0pLFxuICAkZGlzcGxheS0yOiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoNDVweCwgNDhweCwgNDAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjAwNWVtKSxcbiAgJGRpc3BsYXktMTogICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDM0cHgsIDQwcHgsIDQwMCksXG4gICRoZWFkbGluZTogICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgyNHB4LCAzMnB4LCA0MDApLFxuICAkdGl0bGU6ICAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMjBweCwgMzJweCwgNTAwKSxcbiAgJHN1YmhlYWRpbmctMjogIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE2cHgsIDI4cHgsIDQwMCksXG4gICRzdWJoZWFkaW5nLTE6ICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNXB4LCAyNHB4LCA0MDApLFxuICAkYm9keS0yOiAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTRweCwgMjRweCwgNTAwKSxcbiAgJGJvZHktMTogICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE0cHgsIDIwcHgsIDQwMCksXG4gICRjYXB0aW9uOiAgICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxMnB4LCAyMHB4LCA0MDApLFxuICAkYnV0dG9uOiAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTRweCwgMTRweCwgNTAwKSxcbiAgLy8gTGluZS1oZWlnaHQgbXVzdCBiZSB1bml0LWxlc3MgZnJhY3Rpb24gb2YgdGhlIGZvbnQtc2l6ZS5cbiAgJGlucHV0OiAgICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKGluaGVyaXQsIDEuMTI1LCA0MDApXG4pIHtcblxuICAvLyBEZWNsYXJlIGFuIGluaXRpYWwgbWFwIHdpdGggYWxsIG9mIHRoZSBsZXZlbHMuXG4gICRjb25maWc6IChcbiAgICBkaXNwbGF5LTQ6ICAgICAgJGRpc3BsYXktNCxcbiAgICBkaXNwbGF5LTM6ICAgICAgJGRpc3BsYXktMyxcbiAgICBkaXNwbGF5LTI6ICAgICAgJGRpc3BsYXktMixcbiAgICBkaXNwbGF5LTE6ICAgICAgJGRpc3BsYXktMSxcbiAgICBoZWFkbGluZTogICAgICAgJGhlYWRsaW5lLFxuICAgIHRpdGxlOiAgICAgICAgICAkdGl0bGUsXG4gICAgc3ViaGVhZGluZy0yOiAgICRzdWJoZWFkaW5nLTIsXG4gICAgc3ViaGVhZGluZy0xOiAgICRzdWJoZWFkaW5nLTEsXG4gICAgYm9keS0yOiAgICAgICAgICRib2R5LTIsXG4gICAgYm9keS0xOiAgICAgICAgICRib2R5LTEsXG4gICAgY2FwdGlvbjogICAgICAgICRjYXB0aW9uLFxuICAgIGJ1dHRvbjogICAgICAgICAkYnV0dG9uLFxuICAgIGlucHV0OiAgICAgICAgICAkaW5wdXQsXG4gICk7XG5cbiAgLy8gTG9vcCB0aHJvdWdoIHRoZSBsZXZlbHMgYW5kIHNldCB0aGUgYGZvbnQtZmFtaWx5YCBvZiB0aGUgb25lcyB0aGF0IGRvbid0IGhhdmUgb25lIHRvIHRoZSBiYXNlLlxuICAvLyBOb3RlIHRoYXQgU2FzcyBjYW4ndCBtb2RpZnkgbWFwcyBpbiBwbGFjZSwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBuZWVkIHRvIG1lcmdlIGFuZCByZS1hc3NpZ24uXG4gIEBlYWNoICRrZXksICRsZXZlbCBpbiAkY29uZmlnIHtcbiAgICBAaWYgbWFwLWdldCgkbGV2ZWwsIGZvbnQtZmFtaWx5KSA9PSBudWxsIHtcbiAgICAgICRuZXctbGV2ZWw6IG1hcC1tZXJnZSgkbGV2ZWwsIChmb250LWZhbWlseTogJGZvbnQtZmFtaWx5KSk7XG4gICAgICAkY29uZmlnOiBtYXAtbWVyZ2UoJGNvbmZpZywgKCRrZXk6ICRuZXctbGV2ZWwpKTtcbiAgICB9XG4gIH1cblxuICAvLyBBZGQgdGhlIGJhc2UgZm9udCBmYW1pbHkgdG8gdGhlIGNvbmZpZy5cbiAgQHJldHVybiBtYXAtbWVyZ2UoJGNvbmZpZywgKGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHkpKTtcbn1cblxuLy8gQWRkcyB0aGUgYmFzZSB0eXBvZ3JhcGh5IHN0eWxlcywgYmFzZWQgb24gYSBjb25maWcuXG5AbWl4aW4gbWF0LWJhc2UtdHlwb2dyYXBoeSgkY29uZmlnLCAkc2VsZWN0b3I6ICcubWF0LXR5cG9ncmFwaHknKSB7XG4gIC5tYXQtaDEsIC5tYXQtaGVhZGxpbmUsICN7JHNlbGVjdG9yfSBoMSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGhlYWRsaW5lKTtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICB9XG5cbiAgLm1hdC1oMiwgLm1hdC10aXRsZSwgI3skc2VsZWN0b3J9IGgyIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgdGl0bGUpO1xuICAgIG1hcmdpbjogMCAwIDE2cHg7XG4gIH1cblxuICAubWF0LWgzLCAubWF0LXN1YmhlYWRpbmctMiwgI3skc2VsZWN0b3J9IGgzIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgc3ViaGVhZGluZy0yKTtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICB9XG5cbiAgLm1hdC1oNCwgLm1hdC1zdWJoZWFkaW5nLTEsICN7JHNlbGVjdG9yfSBoNCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgbWFyZ2luOiAwIDAgMTZweDtcbiAgfVxuXG4gIC8vIE5vdGU6IHRoZSBzcGVjIGRvZXNuJ3QgaGF2ZSBhbnl0aGluZyB0aGF0IHdvdWxkIGNvcnJlc3BvbmQgdG8gaDUgYW5kIGg2LCBidXQgd2UgYWRkIHRoZXNlIGZvclxuICAvLyBjb25zaXN0ZW5jeS4gVGhlIGZvbnQgc2l6ZXMgY29tZSBmcm9tIHRoZSBDaHJvbWUgdXNlciBhZ2VudCBzdHlsZXMgd2hpY2ggaGF2ZSBoNSBhdCAwLjgzZW1cbiAgLy8gYW5kIGg2IGF0IDAuNjdlbS5cbiAgLm1hdC1oNSwgI3skc2VsZWN0b3J9IGg1IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZChcbiAgICAgICAvLyBjYWxjIGlzIHVzZWQgaGVyZSB0byBzdXBwb3J0IGNzcyB2YXJpYWJsZXNcbiAgICAgIGNhbGMoI3ttYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSl9ICogMC44MyksXG4gICAgICBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgIG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBib2R5LTEpLFxuICAgICAgbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMSlcbiAgICApO1xuXG4gICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgfVxuXG4gIC5tYXQtaDYsICN7JHNlbGVjdG9yfSBoNiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktZm9udC1zaG9ydGhhbmQoXG4gICAgICAgLy8gY2FsYyBpcyB1c2VkIGhlcmUgdG8gc3VwcG9ydCBjc3MgdmFyaWFibGVzXG4gICAgICBjYWxjKCN7bWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpfSAqIDAuNjcpLFxuICAgICAgbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSksXG4gICAgICBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgIG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBib2R5LTEpXG4gICAgKTtcblxuICAgIG1hcmdpbjogMCAwIDEycHg7XG4gIH1cblxuICAubWF0LWJvZHktc3Ryb25nLCAubWF0LWJvZHktMiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGJvZHktMik7XG4gIH1cblxuICAubWF0LWJvZHksIC5tYXQtYm9keS0xLCAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuXG4gICAgcCB7XG4gICAgICBtYXJnaW46IDAgMCAxMnB4O1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc21hbGwsIC5tYXQtY2FwdGlvbiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGNhcHRpb24pO1xuICB9XG5cbiAgLm1hdC1kaXNwbGF5LTQsICN7JHNlbGVjdG9yfSAubWF0LWRpc3BsYXktNCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGRpc3BsYXktNCk7XG4gICAgbWFyZ2luOiAwIDAgNTZweDtcbiAgfVxuXG4gIC5tYXQtZGlzcGxheS0zLCAjeyRzZWxlY3Rvcn0gLm1hdC1kaXNwbGF5LTMge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBkaXNwbGF5LTMpO1xuICAgIG1hcmdpbjogMCAwIDY0cHg7XG4gIH1cblxuICAubWF0LWRpc3BsYXktMiwgI3skc2VsZWN0b3J9IC5tYXQtZGlzcGxheS0yIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgZGlzcGxheS0yKTtcbiAgICBtYXJnaW46IDAgMCA2NHB4O1xuICB9XG5cbiAgLm1hdC1kaXNwbGF5LTEsICN7JHNlbGVjdG9yfSAubWF0LWRpc3BsYXktMSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGRpc3BsYXktMSk7XG4gICAgbWFyZ2luOiAwIDAgNjRweDtcbiAgfVxufVxuXG5cblxuXG5AbWl4aW4gbWF0LWF1dG9jb21wbGV0ZS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcblxuICAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgLy8gU2VsZWN0ZWQgb3B0aW9ucyBpbiBhdXRvY29tcGxldGVzIHNob3VsZCBub3QgYmUgZ3JheSwgYnV0IHdlXG4gICAgLy8gb25seSB3YW50IHRvIG92ZXJyaWRlIHRoZSBiYWNrZ3JvdW5kIGZvciBzZWxlY3RlZCBvcHRpb25zIGlmXG4gICAgLy8gdGhleSBhcmUgKm5vdCogaW4gaG92ZXIgb3IgZm9jdXMgc3RhdGUuIFRoaXMgY2hhbmdlIGhhcyB0byBiZVxuICAgIC8vIG1hZGUgaGVyZSBiZWNhdXNlIGJhc2Ugb3B0aW9uIHN0eWxlcyBhcmUgc2hhcmVkIGJldHdlZW4gdGhlXG4gICAgLy8gYXV0b2NvbXBsZXRlIGFuZCB0aGUgc2VsZWN0LlxuICAgIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG5cbiAgICAgICY6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbkBtaXhpbiBtYXQtYXV0b2NvbXBsZXRlLXR5cG9ncmFwaHkoJGNvbmZpZykgeyB9XG5cbi8vIFRoaXMgY29udGFpbnMgYWxsIG9mIHRoZSBzdHlsZXMgZm9yIHRoZSBiYWRnZVxuLy8gcmF0aGVyIHRoYW4ganVzdCB0aGUgY29sb3IvdGhlbWUgYmVjYXVzZSBvZlxuLy8gbm8gc3R5bGUgc2hlZXQgc3VwcG9ydCBmb3IgZGlyZWN0aXZlcy5cblxuXG5cblxuXG4kbWF0LWJhZGdlLWZvbnQtc2l6ZTogMTJweDtcbiRtYXQtYmFkZ2UtZm9udC13ZWlnaHQ6IDYwMDtcbiRtYXQtYmFkZ2UtZGVmYXVsdC1zaXplOiAyMnB4ICFkZWZhdWx0O1xuJG1hdC1iYWRnZS1zbWFsbC1zaXplOiAkbWF0LWJhZGdlLWRlZmF1bHQtc2l6ZSAtIDY7XG4kbWF0LWJhZGdlLWxhcmdlLXNpemU6ICRtYXQtYmFkZ2UtZGVmYXVsdC1zaXplICsgNjtcblxuLy8gTWl4aW4gZm9yIGJ1aWxkaW5nIG9mZnNldCBnaXZlbiBkaWZmZXJlbnQgc2l6ZXNcbkBtaXhpbiBfbWF0LWJhZGdlLXNpemUoJHNpemUpIHtcbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJHNpemU7XG4gIH1cblxuICAmLm1hdC1iYWRnZS1hYm92ZSB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIHRvcDogLSRzaXplIC8gMjtcbiAgICB9XG4gIH1cblxuICAmLm1hdC1iYWRnZS1iZWxvdyB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIGJvdHRvbTogLSRzaXplIC8gMjtcbiAgICB9XG4gIH1cblxuICAmLm1hdC1iYWRnZS1iZWZvcmUge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBsZWZ0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgW2Rpcj0ncnRsJ10gJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIHJpZ2h0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgJi5tYXQtYmFkZ2UtYWZ0ZXIge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICByaWdodDogLSRzaXplO1xuICAgIH1cbiAgfVxuXG4gIFtkaXI9J3J0bCddICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBsZWZ0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgJi5tYXQtYmFkZ2Utb3ZlcmxhcCB7XG4gICAgJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIGxlZnQ6IC0kc2l6ZSAvIDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgW2Rpcj0ncnRsJ10gJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIHJpZ2h0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cblxuICAgIFtkaXI9J3J0bCddICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBsZWZ0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJhZGdlLXRoZW1lKCR0aGVtZSkge1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG5cbiAgICBAaW5jbHVkZSBjZGstaGlnaC1jb250cmFzdCB7XG4gICAgICBvdXRsaW5lOiBzb2xpZCAxcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2UtYWNjZW50IHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJhZGdlLXdhcm4ge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLm1hdC1iYWRnZS1oaWRkZW4ge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2UtZGlzYWJsZWQge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAkYXBwLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2JhY2tncm91bmQnKTtcbiAgICAgICRiYWRnZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC1idXR0b24pO1xuXG4gICAgICAvLyBUaGUgZGlzYWJsZWQgY29sb3IgdXN1YWxseSBoYXMgc29tZSBraW5kIG9mIG9wYWNpdHksIGJ1dCBiZWNhdXNlIHRoZSBiYWRnZSBpcyBvdmVybGF5ZWRcbiAgICAgIC8vIG9uIHRvcCBvZiBzb21ldGhpbmcgZWxzZSwgaXQgd29uJ3QgbG9vayBnb29kIGlmIGl0J3Mgb3BhcXVlLiBJZiBpdCBpcyBhIGNvbG9yICp0eXBlKixcbiAgICAgIC8vIHdlIGNvbnZlcnQgaXQgaW50byBhIHNvbGlkIGNvbG9yIGJ5IHRha2luZyB0aGUgb3BhY2l0eSBmcm9tIHRoZSByZ2JhIHZhbHVlIGFuZCB1c2luZ1xuICAgICAgLy8gdGhlIHZhbHVlIHRvIGRldGVybWluZSB0aGUgcGVyY2VudGFnZSBvZiB0aGUgYmFja2dyb3VuZCB0byBwdXQgaW50byBmb3JlZ3JvdW5kIHdoZW5cbiAgICAgIC8vIG1peGluZyB0aGUgY29sb3JzIHRvZ2V0aGVyLlxuICAgICAgQGlmICh0eXBlLW9mKCRiYWRnZS1jb2xvcikgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGFwcC1iYWNrZ3JvdW5kKSA9PSBjb2xvcikge1xuICAgICAgICAkYmFkZ2Utb3BhY2l0eTogb3BhY2l0eSgkYmFkZ2UtY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kOiBtaXgoJGFwcC1iYWNrZ3JvdW5kLCByZ2JhKCRiYWRnZS1jb2xvciwgMSksICgxIC0gJGJhZGdlLW9wYWNpdHkpICogMTAwJSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRiYWRnZS1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0O1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsXG4gIC5tYXQtYmFkZ2UtY29udGVudC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8vIFRoZSBhY3RpdmUgY2xhc3MgaXMgYWRkZWQgYWZ0ZXIgdGhlIGVsZW1lbnQgaXMgYWRkZWRcbiAgLy8gc28gaXQgY2FuIGFuaW1hdGUgc2NhbGUgdG8gZGVmYXVsdFxuICAubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZSB7XG4gICAgLy8gU2NhbGUgdG8gYG5vbmVgIGluc3RlYWQgb2YgYDFgIHRvIGF2b2lkIGJsdXJyeSB0ZXh0IGluIHNvbWUgYnJvd3NlcnMuXG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgLm1hdC1iYWRnZS1zbWFsbCB7XG4gICAgQGluY2x1ZGUgX21hdC1iYWRnZS1zaXplKCRtYXQtYmFkZ2Utc21hbGwtc2l6ZSk7XG4gIH1cbiAgLm1hdC1iYWRnZS1tZWRpdW0ge1xuICAgIEBpbmNsdWRlIF9tYXQtYmFkZ2Utc2l6ZSgkbWF0LWJhZGdlLWRlZmF1bHQtc2l6ZSk7XG4gIH1cbiAgLm1hdC1iYWRnZS1sYXJnZSB7XG4gICAgQGluY2x1ZGUgX21hdC1iYWRnZS1zaXplKCRtYXQtYmFkZ2UtbGFyZ2Utc2l6ZSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1iYWRnZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBmb250LXdlaWdodDogJG1hdC1iYWRnZS1mb250LXdlaWdodDtcbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplO1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgLy8gU2V0IHRoZSBmb250IHNpemUgdG8gNzUlIG9mIHRoZSBvcmlnaW5hbC5cbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplICogMC43NTtcbiAgfVxuXG4gIC5tYXQtYmFkZ2UtbGFyZ2UgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplICogMjtcbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtYm90dG9tLXNoZWV0LXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMTYsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtYm90dG9tLXNoZWV0LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG5cblxuJF9tYXQtYnV0dG9uLXJpcHBsZS1vcGFjaXR5OiAwLjE7XG5cbi8vIEFwcGxpZXMgYSBmb2N1cyBzdHlsZSB0byBhbiBtYXQtYnV0dG9uIGVsZW1lbnQgZm9yIGVhY2ggb2YgdGhlIHN1cHBvcnRlZCBwYWxldHRlcy5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LWNvbG9yKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcblxuICAmLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gIH1cblxuICAmLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICB9XG5cbiAgJi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHdhcm4pO1xuICB9XG5cbiAgJltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8gQXBwbGllcyB0aGUgYmFja2dyb3VuZCBjb2xvciBmb3IgYSByaXBwbGUuIElmIHRoZSB2YWx1ZSBwcm92aWRlZCBpcyBub3QgYSBTYXNzIGNvbG9yLFxuLy8gd2UgYXNzdW1lIHRoYXQgd2UndmUgYmVlbiBnaXZlbiBhIENTUyB2YXJpYWJsZS4gU2luY2Ugd2UgY2FuJ3QgcGVyZm9ybSBhbHBoYS1ibGVuZGluZ1xuLy8gb24gYSBDU1MgdmFyaWFibGUsIHdlIGluc3RlYWQgYWRkIHRoZSBvcGFjaXR5IGRpcmVjdGx5IHRvIHRoZSByaXBwbGUgZWxlbWVudC5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1yaXBwbGUtYmFja2dyb3VuZCgkcGFsZXR0ZSwgJGh1ZSwgJG9wYWNpdHkpIHtcbiAgJGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgJGh1ZSwgJG9wYWNpdHkpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgQGlmICh0eXBlLW9mKCRiYWNrZ3JvdW5kLWNvbG9yKSAhPSBjb2xvcikge1xuICAgIG9wYWNpdHk6ICRvcGFjaXR5O1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1yaXBwbGUtY29sb3IoJHRoZW1lLCAkaHVlLCAkb3BhY2l0eTogJF9tYXQtYnV0dG9uLXJpcHBsZS1vcGFjaXR5KSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gICYubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tcmlwcGxlLWJhY2tncm91bmQoJHByaW1hcnksICRodWUsICRvcGFjaXR5KTtcbiAgfVxuXG4gICYubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi1yaXBwbGUtYmFja2dyb3VuZCgkYWNjZW50LCAkaHVlLCAkb3BhY2l0eSk7XG4gIH1cblxuICAmLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXJpcHBsZS1iYWNrZ3JvdW5kKCR3YXJuLCAkaHVlLCAkb3BhY2l0eSk7XG4gIH1cbn1cblxuLy8gQXBwbGllcyBhIHByb3BlcnR5IHRvIGFuIG1hdC1idXR0b24gZWxlbWVudCBmb3IgZWFjaCBvZiB0aGUgc3VwcG9ydGVkIHBhbGV0dGVzLlxuQG1peGluIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCR0aGVtZSwgJHByb3BlcnR5LCAkaHVlKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICYubWF0LXByaW1hcnkge1xuICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRwcmltYXJ5LCAkaHVlKTtcbiAgfVxuICAmLm1hdC1hY2NlbnQge1xuICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRhY2NlbnQsICRodWUpO1xuICB9XG4gICYubWF0LXdhcm4ge1xuICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCR3YXJuLCAkaHVlKTtcbiAgfVxuXG4gICYubWF0LXByaW1hcnksICYubWF0LWFjY2VudCwgJi5tYXQtd2FybiwgJltkaXNhYmxlZF0ge1xuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICRwYWxldHRlOiBpZigkcHJvcGVydHkgPT0gJ2NvbG9yJywgJGZvcmVncm91bmQsICRiYWNrZ3JvdW5kKTtcbiAgICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRwYWxldHRlLCBkaXNhYmxlZC1idXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJ1dHRvbi10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1idXR0b24sIC5tYXQtaWNvbi1idXR0b24sIC5tYXQtc3Ryb2tlZC1idXR0b24ge1xuICAgIC8vIEJ1dHRvbnMgd2l0aG91dCBhIGJhY2tncm91bmQgY29sb3Igc2hvdWxkIGluaGVyaXQgdGhlIGZvbnQgY29sb3IuIFRoaXMgaXMgbmVjZXNzYXJ5IHRvXG4gICAgLy8gZW5zdXJlIHRoYXQgdGhlIGJ1dHRvbiBpcyByZWFkYWJsZSBvbiBjdXN0b20gYmFja2dyb3VuZCBjb2xvcnMuIEl0J3Mgd3JvbmcgdG8gYWx3YXlzIGFzc3VtZVxuICAgIC8vIHRoYXQgdGhvc2UgYnV0dG9ucyBhcmUgYWx3YXlzIHBsYWNlZCBpbnNpZGUgb2YgY29udGFpbmVycyB3aXRoIHRoZSBkZWZhdWx0IGJhY2tncm91bmRcbiAgICAvLyBjb2xvciBvZiB0aGUgdGhlbWUgKGUuZy4gdGhlbWVkIHRvb2xiYXJzKS5cbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCR0aGVtZSwgJ2NvbG9yJywgdGV4dCk7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tZm9jdXMtb3ZlcmxheS1jb2xvcigkdGhlbWUpO1xuXG4gICAgLy8gU2V0dXAgdGhlIHJpcHBsZSBjb2xvciB0byBiZSBiYXNlZCBvbiB0aGUgdGV4dCBjb2xvci4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHJpcHBsZXNcbiAgICAvLyBhcmUgbWF0Y2hpbmcgd2l0aCB0aGUgY3VycmVudCB0aGVtZSBwYWxldHRlIGFuZCBhcmUgaW4gY29udHJhc3QgdG8gdGhlIGJhY2tncm91bmQgY29sb3JcbiAgICAvLyAoZS5nIGluIHRoZW1lZCB0b29sYmFycykuXG4gICAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBvcGFjaXR5OiAkX21hdC1idXR0b24tcmlwcGxlLW9wYWNpdHk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZDogbWFwX2dldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG4gIH1cblxuICAvLyBOb3RlOiB0aGlzIG5lZWRzIGEgYml0IGV4dHJhIHNwZWNpZmljaXR5LCBiZWNhdXNlIHdlJ3JlIG5vdCBndWFyYW50ZWVkIHRoZSBpbmNsdXNpb25cbiAgLy8gb3JkZXIgb2YgdGhlIHRoZW1lIHN0eWxlcyBhbmQgdGhlIGJ1dHRvbiByZXNldCBtYXkgZW5kIHVwIHJlc2V0dGluZyB0aGlzIGFzIHdlbGwuXG4gIC5tYXQtc3Ryb2tlZC1idXR0b246bm90KFtkaXNhYmxlZF0pIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWZsYXQtYnV0dG9uLCAubWF0LXJhaXNlZC1idXR0b24sIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgICAvLyBEZWZhdWx0IGZvbnQgYW5kIGJhY2tncm91bmQgY29sb3Igd2hlbiBub3QgdXNpbmcgYW55IGNvbG9yIHBhbGV0dGUuXG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCByYWlzZWQtYnV0dG9uKTtcblxuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCR0aGVtZSwgJ2NvbG9yJywgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tdGhlbWUtcHJvcGVydHkoJHRoZW1lLCAnYmFja2dyb3VuZC1jb2xvcicsIGRlZmF1bHQpO1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXJpcHBsZS1jb2xvcigkdGhlbWUsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgLm1hdC1zdHJva2VkLWJ1dHRvbiwgLm1hdC1mbGF0LWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMCwgJHRoZW1lKTtcbiAgfVxuXG4gIC5tYXQtcmFpc2VkLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMiwgJHRoZW1lKTtcblxuICAgICY6bm90KFtkaXNhYmxlZF0pOmFjdGl2ZSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbig4LCAkdGhlbWUpO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mYWIsIC5tYXQtbWluaS1mYWIge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDYsICR0aGVtZSk7XG5cbiAgICAmOm5vdChbZGlzYWJsZWRdKTphY3RpdmUge1xuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMTIsICR0aGVtZSk7XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMCwgJHRoZW1lKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1idXR0b24tdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtYnV0dG9uLCAubWF0LXJhaXNlZC1idXR0b24sIC5tYXQtaWNvbi1idXR0b24sIC5tYXQtc3Ryb2tlZC1idXR0b24sXG4gIC5tYXQtZmxhdC1idXR0b24sIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYnV0dG9uKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRvZ2dsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGRpdmlkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUsXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMiwgJHRoZW1lKTtcbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuXG4gICAgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBmb2N1c2VkLWJ1dHRvbik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG5cbiAgICAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGZvY3VzZWQtYnV0dG9uLCAxKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggJGRpdmlkZXItY29sb3I7XG4gIH1cblxuICBbZGlyPSdydGwnXSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIGJvcmRlci1yaWdodDogc29saWQgMXB4ICRkaXZpZGVyLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwge1xuICAgIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgIGJvcmRlci10b3A6IHNvbGlkIDFweCAkZGl2aWRlci1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBzZWxlY3RlZC1idXR0b24pO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLWJ1dHRvbik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaXNhYmxlZC1idXR0b24tdG9nZ2xlKTtcblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIH1cblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIHNlbGVjdGVkLWRpc2FibGVkLWJ1dHRvbik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIGJvcmRlcjogc29saWQgMXB4ICRkaXZpZGVyLWNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRvZ2dsZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtY2FyZC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWNhcmQge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDEsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgIC8vIE5lZWRzIGV4dHJhIHNwZWNpZmljaXR5IHRvIGJlIGFibGUgdG8gb3ZlcnJpZGUgdGhlIGVsZXZhdGlvbiBzZWxlY3RvcnMuXG4gICAgJi5tYXQtY2FyZC1mbGF0IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYXJkLXN1YnRpdGxlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1jYXJkLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWNhcmQge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWNhcmQtdGl0bGUge1xuICAgIGZvbnQ6IHtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgaGVhZGxpbmUpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgdGl0bGUpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FyZC1oZWFkZXIgLm1hdC1jYXJkLXRpdGxlIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgdGl0bGUpO1xuICB9XG5cbiAgLm1hdC1jYXJkLXN1YnRpdGxlLFxuICAubWF0LWNhcmQtY29udGVudCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtY2hlY2tib3gtdGhlbWUoJHRoZW1lKSB7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG5cbiAgLy8gVGhlIGNvbG9yIG9mIHRoZSBjaGVja2JveCdzIGNoZWNrbWFyayAvIG1peGVkbWFyay5cbiAgJGNoZWNrYm94LW1hcmstY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgYmFja2dyb3VuZCk7XG5cbiAgLy8gTk9URSh0cmF2aXNrYXVmbWFuKTogV2hpbGUgdGhlIHNwZWMgY2FsbHMgZm9yIHRyYW5zbHVjZW50IGJsYWNrcy93aGl0ZXMgZm9yIGRpc2FibGVkIGNvbG9ycyxcbiAgLy8gdGhpcyBkb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBlbGVtZW50cyBsYXllcmVkIG9uIHRvcCBvZiBvbmUgYW5vdGhlci4gVG8gZ2V0IGFyb3VuZCB0aGlzIHdlXG4gIC8vIGJsZW5kIHRoZSBjb2xvcnMgdG9nZXRoZXIgYmFzZWQgb24gdGhlIGJhc2UgY29sb3IgYW5kIHRoZSB0aGVtZSBiYWNrZ3JvdW5kLlxuICAkd2hpdGUtMzBwY3Qtb3BhY2l0eS1vbi1kYXJrOiAjNjg2ODY4O1xuICAkYmxhY2stMjZwY3Qtb3BhY2l0eS1vbi1saWdodDogI2IwYjBiMDtcbiAgJGRpc2FibGVkLWNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJHdoaXRlLTMwcGN0LW9wYWNpdHktb24tZGFyaywgJGJsYWNrLTI2cGN0LW9wYWNpdHktb24tbGlnaHQpO1xuXG4gIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gICAgZmlsbDogJGNoZWNrYm94LW1hcmstY29sb3I7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIHtcbiAgICAvLyAhaW1wb3J0YW50IGlzIG5lZWRlZCBoZXJlIGJlY2F1c2UgYSBzdHJva2UgbXVzdCBiZSBzZXQgYXMgYW5cbiAgICAvLyBhdHRyaWJ1dGUgb24gdGhlIFNWRyBpbiBvcmRlciBmb3IgbGluZSBhbmltYXRpb24gdG8gd29yayBwcm9wZXJseS5cbiAgICBzdHJva2U6ICRjaGVja2JveC1tYXJrLWNvbG9yICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBjZGstaGlnaC1jb250cmFzdChibGFjay1vbi13aGl0ZSkge1xuICAgICAgLy8gSGF2aW5nIHRoZSBvbmUgYWJvdmUgYmUgIWltcG9ydGFudCBlbmRzIHVwIG92ZXJyaWRpbmcgdGhlIGJyb3dzZXIncyBhdXRvbWF0aWNcbiAgICAgIC8vIGNvbG9yIGludmVyc2lvbiBzbyB3ZSBuZWVkIHRvIHJlLWludmVydCBpdCBvdXJzZWx2ZXMgZm9yIGJsYWNrLW9uLXdoaXRlLlxuICAgICAgc3Ryb2tlOiAjMDAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjaGVja2JveC1tYXJrLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLCAubWF0LWNoZWNrYm94LWNoZWNrZWQge1xuICAgICYubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICAmLm1hdC1jaGVja2JveC1jaGVja2VkLFxuICAgICYubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICAgICAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5tYXQtY2hlY2tib3gtY2hlY2tlZCkge1xuICAgICAgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGNkay1oaWdoLWNvbnRyYXN0IHtcbiAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG4gIH1cblxuICAvLyBUaGlzIG9uZSBpcyBtb3ZlZCBkb3duIGhlcmUgc28gaXQgY2FuIHRhcmdldCBib3RoXG4gIC8vIHRoZSB0aGVtZSBjb2xvcnMgYW5kIHRoZSBkaXNhYmxlZCBzdGF0ZS5cbiAgQGluY2x1ZGUgY2RrLWhpZ2gtY29udHJhc3Qge1xuICAgIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICAvLyBOZWVkcyB0byBiZSByZW1vdmVkIGJlY2F1c2UgaXQgaGlkZXMgdGhlIGNoZWNrYm94IG91dGxpbmUuXG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN3aXRjaCB0aGlzIHRvIGEgc29saWQgY29sb3Igc2luY2Ugd2UncmUgdXNpbmcgYG9wYWNpdHlgXG4gIC8vIHRvIGNvbnRyb2wgaG93IG9wYXF1ZSB0aGUgcmlwcGxlIHNob3VsZCBiZS5cbiAgLm1hdC1jaGVja2JveCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXBfZ2V0KG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKSwgYmFzZSk7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLFxuICAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkge1xuICAgICYubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1jaGVja2JveC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1jaGVja2JveCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC8vIFRPRE8oa2FyYSk6IFJlbW92ZSB0aGlzIHN0eWxlIHdoZW4gZml4aW5nIHZlcnRpY2FsIGJhc2VsaW5lXG4gIC5tYXQtY2hlY2tib3gtbGF5b3V0IC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICAgIGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxufVxuXG5cblxuXG5cblxuJG1hdC1jaGlwLXJlbW92ZS1mb250LXNpemU6IDE4cHg7XG5cbkBtaXhpbiBtYXQtY2hpcHMtY29sb3IoJGZvcmVncm91bmQsICRiYWNrZ3JvdW5kKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGZvcmVncm91bmQ7XG5cbiAgLm1hdC1jaGlwLXJlbW92ZSB7XG4gICAgY29sb3I6ICRmb3JlZ3JvdW5kO1xuICAgIG9wYWNpdHk6IDAuNDtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWNoaXBzLXRoZW1lLWNvbG9yKCRwYWxldHRlKSB7XG4gIEBpbmNsdWRlIG1hdC1jaGlwcy1jb2xvcihtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QpLCBtYXQtY29sb3IoJHBhbGV0dGUpKTtcblxuICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QsIDAuMSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1jaGlwcy10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgJHVuc2VsZWN0ZWQtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCB1bnNlbGVjdGVkLWNoaXApO1xuICAkdW5zZWxlY3RlZC1mb3JlZ3JvdW5kOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcCB7XG4gICAgQGluY2x1ZGUgbWF0LWNoaXBzLWNvbG9yKCR1bnNlbGVjdGVkLWZvcmVncm91bmQsICR1bnNlbGVjdGVkLWJhY2tncm91bmQpO1xuXG4gICAgJjpub3QoLm1hdC1jaGlwLWRpc2FibGVkKSB7XG4gICAgICAmOmFjdGl2ZSB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDMsICR0aGVtZSk7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtY2hpcC1yZW1vdmU6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAwLjU0O1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWNoaXAtZGlzYWJsZWQge1xuICAgICAgb3BhY2l0eTogMC40O1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hcF9nZXQoJGZvcmVncm91bmQsIGJhc2UpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZCB7XG4gICAgJi5tYXQtcHJpbWFyeSB7XG4gICAgICBAaW5jbHVkZSBtYXQtY2hpcHMtdGhlbWUtY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgbWF0LWNoaXBzLXRoZW1lLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgbWF0LWNoaXBzLXRoZW1lLWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWNoaXBzLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWNoaXAge1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTIpO1xuICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcblxuICAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uLFxuICAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkbWF0LWNoaXAtcmVtb3ZlLWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LXRhYmxlLXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtdGFibGUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgfVxuXG4gIC5tYXQtdGFibGUgdGhlYWQsIC5tYXQtdGFibGUgdGJvZHksIC5tYXQtdGFibGUgdGZvb3QsXG4gIG1hdC1oZWFkZXItcm93LCBtYXQtcm93LCBtYXQtZm9vdGVyLXJvdyxcbiAgW21hdC1oZWFkZXItcm93XSwgW21hdC1yb3ddLCBbbWF0LWZvb3Rlci1yb3ddLFxuICAubWF0LXRhYmxlLXN0aWNreSB7XG4gICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgfVxuXG4gIG1hdC1yb3csIG1hdC1oZWFkZXItcm93LCBtYXQtZm9vdGVyLXJvdyxcbiAgdGgubWF0LWhlYWRlci1jZWxsLCB0ZC5tYXQtY2VsbCwgdGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jZWxsLCAubWF0LWZvb3Rlci1jZWxsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRhYmxlLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXRhYmxlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxuXG4gIC5tYXQtY2VsbCwgLm1hdC1mb290ZXItY2VsbCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuXG5cblxuJG1hdC1kYXRlcGlja2VyLXNlbGVjdGVkLXRvZGF5LWJveC1zaGFkb3ctd2lkdGg6IDFweDtcbiRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC1mYWRlLWFtb3VudDogMC42O1xuJG1hdC1kYXRlcGlja2VyLXRvZGF5LWZhZGUtYW1vdW50OiAwLjI7XG4kbWF0LWNhbGVuZGFyLWJvZHktZm9udC1zaXplOiAxM3B4ICFkZWZhdWx0O1xuJG1hdC1jYWxlbmRhci13ZWVrZGF5LXRhYmxlLWZvbnQtc2l6ZTogMTFweCAhZGVmYXVsdDtcblxuQG1peGluIF9tYXQtZGF0ZXBpY2tlci1jb2xvcigkcGFsZXR0ZSkge1xuICAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgICRiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRiYWNrZ3JvdW5kKSA9PSBjb2xvcikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZmFkZS1vdXQoJGJhY2tncm91bmQsICRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC1mYWRlLWFtb3VudCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIElmIHdlIGNvdWxkbid0IHJlc29sdmUgdG8gYmFja2dyb3VuZCB0byBhIGNvbG9yIChlLmcuIGl0J3MgYSBDU1MgdmFyaWFibGUpLFxuICAgICAgLy8gZmFsbCBiYWNrIHRvIGZhZGluZyB0aGUgY29udGVudCBvdXQgdmlhIGBvcGFjaXR5YC5cbiAgICAgIG9wYWNpdHk6ICRtYXQtZGF0ZXBpY2tlci10b2RheS1mYWRlLWFtb3VudDtcbiAgICB9XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwICRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC10b2RheS1ib3gtc2hhZG93LXdpZHRoXG4gICAgICAgICAgICAgICAgbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWRhdGVwaWNrZXItdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG5cbiAgLm1hdC1jYWxlbmRhci1hcnJvdyB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBpY29uKTtcbiAgfVxuXG4gIC8vIFRoZSBwcmV2L25leHQgYnV0dG9ucyBuZWVkIGEgYml0IG1vcmUgc3BlY2lmaWNpdHkgdG9cbiAgLy8gYXZvaWQgYmVpbmcgb3ZlcndyaXR0ZW4gYnkgdGhlIC5tYXQtaWNvbi1idXR0b24uXG4gIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUsXG4gIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItbmV4dC1idXR0b24sXG4gIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItcHJldmlvdXMtYnV0dG9uIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBpY29uKTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXItZGl2aWRlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQpOmhvdmVyLFxuICAuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZSxcbiAgLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZSB7XG4gICAgJiA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgICAvLyBOb3RlOiB0aG91Z2ggaXQncyBub3QgdGV4dCwgdGhlIGJvcmRlciBpcyBhIGhpbnQgYWJvdXQgdGhlIGZhY3QgdGhhdCB0aGlzIGlzIHRvZGF5J3MgZGF0ZSxcbiAgICAvLyBzbyB3ZSB1c2UgdGhlIGhpbnQgY29sb3IuXG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICAgICRjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IpIHtcbiAgICAgIGJvcmRlci1jb2xvcjogZmFkZS1vdXQoJGNvbG9yLCAkbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBJZiB0aGUgY29sb3IgZGlkbid0IHJlc29sdmUgdG8gYSBjb2xvciB2YWx1ZSwgYnV0IHNvbWV0aGluZyBsaWtlIGEgQ1NTIHZhcmlhYmxlLCB3ZSBjYW4ndFxuICAgICAgLy8gZmFkZSBpdCBvdXQgc28gd2UgZmFsbCBiYWNrIHRvIHJlZHVjaW5nIHRoZSBlbGVtZW50IG9wYWNpdHkuIE5vdGUgdGhhdCB3ZSBkb24ndCB1c2UgdGhlXG4gICAgICAvLyAkbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQsIGJlY2F1c2UgaGludCB0ZXh0IHVzdWFsbHkgaGFzIHNvbWUgb3BhY2l0eSBhcHBsaWVkXG4gICAgICAvLyB0byBpdCBhbHJlYWR5IGFuZCB3ZSBkb24ndCB3YW50IHRoZW0gdG8gc3RhY2sgb24gdG9wIG9mIGVhY2ggb3RoZXIuXG4gICAgICBvcGFjaXR5OiAwLjU7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLWNvbG9yKG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KSk7XG5cbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDQsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWRhdGVwaWNrZXItY29sb3IobWFwLWdldCgkdGhlbWUsIGFjY2VudCkpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLWNvbG9yKG1hcC1nZXQoJHRoZW1lLCB3YXJuKSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQtdG91Y2gge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gIH1cblxuICAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSksIHRleHQpO1xuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IobWFwLWdldCgkdGhlbWUsIGFjY2VudCksIHRleHQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgd2FybiksIHRleHQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWRhdGVwaWNrZXItdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtY2FsZW5kYXIge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHkge1xuICAgIGZvbnQtc2l6ZTogJG1hdC1jYWxlbmRhci1ib2R5LWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCxcbiAgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJ1dHRvbik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHRoIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiAkbWF0LWNhbGVuZGFyLXdlZWtkYXktdGFibGUtZm9udC1zaXplO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1kaWFsb2ctdGhlbWUoJHRoZW1lKSB7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1kaWFsb2ctY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigyNCwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGRpYWxvZyk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1kaWFsb2ctdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtZGlhbG9nLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgdGl0bGUpO1xuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LWV4cGFuc2lvbi1wYW5lbC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWV4cGFuc2lvbi1wYW5lbCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMiwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1hY3Rpb24tcm93IHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwge1xuICAgICYgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkLFxuICAgICYgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gICAgJjpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyIHtcbiAgICAgICY6bm90KFthcmlhLWRpc2FibGVkPSd0cnVlJ10pIHtcbiAgICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gRGlzYWJsZSB0aGUgaG92ZXIgb24gdG91Y2ggZGV2aWNlcyBzaW5jZSBpdCBjYW4gYXBwZWFyIGxpa2UgaXQgaXMgc3R1Y2suIFdlIGNhbid0IHVzZVxuICAvLyBgQG1lZGlhIChob3ZlcilgIGFib3ZlLCBiZWNhdXNlIHRoZSBkZXNrdG9wIHN1cHBvcnQgYnJvd3NlciBzdXBwb3J0IGlzbid0IGdyZWF0LlxuICBAbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gICAgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpOm5vdChbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddKVxuICAgICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbixcbiAgLm1hdC1leHBhbnNpb24taW5kaWNhdG9yOjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtYnV0dG9uKTtcblxuICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSxcbiAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtZXhwYW5zaW9uLXBhbmVsLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBzdWJoZWFkaW5nLTEpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG5cbi8vIFRoaXMgbWl4aW4gd2lsbCBlbnN1cmUgdGhhdCBsaW5lcyB0aGF0IG92ZXJmbG93IHRoZSBjb250YWluZXIgd2lsbCBoaWRlIHRoZSBvdmVyZmxvdyBhbmRcbi8vIHRydW5jYXRlIG5lYXRseSB3aXRoIGFuIGVsbGlwc2lzLlxuQG1peGluIG1hdC10cnVuY2F0ZS1saW5lKCkge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLy8gTWl4aW4gdG8gcHJvdmlkZSBhbGwgbWF0LWxpbmUgc3R5bGVzLCBjaGFuZ2luZyBzZWNvbmRhcnkgZm9udCBzaXplIGJhc2VkIG9uIHdoZXRoZXIgdGhlIGxpc3Rcbi8vIGlzIGluIGRlbnNlIG1vZGUuXG5AbWl4aW4gbWF0LWxpbmUtYmFzZSgkc2Vjb25kYXJ5LWZvbnQtc2l6ZSkge1xuICAubWF0LWxpbmUge1xuICAgIEBpbmNsdWRlIG1hdC10cnVuY2F0ZS1saW5lKCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIC8vIGFsbCBsaW5lcyBidXQgdGhlIHRvcCBsaW5lIHNob3VsZCBoYXZlIHNtYWxsZXIgdGV4dFxuICAgICY6bnRoLWNoaWxkKG4rMikge1xuICAgICAgZm9udC1zaXplOiAkc2Vjb25kYXJ5LWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gVGhpcyBtaXhpbiBub3JtYWxpemVzIGRlZmF1bHQgZWxlbWVudCBzdHlsZXMsIGUuZy4gZm9udCB3ZWlnaHQgZm9yIGhlYWRpbmcgdGV4dC5cbkBtaXhpbiBtYXQtbm9ybWFsaXplLXRleHQoKSB7XG4gICYgPiAqIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgfVxufVxuXG4vLyBUaGlzIG1peGluIHByb3ZpZGVzIGJhc2Ugc3R5bGVzIGZvciB0aGUgd3JhcHBlciBhcm91bmQgbWF0LWxpbmUgZWxlbWVudHMgaW4gYSBsaXN0LlxuQG1peGluIG1hdC1saW5lLXdyYXBwZXItYmFzZSgpIHtcbiAgQGluY2x1ZGUgbWF0LW5vcm1hbGl6ZS10ZXh0KCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgLy8gTXVzdCByZW1vdmUgd3JhcHBlciB3aGVuIGxpbmVzIGFyZSBlbXB0eSBvciBpdCB0YWtlcyB1cCBob3Jpem9udGFsXG4gIC8vIHNwYWNlIGFuZCBwdXNoZXMgb3RoZXIgZWxlbWVudHMgdG8gdGhlIHJpZ2h0LlxuICAmOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cblxuXG4vLyBJbmNsdWRlIHRoaXMgZW1wdHkgbWl4aW4gZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIG90aGVyIGNvbXBvbmVudHMuXG5AbWl4aW4gbWF0LWdyaWQtbGlzdC10aGVtZSgkdGhlbWUpIHsgfVxuXG5AbWl4aW4gbWF0LWdyaWQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1ncmlkLXRpbGUtaGVhZGVyLFxuICAubWF0LWdyaWQtdGlsZS1mb290ZXIge1xuICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKSk7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuLy8gSW5jbHVkZSB0aGlzIGVtcHR5IG1peGluIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBvdGhlciBjb21wb25lbnRzLlxuQG1peGluIG1hdC1pY29uLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWljb24ge1xuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1pY29uLXR5cG9ncmFwaHkoJGNvbmZpZykgeyB9XG5cblxuXG5cblxuLy8gUmVuZGVycyBhIGdyYWRpZW50IGZvciBzaG93aW5nIHRoZSBkYXNoZWQgbGluZSB3aGVuIHRoZSBpbnB1dCBpcyBkaXNhYmxlZC5cbi8vIFVubGlrZSB1c2luZyBhIGJvcmRlciwgYSBncmFkaWVudCBhbGxvd3MgdXMgdG8gYWRqdXN0IHRoZSBzcGFjaW5nIG9mIHRoZSBkb3R0ZWQgbGluZVxuLy8gdG8gbWF0Y2ggdGhlIE1hdGVyaWFsIERlc2lnbiBzcGVjLlxuQG1peGluIG1hdC1jb250cm9sLWRpc2FibGVkLXVuZGVybGluZSgkY29sb3IpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkY29sb3IgMCUsICRjb2xvciAzMyUsIHRyYW5zcGFyZW50IDAlKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0cHggMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuXG4vLyBGaWd1cmVzIG91dCB0aGUgY29sb3Igb2YgdGhlIHBsYWNlaG9sZGVyIGZvciBhIGZvcm0gY29udHJvbC5cbi8vIFVzZWQgcHJpbWFyaWx5IHRvIHByZXZlbnQgdGhlIHZhcmlvdXMgZm9ybSBjb250cm9scyBmcm9tXG4vLyBiZWNvbWluZyBvdXQgb2Ygc3luYyBzaW5jZSB0aGVzZSBjb2xvcnMgYXJlbid0IGluIGEgcGFsZXR0ZS5cbkBmdW5jdGlvbiBfbWF0LWNvbnRyb2wtcGxhY2Vob2xkZXItY29sb3IoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG4gIEByZXR1cm4gbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCwgaWYoJGlzLWRhcmstdGhlbWUsIDAuNSwgMC40MikpO1xufVxuXG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIG1hdGVyaWFsL25vLXByZWZpeGVzICovXG5AbWl4aW4gdXNlci1zZWxlY3QoJHZhbHVlKSB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgLW1vei11c2VyLXNlbGVjdDogJHZhbHVlO1xuICAtbXMtdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbn1cblxuQG1peGluIGlucHV0LXBsYWNlaG9sZGVyIHtcbiAgJjo6cGxhY2Vob2xkZXIge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgJjo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gY3Vyc29yLWdyYWIge1xuICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcbiAgY3Vyc29yOiBncmFiO1xufVxuXG5AbWl4aW4gY3Vyc29yLWdyYWJiaW5nIHtcbiAgY3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nO1xuICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuXG5AbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmFsdWUpIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiAkdmFsdWU7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6ICR2YWx1ZTtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cblxuXG5cbkBtaXhpbiBtYXQtaW5wdXQtdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtaW5wdXQtZWxlbWVudDpkaXNhYmxlZCxcbiAgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gIH1cblxuICAubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIGNhcmV0LWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuXG4gICAgQGluY2x1ZGUgaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IF9tYXQtY29udHJvbC1wbGFjZWhvbGRlci1jb2xvcigkdGhlbWUpO1xuICAgIH1cblxuICAgIC8vIE9uIGRhcmsgdGhlbWVzIHdlIHNldCB0aGUgbmF0aXZlIGBzZWxlY3RgIGNvbG9yIHRvIHNvbWUgc2hhZGUgb2Ygd2hpdGUsXG4gICAgLy8gaG93ZXZlciB0aGUgY29sb3IgcHJvcGFnYXRlcyB0byBhbGwgb2YgdGhlIGBvcHRpb25gIGVsZW1lbnRzLCB3aGljaCBhcmVcbiAgICAvLyBhbHdheXMgb24gYSB3aGl0ZSBiYWNrZ3JvdW5kIGluc2lkZSB0aGUgZHJvcGRvd24sIGNhdXNpbmcgdGhlbSB0byBibGVuZCBpbi5cbiAgICAvLyBTaW5jZSB3ZSBjYW4ndCBjaGFuZ2UgYmFja2dyb3VuZCBvZiB0aGUgZHJvcGRvd24sIHdlIG5lZWQgdG8gZXhwbGljaXRseVxuICAgIC8vIHJlc2V0IHRoZSBjb2xvciBvZiB0aGUgb3B0aW9ucyB0byBzb21ldGhpbmcgZGFyay5cbiAgICBAaWYgKG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKSkge1xuICAgICAgb3B0aW9uIHtcbiAgICAgICAgY29sb3I6ICRkYXJrLXByaW1hcnktdGV4dDtcbiAgICAgIH1cblxuICAgICAgb3B0aW9uOmRpc2FibGVkIHtcbiAgICAgICAgY29sb3I6ICRkYXJrLWRpc2FibGVkLXRleHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1hY2NlbnQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC13YXJuIC5tYXQtaW5wdXQtZWxlbWVudCxcbiAgLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1pbnB1dC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuXG4gIC8vIFRoZSBhbW91bnQgb2Ygc3BhY2UgYmV0d2VlbiB0aGUgdG9wIG9mIHRoZSBsaW5lIGFuZCB0aGUgdG9wIG9mIHRoZSBhY3R1YWwgdGV4dFxuICAvLyAoYXMgYSBmcmFjdGlvbiBvZiB0aGUgZm9udC1zaXplKS5cbiAgJGxpbmUtc3BhY2luZzogKCRsaW5lLWhlaWdodCAtIDEpIC8gMjtcblxuICAvLyA8aW5wdXQ+IGVsZW1lbnRzIHNlZW0gdG8gaGF2ZSB0aGVpciBoZWlnaHQgc2V0IHNsaWdodGx5IHRvbyBsYXJnZSBvbiBTYWZhcmkgY2F1c2luZyB0aGUgdGV4dCB0b1xuICAvLyBiZSBtaXNhbGlnbmVkIHcuci50LiB0aGUgcGxhY2Vob2xkZXIuIEFkZGluZyB0aGlzIG1hcmdpbiBjb3JyZWN0cyBpdC5cbiAgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIG1hcmdpbi10b3A6IC0kbGluZS1zcGFjaW5nICogMWVtO1xuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtbGlzdC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWxpc3QtYmFzZSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXN1YmhlYWRlciB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1saXN0LWl0ZW0tZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlzYWJsZWQtbGlzdC1vcHRpb24pO1xuICB9XG5cbiAgLm1hdC1saXN0LW9wdGlvbixcbiAgLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbSxcbiAgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbSB7XG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdob3ZlcicpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWxpc3QtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gICRmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuXG4gIC5tYXQtbGlzdC1pdGVtIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICB9XG5cbiAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgfVxuXG4gIC8vIERlZmF1bHQgbGlzdFxuICAubWF0LWxpc3QtYmFzZSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHN1YmhlYWRpbmctMik7XG4gICAgICBAaW5jbHVkZSBtYXQtbGluZS1iYXNlKG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKSk7XG4gICAgfVxuXG4gICAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgc3ViaGVhZGluZy0yKTtcbiAgICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpKTtcbiAgICB9XG5cbiAgICAubWF0LXN1YmhlYWRlciB7XG4gICAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMik7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0yKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cblxuICAvLyBEZW5zZSBsaXN0XG4gIC5tYXQtbGlzdC1iYXNlW2RlbnNlXSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgQGluY2x1ZGUgbWF0LWxpbmUtYmFzZShtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pKTtcbiAgICB9XG5cbiAgICAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKSk7XG4gICAgfVxuXG4gICAgLm1hdC1zdWJoZWFkZXIge1xuICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1tZW51LXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtbWVudS1wYW5lbCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdjYXJkJyk7XG4gIH1cblxuICAubWF0LW1lbnUtaXRlbSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ3RleHQnKTtcblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICYsICY6OmFmdGVyIHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2Rpc2FibGVkJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1tZW51LWl0ZW0gLm1hdC1pY29uLW5vLWNvbG9yLFxuICAubWF0LW1lbnUtaXRlbS1zdWJtZW51LXRyaWdnZXI6OmFmdGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAnaWNvbicpO1xuICB9XG5cbiAgLm1hdC1tZW51LWl0ZW06aG92ZXIsXG4gIC5tYXQtbWVudS1pdGVtLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gIC5tYXQtbWVudS1pdGVtLmNkay1rZXlib2FyZC1mb2N1c2VkLFxuICAubWF0LW1lbnUtaXRlbS1oaWdobGlnaHRlZCB7XG4gICAgJjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnaG92ZXInKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1tZW51LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LW1lbnUtaXRlbSB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LXBhZ2luYXRvci10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcblxuICAubWF0LXBhZ2luYXRvciB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICB9XG5cbiAgLm1hdC1wYWdpbmF0b3IsXG4gIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4gIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCB7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2ljb24nKTtcbiAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCBtYXQtY29sb3IoJGZvcmVncm91bmQsICdpY29uJyk7XG4gIH1cblxuICAubWF0LXBhZ2luYXRvci1maXJzdCxcbiAgLm1hdC1wYWdpbmF0b3ItbGFzdCB7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2ljb24nKTtcbiAgfVxuXG4gIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIHtcbiAgICAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4gICAgLm1hdC1wYWdpbmF0b3ItaW5jcmVtZW50LFxuICAgIC5tYXQtcGFnaW5hdG9yLWZpcnN0LFxuICAgIC5tYXQtcGFnaW5hdG9yLWxhc3Qge1xuICAgICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsICdkaXNhYmxlZCcpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXBhZ2luYXRvci10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1wYWdpbmF0b3IsXG4gIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbik7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuQG1peGluIG1hdC1wcm9ncmVzcy1iYXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICAgIGZpbGw6IG1hdC1jb2xvcigkcHJpbWFyeSwgbGlnaHRlcik7XG4gIH1cblxuICAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgbGlnaHRlcik7XG4gIH1cblxuICAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQge1xuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICAgICAgZmlsbDogbWF0LWNvbG9yKCRhY2NlbnQsIGxpZ2h0ZXIpO1xuICAgIH1cblxuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIHtcbiAgICAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgICAgIGZpbGw6IG1hdC1jb2xvcigkd2FybiwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkd2FybiwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1wcm9ncmVzcy1iYXItdHlwb2dyYXBoeSgkY29uZmlnKSB7IH1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG5cbiAgLm1hdC1wcm9ncmVzcy1zcGlubmVyLCAubWF0LXNwaW5uZXIge1xuICAgIGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cbkBtaXhpbiBfbWF0LXJhZGlvLWNvbG9yKCRwYWxldHRlKSB7XG4gICYubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlKTtcbiAgfVxuXG4gIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuICAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSxcbiAgJi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLFxuICAmOmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtcmFkaW8tdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1yYWRpby1idXR0b24ge1xuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgX21hdC1yYWRpby1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtcmFkaW8tY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXJhZGlvLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIG5lZWRzIGV4dHJhIHNwZWNpZmljaXR5LCBiZWNhdXNlIHRoZSBjbGFzc2VzIGFib3ZlIGFyZSBjb21iaW5lZFxuICAgIC8vIChlLmcuIGAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50YCkgd2hpY2ggaW5jcmVhc2VzIHRoZWlyIHNwZWNpZmljaXR5IGEgbG90LlxuICAgIC8vIFRPRE86IGNvbnNpZGVyIG1ha2luZyB0aGUgc2VsZWN0b3JzIGludG8gZGVzY2VuZGFudHMgKGAubWF0LXByaW1hcnkgLm1hdC1yYWRpby1idXR0b25gKS5cbiAgICAmLm1hdC1yYWRpby1kaXNhYmxlZCB7XG4gICAgICAmLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlLFxuICAgICAgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgICAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQpO1xuICAgICAgfVxuXG4gICAgICAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50LFxuICAgICAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkKTtcbiAgICAgIH1cblxuICAgICAgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFN3aXRjaCB0aGlzIHRvIGEgc29saWQgY29sb3Igc2luY2Ugd2UncmUgdXNpbmcgYG9wYWNpdHlgXG4gICAgLy8gdG8gY29udHJvbCBob3cgb3BhcXVlIHRoZSByaXBwbGUgc2hvdWxkIGJlLlxuICAgIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwX2dldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcmFkaW8tdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1zZWxlY3QtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogX21hdC1jb250cm9sLXBsYWNlaG9sZGVyLWNvbG9yKCR0aGVtZSk7XG4gIH1cblxuICAubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gIH1cblxuICAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1zZWxlY3QtcGFuZWwge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJHRoZW1lKTtcblxuICAgIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIsIDAuMTIpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZCB7XG4gICAgJi5tYXQtZm9jdXNlZCB7XG4gICAgICAmLm1hdC1wcmltYXJ5IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWFjY2VudCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LXdhcm4gLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWludmFsaWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1zZWxlY3QtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcblxuICAubWF0LXNlbGVjdCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIGhlaWdodDogJGxpbmUtaGVpZ2h0ICogMWVtO1xuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LXNpZGVuYXYtdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICRkcmF3ZXItYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAkZHJhd2VyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yOiAgbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBiYWNrZ3JvdW5kKTtcbiAgJGRyYXdlci1wdXNoLWJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlhbG9nKTtcbiAgJGRyYXdlci1zaWRlLWJvcmRlcjogc29saWQgMXB4IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG5cbiAgLm1hdC1kcmF3ZXItY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJhd2VyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1kcmF3ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkcmF3ZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LWRyYXdlci1wdXNoIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkcmF3ZXItcHVzaC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cblxuICAgICY6bm90KC5tYXQtZHJhd2VyLXNpZGUpIHtcbiAgICAgIC8vIFRoZSBlbGV2YXRpb24gb2Ygei0xNiBpcyBub3RlZCBpbiB0aGUgZGVzaWduIHNwZWNpZmljYXRpb25zLlxuICAgICAgLy8gU2VlIGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1kcmF3ZXIuaHRtbFxuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMTYsICR0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kcmF3ZXItc2lkZSB7XG4gICAgYm9yZGVyLXJpZ2h0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuXG4gICAgJi5tYXQtZHJhd2VyLWVuZCB7XG4gICAgICBib3JkZXItbGVmdDogJGRyYXdlci1zaWRlLWJvcmRlcjtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICB9XG4gIH1cblxuICBbZGlyPSdydGwnXSAubWF0LWRyYXdlci1zaWRlIHtcbiAgICBib3JkZXItbGVmdDogJGRyYXdlci1zaWRlLWJvcmRlcjtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG5cbiAgICAmLm1hdC1kcmF3ZXItZW5kIHtcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZHJhd2VyLWJhY2tkcm9wLm1hdC1kcmF3ZXItc2hvd24ge1xuICAgICRvcGFjaXR5OiAwLjY7XG4gICAgJGJhY2tkcm9wLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQsICRvcGFjaXR5KTtcblxuICAgIEBpZiAodHlwZS1vZigkYmFja2Ryb3AtY29sb3IpID09IGNvbG9yKSB7XG4gICAgICAvLyBXZSB1c2UgaW52ZXJ0KCkgaGVyZSB0byBoYXZlIHRoZSBkYXJrZW4gdGhlIGJhY2tncm91bmQgY29sb3IgZXhwZWN0ZWQgdG8gYmUgdXNlZC4gSWYgdGhlXG4gICAgICAvLyBiYWNrZ3JvdW5kIGlzIGxpZ2h0LCB3ZSB1c2UgYSBkYXJrIGJhY2tkcm9wLiBJZiB0aGUgYmFja2dyb3VuZCBpcyBkYXJrLFxuICAgICAgLy8gd2UgdXNlIGEgbGlnaHQgYmFja2Ryb3AuXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbnZlcnQoJGJhY2tkcm9wLWNvbG9yKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gSWYgd2UgY291bGRuJ3QgcmVzb2x2ZSB0aGUgYmFja2Ryb3AgY29sb3IgdG8gYSBjb2xvciB2YWx1ZSwgZmFsbCBiYWNrIHRvIHVzaW5nXG4gICAgICAvLyBgb3BhY2l0eWAgdG8gbWFrZSBpdCBvcGFxdWUgc2luY2UgaXRzIGVuZCB2YWx1ZSBjb3VsZCBiZSBhIHNvbGlkIGNvbG9yLlxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tkcm9wLWNvbG9yO1xuICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc2lkZW5hdi10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cblxuQG1peGluIF9tYXQtc2xpZGUtdG9nZ2xlLWNoZWNrZWQoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSkge1xuICAmLm1hdC1jaGVja2VkIHtcbiAgICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSk7XG4gICAgfVxuXG4gICAgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgICAgIC8vIE9wYWNpdHkgaXMgZGV0ZXJtaW5lZCBmcm9tIHRoZSBzcGVjcyBmb3IgdGhlIHNlbGVjdGlvbiBjb250cm9scy5cbiAgICAgIC8vIFNlZTogaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vY29tcG9uZW50cy9zZWxlY3Rpb24tY29udHJvbHMuaHRtbCNzcGVjc1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAkdGh1bWItY2hlY2tlZC1odWUsIDAuNTQpO1xuICAgIH1cblxuICAgIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgLy8gU2V0IG5vIG9wYWNpdHkgZm9yIHRoZSByaXBwbGVzIGJlY2F1c2UgdGhlIHJpcHBsZSBvcGFjaXR5IHdpbGwgYmUgYWRqdXN0ZWQgZHluYW1pY2FsbHlcbiAgICAgIC8vIGJhc2VkIG9uIHRoZSB0eXBlIG9mIGludGVyYWN0aW9uIHdpdGggdGhlIHNsaWRlLXRvZ2dsZSAoZS5nLiBmb3IgaG92ZXIsIGZvY3VzKVxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAkdGh1bWItY2hlY2tlZC1odWUpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNsaWRlLXRvZ2dsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcms6IG1hcF9nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLy8gQ29sb3IgaHVlcyBhcmUgYmFzZWQgb24gdGhlIHNwZWNzIHdoaWNoIGJyaWVmbHkgc2hvdyB0aGUgaHVlcyB0aGF0IGFyZSBhcHBsaWVkIHRvIGEgc3dpdGNoLlxuICAvLyBUaGUgMjAxOCBzcGVjcyBubyBsb25nZXIgZGVzY3JpYmUgaG93IGRhcmsgc3dpdGNoZXMgc2hvdWxkIGxvb2sgbGlrZS4gRHVlIHRvIHRoZSBsYWNrIG9mXG4gIC8vIGluZm9ybWF0aW9uIGZvciBkYXJrIHRoZW1lZCBzd2l0Y2hlcywgd2UgcGFydGlhbGx5IGtlZXAgdGhlIG9sZCBiZWhhdmlvciB0aGF0IGlzIGJhc2VkIG9uXG4gIC8vIHRoZSBwcmV2aW91cyBzcGVjaWZpY2F0aW9ucy4gRm9yIHRoZSBjaGVja2VkIGNvbG9yIHdlIGFsd2F5cyB1c2UgdGhlIGBkZWZhdWx0YCBodWUgYmVjYXVzZVxuICAvLyB0aGF0IGZvbGxvd3MgTURDIGFuZCBhbHNvIG1ha2VzIGl0IGVhc2llciBmb3IgcGVvcGxlIHRvIGNyZWF0ZSBhIGN1c3RvbSB0aGVtZSB3aXRob3V0IG5lZWRpbmdcbiAgLy8gdG8gc3BlY2lmeSBlYWNoIGh1ZSBpbmRpdmlkdWFsbHkuXG4gICR0aHVtYi11bmNoZWNrZWQtaHVlOiBpZigkaXMtZGFyaywgNDAwLCA1MCk7XG4gICR0aHVtYi1jaGVja2VkLWh1ZTogZGVmYXVsdDtcblxuICAkYmFyLXVuY2hlY2tlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZCk7XG4gICRyaXBwbGUtdW5jaGVja2VkLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGJhc2UpO1xuXG4gIC5tYXQtc2xpZGUtdG9nZ2xlIHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlLXRvZ2dsZS1jaGVja2VkKCRhY2NlbnQsICR0aHVtYi1jaGVja2VkLWh1ZSk7XG5cbiAgICAmLm1hdC1wcmltYXJ5IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtc2xpZGUtdG9nZ2xlLWNoZWNrZWQoJHByaW1hcnksICR0aHVtYi1jaGVja2VkLWh1ZSk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXNsaWRlLXRvZ2dsZS1jaGVja2VkKCR3YXJuLCAkdGh1bWItY2hlY2tlZC1odWUpO1xuICAgIH1cblxuICAgICY6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICAvLyBTZXQgbm8gb3BhY2l0eSBmb3IgdGhlIHJpcHBsZXMgYmVjYXVzZSB0aGUgcmlwcGxlIG9wYWNpdHkgd2lsbCBiZSBhZGp1c3RlZCBkeW5hbWljYWxseVxuICAgICAgLy8gYmFzZWQgb24gdGhlIHR5cGUgb2YgaW50ZXJhY3Rpb24gd2l0aCB0aGUgc2xpZGUtdG9nZ2xlIChlLmcuIGZvciBob3ZlciwgZm9jdXMpXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmlwcGxlLXVuY2hlY2tlZC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMSwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJG1hdC1ncmV5LCAkdGh1bWItdW5jaGVja2VkLWh1ZSk7XG4gIH1cblxuICAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXItdW5jaGVja2VkLWNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc2xpZGUtdG9nZ2xlLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50IHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cblxuXG5cblxuQG1peGluIF9tYXQtc2xpZGVyLWlubmVyLWNvbnRlbnQtdGhlbWUoJHBhbGV0dGUpIHtcbiAgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbiAgLm1hdC1zbGlkZXItdGh1bWIsXG4gIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICB9XG5cbiAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1zbGlkZXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICRtYXQtc2xpZGVyLW9mZi1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmKTtcbiAgJG1hdC1zbGlkZXItb2ZmLWZvY3VzZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW9mZi1hY3RpdmUpO1xuICAkbWF0LXNsaWRlci1kaXNhYmxlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmKTtcbiAgJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW1pbik7XG4gICRtYXQtc2xpZGVyLWxhYmVsZWQtbWluLXZhbHVlLXRodW1iLWxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNsaWRlci1vZmYpO1xuICAkbWF0LXNsaWRlci1mb2N1cy1yaW5nLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgZGVmYXVsdCwgMC4yKTtcbiAgJG1hdC1zbGlkZXItZm9jdXMtcmluZy1taW4tdmFsdWUtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgMC4xMik7XG4gICRtYXQtc2xpZGVyLXRpY2stY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgMC43KTtcbiAgJG1hdC1zbGlkZXItdGljay1zaXplOiAycHg7XG5cbiAgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItb2ZmLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1wcmltYXJ5IHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCRwcmltYXJ5KTtcbiAgfVxuXG4gIC5tYXQtYWNjZW50IHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCRhY2NlbnQpO1xuICB9XG5cbiAgLm1hdC13YXJuIHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCR3YXJuKTtcbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWZvY3VzLXJpbmctY29sb3I7XG4gIH1cblxuICAubWF0LXNsaWRlcjpob3ZlcixcbiAgLmNkay1mb2N1c2VkIHtcbiAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLW9mZi1mb2N1c2VkLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWRpc2FibGVkIHtcbiAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLFxuICAgIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4gICAgLm1hdC1zbGlkZXItdGh1bWIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItZGlzYWJsZWQtY29sb3I7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zbGlkZXItbWluLXZhbHVlIHtcbiAgICAubWF0LXNsaWRlci1mb2N1cy1yaW5nIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWZvY3VzLXJpbmctbWluLXZhbHVlLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIHtcbiAgICAgIC5tYXQtc2xpZGVyLXRodW1iLFxuICAgICAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWF0LXNsaWRlci1sYWJlbGVkLW1pbi12YWx1ZS10aHVtYi1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgJi5jZGstZm9jdXNlZCB7XG4gICAgICAgIC5tYXQtc2xpZGVyLXRodW1iLFxuICAgICAgICAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItbGFiZWwtY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKSB7XG4gICAgICAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJG1hdC1zbGlkZXItb2ZmLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlcixcbiAgICAgICYuY2RrLWZvY3VzZWQge1xuICAgICAgICAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci1vZmYtZm9jdXNlZC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWhhcy10aWNrcyAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci10aWNrLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgICAvLyBGaXJlZm94IGRvZXNuJ3QgZHJhdyB0aGUgZ3JhZGllbnQgY29ycmVjdGx5IHdpdGggJ3RvIHJpZ2h0J1xuICAgIC8vIChzZWUgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxNDMxOSkuXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1yZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDAuMDAwMWRlZywgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgfVxuXG4gIC5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRpY2tzIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNsaWRlci10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LXN0ZXBwZXItdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG5cbiAgLm1hdC1zdGVwLWhlYWRlciB7XG4gICAgJi5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgICAmLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGhvdmVyKTtcbiAgICB9XG5cbiAgICAvLyBPbiB0b3VjaCBkZXZpY2VzIHRoZSA6aG92ZXIgc3RhdGUgd2lsbCBsaW5nZXIgb24gdGhlIGVsZW1lbnQgYWZ0ZXIgYSB0YXAuXG4gICAgLy8gUmVzZXQgaXQgdmlhIGBAbWVkaWFgIGFmdGVyIHRoZSBkZWNsYXJhdGlvbiwgYmVjYXVzZSB0aGUgbWVkaWEgcXVlcnkgaXNuJ3RcbiAgICAvLyBzdXBwb3J0ZWQgYnkgYWxsIGJyb3dzZXJzIHlldC5cbiAgICBAbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtbGFiZWwsXG4gICAgLm1hdC1zdGVwLW9wdGlvbmFsIHtcbiAgICAgIC8vIFRPRE8oam9zZXBocGVycm90dCk6IFVwZGF0ZSB0byB1c2luZyBhIGNvcnJlY3RlZCBkaXNhYmxlZC10ZXh0IGNvbnRyYXN0XG4gICAgICAvLyBpbnN0ZWFkIG9mIHNlY29uZGFyeS10ZXh0LlxuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1pY29uIHtcbiAgICAgIC8vIFRPRE8oam9zZXBocGVycm90dCk6IFVwZGF0ZSB0byB1c2luZyBhIGNvcnJlY3RlZCBkaXNhYmxlZC10ZXh0IGNvbnRyYXN0XG4gICAgICAvLyBpbnN0ZWFkIG9mIHNlY29uZGFyeS10ZXh0LlxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCxcbiAgICAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVkaXQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVycm9yIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWFjdGl2ZSB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtZXJyb3Ige1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zdGVwcGVyLWhvcml6b250YWwsIC5tYXQtc3RlcHBlci12ZXJ0aWNhbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgfVxuXG4gIC5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmUge1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmUsXG4gIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YWZ0ZXIsXG4gIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmUge1xuICAgIGJvcmRlci10b3AtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cbn1cblxuQG1peGluIG1hdC1zdGVwcGVyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXN0ZXBwZXItdmVydGljYWwsIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1zdGVwLWxhYmVsIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpO1xuICAgIH07XG4gIH1cblxuICAubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICB9XG5cbiAgLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxuXG4gIC5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZCB7XG4gICAgZm9udDoge1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTIpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9O1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc29ydC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXNvcnQtaGVhZGVyLWFycm93IHtcbiAgICAkdGFibGUtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICAgICR0ZXh0LWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcblxuICAgIC8vIEJlY2F1c2UgdGhlIGFycm93IGlzIG1hZGUgdXAgb2YgbXVsdGlwbGUgZWxlbWVudHMgdGhhdCBhcmUgc3RhY2tlZCBvbiB0b3Agb2YgZWFjaCBvdGhlcixcbiAgICAvLyB3ZSBjYW4ndCB1c2UgdGhlIHNlbWktdHJhc3BhcmVudCBjb2xvciBmcm9tIHRoZSB0aGVtZSBkaXJlY3RseS4gSWYgdGhlIHZhbHVlIGlzIGEgY29sb3JcbiAgICAvLyAqdHlwZSosIHdlIGNvbnZlcnQgaXQgaW50byBhIHNvbGlkIGNvbG9yIGJ5IHRha2luZyB0aGUgb3BhY2l0eSBmcm9tIHRoZSByZ2JhIHZhbHVlIGFuZFxuICAgIC8vIHVzaW5nIHRoZSB2YWx1ZSB0byBkZXRlcm1pbmUgdGhlIHBlcmNlbnRhZ2Ugb2YgdGhlIGJhY2tncm91bmQgdG8gcHV0IGludG8gZm9yZWdyb3VuZFxuICAgIC8vIHdoZW4gbWl4aW5nIHRoZSBjb2xvcnMgdG9nZXRoZXIuIE90aGVyd2lzZSwgaWYgaXQgcmVzb2x2ZXMgdG8gc29tZXRoaW5nIGRpZmZlcmVudFxuICAgIC8vIChlLmcuIGl0IHJlc29sdmVzIHRvIGEgQ1NTIHZhcmlhYmxlKSwgd2UgdXNlIHRoZSBjb2xvciBkaXJlY3RseS5cbiAgICBAaWYgKHR5cGUtb2YoJHRhYmxlLWJhY2tncm91bmQpID09IGNvbG9yIGFuZCB0eXBlLW9mKCR0ZXh0LWNvbG9yKSA9PSBjb2xvcikge1xuICAgICAgJHRleHQtb3BhY2l0eTogb3BhY2l0eSgkdGV4dC1jb2xvcik7XG4gICAgICBjb2xvcjogbWl4KCR0YWJsZS1iYWNrZ3JvdW5kLCByZ2JhKCR0ZXh0LWNvbG9yLCAxKSwgKDEgLSAkdGV4dC1vcGFjaXR5KSAqIDEwMCUpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBjb2xvcjogJHRleHQtY29sb3I7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc29ydC10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtdGFicy10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRoZWFkZXItYm9yZGVyOiAxcHggc29saWQgbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcblxuICAubWF0LXRhYi1uYXYtYmFyLFxuICAubWF0LXRhYi1oZWFkZXIge1xuICAgIGJvcmRlci1ib3R0b206ICRoZWFkZXItYm9yZGVyO1xuICB9XG5cbiAgLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIHtcbiAgICAubWF0LXRhYi1uYXYtYmFyLFxuICAgIC5tYXQtdGFiLWhlYWRlciB7XG4gICAgICBib3JkZXItdG9wOiAkaGVhZGVyLWJvcmRlcjtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgJi5tYXQtdGFiLWRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgfVxuXG4gIC8vIFJlbW92ZSBoZWFkZXIgYm9yZGVyIHdoZW4gdGhlcmUgaXMgYSBiYWNrZ3JvdW5kIGNvbG9yXG4gIC5tYXQtdGFiLWdyb3VwW2NsYXNzKj0nbWF0LWJhY2tncm91bmQtJ10gLm1hdC10YWItaGVhZGVyLFxuICAubWF0LXRhYi1uYXYtYmFyW2NsYXNzKj0nbWF0LWJhY2tncm91bmQtJ10ge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgfVxuXG4gIC5tYXQtdGFiLWdyb3VwLCAubWF0LXRhYi1uYXYtYmFyIHtcbiAgICAkdGhlbWUtY29sb3JzOiAoXG4gICAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICAgIGFjY2VudDogJGFjY2VudCxcbiAgICAgIHdhcm46ICR3YXJuXG4gICAgKTtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJHRoZW1lLWNvbG9ycyB7XG4gICAgICAvLyBTZXQgdGhlIGZvcmVncm91bmQgY29sb3Igb2YgdGhlIHRhYnNcbiAgICAgICYubWF0LSN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWItbGFiZWwtZm9jdXMoJGNvbG9yKTtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1pbmstYmFyKCRjb2xvcik7XG5cbiAgICAgICAgLy8gT3ZlcnJpZGUgaW5rIGJhciB3aGVuIGJhY2tncm91bmQgY29sb3IgaXMgdGhlIHNhbWVcbiAgICAgICAgJi5tYXQtYmFja2dyb3VuZC0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1pbmstYmFyKCRjb2xvciwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICR0aGVtZS1jb2xvcnMge1xuICAgICAgLy8gU2V0IGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHRhYnMgYW5kIG92ZXJyaWRlIGZvY3VzIGNvbG9yXG4gICAgICAmLm1hdC1iYWNrZ3JvdW5kLSN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWItbGFiZWwtZm9jdXMoJGNvbG9yKTtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWJzLWJhY2tncm91bmQoJGNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9tYXQtaW5rLWJhcigkY29sb3IsICRodWU6IGRlZmF1bHQpIHtcbiAgLm1hdC1pbmstYmFyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGNvbG9yLCAkaHVlKTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC10YWItbGFiZWwtZm9jdXMoJHRhYi1mb2N1cy1jb2xvcikge1xuICAubWF0LXRhYi1sYWJlbCxcbiAgLm1hdC10YWItbGluayB7XG4gICAgJi5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgICAmLmNkay1wcm9ncmFtLWZvY3VzZWQge1xuICAgICAgJjpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR0YWItZm9jdXMtY29sb3IsIGxpZ2h0ZXIsIDAuMyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LXRhYnMtYmFja2dyb3VuZCgkYmFja2dyb3VuZC1jb2xvcikge1xuICAvLyBTZXQgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHRhYiBncm91cFxuICAubWF0LXRhYi1oZWFkZXIsIC5tYXQtdGFiLWxpbmtzLCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yKTtcbiAgfVxuXG4gIC8vIFNldCBsYWJlbHMgdG8gY29udHJhc3QgYWdhaW5zdCBiYWNrZ3JvdW5kXG4gIC5tYXQtdGFiLWxhYmVsLCAubWF0LXRhYi1saW5rIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0KTtcblxuICAgICYubWF0LXRhYi1kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBwYWdpbmF0aW9uIGNoZXZyb25zIHRvIGNvbnRyYXN0IGJhY2tncm91bmRcbiAgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QsIDAuNCk7XG4gIH1cblxuICAvLyBTZXQgcmlwcGxlcyBjb2xvciB0byBiZSB0aGUgY29udHJhc3QgY29sb3Igb2YgdGhlIG5ldyBiYWNrZ3JvdW5kLiBPdGhlcndpc2UgdGhlIHJpcHBsZVxuICAvLyBjb2xvciB3aWxsIGJlIGJhc2VkIG9uIHRoZSBhcHAgYmFja2dyb3VuZCBjb2xvci5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjEyKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRhYnMtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtdGFiLWdyb3VwIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJ1dHRvbik7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJ1dHRvbik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuQG1peGluIF9tYXQtdG9vbGJhci1jb2xvcigkcGFsZXR0ZSkge1xuICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICBjb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KTtcbn1cblxuQG1peGluIF9tYXQtdG9vbGJhci1mb3JtLWZpZWxkLW92ZXJyaWRlcyB7XG4gIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUsXG4gIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUsXG4gIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gIC5tYXQtc2VsZWN0LXZhbHVlLFxuICAubWF0LXNlbGVjdC1hcnJvdyxcbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuXG4gIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgY2FyZXQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2xiYXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtdG9vbGJhciB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBhcHAtYmFyKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCRwcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBfbWF0LXRvb2xiYXItZm9ybS1maWVsZC1vdmVycmlkZXM7XG4gIH1cbn1cblxuQG1peGluIG1hdC10b29sYmFyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXRvb2xiYXIsXG4gIC5tYXQtdG9vbGJhciBoMSxcbiAgLm1hdC10b29sYmFyIGgyLFxuICAubWF0LXRvb2xiYXIgaDMsXG4gIC5tYXQtdG9vbGJhciBoNCxcbiAgLm1hdC10b29sYmFyIGg1LFxuICAubWF0LXRvb2xiYXIgaDYge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCB0aXRsZSk7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cblxuXG5cblxuJG1hdC10b29sdGlwLXRhcmdldC1oZWlnaHQ6IDIycHg7XG4kbWF0LXRvb2x0aXAtZm9udC1zaXplOiAxMHB4O1xuJG1hdC10b29sdGlwLXZlcnRpY2FsLXBhZGRpbmc6ICgkbWF0LXRvb2x0aXAtdGFyZ2V0LWhlaWdodCAtICRtYXQtdG9vbHRpcC1mb250LXNpemUpIC8gMjtcblxuJG1hdC10b29sdGlwLWhhbmRzZXQtdGFyZ2V0LWhlaWdodDogMzBweDtcbiRtYXQtdG9vbHRpcC1oYW5kc2V0LWZvbnQtc2l6ZTogMTRweDtcbiRtYXQtdG9vbHRpcC1oYW5kc2V0LXZlcnRpY2FsLXBhZGRpbmc6XG4gICAgKCRtYXQtdG9vbHRpcC1oYW5kc2V0LXRhcmdldC1oZWlnaHQgLSAkbWF0LXRvb2x0aXAtaGFuZHNldC1mb250LXNpemUpIC8gMjtcblxuQG1peGluIG1hdC10b29sdGlwLXRoZW1lKCR0aGVtZSkge1xuICAubWF0LXRvb2x0aXAge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkbWF0LWdyZXksIDcwMCwgMC45KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2x0aXAtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtdG9vbHRpcCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgICBmb250LXNpemU6ICRtYXQtdG9vbHRpcC1mb250LXNpemU7XG4gICAgcGFkZGluZy10b3A6ICRtYXQtdG9vbHRpcC12ZXJ0aWNhbC1wYWRkaW5nO1xuICAgIHBhZGRpbmctYm90dG9tOiAkbWF0LXRvb2x0aXAtdmVydGljYWwtcGFkZGluZztcbiAgfVxuXG4gIC5tYXQtdG9vbHRpcC1oYW5kc2V0IHtcbiAgICBmb250LXNpemU6ICRtYXQtdG9vbHRpcC1oYW5kc2V0LWZvbnQtc2l6ZTtcbiAgICBwYWRkaW5nLXRvcDogJG1hdC10b29sdGlwLWhhbmRzZXQtdmVydGljYWwtcGFkZGluZztcbiAgICBwYWRkaW5nLWJvdHRvbTogJG1hdC10b29sdGlwLWhhbmRzZXQtdmVydGljYWwtcGFkZGluZztcbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtc25hY2stYmFyLXRoZW1lKCR0aGVtZSkge1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkdGhlbWUsIGlzLWRhcmspO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcblxuICAubWF0LXNuYWNrLWJhci1jb250YWluZXIge1xuICAgIC8vIFVzZSB0aGUgcHJpbWFyeSB0ZXh0IG9uIHRoZSBkYXJrIHRoZW1lLCBldmVuIHRob3VnaCB0aGUgbGlnaHRlciBvbmUgdXNlc1xuICAgIC8vIGEgc2Vjb25kYXJ5LCBiZWNhdXNlIHRoZSBjb250cmFzdCBvbiB0aGUgbGlnaHQgcHJpbWFyeSB0ZXh0IGlzIHBvb3IuXG4gICAgY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCAkZGFyay1wcmltYXJ5LXRleHQsICRsaWdodC1zZWNvbmRhcnktdGV4dCk7XG4gICAgYmFja2dyb3VuZDogaWYoJGlzLWRhcmstdGhlbWUsIG1hcC1nZXQoJG1hdC1ncmV5LCA1MCksICMzMjMyMzIpO1xuXG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oNiwgJHRoZW1lKTtcbiAgfVxuXG4gIC5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiB7XG4gICAgY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCBpbmhlcml0LCBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCkpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc25hY2stYmFyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXNpbXBsZS1zbmFja2JhciB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9XG4gIH1cblxuICAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogaW5oZXJpdDtcbiAgICAgIHNpemU6IGluaGVyaXQ7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIGZpbGwgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWZpbGwtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG5cbiAgJGZpbGwtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBiYXNlLCBpZigkaXMtZGFyay10aGVtZSwgMC4xLCAwLjA0KSk7XG4gICRmaWxsLWRpc2FibGVkLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgaWYoJGlzLWRhcmstdGhlbWUsIDAuMDUsIDAuMDIpKTtcbiAgJHVuZGVybGluZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyLCBpZigkaXMtZGFyay10aGVtZSwgMC41LCAwLjQyKSk7XG4gICRsYWJlbC1kaXNhYmxlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIHtcbiAgICAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmlsbC1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZpbGwtZGlzYWJsZWQtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkbGFiZWwtZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZTogMDtcblxuLy8gQXBwbGllcyBhIGZsb2F0aW5nIGxhYmVsIGFib3ZlIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaXRzZWxmLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1maWxsLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLWZpbGwtZGVkdXBlKVxuICAgICAgICAgICAgIHNjYWxlKCRmb250LXNjYWxlKTtcbiAgd2lkdGg6IDEwMCUgLyAkZm9udC1zY2FsZSArICRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZTtcblxuICAkbWF0LWZvcm0tZmllbGQtZmlsbC1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZSArIDAuMDAwMDEgIWdsb2JhbDtcbn1cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWZpbGwtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcbiAgLy8gVGhlIGFtb3VudCB0byBzY2FsZSB0aGUgZm9udCBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsIGFuZCBzdWJzY3JpcHQuXG4gICRzdWJzY3JpcHQtZm9udC1zY2FsZTogMC43NTtcbiAgLy8gVGhlIHBhZGRpbmcgb24gdG9wIG9mIHRoZSBpbmZpeC5cbiAgJGluZml4LXBhZGRpbmctdG9wOiAwLjI1ZW07XG4gIC8vIFRoZSBwYWRkaW5nIGJlbG93IHRoZSBpbmZpeC5cbiAgJGluZml4LXBhZGRpbmctYm90dG9tOiAwLjc1ZW07XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBhbW91bnQgd2Ugb2Zmc2V0IHRoZSBsYWJlbCBmcm9tIHRoZSBpbnB1dCB0ZXh0IGluIHRoZSBmaWxsIGFwcGVhcmFuY2UuXG4gICRmaWxsLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0OiAtMC41ZW07XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICAgIHBhZGRpbmc6ICRpbmZpeC1wYWRkaW5nLXRvcCAwICRpbmZpeC1wYWRkaW5nLWJvdHRvbSAwO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmctdG9wO1xuICAgICAgbWFyZ2luLXRvcDogJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQ7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtZmlsbC1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLXRvcCArICRmaWxsLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1maWxsLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmctdG9wICsgJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQsXG4gICAgICAgICAgICAgICAgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHRoZSBsZWdhY3kgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAkdW5kZXJsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjcsIDAuNDIpKTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kge1xuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtaGludCB7XG4gICAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgQGluY2x1ZGUgbWF0LWNvbnRyb2wtZGlzYWJsZWQtdW5kZXJsaW5lKCR1bmRlcmxpbmUtY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlOiAwO1xuXG4vLyBBcHBsaWVzIGEgZmxvYXRpbmcgbGFiZWwgYWJvdmUgdGhlIGZvcm0gZmllbGQgY29udHJvbCBpdHNlbGYuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZygkZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKSB7XG4gIC8vIFdlIHVzZSBwZXJzcGVjdGl2ZSB0byBmaXggdGhlIHRleHQgYmx1cnJpbmVzcyBhcyBkZXNjcmliZWQgaGVyZTpcbiAgLy8gaHR0cDovL3d3dy51c2VyYWdlbnRtYW4uY29tL2Jsb2cvMjAxNC8wNS8wNC9maXhpbmctdHlwb2dyYXBoeS1pbnNpZGUtb2YtMi1kLWNzcy10cmFuc2Zvcm1zL1xuICAvLyBUaGlzIHJlc3VsdHMgaW4gYSBzbWFsbCBqaXR0ZXIgYWZ0ZXIgdGhlIGxhYmVsIGZsb2F0cyBvbiBGaXJlZm94LCB3aGljaCB0aGVcbiAgLy8gdHJhbnNsYXRlWiBmaXhlcy5cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nKSBzY2FsZSgkZm9udC1zY2FsZSkgcGVyc3BlY3RpdmUoMTAwcHgpXG4gIHRyYW5zbGF0ZVooMC4wMDFweCArICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlKTtcbiAgLy8gVGhlIHRyaWNrcyBhYm92ZSB1c2VkIHRvIHNtb290aCBvdXQgdGhlIGFuaW1hdGlvbiBvbiBjaHJvbWUgYW5kIGZpcmVmb3ggYWN0dWFsbHkgbWFrZSB0aGluZ3NcbiAgLy8gd29yc2Ugb24gSUUsIHNvIHdlIGRvbid0IGluY2x1ZGUgdGhlbSBpbiB0aGUgSUUgdmVyc2lvbi5cbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJGluZml4LW1hcmdpbi10b3AgLSAkaW5maXgtcGFkZGluZyArICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlKVxuICAgICAgICAgICAgICAgICAgc2NhbGUoJGZvbnQtc2NhbGUpO1xuXG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZTtcblxuICAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZTogJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbi8vIFNhbWUgYXMgbWl4aW4gYWJvdmUsIGJ1dCBvbWl0cyB0aGUgdHJhbnNsYXRlWiBmb3IgcHJpbnRpbmcgcHVycG9zZXMuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludCgkZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKSB7XG4gIC8vIFRoaXMgcmVzdWx0cyBpbiBhIHNtYWxsIGppdHRlciBhZnRlciB0aGUgbGFiZWwgZmxvYXRzIG9uIEZpcmVmb3gsIHdoaWNoIHRoZVxuICAvLyB0cmFuc2xhdGVaIGZpeGVzLlxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRpbmZpeC1tYXJnaW4tdG9wIC0gJGluZml4LXBhZGRpbmcgKyAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZSlcbiAgICAgICAgICAgICAgICAgIHNjYWxlKCRmb250LXNjYWxlKTtcbiAgLy8gVGhlIHRyaWNrcyBhYm92ZSB1c2VkIHRvIHNtb290aCBvdXQgdGhlIGFuaW1hdGlvbiBvbiBjaHJvbWUgYW5kIGZpcmVmb3ggYWN0dWFsbHkgbWFrZSB0aGluZ3NcbiAgLy8gd29yc2Ugb24gSUUsIHNvIHdlIGRvbid0IGluY2x1ZGUgdGhlbSBpbiB0aGUgSUUgdmVyc2lvbi5cbiAgJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlICsgMC4wMDAwMSAhZ2xvYmFsO1xufVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtbGVnYWN5LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBhbW91bnQgb2Ygc3BhY2UgYmV0d2VlbiB0aGUgdG9wIG9mIHRoZSBsaW5lIGFuZCB0aGUgdG9wIG9mIHRoZSBhY3R1YWwgdGV4dFxuICAvLyAoYXMgYSBmcmFjdGlvbiBvZiB0aGUgZm9udC1zaXplKS5cbiAgJGxpbmUtc3BhY2luZzogKCRsaW5lLWhlaWdodCAtIDEpIC8gMjtcbiAgLy8gVGhlIHBhZGRpbmcgb24gdGhlIGluZml4LiBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZSwgYnV0IHNlZW0gdG8gbWVhc3VyZSBmcm9tIHRoZSBlZGdlXG4gIC8vIG9mIHRoZSB0ZXh0IGl0c2VsZiwgbm90IHRoZSBlZGdlIG9mIHRoZSBsaW5lOyB0aGVyZWZvcmUgd2Ugc3VidHJhY3Qgb2ZmIHRoZSBsaW5lIHNwYWNpbmcuXG4gICRpbmZpeC1wYWRkaW5nOiAwLjVlbSAtICRsaW5lLXNwYWNpbmc7XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBib3R0b20gb2YgdGhlIC5tYXQtZm9ybS1maWVsZC1mbGV4IGFyZWEgYW5kIHRoZSBzdWJzY3JpcHQgd3JhcHBlci5cbiAgLy8gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCB0aGlzIG1hcmdpbiBpcyBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgd2l0aCB0aGUgc3Vic2NyaXB0XG4gIC8vIHRleHQgZm9udCBzaXplLCBzbyB3ZSBuZWVkIHRvIGRpdmlkZSBieSB0aGUgc2NhbGUgZmFjdG9yIHRvIG1ha2UgaXQgaGFsZiBvZiB0aGUgb3JpZ2luYWwgdGV4dFxuICAvLyBzaXplLiBXZSBhZ2FpbiBuZWVkIHRvIHN1YnRyYWN0IG9mZiB0aGUgbGluZSBzcGFjaW5nIHNpbmNlIHRoZSBtb2NrcyBtZWFzdXJlIHRvIHRoZSBlZGdlIG9mIHRoZVxuICAvLyB0ZXh0LCBub3QgdGhlICBlZGdlIG9mIHRoZSBsaW5lLlxuICAkc3Vic2NyaXB0LW1hcmdpbi10b3A6IDAuNWVtIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlIC0gKCRsaW5lLXNwYWNpbmcgKiAyKTtcbiAgLy8gVGhlIHBhZGRpbmcgYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC13cmFwcGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBzdWJzY3JpcHQsIHNpbmNlIGl0J3NcbiAgLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkLiBUaGlzIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIHN1YnNjcmlwdCdzIG1hcmdpbiBhbmQgbGluZS1oZWlnaHQsIGJ1dCB3ZVxuICAvLyBuZWVkIHRvIG11bHRpcGx5IGJ5IHRoZSBzdWJzY3JpcHQgZm9udCBzY2FsZSBmYWN0b3Igc2luY2UgdGhlIHdyYXBwZXIgaGFzIGEgbGFyZ2VyIGZvbnQgc2l6ZS5cbiAgJHdyYXBwZXItcGFkZGluZy1ib3R0b206ICgkc3Vic2NyaXB0LW1hcmdpbi10b3AgKyAkbGluZS1oZWlnaHQpICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgICAgcGFkZGluZy1ib3R0b206ICR3cmFwcGVyLXBhZGRpbmctYm90dG9tO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICBwYWRkaW5nOiAkaW5maXgtcGFkZGluZyAwO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjAgd2lsbCByZWx5IG9uIEF1dG9maWxsTW9uaXRvciBpbnN0ZWFkLlxuICAgICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICAvLyBXZSB3YW50IHRoZSB1bmRlcmxpbmUgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgICAvLyBzbyB3ZSBtb3ZlIGl0IHVwIGJ5IHRoZSBwYWRkaW5nIGFtb3VudC5cbiAgICAgIGJvdHRvbTogJHdyYXBwZXItcGFkZGluZy1ib3R0b207XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgICAgIG1hcmdpbi10b3A6ICRzdWJzY3JpcHQtbWFyZ2luLXRvcDtcblxuICAgICAgLy8gV2Ugd2FudCB0aGUgc3Vic2NyaXB0IHRvIHN0YXJ0IGF0IHRoZSBlbmQgb2YgdGhlIGNvbnRlbnQgYm94LCBub3QgdGhlIHBhZGRpbmcgYm94LFxuICAgICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQgKGFkanVzdGVkIGZvciB0aGUgc21hbGxlciBmb250IHNpemUpO1xuICAgICAgdG9wOiBjYWxjKDEwMCUgLSAjeyR3cmFwcGVyLXBhZGRpbmctYm90dG9tIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gdHJhbnNsYXRlWiBjYXVzZXMgdGhlIGxhYmVsIHRvIG5vdCBhcHBlYXIgd2hpbGUgcHJpbnRpbmcsIHNvIHdlIG92ZXJyaWRlIGl0IHRvIG5vdFxuICAvLyBhcHBseSB0cmFuc2xhdGVaIHdoaWxlIHByaW50aW5nXG4gIEBtZWRpYSBwcmludCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgICAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludChcbiAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjAgd2lsbCByZWx5IG9uIEF1dG9maWxsTW9uaXRvciBpbnN0ZWFkLlxuICAgICAgICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbDotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nLXByaW50KFxuICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAgIC8vICh1c2VkIGFzIGEgcHVyZSBDU1Mgc3RhbmQtaW4gZm9yIG1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCkuXG4gICAgICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludChcbiAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHRoZSBvdXRsaW5lIGFwcGVhcmFuY2Ugb2YgdGhlIGZvcm0tZmllbGQuXG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkbGFiZWwtZGlzYWJsZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gICRvdXRsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjMsIDAuMTIpKTtcbiAgJG91dGxpbmUtY29sb3ItaG92ZXI6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDEsIDAuODcpKTtcbiAgJG91dGxpbmUtY29sb3ItcHJpbWFyeTogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgJG91dGxpbmUtY29sb3ItYWNjZW50OiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICRvdXRsaW5lLWNvbG9yLXdhcm46IG1hdC1jb2xvcigkd2Fybik7XG4gICRvdXRsaW5lLWNvbG9yLWRpc2FibGVkOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjE1LCAwLjA2KSk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xuICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1ob3ZlcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb2N1c2VkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLXByaW1hcnk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gICAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1hY2NlbnQ7XG4gICAgICB9XG5cbiAgICAgICYubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDbGFzcyByZXBlYXRlZCBzbyB0aGF0IHJ1bGUgaXMgc3BlY2lmaWMgZW5vdWdoIHRvIG92ZXJyaWRlIGZvY3VzZWQgYWNjZW50IGNvbG9yIGNhc2UuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQge1xuICAgICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkbGFiZWwtZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLWRpc2FibGVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWRlZHVwZTogMDtcblxuLy8gQXBwbGllcyBhIGZsb2F0aW5nIGxhYmVsIGFib3ZlIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaXRzZWxmLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlKVxuICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGU7XG5cbiAgJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlOiAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBwYWRkaW5nIGFib3ZlIGFuZCBiZWxvdyB0aGUgaW5maXguXG4gICRpbmZpeC1wYWRkaW5nOiAxZW07XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBib3R0b20gb2YgdGhlIC5tYXQtZm9ybS1maWVsZC1mbGV4IGFyZWEgYW5kIHRoZSBzdWJzY3JpcHQgd3JhcHBlci5cbiAgLy8gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCB0aGlzIG1hcmdpbiBpcyBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgd2l0aCB0aGUgc3Vic2NyaXB0XG4gIC8vIHRleHQgZm9udCBzaXplLCBzbyB3ZSBuZWVkIHRvIGRpdmlkZSBieSB0aGUgc2NhbGUgZmFjdG9yIHRvIG1ha2UgaXQgaGFsZiBvZiB0aGUgb3JpZ2luYWwgdGV4dFxuICAvLyBzaXplLlxuICAkc3Vic2NyaXB0LW1hcmdpbi10b3A6IDAuNWVtIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBUaGUgcGFkZGluZyBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLXdyYXBwZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIHN1YnNjcmlwdCwgc2luY2UgaXQnc1xuICAvLyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQuIFRoaXMgaXMgYSBjb21iaW5hdGlvbiBvZiB0aGUgc3Vic2NyaXB0J3MgbWFyZ2luIGFuZCBsaW5lLWhlaWdodCwgYnV0IHdlXG4gIC8vIG5lZWQgdG8gbXVsdGlwbHkgYnkgdGhlIHN1YnNjcmlwdCBmb250IHNjYWxlIGZhY3RvciBzaW5jZSB0aGUgd3JhcHBlciBoYXMgYSBsYXJnZXIgZm9udCBzaXplLlxuICAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTogKCRzdWJzY3JpcHQtbWFyZ2luLXRvcCArICRsaW5lLWhlaWdodCkgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBhbW91bnQgd2Ugb2Zmc2V0IHRoZSBsYWJlbCBmcm9tIHRoZSBpbnB1dCB0ZXh0IGluIHRoZSBvdXRsaW5lIGFwcGVhcmFuY2UuXG4gICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0OiAtMC4yNWVtO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUge1xuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICBwYWRkaW5nOiAkaW5maXgtcGFkZGluZyAwICRpbmZpeC1wYWRkaW5nIDA7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIHRvcDogJGluZml4LW1hcmdpbi10b3AgKyAkaW5maXgtcGFkZGluZztcbiAgICAgIG1hcmdpbi10b3A6ICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0O1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLW91dGxpbmUtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZyArICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcgKyAkb3V0bGluZS1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldCxcbiAgICAgICAgICAgICAgICAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIHN0YW5kYXJkIGFwcGVhcmFuY2Ugb2YgdGhlIGZvcm0tZmllbGQuXG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkdW5kZXJsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjcsIDAuNDIpKTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICBAaW5jbHVkZSBtYXQtY29udHJvbC1kaXNhYmxlZC11bmRlcmxpbmUoJHVuZGVybGluZS1jb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10eXBvZ3JhcGh5KCRjb25maWcpIHt9XG5cblxuLy8gVGhlbWUgc3R5bGVzIHRoYXQgYXBwbHkgdG8gYWxsIGFwcGVhcmFuY2VzIG9mIHRoZSBmb3JtLWZpZWxkLlxuQG1peGluIG1hdC1mb3JtLWZpZWxkLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAvLyBMYWJlbCBjb2xvcnMuIFJlcXVpcmVkIGlzIHVzZWQgZm9yIHRoZSBgKmAgc3RhciBzaG93biBpbiB0aGUgbGFiZWwuXG4gICRsYWJlbC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCwgaWYoJGlzLWRhcmstdGhlbWUsIDAuNywgMC42KSk7XG4gICRmb2N1c2VkLWxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuICAkcmVxdWlyZWQtbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcblxuICAvLyBVbmRlcmxpbmUgY29sb3JzLlxuICAkdW5kZXJsaW5lLWNvbG9yLWJhc2U6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDEsIDAuODcpKTtcbiAgJHVuZGVybGluZS1jb2xvci1hY2NlbnQ6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcbiAgJHVuZGVybGluZS1jb2xvci13YXJuOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICAkdW5kZXJsaW5lLWZvY3VzZWQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1oaW50IHtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgY29sb3I6ICRmb2N1c2VkLWxhYmVsLWNvbG9yO1xuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWFjY2VudDtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIge1xuICAgIGNvbG9yOiAkcmVxdWlyZWQtbGFiZWwtY29sb3I7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWJhc2U7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQge1xuICAgIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1mb2N1c2VkLWNvbG9yO1xuXG4gICAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWFjY2VudDtcbiAgICAgIH1cblxuICAgICAgJi5tYXQtd2FybiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpIHtcbiAgICAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWZvY3VzZWQtY29sb3I7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3ItYWNjZW50O1xuICAgIH1cblxuICAgICYubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN0eWxpbmcgZm9yIHRoZSBlcnJvciBzdGF0ZSBvZiB0aGUgZm9ybSBmaWVsZC4gTm90ZSB0aGF0IHdoaWxlIHRoZSBzYW1lIGNhbiBiZVxuICAvLyBhY2hpZXZlZCB3aXRoIHRoZSBuZy0qIGNsYXNzZXMsIHdlIHVzZSB0aGlzIGFwcHJvYWNoIGluIG9yZGVyIHRvIGVuc3VyZSB0aGF0IHRoZSBzYW1lXG4gIC8vIGxvZ2ljIGlzIHVzZWQgdG8gc3R5bGUgdGhlIGVycm9yIHN0YXRlIGFuZCB0byBzaG93IHRoZSBlcnJvciBtZXNzYWdlcy5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQge1xuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuXG4gICAgICAmLm1hdC1hY2NlbnQsXG4gICAgICAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtcmlwcGxlLFxuICAgIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgfVxuICB9XG5cbiAgLm1hdC1lcnJvciB7XG4gICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1maWxsLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhlbWUoJHRoZW1lKTtcbn1cblxuLy8gVXNlZCB0byBtYWtlIGluc3RhbmNlcyBvZiB0aGUgX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nIG1peGluIG5lZ2xpZ2libHkgZGlmZmVyZW50LFxuLy8gYW5kIHByZXZlbnQgR29vZ2xlJ3MgQ1NTIE9wdGltaXplciBmcm9tIGNvbGxhcHNpbmcgdGhlIGRlY2xhcmF0aW9ucy4gVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBzb21lXG4vLyBvZiB0aGUgc2VsZWN0b3JzIGNvbnRhaW4gcHNldWRvLWNsYXNzZXMgbm90IHJlY29nbml6ZWQgaW4gYWxsIGJyb3dzZXJzLiBJZiBhIGJyb3dzZXIgZW5jb3VudGVyc1xuLy8gYW4gdW5rbm93biBwc2V1ZG8tY2xhc3MgaXQgd2lsbCBkaXNjYXJkIHRoZSBlbnRpcmUgcnVsZSBzZXQuXG4kbWF0LWZvcm0tZmllbGQtZGVkdXBlOiAwO1xuXG4vLyBBcHBsaWVzIGEgZmxvYXRpbmcgbGFiZWwgYWJvdmUgdGhlIGZvcm0gZmllbGQgY29udHJvbCBpdHNlbGYuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLWRlZHVwZSlcbiAgICAgICAgICAgICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtZGVkdXBlO1xuXG4gICRtYXQtZm9ybS1maWVsZC1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuXG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBwcmVmaXggYW5kIHN1ZmZpeCBpY29ucy5cbiAgJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNjYWxlOiAxLjU7XG5cbiAgLy8gVGhlIHBhZGRpbmcgb24gdGhlIGluZml4LiBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZS5cbiAgJGluZml4LXBhZGRpbmc6IDAuNWVtO1xuICAvLyBUaGUgbWFyZ2luIGFwcGxpZWQgdG8gdGhlIGZvcm0tZmllbGQtaW5maXggdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsLlxuICAkaW5maXgtbWFyZ2luLXRvcDogMWVtICogJGxpbmUtaGVpZ2h0ICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBGb250IHNpemUgdG8gdXNlIGZvciB0aGUgbGFiZWwgYW5kIHN1YnNjcmlwdCB0ZXh0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2l6ZTogJHN1YnNjcmlwdC1mb250LXNjYWxlICogMTAwJTtcbiAgLy8gRm9udCBzaXplIHRvIHVzZSBmb3IgdGhlIGZvciB0aGUgcHJlZml4IGFuZCBzdWZmaXggaWNvbnMuXG4gICRwcmVmaXgtc3VmZml4LWljb24tZm9udC1zaXplOiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGUgKiAxMDAlO1xuICAvLyBUaGUgc3BhY2UgYmV0d2VlbiB0aGUgYm90dG9tIG9mIHRoZSAubWF0LWZvcm0tZmllbGQtZmxleCBhcmVhIGFuZCB0aGUgc3Vic2NyaXB0IHdyYXBwZXIuXG4gIC8vIE1vY2tzIHNob3cgaGFsZiBvZiB0aGUgdGV4dCBzaXplLCBidXQgdGhpcyBtYXJnaW4gaXMgYXBwbGllZCB0byBhbiBlbGVtZW50IHdpdGggdGhlIHN1YnNjcmlwdFxuICAvLyB0ZXh0IGZvbnQgc2l6ZSwgc28gd2UgbmVlZCB0byBkaXZpZGUgYnkgdGhlIHNjYWxlIGZhY3RvciB0byBtYWtlIGl0IGhhbGYgb2YgdGhlIG9yaWdpbmFsIHRleHRcbiAgLy8gc2l6ZS5cbiAgJHN1YnNjcmlwdC1tYXJnaW4tdG9wOiAwLjVlbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcbiAgLy8gVGhlIHBhZGRpbmcgYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC13cmFwcGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBzdWJzY3JpcHQsIHNpbmNlIGl0J3NcbiAgLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkLiBUaGlzIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIHN1YnNjcmlwdCdzIG1hcmdpbiBhbmQgbGluZS1oZWlnaHQsIGJ1dCB3ZVxuICAvLyBuZWVkIHRvIG11bHRpcGx5IGJ5IHRoZSBzdWJzY3JpcHQgZm9udCBzY2FsZSBmYWN0b3Igc2luY2UgdGhlIHdyYXBwZXIgaGFzIGEgbGFyZ2VyIGZvbnQgc2l6ZS5cbiAgJHdyYXBwZXItcGFkZGluZy1ib3R0b206ICgkc3Vic2NyaXB0LW1hcmdpbi10b3AgKyAkbGluZS1oZWlnaHQpICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuXG4gIC5tYXQtZm9ybS1maWVsZCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGlucHV0KTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHdyYXBwZXItcGFkZGluZy1ib3R0b207XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtcHJlZml4LFxuICAubWF0LWZvcm0tZmllbGQtc3VmZml4IHtcbiAgICAvLyBBbGxvdyBpY29ucyBpbiBhIHByZWZpeCBvciBzdWZmaXggdG8gYWRhcHQgdG8gdGhlIGNvcnJlY3Qgc2l6ZS5cbiAgICAubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gICAgfVxuXG4gICAgLy8gQWxsb3cgaWNvbiBidXR0b25zIGluIGEgcHJlZml4IG9yIHN1ZmZpeCB0byBhZGFwdCB0byB0aGUgY29ycmVjdCBzaXplLlxuICAgIC5tYXQtaWNvbi1idXR0b24ge1xuICAgICAgaGVpZ2h0OiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGUgKiAxZW07XG4gICAgICB3aWR0aDogJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNjYWxlICogMWVtO1xuXG4gICAgICAubWF0LWljb24ge1xuICAgICAgICBoZWlnaHQ6ICRsaW5lLWhlaWdodCAqIDFlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIHBhZGRpbmc6ICRpbmZpeC1wYWRkaW5nIDA7XG4gICAgLy8gVGhyb3dzIG9mZiB0aGUgYmFzZWxpbmUgaWYgd2UgZG8gaXQgYXMgYSByZWFsIG1hcmdpbiwgc28gd2UgZG8gaXQgYXMgYSBib3JkZXIgaW5zdGVhZC5cbiAgICBib3JkZXItdG9wOiAkaW5maXgtbWFyZ2luLXRvcCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICB9XG5cbiAgICAvLyBTZXJ2ZXItc2lkZSByZW5kZXJlZCBtYXRJbnB1dCB3aXRoIGEgbGFiZWwgYXR0cmlidXRlIGJ1dCBsYWJlbCBub3Qgc2hvd25cbiAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgdG9wOiAtJGluZml4LW1hcmdpbi10b3A7XG4gICAgcGFkZGluZy10b3A6ICRpbmZpeC1tYXJnaW4tdG9wO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmc7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAvLyBXZSB3YW50IHRoZSB1bmRlcmxpbmUgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQuXG4gICAgYm90dG9tOiAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciB7XG4gICAgZm9udC1zaXplOiAkc3Vic2NyaXB0LWZvbnQtc2l6ZTtcbiAgICBtYXJnaW4tdG9wOiAkc3Vic2NyaXB0LW1hcmdpbi10b3A7XG5cbiAgICAvLyBXZSB3YW50IHRoZSBzdWJzY3JpcHQgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQgKGFkanVzdGVkIGZvciB0aGUgc21hbGxlciBmb250IHNpemUpO1xuICAgIHRvcDogY2FsYygxMDAlIC0gI3skd3JhcHBlci1wYWRkaW5nLWJvdHRvbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZX0pO1xuICB9XG5cbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtbGVnYWN5LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXN0YW5kYXJkLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWZpbGwtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtb3V0bGluZS10eXBvZ3JhcGh5KCRjb25maWcpO1xufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtdHJlZS10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXRyZWUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgfVxuXG4gIC5tYXQtdHJlZS1ub2RlLFxuICAubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtdHJlZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC10cmVlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC10cmVlLW5vZGUsXG4gIC5tYXQtbmVzdGVkLXRyZWUtbm9kZSB7XG4gICAgZm9udC13ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpO1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG4vLyBJbmNsdWRlcyBhbGwgb2YgdGhlIHR5cG9ncmFwaGljIHN0eWxlcy5cbkBtaXhpbiBhbmd1bGFyLW1hdGVyaWFsLXR5cG9ncmFwaHkoJGNvbmZpZzogbnVsbCkge1xuICBAaWYgJGNvbmZpZyA9PSBudWxsIHtcbiAgICAkY29uZmlnOiBtYXQtdHlwb2dyYXBoeS1jb25maWcoKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1hdC1iYWRnZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYmFzZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYXV0b2NvbXBsZXRlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1ib3R0b20tc2hlZXQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYnV0dG9uLXRvZ2dsZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtY2FyZC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtY2hlY2tib3gtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWNoaXBzLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10YWJsZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZGF0ZXBpY2tlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZGlhbG9nLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1leHBhbnNpb24tcGFuZWwtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWdyaWQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtaWNvbi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtaW5wdXQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LW1lbnUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXBhZ2luYXRvci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3MtYmFyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcm9ncmVzcy1zcGlubmVyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1yYWRpby10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc2VsZWN0LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zaWRlbmF2LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zbGlkZS10b2dnbGUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXNsaWRlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc3RlcHBlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc29ydC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdGFicy10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdG9vbGJhci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdG9vbHRpcC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtb3B0aW9uLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1vcHRncm91cC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc25hY2stYmFyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10cmVlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG59XG5cblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBzdHlsZXMgdGhhdCBhcmUgbm90IHRoZW1lLWRlcGVuZGVudC5cbkBtaXhpbiBtYXQtY29yZSgkdHlwb2dyYXBoeS1jb25maWc6IG51bGwpIHtcbiAgQGluY2x1ZGUgYW5ndWxhci1tYXRlcmlhbC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5LWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1yaXBwbGUoKTtcbiAgQGluY2x1ZGUgY2RrLWExMXkoKTtcbiAgQGluY2x1ZGUgY2RrLW92ZXJsYXkoKTtcbiAgQGluY2x1ZGUgY2RrLXRleHQtZmllbGQoKTtcbn1cblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBzdHlsZXMgdGhhdCBkZXBlbmQgb24gdGhlIHRoZW1lLlxuQG1peGluIG1hdC1jb3JlLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtcmlwcGxlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1vcHRpb24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LW9wdGdyb3VwLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1wc2V1ZG8tY2hlY2tib3gtdGhlbWUoJHRoZW1lKTtcblxuICAvLyBQcm92aWRlcyBleHRlcm5hbCBDU1MgY2xhc3NlcyBmb3IgZWFjaCBlbGV2YXRpb24gdmFsdWUuIEVhY2ggQ1NTIGNsYXNzIGlzIGZvcm1hdHRlZCBhc1xuICAvLyBgbWF0LWVsZXZhdGlvbi16JHpWYWx1ZWAgd2hlcmUgYCR6VmFsdWVgIGNvcnJlc3BvbmRzIHRvIHRoZSB6LXNwYWNlIHRvIHdoaWNoIHRoZSBlbGVtZW50IGlzXG4gIC8vIGVsZXZhdGVkLlxuICBAZm9yICR6VmFsdWUgZnJvbSAwIHRocm91Z2ggMjQge1xuICAgIC4jeyRfbWF0LWVsZXZhdGlvbi1wcmVmaXh9I3skelZhbHVlfSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigkelZhbHVlLCAkdGhlbWUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdyYXBwZXIgZWxlbWVudCB0aGF0IHByb3ZpZGVzIHRoZSB0aGVtZSBiYWNrZ3JvdW5kIHdoZW4gdGhlIHVzZXIncyBjb250ZW50IGlzbid0XG4gIC8vIGluc2lkZSBvZiBhIGBtYXQtc2lkZW5hdi1jb250YWluZXJgLiBOb3RlIHRoYXQgd2UgbmVlZCB0byBleGNsdWRlIHRoZSBhbXBlcnNhbmRcbiAgLy8gc2VsZWN0b3IgaW4gY2FzZSB0aGUgbWl4aW4gaXMgaW5jbHVkZWQgYXQgdGhlIHRvcCBsZXZlbC5cbiAgLm1hdC1hcHAtYmFja2dyb3VuZCN7aWYoJiwgJywgJi5tYXQtYXBwLWJhY2tncm91bmQnLCAnJyl9IHtcbiAgICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAgICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLy8gTWFya2VyIHRoYXQgaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgdXNlciBoYXMgYWRkZWQgYSB0aGVtZSB0byB0aGVpciBwYWdlLlxuICBAYXQtcm9vdCB7XG4gICAgLm1hdC10aGVtZS1sb2FkZWQtbWFya2VyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtZGl2aWRlci10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWRpdmlkZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWRpdmlkZXItdmVydGljYWwge1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxufVxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4vLyBDcmVhdGUgYSB0aGVtZS5cbkBtaXhpbiBhbmd1bGFyLW1hdGVyaWFsLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtY29yZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtYXV0b2NvbXBsZXRlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1iYWRnZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtYm90dG9tLXNoZWV0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1idXR0b24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10b2dnbGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWNhcmQtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWNoZWNrYm94LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1jaGlwcy10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtdGFibGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWRhdGVwaWNrZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWRpYWxvZy10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZGl2aWRlci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZXhwYW5zaW9uLXBhbmVsLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1ncmlkLWxpc3QtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWljb24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWlucHV0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1saXN0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1tZW51LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1wYWdpbmF0b3ItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLWJhci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtcmFkaW8tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNlbGVjdC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtc2lkZW5hdi10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtc2xpZGUtdG9nZ2xlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1zbGlkZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXN0ZXBwZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNvcnQtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRhYnMtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRvb2xiYXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRvb2x0aXAtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRyZWUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNuYWNrLWJhci10aGVtZSgkdGhlbWUpO1xufVxuIiwiLyogVGhlbWUgZm9yIHRoZSByaXBwbGUgZWxlbWVudHMuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIG1hdGVyaWFsL25vLXByZWZpeGVzICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4ubWF0LWJhZGdlLWNvbnRlbnQge1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1iYWRnZS1zbWFsbCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBmb250LXNpemU6IDlweDtcbn1cblxuLm1hdC1iYWRnZS1sYXJnZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBmb250LXNpemU6IDI0cHg7XG59XG5cbi5tYXQtaDEsIC5tYXQtaGVhZGxpbmUsIC5tYXQtdHlwb2dyYXBoeSBoMSB7XG4gIGZvbnQ6IDQwMCAyNHB4LzMycHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDE2cHg7XG59XG5cbi5tYXQtaDIsIC5tYXQtdGl0bGUsIC5tYXQtdHlwb2dyYXBoeSBoMiB7XG4gIGZvbnQ6IDUwMCAyMHB4LzMycHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDE2cHg7XG59XG5cbi5tYXQtaDMsIC5tYXQtc3ViaGVhZGluZy0yLCAubWF0LXR5cG9ncmFwaHkgaDMge1xuICBmb250OiA0MDAgMTZweC8yOHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCAxNnB4O1xufVxuXG4ubWF0LWg0LCAubWF0LXN1YmhlYWRpbmctMSwgLm1hdC10eXBvZ3JhcGh5IGg0IHtcbiAgZm9udDogNDAwIDE1cHgvMjRweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgMTZweDtcbn1cblxuLm1hdC1oNSwgLm1hdC10eXBvZ3JhcGh5IGg1IHtcbiAgZm9udDogNDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDEycHg7XG59XG5cbi5tYXQtaDYsIC5tYXQtdHlwb2dyYXBoeSBoNiB7XG4gIGZvbnQ6IDQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCAxMnB4O1xufVxuXG4ubWF0LWJvZHktc3Ryb25nLCAubWF0LWJvZHktMiB7XG4gIGZvbnQ6IDUwMCAxNHB4LzI0cHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtYm9keSwgLm1hdC1ib2R5LTEsIC5tYXQtdHlwb2dyYXBoeSB7XG4gIGZvbnQ6IDQwMCAxNHB4LzIwcHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4ubWF0LWJvZHkgcCwgLm1hdC1ib2R5LTEgcCwgLm1hdC10eXBvZ3JhcGh5IHAge1xuICBtYXJnaW46IDAgMCAxMnB4O1xufVxuXG4ubWF0LXNtYWxsLCAubWF0LWNhcHRpb24ge1xuICBmb250OiA0MDAgMTJweC8yMHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWRpc3BsYXktNCwgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS00IHtcbiAgZm9udDogMzAwIDExMnB4LzExMnB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDVlbTtcbiAgbWFyZ2luOiAwIDAgNTZweDtcbn1cblxuLm1hdC1kaXNwbGF5LTMsIC5tYXQtdHlwb2dyYXBoeSAubWF0LWRpc3BsYXktMyB7XG4gIGZvbnQ6IDQwMCA1NnB4LzU2cHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICBtYXJnaW46IDAgMCA2NHB4O1xufVxuXG4ubWF0LWRpc3BsYXktMiwgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS0yIHtcbiAgZm9udDogNDAwIDQ1cHgvNDhweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwNWVtO1xuICBtYXJnaW46IDAgMCA2NHB4O1xufVxuXG4ubWF0LWRpc3BsYXktMSwgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS0xIHtcbiAgZm9udDogNDAwIDM0cHgvNDBweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgNjRweDtcbn1cblxuLm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyIHtcbiAgZm9udDogNDAwIDE0cHgvMjBweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1idXR0b24sIC5tYXQtcmFpc2VkLWJ1dHRvbiwgLm1hdC1pY29uLWJ1dHRvbiwgLm1hdC1zdHJva2VkLWJ1dHRvbixcbi5tYXQtZmxhdC1idXR0b24sIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1jYXJkIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWNhcmQtdGl0bGUge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtY2FyZC1oZWFkZXIgLm1hdC1jYXJkLXRpdGxlIHtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuXG4ubWF0LWNhcmQtc3VidGl0bGUsXG4ubWF0LWNhcmQtY29udGVudCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1hdC1jaGVja2JveCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1jaGVja2JveC1sYXlvdXQgLm1hdC1jaGVja2JveC1sYWJlbCB7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuXG4ubWF0LWNoaXAge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4ubWF0LWNoaXAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb24sXG4ubWF0LWNoaXAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLm1hdC10YWJsZSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1oZWFkZXItY2VsbCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1jZWxsLCAubWF0LWZvb3Rlci1jZWxsIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4ubWF0LWNhbGVuZGFyIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWNhbGVuZGFyLWJvZHkge1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCxcbi5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIgdGgge1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5tYXQtZGlhbG9nLXRpdGxlIHtcbiAgZm9udDogNTAwIDIwcHgvMzJweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnQge1xuICBmb250OiA0MDAgMTRweC8yMHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWZvcm0tZmllbGQge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjEyNTtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAxLjM0Mzc1ZW07XG59XG5cbi5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLFxuLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24ge1xuICBmb250LXNpemU6IDE1MCU7XG4gIGxpbmUtaGVpZ2h0OiAxLjEyNTtcbn1cbi5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbixcbi5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbiB7XG4gIGhlaWdodDogMS41ZW07XG4gIHdpZHRoOiAxLjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb24sXG4ubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29uIHtcbiAgaGVpZ2h0OiAxLjEyNWVtO1xuICBsaW5lLWhlaWdodDogMS4xMjU7XG59XG5cbi5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDAuNWVtIDA7XG4gIGJvcmRlci10b3A6IDAuODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzMzMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM0MzMzMzMlO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gIHRvcDogLTAuODQzNzVlbTtcbiAgcGFkZGluZy10b3A6IDAuODQzNzVlbTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAxLjM0Mzc1ZW07XG59XG5cbi5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBib3R0b206IDEuMzQzNzVlbTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIG1hcmdpbi10b3A6IDAuNjY2NjY2NjY2N2VtO1xuICB0b3A6IGNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDEuMjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBwYWRkaW5nOiAwLjQzNzVlbSAwO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzMzMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM0MzMzMzMlO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzNTMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuMjgxMjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYm90dG9tOiAxLjI1ZW07XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgbWFyZ2luLXRvcDogMC41NDE2NjY2NjY3ZW07XG4gIHRvcDogY2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pO1xufVxuXG5AbWVkaWEgcHJpbnQge1xuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSk7XG4gIH1cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbDotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSk7XG4gIH1cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpO1xuICB9XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDAuMjVlbSAwIDAuNzVlbSAwO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuMDkzNzVlbTtcbiAgbWFyZ2luLXRvcDogLTAuNWVtO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzMzMzMzMzMlO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM0MzMzMzMlO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDFlbSAwIDFlbSAwO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuODQzNzVlbTtcbiAgbWFyZ2luLXRvcDogLTAuMjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzMzMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzNDMzMzMzJTtcbn1cblxuLm1hdC1ncmlkLXRpbGUtaGVhZGVyLFxuLm1hdC1ncmlkLXRpbGUtZm9vdGVyIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLm1hdC1ncmlkLXRpbGUtaGVhZGVyIC5tYXQtbGluZSxcbi5tYXQtZ3JpZC10aWxlLWZvb3RlciAubWF0LWxpbmUge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubWF0LWdyaWQtdGlsZS1oZWFkZXIgLm1hdC1saW5lOm50aC1jaGlsZChuKzIpLFxuLm1hdC1ncmlkLXRpbGUtZm9vdGVyIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICBtYXJnaW4tdG9wOiAtMC4wNjI1ZW07XG59XG5cbi5tYXQtbWVudS1pdGVtIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5tYXQtcGFnaW5hdG9yLFxuLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLm1hdC1yYWRpby1idXR0b24ge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtc2VsZWN0IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgaGVpZ2h0OiAxLjEyNWVtO1xufVxuXG4ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtc3RlcHBlci12ZXJ0aWNhbCwgLm1hdC1zdGVwcGVyLWhvcml6b250YWwge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtc3RlcC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvciB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi5tYXQtc3RlcC1sYWJlbC1lcnJvciB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWF0LXRhYi1ncm91cCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC10b29sYmFyLFxuLm1hdC10b29sYmFyIGgxLFxuLm1hdC10b29sYmFyIGgyLFxuLm1hdC10b29sYmFyIGgzLFxuLm1hdC10b29sYmFyIGg0LFxuLm1hdC10b29sYmFyIGg1LFxuLm1hdC10b29sYmFyIGg2IHtcbiAgZm9udDogNTAwIDIwcHgvMzJweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwO1xufVxuXG4ubWF0LXRvb2x0aXAge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgcGFkZGluZy10b3A6IDZweDtcbiAgcGFkZGluZy1ib3R0b206IDZweDtcbn1cblxuLm1hdC10b29sdGlwLWhhbmRzZXQge1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmctdG9wOiA4cHg7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG59XG5cbi5tYXQtbGlzdC1pdGVtIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWxpc3Qtb3B0aW9uIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24ge1xuICBmb250LXNpemU6IDE2cHg7XG59XG4ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLm1hdC1saXN0LWJhc2UgLm1hdC1zdWJoZWFkZXIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1pdGVtIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3QtaXRlbSAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMikge1xuICBmb250LXNpemU6IDEycHg7XG59XG4ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LW9wdGlvbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LXN1YmhlYWRlciB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWF0LW9wdGlvbiB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4ubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgZm9udDogNTAwIDE0cHgvMjRweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1zaW1wbGUtc25hY2tiYXIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtdHJlZSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC10cmVlLW5vZGUsXG4ubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5tYXQtcmlwcGxlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4ubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5LCB0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmNkay12aXN1YWxseS1oaWRkZW4ge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgb3V0bGluZTogMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi5jZGstb3ZlcmxheS1jb250YWluZXIsIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jZGstb3ZlcmxheS1jb250YWluZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDEwMDA7XG59XG4uY2RrLW92ZXJsYXktY29udGFpbmVyOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDAwO1xufVxuXG4uY2RrLW92ZXJsYXktcGFuZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbn1cblxuLmNkay1vdmVybGF5LWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO1xuICBvcGFjaXR5OiAwO1xufVxuLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICBvcGFjaXR5OiAxO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgfVxufVxuXG4uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zMik7XG59XG5cbi5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICBvcGFjaXR5OiAwO1xufVxuXG4uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAwMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLXdpZHRoOiAxcHg7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbn1cblxuLmNkay1nbG9iYWwtc2Nyb2xsYmxvY2sge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG5cbkBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQge1xuICAvKiEqL1xufVxuQGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQge1xuICAvKiEqL1xufVxuLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxsIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0O1xufVxuXG4uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCkge1xuICBhbmltYXRpb24tbmFtZTogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kO1xufVxuXG50ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUge1xuICByZXNpemU6IG5vbmU7XG59XG5cbnRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmcge1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveCAhaW1wb3J0YW50O1xufVxuXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW9wdGlvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtb3B0aW9uOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LW9wdGlvbjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW9wdGlvbi5tYXQtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1vcHRpb24ubWF0LW9wdGlvbi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtb3B0Z3JvdXAtZGlzYWJsZWQgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHNldWRvLWNoZWNrYm94IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3g6OmFmdGVyIHtcbiAgY29sb3I6ICNmYWZhZmE7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBjb2xvcjogI2IwYjBiMDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiAjYjBiMGIwO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXowIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejMge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXo0IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDVweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16NiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16NyB7XG4gIGJveC1zaGFkb3c6IDBweCA0cHggNXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggN3B4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAycHggMTZweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16OCB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16OSB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOXB4IDEycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTZweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTAge1xuICBib3gtc2hhZG93OiAwcHggNnB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEwcHggMTRweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDRweCAxOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxMSB7XG4gIGJveC1zaGFkb3c6IDBweCA2cHggN3B4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTFweCAxNXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDIwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejEyIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTMge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEzcHggMTlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxNCB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOXB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTRweCAyMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejE1IHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCA5cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNXB4IDIycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMjhweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTYge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTcge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxN3B4IDI2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTgge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOHB4IDI4cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTkge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDEycHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOXB4IDI5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MjAge1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjBweCAzMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDM4cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejIxIHtcbiAgYm94LXNoYWRvdzogMHB4IDEwcHggMTNweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIxcHggMzNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MHB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoyMiB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDE0cHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMnB4IDM1cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDJweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MjMge1xuICBib3gtc2hhZG93OiAwcHggMTFweCAxNHB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjNweCAzNnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejI0IHtcbiAgYm94LXNoYWRvdzogMHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYXBwLWJhY2tncm91bmQsIC5zdGFuZGFyZC10aGVtZS5tYXQtYXBwLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtdGhlbWUtbG9hZGVkLW1hcmtlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zdGFuZGFyZC10aGVtZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LWFjdGl2ZSk6bm90KDpob3Zlcik6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZDogIzYwN2Q4Yjtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBvdXRsaW5lOiBzb2xpZCAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtYWNjZW50IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICM0NDhhZmY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXdhcm4gLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1oaWRkZW4gLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWRpc2FibGVkIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICNiOWI5Yjk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0O1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIHtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLThweDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC04cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNnB4O1xufVxuW2Rpcj1ydGxdIC5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTZweDtcbn1cbltkaXI9cnRsXSAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtOHB4O1xufVxuW2Rpcj1ydGxdIC5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC04cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC04cHg7XG59XG5bZGlyPXJ0bF0gLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtOHB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB0b3A6IC0xMXB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC0xMXB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0yMnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTIycHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTExcHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMTFweDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWxhcmdlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLTE0cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVsb3cgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYm90dG9tOiAtMTRweDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTI4cHg7XG59XG5bZGlyPXJ0bF0gLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTI4cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0yOHB4O1xufVxuW2Rpcj1ydGxdIC5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTI4cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNHB4O1xufVxuW2Rpcj1ydGxdIC5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNHB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTRweDtcbn1cbltkaXI9cnRsXSAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNHB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24sIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbiB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnksIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24ubWF0LWFjY2VudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24ubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b25bZGlzYWJsZWRdIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBvcGFjaXR5OiAwLjE7XG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZDogYmxhY2s7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2Rpc2FibGVkXSkge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnksIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC1wcmltYXJ5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWZhYi5tYXQtYWNjZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhaXNlZC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF06bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWI6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiOm5vdChbZGlzYWJsZWRdKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiOm5vdChbZGlzYWJsZWRdKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEycHggMTdweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiW2Rpc2FibGVkXTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWJbZGlzYWJsZWRdOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSBbZGlyPXJ0bF0gLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiZGJkYmQ7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGJvcmRlcjogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYXJkIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FyZDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYXJkLm1hdC1jYXJkLWZsYXQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYXJkLXN1YnRpdGxlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gIGZpbGw6ICNmYWZhZmE7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gIHN0cm9rZTogI2ZhZmFmYSAhaW1wb3J0YW50O1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHtcbiAgLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGgge1xuICAgIHN0cm9rZTogIzAwMCAhaW1wb3J0YW50O1xuICB9XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IwYjBiMDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkOm5vdCgubWF0LWNoZWNrYm94LWNoZWNrZWQpIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6ICNiMGIwYjA7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveC1kaXNhYmxlZCAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgb3BhY2l0eTogMC40O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDpub3QoLm1hdC1jaGlwLWRpc2FibGVkKTphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDpub3QoLm1hdC1jaGlwLWRpc2FibGVkKSAubWF0LWNoaXAtcmVtb3ZlOmhvdmVyIHtcbiAgb3BhY2l0eTogMC41NDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjQ7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOjphZnRlciB7XG4gIGJhY2tncm91bmQ6IGJsYWNrO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgb3BhY2l0eTogMC40O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXdhcm4gLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgb3BhY2l0eTogMC40O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFibGUge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYmxlIHRoZWFkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWJsZSB0Ym9keSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFibGUgdGZvb3QsXG4uc3RhbmRhcmQtdGhlbWUgbWF0LWhlYWRlci1yb3csIC5zdGFuZGFyZC10aGVtZSBtYXQtcm93LCAuc3RhbmRhcmQtdGhlbWUgbWF0LWZvb3Rlci1yb3csXG4uc3RhbmRhcmQtdGhlbWUgW21hdC1oZWFkZXItcm93XSwgLnN0YW5kYXJkLXRoZW1lIFttYXQtcm93XSwgLnN0YW5kYXJkLXRoZW1lIFttYXQtZm9vdGVyLXJvd10sXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWJsZS1zdGlja3kge1xuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xufVxuLnN0YW5kYXJkLXRoZW1lIG1hdC1yb3csIC5zdGFuZGFyZC10aGVtZSBtYXQtaGVhZGVyLXJvdywgLnN0YW5kYXJkLXRoZW1lIG1hdC1mb290ZXItcm93LFxuLnN0YW5kYXJkLXRoZW1lIHRoLm1hdC1oZWFkZXItY2VsbCwgLnN0YW5kYXJkLXRoZW1lIHRkLm1hdC1jZWxsLCAuc3RhbmRhcmQtdGhlbWUgdGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWhlYWRlci1jZWxsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jZWxsLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mb290ZXItY2VsbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItYXJyb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1uZXh0LWJ1dHRvbixcbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLXByZXZpb3VzLWJ1dHRvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXItZGl2aWRlcjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXIgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSxcbi5zdGFuZGFyZC10aGVtZSAuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS10b2RheTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xuICBjb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg5NiwgMTI1LCAxMzksIDAuNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDhhZmY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNjgsIDEzOCwgMjU1LCAwLjQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0NCwgNjcsIDU0LCAwLjQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC10b3VjaCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLm1hdC1hY2NlbnQge1xuICBjb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGl2aWRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kaXZpZGVyLXZlcnRpY2FsIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWFjdGlvbi1yb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5zdGFuZGFyZC10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCk6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICB9XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLWluZGljYXRvcjo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaGludCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKSAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKS5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LWFjY2VudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVycm9yIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWhpbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC40MikgMCUsIHJnYmEoMCwgMCwgMCwgMC40MikgMzMlLCB0cmFuc3BhcmVudCAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogNHB4IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNDIpIDAlLCByZ2JhKDAsIDAsIDAsIDAuNDIpIDMzJSwgdHJhbnNwYXJlbnQgMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDRweCAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA2KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWljb24ubWF0LXByaW1hcnkge1xuICBjb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWljb24ubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6ZGlzYWJsZWQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtaW5wdXQtZWxlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWlucHV0LWVsZW1lbnQge1xuICBjYXJldC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWxpc3QtYmFzZSAubWF0LXN1YmhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbGlzdC1pdGVtLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWxpc3Qtb3B0aW9uOmhvdmVyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1saXN0LW9wdGlvbjpmb2N1cyxcbi5zdGFuZGFyZC10aGVtZSAubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06Zm9jdXMsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbTpob3Zlcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtaXRlbSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF06OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1tZW51LWl0ZW0gLm1hdC1pY29uLW5vLWNvbG9yLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWVudS1pdGVtLXN1Ym1lbnUtdHJpZ2dlcjo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtaXRlbTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1tZW51LWl0ZW0uY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoW2Rpc2FibGVkXSksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1tZW51LWl0ZW0uY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWVudS1pdGVtLWhpZ2hsaWdodGVkOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wYWdpbmF0b3Ige1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvci1wYWdlLXNpemUgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQge1xuICBib3JkZXItdG9wOiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvci1maXJzdCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZGVjcmVtZW50LFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1maXJzdCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjY2ZkOGRjO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZmQ4ZGM7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gIGZpbGw6ICM4MmIxZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODJiMWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjZmZjZGQyO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmNkZDI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGUsIC5zdGFuZGFyZC10aGVtZSAubWF0LXNwaW5uZXIgY2lyY2xlIHtcbiAgc3Ryb2tlOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSB7XG4gIHN0cm9rZTogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXdhcm4gY2lyY2xlLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zcGlubmVyLm1hdC13YXJuIGNpcmNsZSB7XG4gIHN0cm9rZTogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeTphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudC5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50OmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2Fybi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybjphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zZWxlY3QtdmFsdWUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNlbGVjdC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNlbGVjdC1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2VsZWN0LXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zZWxlY3QtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtcHJpbWFyeSAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtYWNjZW50IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtaW52YWxpZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZCAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXItY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXIubWF0LWRyYXdlci1wdXNoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXI6bm90KC5tYXQtZHJhd2VyLXNpZGUpIHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXItc2lkZSB7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXItc2lkZS5tYXQtZHJhd2VyLWVuZCB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLnN0YW5kYXJkLXRoZW1lIFtkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRlIHtcbiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgW2Rpcj1ydGxdIC5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmQge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRyYXdlci1iYWNrZHJvcC5tYXQtZHJhd2VyLXNob3duIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDY4LCAxMzgsIDI1NSwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoOTYsIDEyNSwgMTM5LCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDQsIDY3LCA1NCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGU6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWIsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItZm9jdXMtcmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNjgsIDEzOCwgMjU1LCAwLjIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGVyOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4uc3RhbmRhcmQtdGhlbWUgLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItZGlzYWJsZWQ6aG92ZXIgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWIsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZy5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpOmhvdmVyIC5tYXQtc2xpZGVyLXRodW1iLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKS5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpOmhvdmVyLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpLmNkay1mb2N1c2VkLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItaGFzLXRpY2tzIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC43KSwgcmdiYSgwLCAwLCAwLCAwLjcpIDJweCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LXJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMC4wMDAxZGVnLCByZ2JhKDAsIDAsIDAsIDAuNyksIHJnYmEoMCwgMCwgMCwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDAsIDAsIDAsIDAuNyksIHJnYmEoMCwgMCwgMCwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXAtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlci5jZGstcHJvZ3JhbS1mb2N1c2VkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXAtaGVhZGVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtb3B0aW9uYWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVycm9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWFjdGl2ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwcGVyLWhvcml6b250YWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXBwZXItdmVydGljYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXBwZXItdmVydGljYWwtbGluZTo6YmVmb3JlIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjphZnRlcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbC1saW5lIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNvcnQtaGVhZGVyLWFycm93IHtcbiAgY29sb3I6ICM3NTc1NzU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC10YWItbmF2LWJhcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC10YWItaGVhZGVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbGFiZWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cFtjbGFzcyo9bWF0LWJhY2tncm91bmQtXSAubWF0LXRhYi1oZWFkZXIsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhcltjbGFzcyo9bWF0LWJhY2tncm91bmQtXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDcsIDIxNiwgMjIwLCAwLjMpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtaW5rLWJhciwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtaW5rLWJhciwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMzAsIDE3NywgMjU1LCAwLjMpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC1pbmstYmFyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1pbmstYmFyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50Lm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjA1LCAyMTAsIDAuMyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC1pbmstYmFyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1pbmstYmFyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwNywgMjE2LCAyMjAsIDAuMyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmtzLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGlua3MsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmssIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMzAsIDE3NywgMjU1LCAwLjMpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGlua3MsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rcywgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluaywgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMDUsIDIxMCwgMC4zKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlciwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGlua3MsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlciwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rcywgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluaywgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10b29sYmFyIHtcbiAgYmFja2dyb3VuZDogd2hpdGVzbW9rZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10b29sYmFyLm1hdC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzYwN2Q4YjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdG9vbGJhci5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZDogIzQ0OGFmZjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdG9vbGJhci5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQ6ICNmNDQzMzY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtdmFsdWUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LWFycm93LFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2x0aXAge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDk3LCA5NywgOTcsIDAuOSk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10cmVlIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10cmVlLW5vZGUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbmFjay1iYXItY29udGFpbmVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgYmFja2dyb3VuZDogIzMyMzIzMjtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIGgxIHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG5cbi5ncmVlbi10aGVtZSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtb3B0aW9uIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtb3B0aW9uOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksIC5ncmVlbi10aGVtZSAubWF0LW9wdGlvbjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW9wdGlvbi5tYXQtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtb3B0aW9uLm1hdC1vcHRpb24tZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1vcHRncm91cC1kaXNhYmxlZCAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3g6OmFmdGVyIHtcbiAgY29sb3I6ICMzMDMwMzA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBjb2xvcjogIzY4Njg2ODtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5ncmVlbi10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLFxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uZ3JlZW4tdGhlbWUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCxcbi5ncmVlbi10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiAjNjg2ODY4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXowIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejMge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXo0IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDVweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16NiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16NyB7XG4gIGJveC1zaGFkb3c6IDBweCA0cHggNXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggN3B4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAycHggMTZweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16OCB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16OSB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOXB4IDEycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTZweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTAge1xuICBib3gtc2hhZG93OiAwcHggNnB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEwcHggMTRweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDRweCAxOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxMSB7XG4gIGJveC1zaGFkb3c6IDBweCA2cHggN3B4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTFweCAxNXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDIwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejEyIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTMge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEzcHggMTlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxNCB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOXB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTRweCAyMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejE1IHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCA5cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNXB4IDIycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMjhweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTYge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTcge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxN3B4IDI2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTgge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOHB4IDI4cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTkge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDEycHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOXB4IDI5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MjAge1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjBweCAzMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDM4cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejIxIHtcbiAgYm94LXNoYWRvdzogMHB4IDEwcHggMTNweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIxcHggMzNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MHB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoyMiB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDE0cHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMnB4IDM1cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDJweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MjMge1xuICBib3gtc2hhZG93OiAwcHggMTFweCAxNHB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjNweCAzNnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejI0IHtcbiAgYm94LXNoYWRvdzogMHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYXBwLWJhY2tncm91bmQsIC5ncmVlbi10aGVtZS5tYXQtYXBwLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzAzMDMwO1xuICBjb2xvcjogd2hpdGU7XG59XG4ubWF0LXRoZW1lLWxvYWRlZC1tYXJrZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZ3JlZW4tdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtYWN0aXZlKTpub3QoOmhvdmVyKSB7XG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LWFjdGl2ZSk6bm90KDpob3Zlcik6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYmFja2dyb3VuZDogIzhiYzM0YTtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBvdXRsaW5lOiBzb2xpZCAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtYWNjZW50IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICM0Y2FmNTA7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utd2FybiAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYmFja2dyb3VuZDogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtaGlkZGVuIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiAjNmU2ZTZlO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0O1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIHtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLThweDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC04cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNnB4O1xufVxuW2Rpcj1ydGxdIC5ncmVlbi10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTZweDtcbn1cbltkaXI9cnRsXSAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtOHB4O1xufVxuW2Rpcj1ydGxdIC5ncmVlbi10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC04cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC04cHg7XG59XG5bZGlyPXJ0bF0gLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtOHB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB0b3A6IC0xMXB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC0xMXB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0yMnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTIycHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTExcHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMTFweDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWxhcmdlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLTE0cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVsb3cgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYm90dG9tOiAtMTRweDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTI4cHg7XG59XG5bZGlyPXJ0bF0gLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTI4cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0yOHB4O1xufVxuW2Rpcj1ydGxdIC5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTI4cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNHB4O1xufVxuW2Rpcj1ydGxdIC5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNHB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTRweDtcbn1cbltkaXI9cnRsXSAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNHB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24sIC5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbiB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24ubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuLCAuZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4ge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5ncmVlbi10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uW2Rpc2FibGVkXSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIG9wYWNpdHk6IDAuMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIsIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeSwgLmdyZWVuLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQsIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtZmFiLm1hdC1hY2NlbnQsIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0ge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeSwgLmdyZWVuLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiwgLmdyZWVuLXRoZW1lIC5tYXQtZmFiLm1hdC13YXJuLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtZmFiLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b246bm90KFtkaXNhYmxlZF0pOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmFiOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZhYjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZhYltkaXNhYmxlZF06bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiW2Rpc2FibGVkXTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZSxcbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSBbZGlyPXJ0bF0gLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMTIxO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyNDI0Mjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLFxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgYm9yZGVyOiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNhcmQge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYXJkOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNhcmQubWF0LWNhcmQtZmxhdDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNhcmQtc3VidGl0bGUge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gIGZpbGw6ICMzMDMwMzA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gIHN0cm9rZTogIzMwMzAzMCAhaW1wb3J0YW50O1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHtcbiAgLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGgge1xuICAgIHN0cm9rZTogIzAwMCAhaW1wb3J0YW50O1xuICB9XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzAzMDMwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwgLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY4Njg2ODtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkOm5vdCgubWF0LWNoZWNrYm94LWNoZWNrZWQpIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6ICM2ODY4Njg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1kaXNhYmxlZCAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAuZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3ggLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCxcbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LFxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjE2MTYxO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXA6bm90KC5tYXQtY2hpcC1kaXNhYmxlZCk6YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAzcHggNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXA6bm90KC5tYXQtY2hpcC1kaXNhYmxlZCkgLm1hdC1jaGlwLXJlbW92ZTpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNTQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC40O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBvcGFjaXR5OiAwLjQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgb3BhY2l0eTogMC40O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBvcGFjaXR5OiAwLjQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYmxlIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYmxlIHRoZWFkLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWJsZSB0Ym9keSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFibGUgdGZvb3QsXG4uZ3JlZW4tdGhlbWUgbWF0LWhlYWRlci1yb3csIC5ncmVlbi10aGVtZSBtYXQtcm93LCAuZ3JlZW4tdGhlbWUgbWF0LWZvb3Rlci1yb3csXG4uZ3JlZW4tdGhlbWUgW21hdC1oZWFkZXItcm93XSwgLmdyZWVuLXRoZW1lIFttYXQtcm93XSwgLmdyZWVuLXRoZW1lIFttYXQtZm9vdGVyLXJvd10sXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWJsZS1zdGlja3kge1xuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xufVxuLmdyZWVuLXRoZW1lIG1hdC1yb3csIC5ncmVlbi10aGVtZSBtYXQtaGVhZGVyLXJvdywgLmdyZWVuLXRoZW1lIG1hdC1mb290ZXItcm93LFxuLmdyZWVuLXRoZW1lIHRoLm1hdC1oZWFkZXItY2VsbCwgLmdyZWVuLXRoZW1lIHRkLm1hdC1jZWxsLCAuZ3JlZW4tdGhlbWUgdGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWhlYWRlci1jZWxsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNlbGwsIC5ncmVlbi10aGVtZSAubWF0LWZvb3Rlci1jZWxsIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2FsZW5kYXItYXJyb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLFxuLmdyZWVuLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItbmV4dC1idXR0b24sXG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1wcmV2aW91cy1idXR0b24ge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyLWRpdmlkZXI6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXIgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpLFxuLmdyZWVuLXRoZW1lIC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSxcbi5ncmVlbi10aGVtZSAuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMzksIDE5NSwgNzQsIDAuNCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDc2LCAxNzUsIDgwLCAwLjQpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3NiwgMTc1LCA4MCwgMC40KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC10b3VjaCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gIGNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLm1hdC1hY2NlbnQge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtd2FybiB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZDogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGl2aWRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kaXZpZGVyLXZlcnRpY2FsIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWFjdGlvbi1yb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLCAuZ3JlZW4tdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSwgLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5ncmVlbi10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCk6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICM0MjQyNDI7XG4gIH1cbn1cbi5ncmVlbi10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uLFxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLWluZGljYXRvcjo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUsXG4uZ3JlZW4tdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWhpbnQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC1hY2NlbnQge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC13YXJuIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtYWNjZW50LFxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXJyb3Ige1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1oaW50IHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMzMlLCB0cmFuc3BhcmVudCAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogNHB4IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDMzJSwgdHJhbnNwYXJlbnQgMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDRweCAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi5tYXQtcHJpbWFyeSB7XG4gIGNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi5tYXQtYWNjZW50IHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1pY29uLm1hdC13YXJuIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1pbnB1dC1lbGVtZW50OmRpc2FibGVkLFxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQgb3B0aW9uIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1pbnB1dC1lbGVtZW50IG9wdGlvbjpkaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtd2FybiAubWF0LWlucHV0LWVsZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW0ge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbiB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWxpc3QtYmFzZSAubWF0LXN1YmhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1saXN0LWl0ZW0tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbi5ncmVlbi10aGVtZSAubWF0LWxpc3Qtb3B0aW9uOmhvdmVyLCAuZ3JlZW4tdGhlbWUgLm1hdC1saXN0LW9wdGlvbjpmb2N1cyxcbi5ncmVlbi10aGVtZSAubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLFxuLmdyZWVuLXRoZW1lIC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06Zm9jdXMsXG4uZ3JlZW4tdGhlbWUgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbTpob3Zlcixcbi5ncmVlbi10aGVtZSAubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW1lbnUtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtbWVudS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtbWVudS1pdGVtIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF06OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW1lbnUtaXRlbSAubWF0LWljb24tbm8tY29sb3IsXG4uZ3JlZW4tdGhlbWUgLm1hdC1tZW51LWl0ZW0tc3VibWVudS10cmlnZ2VyOjphZnRlciB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW1lbnUtaXRlbTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4uZ3JlZW4tdGhlbWUgLm1hdC1tZW51LWl0ZW0uY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoW2Rpc2FibGVkXSksXG4uZ3JlZW4tdGhlbWUgLm1hdC1tZW51LWl0ZW0uY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLFxuLmdyZWVuLXRoZW1lIC5tYXQtbWVudS1pdGVtLWhpZ2hsaWdodGVkOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wYWdpbmF0b3Ige1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcGFnaW5hdG9yLFxuLmdyZWVuLXRoZW1lIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1wYWdpbmF0b3ItaW5jcmVtZW50IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHdoaXRlO1xuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXBhZ2luYXRvci1maXJzdCxcbi5ncmVlbi10aGVtZSAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxcbi5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZmlyc3QsXG4uZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItbGFzdCB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjZGNlZGM4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkY2VkYzg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gIGZpbGw6ICNjOGU2Yzk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzhlNmM5O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjYzhlNmM5O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjOGU2Yzk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGUsIC5ncmVlbi10aGVtZSAubWF0LXNwaW5uZXIgY2lyY2xlIHtcbiAgc3Ryb2tlOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSwgLmdyZWVuLXRoZW1lIC5tYXQtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSB7XG4gIHN0cm9rZTogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXdhcm4gY2lyY2xlLCAuZ3JlZW4tdGhlbWUgLm1hdC1zcGlubmVyLm1hdC13YXJuIGNpcmNsZSB7XG4gIHN0cm9rZTogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5OmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsXG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudCAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQ6YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4ubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuOmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUsXG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNlbGVjdC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtdmFsdWUge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNlbGVjdC1wYW5lbCB7XG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zZWxlY3QtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNlbGVjdC1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1wcmltYXJ5IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LXdhcm4gLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1pbnZhbGlkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZHJhd2VyLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMDMwMzA7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRyYXdlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MjQyNDI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRyYXdlci5tYXQtZHJhd2VyLXB1c2gge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZHJhd2VyOm5vdCgubWF0LWRyYXdlci1zaWRlKSB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZHJhd2VyLXNpZGUge1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmQge1xuICBib3JkZXItbGVmdDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSBbZGlyPXJ0bF0gLm1hdC1kcmF3ZXItc2lkZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLmdyZWVuLXRoZW1lIFtkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRlLm1hdC1kcmF3ZXItZW5kIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kcmF3ZXItYmFja2Ryb3AubWF0LWRyYXdlci1zaG93biB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTg5LCAxODksIDE4OSwgMC42KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3NiwgMTc1LCA4MCwgMC41NCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTM5LCAxOTUsIDc0LCAwLjU0KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3NiwgMTc1LCA4MCwgMC41NCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGU6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JkYmRiZDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4uZ3JlZW4tdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXdhcm4gLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5ncmVlbi10aGVtZSAubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDc2LCAxNzUsIDgwLCAwLjIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4uZ3JlZW4tdGhlbWUgLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCxcbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLWRpc2FibGVkOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZy5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyk6aG92ZXIgLm1hdC1zbGlkZXItdGh1bWIsIC5ncmVlbi10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKTpob3Zlci5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iLCAuZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKS5jZGstZm9jdXNlZC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItaGFzLXRpY2tzIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDJweCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LXJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMC4wMDAxZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXN0ZXAtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlci5jZGstcHJvZ3JhbS1mb2N1c2VkLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5ncmVlbi10aGVtZSAubWF0LXN0ZXAtaGVhZGVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwsXG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtb3B0aW9uYWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YmMzNGE7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZXJyb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtYWN0aXZlIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwcGVyLWhvcml6b250YWwsIC5ncmVlbi10aGVtZSAubWF0LXN0ZXBwZXItdmVydGljYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmUge1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmJlZm9yZSxcbi5ncmVlbi10aGVtZSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmFmdGVyLFxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmUge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc29ydC1oZWFkZXItYXJyb3cge1xuICBjb2xvcjogI2M2YzZjNjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciAubWF0LXRhYi1uYXYtYmFyLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciAubWF0LXRhYi1oZWFkZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1sYWJlbCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWxpbmsge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwW2NsYXNzKj1tYXQtYmFja2dyb3VuZC1dIC5tYXQtdGFiLWhlYWRlcixcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyW2NsYXNzKj1tYXQtYmFja2dyb3VuZC1dIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyMCwgMjM3LCAyMDAsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC1pbmstYmFyLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC1pbmstYmFyLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjAwLCAyMzAsIDIwMSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtaW5rLWJhciwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtaW5rLWJhciwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwMCwgMjMwLCAyMDEsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC1pbmstYmFyLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1pbmstYmFyLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjIwLCAyMzcsIDIwMCwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlciwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGlua3MsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlciwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rcywgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluaywgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDAsIDIzMCwgMjAxLCAwLjMpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGlua3MsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rcywgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluaywgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwMCwgMjMwLCAyMDEsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXIsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmtzLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXIsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGlua3MsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmssIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIge1xuICBiYWNrZ3JvdW5kOiAjMjEyMTIxO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10b29sYmFyLm1hdC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzhiYzM0YTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10b29sYmFyLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kOiAjNGNhZjUwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIubWF0LXdhcm4ge1xuICBiYWNrZ3JvdW5kOiAjNGNhZjUwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSxcbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtdmFsdWUsXG4uZ3JlZW4tdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LWFycm93LFxuLmdyZWVuLXRoZW1lIC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2x0aXAge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDk3LCA5NywgOTcsIDAuOSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10cmVlIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRyZWUtbm9kZSxcbi5ncmVlbi10aGVtZSAubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbmFjay1iYXItY29udGFpbmVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5ncmVlbi10aGVtZSBoMSB7XG4gIGNvbG9yOiAjOGJjMzRhO1xufVxuXG4vKiBZb3UgY2FuIGFkZCBnbG9iYWwgc3R5bGVzIHRvIHRoaXMgZmlsZSwgYW5kIGFsc28gaW1wb3J0IG90aGVyIHN0eWxlIGZpbGVzICovXG5odG1sLCBib2R5IHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5mbGV4LXNwYWNlciB7XG4gIGZsZXg6IDEgMSBhdXRvO1xufSIsIlxuLy8gQ3VzdG9tIFRoZW1pbmcgZm9yIEFuZ3VsYXIgTWF0ZXJpYWxcbi8vIEZvciBtb3JlIGluZm9ybWF0aW9uOiBodHRwczovL21hdGVyaWFsLmFuZ3VsYXIuaW8vZ3VpZGUvdGhlbWluZ1xuQGltcG9ydCAnfkBhbmd1bGFyL21hdGVyaWFsL3RoZW1pbmcnO1xuLy8gUGx1cyBpbXBvcnRzIGZvciBvdGhlciBjb21wb25lbnRzIGluIHlvdXIgYXBwLlxuXG4vLyBJbmNsdWRlIHRoZSBjb21tb24gc3R5bGVzIGZvciBBbmd1bGFyIE1hdGVyaWFsLiBXZSBpbmNsdWRlIHRoaXMgaGVyZSBzbyB0aGF0IHlvdSBvbmx5XG4vLyBoYXZlIHRvIGxvYWQgYSBzaW5nbGUgY3NzIGZpbGUgZm9yIEFuZ3VsYXIgTWF0ZXJpYWwgaW4geW91ciBhcHAuXG4vLyBCZSBzdXJlIHRoYXQgeW91IG9ubHkgZXZlciBpbmNsdWRlIHRoaXMgbWl4aW4gb25jZSFcbkBpbmNsdWRlIG1hdC1jb3JlKCk7XG5cbi8vIGltcG9ydGluZyB0aGUgdGhlbWVzIGZyb20gb3VyIHRoZW1lIGZpbGVzXG5AaW1wb3J0IFwiLi90aGVtZXMvc3RhbmRhcmQtdGhlbWVcIjtcbkBpbXBvcnQgXCIuL3RoZW1lcy9ncmVlbi10aGVtZVwiO1xuLy8gSW5jbHVkZSB0aGVtZSBzdHlsZXMgZm9yIGNvcmUgYW5kIGVhY2ggY29tcG9uZW50IHVzZWQgaW4geW91ciBhcHAuXG4vLyBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGltcG9ydCBhbmQgQGluY2x1ZGUgdGhlIHRoZW1lIG1peGlucyBmb3IgZWFjaCBjb21wb25lbnRcbi8vIHRoYXQgeW91IGFyZSB1c2luZy5cblxuLy8gZm9yIG93biBjb21wb25lbnRzLCBpLmUuIG5vbiBtYXRlcmlhbCBjb21wb25lbnQgd2UgbGlrZSB0byB1c2UgdGhlIHNhbWUgc3R5bGUvcGFsZXR0ZXNcblxuXG4uc3RhbmRhcmQtdGhlbWUge1xuICBAaW5jbHVkZSBhbmd1bGFyLW1hdGVyaWFsLXRoZW1lKCRzdGFuZGFyZC10aGVtZSk7XG5cbiAgaDEgeyBjb2xvcjogbWF0LWNvbG9yKCRzdGFuZGFyZC10aGVtZS1wcmltYXJ5KX1cbn1cbi5ncmVlbi10aGVtZSB7XG4gIEBpbmNsdWRlIGFuZ3VsYXItbWF0ZXJpYWwtdGhlbWUoJGdyZWVuLXRoZW1lKTtcblxuICBoMSB7IGNvbG9yOiBtYXQtY29sb3IoJGdyZWVuLXRoZW1lLXByaW1hcnkpfVxufVxuXG5cbi8qIFlvdSBjYW4gYWRkIGdsb2JhbCBzdHlsZXMgdG8gdGhpcyBmaWxlLCBhbmQgYWxzbyBpbXBvcnQgb3RoZXIgc3R5bGUgZmlsZXMgKi9cblxuXG5odG1sLCBib2R5IHsgaGVpZ2h0OiAxMDAlOyB9XG5ib2R5IHsgbWFyZ2luOiAwOyBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7IH1cblxuLmZsZXgtc3BhY2VyIHtcbiAgZmxleDogMSAxIGF1dG87XG59XG5cblxuXG4iXX0= */", '', '']]
/***/ }),
/***/ "./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 <style>
// tags it will allow on a page
if (!options.singleton && typeof options.singleton !== 'boolean') {
options.singleton = isOldIE();
}
var styles = listToStyles(list, options);
addStylesToDom(styles, options);
return function update(newList) {
var mayRemove = [];
for (var i = 0; i < styles.length; i++) {
var item = styles[i];
var domStyle = stylesInDom[item.id];
if (domStyle) {
domStyle.refs--;
mayRemove.push(domStyle);
}
}
if (newList) {
var newStyles = listToStyles(newList, options);
addStylesToDom(newStyles, options);
}
for (var _i = 0; _i < mayRemove.length; _i++) {
var _domStyle = mayRemove[_i];
if (_domStyle.refs === 0) {
for (var j = 0; j < _domStyle.parts.length; j++) {
_domStyle.parts[j]();
}
delete stylesInDom[_domStyle.id];
}
}
};
};
/***/ }),
/***/ "./src/styles.scss":
/*!*************************!*\
!*** ./src/styles.scss ***!
\*************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
var content = __webpack_require__(/*! !../node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!../node_modules/postcss-loader/src??embedded!../node_modules/sass-loader/lib/loader.js??ref--15-3!./styles.scss */ "./node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./src/styles.scss");
if (typeof content === 'string') {
content = [[module.i, content, '']];
}
var options = {}
options.insert = "head";
options.singleton = false;
var update = __webpack_require__(/*! ../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js")(content, options);
if (content.locals) {
module.exports = content.locals;
}
/***/ }),
/***/ 5:
/*!*******************************!*\
!*** multi ./src/styles.scss ***!
\*******************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(/*! /data/home/knister0/githubs/NietzscheBeta/nietzsche-beta-app/src/styles.scss */"./src/styles.scss");
/***/ })
},[[5,"runtime"]]]);
//# sourceMappingURL=styles-es2015.js.map
\ No newline at end of file
diff --git a/nietzsche-beta-app/dist/nietzsche-beta-app/styles-es2015.js.map b/nietzsche-beta-app/dist/nietzsche-beta-app/styles-es2015.js.map
index c472f57..664b6bc 100644
--- a/nietzsche-beta-app/dist/nietzsche-beta-app/styles-es2015.js.map
+++ b/nietzsche-beta-app/dist/nietzsche-beta-app/styles-es2015.js.map
@@ -1 +1 @@
-{"version":3,"sources":["./src/styles.scss","./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///./src/styles.scss?530d"],"names":[],"mappings":"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;AACnC;AACA;AACA,KAAK;AACL;;AAEA,YAAY,uBAAuB;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,KAAwC,GAAG,sBAAiB,GAAG,SAAI;;AAEnF;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,kCAAkC;;AAElC;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yDAAyD;AACzD,GAAG;;AAEH;;;AAGA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,wFAAwF;AACxF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,mBAAmB,mBAAmB;AACtC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAoB,uBAAuB;AAC3C;;AAEA;AACA,uBAAuB,4BAA4B;AACnD;AACA;;AAEA;AACA;AACA;AACA;AACA,E;;;;;;;;;;;ACzRA,cAAc,mBAAO,CAAC,4ZAA0N;;AAEhP;AACA,cAAc,QAAS;AACvB;;AAEA;;AAEA;AACA;;AAEA,aAAa,mBAAO,CAAC,mJAAwE;;AAE7F;AACA;AACA","file":"styles-es2015.js","sourcesContent":["module.exports = [[module.id, \"/* Theme for the ripple elements.*/\\n/* stylelint-disable material/no-prefixes */\\n/* stylelint-enable */\\n.mat-badge-content {\\n font-weight: 600;\\n font-size: 12px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-badge-small .mat-badge-content {\\n font-size: 9px;\\n}\\n.mat-badge-large .mat-badge-content {\\n font-size: 24px;\\n}\\n.mat-h1, .mat-headline, .mat-typography h1 {\\n font: 400 24px/32px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.mat-h2, .mat-title, .mat-typography h2 {\\n font: 500 20px/32px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.mat-h3, .mat-subheading-2, .mat-typography h3 {\\n font: 400 16px/28px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.mat-h4, .mat-subheading-1, .mat-typography h4 {\\n font: 400 15px/24px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.mat-h5, .mat-typography h5 {\\n font: 400 calc(14px * 0.83)/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 12px;\\n}\\n.mat-h6, .mat-typography h6 {\\n font: 400 calc(14px * 0.67)/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 12px;\\n}\\n.mat-body-strong, .mat-body-2 {\\n font: 500 14px/24px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-body, .mat-body-1, .mat-typography {\\n font: 400 14px/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-body p, .mat-body-1 p, .mat-typography p {\\n margin: 0 0 12px;\\n}\\n.mat-small, .mat-caption {\\n font: 400 12px/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-display-4, .mat-typography .mat-display-4 {\\n font: 300 112px/112px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n letter-spacing: -0.05em;\\n margin: 0 0 56px;\\n}\\n.mat-display-3, .mat-typography .mat-display-3 {\\n font: 400 56px/56px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n letter-spacing: -0.02em;\\n margin: 0 0 64px;\\n}\\n.mat-display-2, .mat-typography .mat-display-2 {\\n font: 400 45px/48px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n letter-spacing: -0.005em;\\n margin: 0 0 64px;\\n}\\n.mat-display-1, .mat-typography .mat-display-1 {\\n font: 400 34px/40px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 64px;\\n}\\n.mat-bottom-sheet-container {\\n font: 400 14px/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-button, .mat-raised-button, .mat-icon-button, .mat-stroked-button,\\n.mat-flat-button, .mat-fab, .mat-mini-fab {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-button-toggle {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-card {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-card-title {\\n font-size: 24px;\\n font-weight: 500;\\n}\\n.mat-card-header .mat-card-title {\\n font-size: 20px;\\n}\\n.mat-card-subtitle,\\n.mat-card-content {\\n font-size: 14px;\\n}\\n.mat-checkbox {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-checkbox-layout .mat-checkbox-label {\\n line-height: 24px;\\n}\\n.mat-chip {\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-chip .mat-chip-trailing-icon.mat-icon,\\n.mat-chip .mat-chip-remove.mat-icon {\\n font-size: 18px;\\n}\\n.mat-table {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-header-cell {\\n font-size: 12px;\\n font-weight: 500;\\n}\\n.mat-cell, .mat-footer-cell {\\n font-size: 14px;\\n}\\n.mat-calendar {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-calendar-body {\\n font-size: 13px;\\n}\\n.mat-calendar-body-label,\\n.mat-calendar-period-button {\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-calendar-table-header th {\\n font-size: 11px;\\n font-weight: 400;\\n}\\n.mat-dialog-title {\\n font: 500 20px/32px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-expansion-panel-header {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 15px;\\n font-weight: 400;\\n}\\n.mat-expansion-panel-content {\\n font: 400 14px/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-form-field {\\n font-size: inherit;\\n font-weight: 400;\\n line-height: 1.125;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-form-field-wrapper {\\n padding-bottom: 1.34375em;\\n}\\n.mat-form-field-prefix .mat-icon,\\n.mat-form-field-suffix .mat-icon {\\n font-size: 150%;\\n line-height: 1.125;\\n}\\n.mat-form-field-prefix .mat-icon-button,\\n.mat-form-field-suffix .mat-icon-button {\\n height: 1.5em;\\n width: 1.5em;\\n}\\n.mat-form-field-prefix .mat-icon-button .mat-icon,\\n.mat-form-field-suffix .mat-icon-button .mat-icon {\\n height: 1.125em;\\n line-height: 1.125;\\n}\\n.mat-form-field-infix {\\n padding: 0.5em 0;\\n border-top: 0.84375em solid transparent;\\n}\\n.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.34375em) scale(0.75);\\n width: 133.3333333333%;\\n}\\n.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.34374em) scale(0.75);\\n width: 133.3333433333%;\\n}\\n.mat-form-field-label-wrapper {\\n top: -0.84375em;\\n padding-top: 0.84375em;\\n}\\n.mat-form-field-label {\\n top: 1.34375em;\\n}\\n.mat-form-field-underline {\\n bottom: 1.34375em;\\n}\\n.mat-form-field-subscript-wrapper {\\n font-size: 75%;\\n margin-top: 0.6666666667em;\\n top: calc(100% - 1.7916666667em);\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-wrapper {\\n padding-bottom: 1.25em;\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-infix {\\n padding: 0.4375em 0;\\n}\\n.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);\\n -ms-transform: translateY(-1.28125em) scale(0.75);\\n width: 133.3333333333%;\\n}\\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);\\n -ms-transform: translateY(-1.28124em) scale(0.75);\\n width: 133.3333433333%;\\n}\\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);\\n -ms-transform: translateY(-1.28123em) scale(0.75);\\n width: 133.3333533333%;\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-label {\\n top: 1.28125em;\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-underline {\\n bottom: 1.25em;\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper {\\n margin-top: 0.5416666667em;\\n top: calc(100% - 1.6666666667em);\\n}\\n@media print {\\n .mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28122em) scale(0.75);\\n }\\n .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28121em) scale(0.75);\\n }\\n .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.2812em) scale(0.75);\\n }\\n}\\n.mat-form-field-appearance-fill .mat-form-field-infix {\\n padding: 0.25em 0 0.75em 0;\\n}\\n.mat-form-field-appearance-fill .mat-form-field-label {\\n top: 1.09375em;\\n margin-top: -0.5em;\\n}\\n.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-0.59375em) scale(0.75);\\n width: 133.3333333333%;\\n}\\n.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-0.59374em) scale(0.75);\\n width: 133.3333433333%;\\n}\\n.mat-form-field-appearance-outline .mat-form-field-infix {\\n padding: 1em 0 1em 0;\\n}\\n.mat-form-field-appearance-outline .mat-form-field-label {\\n top: 1.84375em;\\n margin-top: -0.25em;\\n}\\n.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.59375em) scale(0.75);\\n width: 133.3333333333%;\\n}\\n.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.59374em) scale(0.75);\\n width: 133.3333433333%;\\n}\\n.mat-grid-tile-header,\\n.mat-grid-tile-footer {\\n font-size: 14px;\\n}\\n.mat-grid-tile-header .mat-line,\\n.mat-grid-tile-footer .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.mat-grid-tile-header .mat-line:nth-child(n+2),\\n.mat-grid-tile-footer .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\ninput.mat-input-element {\\n margin-top: -0.0625em;\\n}\\n.mat-menu-item {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 400;\\n}\\n.mat-paginator,\\n.mat-paginator-page-size .mat-select-trigger {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n}\\n.mat-radio-button {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-select {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-select-trigger {\\n height: 1.125em;\\n}\\n.mat-slide-toggle-content {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-slider-thumb-label-text {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 500;\\n}\\n.mat-stepper-vertical, .mat-stepper-horizontal {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-step-label {\\n font-size: 14px;\\n font-weight: 400;\\n}\\n.mat-step-sub-label-error {\\n font-weight: normal;\\n}\\n.mat-step-label-error {\\n font-size: 14px;\\n}\\n.mat-step-label-selected {\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-tab-group {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-tab-label, .mat-tab-link {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-toolbar,\\n.mat-toolbar h1,\\n.mat-toolbar h2,\\n.mat-toolbar h3,\\n.mat-toolbar h4,\\n.mat-toolbar h5,\\n.mat-toolbar h6 {\\n font: 500 20px/32px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0;\\n}\\n.mat-tooltip {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 10px;\\n padding-top: 6px;\\n padding-bottom: 6px;\\n}\\n.mat-tooltip-handset {\\n font-size: 14px;\\n padding-top: 8px;\\n padding-bottom: 8px;\\n}\\n.mat-list-item {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-list-option {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-list-base .mat-list-item {\\n font-size: 16px;\\n}\\n.mat-list-base .mat-list-item .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.mat-list-base .mat-list-item .mat-line:nth-child(n+2) {\\n font-size: 14px;\\n}\\n.mat-list-base .mat-list-option {\\n font-size: 16px;\\n}\\n.mat-list-base .mat-list-option .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.mat-list-base .mat-list-option .mat-line:nth-child(n+2) {\\n font-size: 14px;\\n}\\n.mat-list-base .mat-subheader {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-list-base[dense] .mat-list-item {\\n font-size: 12px;\\n}\\n.mat-list-base[dense] .mat-list-item .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\n.mat-list-base[dense] .mat-list-option {\\n font-size: 12px;\\n}\\n.mat-list-base[dense] .mat-list-option .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\n.mat-list-base[dense] .mat-subheader {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 500;\\n}\\n.mat-option {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 16px;\\n}\\n.mat-optgroup-label {\\n font: 500 14px/24px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-simple-snackbar {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n}\\n.mat-simple-snackbar-action {\\n line-height: 1;\\n font-family: inherit;\\n font-size: inherit;\\n font-weight: 500;\\n}\\n.mat-tree {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-tree-node,\\n.mat-nested-tree-node {\\n font-weight: 400;\\n font-size: 14px;\\n}\\n.mat-ripple {\\n overflow: hidden;\\n position: relative;\\n}\\n.mat-ripple.mat-ripple-unbounded {\\n overflow: visible;\\n}\\n.mat-ripple-element {\\n position: absolute;\\n border-radius: 50%;\\n pointer-events: none;\\n transition: opacity, transform 0ms cubic-bezier(0, 0, 0.2, 1);\\n transform: scale(0);\\n}\\n@media (-ms-high-contrast: active) {\\n .mat-ripple-element {\\n display: none;\\n }\\n}\\n.cdk-visually-hidden {\\n border: 0;\\n clip: rect(0 0 0 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px;\\n outline: 0;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n}\\n.cdk-overlay-container, .cdk-global-overlay-wrapper {\\n pointer-events: none;\\n top: 0;\\n left: 0;\\n height: 100%;\\n width: 100%;\\n}\\n.cdk-overlay-container {\\n position: fixed;\\n z-index: 1000;\\n}\\n.cdk-overlay-container:empty {\\n display: none;\\n}\\n.cdk-global-overlay-wrapper {\\n display: flex;\\n position: absolute;\\n z-index: 1000;\\n}\\n.cdk-overlay-pane {\\n position: absolute;\\n pointer-events: auto;\\n box-sizing: border-box;\\n z-index: 1000;\\n display: flex;\\n max-width: 100%;\\n max-height: 100%;\\n}\\n.cdk-overlay-backdrop {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n z-index: 1000;\\n pointer-events: auto;\\n -webkit-tap-highlight-color: transparent;\\n transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);\\n opacity: 0;\\n}\\n.cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\\n opacity: 1;\\n}\\n@media screen and (-ms-high-contrast: active) {\\n .cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\\n opacity: 0.6;\\n }\\n}\\n.cdk-overlay-dark-backdrop {\\n background: rgba(0, 0, 0, 0.32);\\n}\\n.cdk-overlay-transparent-backdrop, .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {\\n opacity: 0;\\n}\\n.cdk-overlay-connected-position-bounding-box {\\n position: absolute;\\n z-index: 1000;\\n display: flex;\\n flex-direction: column;\\n min-width: 1px;\\n min-height: 1px;\\n}\\n.cdk-global-scrollblock {\\n position: fixed;\\n width: 100%;\\n overflow-y: scroll;\\n}\\n@-webkit-keyframes cdk-text-field-autofill-start {\\n /*!*/\\n}\\n@keyframes cdk-text-field-autofill-start {\\n /*!*/\\n}\\n@-webkit-keyframes cdk-text-field-autofill-end {\\n /*!*/\\n}\\n@keyframes cdk-text-field-autofill-end {\\n /*!*/\\n}\\n.cdk-text-field-autofill-monitored:-webkit-autofill {\\n -webkit-animation-name: cdk-text-field-autofill-start;\\n animation-name: cdk-text-field-autofill-start;\\n}\\n.cdk-text-field-autofill-monitored:not(:-webkit-autofill) {\\n -webkit-animation-name: cdk-text-field-autofill-end;\\n animation-name: cdk-text-field-autofill-end;\\n}\\ntextarea.cdk-textarea-autosize {\\n resize: none;\\n}\\ntextarea.cdk-textarea-autosize-measuring {\\n height: auto !important;\\n overflow: hidden !important;\\n padding: 2px 0 !important;\\n box-sizing: content-box !important;\\n}\\n.standard-theme .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n.standard-theme .mat-option {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-option:hover:not(.mat-option-disabled), .standard-theme .mat-option:focus:not(.mat-option-disabled) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.standard-theme .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.standard-theme .mat-option.mat-active {\\n background: rgba(0, 0, 0, 0.04);\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-option.mat-option-disabled {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #607d8b;\\n}\\n.standard-theme .mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #448aff;\\n}\\n.standard-theme .mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #f44336;\\n}\\n.standard-theme .mat-optgroup-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-optgroup-disabled .mat-optgroup-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-pseudo-checkbox {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-pseudo-checkbox::after {\\n color: #fafafa;\\n}\\n.standard-theme .mat-pseudo-checkbox-disabled {\\n color: #b0b0b0;\\n}\\n.standard-theme .mat-primary .mat-pseudo-checkbox-checked,\\n.standard-theme .mat-primary .mat-pseudo-checkbox-indeterminate {\\n background: #607d8b;\\n}\\n.standard-theme .mat-pseudo-checkbox-checked,\\n.standard-theme .mat-pseudo-checkbox-indeterminate,\\n.standard-theme .mat-accent .mat-pseudo-checkbox-checked,\\n.standard-theme .mat-accent .mat-pseudo-checkbox-indeterminate {\\n background: #448aff;\\n}\\n.standard-theme .mat-warn .mat-pseudo-checkbox-checked,\\n.standard-theme .mat-warn .mat-pseudo-checkbox-indeterminate {\\n background: #f44336;\\n}\\n.standard-theme .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,\\n.standard-theme .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {\\n background: #b0b0b0;\\n}\\n.standard-theme .mat-elevation-z0 {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z1 {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z2 {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z3 {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z4 {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z5 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z6 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z7 {\\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z8 {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z9 {\\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z10 {\\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z11 {\\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z12 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z13 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z14 {\\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z15 {\\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z16 {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z17 {\\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z18 {\\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z19 {\\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z20 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z21 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z22 {\\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z23 {\\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z24 {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-app-background, .standard-theme.mat-app-background {\\n background-color: #fafafa;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-theme-loaded-marker {\\n display: none;\\n}\\n.standard-theme .mat-autocomplete-panel {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-autocomplete-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {\\n background: white;\\n}\\n.standard-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-badge-content {\\n color: white;\\n background: #607d8b;\\n}\\n@media (-ms-high-contrast: active) {\\n .standard-theme .mat-badge-content {\\n outline: solid 1px;\\n border-radius: 0;\\n }\\n}\\n.standard-theme .mat-badge-accent .mat-badge-content {\\n background: #448aff;\\n color: white;\\n}\\n.standard-theme .mat-badge-warn .mat-badge-content {\\n color: white;\\n background: #f44336;\\n}\\n.standard-theme .mat-badge {\\n position: relative;\\n}\\n.standard-theme .mat-badge-hidden .mat-badge-content {\\n display: none;\\n}\\n.standard-theme .mat-badge-disabled .mat-badge-content {\\n background: #b9b9b9;\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-badge-content {\\n position: absolute;\\n text-align: center;\\n display: inline-block;\\n border-radius: 50%;\\n transition: transform 200ms ease-in-out;\\n transform: scale(0.6);\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n pointer-events: none;\\n}\\n.standard-theme .ng-animate-disabled .mat-badge-content,\\n.standard-theme .mat-badge-content._mat-animation-noopable {\\n transition: none;\\n}\\n.standard-theme .mat-badge-content.mat-badge-active {\\n transform: none;\\n}\\n.standard-theme .mat-badge-small .mat-badge-content {\\n width: 16px;\\n height: 16px;\\n line-height: 16px;\\n}\\n.standard-theme .mat-badge-small.mat-badge-above .mat-badge-content {\\n top: -8px;\\n}\\n.standard-theme .mat-badge-small.mat-badge-below .mat-badge-content {\\n bottom: -8px;\\n}\\n.standard-theme .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: -16px;\\n}\\n[dir=rtl] .standard-theme .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -16px;\\n}\\n.standard-theme .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: -16px;\\n}\\n[dir=rtl] .standard-theme .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -16px;\\n}\\n.standard-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -8px;\\n}\\n[dir=rtl] .standard-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -8px;\\n}\\n.standard-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -8px;\\n}\\n[dir=rtl] .standard-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -8px;\\n}\\n.standard-theme .mat-badge-medium .mat-badge-content {\\n width: 22px;\\n height: 22px;\\n line-height: 22px;\\n}\\n.standard-theme .mat-badge-medium.mat-badge-above .mat-badge-content {\\n top: -11px;\\n}\\n.standard-theme .mat-badge-medium.mat-badge-below .mat-badge-content {\\n bottom: -11px;\\n}\\n.standard-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: -22px;\\n}\\n[dir=rtl] .standard-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -22px;\\n}\\n.standard-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: -22px;\\n}\\n[dir=rtl] .standard-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -22px;\\n}\\n.standard-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -11px;\\n}\\n[dir=rtl] .standard-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -11px;\\n}\\n.standard-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -11px;\\n}\\n[dir=rtl] .standard-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -11px;\\n}\\n.standard-theme .mat-badge-large .mat-badge-content {\\n width: 28px;\\n height: 28px;\\n line-height: 28px;\\n}\\n.standard-theme .mat-badge-large.mat-badge-above .mat-badge-content {\\n top: -14px;\\n}\\n.standard-theme .mat-badge-large.mat-badge-below .mat-badge-content {\\n bottom: -14px;\\n}\\n.standard-theme .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: -28px;\\n}\\n[dir=rtl] .standard-theme .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -28px;\\n}\\n.standard-theme .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: -28px;\\n}\\n[dir=rtl] .standard-theme .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -28px;\\n}\\n.standard-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -14px;\\n}\\n[dir=rtl] .standard-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -14px;\\n}\\n.standard-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -14px;\\n}\\n[dir=rtl] .standard-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -14px;\\n}\\n.standard-theme .mat-bottom-sheet-container {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-button, .standard-theme .mat-icon-button, .standard-theme .mat-stroked-button {\\n color: inherit;\\n background: transparent;\\n}\\n.standard-theme .mat-button.mat-primary, .standard-theme .mat-icon-button.mat-primary, .standard-theme .mat-stroked-button.mat-primary {\\n color: #607d8b;\\n}\\n.standard-theme .mat-button.mat-accent, .standard-theme .mat-icon-button.mat-accent, .standard-theme .mat-stroked-button.mat-accent {\\n color: #448aff;\\n}\\n.standard-theme .mat-button.mat-warn, .standard-theme .mat-icon-button.mat-warn, .standard-theme .mat-stroked-button.mat-warn {\\n color: #f44336;\\n}\\n.standard-theme .mat-button.mat-primary[disabled], .standard-theme .mat-button.mat-accent[disabled], .standard-theme .mat-button.mat-warn[disabled], .standard-theme .mat-button[disabled][disabled], .standard-theme .mat-icon-button.mat-primary[disabled], .standard-theme .mat-icon-button.mat-accent[disabled], .standard-theme .mat-icon-button.mat-warn[disabled], .standard-theme .mat-icon-button[disabled][disabled], .standard-theme .mat-stroked-button.mat-primary[disabled], .standard-theme .mat-stroked-button.mat-accent[disabled], .standard-theme .mat-stroked-button.mat-warn[disabled], .standard-theme .mat-stroked-button[disabled][disabled] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n.standard-theme .mat-button.mat-primary .mat-button-focus-overlay, .standard-theme .mat-icon-button.mat-primary .mat-button-focus-overlay, .standard-theme .mat-stroked-button.mat-primary .mat-button-focus-overlay {\\n background-color: #607d8b;\\n}\\n.standard-theme .mat-button.mat-accent .mat-button-focus-overlay, .standard-theme .mat-icon-button.mat-accent .mat-button-focus-overlay, .standard-theme .mat-stroked-button.mat-accent .mat-button-focus-overlay {\\n background-color: #448aff;\\n}\\n.standard-theme .mat-button.mat-warn .mat-button-focus-overlay, .standard-theme .mat-icon-button.mat-warn .mat-button-focus-overlay, .standard-theme .mat-stroked-button.mat-warn .mat-button-focus-overlay {\\n background-color: #f44336;\\n}\\n.standard-theme .mat-button[disabled] .mat-button-focus-overlay, .standard-theme .mat-icon-button[disabled] .mat-button-focus-overlay, .standard-theme .mat-stroked-button[disabled] .mat-button-focus-overlay {\\n background-color: transparent;\\n}\\n.standard-theme .mat-button .mat-ripple-element, .standard-theme .mat-icon-button .mat-ripple-element, .standard-theme .mat-stroked-button .mat-ripple-element {\\n opacity: 0.1;\\n background-color: currentColor;\\n}\\n.standard-theme .mat-button-focus-overlay {\\n background: black;\\n}\\n.standard-theme .mat-stroked-button:not([disabled]) {\\n border-color: rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-flat-button, .standard-theme .mat-raised-button, .standard-theme .mat-fab, .standard-theme .mat-mini-fab {\\n color: rgba(0, 0, 0, 0.87);\\n background-color: white;\\n}\\n.standard-theme .mat-flat-button.mat-primary, .standard-theme .mat-raised-button.mat-primary, .standard-theme .mat-fab.mat-primary, .standard-theme .mat-mini-fab.mat-primary {\\n color: white;\\n}\\n.standard-theme .mat-flat-button.mat-accent, .standard-theme .mat-raised-button.mat-accent, .standard-theme .mat-fab.mat-accent, .standard-theme .mat-mini-fab.mat-accent {\\n color: white;\\n}\\n.standard-theme .mat-flat-button.mat-warn, .standard-theme .mat-raised-button.mat-warn, .standard-theme .mat-fab.mat-warn, .standard-theme .mat-mini-fab.mat-warn {\\n color: white;\\n}\\n.standard-theme .mat-flat-button.mat-primary[disabled], .standard-theme .mat-flat-button.mat-accent[disabled], .standard-theme .mat-flat-button.mat-warn[disabled], .standard-theme .mat-flat-button[disabled][disabled], .standard-theme .mat-raised-button.mat-primary[disabled], .standard-theme .mat-raised-button.mat-accent[disabled], .standard-theme .mat-raised-button.mat-warn[disabled], .standard-theme .mat-raised-button[disabled][disabled], .standard-theme .mat-fab.mat-primary[disabled], .standard-theme .mat-fab.mat-accent[disabled], .standard-theme .mat-fab.mat-warn[disabled], .standard-theme .mat-fab[disabled][disabled], .standard-theme .mat-mini-fab.mat-primary[disabled], .standard-theme .mat-mini-fab.mat-accent[disabled], .standard-theme .mat-mini-fab.mat-warn[disabled], .standard-theme .mat-mini-fab[disabled][disabled] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n.standard-theme .mat-flat-button.mat-primary, .standard-theme .mat-raised-button.mat-primary, .standard-theme .mat-fab.mat-primary, .standard-theme .mat-mini-fab.mat-primary {\\n background-color: #607d8b;\\n}\\n.standard-theme .mat-flat-button.mat-accent, .standard-theme .mat-raised-button.mat-accent, .standard-theme .mat-fab.mat-accent, .standard-theme .mat-mini-fab.mat-accent {\\n background-color: #448aff;\\n}\\n.standard-theme .mat-flat-button.mat-warn, .standard-theme .mat-raised-button.mat-warn, .standard-theme .mat-fab.mat-warn, .standard-theme .mat-mini-fab.mat-warn {\\n background-color: #f44336;\\n}\\n.standard-theme .mat-flat-button.mat-primary[disabled], .standard-theme .mat-flat-button.mat-accent[disabled], .standard-theme .mat-flat-button.mat-warn[disabled], .standard-theme .mat-flat-button[disabled][disabled], .standard-theme .mat-raised-button.mat-primary[disabled], .standard-theme .mat-raised-button.mat-accent[disabled], .standard-theme .mat-raised-button.mat-warn[disabled], .standard-theme .mat-raised-button[disabled][disabled], .standard-theme .mat-fab.mat-primary[disabled], .standard-theme .mat-fab.mat-accent[disabled], .standard-theme .mat-fab.mat-warn[disabled], .standard-theme .mat-fab[disabled][disabled], .standard-theme .mat-mini-fab.mat-primary[disabled], .standard-theme .mat-mini-fab.mat-accent[disabled], .standard-theme .mat-mini-fab.mat-warn[disabled], .standard-theme .mat-mini-fab[disabled][disabled] {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-flat-button.mat-primary .mat-ripple-element, .standard-theme .mat-raised-button.mat-primary .mat-ripple-element, .standard-theme .mat-fab.mat-primary .mat-ripple-element, .standard-theme .mat-mini-fab.mat-primary .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.standard-theme .mat-flat-button.mat-accent .mat-ripple-element, .standard-theme .mat-raised-button.mat-accent .mat-ripple-element, .standard-theme .mat-fab.mat-accent .mat-ripple-element, .standard-theme .mat-mini-fab.mat-accent .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.standard-theme .mat-flat-button.mat-warn .mat-ripple-element, .standard-theme .mat-raised-button.mat-warn .mat-ripple-element, .standard-theme .mat-fab.mat-warn .mat-ripple-element, .standard-theme .mat-mini-fab.mat-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.standard-theme .mat-stroked-button:not([class*=mat-elevation-z]), .standard-theme .mat-flat-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-raised-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-raised-button[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-fab:not([class*=mat-elevation-z]), .standard-theme .mat-mini-fab:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-fab:not([disabled]):active:not([class*=mat-elevation-z]), .standard-theme .mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-fab[disabled]:not([class*=mat-elevation-z]), .standard-theme .mat-mini-fab[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-button-toggle-standalone,\\n.standard-theme .mat-button-toggle-group {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.standard-theme .mat-button-toggle-group-appearance-standard {\\n box-shadow: none;\\n}\\n.standard-theme .mat-button-toggle {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-button-toggle .mat-button-toggle-focus-overlay {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-button-toggle-appearance-standard {\\n color: rgba(0, 0, 0, 0.87);\\n background: white;\\n}\\n.standard-theme .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {\\n background-color: black;\\n}\\n.standard-theme .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: none;\\n border-top: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-button-toggle-checked {\\n background-color: #e0e0e0;\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-button-toggle-checked.mat-button-toggle-appearance-standard {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-button-toggle-disabled {\\n color: rgba(0, 0, 0, 0.26);\\n background-color: #eeeeee;\\n}\\n.standard-theme .mat-button-toggle-disabled.mat-button-toggle-appearance-standard {\\n background: white;\\n}\\n.standard-theme .mat-button-toggle-disabled.mat-button-toggle-checked {\\n background-color: #bdbdbd;\\n}\\n.standard-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.standard-theme .mat-button-toggle-group-appearance-standard {\\n border: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-card {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-card:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-card.mat-card-flat:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-card-subtitle {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-checkbox-frame {\\n border-color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-checkbox-checkmark {\\n fill: #fafafa;\\n}\\n.standard-theme .mat-checkbox-checkmark-path {\\n stroke: #fafafa !important;\\n}\\n@media (-ms-high-contrast: black-on-white) {\\n .standard-theme .mat-checkbox-checkmark-path {\\n stroke: #000 !important;\\n }\\n}\\n.standard-theme .mat-checkbox-mixedmark {\\n background-color: #fafafa;\\n}\\n.standard-theme .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .standard-theme .mat-checkbox-checked.mat-primary .mat-checkbox-background {\\n background-color: #607d8b;\\n}\\n.standard-theme .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .standard-theme .mat-checkbox-checked.mat-accent .mat-checkbox-background {\\n background-color: #448aff;\\n}\\n.standard-theme .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .standard-theme .mat-checkbox-checked.mat-warn .mat-checkbox-background {\\n background-color: #f44336;\\n}\\n.standard-theme .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .standard-theme .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {\\n background-color: #b0b0b0;\\n}\\n.standard-theme .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {\\n border-color: #b0b0b0;\\n}\\n.standard-theme .mat-checkbox-disabled .mat-checkbox-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n@media (-ms-high-contrast: active) {\\n .standard-theme .mat-checkbox-disabled {\\n opacity: 0.5;\\n }\\n}\\n@media (-ms-high-contrast: active) {\\n .standard-theme .mat-checkbox-background {\\n background: none;\\n }\\n}\\n.standard-theme .mat-checkbox .mat-ripple-element {\\n background-color: black;\\n}\\n.standard-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,\\n.standard-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {\\n background: #607d8b;\\n}\\n.standard-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,\\n.standard-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {\\n background: #448aff;\\n}\\n.standard-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,\\n.standard-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {\\n background: #f44336;\\n}\\n.standard-theme .mat-chip.mat-standard-chip {\\n background-color: #e0e0e0;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-chip.mat-standard-chip .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n.standard-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {\\n opacity: 0.54;\\n}\\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-disabled {\\n opacity: 0.4;\\n}\\n.standard-theme .mat-chip.mat-standard-chip::after {\\n background: black;\\n}\\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {\\n background-color: #607d8b;\\n color: white;\\n}\\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {\\n background-color: #f44336;\\n color: white;\\n}\\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {\\n background-color: #448aff;\\n color: white;\\n}\\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n.standard-theme .mat-table {\\n background: white;\\n}\\n.standard-theme .mat-table thead, .standard-theme .mat-table tbody, .standard-theme .mat-table tfoot,\\n.standard-theme mat-header-row, .standard-theme mat-row, .standard-theme mat-footer-row,\\n.standard-theme [mat-header-row], .standard-theme [mat-row], .standard-theme [mat-footer-row],\\n.standard-theme .mat-table-sticky {\\n background: inherit;\\n}\\n.standard-theme mat-row, .standard-theme mat-header-row, .standard-theme mat-footer-row,\\n.standard-theme th.mat-header-cell, .standard-theme td.mat-cell, .standard-theme td.mat-footer-cell {\\n border-bottom-color: rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-header-cell {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-cell, .standard-theme .mat-footer-cell {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-calendar-arrow {\\n border-top-color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-datepicker-toggle,\\n.standard-theme .mat-datepicker-content .mat-calendar-next-button,\\n.standard-theme .mat-datepicker-content .mat-calendar-previous-button {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-calendar-table-header {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-calendar-table-header-divider::after {\\n background: rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-calendar-body-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-calendar-body-cell-content {\\n color: rgba(0, 0, 0, 0.87);\\n border-color: transparent;\\n}\\n.standard-theme .mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.standard-theme .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.standard-theme .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n.standard-theme .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(0, 0, 0, 0.18);\\n}\\n.standard-theme .mat-calendar-body-selected {\\n background-color: #607d8b;\\n color: white;\\n}\\n.standard-theme .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(96, 125, 139, 0.4);\\n}\\n.standard-theme .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px white;\\n}\\n.standard-theme .mat-datepicker-content {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n background-color: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-datepicker-content.mat-accent .mat-calendar-body-selected {\\n background-color: #448aff;\\n color: white;\\n}\\n.standard-theme .mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(68, 138, 255, 0.4);\\n}\\n.standard-theme .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px white;\\n}\\n.standard-theme .mat-datepicker-content.mat-warn .mat-calendar-body-selected {\\n background-color: #f44336;\\n color: white;\\n}\\n.standard-theme .mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(244, 67, 54, 0.4);\\n}\\n.standard-theme .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px white;\\n}\\n.standard-theme .mat-datepicker-content-touch {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-datepicker-toggle-active {\\n color: #607d8b;\\n}\\n.standard-theme .mat-datepicker-toggle-active.mat-accent {\\n color: #448aff;\\n}\\n.standard-theme .mat-datepicker-toggle-active.mat-warn {\\n color: #f44336;\\n}\\n.standard-theme .mat-dialog-container {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-divider {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-divider-vertical {\\n border-right-color: rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-expansion-panel {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-expansion-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-action-row {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]), .standard-theme .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]), .standard-theme .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n@media (hover: none) {\\n .standard-theme .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover {\\n background: white;\\n }\\n}\\n.standard-theme .mat-expansion-panel-header-title {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-expansion-panel-header-description,\\n.standard-theme .mat-expansion-indicator::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-expansion-panel-header[aria-disabled=true] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n.standard-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,\\n.standard-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description {\\n color: inherit;\\n}\\n.standard-theme .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.6);\\n}\\n.standard-theme .mat-hint {\\n color: rgba(0, 0, 0, 0.6);\\n}\\n.standard-theme .mat-form-field.mat-focused .mat-form-field-label {\\n color: #607d8b;\\n}\\n.standard-theme .mat-form-field.mat-focused .mat-form-field-label.mat-accent {\\n color: #448aff;\\n}\\n.standard-theme .mat-form-field.mat-focused .mat-form-field-label.mat-warn {\\n color: #f44336;\\n}\\n.standard-theme .mat-focused .mat-form-field-required-marker {\\n color: #448aff;\\n}\\n.standard-theme .mat-form-field-ripple {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-form-field.mat-focused .mat-form-field-ripple {\\n background-color: #607d8b;\\n}\\n.standard-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {\\n background-color: #448aff;\\n}\\n.standard-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {\\n background-color: #f44336;\\n}\\n.standard-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {\\n color: #607d8b;\\n}\\n.standard-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {\\n color: #448aff;\\n}\\n.standard-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {\\n color: #f44336;\\n}\\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label {\\n color: #f44336;\\n}\\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,\\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {\\n color: #f44336;\\n}\\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,\\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {\\n background-color: #f44336;\\n}\\n.standard-theme .mat-error {\\n color: #f44336;\\n}\\n.standard-theme .mat-form-field-appearance-legacy .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-form-field-appearance-legacy .mat-hint {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-form-field-appearance-legacy .mat-form-field-underline {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n.standard-theme .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n.standard-theme .mat-form-field-appearance-standard .mat-form-field-underline {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n.standard-theme .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n.standard-theme .mat-form-field-appearance-fill .mat-form-field-flex {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n.standard-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {\\n background-color: rgba(0, 0, 0, 0.02);\\n}\\n.standard-theme .mat-form-field-appearance-fill .mat-form-field-underline::before {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n.standard-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {\\n background-color: transparent;\\n}\\n.standard-theme .mat-form-field-appearance-outline .mat-form-field-outline {\\n color: rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-form-field-appearance-outline .mat-form-field-outline-thick {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {\\n color: #607d8b;\\n}\\n.standard-theme .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {\\n color: #448aff;\\n}\\n.standard-theme .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {\\n color: #f44336;\\n}\\n.standard-theme .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {\\n color: #f44336;\\n}\\n.standard-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {\\n color: rgba(0, 0, 0, 0.06);\\n}\\n.standard-theme .mat-icon.mat-primary {\\n color: #607d8b;\\n}\\n.standard-theme .mat-icon.mat-accent {\\n color: #448aff;\\n}\\n.standard-theme .mat-icon.mat-warn {\\n color: #f44336;\\n}\\n.standard-theme .mat-form-field-type-mat-native-select .mat-form-field-infix::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-input-element:disabled,\\n.standard-theme .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-input-element {\\n caret-color: #607d8b;\\n}\\n.standard-theme .mat-input-element::-webkit-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.standard-theme .mat-input-element::-moz-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.standard-theme .mat-input-element::-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.standard-theme .mat-input-element::placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.standard-theme .mat-input-element::-moz-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.standard-theme .mat-input-element::-webkit-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.standard-theme .mat-input-element:-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.standard-theme .mat-accent .mat-input-element {\\n caret-color: #448aff;\\n}\\n.standard-theme .mat-warn .mat-input-element,\\n.standard-theme .mat-form-field-invalid .mat-input-element {\\n caret-color: #f44336;\\n}\\n.standard-theme .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {\\n color: #f44336;\\n}\\n.standard-theme .mat-list-base .mat-list-item {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-list-base .mat-list-option {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-list-base .mat-subheader {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-list-item-disabled {\\n background-color: #eeeeee;\\n}\\n.standard-theme .mat-list-option:hover, .standard-theme .mat-list-option:focus,\\n.standard-theme .mat-nav-list .mat-list-item:hover,\\n.standard-theme .mat-nav-list .mat-list-item:focus,\\n.standard-theme .mat-action-list .mat-list-item:hover,\\n.standard-theme .mat-action-list .mat-list-item:focus {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.standard-theme .mat-menu-panel {\\n background: white;\\n}\\n.standard-theme .mat-menu-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-menu-item {\\n background: transparent;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-menu-item[disabled], .standard-theme .mat-menu-item[disabled]::after {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-menu-item .mat-icon-no-color,\\n.standard-theme .mat-menu-item-submenu-trigger::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-menu-item:hover:not([disabled]),\\n.standard-theme .mat-menu-item.cdk-program-focused:not([disabled]),\\n.standard-theme .mat-menu-item.cdk-keyboard-focused:not([disabled]),\\n.standard-theme .mat-menu-item-highlighted:not([disabled]) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.standard-theme .mat-paginator {\\n background: white;\\n}\\n.standard-theme .mat-paginator,\\n.standard-theme .mat-paginator-page-size .mat-select-trigger {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-paginator-decrement,\\n.standard-theme .mat-paginator-increment {\\n border-top: 2px solid rgba(0, 0, 0, 0.54);\\n border-right: 2px solid rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-paginator-first,\\n.standard-theme .mat-paginator-last {\\n border-top: 2px solid rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-icon-button[disabled] .mat-paginator-decrement,\\n.standard-theme .mat-icon-button[disabled] .mat-paginator-increment,\\n.standard-theme .mat-icon-button[disabled] .mat-paginator-first,\\n.standard-theme .mat-icon-button[disabled] .mat-paginator-last {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-progress-bar-background {\\n fill: #cfd8dc;\\n}\\n.standard-theme .mat-progress-bar-buffer {\\n background-color: #cfd8dc;\\n}\\n.standard-theme .mat-progress-bar-fill::after {\\n background-color: #607d8b;\\n}\\n.standard-theme .mat-progress-bar.mat-accent .mat-progress-bar-background {\\n fill: #82b1ff;\\n}\\n.standard-theme .mat-progress-bar.mat-accent .mat-progress-bar-buffer {\\n background-color: #82b1ff;\\n}\\n.standard-theme .mat-progress-bar.mat-accent .mat-progress-bar-fill::after {\\n background-color: #448aff;\\n}\\n.standard-theme .mat-progress-bar.mat-warn .mat-progress-bar-background {\\n fill: #ffcdd2;\\n}\\n.standard-theme .mat-progress-bar.mat-warn .mat-progress-bar-buffer {\\n background-color: #ffcdd2;\\n}\\n.standard-theme .mat-progress-bar.mat-warn .mat-progress-bar-fill::after {\\n background-color: #f44336;\\n}\\n.standard-theme .mat-progress-spinner circle, .standard-theme .mat-spinner circle {\\n stroke: #607d8b;\\n}\\n.standard-theme .mat-progress-spinner.mat-accent circle, .standard-theme .mat-spinner.mat-accent circle {\\n stroke: #448aff;\\n}\\n.standard-theme .mat-progress-spinner.mat-warn circle, .standard-theme .mat-spinner.mat-warn circle {\\n stroke: #f44336;\\n}\\n.standard-theme .mat-radio-outer-circle {\\n border-color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #607d8b;\\n}\\n.standard-theme .mat-radio-button.mat-primary .mat-radio-inner-circle,\\n.standard-theme .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .standard-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple, .standard-theme .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {\\n background-color: #607d8b;\\n}\\n.standard-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #448aff;\\n}\\n.standard-theme .mat-radio-button.mat-accent .mat-radio-inner-circle,\\n.standard-theme .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .standard-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple, .standard-theme .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {\\n background-color: #448aff;\\n}\\n.standard-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #f44336;\\n}\\n.standard-theme .mat-radio-button.mat-warn .mat-radio-inner-circle,\\n.standard-theme .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .standard-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple, .standard-theme .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {\\n background-color: #f44336;\\n}\\n.standard-theme .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,\\n.standard-theme .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,\\n.standard-theme .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-radio-button.mat-radio-disabled .mat-radio-label-content {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-radio-button .mat-ripple-element {\\n background-color: black;\\n}\\n.standard-theme .mat-select-value {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-select-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.standard-theme .mat-select-disabled .mat-select-value {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-select-arrow {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-select-panel {\\n background: white;\\n}\\n.standard-theme .mat-select-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {\\n background: rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-form-field.mat-focused.mat-primary .mat-select-arrow {\\n color: #607d8b;\\n}\\n.standard-theme .mat-form-field.mat-focused.mat-accent .mat-select-arrow {\\n color: #448aff;\\n}\\n.standard-theme .mat-form-field.mat-focused.mat-warn .mat-select-arrow {\\n color: #f44336;\\n}\\n.standard-theme .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {\\n color: #f44336;\\n}\\n.standard-theme .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-drawer-container {\\n background-color: #fafafa;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-drawer {\\n background-color: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-drawer.mat-drawer-push {\\n background-color: white;\\n}\\n.standard-theme .mat-drawer:not(.mat-drawer-side) {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-drawer-side {\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-drawer-side.mat-drawer-end {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n border-right: none;\\n}\\n.standard-theme [dir=rtl] .mat-drawer-side {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n border-right: none;\\n}\\n.standard-theme [dir=rtl] .mat-drawer-side.mat-drawer-end {\\n border-left: none;\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-drawer-backdrop.mat-drawer-shown {\\n background-color: rgba(0, 0, 0, 0.6);\\n}\\n.standard-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {\\n background-color: #448aff;\\n}\\n.standard-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(68, 138, 255, 0.54);\\n}\\n.standard-theme .mat-slide-toggle.mat-checked .mat-ripple-element {\\n background-color: #448aff;\\n}\\n.standard-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {\\n background-color: #607d8b;\\n}\\n.standard-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(96, 125, 139, 0.54);\\n}\\n.standard-theme .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {\\n background-color: #607d8b;\\n}\\n.standard-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {\\n background-color: #f44336;\\n}\\n.standard-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(244, 67, 54, 0.54);\\n}\\n.standard-theme .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {\\n background-color: #f44336;\\n}\\n.standard-theme .mat-slide-toggle:not(.mat-checked) .mat-ripple-element {\\n background-color: black;\\n}\\n.standard-theme .mat-slide-toggle-thumb {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n background-color: #fafafa;\\n}\\n.standard-theme .mat-slide-toggle-bar {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.standard-theme .mat-primary .mat-slider-track-fill,\\n.standard-theme .mat-primary .mat-slider-thumb,\\n.standard-theme .mat-primary .mat-slider-thumb-label {\\n background-color: #607d8b;\\n}\\n.standard-theme .mat-primary .mat-slider-thumb-label-text {\\n color: white;\\n}\\n.standard-theme .mat-accent .mat-slider-track-fill,\\n.standard-theme .mat-accent .mat-slider-thumb,\\n.standard-theme .mat-accent .mat-slider-thumb-label {\\n background-color: #448aff;\\n}\\n.standard-theme .mat-accent .mat-slider-thumb-label-text {\\n color: white;\\n}\\n.standard-theme .mat-warn .mat-slider-track-fill,\\n.standard-theme .mat-warn .mat-slider-thumb,\\n.standard-theme .mat-warn .mat-slider-thumb-label {\\n background-color: #f44336;\\n}\\n.standard-theme .mat-warn .mat-slider-thumb-label-text {\\n color: white;\\n}\\n.standard-theme .mat-slider-focus-ring {\\n background-color: rgba(68, 138, 255, 0.2);\\n}\\n.standard-theme .mat-slider:hover .mat-slider-track-background,\\n.standard-theme .cdk-focused .mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-slider-disabled .mat-slider-track-background,\\n.standard-theme .mat-slider-disabled .mat-slider-track-fill,\\n.standard-theme .mat-slider-disabled .mat-slider-thumb {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.standard-theme .mat-slider-disabled:hover .mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.standard-theme .mat-slider-min-value .mat-slider-focus-ring {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,\\n.standard-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,\\n.standard-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.26);\\n background-color: transparent;\\n}\\n.standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb, .standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb, .standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.26);\\n}\\n.standard-theme .mat-slider-has-ticks .mat-slider-wrapper::after {\\n border-color: rgba(0, 0, 0, 0.7);\\n}\\n.standard-theme .mat-slider-horizontal .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to right, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n background-image: -moz-repeating-linear-gradient(0.0001deg, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n}\\n.standard-theme .mat-slider-vertical .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to bottom, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n}\\n.standard-theme .mat-step-header.cdk-keyboard-focused, .standard-theme .mat-step-header.cdk-program-focused, .standard-theme .mat-step-header:hover {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n@media (hover: none) {\\n .standard-theme .mat-step-header:hover {\\n background: none;\\n }\\n}\\n.standard-theme .mat-step-header .mat-step-label,\\n.standard-theme .mat-step-header .mat-step-optional {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-step-header .mat-step-icon {\\n background-color: rgba(0, 0, 0, 0.54);\\n color: white;\\n}\\n.standard-theme .mat-step-header .mat-step-icon-selected,\\n.standard-theme .mat-step-header .mat-step-icon-state-done,\\n.standard-theme .mat-step-header .mat-step-icon-state-edit {\\n background-color: #607d8b;\\n color: white;\\n}\\n.standard-theme .mat-step-header .mat-step-icon-state-error {\\n background-color: transparent;\\n color: #f44336;\\n}\\n.standard-theme .mat-step-header .mat-step-label.mat-step-label-active {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-step-header .mat-step-label.mat-step-label-error {\\n color: #f44336;\\n}\\n.standard-theme .mat-stepper-horizontal, .standard-theme .mat-stepper-vertical {\\n background-color: white;\\n}\\n.standard-theme .mat-stepper-vertical-line::before {\\n border-left-color: rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-horizontal-stepper-header::before,\\n.standard-theme .mat-horizontal-stepper-header::after,\\n.standard-theme .mat-stepper-horizontal-line {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-sort-header-arrow {\\n color: #757575;\\n}\\n.standard-theme .mat-tab-nav-bar,\\n.standard-theme .mat-tab-header {\\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-tab-group-inverted-header .mat-tab-nav-bar,\\n.standard-theme .mat-tab-group-inverted-header .mat-tab-header {\\n border-top: 1px solid rgba(0, 0, 0, 0.12);\\n border-bottom: none;\\n}\\n.standard-theme .mat-tab-label, .standard-theme .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-tab-group[class*=mat-background-] .mat-tab-header,\\n.standard-theme .mat-tab-nav-bar[class*=mat-background-] {\\n border-bottom: none;\\n border-top: none;\\n}\\n.standard-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(207, 216, 220, 0.3);\\n}\\n.standard-theme .mat-tab-group.mat-primary .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-primary .mat-ink-bar {\\n background-color: #607d8b;\\n}\\n.standard-theme .mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar {\\n background-color: white;\\n}\\n.standard-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(130, 177, 255, 0.3);\\n}\\n.standard-theme .mat-tab-group.mat-accent .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-accent .mat-ink-bar {\\n background-color: #448aff;\\n}\\n.standard-theme .mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar {\\n background-color: white;\\n}\\n.standard-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 205, 210, 0.3);\\n}\\n.standard-theme .mat-tab-group.mat-warn .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-warn .mat-ink-bar {\\n background-color: #f44336;\\n}\\n.standard-theme .mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar {\\n background-color: white;\\n}\\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(207, 216, 220, 0.3);\\n}\\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-header, .standard-theme .mat-tab-group.mat-background-primary .mat-tab-links, .standard-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-links, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination {\\n background-color: #607d8b;\\n}\\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-label, .standard-theme .mat-tab-group.mat-background-primary .mat-tab-link, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link {\\n color: white;\\n}\\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.4);\\n}\\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.4);\\n}\\n.standard-theme .mat-tab-group.mat-background-primary .mat-ripple-element, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(130, 177, 255, 0.3);\\n}\\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-header, .standard-theme .mat-tab-group.mat-background-accent .mat-tab-links, .standard-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-links, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination {\\n background-color: #448aff;\\n}\\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-label, .standard-theme .mat-tab-group.mat-background-accent .mat-tab-link, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link {\\n color: white;\\n}\\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.4);\\n}\\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.4);\\n}\\n.standard-theme .mat-tab-group.mat-background-accent .mat-ripple-element, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 205, 210, 0.3);\\n}\\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-header, .standard-theme .mat-tab-group.mat-background-warn .mat-tab-links, .standard-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-links, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination {\\n background-color: #f44336;\\n}\\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-label, .standard-theme .mat-tab-group.mat-background-warn .mat-tab-link, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link {\\n color: white;\\n}\\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.4);\\n}\\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.4);\\n}\\n.standard-theme .mat-tab-group.mat-background-warn .mat-ripple-element, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.standard-theme .mat-toolbar {\\n background: whitesmoke;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-toolbar.mat-primary {\\n background: #607d8b;\\n color: white;\\n}\\n.standard-theme .mat-toolbar.mat-accent {\\n background: #448aff;\\n color: white;\\n}\\n.standard-theme .mat-toolbar.mat-warn {\\n background: #f44336;\\n color: white;\\n}\\n.standard-theme .mat-toolbar .mat-form-field-underline,\\n.standard-theme .mat-toolbar .mat-form-field-ripple,\\n.standard-theme .mat-toolbar .mat-focused .mat-form-field-ripple {\\n background-color: currentColor;\\n}\\n.standard-theme .mat-toolbar .mat-form-field-label,\\n.standard-theme .mat-toolbar .mat-focused .mat-form-field-label,\\n.standard-theme .mat-toolbar .mat-select-value,\\n.standard-theme .mat-toolbar .mat-select-arrow,\\n.standard-theme .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow {\\n color: inherit;\\n}\\n.standard-theme .mat-toolbar .mat-input-element {\\n caret-color: currentColor;\\n}\\n.standard-theme .mat-tooltip {\\n background: rgba(97, 97, 97, 0.9);\\n}\\n.standard-theme .mat-tree {\\n background: white;\\n}\\n.standard-theme .mat-tree-node,\\n.standard-theme .mat-nested-tree-node {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-snack-bar-container {\\n color: rgba(255, 255, 255, 0.7);\\n background: #323232;\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-simple-snackbar-action {\\n color: #448aff;\\n}\\n.standard-theme h1 {\\n color: #607d8b;\\n}\\n.green-theme .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.green-theme .mat-option {\\n color: white;\\n}\\n.green-theme .mat-option:hover:not(.mat-option-disabled), .green-theme .mat-option:focus:not(.mat-option-disabled) {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n.green-theme .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n.green-theme .mat-option.mat-active {\\n background: rgba(255, 255, 255, 0.04);\\n color: white;\\n}\\n.green-theme .mat-option.mat-option-disabled {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #8bc34a;\\n}\\n.green-theme .mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #4caf50;\\n}\\n.green-theme .mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #4caf50;\\n}\\n.green-theme .mat-optgroup-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-optgroup-disabled .mat-optgroup-label {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-pseudo-checkbox {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-pseudo-checkbox::after {\\n color: #303030;\\n}\\n.green-theme .mat-pseudo-checkbox-disabled {\\n color: #686868;\\n}\\n.green-theme .mat-primary .mat-pseudo-checkbox-checked,\\n.green-theme .mat-primary .mat-pseudo-checkbox-indeterminate {\\n background: #8bc34a;\\n}\\n.green-theme .mat-pseudo-checkbox-checked,\\n.green-theme .mat-pseudo-checkbox-indeterminate,\\n.green-theme .mat-accent .mat-pseudo-checkbox-checked,\\n.green-theme .mat-accent .mat-pseudo-checkbox-indeterminate {\\n background: #4caf50;\\n}\\n.green-theme .mat-warn .mat-pseudo-checkbox-checked,\\n.green-theme .mat-warn .mat-pseudo-checkbox-indeterminate {\\n background: #4caf50;\\n}\\n.green-theme .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,\\n.green-theme .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {\\n background: #686868;\\n}\\n.green-theme .mat-elevation-z0 {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z1 {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z2 {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z3 {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z4 {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z5 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z6 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z7 {\\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z8 {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z9 {\\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z10 {\\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z11 {\\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z12 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z13 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z14 {\\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z15 {\\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z16 {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z17 {\\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z18 {\\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z19 {\\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z20 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z21 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z22 {\\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z23 {\\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z24 {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-app-background, .green-theme.mat-app-background {\\n background-color: #303030;\\n color: white;\\n}\\n.mat-theme-loaded-marker {\\n display: none;\\n}\\n.green-theme .mat-autocomplete-panel {\\n background: #424242;\\n color: white;\\n}\\n.green-theme .mat-autocomplete-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {\\n background: #424242;\\n}\\n.green-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {\\n color: white;\\n}\\n.green-theme .mat-badge-content {\\n color: rgba(0, 0, 0, 0.87);\\n background: #8bc34a;\\n}\\n@media (-ms-high-contrast: active) {\\n .green-theme .mat-badge-content {\\n outline: solid 1px;\\n border-radius: 0;\\n }\\n}\\n.green-theme .mat-badge-accent .mat-badge-content {\\n background: #4caf50;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-badge-warn .mat-badge-content {\\n color: rgba(0, 0, 0, 0.87);\\n background: #4caf50;\\n}\\n.green-theme .mat-badge {\\n position: relative;\\n}\\n.green-theme .mat-badge-hidden .mat-badge-content {\\n display: none;\\n}\\n.green-theme .mat-badge-disabled .mat-badge-content {\\n background: #6e6e6e;\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-badge-content {\\n position: absolute;\\n text-align: center;\\n display: inline-block;\\n border-radius: 50%;\\n transition: transform 200ms ease-in-out;\\n transform: scale(0.6);\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n pointer-events: none;\\n}\\n.green-theme .ng-animate-disabled .mat-badge-content,\\n.green-theme .mat-badge-content._mat-animation-noopable {\\n transition: none;\\n}\\n.green-theme .mat-badge-content.mat-badge-active {\\n transform: none;\\n}\\n.green-theme .mat-badge-small .mat-badge-content {\\n width: 16px;\\n height: 16px;\\n line-height: 16px;\\n}\\n.green-theme .mat-badge-small.mat-badge-above .mat-badge-content {\\n top: -8px;\\n}\\n.green-theme .mat-badge-small.mat-badge-below .mat-badge-content {\\n bottom: -8px;\\n}\\n.green-theme .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: -16px;\\n}\\n[dir=rtl] .green-theme .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -16px;\\n}\\n.green-theme .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: -16px;\\n}\\n[dir=rtl] .green-theme .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -16px;\\n}\\n.green-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -8px;\\n}\\n[dir=rtl] .green-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -8px;\\n}\\n.green-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -8px;\\n}\\n[dir=rtl] .green-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -8px;\\n}\\n.green-theme .mat-badge-medium .mat-badge-content {\\n width: 22px;\\n height: 22px;\\n line-height: 22px;\\n}\\n.green-theme .mat-badge-medium.mat-badge-above .mat-badge-content {\\n top: -11px;\\n}\\n.green-theme .mat-badge-medium.mat-badge-below .mat-badge-content {\\n bottom: -11px;\\n}\\n.green-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: -22px;\\n}\\n[dir=rtl] .green-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -22px;\\n}\\n.green-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: -22px;\\n}\\n[dir=rtl] .green-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -22px;\\n}\\n.green-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -11px;\\n}\\n[dir=rtl] .green-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -11px;\\n}\\n.green-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -11px;\\n}\\n[dir=rtl] .green-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -11px;\\n}\\n.green-theme .mat-badge-large .mat-badge-content {\\n width: 28px;\\n height: 28px;\\n line-height: 28px;\\n}\\n.green-theme .mat-badge-large.mat-badge-above .mat-badge-content {\\n top: -14px;\\n}\\n.green-theme .mat-badge-large.mat-badge-below .mat-badge-content {\\n bottom: -14px;\\n}\\n.green-theme .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: -28px;\\n}\\n[dir=rtl] .green-theme .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -28px;\\n}\\n.green-theme .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: -28px;\\n}\\n[dir=rtl] .green-theme .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -28px;\\n}\\n.green-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -14px;\\n}\\n[dir=rtl] .green-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -14px;\\n}\\n.green-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -14px;\\n}\\n[dir=rtl] .green-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -14px;\\n}\\n.green-theme .mat-bottom-sheet-container {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n background: #424242;\\n color: white;\\n}\\n.green-theme .mat-button, .green-theme .mat-icon-button, .green-theme .mat-stroked-button {\\n color: inherit;\\n background: transparent;\\n}\\n.green-theme .mat-button.mat-primary, .green-theme .mat-icon-button.mat-primary, .green-theme .mat-stroked-button.mat-primary {\\n color: #8bc34a;\\n}\\n.green-theme .mat-button.mat-accent, .green-theme .mat-icon-button.mat-accent, .green-theme .mat-stroked-button.mat-accent {\\n color: #4caf50;\\n}\\n.green-theme .mat-button.mat-warn, .green-theme .mat-icon-button.mat-warn, .green-theme .mat-stroked-button.mat-warn {\\n color: #4caf50;\\n}\\n.green-theme .mat-button.mat-primary[disabled], .green-theme .mat-button.mat-accent[disabled], .green-theme .mat-button.mat-warn[disabled], .green-theme .mat-button[disabled][disabled], .green-theme .mat-icon-button.mat-primary[disabled], .green-theme .mat-icon-button.mat-accent[disabled], .green-theme .mat-icon-button.mat-warn[disabled], .green-theme .mat-icon-button[disabled][disabled], .green-theme .mat-stroked-button.mat-primary[disabled], .green-theme .mat-stroked-button.mat-accent[disabled], .green-theme .mat-stroked-button.mat-warn[disabled], .green-theme .mat-stroked-button[disabled][disabled] {\\n color: rgba(255, 255, 255, 0.3);\\n}\\n.green-theme .mat-button.mat-primary .mat-button-focus-overlay, .green-theme .mat-icon-button.mat-primary .mat-button-focus-overlay, .green-theme .mat-stroked-button.mat-primary .mat-button-focus-overlay {\\n background-color: #8bc34a;\\n}\\n.green-theme .mat-button.mat-accent .mat-button-focus-overlay, .green-theme .mat-icon-button.mat-accent .mat-button-focus-overlay, .green-theme .mat-stroked-button.mat-accent .mat-button-focus-overlay {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-button.mat-warn .mat-button-focus-overlay, .green-theme .mat-icon-button.mat-warn .mat-button-focus-overlay, .green-theme .mat-stroked-button.mat-warn .mat-button-focus-overlay {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-button[disabled] .mat-button-focus-overlay, .green-theme .mat-icon-button[disabled] .mat-button-focus-overlay, .green-theme .mat-stroked-button[disabled] .mat-button-focus-overlay {\\n background-color: transparent;\\n}\\n.green-theme .mat-button .mat-ripple-element, .green-theme .mat-icon-button .mat-ripple-element, .green-theme .mat-stroked-button .mat-ripple-element {\\n opacity: 0.1;\\n background-color: currentColor;\\n}\\n.green-theme .mat-button-focus-overlay {\\n background: white;\\n}\\n.green-theme .mat-stroked-button:not([disabled]) {\\n border-color: rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-flat-button, .green-theme .mat-raised-button, .green-theme .mat-fab, .green-theme .mat-mini-fab {\\n color: white;\\n background-color: #424242;\\n}\\n.green-theme .mat-flat-button.mat-primary, .green-theme .mat-raised-button.mat-primary, .green-theme .mat-fab.mat-primary, .green-theme .mat-mini-fab.mat-primary {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-flat-button.mat-accent, .green-theme .mat-raised-button.mat-accent, .green-theme .mat-fab.mat-accent, .green-theme .mat-mini-fab.mat-accent {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-flat-button.mat-warn, .green-theme .mat-raised-button.mat-warn, .green-theme .mat-fab.mat-warn, .green-theme .mat-mini-fab.mat-warn {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-flat-button.mat-primary[disabled], .green-theme .mat-flat-button.mat-accent[disabled], .green-theme .mat-flat-button.mat-warn[disabled], .green-theme .mat-flat-button[disabled][disabled], .green-theme .mat-raised-button.mat-primary[disabled], .green-theme .mat-raised-button.mat-accent[disabled], .green-theme .mat-raised-button.mat-warn[disabled], .green-theme .mat-raised-button[disabled][disabled], .green-theme .mat-fab.mat-primary[disabled], .green-theme .mat-fab.mat-accent[disabled], .green-theme .mat-fab.mat-warn[disabled], .green-theme .mat-fab[disabled][disabled], .green-theme .mat-mini-fab.mat-primary[disabled], .green-theme .mat-mini-fab.mat-accent[disabled], .green-theme .mat-mini-fab.mat-warn[disabled], .green-theme .mat-mini-fab[disabled][disabled] {\\n color: rgba(255, 255, 255, 0.3);\\n}\\n.green-theme .mat-flat-button.mat-primary, .green-theme .mat-raised-button.mat-primary, .green-theme .mat-fab.mat-primary, .green-theme .mat-mini-fab.mat-primary {\\n background-color: #8bc34a;\\n}\\n.green-theme .mat-flat-button.mat-accent, .green-theme .mat-raised-button.mat-accent, .green-theme .mat-fab.mat-accent, .green-theme .mat-mini-fab.mat-accent {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-flat-button.mat-warn, .green-theme .mat-raised-button.mat-warn, .green-theme .mat-fab.mat-warn, .green-theme .mat-mini-fab.mat-warn {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-flat-button.mat-primary[disabled], .green-theme .mat-flat-button.mat-accent[disabled], .green-theme .mat-flat-button.mat-warn[disabled], .green-theme .mat-flat-button[disabled][disabled], .green-theme .mat-raised-button.mat-primary[disabled], .green-theme .mat-raised-button.mat-accent[disabled], .green-theme .mat-raised-button.mat-warn[disabled], .green-theme .mat-raised-button[disabled][disabled], .green-theme .mat-fab.mat-primary[disabled], .green-theme .mat-fab.mat-accent[disabled], .green-theme .mat-fab.mat-warn[disabled], .green-theme .mat-fab[disabled][disabled], .green-theme .mat-mini-fab.mat-primary[disabled], .green-theme .mat-mini-fab.mat-accent[disabled], .green-theme .mat-mini-fab.mat-warn[disabled], .green-theme .mat-mini-fab[disabled][disabled] {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-flat-button.mat-primary .mat-ripple-element, .green-theme .mat-raised-button.mat-primary .mat-ripple-element, .green-theme .mat-fab.mat-primary .mat-ripple-element, .green-theme .mat-mini-fab.mat-primary .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n.green-theme .mat-flat-button.mat-accent .mat-ripple-element, .green-theme .mat-raised-button.mat-accent .mat-ripple-element, .green-theme .mat-fab.mat-accent .mat-ripple-element, .green-theme .mat-mini-fab.mat-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n.green-theme .mat-flat-button.mat-warn .mat-ripple-element, .green-theme .mat-raised-button.mat-warn .mat-ripple-element, .green-theme .mat-fab.mat-warn .mat-ripple-element, .green-theme .mat-mini-fab.mat-warn .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n.green-theme .mat-stroked-button:not([class*=mat-elevation-z]), .green-theme .mat-flat-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-raised-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-raised-button[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-fab:not([class*=mat-elevation-z]), .green-theme .mat-mini-fab:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-fab:not([disabled]):active:not([class*=mat-elevation-z]), .green-theme .mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-fab[disabled]:not([class*=mat-elevation-z]), .green-theme .mat-mini-fab[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-button-toggle-standalone,\\n.green-theme .mat-button-toggle-group {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.green-theme .mat-button-toggle-group-appearance-standard {\\n box-shadow: none;\\n}\\n.green-theme .mat-button-toggle {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-button-toggle .mat-button-toggle-focus-overlay {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-button-toggle-appearance-standard {\\n color: white;\\n background: #424242;\\n}\\n.green-theme .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {\\n background-color: white;\\n}\\n.green-theme .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.green-theme [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: none;\\n border-top: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-button-toggle-checked {\\n background-color: #212121;\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-button-toggle-checked.mat-button-toggle-appearance-standard {\\n color: white;\\n}\\n.green-theme .mat-button-toggle-disabled {\\n color: rgba(255, 255, 255, 0.3);\\n background-color: black;\\n}\\n.green-theme .mat-button-toggle-disabled.mat-button-toggle-appearance-standard {\\n background: #424242;\\n}\\n.green-theme .mat-button-toggle-disabled.mat-button-toggle-checked {\\n background-color: #424242;\\n}\\n.green-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.green-theme .mat-button-toggle-group-appearance-standard {\\n border: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-card {\\n background: #424242;\\n color: white;\\n}\\n.green-theme .mat-card:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-card.mat-card-flat:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-card-subtitle {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-checkbox-frame {\\n border-color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-checkbox-checkmark {\\n fill: #303030;\\n}\\n.green-theme .mat-checkbox-checkmark-path {\\n stroke: #303030 !important;\\n}\\n@media (-ms-high-contrast: black-on-white) {\\n .green-theme .mat-checkbox-checkmark-path {\\n stroke: #000 !important;\\n }\\n}\\n.green-theme .mat-checkbox-mixedmark {\\n background-color: #303030;\\n}\\n.green-theme .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .green-theme .mat-checkbox-checked.mat-primary .mat-checkbox-background {\\n background-color: #8bc34a;\\n}\\n.green-theme .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .green-theme .mat-checkbox-checked.mat-accent .mat-checkbox-background {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .green-theme .mat-checkbox-checked.mat-warn .mat-checkbox-background {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .green-theme .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {\\n background-color: #686868;\\n}\\n.green-theme .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {\\n border-color: #686868;\\n}\\n.green-theme .mat-checkbox-disabled .mat-checkbox-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n@media (-ms-high-contrast: active) {\\n .green-theme .mat-checkbox-disabled {\\n opacity: 0.5;\\n }\\n}\\n@media (-ms-high-contrast: active) {\\n .green-theme .mat-checkbox-background {\\n background: none;\\n }\\n}\\n.green-theme .mat-checkbox .mat-ripple-element {\\n background-color: white;\\n}\\n.green-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,\\n.green-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {\\n background: #8bc34a;\\n}\\n.green-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,\\n.green-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {\\n background: #4caf50;\\n}\\n.green-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,\\n.green-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {\\n background: #4caf50;\\n}\\n.green-theme .mat-chip.mat-standard-chip {\\n background-color: #616161;\\n color: white;\\n}\\n.green-theme .mat-chip.mat-standard-chip .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n.green-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {\\n opacity: 0.54;\\n}\\n.green-theme .mat-chip.mat-standard-chip.mat-chip-disabled {\\n opacity: 0.4;\\n}\\n.green-theme .mat-chip.mat-standard-chip::after {\\n background: white;\\n}\\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {\\n background-color: #8bc34a;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {\\n background: rgba(0, 0, 0, 0.1);\\n}\\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {\\n background-color: #4caf50;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {\\n background: rgba(0, 0, 0, 0.1);\\n}\\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {\\n background-color: #4caf50;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {\\n background: rgba(0, 0, 0, 0.1);\\n}\\n.green-theme .mat-table {\\n background: #424242;\\n}\\n.green-theme .mat-table thead, .green-theme .mat-table tbody, .green-theme .mat-table tfoot,\\n.green-theme mat-header-row, .green-theme mat-row, .green-theme mat-footer-row,\\n.green-theme [mat-header-row], .green-theme [mat-row], .green-theme [mat-footer-row],\\n.green-theme .mat-table-sticky {\\n background: inherit;\\n}\\n.green-theme mat-row, .green-theme mat-header-row, .green-theme mat-footer-row,\\n.green-theme th.mat-header-cell, .green-theme td.mat-cell, .green-theme td.mat-footer-cell {\\n border-bottom-color: rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-header-cell {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-cell, .green-theme .mat-footer-cell {\\n color: white;\\n}\\n.green-theme .mat-calendar-arrow {\\n border-top-color: white;\\n}\\n.green-theme .mat-datepicker-toggle,\\n.green-theme .mat-datepicker-content .mat-calendar-next-button,\\n.green-theme .mat-datepicker-content .mat-calendar-previous-button {\\n color: white;\\n}\\n.green-theme .mat-calendar-table-header {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-calendar-table-header-divider::after {\\n background: rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-calendar-body-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-calendar-body-cell-content {\\n color: white;\\n border-color: transparent;\\n}\\n.green-theme .mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.green-theme .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.green-theme .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n background-color: rgba(255, 255, 255, 0.04);\\n}\\n.green-theme .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(255, 255, 255, 0.3);\\n}\\n.green-theme .mat-calendar-body-selected {\\n background-color: #8bc34a;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(139, 195, 74, 0.4);\\n}\\n.green-theme .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-datepicker-content {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n background-color: #424242;\\n color: white;\\n}\\n.green-theme .mat-datepicker-content.mat-accent .mat-calendar-body-selected {\\n background-color: #4caf50;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(76, 175, 80, 0.4);\\n}\\n.green-theme .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-datepicker-content.mat-warn .mat-calendar-body-selected {\\n background-color: #4caf50;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(76, 175, 80, 0.4);\\n}\\n.green-theme .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-datepicker-content-touch {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-datepicker-toggle-active {\\n color: #8bc34a;\\n}\\n.green-theme .mat-datepicker-toggle-active.mat-accent {\\n color: #4caf50;\\n}\\n.green-theme .mat-datepicker-toggle-active.mat-warn {\\n color: #4caf50;\\n}\\n.green-theme .mat-dialog-container {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n background: #424242;\\n color: white;\\n}\\n.green-theme .mat-divider {\\n border-top-color: rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-divider-vertical {\\n border-right-color: rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-expansion-panel {\\n background: #424242;\\n color: white;\\n}\\n.green-theme .mat-expansion-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-action-row {\\n border-top-color: rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]), .green-theme .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]), .green-theme .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]) {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n@media (hover: none) {\\n .green-theme .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover {\\n background: #424242;\\n }\\n}\\n.green-theme .mat-expansion-panel-header-title {\\n color: white;\\n}\\n.green-theme .mat-expansion-panel-header-description,\\n.green-theme .mat-expansion-indicator::after {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-expansion-panel-header[aria-disabled=true] {\\n color: rgba(255, 255, 255, 0.3);\\n}\\n.green-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,\\n.green-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description {\\n color: inherit;\\n}\\n.green-theme .mat-form-field-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-hint {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-form-field.mat-focused .mat-form-field-label {\\n color: #8bc34a;\\n}\\n.green-theme .mat-form-field.mat-focused .mat-form-field-label.mat-accent {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field.mat-focused .mat-form-field-label.mat-warn {\\n color: #4caf50;\\n}\\n.green-theme .mat-focused .mat-form-field-required-marker {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field-ripple {\\n background-color: white;\\n}\\n.green-theme .mat-form-field.mat-focused .mat-form-field-ripple {\\n background-color: #8bc34a;\\n}\\n.green-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {\\n color: #8bc34a;\\n}\\n.green-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,\\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,\\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-error {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field-appearance-legacy .mat-form-field-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-form-field-appearance-legacy .mat-hint {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-form-field-appearance-legacy .mat-form-field-underline {\\n background-color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0.7) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n.green-theme .mat-form-field-appearance-standard .mat-form-field-underline {\\n background-color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0.7) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n.green-theme .mat-form-field-appearance-fill .mat-form-field-flex {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.green-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {\\n background-color: rgba(255, 255, 255, 0.05);\\n}\\n.green-theme .mat-form-field-appearance-fill .mat-form-field-underline::before {\\n background-color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {\\n background-color: transparent;\\n}\\n.green-theme .mat-form-field-appearance-outline .mat-form-field-outline {\\n color: rgba(255, 255, 255, 0.3);\\n}\\n.green-theme .mat-form-field-appearance-outline .mat-form-field-outline-thick {\\n color: white;\\n}\\n.green-theme .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {\\n color: #8bc34a;\\n}\\n.green-theme .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {\\n color: rgba(255, 255, 255, 0.15);\\n}\\n.green-theme .mat-icon.mat-primary {\\n color: #8bc34a;\\n}\\n.green-theme .mat-icon.mat-accent {\\n color: #4caf50;\\n}\\n.green-theme .mat-icon.mat-warn {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field-type-mat-native-select .mat-form-field-infix::after {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-input-element:disabled,\\n.green-theme .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-input-element {\\n caret-color: #8bc34a;\\n}\\n.green-theme .mat-input-element::-webkit-input-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-input-element::-moz-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-input-element::-ms-input-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-input-element::placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-input-element::-moz-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-input-element::-webkit-input-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-input-element:-ms-input-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-input-element option {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-input-element option:disabled {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.green-theme .mat-accent .mat-input-element {\\n caret-color: #4caf50;\\n}\\n.green-theme .mat-warn .mat-input-element,\\n.green-theme .mat-form-field-invalid .mat-input-element {\\n caret-color: #4caf50;\\n}\\n.green-theme .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {\\n color: #4caf50;\\n}\\n.green-theme .mat-list-base .mat-list-item {\\n color: white;\\n}\\n.green-theme .mat-list-base .mat-list-option {\\n color: white;\\n}\\n.green-theme .mat-list-base .mat-subheader {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-list-item-disabled {\\n background-color: black;\\n}\\n.green-theme .mat-list-option:hover, .green-theme .mat-list-option:focus,\\n.green-theme .mat-nav-list .mat-list-item:hover,\\n.green-theme .mat-nav-list .mat-list-item:focus,\\n.green-theme .mat-action-list .mat-list-item:hover,\\n.green-theme .mat-action-list .mat-list-item:focus {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n.green-theme .mat-menu-panel {\\n background: #424242;\\n}\\n.green-theme .mat-menu-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-menu-item {\\n background: transparent;\\n color: white;\\n}\\n.green-theme .mat-menu-item[disabled], .green-theme .mat-menu-item[disabled]::after {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-menu-item .mat-icon-no-color,\\n.green-theme .mat-menu-item-submenu-trigger::after {\\n color: white;\\n}\\n.green-theme .mat-menu-item:hover:not([disabled]),\\n.green-theme .mat-menu-item.cdk-program-focused:not([disabled]),\\n.green-theme .mat-menu-item.cdk-keyboard-focused:not([disabled]),\\n.green-theme .mat-menu-item-highlighted:not([disabled]) {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n.green-theme .mat-paginator {\\n background: #424242;\\n}\\n.green-theme .mat-paginator,\\n.green-theme .mat-paginator-page-size .mat-select-trigger {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-paginator-decrement,\\n.green-theme .mat-paginator-increment {\\n border-top: 2px solid white;\\n border-right: 2px solid white;\\n}\\n.green-theme .mat-paginator-first,\\n.green-theme .mat-paginator-last {\\n border-top: 2px solid white;\\n}\\n.green-theme .mat-icon-button[disabled] .mat-paginator-decrement,\\n.green-theme .mat-icon-button[disabled] .mat-paginator-increment,\\n.green-theme .mat-icon-button[disabled] .mat-paginator-first,\\n.green-theme .mat-icon-button[disabled] .mat-paginator-last {\\n border-color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-progress-bar-background {\\n fill: #dcedc8;\\n}\\n.green-theme .mat-progress-bar-buffer {\\n background-color: #dcedc8;\\n}\\n.green-theme .mat-progress-bar-fill::after {\\n background-color: #8bc34a;\\n}\\n.green-theme .mat-progress-bar.mat-accent .mat-progress-bar-background {\\n fill: #c8e6c9;\\n}\\n.green-theme .mat-progress-bar.mat-accent .mat-progress-bar-buffer {\\n background-color: #c8e6c9;\\n}\\n.green-theme .mat-progress-bar.mat-accent .mat-progress-bar-fill::after {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-progress-bar.mat-warn .mat-progress-bar-background {\\n fill: #c8e6c9;\\n}\\n.green-theme .mat-progress-bar.mat-warn .mat-progress-bar-buffer {\\n background-color: #c8e6c9;\\n}\\n.green-theme .mat-progress-bar.mat-warn .mat-progress-bar-fill::after {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-progress-spinner circle, .green-theme .mat-spinner circle {\\n stroke: #8bc34a;\\n}\\n.green-theme .mat-progress-spinner.mat-accent circle, .green-theme .mat-spinner.mat-accent circle {\\n stroke: #4caf50;\\n}\\n.green-theme .mat-progress-spinner.mat-warn circle, .green-theme .mat-spinner.mat-warn circle {\\n stroke: #4caf50;\\n}\\n.green-theme .mat-radio-outer-circle {\\n border-color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #8bc34a;\\n}\\n.green-theme .mat-radio-button.mat-primary .mat-radio-inner-circle,\\n.green-theme .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .green-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple, .green-theme .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {\\n background-color: #8bc34a;\\n}\\n.green-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #4caf50;\\n}\\n.green-theme .mat-radio-button.mat-accent .mat-radio-inner-circle,\\n.green-theme .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .green-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple, .green-theme .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #4caf50;\\n}\\n.green-theme .mat-radio-button.mat-warn .mat-radio-inner-circle,\\n.green-theme .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .green-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple, .green-theme .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,\\n.green-theme .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {\\n border-color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,\\n.green-theme .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {\\n background-color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-radio-button.mat-radio-disabled .mat-radio-label-content {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-radio-button .mat-ripple-element {\\n background-color: white;\\n}\\n.green-theme .mat-select-value {\\n color: white;\\n}\\n.green-theme .mat-select-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-select-disabled .mat-select-value {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-select-arrow {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-select-panel {\\n background: #424242;\\n}\\n.green-theme .mat-select-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {\\n background: rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-form-field.mat-focused.mat-primary .mat-select-arrow {\\n color: #8bc34a;\\n}\\n.green-theme .mat-form-field.mat-focused.mat-accent .mat-select-arrow {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field.mat-focused.mat-warn .mat-select-arrow {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-drawer-container {\\n background-color: #303030;\\n color: white;\\n}\\n.green-theme .mat-drawer {\\n background-color: #424242;\\n color: white;\\n}\\n.green-theme .mat-drawer.mat-drawer-push {\\n background-color: #424242;\\n}\\n.green-theme .mat-drawer:not(.mat-drawer-side) {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-drawer-side {\\n border-right: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-drawer-side.mat-drawer-end {\\n border-left: solid 1px rgba(255, 255, 255, 0.12);\\n border-right: none;\\n}\\n.green-theme [dir=rtl] .mat-drawer-side {\\n border-left: solid 1px rgba(255, 255, 255, 0.12);\\n border-right: none;\\n}\\n.green-theme [dir=rtl] .mat-drawer-side.mat-drawer-end {\\n border-left: none;\\n border-right: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-drawer-backdrop.mat-drawer-shown {\\n background-color: rgba(189, 189, 189, 0.6);\\n}\\n.green-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(76, 175, 80, 0.54);\\n}\\n.green-theme .mat-slide-toggle.mat-checked .mat-ripple-element {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {\\n background-color: #8bc34a;\\n}\\n.green-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(139, 195, 74, 0.54);\\n}\\n.green-theme .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {\\n background-color: #8bc34a;\\n}\\n.green-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(76, 175, 80, 0.54);\\n}\\n.green-theme .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-slide-toggle:not(.mat-checked) .mat-ripple-element {\\n background-color: white;\\n}\\n.green-theme .mat-slide-toggle-thumb {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n background-color: #bdbdbd;\\n}\\n.green-theme .mat-slide-toggle-bar {\\n background-color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-slider-track-background {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n.green-theme .mat-primary .mat-slider-track-fill,\\n.green-theme .mat-primary .mat-slider-thumb,\\n.green-theme .mat-primary .mat-slider-thumb-label {\\n background-color: #8bc34a;\\n}\\n.green-theme .mat-primary .mat-slider-thumb-label-text {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-accent .mat-slider-track-fill,\\n.green-theme .mat-accent .mat-slider-thumb,\\n.green-theme .mat-accent .mat-slider-thumb-label {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-accent .mat-slider-thumb-label-text {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-warn .mat-slider-track-fill,\\n.green-theme .mat-warn .mat-slider-thumb,\\n.green-theme .mat-warn .mat-slider-thumb-label {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-warn .mat-slider-thumb-label-text {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-slider-focus-ring {\\n background-color: rgba(76, 175, 80, 0.2);\\n}\\n.green-theme .mat-slider:hover .mat-slider-track-background,\\n.green-theme .cdk-focused .mat-slider-track-background {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n.green-theme .mat-slider-disabled .mat-slider-track-background,\\n.green-theme .mat-slider-disabled .mat-slider-track-fill,\\n.green-theme .mat-slider-disabled .mat-slider-thumb {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n.green-theme .mat-slider-disabled:hover .mat-slider-track-background {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n.green-theme .mat-slider-min-value .mat-slider-focus-ring {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,\\n.green-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label {\\n background-color: white;\\n}\\n.green-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,\\n.green-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n.green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb {\\n border-color: rgba(255, 255, 255, 0.3);\\n background-color: transparent;\\n}\\n.green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb, .green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb {\\n border-color: rgba(255, 255, 255, 0.3);\\n}\\n.green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb, .green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb {\\n border-color: rgba(255, 255, 255, 0.3);\\n}\\n.green-theme .mat-slider-has-ticks .mat-slider-wrapper::after {\\n border-color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-slider-horizontal .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to right, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\\n background-image: -moz-repeating-linear-gradient(0.0001deg, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\\n}\\n.green-theme .mat-slider-vertical .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to bottom, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\\n}\\n.green-theme .mat-step-header.cdk-keyboard-focused, .green-theme .mat-step-header.cdk-program-focused, .green-theme .mat-step-header:hover {\\n background-color: rgba(255, 255, 255, 0.04);\\n}\\n@media (hover: none) {\\n .green-theme .mat-step-header:hover {\\n background: none;\\n }\\n}\\n.green-theme .mat-step-header .mat-step-label,\\n.green-theme .mat-step-header .mat-step-optional {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-step-header .mat-step-icon {\\n background-color: rgba(255, 255, 255, 0.7);\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-step-header .mat-step-icon-selected,\\n.green-theme .mat-step-header .mat-step-icon-state-done,\\n.green-theme .mat-step-header .mat-step-icon-state-edit {\\n background-color: #8bc34a;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-step-header .mat-step-icon-state-error {\\n background-color: transparent;\\n color: #4caf50;\\n}\\n.green-theme .mat-step-header .mat-step-label.mat-step-label-active {\\n color: white;\\n}\\n.green-theme .mat-step-header .mat-step-label.mat-step-label-error {\\n color: #4caf50;\\n}\\n.green-theme .mat-stepper-horizontal, .green-theme .mat-stepper-vertical {\\n background-color: #424242;\\n}\\n.green-theme .mat-stepper-vertical-line::before {\\n border-left-color: rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-horizontal-stepper-header::before,\\n.green-theme .mat-horizontal-stepper-header::after,\\n.green-theme .mat-stepper-horizontal-line {\\n border-top-color: rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-sort-header-arrow {\\n color: #c6c6c6;\\n}\\n.green-theme .mat-tab-nav-bar,\\n.green-theme .mat-tab-header {\\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-tab-group-inverted-header .mat-tab-nav-bar,\\n.green-theme .mat-tab-group-inverted-header .mat-tab-header {\\n border-top: 1px solid rgba(255, 255, 255, 0.12);\\n border-bottom: none;\\n}\\n.green-theme .mat-tab-label, .green-theme .mat-tab-link {\\n color: white;\\n}\\n.green-theme .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n.green-theme .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-tab-group[class*=mat-background-] .mat-tab-header,\\n.green-theme .mat-tab-nav-bar[class*=mat-background-] {\\n border-bottom: none;\\n border-top: none;\\n}\\n.green-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(220, 237, 200, 0.3);\\n}\\n.green-theme .mat-tab-group.mat-primary .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-primary .mat-ink-bar {\\n background-color: #8bc34a;\\n}\\n.green-theme .mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(200, 230, 201, 0.3);\\n}\\n.green-theme .mat-tab-group.mat-accent .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-accent .mat-ink-bar {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(200, 230, 201, 0.3);\\n}\\n.green-theme .mat-tab-group.mat-warn .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-warn .mat-ink-bar {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(220, 237, 200, 0.3);\\n}\\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-header, .green-theme .mat-tab-group.mat-background-primary .mat-tab-links, .green-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-links, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination {\\n background-color: #8bc34a;\\n}\\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-label, .green-theme .mat-tab-group.mat-background-primary .mat-tab-link, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.4);\\n}\\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.4);\\n}\\n.green-theme .mat-tab-group.mat-background-primary .mat-ripple-element, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(200, 230, 201, 0.3);\\n}\\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-header, .green-theme .mat-tab-group.mat-background-accent .mat-tab-links, .green-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-links, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-label, .green-theme .mat-tab-group.mat-background-accent .mat-tab-link, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.4);\\n}\\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.4);\\n}\\n.green-theme .mat-tab-group.mat-background-accent .mat-ripple-element, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(200, 230, 201, 0.3);\\n}\\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-header, .green-theme .mat-tab-group.mat-background-warn .mat-tab-links, .green-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-links, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-label, .green-theme .mat-tab-group.mat-background-warn .mat-tab-link, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.4);\\n}\\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.4);\\n}\\n.green-theme .mat-tab-group.mat-background-warn .mat-ripple-element, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-toolbar {\\n background: #212121;\\n color: white;\\n}\\n.green-theme .mat-toolbar.mat-primary {\\n background: #8bc34a;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-toolbar.mat-accent {\\n background: #4caf50;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-toolbar.mat-warn {\\n background: #4caf50;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-toolbar .mat-form-field-underline,\\n.green-theme .mat-toolbar .mat-form-field-ripple,\\n.green-theme .mat-toolbar .mat-focused .mat-form-field-ripple {\\n background-color: currentColor;\\n}\\n.green-theme .mat-toolbar .mat-form-field-label,\\n.green-theme .mat-toolbar .mat-focused .mat-form-field-label,\\n.green-theme .mat-toolbar .mat-select-value,\\n.green-theme .mat-toolbar .mat-select-arrow,\\n.green-theme .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow {\\n color: inherit;\\n}\\n.green-theme .mat-toolbar .mat-input-element {\\n caret-color: currentColor;\\n}\\n.green-theme .mat-tooltip {\\n background: rgba(97, 97, 97, 0.9);\\n}\\n.green-theme .mat-tree {\\n background: #424242;\\n}\\n.green-theme .mat-tree-node,\\n.green-theme .mat-nested-tree-node {\\n color: white;\\n}\\n.green-theme .mat-snack-bar-container {\\n color: rgba(0, 0, 0, 0.87);\\n background: #fafafa;\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-simple-snackbar-action {\\n color: inherit;\\n}\\n.green-theme h1 {\\n color: #8bc34a;\\n}\\n/* You can add global styles to this file, and also import other style files */\\nhtml, body {\\n height: 100%;\\n}\\nbody {\\n margin: 0;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.flex-spacer {\\n flex: 1 1 auto;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvbWF0ZXJpYWwvX3RoZW1pbmcuc2NzcyIsInN0eWxlcy5zY3NzIiwiL2RhdGEvaG9tZS9rbmlzdGVyMC9naXRodWJzL05pZXR6c2NoZUJldGEvbmlldHpzY2hlLWJldGEtYXBwL3NyYy9zdHlsZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwMUNBLGtDQUFBO0FBNmlEQSwyQ0FBQTtBQXdDQSxxQkFBQTtBQXgvQkU7RUFDRSxnQkFyTG9CO0VBc0xwQixlQXZMa0I7RUF3TGxCLGlEQUFBO0FDbjdESjtBRHM3REU7RUFFRSxjQUFBO0FDcDdESjtBRHU3REU7RUFDRSxlQUFBO0FDcDdESjtBRHluREU7RUE5TkUsd0RBQUE7RUFnT0EsZ0JBQUE7QUN0bkRKO0FEeW5ERTtFQW5PRSx3REFBQTtFQXFPQSxnQkFBQTtBQ3RuREo7QUR5bkRFO0VBeE9FLHdEQUFBO0VBME9BLGdCQUFBO0FDdG5ESjtBRHluREU7RUE3T0Usd0RBQUE7RUErT0EsZ0JBQUE7QUN0bkRKO0FENG5ERTtFQXJQRSxxRUFBQTtFQThQQSxnQkFBQTtBQ2hvREo7QURtb0RFO0VBalFFLHFFQUFBO0VBMFFBLGdCQUFBO0FDdm9ESjtBRDBvREU7RUE3UUUsd0RBQUE7QUN6M0NKO0FEMG9ERTtFQWpSRSx3REFBQTtBQ3IzQ0o7QUR5b0RJO0VBQ0UsZ0JBQUE7QUN2b0ROO0FEMm9ERTtFQXpSRSx3REFBQTtBQzkyQ0o7QUQyb0RFO0VBN1JFLDBEQUFBO0VBWUYsdUJBQUE7RUFtUkUsZ0JBQUE7QUN2b0RKO0FEMG9ERTtFQWxTRSx3REFBQTtFQVlGLHVCQUFBO0VBd1JFLGdCQUFBO0FDdG9ESjtBRHlvREU7RUF2U0Usd0RBQUE7RUFZRix3QkFBQTtFQTZSRSxnQkFBQTtBQ3JvREo7QUR3b0RFO0VBNVNFLHdEQUFBO0VBOFNBLGdCQUFBO0FDcm9ESjtBRG80REU7RUE3aUJFLHdEQUFBO0FDbjFDSjtBRHNpRUU7O0VBR0ksaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7QUNwaUVOO0FENG5FRTtFQUNFLGlEQUFBO0FDem5FSjtBRHdwRUU7RUFDRSxpREFBQTtBQ3JwRUo7QUR3cEVFO0VBRUksZUFBQTtFQUNBLGdCQUFBO0FDdHBFTjtBRDBwRUU7RUFDRSxlQUFBO0FDdnBFSjtBRDBwRUU7O0VBRUUsZUFBQTtBQ3ZwRUo7QURneEVFO0VBQ0UsaURBQUE7QUM3d0VKO0FEaXhFRTtFQUNFLGlCQUFBO0FDOXdFSjtBRDQxRUU7RUFDRSxlQUFBO0VBQ0EsZ0JBQUE7QUN6MUVKO0FEMjFFSTs7RUFFRSxlQTNFc0I7QUM5d0U1QjtBRGc0RUU7RUFDRSxpREFBQTtBQzczRUo7QURnNEVFO0VBQ0UsZUFBQTtFQUNBLGdCQUFBO0FDNzNFSjtBRGc0RUU7RUFDRSxlQUFBO0FDNzNFSjtBRDBnRkU7RUFDRSxpREFBQTtBQ3ZnRko7QUQwZ0ZFO0VBQ0UsZUFySTBCO0FDbDRFOUI7QUQwZ0ZFOztFQUdJLGVBQUE7RUFDQSxnQkFBQTtBQ3hnRk47QUQ0Z0ZFO0VBRUksZUFqSmlDO0VBa0pqQyxnQkFBQTtBQzFnRk47QURpaUZFO0VBNXhDRSx3REFBQTtBQ2p3Q0o7QUQ0bEZFO0VBRUksaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7QUMxbEZOO0FEOGxGRTtFQW4yQ0Usd0RBQUE7QUN2dkNKO0FEdy9JRTtFQTF3R0Usa0JBZVU7RUFkVixnQkFlWTtFQWRaLGtCQWVZO0VBZFosaURBZVk7QUN6dkNoQjtBRHEvSUU7RUFDRSx5QkFQdUI7QUMzK0kzQjtBRHcvSUk7O0VBQ0UsZUF2QjJCO0VBd0IzQixrQkF0Q1U7QUM5OEloQjtBRHcvSUk7O0VBQ0UsYUFBQTtFQUNBLFlBQUE7QUNyL0lOO0FEdS9JTTs7RUFDRSxlQUFBO0VBQ0Esa0JBaERRO0FDcDhJaEI7QUR5L0lFO0VBQ0UsZ0JBQUE7RUFFQSx1Q0FBQTtBQ3YvSUo7QUQyL0lJOztFQXJFRiw2Q0FBQTtFQUVBLHNCQUFBO0FDbDdJRjtBRDYvSUk7RUE3RUYsNkNBQUE7RUFFQSxzQkFBQTtBQzk2SUY7QURnZ0pFO0VBQ0UsZUFBQTtFQUNBLHNCQW5FaUI7QUMxN0lyQjtBRGdnSkU7RUFDRSxjQUFBO0FDNy9JSjtBRGdnSkU7RUFHRSxpQkFoRXVCO0FDLzdJM0I7QURrZ0pFO0VBQ0UsY0EvRW9CO0VBZ0ZwQiwwQkF6RXFCO0VBNkVyQixnQ0FBQTtBQ2xnSko7QUR5aklJO0VBQ0Usc0JBSnFCO0FDbGpJM0I7QUR5aklJO0VBQ0UsbUJBQUE7QUN2aklOO0FEMmpJTTs7RUF6REosb0ZBQUE7RUFJQSxpREFBQTtFQUdBLHNCQUFBO0FDbmdJRjtBRDRqSU07RUFoRUosc0ZBQUE7RUFJQSxpREFBQTtFQUdBLHNCQUFBO0FDOS9IRjtBRCtqSU07RUF4RUosc0ZBQUE7RUFJQSxpREFBQTtFQUdBLHNCQUFBO0FDei9IRjtBRGlrSUk7RUFDRSxjQUFBO0FDL2pJTjtBRGtrSUk7RUFHRSxjQXpDcUI7QUN6aEkzQjtBRHFrSUk7RUFDRSwwQkFqRG1CO0VBcURuQixnQ0FBQTtBQ3RrSU47QUQ0a0lFO0VBR007O0lBdkZOLDZDQUFBO0VDbC9IQTtFRGdsSU07SUE5Rk4sNkNBQUE7RUMvK0hBO0VEcWxJTTtJQXRHTiw0Q0FBQTtFQzUrSEE7QUFDRjtBRGc1SEk7RUFDRSwwQkFBQTtBQzk0SE47QURpNUhJO0VBQ0UsY0FBQTtFQUNBLGtCQVQyQjtBQ3Q0SGpDO0FEbTVITTs7RUFoQ0osNkNBQUE7RUFFQSxzQkFBQTtBQ2gzSEY7QUR1NUhNO0VBekNKLDZDQUFBO0VBRUEsc0JBQUE7QUM1MkhGO0FEaXJJSTtFQUNFLG9CQUFBO0FDOXFJTjtBRGlySUk7RUFDRSxjQUFBO0VBQ0EsbUJBVDhCO0FDdHFJcEM7QURtcklNOztFQXZDSiw2Q0FBQTtFQUVBLHNCQUFBO0FDem9JRjtBRHVySU07RUFoREosNkNBQUE7RUFFQSxzQkFBQTtBQ3JvSUY7QUQ4Z0ZFOztFQUdFLGVBQUE7QUM1Z0ZKO0FENDlFRTs7RUFSQSxtQkFBQTtFQUNBLGdCQUFBO0VBQ0EsdUJBQUE7RUFRRSxjQUFBO0VBQ0Esc0JBQUE7QUN2OUVKO0FEMDlFSTs7RUFDRSxlQXdDcUI7QUMvL0UzQjtBRGlxRkU7RUFDRSxxQkFBQTtBQzlwRko7QURteUZFO0VBRUksaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7QUNqeUZOO0FEODBGRTs7RUFHSSxpREFBQTtFQUNBLGVBQUE7QUM1MEZOO0FEcStGRTtFQUNFLGlEQUFBO0FDbCtGSjtBRDBpR0U7RUFDRSxpREFBQTtBQ3ZpR0o7QUQwaUdFO0VBQ0UsZUFBQTtBQ3ZpR0o7QURrc0dFO0VBQ0UsaURBQUE7QUMvckdKO0FEdTBHRTtFQUVJLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0FDcjBHTjtBRHU1R0U7RUFDRSxpREFBQTtBQ3A1R0o7QUR1NUdFO0VBRUksZUFBQTtFQUNBLGdCQUFBO0FDcjVHTjtBRHk1R0U7RUFDRSxtQkFBQTtBQ3Q1R0o7QUR5NUdFO0VBQ0UsZUFBQTtBQ3Q1R0o7QUR5NUdFO0VBRUksZUFBQTtFQUNBLGdCQUFBO0FDdjVHTjtBRHNqSEU7RUFDRSxpREFBQTtBQ25qSEo7QURzakhFO0VBRUksaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7QUNwakhOO0FEbW5IRTs7Ozs7OztFQS9sRkUsd0RBQUE7RUF1bUZBLFNBQUE7QUNobkhKO0FEd29IRTtFQUNFLGlEQUFBO0VBQ0EsZUFqQm9CO0VBa0JwQixnQkFqQjJCO0VBa0IzQixtQkFsQjJCO0FDbm5IL0I7QUR3b0hFO0VBQ0UsZUFuQjRCO0VBb0I1QixnQkFsQkE7RUFtQkEsbUJBbkJBO0FDbG5ISjtBRGduRkU7RUFDRSxpREFIWTtBQzFtRmhCO0FEZ25GRTtFQUNFLGlEQVBZO0FDdG1GaEI7QURrbkZJO0VBQ0UsZUFBQTtBQy9tRk47QURzMkVFO0VBUkEsbUJBQUE7RUFDQSxnQkFBQTtFQUNBLHVCQUFBO0VBUUUsY0FBQTtFQUNBLHNCQUFBO0FDbDJFSjtBRHEyRUk7RUFDRSxlQW1RdUI7QUN0bUY3QjtBRHltRkk7RUFDRSxlQUFBO0FDdm1GTjtBRHkxRUU7RUFSQSxtQkFBQTtFQUNBLGdCQUFBO0VBQ0EsdUJBQUE7RUFRRSxjQUFBO0VBQ0Esc0JBQUE7QUNyMUVKO0FEdzFFSTtFQUNFLGVBd1F1QjtBQzlsRjdCO0FEaW1GSTtFQUNFLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0FDL2xGTjtBRHFtRkk7RUFDRSxlQUFBO0FDbG1GTjtBRHMwRUU7RUFSQSxtQkFBQTtFQUNBLGdCQUFBO0VBQ0EsdUJBQUE7RUFRRSxjQUFBO0VBQ0Esc0JBQUE7QUNsMEVKO0FEcTBFSTtFQUNFLGVBc1J1QjtBQ3psRjdCO0FENGxGSTtFQUNFLGVBQUE7QUMxbEZOO0FEeXpFRTtFQVJBLG1CQUFBO0VBQ0EsZ0JBQUE7RUFDQSx1QkFBQTtFQVFFLGNBQUE7RUFDQSxzQkFBQTtBQ3J6RUo7QUR3ekVJO0VBQ0UsZUEyUnVCO0FDamxGN0I7QURvbEZJO0VBQ0UsaURBMUNVO0VBMkNWLGVBQUE7RUFDQSxnQkFBQTtBQ2xsRk47QURnL0JFO0VBRUksaURBQUE7RUFDQSxlQUFBO0FDOStCTjtBRG9nQ0U7RUFyRkUsd0RBQUE7QUMzNkJKO0FEK2tIRTtFQUVJLGlEQUFBO0VBQ0EsZUFBQTtBQzdrSE47QURpbEhFO0VBQ0UsY0FBQTtFQUVFLG9CQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtBQy9rSE47QURtd0lFO0VBQ0UsaURBQUE7QUNod0lKO0FEbXdJRTs7RUFFRSxnQkFBQTtFQUNBLGVBQUE7QUNod0lKO0FEMHlCRTtFQUNFLGdCQUFBO0VBSUEsa0JBQUE7QUMxeUJKO0FENnlCRTtFQUNFLGlCQUFBO0FDMXlCSjtBRDZ5QkU7RUFDRSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0Esb0JBQUE7RUFFQSw2REFBQTtFQUNBLG1CQUFBO0FDM3lCSjtBRDFYRTtFQStwQ0E7SUFVSSxhQUFBO0VDM3lCSjtBQUNGO0FEelpFO0VBQ0UsU0FBQTtFQUNBLG1CQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7RUFHQSxVQUFBO0VBR0Esd0JBQUE7RUFDQSxxQkFBQTtBQ3daSjtBRHRpQkU7RUFFRSxvQkFBQTtFQUdBLE1BQUE7RUFDQSxPQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7QUNzaUJKO0FEbGlCRTtFQUNFLGVBQUE7RUFDQSxhQTNCNEI7QUNna0JoQztBRG5pQkk7RUFHRSxhQUFBO0FDbWlCTjtBRDNoQkU7RUFDRSxhQUFBO0VBQ0Esa0JBQUE7RUFDQSxhQTFDa0I7QUN3a0J0QjtBRDFoQkU7RUFHRSxrQkFBQTtFQUNBLG9CQUFBO0VBQ0Esc0JBQUE7RUFDQSxhQXBEa0I7RUF3RGxCLGFBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7QUN3aEJKO0FEcmhCRTtFQUVFLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLFNBQUE7RUFDQSxPQUFBO0VBQ0EsUUFBQTtFQUVBLGFBcEUyQjtFQXFFM0Isb0JBQUE7RUFDQSx3Q0FBQTtFQUNBLDBEQUFBO0VBQ0EsVUFBQTtBQ3NoQko7QURwaEJJO0VBQ0UsVUFBQTtBQ3NoQk47QURoaEJNO0VBUEY7SUFRSSxZQUFBO0VDbWhCTjtBQUNGO0FEL2dCRTtFQUNFLCtCQXJGbUM7QUN1bUJ2QztBRDFnQkk7RUFDRSxVQUFBO0FDNmdCTjtBRHZnQkU7RUFDRSxrQkFBQTtFQUNBLGFBMUdrQjtFQStHbEIsYUFBQTtFQUlBLHNCQUFBO0VBR0EsY0FBQTtFQUNBLGVBQUE7QUNpZ0JKO0FEN2ZFO0VBQ0UsZUFBQTtFQUtBLFdBQUE7RUFLQSxrQkFBQTtBQ3dmSjtBRDljRTtFQUEwQyxJQUFBO0FDa2Q1QztBRGxkRTtFQUEwQyxJQUFBO0FDa2Q1QztBRGpkRTtFQUF3QyxJQUFBO0FDb2QxQztBRHBkRTtFQUF3QyxJQUFBO0FDb2QxQztBRGxkRTtFQUNFLHFEQUFBO1VBQUEsNkNBQUE7QUNvZEo7QURqZEU7RUFDRSxtREFBQTtVQUFBLDJDQUFBO0FDb2RKO0FEL2NFO0VBQ0UsWUFBQTtBQ2tkSjtBRDVjRTtFQUNFLHVCQUFBO0VBQ0EsMkJBQUE7RUFHQSx5QkFBQTtFQUNBLGtDQUFBO0FDNmNKO0FEaXNCRTtFQUlJLG9DQUFBO0FDanNCTjtBRCt4QkU7RUFDRSwwQkFBQTtBQzd4Qko7QUQreEJJO0VBRUUsK0JBQUE7QUM5eEJOO0FEa3lCSTtFQUNFLCtCQUFBO0FDaHlCTjtBRG15Qkk7RUFDRSwrQkFBQTtFQUNBLDBCQUFBO0FDanlCTjtBRG95Qkk7RUFDRSwwQkFBQTtBQ2x5Qk47QURzeUJFO0VBQ0UsY0FBQTtBQ3B5Qko7QUR1eUJFO0VBQ0UsY0FBQTtBQ3J5Qko7QUR3eUJFO0VBQ0UsY0FBQTtBQ3R5Qko7QUQwekJFO0VBQ0UsMEJBQUE7QUN4ekJKO0FEMnpCRTtFQUNFLDBCQUFBO0FDenpCSjtBRG8xQkU7RUFDRSwwQkFBQTtBQ2wxQko7QURvMUJJO0VBQ0UsY0FBQTtBQ2wxQk47QURzMUJFO0VBQ0UsY0FaZTtBQ3gwQm5CO0FEdTFCRTs7RUFFRSxtQkFBQTtBQ3IxQko7QUQ2MUJFOzs7O0VBSUUsbUJBQUE7QUMzMUJKO0FEODFCRTs7RUFFRSxtQkFBQTtBQzUxQko7QURpMkJJOztFQUNFLG1CQXhDYTtBQ3R6Qm5CO0FEZ29JSTtFQW42SUYsd0hBQUE7QUNzU0Y7QUQ2bklJO0VBbjZJRix5SEFBQTtBQ3lTRjtBRDBuSUk7RUFuNklGLHlIQUFBO0FDNFNGO0FEdW5JSTtFQW42SUYseUhBQUE7QUMrU0Y7QURvbklJO0VBbjZJRiwwSEFBQTtBQ2tURjtBRGluSUk7RUFuNklGLDBIQUFBO0FDcVRGO0FEOG1JSTtFQW42SUYsMkhBQUE7QUN3VEY7QUQybUlJO0VBbjZJRiwySEFBQTtBQzJURjtBRHdtSUk7RUFuNklGLDJIQUFBO0FDOFRGO0FEcW1JSTtFQW42SUYsMkhBQUE7QUNpVUY7QURrbUlJO0VBbjZJRiw0SEFBQTtBQ29VRjtBRCtsSUk7RUFuNklGLDRIQUFBO0FDdVVGO0FENGxJSTtFQW42SUYsNEhBQUE7QUMwVUY7QUR5bElJO0VBbjZJRiw0SEFBQTtBQzZVRjtBRHNsSUk7RUFuNklGLDRIQUFBO0FDZ1ZGO0FEbWxJSTtFQW42SUYsNEhBQUE7QUNtVkY7QURnbElJO0VBbjZJRiw2SEFBQTtBQ3NWRjtB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Qko7QUQ2Zk07Ozs7O0VBQ0UsMENBQUE7QUN2ZlI7QUQrZkU7RUFDRSx5QkFBQTtBQzdmSjtBRGlnQkU7RUFDRSwwQkFBQTtBQy9mSjtBRGlnQkk7RUFDRSx5QkFBQTtBQy9mTjtBRG9nQkU7RUFDRSxpQ0FBQTtBQ2xnQko7QURxZ0JFO0VBQ0UsZ0NBQUE7QUNuZ0JKO0FEd2dCRTtFQUNFLHFDQUFBO0FDdGdCSjtBRG9lTTs7Ozs7RUFDRSwwQ0FBQTtBQzlkUjtBRHNlRTtFQUNFLHlCQUFBO0FDcGVKO0FEd2VFO0VBQ0UsMEJBQUE7QUN0ZUo7QUR3ZUk7RUFDRSx5QkFBQTtBQ3RlTjtBRDJlRTtFQUNFLGlDQUFBO0FDemVKO0FENGVFO0VBQ0UsZ0NBQUE7QUMxZUo7QUQrZUU7RUFDRSxxQ0FBQTtBQzdlSjtBRG9pQkU7RUFDRSxtQkFBQTtFQUNBLFlBQUE7QUNsaUJKO0FEb2lCSTtFQW5DRixtQkFBQTtFQUNBLDBCQUFBO0FDOWZGO0FEb2lCSTtFQXZDRixtQkFBQTtFQUNBLDBCQUFBO0FDMWZGO0FEb2lCSTtFQTNDRixtQkFBQTtFQUNBLDBCQUFBO0FDdGZGO0FEMGZFOzs7RUFHRSw4QkFBQTtBQ3hmSjtBRDJmRTs7Ozs7RUFLRSxjQUFBO0FDemZKO0FENGZFO0VBQ0UseUJBQUE7QUMxZko7QURvakJFO0VBQ0UsaUNBQUE7QUNsakJKO0FEaXhDRTtFQUNFLG1CQUFBO0FDL3dDSjtBRGt4Q0U7O0VBRUUsWUFBQTtBQ2h4Q0o7QURza0JFO0VBR0UsMEJBQUE7RUFDQSxtQkFBQTtFQTFvSEYsMkhBQUE7QUNxa0dGO0FEMGtCRTtFQUNFLGNBQUE7QUN4a0JKO0FDcCtHRTtFQUFLLGNBQUE7QUR1K0dQO0FDbitHQSw4RUFBQTtBQUdBO0VBQWEsWUFBQTtBRHErR2I7QUNwK0dBO0VBQU8sU0FBQTtFQUFXLGlEQUFBO0FEeStHbEI7QUN2K0dBO0VBQ0UsY0FBQTtBRDArR0YiLCJmaWxlIjoic3R5bGVzLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnQgYWxsIHRoZSB0aGVtaW5nIGZ1bmN0aW9uYWxpdHkuXG4vLyBXZSBjYW4gdXNlIHJlbGF0aXZlIGltcG9ydHMgZm9yIGltcG9ydHMgZnJvbSB0aGUgY2RrIGJlY2F1c2Ugd2UgYnVuZGxlIGV2ZXJ5dGhpbmdcbi8vIHVwIGludG8gYSBzaW5nbGUgZmxhdCBzY3NzIGZpbGUgZm9yIG1hdGVyaWFsLlxuLy8gV2Ugd2FudCBvdmVybGF5cyB0byBhbHdheXMgYXBwZWFyIG92ZXIgdXNlciBjb250ZW50LCBzbyBzZXQgYSBiYXNlbGluZVxuLy8gdmVyeSBoaWdoIHotaW5kZXggZm9yIHRoZSBvdmVybGF5IGNvbnRhaW5lciwgd2hpY2ggaXMgd2hlcmUgd2UgY3JlYXRlIHRoZSBuZXdcbi8vIHN0YWNraW5nIGNvbnRleHQgZm9yIGFsbCBvdmVybGF5cy5cbiRjZGstei1pbmRleC1vdmVybGF5LWNvbnRhaW5lcjogMTAwMCAhZGVmYXVsdDtcbiRjZGstei1pbmRleC1vdmVybGF5OiAxMDAwICFkZWZhdWx0O1xuJGNkay16LWluZGV4LW92ZXJsYXktYmFja2Ryb3A6IDEwMDAgIWRlZmF1bHQ7XG5cbi8vIEJhY2tncm91bmQgY29sb3IgZm9yIGFsbCBvZiB0aGUgYmFja2Ryb3BzXG4kY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcC1iYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzIpICFkZWZhdWx0O1xuXG4vLyBEZWZhdWx0IGJhY2tkcm9wIGFuaW1hdGlvbiBpcyBiYXNlZCBvbiB0aGUgTWF0ZXJpYWwgRGVzaWduIHN3aWZ0LWVhc2Utb3V0LlxuJGJhY2tkcm9wLWFuaW1hdGlvbi1kdXJhdGlvbjogNDAwbXMgIWRlZmF1bHQ7XG4kYmFja2Ryb3AtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSkgIWRlZmF1bHQ7XG5cblxuQG1peGluIGNkay1vdmVybGF5KCkge1xuICAuY2RrLW92ZXJsYXktY29udGFpbmVyLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICAgIC8vIERpc2FibGUgZXZlbnRzIGZyb20gYmVpbmcgY2FwdHVyZWQgb24gdGhlIG92ZXJsYXkgY29udGFpbmVyLlxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgLy8gVGhlIGNvbnRhaW5lciBzaG91bGQgYmUgdGhlIHNpemUgb2YgdGhlIHZpZXdwb3J0LlxuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIFRoZSBvdmVybGF5LWNvbnRhaW5lciBpcyBhbiBpbnZpc2libGUgZWxlbWVudCB3aGljaCBjb250YWlucyBhbGwgaW5kaXZpZHVhbCBvdmVybGF5cy5cbiAgLmNkay1vdmVybGF5LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5LWNvbnRhaW5lcjtcblxuICAgICY6ZW1wdHkge1xuICAgICAgLy8gSGlkZSB0aGUgZWxlbWVudCB3aGVuIGl0IGRvZXNuJ3QgaGF2ZSBhbnkgY2hpbGQgbm9kZXMuIFRoaXMgZG9lc24ndFxuICAgICAgLy8gaW5jbHVkZSBvdmVybGF5cyB0aGF0IGhhdmUgYmVlbiBkZXRhY2hlZCwgcmF0aGVyIHRoYW4gZGlzcG9zZWQuXG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdlIHVzZSBhbiBleHRyYSB3cmFwcGVyIGVsZW1lbnQgaW4gb3JkZXIgdG8gdXNlIG1ha2UgdGhlIG92ZXJsYXkgaXRzZWxmIGEgZmxleCBpdGVtLlxuICAvLyBUaGlzIG1ha2VzIGNlbnRlcmluZyB0aGUgb3ZlcmxheSBlYXN5IHdpdGhvdXQgcnVubmluZyBpbnRvIHRoZSBzdWJwaXhlbCByZW5kZXJpbmdcbiAgLy8gcHJvYmxlbXMgdGllZCB0byB1c2luZyBgdHJhbnNmb3JtYCBhbmQgd2l0aG91dCBpbnRlcmZlcmluZyB3aXRoIHRoZSBvdGhlciBwb3NpdGlvblxuICAvLyBzdHJhdGVnaWVzLlxuICAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5O1xuICB9XG5cbiAgLy8gQSBzaW5nbGUgb3ZlcmxheSBwYW5lLlxuICAuY2RrLW92ZXJsYXktcGFuZSB7XG4gICAgLy8gTm90ZTogaXQncyBpbXBvcnRhbnQgZm9yIHRoaXMgb25lIHRvIHN0YXJ0IG9mZiBgYWJzb2x1dGVgLFxuICAgIC8vIGluIG9yZGVyIGZvciB1cyB0byBiZSBhYmxlIHRvIG1lYXN1cmUgaXQgY29ycmVjdGx5LlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5O1xuXG4gICAgLy8gRm9yIGNvbm5lY3RlZC1wb3NpdGlvbiBvdmVybGF5cywgd2Ugc2V0IGBkaXNwbGF5OiBmbGV4YCBpblxuICAgIC8vIG9yZGVyIHRvIGZvcmNlIGBtYXgtd2lkdGhgIGFuZCBgbWF4LWhlaWdodGAgdG8gdGFrZSBlZmZlY3QuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1iYWNrZHJvcCB7XG4gICAgLy8gVE9ETyhqZWxib3Vybik6IHJldXNlIHNpZGVuYXYgZnVsbHNjcmVlbiBtaXhpbi5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuXG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXktYmFja2Ryb3A7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRiYWNrZHJvcC1hbmltYXRpb24tZHVyYXRpb24gJGJhY2tkcm9wLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb247XG4gICAgb3BhY2l0eTogMDtcblxuICAgICYuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAvLyBJbiBoaWdoIGNvbnRyYXN0IG1vZGUgdGhlIHJnYmEgYmFja2dyb3VuZCB3aWxsIGJlY29tZSBzb2xpZCBzbyB3ZSBuZWVkIHRvIGZhbGwgYmFja1xuICAgICAgLy8gdG8gbWFraW5nIGl0IG9wYXF1ZSB1c2luZyBgb3BhY2l0eWAuIE5vdGUgdGhhdCB3ZSBjYW4ndCB1c2UgdGhlIGBjZGstaGlnaC1jb250cmFzdGBcbiAgICAgIC8vIG1peGluLCBiZWNhdXNlIHdlIGNhbid0IG5vcm1hbGl6ZSB0aGUgaW1wb3J0IHBhdGggdG8gdGhlIF9hMTF5LnNjc3MgYm90aCBmb3IgdGhlXG4gICAgICAvLyBzb3VyY2UgYW5kIHdoZW4gdGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkLiBTZWUgIzEwOTA4LlxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wIHtcbiAgICBiYWNrZ3JvdW5kOiAkY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcC1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wIHtcbiAgICAvLyBOb3RlOiBhcyBvZiBGaXJlZm94IDU3LCBoYXZpbmcgdGhlIGJhY2tkcm9wIGJlIGBiYWNrZ3JvdW5kOiBub25lYCB3aWxsIHByZXZlbnQgaXQgZnJvbVxuICAgIC8vIGNhcHR1cmluZyB0aGUgdXNlcidzIG1vdXNlIHNjcm9sbCBldmVudHMuIFNpbmNlIHdlIGFsc28gY2FuJ3QgdXNlIHNvbWV0aGluZyBsaWtlXG4gICAgLy8gYHJnYmEoMCwgMCwgMCwgMClgLCB3ZSB3b3JrIGFyb3VuZCB0aGUgaW5jb25zaXN0ZW5jeSBieSBub3Qgc2V0dGluZyB0aGUgYmFja2dyb3VuZCBhdFxuICAgIC8vIGFsbCBhbmQgdXNpbmcgYG9wYWNpdHlgIHRvIG1ha2UgdGhlIGVsZW1lbnQgdHJhbnNwYXJlbnQuXG4gICAgJiwgJi5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gT3ZlcmxheSBwYXJlbnQgZWxlbWVudCB1c2VkIHdpdGggdGhlIGNvbm5lY3RlZCBwb3NpdGlvbiBzdHJhdGVneS4gVXNlZCB0byBjb25zdHJhaW4gdGhlXG4gIC8vIG92ZXJsYXkgZWxlbWVudCdzIHNpemUgdG8gZml0IHdpdGhpbiB0aGUgdmlld3BvcnQuXG4gIC5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXk7XG5cbiAgICAvLyBXZSB1c2UgYGRpc3BsYXk6IGZsZXhgIG9uIHRoaXMgZWxlbWVudCBleGNsdXNpdmVseSBmb3IgY2VudGVyaW5nIGNvbm5lY3RlZCBvdmVybGF5cy5cbiAgICAvLyBXaGVuICpub3QqIGNlbnRlcmluZywgYSB0b3AvbGVmdC9ib3R0b20vcmlnaHQgd2lsbCBiZSBzZXQgd2hpY2ggb3ZlcnJpZGVzIHRoZSBub3JtYWxcbiAgICAvLyBmbGV4IGxheW91dC5cbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgLy8gV2UgdXNlIHRoZSBgY29sdW1uYCBkaXJlY3Rpb24gaGVyZSB0byBhdm9pZCBzb21lIGZsZXhib3ggaXNzdWVzIGluIEVkZ2VcbiAgICAvLyB3aGVuIHVzaW5nIHRoZSBcImdyb3cgYWZ0ZXIgb3BlblwiIG9wdGlvbnMuXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC8vIEFkZCBzb21lIGRpbWVuc2lvbnMgc28gdGhlIGVsZW1lbnQgaGFzIGFuIGBpbm5lclRleHRgIHdoaWNoIHNvbWUgcGVvcGxlIGRlcGVuZCBvbiBpbiB0ZXN0cy5cbiAgICBtaW4td2lkdGg6IDFweDtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gIH1cblxuICAvLyBVc2VkIHdoZW4gZGlzYWJsaW5nIGdsb2JhbCBzY3JvbGxpbmcuXG4gIC5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG5cbiAgICAvLyBOZWNlc3NhcnkgZm9yIHRoZSBjb250ZW50IG5vdCB0byBsb3NlIGl0cyB3aWR0aC4gTm90ZSB0aGF0IHdlJ3JlIHVzaW5nIDEwMCUsIGluc3RlYWQgb2ZcbiAgICAvLyAxMDB2dywgYmVjYXVzZSAxMDB2dyBpbmNsdWRlcyB0aGUgd2lkdGggcGx1cyB0aGUgc2Nyb2xsYmFyLCB3aGVyZWFzIDEwMCUgaXMgdGhlIHdpZHRoXG4gICAgLy8gdGhhdCB0aGUgZWxlbWVudCBoYWQgYmVmb3JlIHdlIG1hZGUgaXQgYGZpeGVkYC5cbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC8vIE5vdGU6IHRoaXMgd2lsbCBhbHdheXMgYWRkIGEgc2Nyb2xsYmFyIHRvIHdoYXRldmVyIGVsZW1lbnQgaXQgaXMgb24sIHdoaWNoIGNhblxuICAgIC8vIHBvdGVudGlhbGx5IHJlc3VsdCBpbiBkb3VibGUgc2Nyb2xsYmFycy4gSXQgc2hvdWxkbid0IGJlIGFuIGlzc3VlLCBiZWNhdXNlIHdlIHdvbid0XG4gICAgLy8gYmxvY2sgc2Nyb2xsaW5nIG9uIGEgcGFnZSB0aGF0IGRvZXNuJ3QgaGF2ZSBhIHNjcm9sbGJhciBpbiB0aGUgZmlyc3QgcGxhY2UuXG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICB9XG59XG5cbkBtaXhpbiBjZGstYTExeSB7XG4gIC5jZGstdmlzdWFsbHktaGlkZGVuIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuXG4gICAgLy8gQXZvaWQgYnJvd3NlcnMgcmVuZGVyaW5nIHRoZSBmb2N1cyByaW5nIGluIHNvbWUgY2FzZXMuXG4gICAgb3V0bGluZTogMDtcblxuICAgIC8vIEF2b2lkIHNvbWUgY2FzZXMgd2hlcmUgdGhlIGJyb3dzZXIgd2lsbCBzdGlsbCByZW5kZXIgdGhlIG5hdGl2ZSBjb250cm9scyAoc2VlICM5MDQ5KS5cbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICB9XG59XG5cbi8vIEFwcGxpZXMgc3R5bGVzIGZvciB1c2VycyBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuIE5vdGUgdGhhdCB0aGlzIG9ubHkgYXBwbGllc1xuLy8gdG8gTWljcm9zb2Z0IGJyb3dzZXJzLiBDaHJvbWUgY2FuIGJlIGluY2x1ZGVkIGJ5IGNoZWNraW5nIGZvciB0aGUgYGh0bWxbaGNdYFxuLy8gYXR0cmlidXRlLCBob3dldmVyIENocm9tZSBoYW5kbGVzIGhpZ2ggY29udHJhc3QgZGlmZmVyZW50bHkuXG4vL1xuLy8gQHBhcmFtIHRhcmdldCBXaGljaCBraW5kIG9mIGhpZ2ggY29udHJhc3Qgc2V0dGluZyB0byB0YXJnZXQuIERlZmF1bHRzIHRvIGBhY3RpdmVgLCBjYW4gYmVcbi8vICAgIGB3aGl0ZS1vbi1ibGFja2Agb3IgYGJsYWNrLW9uLXdoaXRlYC5cbkBtaXhpbiBjZGstaGlnaC1jb250cmFzdCgkdGFyZ2V0OiBhY3RpdmUpIHtcbiAgQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogJHRhcmdldCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIENvcmUgc3R5bGVzIHRoYXQgZW5hYmxlIG1vbml0b3JpbmcgYXV0b2ZpbGwgc3RhdGUgb2YgdGV4dCBmaWVsZHMuXG5AbWl4aW4gY2RrLXRleHQtZmllbGQge1xuICAvLyBLZXlmcmFtZXMgdGhhdCBhcHBseSBubyBzdHlsZXMsIGJ1dCBhbGxvdyB1cyB0byBtb25pdG9yIHdoZW4gYW4gdGV4dCBmaWVsZCBiZWNvbWVzIGF1dG9maWxsZWRcbiAgLy8gYnkgd2F0Y2hpbmcgZm9yIHRoZSBhbmltYXRpb24gZXZlbnRzIHRoYXQgYXJlIGZpcmVkIHdoZW4gdGhleSBzdGFydC4gTm90ZTogdGhlIC8qISovIGNvbW1lbnQgaXNcbiAgLy8gbmVlZGVkIHRvIHByZXZlbnQgTGliU2FzcyBmcm9tIHN0cmlwcGluZyB0aGUga2V5ZnJhbWVzIG91dC5cbiAgLy8gQmFzZWQgb246IGh0dHBzOi8vbWVkaXVtLmNvbS9AYnJ1bm4vZGV0ZWN0aW5nLWF1dG9maWxsZWQtZmllbGRzLWluLWphdmFzY3JpcHQtYWVkNTk4ZDI1ZGE3XG4gIEBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgey8qISovfVxuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCB7LyohKi99XG5cbiAgLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxsIHtcbiAgICBhbmltYXRpb24tbmFtZTogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQ7XG4gIH1cblxuICAuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCkge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQ7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIHJlc2l6ZSBoYW5kbGUgb24gYXV0b3NpemluZyB0ZXh0YXJlYXMsIGJlY2F1c2Ugd2hhdGV2ZXIgaGVpZ2h0XG4gIC8vIHRoZSB1c2VyIHJlc2l6ZWQgdG8gd2lsbCBiZSBvdmVyd3JpdHRlbiBvbmNlIHRoZXkgc3RhcnQgdHlwaW5nIGFnYWluLlxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUge1xuICAgIHJlc2l6ZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRoaXMgY2xhc3MgaXMgdGVtcG9yYXJpbHkgYXBwbGllZCB0byB0aGUgdGV4dGFyZWEgd2hlbiBpdCBpcyBiZWluZyBtZWFzdXJlZC4gSXQgaXMgaW1tZWRpYXRlbHlcbiAgLy8gcmVtb3ZlZCB3aGVuIG1lYXN1cmluZyBpcyBjb21wbGV0ZS4gV2UgdXNlIGAhaW1wb3J0YW50YCBydWxlcyBoZXJlIHRvIG1ha2Ugc3VyZSB1c2VyLXNwZWNpZmllZFxuICAvLyBydWxlcyBkbyBub3QgaW50ZXJmZXJlIHdpdGggdGhlIG1lYXN1cmVtZW50LlxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nIHtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgLy8gSGF2aW5nIDJweCB0b3AgYW5kIGJvdHRvbSBwYWRkaW5nIHNlZW1zIHRvIGZpeCBhIGJ1ZyB3aGVyZSBDaHJvbWUgZ2V0cyBhbiBpbmNvcnJlY3RcbiAgICAvLyBtZWFzdXJlbWVudC4gV2UganVzdCBoYXZlIHRvIGFjY291bnQgZm9yIGl0IGxhdGVyIGFuZCBzdWJ0cmFjdCBpdCBvZmYgdGhlIGZpbmFsIHJlc3VsdC5cbiAgICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8gVXNlZCB0byBnZW5lcmF0ZSBVSURzIGZvciBrZXlmcmFtZXMgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQgZmllbGQgYXV0b2ZpbGwgc3R5bGVzLlxuJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50OiAwO1xuXG4vLyBNaXhpbiB1c2VkIHRvIGFwcGx5IGN1c3RvbSBiYWNrZ3JvdW5kIGFuZCBmb3JlZ3JvdW5kIGNvbG9ycyB0byBhbiBhdXRvZmlsbGVkIHRleHQgZmllbGQuXG4vLyBCYXNlZCBvbjogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjc4MTU0OS9cbi8vIHJlbW92aW5nLWlucHV0LWJhY2tncm91bmQtY29sb3VyLWZvci1jaHJvbWUtYXV0b2NvbXBsZXRlI2Fuc3dlci0zNzQzMjI2MFxuQG1peGluIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yKCRiYWNrZ3JvdW5kLCAkZm9yZWdyb3VuZDonJykge1xuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLSN7JGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50fSB7XG4gICAgdG8ge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICBAaWYgJGZvcmVncm91bmQgIT0gJycgeyBjb2xvcjogJGZvcmVncm91bmQ7IH1cbiAgICB9XG4gIH1cblxuICAmOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci0jeyRjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudH07XG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgfVxuXG4gICYuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCxcbiAgICAgICAgICAgICAgICAgICAgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItI3skY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnR9O1xuICB9XG5cbiAgJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50OlxuICAgICAgJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50ICsgMSAhZ2xvYmFsO1xufVxuXG5cbi8vIENvcmUgc3R5bGVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gYXBwbHkgbWF0ZXJpYWwgZGVzaWduIHRyZWF0bWVudHMgdG8gYW55IGVsZW1lbnQuXG4vLyBNZWRpYSBxdWVyaWVzXG4vLyBUT0RPKGpvc2VwaHBlcnJvdHQpOiBDaGFuZ2UgJG1hdC14c21hbGwgYW5kICRtYXQtc21hbGwgdXNhZ2VzIHRvIHJlbHkgb24gQnJlYWtwb2ludE9ic2VydmVyLFxuJG1hdC14c21hbGw6ICdtYXgtd2lkdGg6IDU5OXB4JztcbiRtYXQtc21hbGw6ICdtYXgtd2lkdGg6IDk1OXB4JztcblxuLy8gVE9ETzogUmV2aXNpdCBhbGwgei1pbmRpY2VzIGJlZm9yZSBiZXRhXG4vLyB6LWluZGV4IG1hc3RlciBsaXN0XG5cbiR6LWluZGV4LWZhYjogMjAgIWRlZmF1bHQ7XG4kei1pbmRleC1kcmF3ZXI6IDEwMCAhZGVmYXVsdDtcblxuLy8gR2xvYmFsIGNvbnN0YW50c1xuJHBpOiAzLjE0MTU5MjY1O1xuXG4vLyBQYWRkaW5nIGJldHdlZW4gaW5wdXQgdG9nZ2xlcyBhbmQgdGhlaXIgbGFiZWxzXG4kbWF0LXRvZ2dsZS1wYWRkaW5nOiA4cHggIWRlZmF1bHQ7XG4vLyBXaWR0aCBhbmQgaGVpZ2h0IG9mIGlucHV0IHRvZ2dsZXNcbiRtYXQtdG9nZ2xlLXNpemU6IDIwcHggIWRlZmF1bHQ7XG5cbi8vIEVhc2luZyBDdXJ2ZXNcbi8vIFRPRE8oamVsYm91cm4pOiBhbGwgb2YgdGhlc2UgbmVlZCB0byBiZSByZXZpc2l0ZWRcblxuLy8gVGhlIGRlZmF1bHQgYW5pbWF0aW9uIGN1cnZlcyB1c2VkIGJ5IG1hdGVyaWFsIGRlc2lnbi5cbiRtYXQtbGluZWFyLW91dC1zbG93LWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMC4xKSAhZGVmYXVsdDtcbiRtYXQtZmFzdC1vdXQtc2xvdy1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWRlZmF1bHQ7XG4kbWF0LWZhc3Qtb3V0LWxpbmVhci1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpICFkZWZhdWx0O1xuXG4kZWFzZS1pbi1vdXQtY3VydmUtZnVuY3Rpb246IGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKSAhZGVmYXVsdDtcblxuJHN3aWZ0LWVhc2Utb3V0LWR1cmF0aW9uOiA0MDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLW91dC10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpICFkZWZhdWx0O1xuJHN3aWZ0LWVhc2Utb3V0OiBhbGwgJHN3aWZ0LWVhc2Utb3V0LWR1cmF0aW9uICRzd2lmdC1lYXNlLW91dC10aW1pbmctZnVuY3Rpb24gIWRlZmF1bHQ7XG5cbiRzd2lmdC1lYXNlLWluLWR1cmF0aW9uOiAzMDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAsIDAuNTUsIDAuMikgIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1pbjogYWxsICRzd2lmdC1lYXNlLWluLWR1cmF0aW9uICRzd2lmdC1lYXNlLWluLXRpbWluZy1mdW5jdGlvbiAhZGVmYXVsdDtcblxuJHN3aWZ0LWVhc2UtaW4tb3V0LWR1cmF0aW9uOiA1MDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLW91dC10aW1pbmctZnVuY3Rpb246ICRlYXNlLWluLW91dC1jdXJ2ZS1mdW5jdGlvbiAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLW91dDogYWxsICRzd2lmdC1lYXNlLWluLW91dC1kdXJhdGlvbiAkc3dpZnQtZWFzZS1pbi1vdXQtdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuXG4kc3dpZnQtbGluZWFyLWR1cmF0aW9uOiA4MG1zICFkZWZhdWx0O1xuJHN3aWZ0LWxpbmVhci10aW1pbmctZnVuY3Rpb246IGxpbmVhciAhZGVmYXVsdDtcbiRzd2lmdC1saW5lYXI6IGFsbCAkc3dpZnQtbGluZWFyLWR1cmF0aW9uICRzd2lmdC1saW5lYXItdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuXG5cblxuLy8gQSBjb2xsZWN0aW9uIG9mIG1peGlucyBhbmQgQ1NTIGNsYXNzZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBhcHBseSBlbGV2YXRpb24gdG8gYSBtYXRlcmlhbFxuLy8gZWxlbWVudC5cbi8vIFNlZTogaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vZW52aXJvbm1lbnQvZWxldmF0aW9uLmh0bWxcbi8vIEV4YW1wbGVzOlxuLy9cbi8vXG4vLyAubWF0LWZvbyB7XG4vLyAgIEBpbmNsdWRlICRtYXQtZWxldmF0aW9uKDIpO1xuLy9cbi8vICAgJjphY3RpdmUge1xuLy8gICAgIEBpbmNsdWRlICRtYXQtZWxldmF0aW9uKDgpO1xuLy8gICB9XG4vLyB9XG4vL1xuLy8gPGRpdiBpZD1cImV4dGVybmFsLWNhcmRcIiBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejJcIj48cD5Tb21lIGNvbnRlbnQ8L3A+PC9kaXY+XG4vL1xuLy8gRm9yIGFuIGV4cGxhbmF0aW9uIG9mIHRoZSBkZXNpZ24gYmVoaW5kIGhvdyBlbGV2YXRpb24gaXMgaW1wbGVtZW50ZWQsIHNlZSB0aGUgZGVzaWduIGRvYyBhdFxuLy8gaHR0cHM6Ly9nb28uZ2wvS3EwazlaLlxuXG4vLyBDb2xvcnMgZm9yIHVtYnJhLCBwZW51bWJyYSwgYW5kIGFtYmllbnQgc2hhZG93cy4gQXMgZGVzY3JpYmVkIGluIHRoZSBkZXNpZ24gZG9jLCBlYWNoIGVsZXZhdGlvblxuLy8gbGV2ZWwgaXMgY3JlYXRlZCB1c2luZyBhIHNldCBvZiAzIHNoYWRvdyB2YWx1ZXMsIG9uZSBmb3IgdW1icmEgKHRoZSBzaGFkb3cgcmVwcmVzZW50aW5nIHRoZVxuLy8gc3BhY2UgY29tcGxldGVseSBvYnNjdXJlZCBieSBhbiBvYmplY3QgcmVsYXRpdmUgdG8gaXRzIGxpZ2h0IHNvdXJjZSksIG9uZSBmb3IgcGVudW1icmEgKHRoZVxuLy8gc3BhY2UgcGFydGlhbGx5IG9ic2N1cmVkIGJ5IGFuIG9iamVjdCksIGFuZCBvbmUgZm9yIGFtYmllbnQgKHRoZSBzcGFjZSB3aGljaCBjb250YWlucyB0aGUgb2JqZWN0XG4vLyBpdHNlbGYpLiBGb3IgYSBmdXJ0aGVyIGV4cGxhbmF0aW9uIG9mIHRoZXNlIHRlcm1zIGFuZCB0aGVpciBtZWFuaW5ncywgc2VlXG4vLyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9VbWJyYSxfcGVudW1icmFfYW5kX2FudHVtYnJhLlxuXG4vLyBNYXBzIGZvciB0aGUgZGlmZmVyZW50IHNoYWRvdyBzZXRzIGFuZCB0aGVpciB2YWx1ZXMgd2l0aGluIGVhY2ggei1zcGFjZS4gVGhlc2UgdmFsdWVzIHdlcmVcbi8vIGNyZWF0ZWQgYnkgdGFraW5nIGEgZmV3IHJlZmVyZW5jZSBzaGFkb3cgc2V0cyBjcmVhdGVkIGJ5IEdvb2dsZSdzIERlc2lnbmVycyBhbmQgaW50ZXJwb2xhdGluZ1xuLy8gYWxsIG9mIHRoZSB2YWx1ZXMgYmV0d2VlbiB0aGVtLlxuXG5AZnVuY3Rpb24gX2dldC11bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSkge1xuICAkc2hhZG93LWNvbG9yOiBpZih0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IsIHJnYmEoJGNvbG9yLCAkb3BhY2l0eSAqIDAuMiksICRjb2xvcik7XG5cbiAgQHJldHVybiAoXG4gICAgMDogJzBweCAwcHggMHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOiAnMHB4IDJweCAxcHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyOiAnMHB4IDNweCAxcHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAzOiAnMHB4IDNweCAzcHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA0OiAnMHB4IDJweCA0cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA1OiAnMHB4IDNweCA1cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA2OiAnMHB4IDNweCA1cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA3OiAnMHB4IDRweCA1cHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA4OiAnMHB4IDVweCA1cHggLTNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA5OiAnMHB4IDVweCA2cHggLTNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMDogJzBweCA2cHggNnB4IC0zcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTE6ICcwcHggNnB4IDdweCAtNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEyOiAnMHB4IDdweCA4cHggLTRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMzogJzBweCA3cHggOHB4IC00cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTQ6ICcwcHggN3B4IDlweCAtNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE1OiAnMHB4IDhweCA5cHggLTVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNjogJzBweCA4cHggMTBweCAtNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE3OiAnMHB4IDhweCAxMXB4IC01cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTg6ICcwcHggOXB4IDExcHggLTVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOTogJzBweCA5cHggMTJweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIwOiAnMHB4IDEwcHggMTNweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIxOiAnMHB4IDEwcHggMTNweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIyOiAnMHB4IDEwcHggMTRweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIzOiAnMHB4IDExcHggMTRweCAtN3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI0OiAnMHB4IDExcHggMTVweCAtN3B4ICN7JHNoYWRvdy1jb2xvcn0nXG4gICk7XG59XG5cbkBmdW5jdGlvbiBfZ2V0LXBlbnVtYnJhLW1hcCgkY29sb3IsICRvcGFjaXR5KSB7XG4gICRzaGFkb3ctY29sb3I6IGlmKHR5cGUtb2YoJGNvbG9yKSA9PSBjb2xvciwgcmdiYSgkY29sb3IsICRvcGFjaXR5ICogMC4xNCksICRjb2xvcik7XG5cbiAgQHJldHVybiAoXG4gICAgMDogJzBweCAwcHggMHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOiAnMHB4IDFweCAxcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI6ICcwcHggMnB4IDJweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMzogJzBweCAzcHggNHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA0OiAnMHB4IDRweCA1cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDU6ICcwcHggNXB4IDhweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNjogJzBweCA2cHggMTBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNzogJzBweCA3cHggMTBweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgODogJzBweCA4cHggMTBweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgOTogJzBweCA5cHggMTJweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTA6ICcwcHggMTBweCAxNHB4IDFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMTogJzBweCAxMXB4IDE1cHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEyOiAnMHB4IDEycHggMTdweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTM6ICcwcHggMTNweCAxOXB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNDogJzBweCAxNHB4IDIxcHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE1OiAnMHB4IDE1cHggMjJweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTY6ICcwcHggMTZweCAyNHB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNzogJzBweCAxN3B4IDI2cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE4OiAnMHB4IDE4cHggMjhweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTk6ICcwcHggMTlweCAyOXB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMDogJzBweCAyMHB4IDMxcHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIxOiAnMHB4IDIxcHggMzNweCAzcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjI6ICcwcHggMjJweCAzNXB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMzogJzBweCAyM3B4IDM2cHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI0OiAnMHB4IDI0cHggMzhweCAzcHggI3skc2hhZG93LWNvbG9yfSdcbiAgKTtcbn1cblxuQGZ1bmN0aW9uIF9nZXQtYW1iaWVudC1tYXAoJGNvbG9yLCAkb3BhY2l0eSkge1xuICAkc2hhZG93LWNvbG9yOiBpZih0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IsIHJnYmEoJGNvbG9yLCAkb3BhY2l0eSAqIDAuMTIpLCAkY29sb3IpO1xuXG4gIEByZXR1cm4gKFxuICAgIDA6ICcwcHggMHB4IDBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTogJzBweCAxcHggM3B4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyOiAnMHB4IDFweCA1cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDM6ICcwcHggMXB4IDhweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNDogJzBweCAxcHggMTBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNTogJzBweCAxcHggMTRweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNjogJzBweCAxcHggMThweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNzogJzBweCAycHggMTZweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgODogJzBweCAzcHggMTRweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgOTogJzBweCAzcHggMTZweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTA6ICcwcHggNHB4IDE4cHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDExOiAnMHB4IDRweCAyMHB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMjogJzBweCA1cHggMjJweCA0cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTM6ICcwcHggNXB4IDI0cHggNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE0OiAnMHB4IDVweCAyNnB4IDRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNTogJzBweCA2cHggMjhweCA1cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTY6ICcwcHggNnB4IDMwcHggNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE3OiAnMHB4IDZweCAzMnB4IDVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxODogJzBweCA3cHggMzRweCA2cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTk6ICcwcHggN3B4IDM2cHggNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIwOiAnMHB4IDhweCAzOHB4IDdweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMTogJzBweCA4cHggNDBweCA3cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjI6ICcwcHggOHB4IDQycHggN3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIzOiAnMHB4IDlweCA0NHB4IDhweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyNDogJzBweCA5cHggNDZweCA4cHggI3skc2hhZG93LWNvbG9yfSdcbiAgKTtcbn1cblxuLy8gVGhlIGRlZmF1bHQgZHVyYXRpb24gdmFsdWUgZm9yIGVsZXZhdGlvbiB0cmFuc2l0aW9ucy5cbiRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb246IDI4MG1zICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBlYXNpbmcgdmFsdWUgZm9yIGVsZXZhdGlvbiB0cmFuc2l0aW9ucy5cbiRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkbWF0LWZhc3Qtb3V0LXNsb3ctaW4tdGltaW5nLWZ1bmN0aW9uO1xuXG4vLyBUaGUgZGVmYXVsdCBjb2xvciBmb3IgZWxldmF0aW9uIHNoYWRvd3MuXG4kbWF0LWVsZXZhdGlvbi1jb2xvcjogYmxhY2sgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IG9wYWNpdHkgc2NhbGluZyB2YWx1ZSBmb3IgZWxldmF0aW9uIHNoYWRvd3MuXG4kbWF0LWVsZXZhdGlvbi1vcGFjaXR5OiAxICFkZWZhdWx0O1xuXG4vLyBQcmVmaXggZm9yIGVsZXZhdGlvbi1yZWxhdGVkIHNlbGVjdG9ycy5cbiRfbWF0LWVsZXZhdGlvbi1wcmVmaXg6ICdtYXQtZWxldmF0aW9uLXonO1xuXG4vLyBBcHBsaWVzIHRoZSBjb3JyZWN0IGNzcyBydWxlcyB0byBhbiBlbGVtZW50IHRvIGdpdmUgaXQgdGhlIGVsZXZhdGlvbiBzcGVjaWZpZWQgYnkgJHpWYWx1ZS5cbi8vIFRoZSAkelZhbHVlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyNC5cbkBtaXhpbiBtYXQtZWxldmF0aW9uKCR6VmFsdWUsICRjb2xvcjogJG1hdC1lbGV2YXRpb24tY29sb3IsICRvcGFjaXR5OiAkbWF0LWVsZXZhdGlvbi1vcGFjaXR5KSB7XG4gIEBpZiB0eXBlLW9mKCR6VmFsdWUpICE9IG51bWJlciBvciBub3QgdW5pdGxlc3MoJHpWYWx1ZSkge1xuICAgIEBlcnJvciAnJHpWYWx1ZSBtdXN0IGJlIGEgdW5pdGxlc3MgbnVtYmVyJztcbiAgfVxuICBAaWYgJHpWYWx1ZSA8IDAgb3IgJHpWYWx1ZSA+IDI0IHtcbiAgICBAZXJyb3IgJyR6VmFsdWUgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDI0JztcbiAgfVxuXG4gIGJveC1zaGFkb3c6ICN7bWFwLWdldChfZ2V0LXVtYnJhLW1hcCgkY29sb3IsICRvcGFjaXR5KSwgJHpWYWx1ZSl9LFxuICAgICAgICAgICAgICAje21hcC1nZXQoX2dldC1wZW51bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSksICR6VmFsdWUpfSxcbiAgICAgICAgICAgICAgI3ttYXAtZ2V0KF9nZXQtYW1iaWVudC1tYXAoJGNvbG9yLCAkb3BhY2l0eSksICR6VmFsdWUpfTtcbn1cblxuQG1peGluIF9tYXQtdGhlbWUtZWxldmF0aW9uKCR6VmFsdWUsICR0aGVtZSwgJG9wYWNpdHk6ICRtYXQtZWxldmF0aW9uLW9wYWNpdHkpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGVsZXZhdGlvbi1jb2xvcjogbWFwLWdldCgkZm9yZWdyb3VuZCwgZWxldmF0aW9uKTtcbiAgJGVsZXZhdGlvbi1jb2xvci1vci1kZWZhdWx0OiBpZigkZWxldmF0aW9uLWNvbG9yID09IG51bGwsICRtYXQtZWxldmF0aW9uLWNvbG9yLCAkZWxldmF0aW9uLWNvbG9yKTtcblxuICBAaW5jbHVkZSBtYXQtZWxldmF0aW9uKCR6VmFsdWUsICRlbGV2YXRpb24tY29sb3Itb3ItZGVmYXVsdCwgJG9wYWNpdHkpO1xufVxuXG4vLyBBcHBsaWVzIHRoZSBlbGV2YXRpb24gdG8gYW4gZWxlbWVudCBpbiBhIG1hbm5lciB0aGF0IGFsbG93c1xuLy8gY29uc3VtZXJzIHRvIG92ZXJyaWRlIGl0IHZpYSB0aGUgTWF0ZXJpYWwgZWxldmF0aW9uIGNsYXNzZXMuXG5AbWl4aW4gbWF0LW92ZXJyaWRhYmxlLWVsZXZhdGlvbihcbiAgICAkelZhbHVlLFxuICAgICRjb2xvcjogJG1hdC1lbGV2YXRpb24tY29sb3IsXG4gICAgJG9wYWNpdHk6ICRtYXQtZWxldmF0aW9uLW9wYWNpdHkpIHtcbiAgJjpub3QoW2NsYXNzKj0nI3skX21hdC1lbGV2YXRpb24tcHJlZml4fSddKSB7XG4gICAgQGluY2x1ZGUgbWF0LWVsZXZhdGlvbigkelZhbHVlLCAkY29sb3IsICRvcGFjaXR5KTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oJHpWYWx1ZSwgJHRoZW1lLCAkb3BhY2l0eTogJG1hdC1lbGV2YXRpb24tb3BhY2l0eSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkZWxldmF0aW9uLWNvbG9yOiBtYXAtZ2V0KCRmb3JlZ3JvdW5kLCBlbGV2YXRpb24pO1xuICAkZWxldmF0aW9uLWNvbG9yLW9yLWRlZmF1bHQ6IGlmKCRlbGV2YXRpb24tY29sb3IgPT0gbnVsbCwgJG1hdC1lbGV2YXRpb24tY29sb3IsICRlbGV2YXRpb24tY29sb3IpO1xuXG4gIEBpbmNsdWRlIG1hdC1vdmVycmlkYWJsZS1lbGV2YXRpb24oJHpWYWx1ZSwgJGVsZXZhdGlvbi1jb2xvci1vci1kZWZhdWx0LCAkb3BhY2l0eSk7XG59XG5cbi8vIFJldHVybnMgYSBzdHJpbmcgdGhhdCBjYW4gYmUgdXNlZCBhcyB0aGUgdmFsdWUgZm9yIGEgdHJhbnNpdGlvbiBwcm9wZXJ0eSBmb3IgZWxldmF0aW9uLlxuLy8gQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIGRpcmVjdGx5IGlzIHVzZWZ1bCBpbiBzaXR1YXRpb25zIHdoZXJlIGEgY29tcG9uZW50IG5lZWRzIHRvIHRyYW5zaXRpb25cbi8vIG1vcmUgdGhhbiBvbmUgcHJvcGVydHkuXG4vL1xuLy8gLmZvbyB7XG4vLyAgIHRyYW5zaXRpb246IG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1wcm9wZXJ0eS12YWx1ZSgpLCBvcGFjaXR5IDEwMG1zIGVhc2U7XG4vLyB9XG5AZnVuY3Rpb24gbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXByb3BlcnR5LXZhbHVlKFxuICAgICRkdXJhdGlvbjogJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbixcbiAgICAkZWFzaW5nOiAkbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbikge1xuICBAcmV0dXJuIGJveC1zaGFkb3cgI3skZHVyYXRpb259ICN7JGVhc2luZ307XG59XG5cbi8vIEFwcGxpZXMgdGhlIGNvcnJlY3QgY3NzIHJ1bGVzIG5lZWRlZCB0byBoYXZlIGFuIGVsZW1lbnQgdHJhbnNpdGlvbiBiZXR3ZWVuIGVsZXZhdGlvbnMuXG4vLyBUaGlzIG1peGluIHNob3VsZCBiZSBhcHBsaWVkIHRvIGVsZW1lbnRzIHdob3NlIGVsZXZhdGlvbiB2YWx1ZXMgd2lsbCBjaGFuZ2UgZGVwZW5kaW5nIG9uIHRoZWlyXG4vLyBjb250ZXh0IChlLmcuIHdoZW4gYWN0aXZlIG9yIGRpc2FibGVkKS5cbi8vXG4vLyBOT1RFKHRyYXZpc2thdWZtYW4pOiBCb3RoIHRoaXMgbWl4aW4gYW5kIHRoZSBhYm92ZSBmdW5jdGlvbiB1c2UgZGVmYXVsdCBwYXJhbWV0ZXJzIHNvIHRoZXkgY2FuXG4vLyBiZSB1c2VkIGluIHRoZSBzYW1lIHdheSBieSBjbGllbnRzLlxuQG1peGluIG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbihcbiAgICAkZHVyYXRpb246ICRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24sXG4gICAgJGVhc2luZzogJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pIHtcbiAgdHJhbnNpdGlvbjogbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXByb3BlcnR5LXZhbHVlKCRkdXJhdGlvbiwgJGVhc2luZyk7XG59XG5cbi8vIENvbG9yIHBhbGV0dGVzIGZyb20gdGhlIE1hdGVyaWFsIERlc2lnbiBzcGVjLlxuLy8gU2VlIGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2NvbG9yL1xuLy9cbi8vIENvbnRyYXN0IGNvbG9ycyBhcmUgaGFyZC1jb2RlZCBiZWNhdXNlIGl0IGlzIHRvbyBkaWZmaWN1bHQgKHByb2JhYmx5IGltcG9zc2libGUpIHRvXG4vLyBjYWxjdWxhdGUgdGhlbS4gVGhlc2UgY29udHJhc3QgY29sb3JzIGFyZSBwdWxsZWQgZnJvbSB0aGUgcHVibGljIE1hdGVyaWFsIERlc2lnbiBzcGVjIHN3YXRjaGVzLlxuLy8gV2hpbGUgdGhlIGNvbnRyYXN0IGNvbG9ycyBpbiB0aGUgc3BlYyBhcmUgbm90IHByZXNjcmlwdGl2ZSwgd2UgdXNlIHRoZW0gZm9yIGNvbnZlbmllbmNlLlxuXG5cbi8vIEBkZXByZWNhdGVkIHJlbmFtZWQgdG8gJGRhcmstcHJpbWFyeS10ZXh0LlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJGJsYWNrLTg3LW9wYWNpdHk6IHJnYmEoYmxhY2ssIDAuODcpO1xuLy8gQGRlcHJlY2F0ZWQgcmVuYW1lZCB0byAkbGlnaHQtcHJpbWFyeS10ZXh0LlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJHdoaXRlLTg3LW9wYWNpdHk6IHJnYmEod2hpdGUsIDAuODcpO1xuLy8gQGRlcHJlY2F0ZWQgdXNlICRkYXJrLVtzZWNvbmRhcnktdGV4dCxkaXNhYmxlZC10ZXh0LGRpdmlkZXJzLGZvY3VzZWRdIGluc3RlYWQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kYmxhY2stMTItb3BhY2l0eTogcmdiYShibGFjaywgMC4xMik7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGxpZ2h0LVtzZWNvbmRhcnktdGV4dCxkaXNhYmxlZC10ZXh0LGRpdmlkZXJzLGZvY3VzZWRdIGluc3RlYWQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kd2hpdGUtMTItb3BhY2l0eTogcmdiYSh3aGl0ZSwgMC4xMik7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGRhcmstW3NlY29uZGFyeS10ZXh0LGRpc2FibGVkLXRleHQsZGl2aWRlcnMsZm9jdXNlZF0gaW5zdGVhZC5cbi8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjBcbiRibGFjay02LW9wYWNpdHk6IHJnYmEoYmxhY2ssIDAuMDYpO1xuLy8gQGRlcHJlY2F0ZWQgdXNlICRsaWdodC1bc2Vjb25kYXJ5LXRleHQsZGlzYWJsZWQtdGV4dCxkaXZpZGVycyxmb2N1c2VkXSBpbnN0ZWFkLlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJHdoaXRlLTYtb3BhY2l0eTogcmdiYSh3aGl0ZSwgMC4wNik7XG5cbiRkYXJrLXByaW1hcnktdGV4dDogcmdiYShibGFjaywgMC44Nyk7XG4kZGFyay1zZWNvbmRhcnktdGV4dDogcmdiYShibGFjaywgMC41NCk7XG4kZGFyay1kaXNhYmxlZC10ZXh0OiByZ2JhKGJsYWNrLCAwLjM4KTtcbiRkYXJrLWRpdmlkZXJzOiByZ2JhKGJsYWNrLCAwLjEyKTtcbiRkYXJrLWZvY3VzZWQ6IHJnYmEoYmxhY2ssIDAuMTIpO1xuJGxpZ2h0LXByaW1hcnktdGV4dDogd2hpdGU7XG4kbGlnaHQtc2Vjb25kYXJ5LXRleHQ6IHJnYmEod2hpdGUsIDAuNyk7XG4kbGlnaHQtZGlzYWJsZWQtdGV4dDogcmdiYSh3aGl0ZSwgMC41KTtcbiRsaWdodC1kaXZpZGVyczogcmdiYSh3aGl0ZSwgMC4xMik7XG4kbGlnaHQtZm9jdXNlZDogcmdiYSh3aGl0ZSwgMC4xMik7XG5cbiRtYXQtcmVkOiAoXG4gIDUwOiAjZmZlYmVlLFxuICAxMDA6ICNmZmNkZDIsXG4gIDIwMDogI2VmOWE5YSxcbiAgMzAwOiAjZTU3MzczLFxuICA0MDA6ICNlZjUzNTAsXG4gIDUwMDogI2Y0NDMzNixcbiAgNjAwOiAjZTUzOTM1LFxuICA3MDA6ICNkMzJmMmYsXG4gIDgwMDogI2M2MjgyOCxcbiAgOTAwOiAjYjcxYzFjLFxuICBBMTAwOiAjZmY4YTgwLFxuICBBMjAwOiAjZmY1MjUyLFxuICBBNDAwOiAjZmYxNzQ0LFxuICBBNzAwOiAjZDUwMDAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtcGluazogKFxuICA1MDogI2ZjZTRlYyxcbiAgMTAwOiAjZjhiYmQwLFxuICAyMDA6ICNmNDhmYjEsXG4gIDMwMDogI2YwNjI5MixcbiAgNDAwOiAjZWM0MDdhLFxuICA1MDA6ICNlOTFlNjMsXG4gIDYwMDogI2Q4MWI2MCxcbiAgNzAwOiAjYzIxODViLFxuICA4MDA6ICNhZDE0NTcsXG4gIDkwMDogIzg4MGU0ZixcbiAgQTEwMDogI2ZmODBhYixcbiAgQTIwMDogI2ZmNDA4MSxcbiAgQTQwMDogI2Y1MDA1NyxcbiAgQTcwMDogI2M1MTE2MixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LXB1cnBsZTogKFxuICA1MDogI2YzZTVmNSxcbiAgMTAwOiAjZTFiZWU3LFxuICAyMDA6ICNjZTkzZDgsXG4gIDMwMDogI2JhNjhjOCxcbiAgNDAwOiAjYWI0N2JjLFxuICA1MDA6ICM5YzI3YjAsXG4gIDYwMDogIzhlMjRhYSxcbiAgNzAwOiAjN2IxZmEyLFxuICA4MDA6ICM2YTFiOWEsXG4gIDkwMDogIzRhMTQ4YyxcbiAgQTEwMDogI2VhODBmYyxcbiAgQTIwMDogI2UwNDBmYixcbiAgQTQwMDogI2Q1MDBmOSxcbiAgQTcwMDogI2FhMDBmZixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtZGVlcC1wdXJwbGU6IChcbiAgNTA6ICNlZGU3ZjYsXG4gIDEwMDogI2QxYzRlOSxcbiAgMjAwOiAjYjM5ZGRiLFxuICAzMDA6ICM5NTc1Y2QsXG4gIDQwMDogIzdlNTdjMixcbiAgNTAwOiAjNjczYWI3LFxuICA2MDA6ICM1ZTM1YjEsXG4gIDcwMDogIzUxMmRhOCxcbiAgODAwOiAjNDUyN2EwLFxuICA5MDA6ICMzMTFiOTIsXG4gIEExMDA6ICNiMzg4ZmYsXG4gIEEyMDA6ICM3YzRkZmYsXG4gIEE0MDA6ICM2NTFmZmYsXG4gIEE3MDA6ICM2MjAwZWEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWluZGlnbzogKFxuICA1MDogI2U4ZWFmNixcbiAgMTAwOiAjYzVjYWU5LFxuICAyMDA6ICM5ZmE4ZGEsXG4gIDMwMDogIzc5ODZjYixcbiAgNDAwOiAjNWM2YmMwLFxuICA1MDA6ICMzZjUxYjUsXG4gIDYwMDogIzM5NDlhYixcbiAgNzAwOiAjMzAzZjlmLFxuICA4MDA6ICMyODM1OTMsXG4gIDkwMDogIzFhMjM3ZSxcbiAgQTEwMDogIzhjOWVmZixcbiAgQTIwMDogIzUzNmRmZSxcbiAgQTQwMDogIzNkNWFmZSxcbiAgQTcwMDogIzMwNGZmZSxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtYmx1ZTogKFxuICA1MDogI2UzZjJmZCxcbiAgMTAwOiAjYmJkZWZiLFxuICAyMDA6ICM5MGNhZjksXG4gIDMwMDogIzY0YjVmNixcbiAgNDAwOiAjNDJhNWY1LFxuICA1MDA6ICMyMTk2ZjMsXG4gIDYwMDogIzFlODhlNSxcbiAgNzAwOiAjMTk3NmQyLFxuICA4MDA6ICMxNTY1YzAsXG4gIDkwMDogIzBkNDdhMSxcbiAgQTEwMDogIzgyYjFmZixcbiAgQTIwMDogIzQ0OGFmZixcbiAgQTQwMDogIzI5NzlmZixcbiAgQTcwMDogIzI5NjJmZixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWxpZ2h0LWJsdWU6IChcbiAgNTA6ICNlMWY1ZmUsXG4gIDEwMDogI2IzZTVmYyxcbiAgMjAwOiAjODFkNGZhLFxuICAzMDA6ICM0ZmMzZjcsXG4gIDQwMDogIzI5YjZmNixcbiAgNTAwOiAjMDNhOWY0LFxuICA2MDA6ICMwMzliZTUsXG4gIDcwMDogIzAyODhkMSxcbiAgODAwOiAjMDI3N2JkLFxuICA5MDA6ICMwMTU3OWIsXG4gIEExMDA6ICM4MGQ4ZmYsXG4gIEEyMDA6ICM0MGM0ZmYsXG4gIEE0MDA6ICMwMGIwZmYsXG4gIEE3MDA6ICMwMDkxZWEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtY3lhbjogKFxuICA1MDogI2UwZjdmYSxcbiAgMTAwOiAjYjJlYmYyLFxuICAyMDA6ICM4MGRlZWEsXG4gIDMwMDogIzRkZDBlMSxcbiAgNDAwOiAjMjZjNmRhLFxuICA1MDA6ICMwMGJjZDQsXG4gIDYwMDogIzAwYWNjMSxcbiAgNzAwOiAjMDA5N2E3LFxuICA4MDA6ICMwMDgzOGYsXG4gIDkwMDogIzAwNjA2NCxcbiAgQTEwMDogIzg0ZmZmZixcbiAgQTIwMDogIzE4ZmZmZixcbiAgQTQwMDogIzAwZTVmZixcbiAgQTcwMDogIzAwYjhkNCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LXRlYWw6IChcbiAgNTA6ICNlMGYyZjEsXG4gIDEwMDogI2IyZGZkYixcbiAgMjAwOiAjODBjYmM0LFxuICAzMDA6ICM0ZGI2YWMsXG4gIDQwMDogIzI2YTY5YSxcbiAgNTAwOiAjMDA5Njg4LFxuICA2MDA6ICMwMDg5N2IsXG4gIDcwMDogIzAwNzk2YixcbiAgODAwOiAjMDA2OTVjLFxuICA5MDA6ICMwMDRkNDAsXG4gIEExMDA6ICNhN2ZmZWIsXG4gIEEyMDA6ICM2NGZmZGEsXG4gIEE0MDA6ICMxZGU5YjYsXG4gIEE3MDA6ICMwMGJmYTUsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1ncmVlbjogKFxuICA1MDogI2U4ZjVlOSxcbiAgMTAwOiAjYzhlNmM5LFxuICAyMDA6ICNhNWQ2YTcsXG4gIDMwMDogIzgxYzc4NCxcbiAgNDAwOiAjNjZiYjZhLFxuICA1MDA6ICM0Y2FmNTAsXG4gIDYwMDogIzQzYTA0NyxcbiAgNzAwOiAjMzg4ZTNjLFxuICA4MDA6ICMyZTdkMzIsXG4gIDkwMDogIzFiNWUyMCxcbiAgQTEwMDogI2I5ZjZjYSxcbiAgQTIwMDogIzY5ZjBhZSxcbiAgQTQwMDogIzAwZTY3NixcbiAgQTcwMDogIzAwYzg1MyxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtbGlnaHQtZ3JlZW46IChcbiAgNTA6ICNmMWY4ZTksXG4gIDEwMDogI2RjZWRjOCxcbiAgMjAwOiAjYzVlMWE1LFxuICAzMDA6ICNhZWQ1ODEsXG4gIDQwMDogIzljY2M2NSxcbiAgNTAwOiAjOGJjMzRhLFxuICA2MDA6ICM3Y2IzNDIsXG4gIDcwMDogIzY4OWYzOCxcbiAgODAwOiAjNTU4YjJmLFxuICA5MDA6ICMzMzY5MWUsXG4gIEExMDA6ICNjY2ZmOTAsXG4gIEEyMDA6ICNiMmZmNTksXG4gIEE0MDA6ICM3NmZmMDMsXG4gIEE3MDA6ICM2NGRkMTcsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtbGltZTogKFxuICA1MDogI2Y5ZmJlNyxcbiAgMTAwOiAjZjBmNGMzLFxuICAyMDA6ICNlNmVlOWMsXG4gIDMwMDogI2RjZTc3NSxcbiAgNDAwOiAjZDRlMTU3LFxuICA1MDA6ICNjZGRjMzksXG4gIDYwMDogI2MwY2EzMyxcbiAgNzAwOiAjYWZiNDJiLFxuICA4MDA6ICM5ZTlkMjQsXG4gIDkwMDogIzgyNzcxNyxcbiAgQTEwMDogI2Y0ZmY4MSxcbiAgQTIwMDogI2VlZmY0MSxcbiAgQTQwMDogI2M2ZmYwMCxcbiAgQTcwMDogI2FlZWEwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQteWVsbG93OiAoXG4gIDUwOiAjZmZmZGU3LFxuICAxMDA6ICNmZmY5YzQsXG4gIDIwMDogI2ZmZjU5ZCxcbiAgMzAwOiAjZmZmMTc2LFxuICA0MDA6ICNmZmVlNTgsXG4gIDUwMDogI2ZmZWIzYixcbiAgNjAwOiAjZmRkODM1LFxuICA3MDA6ICNmYmMwMmQsXG4gIDgwMDogI2Y5YTgyNSxcbiAgOTAwOiAjZjU3ZjE3LFxuICBBMTAwOiAjZmZmZjhkLFxuICBBMjAwOiAjZmZmZjAwLFxuICBBNDAwOiAjZmZlYTAwLFxuICBBNzAwOiAjZmZkNjAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWFtYmVyOiAoXG4gIDUwOiAjZmZmOGUxLFxuICAxMDA6ICNmZmVjYjMsXG4gIDIwMDogI2ZmZTA4MixcbiAgMzAwOiAjZmZkNTRmLFxuICA0MDA6ICNmZmNhMjgsXG4gIDUwMDogI2ZmYzEwNyxcbiAgNjAwOiAjZmZiMzAwLFxuICA3MDA6ICNmZmEwMDAsXG4gIDgwMDogI2ZmOGYwMCxcbiAgOTAwOiAjZmY2ZjAwLFxuICBBMTAwOiAjZmZlNTdmLFxuICBBMjAwOiAjZmZkNzQwLFxuICBBNDAwOiAjZmZjNDAwLFxuICBBNzAwOiAjZmZhYjAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LW9yYW5nZTogKFxuICA1MDogI2ZmZjNlMCxcbiAgMTAwOiAjZmZlMGIyLFxuICAyMDA6ICNmZmNjODAsXG4gIDMwMDogI2ZmYjc0ZCxcbiAgNDAwOiAjZmZhNzI2LFxuICA1MDA6ICNmZjk4MDAsXG4gIDYwMDogI2ZiOGMwMCxcbiAgNzAwOiAjZjU3YzAwLFxuICA4MDA6ICNlZjZjMDAsXG4gIDkwMDogI2U2NTEwMCxcbiAgQTEwMDogI2ZmZDE4MCxcbiAgQTIwMDogI2ZmYWI0MCxcbiAgQTQwMDogI2ZmOTEwMCxcbiAgQTcwMDogI2ZmNmQwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogYmxhY2ssXG4gIClcbik7XG5cbiRtYXQtZGVlcC1vcmFuZ2U6IChcbiAgNTA6ICNmYmU5ZTcsXG4gIDEwMDogI2ZmY2NiYyxcbiAgMjAwOiAjZmZhYjkxLFxuICAzMDA6ICNmZjhhNjUsXG4gIDQwMDogI2ZmNzA0MyxcbiAgNTAwOiAjZmY1NzIyLFxuICA2MDA6ICNmNDUxMWUsXG4gIDcwMDogI2U2NGExOSxcbiAgODAwOiAjZDg0MzE1LFxuICA5MDA6ICNiZjM2MGMsXG4gIEExMDA6ICNmZjllODAsXG4gIEEyMDA6ICNmZjZlNDAsXG4gIEE0MDA6ICNmZjNkMDAsXG4gIEE3MDA6ICNkZDJjMDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWJyb3duOiAoXG4gIDUwOiAjZWZlYmU5LFxuICAxMDA6ICNkN2NjYzgsXG4gIDIwMDogI2JjYWFhNCxcbiAgMzAwOiAjYTE4ODdmLFxuICA0MDA6ICM4ZDZlNjMsXG4gIDUwMDogIzc5NTU0OCxcbiAgNjAwOiAjNmQ0YzQxLFxuICA3MDA6ICM1ZDQwMzcsXG4gIDgwMDogIzRlMzQyZSxcbiAgOTAwOiAjM2UyNzIzLFxuICBBMTAwOiAjZDdjY2M4LFxuICBBMjAwOiAjYmNhYWE0LFxuICBBNDAwOiAjOGQ2ZTYzLFxuICBBNzAwOiAjNWQ0MDM3LFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWdyZXk6IChcbiAgNTA6ICNmYWZhZmEsXG4gIDEwMDogI2Y1ZjVmNSxcbiAgMjAwOiAjZWVlZWVlLFxuICAzMDA6ICNlMGUwZTAsXG4gIDQwMDogI2JkYmRiZCxcbiAgNTAwOiAjOWU5ZTllLFxuICA2MDA6ICM3NTc1NzUsXG4gIDcwMDogIzYxNjE2MSxcbiAgODAwOiAjNDI0MjQyLFxuICA5MDA6ICMyMTIxMjEsXG4gIEExMDA6ICNmZmZmZmYsXG4gIEEyMDA6ICNlZWVlZWUsXG4gIEE0MDA6ICNiZGJkYmQsXG4gIEE3MDA6ICM2MTYxNjEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuLy8gQWxpYXMgZm9yIGFsdGVybmF0ZSBzcGVsbGluZy5cbiRtYXQtZ3JheTogJG1hdC1ncmV5O1xuXG4kbWF0LWJsdWUtZ3JleTogKFxuICA1MDogI2VjZWZmMSxcbiAgMTAwOiAjY2ZkOGRjLFxuICAyMDA6ICNiMGJlYzUsXG4gIDMwMDogIzkwYTRhZSxcbiAgNDAwOiAjNzg5MDljLFxuICA1MDA6ICM2MDdkOGIsXG4gIDYwMDogIzU0NmU3YSxcbiAgNzAwOiAjNDU1YTY0LFxuICA4MDA6ICMzNzQ3NGYsXG4gIDkwMDogIzI2MzIzOCxcbiAgQTEwMDogI2NmZDhkYyxcbiAgQTIwMDogI2IwYmVjNSxcbiAgQTQwMDogIzc4OTA5YyxcbiAgQTcwMDogIzQ1NWE2NCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4vLyBBbGlhcyBmb3IgYWx0ZXJuYXRlIHNwZWxsaW5nLlxuJG1hdC1ibHVlLWdyYXk6ICRtYXQtYmx1ZS1ncmV5O1xuXG5cbi8vIEJhY2tncm91bmQgcGFsZXR0ZSBmb3IgbGlnaHQgdGhlbWVzLlxuJG1hdC1saWdodC10aGVtZS1iYWNrZ3JvdW5kOiAoXG4gIHN0YXR1cy1iYXI6IG1hcF9nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBhcHAtYmFyOiAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgMTAwKSxcbiAgYmFja2dyb3VuZDogbWFwX2dldCgkbWF0LWdyZXksIDUwKSxcbiAgaG92ZXI6ICAgICAgcmdiYShibGFjaywgMC4wNCksIC8vIFRPRE8oa2FyYSk6IGNoZWNrIHN0eWxlIHdpdGggTWF0ZXJpYWwgRGVzaWduIFVYXG4gIGNhcmQ6ICAgICAgIHdoaXRlLFxuICBkaWFsb2c6ICAgICB3aGl0ZSxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKGJsYWNrLCAwLjEyKSxcbiAgcmFpc2VkLWJ1dHRvbjogd2hpdGUsXG4gIGZvY3VzZWQtYnV0dG9uOiAkZGFyay1mb2N1c2VkLFxuICBzZWxlY3RlZC1idXR0b246IG1hcF9nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBzZWxlY3RlZC1kaXNhYmxlZC1idXR0b246IG1hcF9nZXQoJG1hdC1ncmV5LCA0MDApLFxuICBkaXNhYmxlZC1idXR0b24tdG9nZ2xlOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMjAwKSxcbiAgdW5zZWxlY3RlZC1jaGlwOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMzAwKSxcbiAgZGlzYWJsZWQtbGlzdC1vcHRpb246IG1hcF9nZXQoJG1hdC1ncmV5LCAyMDApLFxuKTtcblxuLy8gQmFja2dyb3VuZCBwYWxldHRlIGZvciBkYXJrIHRoZW1lcy5cbiRtYXQtZGFyay10aGVtZS1iYWNrZ3JvdW5kOiAoXG4gIHN0YXR1cy1iYXI6IGJsYWNrLFxuICBhcHAtYmFyOiAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgOTAwKSxcbiAgYmFja2dyb3VuZDogIzMwMzAzMCxcbiAgaG92ZXI6ICAgICAgcmdiYSh3aGl0ZSwgMC4wNCksIC8vIFRPRE8oa2FyYSk6IGNoZWNrIHN0eWxlIHdpdGggTWF0ZXJpYWwgRGVzaWduIFVYXG4gIGNhcmQ6ICAgICAgIG1hcF9nZXQoJG1hdC1ncmV5LCA4MDApLFxuICBkaWFsb2c6ICAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKHdoaXRlLCAwLjEyKSxcbiAgcmFpc2VkLWJ1dHRvbjogbWFwLWdldCgkbWF0LWdyZXksIDgwMCksXG4gIGZvY3VzZWQtYnV0dG9uOiAkbGlnaHQtZm9jdXNlZCxcbiAgc2VsZWN0ZWQtYnV0dG9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgOTAwKSxcbiAgc2VsZWN0ZWQtZGlzYWJsZWQtYnV0dG9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uLXRvZ2dsZTogYmxhY2ssXG4gIHVuc2VsZWN0ZWQtY2hpcDogbWFwX2dldCgkbWF0LWdyZXksIDcwMCksXG4gIGRpc2FibGVkLWxpc3Qtb3B0aW9uOiBibGFjayxcbik7XG5cbi8vIEZvcmVncm91bmQgcGFsZXR0ZSBmb3IgbGlnaHQgdGhlbWVzLlxuJG1hdC1saWdodC10aGVtZS1mb3JlZ3JvdW5kOiAoXG4gIGJhc2U6ICAgICAgICAgICAgICBibGFjayxcbiAgZGl2aWRlcjogICAgICAgICAgICRkYXJrLWRpdmlkZXJzLFxuICBkaXZpZGVyczogICAgICAgICAgJGRhcmstZGl2aWRlcnMsXG4gIGRpc2FibGVkOiAgICAgICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBkaXNhYmxlZC1idXR0b246ICAgcmdiYShibGFjaywgMC4yNiksXG4gIGRpc2FibGVkLXRleHQ6ICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBlbGV2YXRpb246ICAgICAgICAgYmxhY2ssXG4gIGhpbnQtdGV4dDogICAgICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBzZWNvbmRhcnktdGV4dDogICAgJGRhcmstc2Vjb25kYXJ5LXRleHQsXG4gIGljb246ICAgICAgICAgICAgICByZ2JhKGJsYWNrLCAwLjU0KSxcbiAgaWNvbnM6ICAgICAgICAgICAgIHJnYmEoYmxhY2ssIDAuNTQpLFxuICB0ZXh0OiAgICAgICAgICAgICAgcmdiYShibGFjaywgMC44NyksXG4gIHNsaWRlci1taW46ICAgICAgICByZ2JhKGJsYWNrLCAwLjg3KSxcbiAgc2xpZGVyLW9mZjogICAgICAgIHJnYmEoYmxhY2ssIDAuMjYpLFxuICBzbGlkZXItb2ZmLWFjdGl2ZTogcmdiYShibGFjaywgMC4zOCksXG4pO1xuXG4vLyBGb3JlZ3JvdW5kIHBhbGV0dGUgZm9yIGRhcmsgdGhlbWVzLlxuJG1hdC1kYXJrLXRoZW1lLWZvcmVncm91bmQ6IChcbiAgYmFzZTogICAgICAgICAgICAgIHdoaXRlLFxuICBkaXZpZGVyOiAgICAgICAgICAgJGxpZ2h0LWRpdmlkZXJzLFxuICBkaXZpZGVyczogICAgICAgICAgJGxpZ2h0LWRpdmlkZXJzLFxuICBkaXNhYmxlZDogICAgICAgICAgJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIGRpc2FibGVkLWJ1dHRvbjogICByZ2JhKHdoaXRlLCAwLjMpLFxuICBkaXNhYmxlZC10ZXh0OiAgICAgJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIGVsZXZhdGlvbjogICAgICAgICBibGFjayxcbiAgaGludC10ZXh0OiAgICAgICAgICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBzZWNvbmRhcnktdGV4dDogICAgJGxpZ2h0LXNlY29uZGFyeS10ZXh0LFxuICBpY29uOiAgICAgICAgICAgICAgd2hpdGUsXG4gIGljb25zOiAgICAgICAgICAgICB3aGl0ZSxcbiAgdGV4dDogICAgICAgICAgICAgIHdoaXRlLFxuICBzbGlkZXItbWluOiAgICAgICAgd2hpdGUsXG4gIHNsaWRlci1vZmY6ICAgICAgICByZ2JhKHdoaXRlLCAwLjMpLFxuICBzbGlkZXItb2ZmLWFjdGl2ZTogcmdiYSh3aGl0ZSwgMC4zKSxcbik7XG5cblxuXG4vLyBGb3IgYSBnaXZlbiBodWUgaW4gYSBwYWxldHRlLCByZXR1cm4gdGhlIGNvbnRyYXN0IGNvbG9yIGZyb20gdGhlIG1hcCBvZiBjb250cmFzdCBwYWxldHRlcy5cbi8vIEBwYXJhbSAkY29sb3ItbWFwXG4vLyBAcGFyYW0gJGh1ZVxuQGZ1bmN0aW9uIG1hdC1jb250cmFzdCgkcGFsZXR0ZSwgJGh1ZSkge1xuICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkcGFsZXR0ZSwgY29udHJhc3QpLCAkaHVlKTtcbn1cblxuXG4vLyBDcmVhdGVzIGEgbWFwIG9mIGh1ZXMgdG8gY29sb3JzIGZvciBhIHRoZW1lLiBUaGlzIGlzIHVzZWQgdG8gZGVmaW5lIGEgdGhlbWUgcGFsZXR0ZSBpbiB0ZXJtc1xuLy8gb2YgdGhlIE1hdGVyaWFsIERlc2lnbiBodWVzLlxuLy8gQHBhcmFtICRjb2xvci1tYXBcbi8vIEBwYXJhbSAkcHJpbWFyeVxuLy8gQHBhcmFtICRsaWdodGVyXG5AZnVuY3Rpb24gbWF0LXBhbGV0dGUoJGJhc2UtcGFsZXR0ZSwgJGRlZmF1bHQ6IDUwMCwgJGxpZ2h0ZXI6IDEwMCwgJGRhcmtlcjogNzAwLCAkdGV4dDogJGRlZmF1bHQpIHtcbiAgJHJlc3VsdDogbWFwX21lcmdlKCRiYXNlLXBhbGV0dGUsIChcbiAgICBkZWZhdWx0OiBtYXAtZ2V0KCRiYXNlLXBhbGV0dGUsICRkZWZhdWx0KSxcbiAgICBsaWdodGVyOiBtYXAtZ2V0KCRiYXNlLXBhbGV0dGUsICRsaWdodGVyKSxcbiAgICBkYXJrZXI6IG1hcC1nZXQoJGJhc2UtcGFsZXR0ZSwgJGRhcmtlciksXG4gICAgdGV4dDogbWFwLWdldCgkYmFzZS1wYWxldHRlLCAkdGV4dCksXG5cbiAgICBkZWZhdWx0LWNvbnRyYXN0OiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGRlZmF1bHQpLFxuICAgIGxpZ2h0ZXItY29udHJhc3Q6IG1hdC1jb250cmFzdCgkYmFzZS1wYWxldHRlLCAkbGlnaHRlciksXG4gICAgZGFya2VyLWNvbnRyYXN0OiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGRhcmtlcilcbiAgKSk7XG5cbiAgLy8gRm9yIGVhY2ggaHVlIGluIHRoZSBwYWxldHRlLCBhZGQgYSBcIi1jb250cmFzdFwiIGNvbG9yIHRvIHRoZSBtYXAuXG4gIEBlYWNoICRodWUsICRjb2xvciBpbiAkYmFzZS1wYWxldHRlIHtcbiAgICAkcmVzdWx0OiBtYXBfbWVyZ2UoJHJlc3VsdCwgKFxuICAgICAgJyN7JGh1ZX0tY29udHJhc3QnOiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGh1ZSlcbiAgICApKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuXG4vLyBHZXRzIGEgY29sb3IgZnJvbSBhIHRoZW1lIHBhbGV0dGUgKHRoZSBvdXRwdXQgb2YgbWF0LXBhbGV0dGUpLlxuLy8gVGhlIGh1ZSBjYW4gYmUgb25lIG9mIHRoZSBzdGFuZGFyZCB2YWx1ZXMgKDUwMCwgQTQwMCwgZXRjLiksIG9uZSBvZiB0aGUgdGhyZWUgcHJlY29uZmlndXJlZFxuLy8gaHVlcyAoZGVmYXVsdCwgbGlnaHRlciwgZGFya2VyKSwgb3IgYW55IG9mIHRoZSBhZm9yZW1lbnRpb25lZCBwcmVmaXhlZCB3aXRoIFwiLWNvbnRyYXN0XCIuXG4vL1xuLy8gQHBhcmFtICRjb2xvci1tYXAgVGhlIHRoZW1lIHBhbGV0dGUgKG91dHB1dCBvZiBtYXQtcGFsZXR0ZSkuXG4vLyBAcGFyYW0gJGh1ZSBUaGUgaHVlIGZyb20gdGhlIHBhbGV0dGUgdG8gdXNlLiBJZiB0aGlzIGlzIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxLCBpdCB3aWxsXG4vLyAgICAgYmUgdHJlYXRlZCBhcyBvcGFjaXR5LlxuLy8gQHBhcmFtICRvcGFjaXR5IFRoZSBhbHBoYSBjaGFubmVsIHZhbHVlIGZvciB0aGUgY29sb3IuXG5AZnVuY3Rpb24gbWF0LWNvbG9yKCRwYWxldHRlLCAkaHVlOiBkZWZhdWx0LCAkb3BhY2l0eTogbnVsbCkge1xuICAvLyBJZiBodWVLZXkgaXMgYSBudW1iZXIgYmV0d2VlbiB6ZXJvIGFuZCBvbmUsIHRoZW4gaXQgYWN0dWFsbHkgY29udGFpbnMgYW5cbiAgLy8gb3BhY2l0eSB2YWx1ZSwgc28gcmVjYWxsIHRoaXMgZnVuY3Rpb24gd2l0aCB0aGUgZGVmYXVsdCBodWUgYW5kIHRoYXQgZ2l2ZW4gb3BhY2l0eS5cbiAgQGlmIHR5cGUtb2YoJGh1ZSkgPT0gbnVtYmVyIGFuZCAkaHVlID49IDAgYW5kICRodWUgPD0gMSB7XG4gICAgQHJldHVybiBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQsICRodWUpO1xuICB9XG5cbiAgJGNvbG9yOiBtYXAtZ2V0KCRwYWxldHRlLCAkaHVlKTtcblxuICBAaWYgKHR5cGUtb2YoJGNvbG9yKSAhPSBjb2xvcikge1xuICAgIC8vIElmIHRoZSAkY29sb3IgcmVzb2x2ZWQgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIGEgY29sb3IgKGUuZy4gYSBDU1MgdmFyaWFibGUpLFxuICAgIC8vIHdlIGNhbid0IGFwcGx5IHRoZSBvcGFjaXR5IGFueXdheSBzbyB3ZSByZXR1cm4gdGhlIHZhbHVlIGFzIGlzLCBvdGhlcndpc2UgU2FzcyBjYW5cbiAgICAvLyB0aHJvdyBhbiBlcnJvciBvciBvdXRwdXQgc29tZXRoaW5nIGludmFsaWQuXG4gICAgQHJldHVybiAkY29sb3I7XG4gIH1cblxuICBAcmV0dXJuIHJnYmEoJGNvbG9yLCBpZigkb3BhY2l0eSA9PSBudWxsLCBvcGFjaXR5KCRjb2xvciksICRvcGFjaXR5KSk7XG59XG5cblxuLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBvYmplY3QgZm9yIGEgbGlnaHQgdGhlbWUgdG8gYmUgZ2l2ZW4gdG8gaW5kaXZpZHVhbCBjb21wb25lbnQgdGhlbWUgbWl4aW5zLlxuQGZ1bmN0aW9uIG1hdC1saWdodC10aGVtZSgkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm46IG1hdC1wYWxldHRlKCRtYXQtcmVkKSkge1xuICBAcmV0dXJuIChcbiAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICBhY2NlbnQ6ICRhY2NlbnQsXG4gICAgd2FybjogJHdhcm4sXG4gICAgaXMtZGFyazogZmFsc2UsXG4gICAgZm9yZWdyb3VuZDogJG1hdC1saWdodC10aGVtZS1mb3JlZ3JvdW5kLFxuICAgIGJhY2tncm91bmQ6ICRtYXQtbGlnaHQtdGhlbWUtYmFja2dyb3VuZCxcbiAgKTtcbn1cblxuXG4vLyBDcmVhdGVzIGEgY29udGFpbmVyIG9iamVjdCBmb3IgYSBkYXJrIHRoZW1lIHRvIGJlIGdpdmVuIHRvIGluZGl2aWR1YWwgY29tcG9uZW50IHRoZW1lIG1peGlucy5cbkBmdW5jdGlvbiBtYXQtZGFyay10aGVtZSgkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm46IG1hdC1wYWxldHRlKCRtYXQtcmVkKSkge1xuICBAcmV0dXJuIChcbiAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICBhY2NlbnQ6ICRhY2NlbnQsXG4gICAgd2FybjogJHdhcm4sXG4gICAgaXMtZGFyazogdHJ1ZSxcbiAgICBmb3JlZ3JvdW5kOiAkbWF0LWRhcmstdGhlbWUtZm9yZWdyb3VuZCxcbiAgICBiYWNrZ3JvdW5kOiAkbWF0LWRhcmstdGhlbWUtYmFja2dyb3VuZCxcbiAgKTtcbn1cblxuXG5cbiRtYXQtcmlwcGxlLWNvbG9yLW9wYWNpdHk6IDAuMTtcblxuQG1peGluIG1hdC1yaXBwbGUoKSB7XG5cbiAgLy8gVGhlIGhvc3QgZWxlbWVudCBvZiBhbiBtYXQtcmlwcGxlIGRpcmVjdGl2ZSBzaG91bGQgYWx3YXlzIGhhdmUgYSBwb3NpdGlvbiBvZiBcImFic29sdXRlXCIgb3JcbiAgLy8gXCJyZWxhdGl2ZVwiIHNvIHRoYXQgdGhlIHJpcHBsZXMgaW5zaWRlIGFyZSBjb3JyZWN0bHkgcG9zaXRpb25lZCByZWxhdGl2ZWx5IHRvIHRoZSBjb250YWluZXIuXG4gIC5tYXQtcmlwcGxlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLy8gQnkgZGVmYXVsdCwgZXZlcnkgcmlwcGxlIGNvbnRhaW5lciBzaG91bGQgaGF2ZSBwb3NpdGlvbjogcmVsYXRpdmUgaW4gZmF2b3Igb2YgY3JlYXRpbmcgYW5cbiAgICAvLyBlYXN5IEFQSSBmb3IgZGV2ZWxvcGVycyB1c2luZyB0aGUgTWF0UmlwcGxlIGRpcmVjdGl2ZS5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZCB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cblxuICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSwgdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuXG4gICAgLy8gSW4gaGlnaCBjb250cmFzdCBtb2RlIHRoZSByaXBwbGUgaXMgb3BhcXVlLCBjYXVzaW5nIGl0IHRvIG9ic3RydWN0IHRoZSBjb250ZW50LlxuICAgIEBpbmNsdWRlIGNkay1oaWdoLWNvbnRyYXN0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8qIFRoZW1lIGZvciB0aGUgcmlwcGxlIGVsZW1lbnRzLiovXG5AbWl4aW4gbWF0LXJpcHBsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcF9nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQtYmFzZTogbWFwX2dldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgLy8gSWYgdGhlIHJpcHBsZSBjb2xvciBpcyByZXNvbHZlcyB0byBhIGNvbG9yICp0eXBlKiwgd2UgY2FuIHVzZSBpdCBkaXJlY3RseSwgb3RoZXJ3aXNlXG4gICAgLy8gKGUuZy4gaXQgcmVzb2x2ZXMgdG8gYSBDU1MgdmFyaWFibGUpIHdlIGZhbGwgYmFjayB0byB1c2luZyB0aGUgY29sb3IgYW5kIHNldHRpbmcgYW4gb3BhY2l0eS5cbiAgICBAaWYgKHR5cGUtb2YoJGZvcmVncm91bmQtYmFzZSkgPT0gY29sb3IpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGZvcmVncm91bmQtYmFzZSwgJG1hdC1yaXBwbGUtY29sb3Itb3BhY2l0eSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmb3JlZ3JvdW5kLWJhc2U7XG4gICAgICBvcGFjaXR5OiAkbWF0LXJpcHBsZS1jb2xvci1vcGFjaXR5O1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gVXRpbGl0eSBmb3IgZmV0Y2hpbmcgYSBuZXN0ZWQgdmFsdWUgZnJvbSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCAkbmFtZSkge1xuICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkY29uZmlnLCAkbGV2ZWwpLCAkbmFtZSk7XG59XG5cbi8vIEdldHMgdGhlIGZvbnQgc2l6ZSBmb3IgYSBsZXZlbCBpbnNpZGUgYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBtYXQtZm9udC1zaXplKCRjb25maWcsICRsZXZlbCkge1xuICBAcmV0dXJuIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBmb250LXNpemUpO1xufVxuXG4vLyBHZXRzIHRoZSBsaW5lIGhlaWdodCBmb3IgYSBsZXZlbCBpbnNpZGUgYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgJGxldmVsKSB7XG4gIEByZXR1cm4gX21hdC1nZXQtdHlwZS12YWx1ZSgkY29uZmlnLCAkbGV2ZWwsIGxpbmUtaGVpZ2h0KTtcbn1cblxuLy8gR2V0cyB0aGUgZm9udCB3ZWlnaHQgZm9yIGEgbGV2ZWwgaW5zaWRlIGEgdHlwb2dyYXBoeSBjb25maWcuXG5AZnVuY3Rpb24gbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsICRsZXZlbCkge1xuICBAcmV0dXJuIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBmb250LXdlaWdodCk7XG59XG5cbi8vIEdldHMgdGhlIGxldHRlciBzcGFjaW5nIGZvciBhIGxldmVsIGluc2lkZSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIG1hdC1sZXR0ZXItc3BhY2luZygkY29uZmlnLCAkbGV2ZWwpIHtcbiAgQHJldHVybiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgbGV0dGVyLXNwYWNpbmcpO1xufVxuXG4vLyBHZXRzIHRoZSBmb250LWZhbWlseSBmcm9tIGEgdHlwb2dyYXBoeSBjb25maWcgYW5kIHJlbW92ZXMgdGhlIHF1b3RlcyBhcm91bmQgaXQuXG5AZnVuY3Rpb24gbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsICRsZXZlbDogbnVsbCkge1xuICAkZm9udC1mYW1pbHk6IG1hcC1nZXQoJGNvbmZpZywgZm9udC1mYW1pbHkpO1xuXG4gIEBpZiAkbGV2ZWwgIT0gbnVsbCB7XG4gICAgJGZvbnQtZmFtaWx5OiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgZm9udC1mYW1pbHkpO1xuICB9XG5cbiAgLy8gR3VhcmQgYWdhaW5zdCB1bnF1b3Rpbmcgbm9uLXN0cmluZyB2YWx1ZXMsIGJlY2F1c2UgaXQncyBkZXByZWNhdGVkLlxuICBAcmV0dXJuIGlmKHR5cGUtb2YoJGZvbnQtZmFtaWx5KSA9PSBzdHJpbmcsIHVucXVvdGUoJGZvbnQtZmFtaWx5KSwgJGZvbnQtZmFtaWx5KTtcbn1cblxuLy8gT3V0cHV0cyB0aGUgc2hvcnRoYW5kIGBmb250YCBDU1MgcHJvcGVydHksIGJhc2VkIG9uIGEgc2V0IG9mIHR5cG9ncmFwaHkgdmFsdWVzLiBGYWxscyBiYWNrIHRvXG4vLyB0aGUgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIGlmIGEgdmFsdWUgdGhhdCBpc24ndCBhbGxvd2VkIGluIHRoZSBzaG9ydGhhbmQgaXMgcGFzc2VkIGluLlxuQG1peGluIG1hdC10eXBvZ3JhcGh5LWZvbnQtc2hvcnRoYW5kKCRmb250LXNpemUsICRmb250LXdlaWdodCwgJGxpbmUtaGVpZ2h0LCAkZm9udC1mYW1pbHkpIHtcbiAgLy8gSWYgYW55IG9mIHRoZSB2YWx1ZXMgYXJlIHNldCB0byBgaW5oZXJpdGAsIHdlIGNhbid0IHVzZSB0aGUgc2hvcnRoYW5kXG4gIC8vIHNvIHdlIGZhbGwgYmFjayB0byBwYXNzaW5nIGluIHRoZSBpbmRpdmlkdWFsIHByb3BlcnRpZXMuXG4gIEBpZiAoJGZvbnQtc2l6ZSA9PSBpbmhlcml0IG9yXG4gICAgICAgJGZvbnQtd2VpZ2h0ID09IGluaGVyaXQgb3JcbiAgICAgICAkbGluZS1oZWlnaHQgPT0gaW5oZXJpdCBvclxuICAgICAgICRmb250LWZhbWlseSA9PSBpbmhlcml0IG9yXG4gICAgICAgJGZvbnQtc2l6ZSA9PSBudWxsIG9yXG4gICAgICAgJGZvbnQtd2VpZ2h0ID09IG51bGwgb3JcbiAgICAgICAkbGluZS1oZWlnaHQgPT0gbnVsbCBvclxuICAgICAgICRmb250LWZhbWlseSA9PSBudWxsKSB7XG5cbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIE90aGVyd2lzZSB1c2UgdGhlIHNob3J0aGFuZCBgZm9udGAsIGJlY2F1c2UgaXQncyB0aGUgbGVhc3QgYW1vdW50IG9mIGJ5dGVzLiBOb3RlXG4gICAgLy8gdGhhdCB3ZSBuZWVkIHRvIHVzZSBpbnRlcnBvbGF0aW9uIGZvciBgZm9udC1zaXplL2xpbmUtaGVpZ2h0YCBpbiBvcmRlciB0byBwcmV2ZW50XG4gICAgLy8gU2FzcyBmcm9tIGRpdmlkaW5nIHRoZSB0d28gdmFsdWVzLlxuICAgIGZvbnQ6ICRmb250LXdlaWdodCAjeyRmb250LXNpemV9LyN7JGxpbmUtaGVpZ2h0fSAkZm9udC1mYW1pbHk7XG4gIH1cbn1cblxuLy8gQ29udmVydHMgYSB0eXBvZ3JhcGh5IGxldmVsIGludG8gQ1NTIHN0eWxlcy5cbkBtaXhpbiBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgJGxldmVsKSB7XG4gICRmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgJGxldmVsKTtcbiAgJGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgJGxldmVsKTtcbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgJGxldmVsKTtcbiAgJGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgJGxldmVsKTtcblxuICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZCgkZm9udC1zaXplLCAkZm9udC13ZWlnaHQsICRsaW5lLWhlaWdodCwgJGZvbnQtZmFtaWx5KTtcbiAgbGV0dGVyLXNwYWNpbmc6IG1hdC1sZXR0ZXItc3BhY2luZygkY29uZmlnLCAkbGV2ZWwpO1xufVxuXG5cbkBtaXhpbiBtYXQtb3B0aW9uLXRoZW1lKCR0aGVtZSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcblxuICAubWF0LW9wdGlvbiB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAmOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksXG4gICAgJjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgIH1cblxuICAgIC8vIEluIG11bHRpcGxlIG1vZGUgdGhlcmUgaXMgYSBjaGVja2JveCB0byBzaG93IHRoYXQgdGhlIG9wdGlvbiBpcyBzZWxlY3RlZC5cbiAgICAmLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgfVxuXG4gICAgJi5tYXQtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtb3B0aW9uLWRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1wcmltYXJ5IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LW9wdGlvbi10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1vcHRpb24ge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBzdWJoZWFkaW5nLTIpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtb3B0Z3JvdXAtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1vcHRncm91cC1kaXNhYmxlZCAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtb3B0Z3JvdXAtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTIpO1xuICB9XG59XG5cblxuXG5AbWl4aW4gbWF0LXBzZXVkby1jaGVja2JveC10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG5cbiAgLy8gTk9URSh0cmF2aXNrYXVmbWFuKTogV2hpbGUgdGhlIHNwZWMgY2FsbHMgZm9yIHRyYW5zbHVjZW50IGJsYWNrcy93aGl0ZXMgZm9yIGRpc2FibGVkIGNvbG9ycyxcbiAgLy8gdGhpcyBkb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBlbGVtZW50cyBsYXllcmVkIG9uIHRvcCBvZiBvbmUgYW5vdGhlci4gVG8gZ2V0IGFyb3VuZCB0aGlzIHdlXG4gIC8vIGJsZW5kIHRoZSBjb2xvcnMgdG9nZXRoZXIgYmFzZWQgb24gdGhlIGJhc2UgY29sb3IgYW5kIHRoZSB0aGVtZSBiYWNrZ3JvdW5kLlxuICAkd2hpdGUtMzBwY3Qtb3BhY2l0eS1vbi1kYXJrOiAjNjg2ODY4O1xuICAkYmxhY2stMjZwY3Qtb3BhY2l0eS1vbi1saWdodDogI2IwYjBiMDtcbiAgJGRpc2FibGVkLWNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJHdoaXRlLTMwcGN0LW9wYWNpdHktb24tZGFyaywgJGJsYWNrLTI2cGN0LW9wYWNpdHktb24tbGlnaHQpO1xuICAkY29sb3JlZC1ib3gtc2VsZWN0b3I6ICcubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlJztcblxuICAubWF0LXBzZXVkby1jaGVja2JveCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCksIHNlY29uZGFyeS10ZXh0KTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICBjb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IobWFwLWdldCgkdGhlbWUsIHByaW1hcnkpKTtcbiAgfVxuXG4gIC8vIERlZmF1bHQgdG8gdGhlIGFjY2VudCBjb2xvci4gTm90ZSB0aGF0IHRoZSBwc2V1ZG8gY2hlY2tib3hlcyBhcmUgbWVhbnQgdG8gaW5oZXJpdCB0aGVcbiAgLy8gdGhlbWUgZnJvbSB0aGVpciBwYXJlbnQsIHJhdGhlciB0aGFuIGltcGxlbWVudGluZyB0aGVpciBvd24gdGhlbWluZywgd2hpY2ggaXMgd2h5IHdlXG4gIC8vIGRvbid0IGF0dGFjaCB0byB0aGUgYG1hdC0qYCBjbGFzc2VzLiBBbHNvIG5vdGUgdGhhdCB0aGlzIG5lZWRzIHRvIGJlIGJlbG93IGAubWF0LXByaW1hcnlgXG4gIC8vIGluIG9yZGVyIHRvIGFsbG93IGZvciB0aGUgY29sb3IgdG8gYmUgb3ZlcndyaXR0ZW4gaWYgdGhlIGNoZWNrYm94IGlzIGluc2lkZSBhIHBhcmVudCB0aGF0XG4gIC8vIGhhcyBgbWF0LWFjY2VudGAgYW5kIGlzIHBsYWNlZCBpbnNpZGUgYW5vdGhlciBwYXJlbnQgdGhhdCBoYXMgYG1hdC1wcmltYXJ5YC5cbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSxcbiAgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbiAgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpKTtcbiAgfVxuXG4gIC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKG1hcC1nZXQoJHRoZW1lLCB3YXJuKSk7XG4gIH1cblxuICAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICAmLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICAgICAgYmFja2dyb3VuZDogJGRpc2FibGVkLWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gUmVwcmVzZW50cyBhIHR5cG9ncmFwaHkgbGV2ZWwgZnJvbSB0aGUgTWF0ZXJpYWwgZGVzaWduIHNwZWMuXG5AZnVuY3Rpb24gbWF0LXR5cG9ncmFwaHktbGV2ZWwoXG4gICRmb250LXNpemUsXG4gICRsaW5lLWhlaWdodDogJGZvbnQtc2l6ZSxcbiAgJGZvbnQtd2VpZ2h0OiA0MDAsXG4gICRmb250LWZhbWlseTogbnVsbCxcbiAgJGxldHRlci1zcGFjaW5nOiBudWxsKSB7XG5cbiAgQHJldHVybiAoXG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLFxuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQsXG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodCxcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LFxuICAgIGxldHRlci1zcGFjaW5nOiAkbGV0dGVyLXNwYWNpbmdcbiAgKTtcbn1cblxuLy8gUmVwcmVzZW50cyBhIGNvbGxlY3Rpb24gb2YgdHlwb2dyYXBoeSBsZXZlbHMuXG4vLyBEZWZhdWx0cyBjb21lIGZyb20gaHR0cHM6Ly9tYXRlcmlhbC5pby9ndWlkZWxpbmVzL3N0eWxlL3R5cG9ncmFwaHkuaHRtbFxuLy8gTm90ZTogVGhlIHNwZWMgZG9lc24ndCBtZW50aW9uIGxldHRlciBzcGFjaW5nLiBUaGUgdmFsdWVzIGhlcmUgY29tZSBmcm9tXG4vLyBleWViYWxsaW5nIGl0IHVudGlsIGl0IGxvb2tlZCBleGFjdGx5IGxpa2UgdGhlIHNwZWMgZXhhbXBsZXMuXG5AZnVuY3Rpb24gbWF0LXR5cG9ncmFwaHktY29uZmlnKFxuICAkZm9udC1mYW1pbHk6ICAgJ1JvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmJyxcbiAgJGRpc3BsYXktNDogICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDExMnB4LCAxMTJweCwgMzAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjA1ZW0pLFxuICAkZGlzcGxheS0zOiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoNTZweCwgNTZweCwgNDAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW0pLFxuICAkZGlzcGxheS0yOiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoNDVweCwgNDhweCwgNDAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjAwNWVtKSxcbiAgJGRpc3BsYXktMTogICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDM0cHgsIDQwcHgsIDQwMCksXG4gICRoZWFkbGluZTogICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgyNHB4LCAzMnB4LCA0MDApLFxuICAkdGl0bGU6ICAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMjBweCwgMzJweCwgNTAwKSxcbiAgJHN1YmhlYWRpbmctMjogIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE2cHgsIDI4cHgsIDQwMCksXG4gICRzdWJoZWFkaW5nLTE6ICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNXB4LCAyNHB4LCA0MDApLFxuICAkYm9keS0yOiAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTRweCwgMjRweCwgNTAwKSxcbiAgJGJvZHktMTogICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE0cHgsIDIwcHgsIDQwMCksXG4gICRjYXB0aW9uOiAgICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxMnB4LCAyMHB4LCA0MDApLFxuICAkYnV0dG9uOiAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTRweCwgMTRweCwgNTAwKSxcbiAgLy8gTGluZS1oZWlnaHQgbXVzdCBiZSB1bml0LWxlc3MgZnJhY3Rpb24gb2YgdGhlIGZvbnQtc2l6ZS5cbiAgJGlucHV0OiAgICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKGluaGVyaXQsIDEuMTI1LCA0MDApXG4pIHtcblxuICAvLyBEZWNsYXJlIGFuIGluaXRpYWwgbWFwIHdpdGggYWxsIG9mIHRoZSBsZXZlbHMuXG4gICRjb25maWc6IChcbiAgICBkaXNwbGF5LTQ6ICAgICAgJGRpc3BsYXktNCxcbiAgICBkaXNwbGF5LTM6ICAgICAgJGRpc3BsYXktMyxcbiAgICBkaXNwbGF5LTI6ICAgICAgJGRpc3BsYXktMixcbiAgICBkaXNwbGF5LTE6ICAgICAgJGRpc3BsYXktMSxcbiAgICBoZWFkbGluZTogICAgICAgJGhlYWRsaW5lLFxuICAgIHRpdGxlOiAgICAgICAgICAkdGl0bGUsXG4gICAgc3ViaGVhZGluZy0yOiAgICRzdWJoZWFkaW5nLTIsXG4gICAgc3ViaGVhZGluZy0xOiAgICRzdWJoZWFkaW5nLTEsXG4gICAgYm9keS0yOiAgICAgICAgICRib2R5LTIsXG4gICAgYm9keS0xOiAgICAgICAgICRib2R5LTEsXG4gICAgY2FwdGlvbjogICAgICAgICRjYXB0aW9uLFxuICAgIGJ1dHRvbjogICAgICAgICAkYnV0dG9uLFxuICAgIGlucHV0OiAgICAgICAgICAkaW5wdXQsXG4gICk7XG5cbiAgLy8gTG9vcCB0aHJvdWdoIHRoZSBsZXZlbHMgYW5kIHNldCB0aGUgYGZvbnQtZmFtaWx5YCBvZiB0aGUgb25lcyB0aGF0IGRvbid0IGhhdmUgb25lIHRvIHRoZSBiYXNlLlxuICAvLyBOb3RlIHRoYXQgU2FzcyBjYW4ndCBtb2RpZnkgbWFwcyBpbiBwbGFjZSwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBuZWVkIHRvIG1lcmdlIGFuZCByZS1hc3NpZ24uXG4gIEBlYWNoICRrZXksICRsZXZlbCBpbiAkY29uZmlnIHtcbiAgICBAaWYgbWFwLWdldCgkbGV2ZWwsIGZvbnQtZmFtaWx5KSA9PSBudWxsIHtcbiAgICAgICRuZXctbGV2ZWw6IG1hcC1tZXJnZSgkbGV2ZWwsIChmb250LWZhbWlseTogJGZvbnQtZmFtaWx5KSk7XG4gICAgICAkY29uZmlnOiBtYXAtbWVyZ2UoJGNvbmZpZywgKCRrZXk6ICRuZXctbGV2ZWwpKTtcbiAgICB9XG4gIH1cblxuICAvLyBBZGQgdGhlIGJhc2UgZm9udCBmYW1pbHkgdG8gdGhlIGNvbmZpZy5cbiAgQHJldHVybiBtYXAtbWVyZ2UoJGNvbmZpZywgKGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHkpKTtcbn1cblxuLy8gQWRkcyB0aGUgYmFzZSB0eXBvZ3JhcGh5IHN0eWxlcywgYmFzZWQgb24gYSBjb25maWcuXG5AbWl4aW4gbWF0LWJhc2UtdHlwb2dyYXBoeSgkY29uZmlnLCAkc2VsZWN0b3I6ICcubWF0LXR5cG9ncmFwaHknKSB7XG4gIC5tYXQtaDEsIC5tYXQtaGVhZGxpbmUsICN7JHNlbGVjdG9yfSBoMSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGhlYWRsaW5lKTtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICB9XG5cbiAgLm1hdC1oMiwgLm1hdC10aXRsZSwgI3skc2VsZWN0b3J9IGgyIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgdGl0bGUpO1xuICAgIG1hcmdpbjogMCAwIDE2cHg7XG4gIH1cblxuICAubWF0LWgzLCAubWF0LXN1YmhlYWRpbmctMiwgI3skc2VsZWN0b3J9IGgzIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgc3ViaGVhZGluZy0yKTtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICB9XG5cbiAgLm1hdC1oNCwgLm1hdC1zdWJoZWFkaW5nLTEsICN7JHNlbGVjdG9yfSBoNCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgbWFyZ2luOiAwIDAgMTZweDtcbiAgfVxuXG4gIC8vIE5vdGU6IHRoZSBzcGVjIGRvZXNuJ3QgaGF2ZSBhbnl0aGluZyB0aGF0IHdvdWxkIGNvcnJlc3BvbmQgdG8gaDUgYW5kIGg2LCBidXQgd2UgYWRkIHRoZXNlIGZvclxuICAvLyBjb25zaXN0ZW5jeS4gVGhlIGZvbnQgc2l6ZXMgY29tZSBmcm9tIHRoZSBDaHJvbWUgdXNlciBhZ2VudCBzdHlsZXMgd2hpY2ggaGF2ZSBoNSBhdCAwLjgzZW1cbiAgLy8gYW5kIGg2IGF0IDAuNjdlbS5cbiAgLm1hdC1oNSwgI3skc2VsZWN0b3J9IGg1IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZChcbiAgICAgICAvLyBjYWxjIGlzIHVzZWQgaGVyZSB0byBzdXBwb3J0IGNzcyB2YXJpYWJsZXNcbiAgICAgIGNhbGMoI3ttYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSl9ICogMC44MyksXG4gICAgICBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgIG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBib2R5LTEpLFxuICAgICAgbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMSlcbiAgICApO1xuXG4gICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgfVxuXG4gIC5tYXQtaDYsICN7JHNlbGVjdG9yfSBoNiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktZm9udC1zaG9ydGhhbmQoXG4gICAgICAgLy8gY2FsYyBpcyB1c2VkIGhlcmUgdG8gc3VwcG9ydCBjc3MgdmFyaWFibGVzXG4gICAgICBjYWxjKCN7bWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpfSAqIDAuNjcpLFxuICAgICAgbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSksXG4gICAgICBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgIG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBib2R5LTEpXG4gICAgKTtcblxuICAgIG1hcmdpbjogMCAwIDEycHg7XG4gIH1cblxuICAubWF0LWJvZHktc3Ryb25nLCAubWF0LWJvZHktMiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGJvZHktMik7XG4gIH1cblxuICAubWF0LWJvZHksIC5tYXQtYm9keS0xLCAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuXG4gICAgcCB7XG4gICAgICBtYXJnaW46IDAgMCAxMnB4O1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc21hbGwsIC5tYXQtY2FwdGlvbiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGNhcHRpb24pO1xuICB9XG5cbiAgLm1hdC1kaXNwbGF5LTQsICN7JHNlbGVjdG9yfSAubWF0LWRpc3BsYXktNCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGRpc3BsYXktNCk7XG4gICAgbWFyZ2luOiAwIDAgNTZweDtcbiAgfVxuXG4gIC5tYXQtZGlzcGxheS0zLCAjeyRzZWxlY3Rvcn0gLm1hdC1kaXNwbGF5LTMge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBkaXNwbGF5LTMpO1xuICAgIG1hcmdpbjogMCAwIDY0cHg7XG4gIH1cblxuICAubWF0LWRpc3BsYXktMiwgI3skc2VsZWN0b3J9IC5tYXQtZGlzcGxheS0yIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgZGlzcGxheS0yKTtcbiAgICBtYXJnaW46IDAgMCA2NHB4O1xuICB9XG5cbiAgLm1hdC1kaXNwbGF5LTEsICN7JHNlbGVjdG9yfSAubWF0LWRpc3BsYXktMSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGRpc3BsYXktMSk7XG4gICAgbWFyZ2luOiAwIDAgNjRweDtcbiAgfVxufVxuXG5cblxuXG5AbWl4aW4gbWF0LWF1dG9jb21wbGV0ZS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcblxuICAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgLy8gU2VsZWN0ZWQgb3B0aW9ucyBpbiBhdXRvY29tcGxldGVzIHNob3VsZCBub3QgYmUgZ3JheSwgYnV0IHdlXG4gICAgLy8gb25seSB3YW50IHRvIG92ZXJyaWRlIHRoZSBiYWNrZ3JvdW5kIGZvciBzZWxlY3RlZCBvcHRpb25zIGlmXG4gICAgLy8gdGhleSBhcmUgKm5vdCogaW4gaG92ZXIgb3IgZm9jdXMgc3RhdGUuIFRoaXMgY2hhbmdlIGhhcyB0byBiZVxuICAgIC8vIG1hZGUgaGVyZSBiZWNhdXNlIGJhc2Ugb3B0aW9uIHN0eWxlcyBhcmUgc2hhcmVkIGJldHdlZW4gdGhlXG4gICAgLy8gYXV0b2NvbXBsZXRlIGFuZCB0aGUgc2VsZWN0LlxuICAgIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG5cbiAgICAgICY6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbkBtaXhpbiBtYXQtYXV0b2NvbXBsZXRlLXR5cG9ncmFwaHkoJGNvbmZpZykgeyB9XG5cbi8vIFRoaXMgY29udGFpbnMgYWxsIG9mIHRoZSBzdHlsZXMgZm9yIHRoZSBiYWRnZVxuLy8gcmF0aGVyIHRoYW4ganVzdCB0aGUgY29sb3IvdGhlbWUgYmVjYXVzZSBvZlxuLy8gbm8gc3R5bGUgc2hlZXQgc3VwcG9ydCBmb3IgZGlyZWN0aXZlcy5cblxuXG5cblxuXG4kbWF0LWJhZGdlLWZvbnQtc2l6ZTogMTJweDtcbiRtYXQtYmFkZ2UtZm9udC13ZWlnaHQ6IDYwMDtcbiRtYXQtYmFkZ2UtZGVmYXVsdC1zaXplOiAyMnB4ICFkZWZhdWx0O1xuJG1hdC1iYWRnZS1zbWFsbC1zaXplOiAkbWF0LWJhZGdlLWRlZmF1bHQtc2l6ZSAtIDY7XG4kbWF0LWJhZGdlLWxhcmdlLXNpemU6ICRtYXQtYmFkZ2UtZGVmYXVsdC1zaXplICsgNjtcblxuLy8gTWl4aW4gZm9yIGJ1aWxkaW5nIG9mZnNldCBnaXZlbiBkaWZmZXJlbnQgc2l6ZXNcbkBtaXhpbiBfbWF0LWJhZGdlLXNpemUoJHNpemUpIHtcbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJHNpemU7XG4gIH1cblxuICAmLm1hdC1iYWRnZS1hYm92ZSB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIHRvcDogLSRzaXplIC8gMjtcbiAgICB9XG4gIH1cblxuICAmLm1hdC1iYWRnZS1iZWxvdyB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIGJvdHRvbTogLSRzaXplIC8gMjtcbiAgICB9XG4gIH1cblxuICAmLm1hdC1iYWRnZS1iZWZvcmUge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBsZWZ0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgW2Rpcj0ncnRsJ10gJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIHJpZ2h0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgJi5tYXQtYmFkZ2UtYWZ0ZXIge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICByaWdodDogLSRzaXplO1xuICAgIH1cbiAgfVxuXG4gIFtkaXI9J3J0bCddICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBsZWZ0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgJi5tYXQtYmFkZ2Utb3ZlcmxhcCB7XG4gICAgJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIGxlZnQ6IC0kc2l6ZSAvIDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgW2Rpcj0ncnRsJ10gJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIHJpZ2h0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cblxuICAgIFtkaXI9J3J0bCddICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBsZWZ0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJhZGdlLXRoZW1lKCR0aGVtZSkge1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG5cbiAgICBAaW5jbHVkZSBjZGstaGlnaC1jb250cmFzdCB7XG4gICAgICBvdXRsaW5lOiBzb2xpZCAxcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2UtYWNjZW50IHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJhZGdlLXdhcm4ge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLm1hdC1iYWRnZS1oaWRkZW4ge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2UtZGlzYWJsZWQge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAkYXBwLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2JhY2tncm91bmQnKTtcbiAgICAgICRiYWRnZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC1idXR0b24pO1xuXG4gICAgICAvLyBUaGUgZGlzYWJsZWQgY29sb3IgdXN1YWxseSBoYXMgc29tZSBraW5kIG9mIG9wYWNpdHksIGJ1dCBiZWNhdXNlIHRoZSBiYWRnZSBpcyBvdmVybGF5ZWRcbiAgICAgIC8vIG9uIHRvcCBvZiBzb21ldGhpbmcgZWxzZSwgaXQgd29uJ3QgbG9vayBnb29kIGlmIGl0J3Mgb3BhcXVlLiBJZiBpdCBpcyBhIGNvbG9yICp0eXBlKixcbiAgICAgIC8vIHdlIGNvbnZlcnQgaXQgaW50byBhIHNvbGlkIGNvbG9yIGJ5IHRha2luZyB0aGUgb3BhY2l0eSBmcm9tIHRoZSByZ2JhIHZhbHVlIGFuZCB1c2luZ1xuICAgICAgLy8gdGhlIHZhbHVlIHRvIGRldGVybWluZSB0aGUgcGVyY2VudGFnZSBvZiB0aGUgYmFja2dyb3VuZCB0byBwdXQgaW50byBmb3JlZ3JvdW5kIHdoZW5cbiAgICAgIC8vIG1peGluZyB0aGUgY29sb3JzIHRvZ2V0aGVyLlxuICAgICAgQGlmICh0eXBlLW9mKCRiYWRnZS1jb2xvcikgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGFwcC1iYWNrZ3JvdW5kKSA9PSBjb2xvcikge1xuICAgICAgICAkYmFkZ2Utb3BhY2l0eTogb3BhY2l0eSgkYmFkZ2UtY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kOiBtaXgoJGFwcC1iYWNrZ3JvdW5kLCByZ2JhKCRiYWRnZS1jb2xvciwgMSksICgxIC0gJGJhZGdlLW9wYWNpdHkpICogMTAwJSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRiYWRnZS1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0O1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsXG4gIC5tYXQtYmFkZ2UtY29udGVudC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8vIFRoZSBhY3RpdmUgY2xhc3MgaXMgYWRkZWQgYWZ0ZXIgdGhlIGVsZW1lbnQgaXMgYWRkZWRcbiAgLy8gc28gaXQgY2FuIGFuaW1hdGUgc2NhbGUgdG8gZGVmYXVsdFxuICAubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZSB7XG4gICAgLy8gU2NhbGUgdG8gYG5vbmVgIGluc3RlYWQgb2YgYDFgIHRvIGF2b2lkIGJsdXJyeSB0ZXh0IGluIHNvbWUgYnJvd3NlcnMuXG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgLm1hdC1iYWRnZS1zbWFsbCB7XG4gICAgQGluY2x1ZGUgX21hdC1iYWRnZS1zaXplKCRtYXQtYmFkZ2Utc21hbGwtc2l6ZSk7XG4gIH1cbiAgLm1hdC1iYWRnZS1tZWRpdW0ge1xuICAgIEBpbmNsdWRlIF9tYXQtYmFkZ2Utc2l6ZSgkbWF0LWJhZGdlLWRlZmF1bHQtc2l6ZSk7XG4gIH1cbiAgLm1hdC1iYWRnZS1sYXJnZSB7XG4gICAgQGluY2x1ZGUgX21hdC1iYWRnZS1zaXplKCRtYXQtYmFkZ2UtbGFyZ2Utc2l6ZSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1iYWRnZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBmb250LXdlaWdodDogJG1hdC1iYWRnZS1mb250LXdlaWdodDtcbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplO1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgLy8gU2V0IHRoZSBmb250IHNpemUgdG8gNzUlIG9mIHRoZSBvcmlnaW5hbC5cbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplICogMC43NTtcbiAgfVxuXG4gIC5tYXQtYmFkZ2UtbGFyZ2UgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplICogMjtcbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtYm90dG9tLXNoZWV0LXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMTYsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtYm90dG9tLXNoZWV0LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG5cblxuJF9tYXQtYnV0dG9uLXJpcHBsZS1vcGFjaXR5OiAwLjE7XG5cbi8vIEFwcGxpZXMgYSBmb2N1cyBzdHlsZSB0byBhbiBtYXQtYnV0dG9uIGVsZW1lbnQgZm9yIGVhY2ggb2YgdGhlIHN1cHBvcnRlZCBwYWxldHRlcy5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LWNvbG9yKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcblxuICAmLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gIH1cblxuICAmLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICB9XG5cbiAgJi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHdhcm4pO1xuICB9XG5cbiAgJltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8gQXBwbGllcyB0aGUgYmFja2dyb3VuZCBjb2xvciBmb3IgYSByaXBwbGUuIElmIHRoZSB2YWx1ZSBwcm92aWRlZCBpcyBub3QgYSBTYXNzIGNvbG9yLFxuLy8gd2UgYXNzdW1lIHRoYXQgd2UndmUgYmVlbiBnaXZlbiBhIENTUyB2YXJpYWJsZS4gU2luY2Ugd2UgY2FuJ3QgcGVyZm9ybSBhbHBoYS1ibGVuZGluZ1xuLy8gb24gYSBDU1MgdmFyaWFibGUsIHdlIGluc3RlYWQgYWRkIHRoZSBvcGFjaXR5IGRpcmVjdGx5IHRvIHRoZSByaXBwbGUgZWxlbWVudC5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1yaXBwbGUtYmFja2dyb3VuZCgkcGFsZXR0ZSwgJGh1ZSwgJG9wYWNpdHkpIHtcbiAgJGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgJGh1ZSwgJG9wYWNpdHkpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgQGlmICh0eXBlLW9mKCRiYWNrZ3JvdW5kLWNvbG9yKSAhPSBjb2xvcikge1xuICAgIG9wYWNpdHk6ICRvcGFjaXR5O1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1yaXBwbGUtY29sb3IoJHRoZW1lLCAkaHVlLCAkb3BhY2l0eTogJF9tYXQtYnV0dG9uLXJpcHBsZS1vcGFjaXR5KSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gICYubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tcmlwcGxlLWJhY2tncm91bmQoJHByaW1hcnksICRodWUsICRvcGFjaXR5KTtcbiAgfVxuXG4gICYubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi1yaXBwbGUtYmFja2dyb3VuZCgkYWNjZW50LCAkaHVlLCAkb3BhY2l0eSk7XG4gIH1cblxuICAmLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXJpcHBsZS1iYWNrZ3JvdW5kKCR3YXJuLCAkaHVlLCAkb3BhY2l0eSk7XG4gIH1cbn1cblxuLy8gQXBwbGllcyBhIHByb3BlcnR5IHRvIGFuIG1hdC1idXR0b24gZWxlbWVudCBmb3IgZWFjaCBvZiB0aGUgc3VwcG9ydGVkIHBhbGV0dGVzLlxuQG1peGluIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCR0aGVtZSwgJHByb3BlcnR5LCAkaHVlKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICYubWF0LXByaW1hcnkge1xuICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRwcmltYXJ5LCAkaHVlKTtcbiAgfVxuICAmLm1hdC1hY2NlbnQge1xuICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRhY2NlbnQsICRodWUpO1xuICB9XG4gICYubWF0LXdhcm4ge1xuICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCR3YXJuLCAkaHVlKTtcbiAgfVxuXG4gICYubWF0LXByaW1hcnksICYubWF0LWFjY2VudCwgJi5tYXQtd2FybiwgJltkaXNhYmxlZF0ge1xuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICRwYWxldHRlOiBpZigkcHJvcGVydHkgPT0gJ2NvbG9yJywgJGZvcmVncm91bmQsICRiYWNrZ3JvdW5kKTtcbiAgICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRwYWxldHRlLCBkaXNhYmxlZC1idXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJ1dHRvbi10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1idXR0b24sIC5tYXQtaWNvbi1idXR0b24sIC5tYXQtc3Ryb2tlZC1idXR0b24ge1xuICAgIC8vIEJ1dHRvbnMgd2l0aG91dCBhIGJhY2tncm91bmQgY29sb3Igc2hvdWxkIGluaGVyaXQgdGhlIGZvbnQgY29sb3IuIFRoaXMgaXMgbmVjZXNzYXJ5IHRvXG4gICAgLy8gZW5zdXJlIHRoYXQgdGhlIGJ1dHRvbiBpcyByZWFkYWJsZSBvbiBjdXN0b20gYmFja2dyb3VuZCBjb2xvcnMuIEl0J3Mgd3JvbmcgdG8gYWx3YXlzIGFzc3VtZVxuICAgIC8vIHRoYXQgdGhvc2UgYnV0dG9ucyBhcmUgYWx3YXlzIHBsYWNlZCBpbnNpZGUgb2YgY29udGFpbmVycyB3aXRoIHRoZSBkZWZhdWx0IGJhY2tncm91bmRcbiAgICAvLyBjb2xvciBvZiB0aGUgdGhlbWUgKGUuZy4gdGhlbWVkIHRvb2xiYXJzKS5cbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCR0aGVtZSwgJ2NvbG9yJywgdGV4dCk7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tZm9jdXMtb3ZlcmxheS1jb2xvcigkdGhlbWUpO1xuXG4gICAgLy8gU2V0dXAgdGhlIHJpcHBsZSBjb2xvciB0byBiZSBiYXNlZCBvbiB0aGUgdGV4dCBjb2xvci4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHJpcHBsZXNcbiAgICAvLyBhcmUgbWF0Y2hpbmcgd2l0aCB0aGUgY3VycmVudCB0aGVtZSBwYWxldHRlIGFuZCBhcmUgaW4gY29udHJhc3QgdG8gdGhlIGJhY2tncm91bmQgY29sb3JcbiAgICAvLyAoZS5nIGluIHRoZW1lZCB0b29sYmFycykuXG4gICAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBvcGFjaXR5OiAkX21hdC1idXR0b24tcmlwcGxlLW9wYWNpdHk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZDogbWFwX2dldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG4gIH1cblxuICAvLyBOb3RlOiB0aGlzIG5lZWRzIGEgYml0IGV4dHJhIHNwZWNpZmljaXR5LCBiZWNhdXNlIHdlJ3JlIG5vdCBndWFyYW50ZWVkIHRoZSBpbmNsdXNpb25cbiAgLy8gb3JkZXIgb2YgdGhlIHRoZW1lIHN0eWxlcyBhbmQgdGhlIGJ1dHRvbiByZXNldCBtYXkgZW5kIHVwIHJlc2V0dGluZyB0aGlzIGFzIHdlbGwuXG4gIC5tYXQtc3Ryb2tlZC1idXR0b246bm90KFtkaXNhYmxlZF0pIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWZsYXQtYnV0dG9uLCAubWF0LXJhaXNlZC1idXR0b24sIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgICAvLyBEZWZhdWx0IGZvbnQgYW5kIGJhY2tncm91bmQgY29sb3Igd2hlbiBub3QgdXNpbmcgYW55IGNvbG9yIHBhbGV0dGUuXG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCByYWlzZWQtYnV0dG9uKTtcblxuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCR0aGVtZSwgJ2NvbG9yJywgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tdGhlbWUtcHJvcGVydHkoJHRoZW1lLCAnYmFja2dyb3VuZC1jb2xvcicsIGRlZmF1bHQpO1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXJpcHBsZS1jb2xvcigkdGhlbWUsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgLm1hdC1zdHJva2VkLWJ1dHRvbiwgLm1hdC1mbGF0LWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMCwgJHRoZW1lKTtcbiAgfVxuXG4gIC5tYXQtcmFpc2VkLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMiwgJHRoZW1lKTtcblxuICAgICY6bm90KFtkaXNhYmxlZF0pOmFjdGl2ZSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbig4LCAkdGhlbWUpO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mYWIsIC5tYXQtbWluaS1mYWIge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDYsICR0aGVtZSk7XG5cbiAgICAmOm5vdChbZGlzYWJsZWRdKTphY3RpdmUge1xuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMTIsICR0aGVtZSk7XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMCwgJHRoZW1lKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1idXR0b24tdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtYnV0dG9uLCAubWF0LXJhaXNlZC1idXR0b24sIC5tYXQtaWNvbi1idXR0b24sIC5tYXQtc3Ryb2tlZC1idXR0b24sXG4gIC5tYXQtZmxhdC1idXR0b24sIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYnV0dG9uKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRvZ2dsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGRpdmlkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUsXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMiwgJHRoZW1lKTtcbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuXG4gICAgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBmb2N1c2VkLWJ1dHRvbik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG5cbiAgICAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGZvY3VzZWQtYnV0dG9uLCAxKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggJGRpdmlkZXItY29sb3I7XG4gIH1cblxuICBbZGlyPSdydGwnXSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIGJvcmRlci1yaWdodDogc29saWQgMXB4ICRkaXZpZGVyLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwge1xuICAgIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgIGJvcmRlci10b3A6IHNvbGlkIDFweCAkZGl2aWRlci1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBzZWxlY3RlZC1idXR0b24pO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLWJ1dHRvbik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaXNhYmxlZC1idXR0b24tdG9nZ2xlKTtcblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIH1cblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIHNlbGVjdGVkLWRpc2FibGVkLWJ1dHRvbik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIGJvcmRlcjogc29saWQgMXB4ICRkaXZpZGVyLWNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRvZ2dsZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtY2FyZC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWNhcmQge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDEsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgIC8vIE5lZWRzIGV4dHJhIHNwZWNpZmljaXR5IHRvIGJlIGFibGUgdG8gb3ZlcnJpZGUgdGhlIGVsZXZhdGlvbiBzZWxlY3RvcnMuXG4gICAgJi5tYXQtY2FyZC1mbGF0IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYXJkLXN1YnRpdGxlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1jYXJkLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWNhcmQge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWNhcmQtdGl0bGUge1xuICAgIGZvbnQ6IHtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgaGVhZGxpbmUpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgdGl0bGUpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FyZC1oZWFkZXIgLm1hdC1jYXJkLXRpdGxlIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgdGl0bGUpO1xuICB9XG5cbiAgLm1hdC1jYXJkLXN1YnRpdGxlLFxuICAubWF0LWNhcmQtY29udGVudCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtY2hlY2tib3gtdGhlbWUoJHRoZW1lKSB7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG5cbiAgLy8gVGhlIGNvbG9yIG9mIHRoZSBjaGVja2JveCdzIGNoZWNrbWFyayAvIG1peGVkbWFyay5cbiAgJGNoZWNrYm94LW1hcmstY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgYmFja2dyb3VuZCk7XG5cbiAgLy8gTk9URSh0cmF2aXNrYXVmbWFuKTogV2hpbGUgdGhlIHNwZWMgY2FsbHMgZm9yIHRyYW5zbHVjZW50IGJsYWNrcy93aGl0ZXMgZm9yIGRpc2FibGVkIGNvbG9ycyxcbiAgLy8gdGhpcyBkb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBlbGVtZW50cyBsYXllcmVkIG9uIHRvcCBvZiBvbmUgYW5vdGhlci4gVG8gZ2V0IGFyb3VuZCB0aGlzIHdlXG4gIC8vIGJsZW5kIHRoZSBjb2xvcnMgdG9nZXRoZXIgYmFzZWQgb24gdGhlIGJhc2UgY29sb3IgYW5kIHRoZSB0aGVtZSBiYWNrZ3JvdW5kLlxuICAkd2hpdGUtMzBwY3Qtb3BhY2l0eS1vbi1kYXJrOiAjNjg2ODY4O1xuICAkYmxhY2stMjZwY3Qtb3BhY2l0eS1vbi1saWdodDogI2IwYjBiMDtcbiAgJGRpc2FibGVkLWNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJHdoaXRlLTMwcGN0LW9wYWNpdHktb24tZGFyaywgJGJsYWNrLTI2cGN0LW9wYWNpdHktb24tbGlnaHQpO1xuXG4gIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gICAgZmlsbDogJGNoZWNrYm94LW1hcmstY29sb3I7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIHtcbiAgICAvLyAhaW1wb3J0YW50IGlzIG5lZWRlZCBoZXJlIGJlY2F1c2UgYSBzdHJva2UgbXVzdCBiZSBzZXQgYXMgYW5cbiAgICAvLyBhdHRyaWJ1dGUgb24gdGhlIFNWRyBpbiBvcmRlciBmb3IgbGluZSBhbmltYXRpb24gdG8gd29yayBwcm9wZXJseS5cbiAgICBzdHJva2U6ICRjaGVja2JveC1tYXJrLWNvbG9yICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBjZGstaGlnaC1jb250cmFzdChibGFjay1vbi13aGl0ZSkge1xuICAgICAgLy8gSGF2aW5nIHRoZSBvbmUgYWJvdmUgYmUgIWltcG9ydGFudCBlbmRzIHVwIG92ZXJyaWRpbmcgdGhlIGJyb3dzZXIncyBhdXRvbWF0aWNcbiAgICAgIC8vIGNvbG9yIGludmVyc2lvbiBzbyB3ZSBuZWVkIHRvIHJlLWludmVydCBpdCBvdXJzZWx2ZXMgZm9yIGJsYWNrLW9uLXdoaXRlLlxuICAgICAgc3Ryb2tlOiAjMDAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjaGVja2JveC1tYXJrLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLCAubWF0LWNoZWNrYm94LWNoZWNrZWQge1xuICAgICYubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICAmLm1hdC1jaGVja2JveC1jaGVja2VkLFxuICAgICYubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICAgICAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5tYXQtY2hlY2tib3gtY2hlY2tlZCkge1xuICAgICAgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGNkay1oaWdoLWNvbnRyYXN0IHtcbiAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG4gIH1cblxuICAvLyBUaGlzIG9uZSBpcyBtb3ZlZCBkb3duIGhlcmUgc28gaXQgY2FuIHRhcmdldCBib3RoXG4gIC8vIHRoZSB0aGVtZSBjb2xvcnMgYW5kIHRoZSBkaXNhYmxlZCBzdGF0ZS5cbiAgQGluY2x1ZGUgY2RrLWhpZ2gtY29udHJhc3Qge1xuICAgIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICAvLyBOZWVkcyB0byBiZSByZW1vdmVkIGJlY2F1c2UgaXQgaGlkZXMgdGhlIGNoZWNrYm94IG91dGxpbmUuXG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN3aXRjaCB0aGlzIHRvIGEgc29saWQgY29sb3Igc2luY2Ugd2UncmUgdXNpbmcgYG9wYWNpdHlgXG4gIC8vIHRvIGNvbnRyb2wgaG93IG9wYXF1ZSB0aGUgcmlwcGxlIHNob3VsZCBiZS5cbiAgLm1hdC1jaGVja2JveCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXBfZ2V0KG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKSwgYmFzZSk7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLFxuICAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkge1xuICAgICYubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1jaGVja2JveC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1jaGVja2JveCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC8vIFRPRE8oa2FyYSk6IFJlbW92ZSB0aGlzIHN0eWxlIHdoZW4gZml4aW5nIHZlcnRpY2FsIGJhc2VsaW5lXG4gIC5tYXQtY2hlY2tib3gtbGF5b3V0IC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICAgIGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxufVxuXG5cblxuXG5cblxuJG1hdC1jaGlwLXJlbW92ZS1mb250LXNpemU6IDE4cHg7XG5cbkBtaXhpbiBtYXQtY2hpcHMtY29sb3IoJGZvcmVncm91bmQsICRiYWNrZ3JvdW5kKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGZvcmVncm91bmQ7XG5cbiAgLm1hdC1jaGlwLXJlbW92ZSB7XG4gICAgY29sb3I6ICRmb3JlZ3JvdW5kO1xuICAgIG9wYWNpdHk6IDAuNDtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWNoaXBzLXRoZW1lLWNvbG9yKCRwYWxldHRlKSB7XG4gIEBpbmNsdWRlIG1hdC1jaGlwcy1jb2xvcihtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QpLCBtYXQtY29sb3IoJHBhbGV0dGUpKTtcblxuICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QsIDAuMSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1jaGlwcy10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgJHVuc2VsZWN0ZWQtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCB1bnNlbGVjdGVkLWNoaXApO1xuICAkdW5zZWxlY3RlZC1mb3JlZ3JvdW5kOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcCB7XG4gICAgQGluY2x1ZGUgbWF0LWNoaXBzLWNvbG9yKCR1bnNlbGVjdGVkLWZvcmVncm91bmQsICR1bnNlbGVjdGVkLWJhY2tncm91bmQpO1xuXG4gICAgJjpub3QoLm1hdC1jaGlwLWRpc2FibGVkKSB7XG4gICAgICAmOmFjdGl2ZSB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDMsICR0aGVtZSk7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtY2hpcC1yZW1vdmU6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAwLjU0O1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWNoaXAtZGlzYWJsZWQge1xuICAgICAgb3BhY2l0eTogMC40O1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hcF9nZXQoJGZvcmVncm91bmQsIGJhc2UpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZCB7XG4gICAgJi5tYXQtcHJpbWFyeSB7XG4gICAgICBAaW5jbHVkZSBtYXQtY2hpcHMtdGhlbWUtY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgbWF0LWNoaXBzLXRoZW1lLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgbWF0LWNoaXBzLXRoZW1lLWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWNoaXBzLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWNoaXAge1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTIpO1xuICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcblxuICAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uLFxuICAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkbWF0LWNoaXAtcmVtb3ZlLWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LXRhYmxlLXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtdGFibGUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgfVxuXG4gIC5tYXQtdGFibGUgdGhlYWQsIC5tYXQtdGFibGUgdGJvZHksIC5tYXQtdGFibGUgdGZvb3QsXG4gIG1hdC1oZWFkZXItcm93LCBtYXQtcm93LCBtYXQtZm9vdGVyLXJvdyxcbiAgW21hdC1oZWFkZXItcm93XSwgW21hdC1yb3ddLCBbbWF0LWZvb3Rlci1yb3ddLFxuICAubWF0LXRhYmxlLXN0aWNreSB7XG4gICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgfVxuXG4gIG1hdC1yb3csIG1hdC1oZWFkZXItcm93LCBtYXQtZm9vdGVyLXJvdyxcbiAgdGgubWF0LWhlYWRlci1jZWxsLCB0ZC5tYXQtY2VsbCwgdGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jZWxsLCAubWF0LWZvb3Rlci1jZWxsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRhYmxlLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXRhYmxlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxuXG4gIC5tYXQtY2VsbCwgLm1hdC1mb290ZXItY2VsbCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuXG5cblxuJG1hdC1kYXRlcGlja2VyLXNlbGVjdGVkLXRvZGF5LWJveC1zaGFkb3ctd2lkdGg6IDFweDtcbiRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC1mYWRlLWFtb3VudDogMC42O1xuJG1hdC1kYXRlcGlja2VyLXRvZGF5LWZhZGUtYW1vdW50OiAwLjI7XG4kbWF0LWNhbGVuZGFyLWJvZHktZm9udC1zaXplOiAxM3B4ICFkZWZhdWx0O1xuJG1hdC1jYWxlbmRhci13ZWVrZGF5LXRhYmxlLWZvbnQtc2l6ZTogMTFweCAhZGVmYXVsdDtcblxuQG1peGluIF9tYXQtZGF0ZXBpY2tlci1jb2xvcigkcGFsZXR0ZSkge1xuICAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgICRiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRiYWNrZ3JvdW5kKSA9PSBjb2xvcikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZmFkZS1vdXQoJGJhY2tncm91bmQsICRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC1mYWRlLWFtb3VudCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIElmIHdlIGNvdWxkbid0IHJlc29sdmUgdG8gYmFja2dyb3VuZCB0byBhIGNvbG9yIChlLmcuIGl0J3MgYSBDU1MgdmFyaWFibGUpLFxuICAgICAgLy8gZmFsbCBiYWNrIHRvIGZhZGluZyB0aGUgY29udGVudCBvdXQgdmlhIGBvcGFjaXR5YC5cbiAgICAgIG9wYWNpdHk6ICRtYXQtZGF0ZXBpY2tlci10b2RheS1mYWRlLWFtb3VudDtcbiAgICB9XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwICRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC10b2RheS1ib3gtc2hhZG93LXdpZHRoXG4gICAgICAgICAgICAgICAgbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWRhdGVwaWNrZXItdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG5cbiAgLm1hdC1jYWxlbmRhci1hcnJvdyB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBpY29uKTtcbiAgfVxuXG4gIC8vIFRoZSBwcmV2L25leHQgYnV0dG9ucyBuZWVkIGEgYml0IG1vcmUgc3BlY2lmaWNpdHkgdG9cbiAgLy8gYXZvaWQgYmVpbmcgb3ZlcndyaXR0ZW4gYnkgdGhlIC5tYXQtaWNvbi1idXR0b24uXG4gIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUsXG4gIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItbmV4dC1idXR0b24sXG4gIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItcHJldmlvdXMtYnV0dG9uIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBpY29uKTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXItZGl2aWRlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQpOmhvdmVyLFxuICAuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZSxcbiAgLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZSB7XG4gICAgJiA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgICAvLyBOb3RlOiB0aG91Z2ggaXQncyBub3QgdGV4dCwgdGhlIGJvcmRlciBpcyBhIGhpbnQgYWJvdXQgdGhlIGZhY3QgdGhhdCB0aGlzIGlzIHRvZGF5J3MgZGF0ZSxcbiAgICAvLyBzbyB3ZSB1c2UgdGhlIGhpbnQgY29sb3IuXG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICAgICRjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IpIHtcbiAgICAgIGJvcmRlci1jb2xvcjogZmFkZS1vdXQoJGNvbG9yLCAkbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBJZiB0aGUgY29sb3IgZGlkbid0IHJlc29sdmUgdG8gYSBjb2xvciB2YWx1ZSwgYnV0IHNvbWV0aGluZyBsaWtlIGEgQ1NTIHZhcmlhYmxlLCB3ZSBjYW4ndFxuICAgICAgLy8gZmFkZSBpdCBvdXQgc28gd2UgZmFsbCBiYWNrIHRvIHJlZHVjaW5nIHRoZSBlbGVtZW50IG9wYWNpdHkuIE5vdGUgdGhhdCB3ZSBkb24ndCB1c2UgdGhlXG4gICAgICAvLyAkbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQsIGJlY2F1c2UgaGludCB0ZXh0IHVzdWFsbHkgaGFzIHNvbWUgb3BhY2l0eSBhcHBsaWVkXG4gICAgICAvLyB0byBpdCBhbHJlYWR5IGFuZCB3ZSBkb24ndCB3YW50IHRoZW0gdG8gc3RhY2sgb24gdG9wIG9mIGVhY2ggb3RoZXIuXG4gICAgICBvcGFjaXR5OiAwLjU7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLWNvbG9yKG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KSk7XG5cbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDQsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWRhdGVwaWNrZXItY29sb3IobWFwLWdldCgkdGhlbWUsIGFjY2VudCkpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLWNvbG9yKG1hcC1nZXQoJHRoZW1lLCB3YXJuKSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQtdG91Y2gge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gIH1cblxuICAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSksIHRleHQpO1xuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IobWFwLWdldCgkdGhlbWUsIGFjY2VudCksIHRleHQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgd2FybiksIHRleHQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWRhdGVwaWNrZXItdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtY2FsZW5kYXIge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHkge1xuICAgIGZvbnQtc2l6ZTogJG1hdC1jYWxlbmRhci1ib2R5LWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCxcbiAgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJ1dHRvbik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHRoIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiAkbWF0LWNhbGVuZGFyLXdlZWtkYXktdGFibGUtZm9udC1zaXplO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1kaWFsb2ctdGhlbWUoJHRoZW1lKSB7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1kaWFsb2ctY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigyNCwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGRpYWxvZyk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1kaWFsb2ctdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtZGlhbG9nLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgdGl0bGUpO1xuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LWV4cGFuc2lvbi1wYW5lbC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWV4cGFuc2lvbi1wYW5lbCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMiwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1hY3Rpb24tcm93IHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwge1xuICAgICYgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkLFxuICAgICYgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gICAgJjpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyIHtcbiAgICAgICY6bm90KFthcmlhLWRpc2FibGVkPSd0cnVlJ10pIHtcbiAgICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gRGlzYWJsZSB0aGUgaG92ZXIgb24gdG91Y2ggZGV2aWNlcyBzaW5jZSBpdCBjYW4gYXBwZWFyIGxpa2UgaXQgaXMgc3R1Y2suIFdlIGNhbid0IHVzZVxuICAvLyBgQG1lZGlhIChob3ZlcilgIGFib3ZlLCBiZWNhdXNlIHRoZSBkZXNrdG9wIHN1cHBvcnQgYnJvd3NlciBzdXBwb3J0IGlzbid0IGdyZWF0LlxuICBAbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gICAgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpOm5vdChbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddKVxuICAgICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbixcbiAgLm1hdC1leHBhbnNpb24taW5kaWNhdG9yOjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtYnV0dG9uKTtcblxuICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSxcbiAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtZXhwYW5zaW9uLXBhbmVsLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBzdWJoZWFkaW5nLTEpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG5cbi8vIFRoaXMgbWl4aW4gd2lsbCBlbnN1cmUgdGhhdCBsaW5lcyB0aGF0IG92ZXJmbG93IHRoZSBjb250YWluZXIgd2lsbCBoaWRlIHRoZSBvdmVyZmxvdyBhbmRcbi8vIHRydW5jYXRlIG5lYXRseSB3aXRoIGFuIGVsbGlwc2lzLlxuQG1peGluIG1hdC10cnVuY2F0ZS1saW5lKCkge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLy8gTWl4aW4gdG8gcHJvdmlkZSBhbGwgbWF0LWxpbmUgc3R5bGVzLCBjaGFuZ2luZyBzZWNvbmRhcnkgZm9udCBzaXplIGJhc2VkIG9uIHdoZXRoZXIgdGhlIGxpc3Rcbi8vIGlzIGluIGRlbnNlIG1vZGUuXG5AbWl4aW4gbWF0LWxpbmUtYmFzZSgkc2Vjb25kYXJ5LWZvbnQtc2l6ZSkge1xuICAubWF0LWxpbmUge1xuICAgIEBpbmNsdWRlIG1hdC10cnVuY2F0ZS1saW5lKCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIC8vIGFsbCBsaW5lcyBidXQgdGhlIHRvcCBsaW5lIHNob3VsZCBoYXZlIHNtYWxsZXIgdGV4dFxuICAgICY6bnRoLWNoaWxkKG4rMikge1xuICAgICAgZm9udC1zaXplOiAkc2Vjb25kYXJ5LWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gVGhpcyBtaXhpbiBub3JtYWxpemVzIGRlZmF1bHQgZWxlbWVudCBzdHlsZXMsIGUuZy4gZm9udCB3ZWlnaHQgZm9yIGhlYWRpbmcgdGV4dC5cbkBtaXhpbiBtYXQtbm9ybWFsaXplLXRleHQoKSB7XG4gICYgPiAqIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgfVxufVxuXG4vLyBUaGlzIG1peGluIHByb3ZpZGVzIGJhc2Ugc3R5bGVzIGZvciB0aGUgd3JhcHBlciBhcm91bmQgbWF0LWxpbmUgZWxlbWVudHMgaW4gYSBsaXN0LlxuQG1peGluIG1hdC1saW5lLXdyYXBwZXItYmFzZSgpIHtcbiAgQGluY2x1ZGUgbWF0LW5vcm1hbGl6ZS10ZXh0KCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgLy8gTXVzdCByZW1vdmUgd3JhcHBlciB3aGVuIGxpbmVzIGFyZSBlbXB0eSBvciBpdCB0YWtlcyB1cCBob3Jpem9udGFsXG4gIC8vIHNwYWNlIGFuZCBwdXNoZXMgb3RoZXIgZWxlbWVudHMgdG8gdGhlIHJpZ2h0LlxuICAmOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cblxuXG4vLyBJbmNsdWRlIHRoaXMgZW1wdHkgbWl4aW4gZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIG90aGVyIGNvbXBvbmVudHMuXG5AbWl4aW4gbWF0LWdyaWQtbGlzdC10aGVtZSgkdGhlbWUpIHsgfVxuXG5AbWl4aW4gbWF0LWdyaWQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1ncmlkLXRpbGUtaGVhZGVyLFxuICAubWF0LWdyaWQtdGlsZS1mb290ZXIge1xuICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKSk7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuLy8gSW5jbHVkZSB0aGlzIGVtcHR5IG1peGluIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBvdGhlciBjb21wb25lbnRzLlxuQG1peGluIG1hdC1pY29uLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWljb24ge1xuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1pY29uLXR5cG9ncmFwaHkoJGNvbmZpZykgeyB9XG5cblxuXG5cblxuLy8gUmVuZGVycyBhIGdyYWRpZW50IGZvciBzaG93aW5nIHRoZSBkYXNoZWQgbGluZSB3aGVuIHRoZSBpbnB1dCBpcyBkaXNhYmxlZC5cbi8vIFVubGlrZSB1c2luZyBhIGJvcmRlciwgYSBncmFkaWVudCBhbGxvd3MgdXMgdG8gYWRqdXN0IHRoZSBzcGFjaW5nIG9mIHRoZSBkb3R0ZWQgbGluZVxuLy8gdG8gbWF0Y2ggdGhlIE1hdGVyaWFsIERlc2lnbiBzcGVjLlxuQG1peGluIG1hdC1jb250cm9sLWRpc2FibGVkLXVuZGVybGluZSgkY29sb3IpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkY29sb3IgMCUsICRjb2xvciAzMyUsIHRyYW5zcGFyZW50IDAlKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0cHggMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuXG4vLyBGaWd1cmVzIG91dCB0aGUgY29sb3Igb2YgdGhlIHBsYWNlaG9sZGVyIGZvciBhIGZvcm0gY29udHJvbC5cbi8vIFVzZWQgcHJpbWFyaWx5IHRvIHByZXZlbnQgdGhlIHZhcmlvdXMgZm9ybSBjb250cm9scyBmcm9tXG4vLyBiZWNvbWluZyBvdXQgb2Ygc3luYyBzaW5jZSB0aGVzZSBjb2xvcnMgYXJlbid0IGluIGEgcGFsZXR0ZS5cbkBmdW5jdGlvbiBfbWF0LWNvbnRyb2wtcGxhY2Vob2xkZXItY29sb3IoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG4gIEByZXR1cm4gbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCwgaWYoJGlzLWRhcmstdGhlbWUsIDAuNSwgMC40MikpO1xufVxuXG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIG1hdGVyaWFsL25vLXByZWZpeGVzICovXG5AbWl4aW4gdXNlci1zZWxlY3QoJHZhbHVlKSB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgLW1vei11c2VyLXNlbGVjdDogJHZhbHVlO1xuICAtbXMtdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbn1cblxuQG1peGluIGlucHV0LXBsYWNlaG9sZGVyIHtcbiAgJjo6cGxhY2Vob2xkZXIge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgJjo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gY3Vyc29yLWdyYWIge1xuICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcbiAgY3Vyc29yOiBncmFiO1xufVxuXG5AbWl4aW4gY3Vyc29yLWdyYWJiaW5nIHtcbiAgY3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nO1xuICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuXG5AbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmFsdWUpIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiAkdmFsdWU7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6ICR2YWx1ZTtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cblxuXG5cbkBtaXhpbiBtYXQtaW5wdXQtdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtaW5wdXQtZWxlbWVudDpkaXNhYmxlZCxcbiAgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gIH1cblxuICAubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIGNhcmV0LWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuXG4gICAgQGluY2x1ZGUgaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IF9tYXQtY29udHJvbC1wbGFjZWhvbGRlci1jb2xvcigkdGhlbWUpO1xuICAgIH1cblxuICAgIC8vIE9uIGRhcmsgdGhlbWVzIHdlIHNldCB0aGUgbmF0aXZlIGBzZWxlY3RgIGNvbG9yIHRvIHNvbWUgc2hhZGUgb2Ygd2hpdGUsXG4gICAgLy8gaG93ZXZlciB0aGUgY29sb3IgcHJvcGFnYXRlcyB0byBhbGwgb2YgdGhlIGBvcHRpb25gIGVsZW1lbnRzLCB3aGljaCBhcmVcbiAgICAvLyBhbHdheXMgb24gYSB3aGl0ZSBiYWNrZ3JvdW5kIGluc2lkZSB0aGUgZHJvcGRvd24sIGNhdXNpbmcgdGhlbSB0byBibGVuZCBpbi5cbiAgICAvLyBTaW5jZSB3ZSBjYW4ndCBjaGFuZ2UgYmFja2dyb3VuZCBvZiB0aGUgZHJvcGRvd24sIHdlIG5lZWQgdG8gZXhwbGljaXRseVxuICAgIC8vIHJlc2V0IHRoZSBjb2xvciBvZiB0aGUgb3B0aW9ucyB0byBzb21ldGhpbmcgZGFyay5cbiAgICBAaWYgKG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKSkge1xuICAgICAgb3B0aW9uIHtcbiAgICAgICAgY29sb3I6ICRkYXJrLXByaW1hcnktdGV4dDtcbiAgICAgIH1cblxuICAgICAgb3B0aW9uOmRpc2FibGVkIHtcbiAgICAgICAgY29sb3I6ICRkYXJrLWRpc2FibGVkLXRleHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1hY2NlbnQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC13YXJuIC5tYXQtaW5wdXQtZWxlbWVudCxcbiAgLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1pbnB1dC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuXG4gIC8vIFRoZSBhbW91bnQgb2Ygc3BhY2UgYmV0d2VlbiB0aGUgdG9wIG9mIHRoZSBsaW5lIGFuZCB0aGUgdG9wIG9mIHRoZSBhY3R1YWwgdGV4dFxuICAvLyAoYXMgYSBmcmFjdGlvbiBvZiB0aGUgZm9udC1zaXplKS5cbiAgJGxpbmUtc3BhY2luZzogKCRsaW5lLWhlaWdodCAtIDEpIC8gMjtcblxuICAvLyA8aW5wdXQ+IGVsZW1lbnRzIHNlZW0gdG8gaGF2ZSB0aGVpciBoZWlnaHQgc2V0IHNsaWdodGx5IHRvbyBsYXJnZSBvbiBTYWZhcmkgY2F1c2luZyB0aGUgdGV4dCB0b1xuICAvLyBiZSBtaXNhbGlnbmVkIHcuci50LiB0aGUgcGxhY2Vob2xkZXIuIEFkZGluZyB0aGlzIG1hcmdpbiBjb3JyZWN0cyBpdC5cbiAgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIG1hcmdpbi10b3A6IC0kbGluZS1zcGFjaW5nICogMWVtO1xuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtbGlzdC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWxpc3QtYmFzZSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXN1YmhlYWRlciB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1saXN0LWl0ZW0tZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlzYWJsZWQtbGlzdC1vcHRpb24pO1xuICB9XG5cbiAgLm1hdC1saXN0LW9wdGlvbixcbiAgLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbSxcbiAgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbSB7XG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdob3ZlcicpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWxpc3QtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gICRmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuXG4gIC5tYXQtbGlzdC1pdGVtIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICB9XG5cbiAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgfVxuXG4gIC8vIERlZmF1bHQgbGlzdFxuICAubWF0LWxpc3QtYmFzZSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHN1YmhlYWRpbmctMik7XG4gICAgICBAaW5jbHVkZSBtYXQtbGluZS1iYXNlKG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKSk7XG4gICAgfVxuXG4gICAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgc3ViaGVhZGluZy0yKTtcbiAgICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpKTtcbiAgICB9XG5cbiAgICAubWF0LXN1YmhlYWRlciB7XG4gICAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMik7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0yKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cblxuICAvLyBEZW5zZSBsaXN0XG4gIC5tYXQtbGlzdC1iYXNlW2RlbnNlXSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgQGluY2x1ZGUgbWF0LWxpbmUtYmFzZShtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pKTtcbiAgICB9XG5cbiAgICAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKSk7XG4gICAgfVxuXG4gICAgLm1hdC1zdWJoZWFkZXIge1xuICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1tZW51LXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtbWVudS1wYW5lbCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdjYXJkJyk7XG4gIH1cblxuICAubWF0LW1lbnUtaXRlbSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ3RleHQnKTtcblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICYsICY6OmFmdGVyIHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2Rpc2FibGVkJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1tZW51LWl0ZW0gLm1hdC1pY29uLW5vLWNvbG9yLFxuICAubWF0LW1lbnUtaXRlbS1zdWJtZW51LXRyaWdnZXI6OmFmdGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAnaWNvbicpO1xuICB9XG5cbiAgLm1hdC1tZW51LWl0ZW06aG92ZXIsXG4gIC5tYXQtbWVudS1pdGVtLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gIC5tYXQtbWVudS1pdGVtLmNkay1rZXlib2FyZC1mb2N1c2VkLFxuICAubWF0LW1lbnUtaXRlbS1oaWdobGlnaHRlZCB7XG4gICAgJjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnaG92ZXInKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1tZW51LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LW1lbnUtaXRlbSB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LXBhZ2luYXRvci10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcblxuICAubWF0LXBhZ2luYXRvciB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICB9XG5cbiAgLm1hdC1wYWdpbmF0b3IsXG4gIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4gIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCB7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2ljb24nKTtcbiAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCBtYXQtY29sb3IoJGZvcmVncm91bmQsICdpY29uJyk7XG4gIH1cblxuICAubWF0LXBhZ2luYXRvci1maXJzdCxcbiAgLm1hdC1wYWdpbmF0b3ItbGFzdCB7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2ljb24nKTtcbiAgfVxuXG4gIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIHtcbiAgICAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4gICAgLm1hdC1wYWdpbmF0b3ItaW5jcmVtZW50LFxuICAgIC5tYXQtcGFnaW5hdG9yLWZpcnN0LFxuICAgIC5tYXQtcGFnaW5hdG9yLWxhc3Qge1xuICAgICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsICdkaXNhYmxlZCcpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXBhZ2luYXRvci10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1wYWdpbmF0b3IsXG4gIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbik7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuQG1peGluIG1hdC1wcm9ncmVzcy1iYXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICAgIGZpbGw6IG1hdC1jb2xvcigkcHJpbWFyeSwgbGlnaHRlcik7XG4gIH1cblxuICAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgbGlnaHRlcik7XG4gIH1cblxuICAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQge1xuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICAgICAgZmlsbDogbWF0LWNvbG9yKCRhY2NlbnQsIGxpZ2h0ZXIpO1xuICAgIH1cblxuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIHtcbiAgICAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgICAgIGZpbGw6IG1hdC1jb2xvcigkd2FybiwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkd2FybiwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1wcm9ncmVzcy1iYXItdHlwb2dyYXBoeSgkY29uZmlnKSB7IH1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG5cbiAgLm1hdC1wcm9ncmVzcy1zcGlubmVyLCAubWF0LXNwaW5uZXIge1xuICAgIGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cbkBtaXhpbiBfbWF0LXJhZGlvLWNvbG9yKCRwYWxldHRlKSB7XG4gICYubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlKTtcbiAgfVxuXG4gIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuICAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSxcbiAgJi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLFxuICAmOmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtcmFkaW8tdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1yYWRpby1idXR0b24ge1xuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgX21hdC1yYWRpby1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtcmFkaW8tY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXJhZGlvLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIG5lZWRzIGV4dHJhIHNwZWNpZmljaXR5LCBiZWNhdXNlIHRoZSBjbGFzc2VzIGFib3ZlIGFyZSBjb21iaW5lZFxuICAgIC8vIChlLmcuIGAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50YCkgd2hpY2ggaW5jcmVhc2VzIHRoZWlyIHNwZWNpZmljaXR5IGEgbG90LlxuICAgIC8vIFRPRE86IGNvbnNpZGVyIG1ha2luZyB0aGUgc2VsZWN0b3JzIGludG8gZGVzY2VuZGFudHMgKGAubWF0LXByaW1hcnkgLm1hdC1yYWRpby1idXR0b25gKS5cbiAgICAmLm1hdC1yYWRpby1kaXNhYmxlZCB7XG4gICAgICAmLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlLFxuICAgICAgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgICAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQpO1xuICAgICAgfVxuXG4gICAgICAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50LFxuICAgICAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkKTtcbiAgICAgIH1cblxuICAgICAgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFN3aXRjaCB0aGlzIHRvIGEgc29saWQgY29sb3Igc2luY2Ugd2UncmUgdXNpbmcgYG9wYWNpdHlgXG4gICAgLy8gdG8gY29udHJvbCBob3cgb3BhcXVlIHRoZSByaXBwbGUgc2hvdWxkIGJlLlxuICAgIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwX2dldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcmFkaW8tdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1zZWxlY3QtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogX21hdC1jb250cm9sLXBsYWNlaG9sZGVyLWNvbG9yKCR0aGVtZSk7XG4gIH1cblxuICAubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gIH1cblxuICAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1zZWxlY3QtcGFuZWwge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJHRoZW1lKTtcblxuICAgIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIsIDAuMTIpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZCB7XG4gICAgJi5tYXQtZm9jdXNlZCB7XG4gICAgICAmLm1hdC1wcmltYXJ5IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWFjY2VudCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LXdhcm4gLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWludmFsaWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1zZWxlY3QtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcblxuICAubWF0LXNlbGVjdCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIGhlaWdodDogJGxpbmUtaGVpZ2h0ICogMWVtO1xuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LXNpZGVuYXYtdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICRkcmF3ZXItYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAkZHJhd2VyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yOiAgbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBiYWNrZ3JvdW5kKTtcbiAgJGRyYXdlci1wdXNoLWJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlhbG9nKTtcbiAgJGRyYXdlci1zaWRlLWJvcmRlcjogc29saWQgMXB4IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG5cbiAgLm1hdC1kcmF3ZXItY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJhd2VyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1kcmF3ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkcmF3ZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LWRyYXdlci1wdXNoIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkcmF3ZXItcHVzaC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cblxuICAgICY6bm90KC5tYXQtZHJhd2VyLXNpZGUpIHtcbiAgICAgIC8vIFRoZSBlbGV2YXRpb24gb2Ygei0xNiBpcyBub3RlZCBpbiB0aGUgZGVzaWduIHNwZWNpZmljYXRpb25zLlxuICAgICAgLy8gU2VlIGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1kcmF3ZXIuaHRtbFxuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMTYsICR0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kcmF3ZXItc2lkZSB7XG4gICAgYm9yZGVyLXJpZ2h0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuXG4gICAgJi5tYXQtZHJhd2VyLWVuZCB7XG4gICAgICBib3JkZXItbGVmdDogJGRyYXdlci1zaWRlLWJvcmRlcjtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICB9XG4gIH1cblxuICBbZGlyPSdydGwnXSAubWF0LWRyYXdlci1zaWRlIHtcbiAgICBib3JkZXItbGVmdDogJGRyYXdlci1zaWRlLWJvcmRlcjtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG5cbiAgICAmLm1hdC1kcmF3ZXItZW5kIHtcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZHJhd2VyLWJhY2tkcm9wLm1hdC1kcmF3ZXItc2hvd24ge1xuICAgICRvcGFjaXR5OiAwLjY7XG4gICAgJGJhY2tkcm9wLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQsICRvcGFjaXR5KTtcblxuICAgIEBpZiAodHlwZS1vZigkYmFja2Ryb3AtY29sb3IpID09IGNvbG9yKSB7XG4gICAgICAvLyBXZSB1c2UgaW52ZXJ0KCkgaGVyZSB0byBoYXZlIHRoZSBkYXJrZW4gdGhlIGJhY2tncm91bmQgY29sb3IgZXhwZWN0ZWQgdG8gYmUgdXNlZC4gSWYgdGhlXG4gICAgICAvLyBiYWNrZ3JvdW5kIGlzIGxpZ2h0LCB3ZSB1c2UgYSBkYXJrIGJhY2tkcm9wLiBJZiB0aGUgYmFja2dyb3VuZCBpcyBkYXJrLFxuICAgICAgLy8gd2UgdXNlIGEgbGlnaHQgYmFja2Ryb3AuXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbnZlcnQoJGJhY2tkcm9wLWNvbG9yKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gSWYgd2UgY291bGRuJ3QgcmVzb2x2ZSB0aGUgYmFja2Ryb3AgY29sb3IgdG8gYSBjb2xvciB2YWx1ZSwgZmFsbCBiYWNrIHRvIHVzaW5nXG4gICAgICAvLyBgb3BhY2l0eWAgdG8gbWFrZSBpdCBvcGFxdWUgc2luY2UgaXRzIGVuZCB2YWx1ZSBjb3VsZCBiZSBhIHNvbGlkIGNvbG9yLlxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tkcm9wLWNvbG9yO1xuICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc2lkZW5hdi10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cblxuQG1peGluIF9tYXQtc2xpZGUtdG9nZ2xlLWNoZWNrZWQoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSkge1xuICAmLm1hdC1jaGVja2VkIHtcbiAgICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSk7XG4gICAgfVxuXG4gICAgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgICAgIC8vIE9wYWNpdHkgaXMgZGV0ZXJtaW5lZCBmcm9tIHRoZSBzcGVjcyBmb3IgdGhlIHNlbGVjdGlvbiBjb250cm9scy5cbiAgICAgIC8vIFNlZTogaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vY29tcG9uZW50cy9zZWxlY3Rpb24tY29udHJvbHMuaHRtbCNzcGVjc1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAkdGh1bWItY2hlY2tlZC1odWUsIDAuNTQpO1xuICAgIH1cblxuICAgIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgLy8gU2V0IG5vIG9wYWNpdHkgZm9yIHRoZSByaXBwbGVzIGJlY2F1c2UgdGhlIHJpcHBsZSBvcGFjaXR5IHdpbGwgYmUgYWRqdXN0ZWQgZHluYW1pY2FsbHlcbiAgICAgIC8vIGJhc2VkIG9uIHRoZSB0eXBlIG9mIGludGVyYWN0aW9uIHdpdGggdGhlIHNsaWRlLXRvZ2dsZSAoZS5nLiBmb3IgaG92ZXIsIGZvY3VzKVxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAkdGh1bWItY2hlY2tlZC1odWUpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNsaWRlLXRvZ2dsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcms6IG1hcF9nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLy8gQ29sb3IgaHVlcyBhcmUgYmFzZWQgb24gdGhlIHNwZWNzIHdoaWNoIGJyaWVmbHkgc2hvdyB0aGUgaHVlcyB0aGF0IGFyZSBhcHBsaWVkIHRvIGEgc3dpdGNoLlxuICAvLyBUaGUgMjAxOCBzcGVjcyBubyBsb25nZXIgZGVzY3JpYmUgaG93IGRhcmsgc3dpdGNoZXMgc2hvdWxkIGxvb2sgbGlrZS4gRHVlIHRvIHRoZSBsYWNrIG9mXG4gIC8vIGluZm9ybWF0aW9uIGZvciBkYXJrIHRoZW1lZCBzd2l0Y2hlcywgd2UgcGFydGlhbGx5IGtlZXAgdGhlIG9sZCBiZWhhdmlvciB0aGF0IGlzIGJhc2VkIG9uXG4gIC8vIHRoZSBwcmV2aW91cyBzcGVjaWZpY2F0aW9ucy4gRm9yIHRoZSBjaGVja2VkIGNvbG9yIHdlIGFsd2F5cyB1c2UgdGhlIGBkZWZhdWx0YCBodWUgYmVjYXVzZVxuICAvLyB0aGF0IGZvbGxvd3MgTURDIGFuZCBhbHNvIG1ha2VzIGl0IGVhc2llciBmb3IgcGVvcGxlIHRvIGNyZWF0ZSBhIGN1c3RvbSB0aGVtZSB3aXRob3V0IG5lZWRpbmdcbiAgLy8gdG8gc3BlY2lmeSBlYWNoIGh1ZSBpbmRpdmlkdWFsbHkuXG4gICR0aHVtYi11bmNoZWNrZWQtaHVlOiBpZigkaXMtZGFyaywgNDAwLCA1MCk7XG4gICR0aHVtYi1jaGVja2VkLWh1ZTogZGVmYXVsdDtcblxuICAkYmFyLXVuY2hlY2tlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZCk7XG4gICRyaXBwbGUtdW5jaGVja2VkLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGJhc2UpO1xuXG4gIC5tYXQtc2xpZGUtdG9nZ2xlIHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlLXRvZ2dsZS1jaGVja2VkKCRhY2NlbnQsICR0aHVtYi1jaGVja2VkLWh1ZSk7XG5cbiAgICAmLm1hdC1wcmltYXJ5IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtc2xpZGUtdG9nZ2xlLWNoZWNrZWQoJHByaW1hcnksICR0aHVtYi1jaGVja2VkLWh1ZSk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXNsaWRlLXRvZ2dsZS1jaGVja2VkKCR3YXJuLCAkdGh1bWItY2hlY2tlZC1odWUpO1xuICAgIH1cblxuICAgICY6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICAvLyBTZXQgbm8gb3BhY2l0eSBmb3IgdGhlIHJpcHBsZXMgYmVjYXVzZSB0aGUgcmlwcGxlIG9wYWNpdHkgd2lsbCBiZSBhZGp1c3RlZCBkeW5hbWljYWxseVxuICAgICAgLy8gYmFzZWQgb24gdGhlIHR5cGUgb2YgaW50ZXJhY3Rpb24gd2l0aCB0aGUgc2xpZGUtdG9nZ2xlIChlLmcuIGZvciBob3ZlciwgZm9jdXMpXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmlwcGxlLXVuY2hlY2tlZC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMSwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJG1hdC1ncmV5LCAkdGh1bWItdW5jaGVja2VkLWh1ZSk7XG4gIH1cblxuICAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXItdW5jaGVja2VkLWNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc2xpZGUtdG9nZ2xlLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50IHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cblxuXG5cblxuQG1peGluIF9tYXQtc2xpZGVyLWlubmVyLWNvbnRlbnQtdGhlbWUoJHBhbGV0dGUpIHtcbiAgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbiAgLm1hdC1zbGlkZXItdGh1bWIsXG4gIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICB9XG5cbiAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1zbGlkZXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICRtYXQtc2xpZGVyLW9mZi1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmKTtcbiAgJG1hdC1zbGlkZXItb2ZmLWZvY3VzZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW9mZi1hY3RpdmUpO1xuICAkbWF0LXNsaWRlci1kaXNhYmxlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmKTtcbiAgJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW1pbik7XG4gICRtYXQtc2xpZGVyLWxhYmVsZWQtbWluLXZhbHVlLXRodW1iLWxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNsaWRlci1vZmYpO1xuICAkbWF0LXNsaWRlci1mb2N1cy1yaW5nLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgZGVmYXVsdCwgMC4yKTtcbiAgJG1hdC1zbGlkZXItZm9jdXMtcmluZy1taW4tdmFsdWUtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgMC4xMik7XG4gICRtYXQtc2xpZGVyLXRpY2stY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgMC43KTtcbiAgJG1hdC1zbGlkZXItdGljay1zaXplOiAycHg7XG5cbiAgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItb2ZmLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1wcmltYXJ5IHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCRwcmltYXJ5KTtcbiAgfVxuXG4gIC5tYXQtYWNjZW50IHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCRhY2NlbnQpO1xuICB9XG5cbiAgLm1hdC13YXJuIHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCR3YXJuKTtcbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWZvY3VzLXJpbmctY29sb3I7XG4gIH1cblxuICAubWF0LXNsaWRlcjpob3ZlcixcbiAgLmNkay1mb2N1c2VkIHtcbiAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLW9mZi1mb2N1c2VkLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWRpc2FibGVkIHtcbiAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLFxuICAgIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4gICAgLm1hdC1zbGlkZXItdGh1bWIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItZGlzYWJsZWQtY29sb3I7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zbGlkZXItbWluLXZhbHVlIHtcbiAgICAubWF0LXNsaWRlci1mb2N1cy1yaW5nIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWZvY3VzLXJpbmctbWluLXZhbHVlLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIHtcbiAgICAgIC5tYXQtc2xpZGVyLXRodW1iLFxuICAgICAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWF0LXNsaWRlci1sYWJlbGVkLW1pbi12YWx1ZS10aHVtYi1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgJi5jZGstZm9jdXNlZCB7XG4gICAgICAgIC5tYXQtc2xpZGVyLXRodW1iLFxuICAgICAgICAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItbGFiZWwtY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKSB7XG4gICAgICAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJG1hdC1zbGlkZXItb2ZmLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlcixcbiAgICAgICYuY2RrLWZvY3VzZWQge1xuICAgICAgICAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci1vZmYtZm9jdXNlZC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWhhcy10aWNrcyAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci10aWNrLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgICAvLyBGaXJlZm94IGRvZXNuJ3QgZHJhdyB0aGUgZ3JhZGllbnQgY29ycmVjdGx5IHdpdGggJ3RvIHJpZ2h0J1xuICAgIC8vIChzZWUgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxNDMxOSkuXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1yZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDAuMDAwMWRlZywgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgfVxuXG4gIC5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRpY2tzIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNsaWRlci10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LXN0ZXBwZXItdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG5cbiAgLm1hdC1zdGVwLWhlYWRlciB7XG4gICAgJi5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgICAmLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGhvdmVyKTtcbiAgICB9XG5cbiAgICAvLyBPbiB0b3VjaCBkZXZpY2VzIHRoZSA6aG92ZXIgc3RhdGUgd2lsbCBsaW5nZXIgb24gdGhlIGVsZW1lbnQgYWZ0ZXIgYSB0YXAuXG4gICAgLy8gUmVzZXQgaXQgdmlhIGBAbWVkaWFgIGFmdGVyIHRoZSBkZWNsYXJhdGlvbiwgYmVjYXVzZSB0aGUgbWVkaWEgcXVlcnkgaXNuJ3RcbiAgICAvLyBzdXBwb3J0ZWQgYnkgYWxsIGJyb3dzZXJzIHlldC5cbiAgICBAbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtbGFiZWwsXG4gICAgLm1hdC1zdGVwLW9wdGlvbmFsIHtcbiAgICAgIC8vIFRPRE8oam9zZXBocGVycm90dCk6IFVwZGF0ZSB0byB1c2luZyBhIGNvcnJlY3RlZCBkaXNhYmxlZC10ZXh0IGNvbnRyYXN0XG4gICAgICAvLyBpbnN0ZWFkIG9mIHNlY29uZGFyeS10ZXh0LlxuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1pY29uIHtcbiAgICAgIC8vIFRPRE8oam9zZXBocGVycm90dCk6IFVwZGF0ZSB0byB1c2luZyBhIGNvcnJlY3RlZCBkaXNhYmxlZC10ZXh0IGNvbnRyYXN0XG4gICAgICAvLyBpbnN0ZWFkIG9mIHNlY29uZGFyeS10ZXh0LlxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCxcbiAgICAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVkaXQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVycm9yIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWFjdGl2ZSB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtZXJyb3Ige1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zdGVwcGVyLWhvcml6b250YWwsIC5tYXQtc3RlcHBlci12ZXJ0aWNhbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgfVxuXG4gIC5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmUge1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmUsXG4gIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YWZ0ZXIsXG4gIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmUge1xuICAgIGJvcmRlci10b3AtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cbn1cblxuQG1peGluIG1hdC1zdGVwcGVyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXN0ZXBwZXItdmVydGljYWwsIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1zdGVwLWxhYmVsIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpO1xuICAgIH07XG4gIH1cblxuICAubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICB9XG5cbiAgLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxuXG4gIC5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZCB7XG4gICAgZm9udDoge1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTIpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9O1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc29ydC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXNvcnQtaGVhZGVyLWFycm93IHtcbiAgICAkdGFibGUtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICAgICR0ZXh0LWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcblxuICAgIC8vIEJlY2F1c2UgdGhlIGFycm93IGlzIG1hZGUgdXAgb2YgbXVsdGlwbGUgZWxlbWVudHMgdGhhdCBhcmUgc3RhY2tlZCBvbiB0b3Agb2YgZWFjaCBvdGhlcixcbiAgICAvLyB3ZSBjYW4ndCB1c2UgdGhlIHNlbWktdHJhc3BhcmVudCBjb2xvciBmcm9tIHRoZSB0aGVtZSBkaXJlY3RseS4gSWYgdGhlIHZhbHVlIGlzIGEgY29sb3JcbiAgICAvLyAqdHlwZSosIHdlIGNvbnZlcnQgaXQgaW50byBhIHNvbGlkIGNvbG9yIGJ5IHRha2luZyB0aGUgb3BhY2l0eSBmcm9tIHRoZSByZ2JhIHZhbHVlIGFuZFxuICAgIC8vIHVzaW5nIHRoZSB2YWx1ZSB0byBkZXRlcm1pbmUgdGhlIHBlcmNlbnRhZ2Ugb2YgdGhlIGJhY2tncm91bmQgdG8gcHV0IGludG8gZm9yZWdyb3VuZFxuICAgIC8vIHdoZW4gbWl4aW5nIHRoZSBjb2xvcnMgdG9nZXRoZXIuIE90aGVyd2lzZSwgaWYgaXQgcmVzb2x2ZXMgdG8gc29tZXRoaW5nIGRpZmZlcmVudFxuICAgIC8vIChlLmcuIGl0IHJlc29sdmVzIHRvIGEgQ1NTIHZhcmlhYmxlKSwgd2UgdXNlIHRoZSBjb2xvciBkaXJlY3RseS5cbiAgICBAaWYgKHR5cGUtb2YoJHRhYmxlLWJhY2tncm91bmQpID09IGNvbG9yIGFuZCB0eXBlLW9mKCR0ZXh0LWNvbG9yKSA9PSBjb2xvcikge1xuICAgICAgJHRleHQtb3BhY2l0eTogb3BhY2l0eSgkdGV4dC1jb2xvcik7XG4gICAgICBjb2xvcjogbWl4KCR0YWJsZS1iYWNrZ3JvdW5kLCByZ2JhKCR0ZXh0LWNvbG9yLCAxKSwgKDEgLSAkdGV4dC1vcGFjaXR5KSAqIDEwMCUpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBjb2xvcjogJHRleHQtY29sb3I7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc29ydC10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtdGFicy10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRoZWFkZXItYm9yZGVyOiAxcHggc29saWQgbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcblxuICAubWF0LXRhYi1uYXYtYmFyLFxuICAubWF0LXRhYi1oZWFkZXIge1xuICAgIGJvcmRlci1ib3R0b206ICRoZWFkZXItYm9yZGVyO1xuICB9XG5cbiAgLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIHtcbiAgICAubWF0LXRhYi1uYXYtYmFyLFxuICAgIC5tYXQtdGFiLWhlYWRlciB7XG4gICAgICBib3JkZXItdG9wOiAkaGVhZGVyLWJvcmRlcjtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgJi5tYXQtdGFiLWRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgfVxuXG4gIC8vIFJlbW92ZSBoZWFkZXIgYm9yZGVyIHdoZW4gdGhlcmUgaXMgYSBiYWNrZ3JvdW5kIGNvbG9yXG4gIC5tYXQtdGFiLWdyb3VwW2NsYXNzKj0nbWF0LWJhY2tncm91bmQtJ10gLm1hdC10YWItaGVhZGVyLFxuICAubWF0LXRhYi1uYXYtYmFyW2NsYXNzKj0nbWF0LWJhY2tncm91bmQtJ10ge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgfVxuXG4gIC5tYXQtdGFiLWdyb3VwLCAubWF0LXRhYi1uYXYtYmFyIHtcbiAgICAkdGhlbWUtY29sb3JzOiAoXG4gICAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICAgIGFjY2VudDogJGFjY2VudCxcbiAgICAgIHdhcm46ICR3YXJuXG4gICAgKTtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJHRoZW1lLWNvbG9ycyB7XG4gICAgICAvLyBTZXQgdGhlIGZvcmVncm91bmQgY29sb3Igb2YgdGhlIHRhYnNcbiAgICAgICYubWF0LSN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWItbGFiZWwtZm9jdXMoJGNvbG9yKTtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1pbmstYmFyKCRjb2xvcik7XG5cbiAgICAgICAgLy8gT3ZlcnJpZGUgaW5rIGJhciB3aGVuIGJhY2tncm91bmQgY29sb3IgaXMgdGhlIHNhbWVcbiAgICAgICAgJi5tYXQtYmFja2dyb3VuZC0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1pbmstYmFyKCRjb2xvciwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICR0aGVtZS1jb2xvcnMge1xuICAgICAgLy8gU2V0IGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHRhYnMgYW5kIG92ZXJyaWRlIGZvY3VzIGNvbG9yXG4gICAgICAmLm1hdC1iYWNrZ3JvdW5kLSN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWItbGFiZWwtZm9jdXMoJGNvbG9yKTtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWJzLWJhY2tncm91bmQoJGNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9tYXQtaW5rLWJhcigkY29sb3IsICRodWU6IGRlZmF1bHQpIHtcbiAgLm1hdC1pbmstYmFyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGNvbG9yLCAkaHVlKTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC10YWItbGFiZWwtZm9jdXMoJHRhYi1mb2N1cy1jb2xvcikge1xuICAubWF0LXRhYi1sYWJlbCxcbiAgLm1hdC10YWItbGluayB7XG4gICAgJi5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgICAmLmNkay1wcm9ncmFtLWZvY3VzZWQge1xuICAgICAgJjpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR0YWItZm9jdXMtY29sb3IsIGxpZ2h0ZXIsIDAuMyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LXRhYnMtYmFja2dyb3VuZCgkYmFja2dyb3VuZC1jb2xvcikge1xuICAvLyBTZXQgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHRhYiBncm91cFxuICAubWF0LXRhYi1oZWFkZXIsIC5tYXQtdGFiLWxpbmtzLCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yKTtcbiAgfVxuXG4gIC8vIFNldCBsYWJlbHMgdG8gY29udHJhc3QgYWdhaW5zdCBiYWNrZ3JvdW5kXG4gIC5tYXQtdGFiLWxhYmVsLCAubWF0LXRhYi1saW5rIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0KTtcblxuICAgICYubWF0LXRhYi1kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBwYWdpbmF0aW9uIGNoZXZyb25zIHRvIGNvbnRyYXN0IGJhY2tncm91bmRcbiAgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QsIDAuNCk7XG4gIH1cblxuICAvLyBTZXQgcmlwcGxlcyBjb2xvciB0byBiZSB0aGUgY29udHJhc3QgY29sb3Igb2YgdGhlIG5ldyBiYWNrZ3JvdW5kLiBPdGhlcndpc2UgdGhlIHJpcHBsZVxuICAvLyBjb2xvciB3aWxsIGJlIGJhc2VkIG9uIHRoZSBhcHAgYmFja2dyb3VuZCBjb2xvci5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjEyKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRhYnMtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtdGFiLWdyb3VwIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJ1dHRvbik7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJ1dHRvbik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuQG1peGluIF9tYXQtdG9vbGJhci1jb2xvcigkcGFsZXR0ZSkge1xuICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICBjb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KTtcbn1cblxuQG1peGluIF9tYXQtdG9vbGJhci1mb3JtLWZpZWxkLW92ZXJyaWRlcyB7XG4gIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUsXG4gIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUsXG4gIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gIC5tYXQtc2VsZWN0LXZhbHVlLFxuICAubWF0LXNlbGVjdC1hcnJvdyxcbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuXG4gIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgY2FyZXQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2xiYXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtdG9vbGJhciB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBhcHAtYmFyKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCRwcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBfbWF0LXRvb2xiYXItZm9ybS1maWVsZC1vdmVycmlkZXM7XG4gIH1cbn1cblxuQG1peGluIG1hdC10b29sYmFyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXRvb2xiYXIsXG4gIC5tYXQtdG9vbGJhciBoMSxcbiAgLm1hdC10b29sYmFyIGgyLFxuICAubWF0LXRvb2xiYXIgaDMsXG4gIC5tYXQtdG9vbGJhciBoNCxcbiAgLm1hdC10b29sYmFyIGg1LFxuICAubWF0LXRvb2xiYXIgaDYge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCB0aXRsZSk7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cblxuXG5cblxuJG1hdC10b29sdGlwLXRhcmdldC1oZWlnaHQ6IDIycHg7XG4kbWF0LXRvb2x0aXAtZm9udC1zaXplOiAxMHB4O1xuJG1hdC10b29sdGlwLXZlcnRpY2FsLXBhZGRpbmc6ICgkbWF0LXRvb2x0aXAtdGFyZ2V0LWhlaWdodCAtICRtYXQtdG9vbHRpcC1mb250LXNpemUpIC8gMjtcblxuJG1hdC10b29sdGlwLWhhbmRzZXQtdGFyZ2V0LWhlaWdodDogMzBweDtcbiRtYXQtdG9vbHRpcC1oYW5kc2V0LWZvbnQtc2l6ZTogMTRweDtcbiRtYXQtdG9vbHRpcC1oYW5kc2V0LXZlcnRpY2FsLXBhZGRpbmc6XG4gICAgKCRtYXQtdG9vbHRpcC1oYW5kc2V0LXRhcmdldC1oZWlnaHQgLSAkbWF0LXRvb2x0aXAtaGFuZHNldC1mb250LXNpemUpIC8gMjtcblxuQG1peGluIG1hdC10b29sdGlwLXRoZW1lKCR0aGVtZSkge1xuICAubWF0LXRvb2x0aXAge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkbWF0LWdyZXksIDcwMCwgMC45KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2x0aXAtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtdG9vbHRpcCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgICBmb250LXNpemU6ICRtYXQtdG9vbHRpcC1mb250LXNpemU7XG4gICAgcGFkZGluZy10b3A6ICRtYXQtdG9vbHRpcC12ZXJ0aWNhbC1wYWRkaW5nO1xuICAgIHBhZGRpbmctYm90dG9tOiAkbWF0LXRvb2x0aXAtdmVydGljYWwtcGFkZGluZztcbiAgfVxuXG4gIC5tYXQtdG9vbHRpcC1oYW5kc2V0IHtcbiAgICBmb250LXNpemU6ICRtYXQtdG9vbHRpcC1oYW5kc2V0LWZvbnQtc2l6ZTtcbiAgICBwYWRkaW5nLXRvcDogJG1hdC10b29sdGlwLWhhbmRzZXQtdmVydGljYWwtcGFkZGluZztcbiAgICBwYWRkaW5nLWJvdHRvbTogJG1hdC10b29sdGlwLWhhbmRzZXQtdmVydGljYWwtcGFkZGluZztcbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtc25hY2stYmFyLXRoZW1lKCR0aGVtZSkge1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkdGhlbWUsIGlzLWRhcmspO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcblxuICAubWF0LXNuYWNrLWJhci1jb250YWluZXIge1xuICAgIC8vIFVzZSB0aGUgcHJpbWFyeSB0ZXh0IG9uIHRoZSBkYXJrIHRoZW1lLCBldmVuIHRob3VnaCB0aGUgbGlnaHRlciBvbmUgdXNlc1xuICAgIC8vIGEgc2Vjb25kYXJ5LCBiZWNhdXNlIHRoZSBjb250cmFzdCBvbiB0aGUgbGlnaHQgcHJpbWFyeSB0ZXh0IGlzIHBvb3IuXG4gICAgY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCAkZGFyay1wcmltYXJ5LXRleHQsICRsaWdodC1zZWNvbmRhcnktdGV4dCk7XG4gICAgYmFja2dyb3VuZDogaWYoJGlzLWRhcmstdGhlbWUsIG1hcC1nZXQoJG1hdC1ncmV5LCA1MCksICMzMjMyMzIpO1xuXG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oNiwgJHRoZW1lKTtcbiAgfVxuXG4gIC5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiB7XG4gICAgY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCBpbmhlcml0LCBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCkpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc25hY2stYmFyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXNpbXBsZS1zbmFja2JhciB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9XG4gIH1cblxuICAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogaW5oZXJpdDtcbiAgICAgIHNpemU6IGluaGVyaXQ7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIGZpbGwgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWZpbGwtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG5cbiAgJGZpbGwtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBiYXNlLCBpZigkaXMtZGFyay10aGVtZSwgMC4xLCAwLjA0KSk7XG4gICRmaWxsLWRpc2FibGVkLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgaWYoJGlzLWRhcmstdGhlbWUsIDAuMDUsIDAuMDIpKTtcbiAgJHVuZGVybGluZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyLCBpZigkaXMtZGFyay10aGVtZSwgMC41LCAwLjQyKSk7XG4gICRsYWJlbC1kaXNhYmxlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIHtcbiAgICAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmlsbC1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZpbGwtZGlzYWJsZWQtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkbGFiZWwtZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZTogMDtcblxuLy8gQXBwbGllcyBhIGZsb2F0aW5nIGxhYmVsIGFib3ZlIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaXRzZWxmLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1maWxsLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLWZpbGwtZGVkdXBlKVxuICAgICAgICAgICAgIHNjYWxlKCRmb250LXNjYWxlKTtcbiAgd2lkdGg6IDEwMCUgLyAkZm9udC1zY2FsZSArICRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZTtcblxuICAkbWF0LWZvcm0tZmllbGQtZmlsbC1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZSArIDAuMDAwMDEgIWdsb2JhbDtcbn1cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWZpbGwtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcbiAgLy8gVGhlIGFtb3VudCB0byBzY2FsZSB0aGUgZm9udCBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsIGFuZCBzdWJzY3JpcHQuXG4gICRzdWJzY3JpcHQtZm9udC1zY2FsZTogMC43NTtcbiAgLy8gVGhlIHBhZGRpbmcgb24gdG9wIG9mIHRoZSBpbmZpeC5cbiAgJGluZml4LXBhZGRpbmctdG9wOiAwLjI1ZW07XG4gIC8vIFRoZSBwYWRkaW5nIGJlbG93IHRoZSBpbmZpeC5cbiAgJGluZml4LXBhZGRpbmctYm90dG9tOiAwLjc1ZW07XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBhbW91bnQgd2Ugb2Zmc2V0IHRoZSBsYWJlbCBmcm9tIHRoZSBpbnB1dCB0ZXh0IGluIHRoZSBmaWxsIGFwcGVhcmFuY2UuXG4gICRmaWxsLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0OiAtMC41ZW07XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICAgIHBhZGRpbmc6ICRpbmZpeC1wYWRkaW5nLXRvcCAwICRpbmZpeC1wYWRkaW5nLWJvdHRvbSAwO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmctdG9wO1xuICAgICAgbWFyZ2luLXRvcDogJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQ7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtZmlsbC1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLXRvcCArICRmaWxsLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1maWxsLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmctdG9wICsgJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQsXG4gICAgICAgICAgICAgICAgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHRoZSBsZWdhY3kgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAkdW5kZXJsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjcsIDAuNDIpKTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kge1xuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtaGludCB7XG4gICAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgQGluY2x1ZGUgbWF0LWNvbnRyb2wtZGlzYWJsZWQtdW5kZXJsaW5lKCR1bmRlcmxpbmUtY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlOiAwO1xuXG4vLyBBcHBsaWVzIGEgZmxvYXRpbmcgbGFiZWwgYWJvdmUgdGhlIGZvcm0gZmllbGQgY29udHJvbCBpdHNlbGYuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZygkZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKSB7XG4gIC8vIFdlIHVzZSBwZXJzcGVjdGl2ZSB0byBmaXggdGhlIHRleHQgYmx1cnJpbmVzcyBhcyBkZXNjcmliZWQgaGVyZTpcbiAgLy8gaHR0cDovL3d3dy51c2VyYWdlbnRtYW4uY29tL2Jsb2cvMjAxNC8wNS8wNC9maXhpbmctdHlwb2dyYXBoeS1pbnNpZGUtb2YtMi1kLWNzcy10cmFuc2Zvcm1zL1xuICAvLyBUaGlzIHJlc3VsdHMgaW4gYSBzbWFsbCBqaXR0ZXIgYWZ0ZXIgdGhlIGxhYmVsIGZsb2F0cyBvbiBGaXJlZm94LCB3aGljaCB0aGVcbiAgLy8gdHJhbnNsYXRlWiBmaXhlcy5cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nKSBzY2FsZSgkZm9udC1zY2FsZSkgcGVyc3BlY3RpdmUoMTAwcHgpXG4gIHRyYW5zbGF0ZVooMC4wMDFweCArICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlKTtcbiAgLy8gVGhlIHRyaWNrcyBhYm92ZSB1c2VkIHRvIHNtb290aCBvdXQgdGhlIGFuaW1hdGlvbiBvbiBjaHJvbWUgYW5kIGZpcmVmb3ggYWN0dWFsbHkgbWFrZSB0aGluZ3NcbiAgLy8gd29yc2Ugb24gSUUsIHNvIHdlIGRvbid0IGluY2x1ZGUgdGhlbSBpbiB0aGUgSUUgdmVyc2lvbi5cbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJGluZml4LW1hcmdpbi10b3AgLSAkaW5maXgtcGFkZGluZyArICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlKVxuICAgICAgICAgICAgICAgICAgc2NhbGUoJGZvbnQtc2NhbGUpO1xuXG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZTtcblxuICAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZTogJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbi8vIFNhbWUgYXMgbWl4aW4gYWJvdmUsIGJ1dCBvbWl0cyB0aGUgdHJhbnNsYXRlWiBmb3IgcHJpbnRpbmcgcHVycG9zZXMuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludCgkZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKSB7XG4gIC8vIFRoaXMgcmVzdWx0cyBpbiBhIHNtYWxsIGppdHRlciBhZnRlciB0aGUgbGFiZWwgZmxvYXRzIG9uIEZpcmVmb3gsIHdoaWNoIHRoZVxuICAvLyB0cmFuc2xhdGVaIGZpeGVzLlxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRpbmZpeC1tYXJnaW4tdG9wIC0gJGluZml4LXBhZGRpbmcgKyAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZSlcbiAgICAgICAgICAgICAgICAgIHNjYWxlKCRmb250LXNjYWxlKTtcbiAgLy8gVGhlIHRyaWNrcyBhYm92ZSB1c2VkIHRvIHNtb290aCBvdXQgdGhlIGFuaW1hdGlvbiBvbiBjaHJvbWUgYW5kIGZpcmVmb3ggYWN0dWFsbHkgbWFrZSB0aGluZ3NcbiAgLy8gd29yc2Ugb24gSUUsIHNvIHdlIGRvbid0IGluY2x1ZGUgdGhlbSBpbiB0aGUgSUUgdmVyc2lvbi5cbiAgJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlICsgMC4wMDAwMSAhZ2xvYmFsO1xufVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtbGVnYWN5LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBhbW91bnQgb2Ygc3BhY2UgYmV0d2VlbiB0aGUgdG9wIG9mIHRoZSBsaW5lIGFuZCB0aGUgdG9wIG9mIHRoZSBhY3R1YWwgdGV4dFxuICAvLyAoYXMgYSBmcmFjdGlvbiBvZiB0aGUgZm9udC1zaXplKS5cbiAgJGxpbmUtc3BhY2luZzogKCRsaW5lLWhlaWdodCAtIDEpIC8gMjtcbiAgLy8gVGhlIHBhZGRpbmcgb24gdGhlIGluZml4LiBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZSwgYnV0IHNlZW0gdG8gbWVhc3VyZSBmcm9tIHRoZSBlZGdlXG4gIC8vIG9mIHRoZSB0ZXh0IGl0c2VsZiwgbm90IHRoZSBlZGdlIG9mIHRoZSBsaW5lOyB0aGVyZWZvcmUgd2Ugc3VidHJhY3Qgb2ZmIHRoZSBsaW5lIHNwYWNpbmcuXG4gICRpbmZpeC1wYWRkaW5nOiAwLjVlbSAtICRsaW5lLXNwYWNpbmc7XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBib3R0b20gb2YgdGhlIC5tYXQtZm9ybS1maWVsZC1mbGV4IGFyZWEgYW5kIHRoZSBzdWJzY3JpcHQgd3JhcHBlci5cbiAgLy8gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCB0aGlzIG1hcmdpbiBpcyBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgd2l0aCB0aGUgc3Vic2NyaXB0XG4gIC8vIHRleHQgZm9udCBzaXplLCBzbyB3ZSBuZWVkIHRvIGRpdmlkZSBieSB0aGUgc2NhbGUgZmFjdG9yIHRvIG1ha2UgaXQgaGFsZiBvZiB0aGUgb3JpZ2luYWwgdGV4dFxuICAvLyBzaXplLiBXZSBhZ2FpbiBuZWVkIHRvIHN1YnRyYWN0IG9mZiB0aGUgbGluZSBzcGFjaW5nIHNpbmNlIHRoZSBtb2NrcyBtZWFzdXJlIHRvIHRoZSBlZGdlIG9mIHRoZVxuICAvLyB0ZXh0LCBub3QgdGhlICBlZGdlIG9mIHRoZSBsaW5lLlxuICAkc3Vic2NyaXB0LW1hcmdpbi10b3A6IDAuNWVtIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlIC0gKCRsaW5lLXNwYWNpbmcgKiAyKTtcbiAgLy8gVGhlIHBhZGRpbmcgYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC13cmFwcGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBzdWJzY3JpcHQsIHNpbmNlIGl0J3NcbiAgLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkLiBUaGlzIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIHN1YnNjcmlwdCdzIG1hcmdpbiBhbmQgbGluZS1oZWlnaHQsIGJ1dCB3ZVxuICAvLyBuZWVkIHRvIG11bHRpcGx5IGJ5IHRoZSBzdWJzY3JpcHQgZm9udCBzY2FsZSBmYWN0b3Igc2luY2UgdGhlIHdyYXBwZXIgaGFzIGEgbGFyZ2VyIGZvbnQgc2l6ZS5cbiAgJHdyYXBwZXItcGFkZGluZy1ib3R0b206ICgkc3Vic2NyaXB0LW1hcmdpbi10b3AgKyAkbGluZS1oZWlnaHQpICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgICAgcGFkZGluZy1ib3R0b206ICR3cmFwcGVyLXBhZGRpbmctYm90dG9tO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICBwYWRkaW5nOiAkaW5maXgtcGFkZGluZyAwO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjAgd2lsbCByZWx5IG9uIEF1dG9maWxsTW9uaXRvciBpbnN0ZWFkLlxuICAgICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICAvLyBXZSB3YW50IHRoZSB1bmRlcmxpbmUgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgICAvLyBzbyB3ZSBtb3ZlIGl0IHVwIGJ5IHRoZSBwYWRkaW5nIGFtb3VudC5cbiAgICAgIGJvdHRvbTogJHdyYXBwZXItcGFkZGluZy1ib3R0b207XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgICAgIG1hcmdpbi10b3A6ICRzdWJzY3JpcHQtbWFyZ2luLXRvcDtcblxuICAgICAgLy8gV2Ugd2FudCB0aGUgc3Vic2NyaXB0IHRvIHN0YXJ0IGF0IHRoZSBlbmQgb2YgdGhlIGNvbnRlbnQgYm94LCBub3QgdGhlIHBhZGRpbmcgYm94LFxuICAgICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQgKGFkanVzdGVkIGZvciB0aGUgc21hbGxlciBmb250IHNpemUpO1xuICAgICAgdG9wOiBjYWxjKDEwMCUgLSAjeyR3cmFwcGVyLXBhZGRpbmctYm90dG9tIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gdHJhbnNsYXRlWiBjYXVzZXMgdGhlIGxhYmVsIHRvIG5vdCBhcHBlYXIgd2hpbGUgcHJpbnRpbmcsIHNvIHdlIG92ZXJyaWRlIGl0IHRvIG5vdFxuICAvLyBhcHBseSB0cmFuc2xhdGVaIHdoaWxlIHByaW50aW5nXG4gIEBtZWRpYSBwcmludCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgICAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludChcbiAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjAgd2lsbCByZWx5IG9uIEF1dG9maWxsTW9uaXRvciBpbnN0ZWFkLlxuICAgICAgICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbDotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nLXByaW50KFxuICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAgIC8vICh1c2VkIGFzIGEgcHVyZSBDU1Mgc3RhbmQtaW4gZm9yIG1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCkuXG4gICAgICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludChcbiAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHRoZSBvdXRsaW5lIGFwcGVhcmFuY2Ugb2YgdGhlIGZvcm0tZmllbGQuXG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkbGFiZWwtZGlzYWJsZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gICRvdXRsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjMsIDAuMTIpKTtcbiAgJG91dGxpbmUtY29sb3ItaG92ZXI6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDEsIDAuODcpKTtcbiAgJG91dGxpbmUtY29sb3ItcHJpbWFyeTogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgJG91dGxpbmUtY29sb3ItYWNjZW50OiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICRvdXRsaW5lLWNvbG9yLXdhcm46IG1hdC1jb2xvcigkd2Fybik7XG4gICRvdXRsaW5lLWNvbG9yLWRpc2FibGVkOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjE1LCAwLjA2KSk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xuICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1ob3ZlcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb2N1c2VkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLXByaW1hcnk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gICAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1hY2NlbnQ7XG4gICAgICB9XG5cbiAgICAgICYubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDbGFzcyByZXBlYXRlZCBzbyB0aGF0IHJ1bGUgaXMgc3BlY2lmaWMgZW5vdWdoIHRvIG92ZXJyaWRlIGZvY3VzZWQgYWNjZW50IGNvbG9yIGNhc2UuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQge1xuICAgICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkbGFiZWwtZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLWRpc2FibGVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWRlZHVwZTogMDtcblxuLy8gQXBwbGllcyBhIGZsb2F0aW5nIGxhYmVsIGFib3ZlIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaXRzZWxmLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlKVxuICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGU7XG5cbiAgJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlOiAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBwYWRkaW5nIGFib3ZlIGFuZCBiZWxvdyB0aGUgaW5maXguXG4gICRpbmZpeC1wYWRkaW5nOiAxZW07XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBib3R0b20gb2YgdGhlIC5tYXQtZm9ybS1maWVsZC1mbGV4IGFyZWEgYW5kIHRoZSBzdWJzY3JpcHQgd3JhcHBlci5cbiAgLy8gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCB0aGlzIG1hcmdpbiBpcyBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgd2l0aCB0aGUgc3Vic2NyaXB0XG4gIC8vIHRleHQgZm9udCBzaXplLCBzbyB3ZSBuZWVkIHRvIGRpdmlkZSBieSB0aGUgc2NhbGUgZmFjdG9yIHRvIG1ha2UgaXQgaGFsZiBvZiB0aGUgb3JpZ2luYWwgdGV4dFxuICAvLyBzaXplLlxuICAkc3Vic2NyaXB0LW1hcmdpbi10b3A6IDAuNWVtIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBUaGUgcGFkZGluZyBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLXdyYXBwZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIHN1YnNjcmlwdCwgc2luY2UgaXQnc1xuICAvLyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQuIFRoaXMgaXMgYSBjb21iaW5hdGlvbiBvZiB0aGUgc3Vic2NyaXB0J3MgbWFyZ2luIGFuZCBsaW5lLWhlaWdodCwgYnV0IHdlXG4gIC8vIG5lZWQgdG8gbXVsdGlwbHkgYnkgdGhlIHN1YnNjcmlwdCBmb250IHNjYWxlIGZhY3RvciBzaW5jZSB0aGUgd3JhcHBlciBoYXMgYSBsYXJnZXIgZm9udCBzaXplLlxuICAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTogKCRzdWJzY3JpcHQtbWFyZ2luLXRvcCArICRsaW5lLWhlaWdodCkgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBhbW91bnQgd2Ugb2Zmc2V0IHRoZSBsYWJlbCBmcm9tIHRoZSBpbnB1dCB0ZXh0IGluIHRoZSBvdXRsaW5lIGFwcGVhcmFuY2UuXG4gICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0OiAtMC4yNWVtO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUge1xuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICBwYWRkaW5nOiAkaW5maXgtcGFkZGluZyAwICRpbmZpeC1wYWRkaW5nIDA7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIHRvcDogJGluZml4LW1hcmdpbi10b3AgKyAkaW5maXgtcGFkZGluZztcbiAgICAgIG1hcmdpbi10b3A6ICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0O1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLW91dGxpbmUtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZyArICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcgKyAkb3V0bGluZS1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldCxcbiAgICAgICAgICAgICAgICAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIHN0YW5kYXJkIGFwcGVhcmFuY2Ugb2YgdGhlIGZvcm0tZmllbGQuXG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkdW5kZXJsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjcsIDAuNDIpKTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICBAaW5jbHVkZSBtYXQtY29udHJvbC1kaXNhYmxlZC11bmRlcmxpbmUoJHVuZGVybGluZS1jb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10eXBvZ3JhcGh5KCRjb25maWcpIHt9XG5cblxuLy8gVGhlbWUgc3R5bGVzIHRoYXQgYXBwbHkgdG8gYWxsIGFwcGVhcmFuY2VzIG9mIHRoZSBmb3JtLWZpZWxkLlxuQG1peGluIG1hdC1mb3JtLWZpZWxkLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAvLyBMYWJlbCBjb2xvcnMuIFJlcXVpcmVkIGlzIHVzZWQgZm9yIHRoZSBgKmAgc3RhciBzaG93biBpbiB0aGUgbGFiZWwuXG4gICRsYWJlbC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCwgaWYoJGlzLWRhcmstdGhlbWUsIDAuNywgMC42KSk7XG4gICRmb2N1c2VkLWxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuICAkcmVxdWlyZWQtbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcblxuICAvLyBVbmRlcmxpbmUgY29sb3JzLlxuICAkdW5kZXJsaW5lLWNvbG9yLWJhc2U6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDEsIDAuODcpKTtcbiAgJHVuZGVybGluZS1jb2xvci1hY2NlbnQ6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcbiAgJHVuZGVybGluZS1jb2xvci13YXJuOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICAkdW5kZXJsaW5lLWZvY3VzZWQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1oaW50IHtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgY29sb3I6ICRmb2N1c2VkLWxhYmVsLWNvbG9yO1xuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWFjY2VudDtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIge1xuICAgIGNvbG9yOiAkcmVxdWlyZWQtbGFiZWwtY29sb3I7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWJhc2U7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQge1xuICAgIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1mb2N1c2VkLWNvbG9yO1xuXG4gICAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWFjY2VudDtcbiAgICAgIH1cblxuICAgICAgJi5tYXQtd2FybiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpIHtcbiAgICAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWZvY3VzZWQtY29sb3I7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3ItYWNjZW50O1xuICAgIH1cblxuICAgICYubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN0eWxpbmcgZm9yIHRoZSBlcnJvciBzdGF0ZSBvZiB0aGUgZm9ybSBmaWVsZC4gTm90ZSB0aGF0IHdoaWxlIHRoZSBzYW1lIGNhbiBiZVxuICAvLyBhY2hpZXZlZCB3aXRoIHRoZSBuZy0qIGNsYXNzZXMsIHdlIHVzZSB0aGlzIGFwcHJvYWNoIGluIG9yZGVyIHRvIGVuc3VyZSB0aGF0IHRoZSBzYW1lXG4gIC8vIGxvZ2ljIGlzIHVzZWQgdG8gc3R5bGUgdGhlIGVycm9yIHN0YXRlIGFuZCB0byBzaG93IHRoZSBlcnJvciBtZXNzYWdlcy5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQge1xuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuXG4gICAgICAmLm1hdC1hY2NlbnQsXG4gICAgICAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtcmlwcGxlLFxuICAgIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgfVxuICB9XG5cbiAgLm1hdC1lcnJvciB7XG4gICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1maWxsLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhlbWUoJHRoZW1lKTtcbn1cblxuLy8gVXNlZCB0byBtYWtlIGluc3RhbmNlcyBvZiB0aGUgX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nIG1peGluIG5lZ2xpZ2libHkgZGlmZmVyZW50LFxuLy8gYW5kIHByZXZlbnQgR29vZ2xlJ3MgQ1NTIE9wdGltaXplciBmcm9tIGNvbGxhcHNpbmcgdGhlIGRlY2xhcmF0aW9ucy4gVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBzb21lXG4vLyBvZiB0aGUgc2VsZWN0b3JzIGNvbnRhaW4gcHNldWRvLWNsYXNzZXMgbm90IHJlY29nbml6ZWQgaW4gYWxsIGJyb3dzZXJzLiBJZiBhIGJyb3dzZXIgZW5jb3VudGVyc1xuLy8gYW4gdW5rbm93biBwc2V1ZG8tY2xhc3MgaXQgd2lsbCBkaXNjYXJkIHRoZSBlbnRpcmUgcnVsZSBzZXQuXG4kbWF0LWZvcm0tZmllbGQtZGVkdXBlOiAwO1xuXG4vLyBBcHBsaWVzIGEgZmxvYXRpbmcgbGFiZWwgYWJvdmUgdGhlIGZvcm0gZmllbGQgY29udHJvbCBpdHNlbGYuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLWRlZHVwZSlcbiAgICAgICAgICAgICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtZGVkdXBlO1xuXG4gICRtYXQtZm9ybS1maWVsZC1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuXG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBwcmVmaXggYW5kIHN1ZmZpeCBpY29ucy5cbiAgJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNjYWxlOiAxLjU7XG5cbiAgLy8gVGhlIHBhZGRpbmcgb24gdGhlIGluZml4LiBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZS5cbiAgJGluZml4LXBhZGRpbmc6IDAuNWVtO1xuICAvLyBUaGUgbWFyZ2luIGFwcGxpZWQgdG8gdGhlIGZvcm0tZmllbGQtaW5maXggdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsLlxuICAkaW5maXgtbWFyZ2luLXRvcDogMWVtICogJGxpbmUtaGVpZ2h0ICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBGb250IHNpemUgdG8gdXNlIGZvciB0aGUgbGFiZWwgYW5kIHN1YnNjcmlwdCB0ZXh0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2l6ZTogJHN1YnNjcmlwdC1mb250LXNjYWxlICogMTAwJTtcbiAgLy8gRm9udCBzaXplIHRvIHVzZSBmb3IgdGhlIGZvciB0aGUgcHJlZml4IGFuZCBzdWZmaXggaWNvbnMuXG4gICRwcmVmaXgtc3VmZml4LWljb24tZm9udC1zaXplOiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGUgKiAxMDAlO1xuICAvLyBUaGUgc3BhY2UgYmV0d2VlbiB0aGUgYm90dG9tIG9mIHRoZSAubWF0LWZvcm0tZmllbGQtZmxleCBhcmVhIGFuZCB0aGUgc3Vic2NyaXB0IHdyYXBwZXIuXG4gIC8vIE1vY2tzIHNob3cgaGFsZiBvZiB0aGUgdGV4dCBzaXplLCBidXQgdGhpcyBtYXJnaW4gaXMgYXBwbGllZCB0byBhbiBlbGVtZW50IHdpdGggdGhlIHN1YnNjcmlwdFxuICAvLyB0ZXh0IGZvbnQgc2l6ZSwgc28gd2UgbmVlZCB0byBkaXZpZGUgYnkgdGhlIHNjYWxlIGZhY3RvciB0byBtYWtlIGl0IGhhbGYgb2YgdGhlIG9yaWdpbmFsIHRleHRcbiAgLy8gc2l6ZS5cbiAgJHN1YnNjcmlwdC1tYXJnaW4tdG9wOiAwLjVlbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcbiAgLy8gVGhlIHBhZGRpbmcgYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC13cmFwcGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBzdWJzY3JpcHQsIHNpbmNlIGl0J3NcbiAgLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkLiBUaGlzIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIHN1YnNjcmlwdCdzIG1hcmdpbiBhbmQgbGluZS1oZWlnaHQsIGJ1dCB3ZVxuICAvLyBuZWVkIHRvIG11bHRpcGx5IGJ5IHRoZSBzdWJzY3JpcHQgZm9udCBzY2FsZSBmYWN0b3Igc2luY2UgdGhlIHdyYXBwZXIgaGFzIGEgbGFyZ2VyIGZvbnQgc2l6ZS5cbiAgJHdyYXBwZXItcGFkZGluZy1ib3R0b206ICgkc3Vic2NyaXB0LW1hcmdpbi10b3AgKyAkbGluZS1oZWlnaHQpICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuXG4gIC5tYXQtZm9ybS1maWVsZCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGlucHV0KTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHdyYXBwZXItcGFkZGluZy1ib3R0b207XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtcHJlZml4LFxuICAubWF0LWZvcm0tZmllbGQtc3VmZml4IHtcbiAgICAvLyBBbGxvdyBpY29ucyBpbiBhIHByZWZpeCBvciBzdWZmaXggdG8gYWRhcHQgdG8gdGhlIGNvcnJlY3Qgc2l6ZS5cbiAgICAubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gICAgfVxuXG4gICAgLy8gQWxsb3cgaWNvbiBidXR0b25zIGluIGEgcHJlZml4IG9yIHN1ZmZpeCB0byBhZGFwdCB0byB0aGUgY29ycmVjdCBzaXplLlxuICAgIC5tYXQtaWNvbi1idXR0b24ge1xuICAgICAgaGVpZ2h0OiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGUgKiAxZW07XG4gICAgICB3aWR0aDogJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNjYWxlICogMWVtO1xuXG4gICAgICAubWF0LWljb24ge1xuICAgICAgICBoZWlnaHQ6ICRsaW5lLWhlaWdodCAqIDFlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIHBhZGRpbmc6ICRpbmZpeC1wYWRkaW5nIDA7XG4gICAgLy8gVGhyb3dzIG9mZiB0aGUgYmFzZWxpbmUgaWYgd2UgZG8gaXQgYXMgYSByZWFsIG1hcmdpbiwgc28gd2UgZG8gaXQgYXMgYSBib3JkZXIgaW5zdGVhZC5cbiAgICBib3JkZXItdG9wOiAkaW5maXgtbWFyZ2luLXRvcCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICB9XG5cbiAgICAvLyBTZXJ2ZXItc2lkZSByZW5kZXJlZCBtYXRJbnB1dCB3aXRoIGEgbGFiZWwgYXR0cmlidXRlIGJ1dCBsYWJlbCBub3Qgc2hvd25cbiAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgdG9wOiAtJGluZml4LW1hcmdpbi10b3A7XG4gICAgcGFkZGluZy10b3A6ICRpbmZpeC1tYXJnaW4tdG9wO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmc7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAvLyBXZSB3YW50IHRoZSB1bmRlcmxpbmUgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQuXG4gICAgYm90dG9tOiAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciB7XG4gICAgZm9udC1zaXplOiAkc3Vic2NyaXB0LWZvbnQtc2l6ZTtcbiAgICBtYXJnaW4tdG9wOiAkc3Vic2NyaXB0LW1hcmdpbi10b3A7XG5cbiAgICAvLyBXZSB3YW50IHRoZSBzdWJzY3JpcHQgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQgKGFkanVzdGVkIGZvciB0aGUgc21hbGxlciBmb250IHNpemUpO1xuICAgIHRvcDogY2FsYygxMDAlIC0gI3skd3JhcHBlci1wYWRkaW5nLWJvdHRvbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZX0pO1xuICB9XG5cbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtbGVnYWN5LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXN0YW5kYXJkLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWZpbGwtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtb3V0bGluZS10eXBvZ3JhcGh5KCRjb25maWcpO1xufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtdHJlZS10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXRyZWUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgfVxuXG4gIC5tYXQtdHJlZS1ub2RlLFxuICAubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtdHJlZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC10cmVlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC10cmVlLW5vZGUsXG4gIC5tYXQtbmVzdGVkLXRyZWUtbm9kZSB7XG4gICAgZm9udC13ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpO1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG4vLyBJbmNsdWRlcyBhbGwgb2YgdGhlIHR5cG9ncmFwaGljIHN0eWxlcy5cbkBtaXhpbiBhbmd1bGFyLW1hdGVyaWFsLXR5cG9ncmFwaHkoJGNvbmZpZzogbnVsbCkge1xuICBAaWYgJGNvbmZpZyA9PSBudWxsIHtcbiAgICAkY29uZmlnOiBtYXQtdHlwb2dyYXBoeS1jb25maWcoKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1hdC1iYWRnZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYmFzZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYXV0b2NvbXBsZXRlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1ib3R0b20tc2hlZXQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYnV0dG9uLXRvZ2dsZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtY2FyZC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtY2hlY2tib3gtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWNoaXBzLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10YWJsZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZGF0ZXBpY2tlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZGlhbG9nLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1leHBhbnNpb24tcGFuZWwtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWdyaWQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtaWNvbi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtaW5wdXQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LW1lbnUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXBhZ2luYXRvci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3MtYmFyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcm9ncmVzcy1zcGlubmVyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1yYWRpby10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc2VsZWN0LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zaWRlbmF2LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zbGlkZS10b2dnbGUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXNsaWRlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc3RlcHBlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc29ydC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdGFicy10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdG9vbGJhci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdG9vbHRpcC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtb3B0aW9uLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1vcHRncm91cC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc25hY2stYmFyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10cmVlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG59XG5cblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBzdHlsZXMgdGhhdCBhcmUgbm90IHRoZW1lLWRlcGVuZGVudC5cbkBtaXhpbiBtYXQtY29yZSgkdHlwb2dyYXBoeS1jb25maWc6IG51bGwpIHtcbiAgQGluY2x1ZGUgYW5ndWxhci1tYXRlcmlhbC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5LWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1yaXBwbGUoKTtcbiAgQGluY2x1ZGUgY2RrLWExMXkoKTtcbiAgQGluY2x1ZGUgY2RrLW92ZXJsYXkoKTtcbiAgQGluY2x1ZGUgY2RrLXRleHQtZmllbGQoKTtcbn1cblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBzdHlsZXMgdGhhdCBkZXBlbmQgb24gdGhlIHRoZW1lLlxuQG1peGluIG1hdC1jb3JlLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtcmlwcGxlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1vcHRpb24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LW9wdGdyb3VwLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1wc2V1ZG8tY2hlY2tib3gtdGhlbWUoJHRoZW1lKTtcblxuICAvLyBQcm92aWRlcyBleHRlcm5hbCBDU1MgY2xhc3NlcyBmb3IgZWFjaCBlbGV2YXRpb24gdmFsdWUuIEVhY2ggQ1NTIGNsYXNzIGlzIGZvcm1hdHRlZCBhc1xuICAvLyBgbWF0LWVsZXZhdGlvbi16JHpWYWx1ZWAgd2hlcmUgYCR6VmFsdWVgIGNvcnJlc3BvbmRzIHRvIHRoZSB6LXNwYWNlIHRvIHdoaWNoIHRoZSBlbGVtZW50IGlzXG4gIC8vIGVsZXZhdGVkLlxuICBAZm9yICR6VmFsdWUgZnJvbSAwIHRocm91Z2ggMjQge1xuICAgIC4jeyRfbWF0LWVsZXZhdGlvbi1wcmVmaXh9I3skelZhbHVlfSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigkelZhbHVlLCAkdGhlbWUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdyYXBwZXIgZWxlbWVudCB0aGF0IHByb3ZpZGVzIHRoZSB0aGVtZSBiYWNrZ3JvdW5kIHdoZW4gdGhlIHVzZXIncyBjb250ZW50IGlzbid0XG4gIC8vIGluc2lkZSBvZiBhIGBtYXQtc2lkZW5hdi1jb250YWluZXJgLiBOb3RlIHRoYXQgd2UgbmVlZCB0byBleGNsdWRlIHRoZSBhbXBlcnNhbmRcbiAgLy8gc2VsZWN0b3IgaW4gY2FzZSB0aGUgbWl4aW4gaXMgaW5jbHVkZWQgYXQgdGhlIHRvcCBsZXZlbC5cbiAgLm1hdC1hcHAtYmFja2dyb3VuZCN7aWYoJiwgJywgJi5tYXQtYXBwLWJhY2tncm91bmQnLCAnJyl9IHtcbiAgICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAgICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLy8gTWFya2VyIHRoYXQgaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgdXNlciBoYXMgYWRkZWQgYSB0aGVtZSB0byB0aGVpciBwYWdlLlxuICBAYXQtcm9vdCB7XG4gICAgLm1hdC10aGVtZS1sb2FkZWQtbWFya2VyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtZGl2aWRlci10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWRpdmlkZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWRpdmlkZXItdmVydGljYWwge1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxufVxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4vLyBDcmVhdGUgYSB0aGVtZS5cbkBtaXhpbiBhbmd1bGFyLW1hdGVyaWFsLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtY29yZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtYXV0b2NvbXBsZXRlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1iYWRnZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtYm90dG9tLXNoZWV0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1idXR0b24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10b2dnbGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWNhcmQtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWNoZWNrYm94LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1jaGlwcy10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtdGFibGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWRhdGVwaWNrZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWRpYWxvZy10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZGl2aWRlci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZXhwYW5zaW9uLXBhbmVsLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1ncmlkLWxpc3QtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWljb24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWlucHV0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1saXN0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1tZW51LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1wYWdpbmF0b3ItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLWJhci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtcmFkaW8tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNlbGVjdC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtc2lkZW5hdi10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtc2xpZGUtdG9nZ2xlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1zbGlkZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXN0ZXBwZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNvcnQtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRhYnMtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRvb2xiYXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRvb2x0aXAtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRyZWUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNuYWNrLWJhci10aGVtZSgkdGhlbWUpO1xufVxuIiwiLyogVGhlbWUgZm9yIHRoZSByaXBwbGUgZWxlbWVudHMuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIG1hdGVyaWFsL25vLXByZWZpeGVzICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4ubWF0LWJhZGdlLWNvbnRlbnQge1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1iYWRnZS1zbWFsbCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBmb250LXNpemU6IDlweDtcbn1cblxuLm1hdC1iYWRnZS1sYXJnZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBmb250LXNpemU6IDI0cHg7XG59XG5cbi5tYXQtaDEsIC5tYXQtaGVhZGxpbmUsIC5tYXQtdHlwb2dyYXBoeSBoMSB7XG4gIGZvbnQ6IDQwMCAyNHB4LzMycHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDE2cHg7XG59XG5cbi5tYXQtaDIsIC5tYXQtdGl0bGUsIC5tYXQtdHlwb2dyYXBoeSBoMiB7XG4gIGZvbnQ6IDUwMCAyMHB4LzMycHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDE2cHg7XG59XG5cbi5tYXQtaDMsIC5tYXQtc3ViaGVhZGluZy0yLCAubWF0LXR5cG9ncmFwaHkgaDMge1xuICBmb250OiA0MDAgMTZweC8yOHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCAxNnB4O1xufVxuXG4ubWF0LWg0LCAubWF0LXN1YmhlYWRpbmctMSwgLm1hdC10eXBvZ3JhcGh5IGg0IHtcbiAgZm9udDogNDAwIDE1cHgvMjRweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgMTZweDtcbn1cblxuLm1hdC1oNSwgLm1hdC10eXBvZ3JhcGh5IGg1IHtcbiAgZm9udDogNDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDEycHg7XG59XG5cbi5tYXQtaDYsIC5tYXQtdHlwb2dyYXBoeSBoNiB7XG4gIGZvbnQ6IDQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCAxMnB4O1xufVxuXG4ubWF0LWJvZHktc3Ryb25nLCAubWF0LWJvZHktMiB7XG4gIGZvbnQ6IDUwMCAxNHB4LzI0cHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtYm9keSwgLm1hdC1ib2R5LTEsIC5tYXQtdHlwb2dyYXBoeSB7XG4gIGZvbnQ6IDQwMCAxNHB4LzIwcHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4ubWF0LWJvZHkgcCwgLm1hdC1ib2R5LTEgcCwgLm1hdC10eXBvZ3JhcGh5IHAge1xuICBtYXJnaW46IDAgMCAxMnB4O1xufVxuXG4ubWF0LXNtYWxsLCAubWF0LWNhcHRpb24ge1xuICBmb250OiA0MDAgMTJweC8yMHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWRpc3BsYXktNCwgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS00IHtcbiAgZm9udDogMzAwIDExMnB4LzExMnB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDVlbTtcbiAgbWFyZ2luOiAwIDAgNTZweDtcbn1cblxuLm1hdC1kaXNwbGF5LTMsIC5tYXQtdHlwb2dyYXBoeSAubWF0LWRpc3BsYXktMyB7XG4gIGZvbnQ6IDQwMCA1NnB4LzU2cHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICBtYXJnaW46IDAgMCA2NHB4O1xufVxuXG4ubWF0LWRpc3BsYXktMiwgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS0yIHtcbiAgZm9udDogNDAwIDQ1cHgvNDhweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwNWVtO1xuICBtYXJnaW46IDAgMCA2NHB4O1xufVxuXG4ubWF0LWRpc3BsYXktMSwgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS0xIHtcbiAgZm9udDogNDAwIDM0cHgvNDBweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgNjRweDtcbn1cblxuLm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyIHtcbiAgZm9udDogNDAwIDE0cHgvMjBweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1idXR0b24sIC5tYXQtcmFpc2VkLWJ1dHRvbiwgLm1hdC1pY29uLWJ1dHRvbiwgLm1hdC1zdHJva2VkLWJ1dHRvbixcbi5tYXQtZmxhdC1idXR0b24sIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1jYXJkIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWNhcmQtdGl0bGUge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtY2FyZC1oZWFkZXIgLm1hdC1jYXJkLXRpdGxlIHtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuXG4ubWF0LWNhcmQtc3VidGl0bGUsXG4ubWF0LWNhcmQtY29udGVudCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1hdC1jaGVja2JveCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1jaGVja2JveC1sYXlvdXQgLm1hdC1jaGVja2JveC1sYWJlbCB7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuXG4ubWF0LWNoaXAge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4ubWF0LWNoaXAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb24sXG4ubWF0LWNoaXAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLm1hdC10YWJsZSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1oZWFkZXItY2VsbCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1jZWxsLCAubWF0LWZvb3Rlci1jZWxsIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4ubWF0LWNhbGVuZGFyIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWNhbGVuZGFyLWJvZHkge1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCxcbi5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIgdGgge1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5tYXQtZGlhbG9nLXRpdGxlIHtcbiAgZm9udDogNTAwIDIwcHgvMzJweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnQge1xuICBmb250OiA0MDAgMTRweC8yMHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWZvcm0tZmllbGQge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjEyNTtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAxLjM0Mzc1ZW07XG59XG5cbi5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLFxuLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24ge1xuICBmb250LXNpemU6IDE1MCU7XG4gIGxpbmUtaGVpZ2h0OiAxLjEyNTtcbn1cbi5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbixcbi5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbiB7XG4gIGhlaWdodDogMS41ZW07XG4gIHdpZHRoOiAxLjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb24sXG4ubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29uIHtcbiAgaGVpZ2h0OiAxLjEyNWVtO1xuICBsaW5lLWhlaWdodDogMS4xMjU7XG59XG5cbi5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDAuNWVtIDA7XG4gIGJvcmRlci10b3A6IDAuODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzMzMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM0MzMzMzMlO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gIHRvcDogLTAuODQzNzVlbTtcbiAgcGFkZGluZy10b3A6IDAuODQzNzVlbTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAxLjM0Mzc1ZW07XG59XG5cbi5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBib3R0b206IDEuMzQzNzVlbTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIG1hcmdpbi10b3A6IDAuNjY2NjY2NjY2N2VtO1xuICB0b3A6IGNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDEuMjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBwYWRkaW5nOiAwLjQzNzVlbSAwO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzMzMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM0MzMzMzMlO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzNTMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuMjgxMjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYm90dG9tOiAxLjI1ZW07XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgbWFyZ2luLXRvcDogMC41NDE2NjY2NjY3ZW07XG4gIHRvcDogY2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pO1xufVxuXG5AbWVkaWEgcHJpbnQge1xuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSk7XG4gIH1cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbDotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSk7XG4gIH1cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpO1xuICB9XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDAuMjVlbSAwIDAuNzVlbSAwO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuMDkzNzVlbTtcbiAgbWFyZ2luLXRvcDogLTAuNWVtO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzMzMzMzMzMlO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM0MzMzMzMlO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDFlbSAwIDFlbSAwO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuODQzNzVlbTtcbiAgbWFyZ2luLXRvcDogLTAuMjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzMzMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzNDMzMzMzJTtcbn1cblxuLm1hdC1ncmlkLXRpbGUtaGVhZGVyLFxuLm1hdC1ncmlkLXRpbGUtZm9vdGVyIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLm1hdC1ncmlkLXRpbGUtaGVhZGVyIC5tYXQtbGluZSxcbi5tYXQtZ3JpZC10aWxlLWZvb3RlciAubWF0LWxpbmUge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubWF0LWdyaWQtdGlsZS1oZWFkZXIgLm1hdC1saW5lOm50aC1jaGlsZChuKzIpLFxuLm1hdC1ncmlkLXRpbGUtZm9vdGVyIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICBtYXJnaW4tdG9wOiAtMC4wNjI1ZW07XG59XG5cbi5tYXQtbWVudS1pdGVtIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5tYXQtcGFnaW5hdG9yLFxuLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLm1hdC1yYWRpby1idXR0b24ge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtc2VsZWN0IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgaGVpZ2h0OiAxLjEyNWVtO1xufVxuXG4ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtc3RlcHBlci12ZXJ0aWNhbCwgLm1hdC1zdGVwcGVyLWhvcml6b250YWwge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtc3RlcC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvciB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi5tYXQtc3RlcC1sYWJlbC1lcnJvciB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWF0LXRhYi1ncm91cCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC10b29sYmFyLFxuLm1hdC10b29sYmFyIGgxLFxuLm1hdC10b29sYmFyIGgyLFxuLm1hdC10b29sYmFyIGgzLFxuLm1hdC10b29sYmFyIGg0LFxuLm1hdC10b29sYmFyIGg1LFxuLm1hdC10b29sYmFyIGg2IHtcbiAgZm9udDogNTAwIDIwcHgvMzJweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwO1xufVxuXG4ubWF0LXRvb2x0aXAge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgcGFkZGluZy10b3A6IDZweDtcbiAgcGFkZGluZy1ib3R0b206IDZweDtcbn1cblxuLm1hdC10b29sdGlwLWhhbmRzZXQge1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmctdG9wOiA4cHg7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG59XG5cbi5tYXQtbGlzdC1pdGVtIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWxpc3Qtb3B0aW9uIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24ge1xuICBmb250LXNpemU6IDE2cHg7XG59XG4ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLm1hdC1saXN0LWJhc2UgLm1hdC1zdWJoZWFkZXIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1pdGVtIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3QtaXRlbSAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMikge1xuICBmb250LXNpemU6IDEycHg7XG59XG4ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LW9wdGlvbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LXN1YmhlYWRlciB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWF0LW9wdGlvbiB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4ubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgZm9udDogNTAwIDE0cHgvMjRweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1zaW1wbGUtc25hY2tiYXIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtdHJlZSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC10cmVlLW5vZGUsXG4ubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5tYXQtcmlwcGxlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4ubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5LCB0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmNkay12aXN1YWxseS1oaWRkZW4ge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgb3V0bGluZTogMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi5jZGstb3ZlcmxheS1jb250YWluZXIsIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jZGstb3ZlcmxheS1jb250YWluZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDEwMDA7XG59XG4uY2RrLW92ZXJsYXktY29udGFpbmVyOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDAwO1xufVxuXG4uY2RrLW92ZXJsYXktcGFuZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbn1cblxuLmNkay1vdmVybGF5LWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO1xuICBvcGFjaXR5OiAwO1xufVxuLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICBvcGFjaXR5OiAxO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgfVxufVxuXG4uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zMik7XG59XG5cbi5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICBvcGFjaXR5OiAwO1xufVxuXG4uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAwMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLXdpZHRoOiAxcHg7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbn1cblxuLmNkay1nbG9iYWwtc2Nyb2xsYmxvY2sge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG5cbkBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQge1xuICAvKiEqL1xufVxuQGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQge1xuICAvKiEqL1xufVxuLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxsIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0O1xufVxuXG4uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCkge1xuICBhbmltYXRpb24tbmFtZTogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kO1xufVxuXG50ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUge1xuICByZXNpemU6IG5vbmU7XG59XG5cbnRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmcge1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveCAhaW1wb3J0YW50O1xufVxuXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW9wdGlvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtb3B0aW9uOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LW9wdGlvbjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW9wdGlvbi5tYXQtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1vcHRpb24ubWF0LW9wdGlvbi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtb3B0Z3JvdXAtZGlzYWJsZWQgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHNldWRvLWNoZWNrYm94IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3g6OmFmdGVyIHtcbiAgY29sb3I6ICNmYWZhZmE7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBjb2xvcjogI2IwYjBiMDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiAjYjBiMGIwO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXowIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejMge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXo0IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDVweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16NiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16NyB7XG4gIGJveC1zaGFkb3c6IDBweCA0cHggNXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggN3B4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAycHggMTZweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16OCB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16OSB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOXB4IDEycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTZweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTAge1xuICBib3gtc2hhZG93OiAwcHggNnB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEwcHggMTRweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDRweCAxOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxMSB7XG4gIGJveC1zaGFkb3c6IDBweCA2cHggN3B4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTFweCAxNXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDIwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejEyIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTMge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEzcHggMTlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxNCB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOXB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTRweCAyMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejE1IHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCA5cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNXB4IDIycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMjhweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTYge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTcge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxN3B4IDI2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTgge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOHB4IDI4cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTkge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDEycHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOXB4IDI5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MjAge1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjBweCAzMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDM4cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejIxIHtcbiAgYm94LXNoYWRvdzogMHB4IDEwcHggMTNweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIxcHggMzNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MHB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoyMiB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDE0cHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMnB4IDM1cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDJweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MjMge1xuICBib3gtc2hhZG93OiAwcHggMTFweCAxNHB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjNweCAzNnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejI0IHtcbiAgYm94LXNoYWRvdzogMHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYXBwLWJhY2tncm91bmQsIC5zdGFuZGFyZC10aGVtZS5tYXQtYXBwLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtdGhlbWUtbG9hZGVkLW1hcmtlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zdGFuZGFyZC10aGVtZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LWFjdGl2ZSk6bm90KDpob3Zlcik6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZDogIzYwN2Q4Yjtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBvdXRsaW5lOiBzb2xpZCAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtYWNjZW50IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICM0NDhhZmY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXdhcm4gLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1oaWRkZW4gLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWRpc2FibGVkIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICNiOWI5Yjk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0O1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIHtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLThweDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC04cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNnB4O1xufVxuW2Rpcj1ydGxdIC5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTZweDtcbn1cbltkaXI9cnRsXSAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtOHB4O1xufVxuW2Rpcj1ydGxdIC5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC04cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC04cHg7XG59XG5bZGlyPXJ0bF0gLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtOHB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB0b3A6IC0xMXB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC0xMXB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0yMnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTIycHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTExcHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMTFweDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWxhcmdlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLTE0cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVsb3cgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYm90dG9tOiAtMTRweDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTI4cHg7XG59XG5bZGlyPXJ0bF0gLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTI4cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0yOHB4O1xufVxuW2Rpcj1ydGxdIC5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTI4cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNHB4O1xufVxuW2Rpcj1ydGxdIC5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNHB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTRweDtcbn1cbltkaXI9cnRsXSAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNHB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24sIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbiB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnksIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24ubWF0LWFjY2VudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24ubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b25bZGlzYWJsZWRdIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBvcGFjaXR5OiAwLjE7XG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZDogYmxhY2s7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2Rpc2FibGVkXSkge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnksIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC1wcmltYXJ5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWZhYi5tYXQtYWNjZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhaXNlZC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF06bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWI6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiOm5vdChbZGlzYWJsZWRdKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiOm5vdChbZGlzYWJsZWRdKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEycHggMTdweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiW2Rpc2FibGVkXTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWJbZGlzYWJsZWRdOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSBbZGlyPXJ0bF0gLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiZGJkYmQ7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGJvcmRlcjogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYXJkIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FyZDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYXJkLm1hdC1jYXJkLWZsYXQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYXJkLXN1YnRpdGxlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gIGZpbGw6ICNmYWZhZmE7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gIHN0cm9rZTogI2ZhZmFmYSAhaW1wb3J0YW50O1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHtcbiAgLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGgge1xuICAgIHN0cm9rZTogIzAwMCAhaW1wb3J0YW50O1xuICB9XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IwYjBiMDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkOm5vdCgubWF0LWNoZWNrYm94LWNoZWNrZWQpIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6ICNiMGIwYjA7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveC1kaXNhYmxlZCAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgb3BhY2l0eTogMC40O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDpub3QoLm1hdC1jaGlwLWRpc2FibGVkKTphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDpub3QoLm1hdC1jaGlwLWRpc2FibGVkKSAubWF0LWNoaXAtcmVtb3ZlOmhvdmVyIHtcbiAgb3BhY2l0eTogMC41NDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjQ7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOjphZnRlciB7XG4gIGJhY2tncm91bmQ6IGJsYWNrO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgb3BhY2l0eTogMC40O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXdhcm4gLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgb3BhY2l0eTogMC40O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFibGUge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYmxlIHRoZWFkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWJsZSB0Ym9keSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFibGUgdGZvb3QsXG4uc3RhbmRhcmQtdGhlbWUgbWF0LWhlYWRlci1yb3csIC5zdGFuZGFyZC10aGVtZSBtYXQtcm93LCAuc3RhbmRhcmQtdGhlbWUgbWF0LWZvb3Rlci1yb3csXG4uc3RhbmRhcmQtdGhlbWUgW21hdC1oZWFkZXItcm93XSwgLnN0YW5kYXJkLXRoZW1lIFttYXQtcm93XSwgLnN0YW5kYXJkLXRoZW1lIFttYXQtZm9vdGVyLXJvd10sXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWJsZS1zdGlja3kge1xuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xufVxuLnN0YW5kYXJkLXRoZW1lIG1hdC1yb3csIC5zdGFuZGFyZC10aGVtZSBtYXQtaGVhZGVyLXJvdywgLnN0YW5kYXJkLXRoZW1lIG1hdC1mb290ZXItcm93LFxuLnN0YW5kYXJkLXRoZW1lIHRoLm1hdC1oZWFkZXItY2VsbCwgLnN0YW5kYXJkLXRoZW1lIHRkLm1hdC1jZWxsLCAuc3RhbmRhcmQtdGhlbWUgdGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWhlYWRlci1jZWxsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jZWxsLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mb290ZXItY2VsbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItYXJyb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1uZXh0LWJ1dHRvbixcbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLXByZXZpb3VzLWJ1dHRvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXItZGl2aWRlcjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXIgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSxcbi5zdGFuZGFyZC10aGVtZSAuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS10b2RheTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xuICBjb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg5NiwgMTI1LCAxMzksIDAuNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDhhZmY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNjgsIDEzOCwgMjU1LCAwLjQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0NCwgNjcsIDU0LCAwLjQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC10b3VjaCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLm1hdC1hY2NlbnQge1xuICBjb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGl2aWRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kaXZpZGVyLXZlcnRpY2FsIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWFjdGlvbi1yb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5zdGFuZGFyZC10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCk6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICB9XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLWluZGljYXRvcjo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaGludCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKSAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKS5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LWFjY2VudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVycm9yIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWhpbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC40MikgMCUsIHJnYmEoMCwgMCwgMCwgMC40MikgMzMlLCB0cmFuc3BhcmVudCAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogNHB4IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNDIpIDAlLCByZ2JhKDAsIDAsIDAsIDAuNDIpIDMzJSwgdHJhbnNwYXJlbnQgMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDRweCAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA2KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWljb24ubWF0LXByaW1hcnkge1xuICBjb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWljb24ubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6ZGlzYWJsZWQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtaW5wdXQtZWxlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWlucHV0LWVsZW1lbnQge1xuICBjYXJldC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWxpc3QtYmFzZSAubWF0LXN1YmhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbGlzdC1pdGVtLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWxpc3Qtb3B0aW9uOmhvdmVyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1saXN0LW9wdGlvbjpmb2N1cyxcbi5zdGFuZGFyZC10aGVtZSAubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06Zm9jdXMsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbTpob3Zlcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtaXRlbSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF06OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1tZW51LWl0ZW0gLm1hdC1pY29uLW5vLWNvbG9yLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWVudS1pdGVtLXN1Ym1lbnUtdHJpZ2dlcjo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtaXRlbTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1tZW51LWl0ZW0uY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoW2Rpc2FibGVkXSksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1tZW51LWl0ZW0uY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWVudS1pdGVtLWhpZ2hsaWdodGVkOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wYWdpbmF0b3Ige1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvci1wYWdlLXNpemUgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQge1xuICBib3JkZXItdG9wOiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvci1maXJzdCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZGVjcmVtZW50LFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1maXJzdCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjY2ZkOGRjO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZmQ4ZGM7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gIGZpbGw6ICM4MmIxZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODJiMWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjZmZjZGQyO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmNkZDI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGUsIC5zdGFuZGFyZC10aGVtZSAubWF0LXNwaW5uZXIgY2lyY2xlIHtcbiAgc3Ryb2tlOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSB7XG4gIHN0cm9rZTogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXdhcm4gY2lyY2xlLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zcGlubmVyLm1hdC13YXJuIGNpcmNsZSB7XG4gIHN0cm9rZTogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeTphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudC5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50OmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2Fybi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybjphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zZWxlY3QtdmFsdWUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNlbGVjdC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNlbGVjdC1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2VsZWN0LXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zZWxlY3QtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtcHJpbWFyeSAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtYWNjZW50IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtaW52YWxpZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZCAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXItY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXIubWF0LWRyYXdlci1wdXNoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXI6bm90KC5tYXQtZHJhd2VyLXNpZGUpIHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXItc2lkZSB7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXItc2lkZS5tYXQtZHJhd2VyLWVuZCB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLnN0YW5kYXJkLXRoZW1lIFtkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRlIHtcbiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgW2Rpcj1ydGxdIC5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmQge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRyYXdlci1iYWNrZHJvcC5tYXQtZHJhd2VyLXNob3duIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDY4LCAxMzgsIDI1NSwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoOTYsIDEyNSwgMTM5LCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDQsIDY3LCA1NCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGU6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWIsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItZm9jdXMtcmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNjgsIDEzOCwgMjU1LCAwLjIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGVyOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4uc3RhbmRhcmQtdGhlbWUgLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItZGlzYWJsZWQ6aG92ZXIgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWIsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZy5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpOmhvdmVyIC5tYXQtc2xpZGVyLXRodW1iLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKS5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpOmhvdmVyLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpLmNkay1mb2N1c2VkLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItaGFzLXRpY2tzIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC43KSwgcmdiYSgwLCAwLCAwLCAwLjcpIDJweCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LXJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMC4wMDAxZGVnLCByZ2JhKDAsIDAsIDAsIDAuNyksIHJnYmEoMCwgMCwgMCwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDAsIDAsIDAsIDAuNyksIHJnYmEoMCwgMCwgMCwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXAtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlci5jZGstcHJvZ3JhbS1mb2N1c2VkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXAtaGVhZGVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtb3B0aW9uYWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVycm9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWFjdGl2ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwcGVyLWhvcml6b250YWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXBwZXItdmVydGljYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXBwZXItdmVydGljYWwtbGluZTo6YmVmb3JlIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjphZnRlcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbC1saW5lIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNvcnQtaGVhZGVyLWFycm93IHtcbiAgY29sb3I6ICM3NTc1NzU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC10YWItbmF2LWJhcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC10YWItaGVhZGVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbGFiZWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cFtjbGFzcyo9bWF0LWJhY2tncm91bmQtXSAubWF0LXRhYi1oZWFkZXIsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhcltjbGFzcyo9bWF0LWJhY2tncm91bmQtXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDcsIDIxNiwgMjIwLCAwLjMpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtaW5rLWJhciwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtaW5rLWJhciwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMzAsIDE3NywgMjU1LCAwLjMpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC1pbmstYmFyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1pbmstYmFyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50Lm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjA1LCAyMTAsIDAuMyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC1pbmstYmFyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1pbmstYmFyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwNywgMjE2LCAyMjAsIDAuMyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmtzLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGlua3MsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmssIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMzAsIDE3NywgMjU1LCAwLjMpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGlua3MsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rcywgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluaywgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMDUsIDIxMCwgMC4zKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlciwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGlua3MsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlciwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rcywgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluaywgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10b29sYmFyIHtcbiAgYmFja2dyb3VuZDogd2hpdGVzbW9rZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10b29sYmFyLm1hdC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzYwN2Q4YjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdG9vbGJhci5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZDogIzQ0OGFmZjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdG9vbGJhci5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQ6ICNmNDQzMzY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtdmFsdWUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LWFycm93LFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2x0aXAge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDk3LCA5NywgOTcsIDAuOSk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10cmVlIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10cmVlLW5vZGUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbmFjay1iYXItY29udGFpbmVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgYmFja2dyb3VuZDogIzMyMzIzMjtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIGgxIHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG5cbi5ncmVlbi10aGVtZSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtb3B0aW9uIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtb3B0aW9uOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksIC5ncmVlbi10aGVtZSAubWF0LW9wdGlvbjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW9wdGlvbi5tYXQtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtb3B0aW9uLm1hdC1vcHRpb24tZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1vcHRncm91cC1kaXNhYmxlZCAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3g6OmFmdGVyIHtcbiAgY29sb3I6ICMzMDMwMzA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBjb2xvcjogIzY4Njg2ODtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5ncmVlbi10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLFxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uZ3JlZW4tdGhlbWUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCxcbi5ncmVlbi10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiAjNjg2ODY4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXowIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejMge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXo0IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDVweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16NiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16NyB7XG4gIGJveC1zaGFkb3c6IDBweCA0cHggNXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggN3B4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAycHggMTZweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16OCB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16OSB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOXB4IDEycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTZweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTAge1xuICBib3gtc2hhZG93OiAwcHggNnB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEwcHggMTRweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDRweCAxOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxMSB7XG4gIGJveC1zaGFkb3c6IDBweCA2cHggN3B4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTFweCAxNXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDIwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejEyIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTMge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEzcHggMTlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxNCB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOXB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTRweCAyMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejE1IHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCA5cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNXB4IDIycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMjhweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTYge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTcge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxN3B4IDI2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTgge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOHB4IDI4cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTkge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDEycHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOXB4IDI5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MjAge1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjBweCAzMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDM4cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejIxIHtcbiAgYm94LXNoYWRvdzogMHB4IDEwcHggMTNweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIxcHggMzNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MHB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoyMiB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDE0cHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMnB4IDM1cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDJweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MjMge1xuICBib3gtc2hhZG93OiAwcHggMTFweCAxNHB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjNweCAzNnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejI0IHtcbiAgYm94LXNoYWRvdzogMHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYXBwLWJhY2tncm91bmQsIC5ncmVlbi10aGVtZS5tYXQtYXBwLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzAzMDMwO1xuICBjb2xvcjogd2hpdGU7XG59XG4ubWF0LXRoZW1lLWxvYWRlZC1tYXJrZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZ3JlZW4tdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtYWN0aXZlKTpub3QoOmhvdmVyKSB7XG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LWFjdGl2ZSk6bm90KDpob3Zlcik6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYmFja2dyb3VuZDogIzhiYzM0YTtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBvdXRsaW5lOiBzb2xpZCAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtYWNjZW50IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICM0Y2FmNTA7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utd2FybiAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYmFja2dyb3VuZDogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtaGlkZGVuIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiAjNmU2ZTZlO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0O1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIHtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLThweDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC04cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNnB4O1xufVxuW2Rpcj1ydGxdIC5ncmVlbi10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTZweDtcbn1cbltkaXI9cnRsXSAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtOHB4O1xufVxuW2Rpcj1ydGxdIC5ncmVlbi10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC04cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC04cHg7XG59XG5bZGlyPXJ0bF0gLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtOHB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB0b3A6IC0xMXB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC0xMXB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0yMnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTIycHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTExcHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMTFweDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWxhcmdlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLTE0cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVsb3cgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYm90dG9tOiAtMTRweDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTI4cHg7XG59XG5bZGlyPXJ0bF0gLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTI4cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0yOHB4O1xufVxuW2Rpcj1ydGxdIC5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTI4cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNHB4O1xufVxuW2Rpcj1ydGxdIC5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNHB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTRweDtcbn1cbltkaXI9cnRsXSAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNHB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24sIC5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbiB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24ubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuLCAuZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4ge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5ncmVlbi10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uW2Rpc2FibGVkXSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIG9wYWNpdHk6IDAuMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIsIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeSwgLmdyZWVuLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQsIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtZmFiLm1hdC1hY2NlbnQsIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0ge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeSwgLmdyZWVuLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiwgLmdyZWVuLXRoZW1lIC5tYXQtZmFiLm1hdC13YXJuLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtZmFiLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b246bm90KFtkaXNhYmxlZF0pOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmFiOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZhYjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZhYltkaXNhYmxlZF06bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiW2Rpc2FibGVkXTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZSxcbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSBbZGlyPXJ0bF0gLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMTIxO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyNDI0Mjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLFxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgYm9yZGVyOiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNhcmQge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYXJkOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNhcmQubWF0LWNhcmQtZmxhdDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNhcmQtc3VidGl0bGUge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gIGZpbGw6ICMzMDMwMzA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gIHN0cm9rZTogIzMwMzAzMCAhaW1wb3J0YW50O1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHtcbiAgLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGgge1xuICAgIHN0cm9rZTogIzAwMCAhaW1wb3J0YW50O1xuICB9XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzAzMDMwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwgLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY4Njg2ODtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkOm5vdCgubWF0LWNoZWNrYm94LWNoZWNrZWQpIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6ICM2ODY4Njg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1kaXNhYmxlZCAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAuZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3ggLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCxcbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LFxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjE2MTYxO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXA6bm90KC5tYXQtY2hpcC1kaXNhYmxlZCk6YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAzcHggNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXA6bm90KC5tYXQtY2hpcC1kaXNhYmxlZCkgLm1hdC1jaGlwLXJlbW92ZTpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNTQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC40O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBvcGFjaXR5OiAwLjQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgb3BhY2l0eTogMC40O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBvcGFjaXR5OiAwLjQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYmxlIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYmxlIHRoZWFkLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWJsZSB0Ym9keSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFibGUgdGZvb3QsXG4uZ3JlZW4tdGhlbWUgbWF0LWhlYWRlci1yb3csIC5ncmVlbi10aGVtZSBtYXQtcm93LCAuZ3JlZW4tdGhlbWUgbWF0LWZvb3Rlci1yb3csXG4uZ3JlZW4tdGhlbWUgW21hdC1oZWFkZXItcm93XSwgLmdyZWVuLXRoZW1lIFttYXQtcm93XSwgLmdyZWVuLXRoZW1lIFttYXQtZm9vdGVyLXJvd10sXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWJsZS1zdGlja3kge1xuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xufVxuLmdyZWVuLXRoZW1lIG1hdC1yb3csIC5ncmVlbi10aGVtZSBtYXQtaGVhZGVyLXJvdywgLmdyZWVuLXRoZW1lIG1hdC1mb290ZXItcm93LFxuLmdyZWVuLXRoZW1lIHRoLm1hdC1oZWFkZXItY2VsbCwgLmdyZWVuLXRoZW1lIHRkLm1hdC1jZWxsLCAuZ3JlZW4tdGhlbWUgdGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWhlYWRlci1jZWxsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNlbGwsIC5ncmVlbi10aGVtZSAubWF0LWZvb3Rlci1jZWxsIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2FsZW5kYXItYXJyb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLFxuLmdyZWVuLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItbmV4dC1idXR0b24sXG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1wcmV2aW91cy1idXR0b24ge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyLWRpdmlkZXI6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXIgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpLFxuLmdyZWVuLXRoZW1lIC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSxcbi5ncmVlbi10aGVtZSAuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMzksIDE5NSwgNzQsIDAuNCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDc2LCAxNzUsIDgwLCAwLjQpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3NiwgMTc1LCA4MCwgMC40KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC10b3VjaCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gIGNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLm1hdC1hY2NlbnQge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtd2FybiB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZDogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGl2aWRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kaXZpZGVyLXZlcnRpY2FsIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWFjdGlvbi1yb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLCAuZ3JlZW4tdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSwgLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5ncmVlbi10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCk6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICM0MjQyNDI7XG4gIH1cbn1cbi5ncmVlbi10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uLFxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLWluZGljYXRvcjo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUsXG4uZ3JlZW4tdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWhpbnQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC1hY2NlbnQge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC13YXJuIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtYWNjZW50LFxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXJyb3Ige1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1oaW50IHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMzMlLCB0cmFuc3BhcmVudCAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogNHB4IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDMzJSwgdHJhbnNwYXJlbnQgMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDRweCAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi5tYXQtcHJpbWFyeSB7XG4gIGNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi5tYXQtYWNjZW50IHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1pY29uLm1hdC13YXJuIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1pbnB1dC1lbGVtZW50OmRpc2FibGVkLFxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQgb3B0aW9uIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1pbnB1dC1lbGVtZW50IG9wdGlvbjpkaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtd2FybiAubWF0LWlucHV0LWVsZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW0ge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbiB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWxpc3QtYmFzZSAubWF0LXN1YmhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1saXN0LWl0ZW0tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbi5ncmVlbi10aGVtZSAubWF0LWxpc3Qtb3B0aW9uOmhvdmVyLCAuZ3JlZW4tdGhlbWUgLm1hdC1saXN0LW9wdGlvbjpmb2N1cyxcbi5ncmVlbi10aGVtZSAubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLFxuLmdyZWVuLXRoZW1lIC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06Zm9jdXMsXG4uZ3JlZW4tdGhlbWUgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbTpob3Zlcixcbi5ncmVlbi10aGVtZSAubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW1lbnUtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtbWVudS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtbWVudS1pdGVtIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF06OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW1lbnUtaXRlbSAubWF0LWljb24tbm8tY29sb3IsXG4uZ3JlZW4tdGhlbWUgLm1hdC1tZW51LWl0ZW0tc3VibWVudS10cmlnZ2VyOjphZnRlciB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW1lbnUtaXRlbTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4uZ3JlZW4tdGhlbWUgLm1hdC1tZW51LWl0ZW0uY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoW2Rpc2FibGVkXSksXG4uZ3JlZW4tdGhlbWUgLm1hdC1tZW51LWl0ZW0uY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLFxuLmdyZWVuLXRoZW1lIC5tYXQtbWVudS1pdGVtLWhpZ2hsaWdodGVkOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wYWdpbmF0b3Ige1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcGFnaW5hdG9yLFxuLmdyZWVuLXRoZW1lIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1wYWdpbmF0b3ItaW5jcmVtZW50IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHdoaXRlO1xuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXBhZ2luYXRvci1maXJzdCxcbi5ncmVlbi10aGVtZSAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxcbi5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZmlyc3QsXG4uZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItbGFzdCB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjZGNlZGM4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkY2VkYzg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gIGZpbGw6ICNjOGU2Yzk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzhlNmM5O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjYzhlNmM5O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjOGU2Yzk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGUsIC5ncmVlbi10aGVtZSAubWF0LXNwaW5uZXIgY2lyY2xlIHtcbiAgc3Ryb2tlOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSwgLmdyZWVuLXRoZW1lIC5tYXQtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSB7XG4gIHN0cm9rZTogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXdhcm4gY2lyY2xlLCAuZ3JlZW4tdGhlbWUgLm1hdC1zcGlubmVyLm1hdC13YXJuIGNpcmNsZSB7XG4gIHN0cm9rZTogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5OmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsXG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudCAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQ6YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4ubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuOmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUsXG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNlbGVjdC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtdmFsdWUge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNlbGVjdC1wYW5lbCB7XG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zZWxlY3QtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNlbGVjdC1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1wcmltYXJ5IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LXdhcm4gLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1pbnZhbGlkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZHJhd2VyLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMDMwMzA7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRyYXdlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MjQyNDI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRyYXdlci5tYXQtZHJhd2VyLXB1c2gge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZHJhd2VyOm5vdCgubWF0LWRyYXdlci1zaWRlKSB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZHJhd2VyLXNpZGUge1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmQge1xuICBib3JkZXItbGVmdDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSBbZGlyPXJ0bF0gLm1hdC1kcmF3ZXItc2lkZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLmdyZWVuLXRoZW1lIFtkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRlLm1hdC1kcmF3ZXItZW5kIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kcmF3ZXItYmFja2Ryb3AubWF0LWRyYXdlci1zaG93biB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTg5LCAxODksIDE4OSwgMC42KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3NiwgMTc1LCA4MCwgMC41NCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTM5LCAxOTUsIDc0LCAwLjU0KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3NiwgMTc1LCA4MCwgMC41NCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGU6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JkYmRiZDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4uZ3JlZW4tdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXdhcm4gLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5ncmVlbi10aGVtZSAubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDc2LCAxNzUsIDgwLCAwLjIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4uZ3JlZW4tdGhlbWUgLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCxcbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLWRpc2FibGVkOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZy5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyk6aG92ZXIgLm1hdC1zbGlkZXItdGh1bWIsIC5ncmVlbi10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKTpob3Zlci5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iLCAuZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKS5jZGstZm9jdXNlZC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItaGFzLXRpY2tzIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDJweCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LXJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMC4wMDAxZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXN0ZXAtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlci5jZGstcHJvZ3JhbS1mb2N1c2VkLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5ncmVlbi10aGVtZSAubWF0LXN0ZXAtaGVhZGVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwsXG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtb3B0aW9uYWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YmMzNGE7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZXJyb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtYWN0aXZlIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwcGVyLWhvcml6b250YWwsIC5ncmVlbi10aGVtZSAubWF0LXN0ZXBwZXItdmVydGljYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmUge1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmJlZm9yZSxcbi5ncmVlbi10aGVtZSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmFmdGVyLFxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmUge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc29ydC1oZWFkZXItYXJyb3cge1xuICBjb2xvcjogI2M2YzZjNjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciAubWF0LXRhYi1uYXYtYmFyLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciAubWF0LXRhYi1oZWFkZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1sYWJlbCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWxpbmsge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwW2NsYXNzKj1tYXQtYmFja2dyb3VuZC1dIC5tYXQtdGFiLWhlYWRlcixcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyW2NsYXNzKj1tYXQtYmFja2dyb3VuZC1dIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyMCwgMjM3LCAyMDAsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC1pbmstYmFyLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC1pbmstYmFyLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjAwLCAyMzAsIDIwMSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtaW5rLWJhciwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtaW5rLWJhciwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwMCwgMjMwLCAyMDEsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC1pbmstYmFyLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1pbmstYmFyLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjIwLCAyMzcsIDIwMCwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlciwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGlua3MsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlciwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rcywgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluaywgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDAsIDIzMCwgMjAxLCAwLjMpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGlua3MsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rcywgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluaywgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwMCwgMjMwLCAyMDEsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXIsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmtzLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXIsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGlua3MsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmssIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIge1xuICBiYWNrZ3JvdW5kOiAjMjEyMTIxO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10b29sYmFyLm1hdC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzhiYzM0YTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10b29sYmFyLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kOiAjNGNhZjUwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIubWF0LXdhcm4ge1xuICBiYWNrZ3JvdW5kOiAjNGNhZjUwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSxcbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtdmFsdWUsXG4uZ3JlZW4tdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LWFycm93LFxuLmdyZWVuLXRoZW1lIC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2x0aXAge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDk3LCA5NywgOTcsIDAuOSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10cmVlIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRyZWUtbm9kZSxcbi5ncmVlbi10aGVtZSAubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbmFjay1iYXItY29udGFpbmVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5ncmVlbi10aGVtZSBoMSB7XG4gIGNvbG9yOiAjOGJjMzRhO1xufVxuXG4vKiBZb3UgY2FuIGFkZCBnbG9iYWwgc3R5bGVzIHRvIHRoaXMgZmlsZSwgYW5kIGFsc28gaW1wb3J0IG90aGVyIHN0eWxlIGZpbGVzICovXG5odG1sLCBib2R5IHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5mbGV4LXNwYWNlciB7XG4gIGZsZXg6IDEgMSBhdXRvO1xufSIsIlxuLy8gQ3VzdG9tIFRoZW1pbmcgZm9yIEFuZ3VsYXIgTWF0ZXJpYWxcbi8vIEZvciBtb3JlIGluZm9ybWF0aW9uOiBodHRwczovL21hdGVyaWFsLmFuZ3VsYXIuaW8vZ3VpZGUvdGhlbWluZ1xuQGltcG9ydCAnfkBhbmd1bGFyL21hdGVyaWFsL3RoZW1pbmcnO1xuLy8gUGx1cyBpbXBvcnRzIGZvciBvdGhlciBjb21wb25lbnRzIGluIHlvdXIgYXBwLlxuXG4vLyBJbmNsdWRlIHRoZSBjb21tb24gc3R5bGVzIGZvciBBbmd1bGFyIE1hdGVyaWFsLiBXZSBpbmNsdWRlIHRoaXMgaGVyZSBzbyB0aGF0IHlvdSBvbmx5XG4vLyBoYXZlIHRvIGxvYWQgYSBzaW5nbGUgY3NzIGZpbGUgZm9yIEFuZ3VsYXIgTWF0ZXJpYWwgaW4geW91ciBhcHAuXG4vLyBCZSBzdXJlIHRoYXQgeW91IG9ubHkgZXZlciBpbmNsdWRlIHRoaXMgbWl4aW4gb25jZSFcbkBpbmNsdWRlIG1hdC1jb3JlKCk7XG5cbi8vIGltcG9ydGluZyB0aGUgdGhlbWVzIGZyb20gb3VyIHRoZW1lIGZpbGVzXG5AaW1wb3J0IFwiLi90aGVtZXMvc3RhbmRhcmQtdGhlbWVcIjtcbkBpbXBvcnQgXCIuL3RoZW1lcy9ncmVlbi10aGVtZVwiO1xuLy8gSW5jbHVkZSB0aGVtZSBzdHlsZXMgZm9yIGNvcmUgYW5kIGVhY2ggY29tcG9uZW50IHVzZWQgaW4geW91ciBhcHAuXG4vLyBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGltcG9ydCBhbmQgQGluY2x1ZGUgdGhlIHRoZW1lIG1peGlucyBmb3IgZWFjaCBjb21wb25lbnRcbi8vIHRoYXQgeW91IGFyZSB1c2luZy5cblxuLy8gZm9yIG93biBjb21wb25lbnRzLCBpLmUuIG5vbiBtYXRlcmlhbCBjb21wb25lbnQgd2UgbGlrZSB0byB1c2UgdGhlIHNhbWUgc3R5bGUvcGFsZXR0ZXNcblxuXG4uc3RhbmRhcmQtdGhlbWUge1xuICBAaW5jbHVkZSBhbmd1bGFyLW1hdGVyaWFsLXRoZW1lKCRzdGFuZGFyZC10aGVtZSk7XG5cbiAgaDEgeyBjb2xvcjogbWF0LWNvbG9yKCRzdGFuZGFyZC10aGVtZS1wcmltYXJ5KX1cbn1cbi5ncmVlbi10aGVtZSB7XG4gIEBpbmNsdWRlIGFuZ3VsYXItbWF0ZXJpYWwtdGhlbWUoJGdyZWVuLXRoZW1lKTtcblxuICBoMSB7IGNvbG9yOiBtYXQtY29sb3IoJGdyZWVuLXRoZW1lLXByaW1hcnkpfVxufVxuXG5cbi8qIFlvdSBjYW4gYWRkIGdsb2JhbCBzdHlsZXMgdG8gdGhpcyBmaWxlLCBhbmQgYWxzbyBpbXBvcnQgb3RoZXIgc3R5bGUgZmlsZXMgKi9cblxuXG5odG1sLCBib2R5IHsgaGVpZ2h0OiAxMDAlOyB9XG5ib2R5IHsgbWFyZ2luOiAwOyBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7IH1cblxuLmZsZXgtc3BhY2VyIHtcbiAgZmxleDogMSAxIGF1dG87XG59XG5cblxuXG4iXX0= */\", '', '']]","\"use strict\";\n\nvar stylesInDom = {};\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nfunction listToStyles(list, options) {\n var styles = [];\n var newStyles = {};\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var css = item[1];\n var media = item[2];\n var sourceMap = item[3];\n var part = {\n css: css,\n media: media,\n sourceMap: sourceMap\n };\n\n if (!newStyles[id]) {\n styles.push(newStyles[id] = {\n id: id,\n parts: [part]\n });\n } else {\n newStyles[id].parts.push(part);\n }\n }\n\n return styles;\n}\n\nfunction addStylesToDom(styles, options) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i];\n var domStyle = stylesInDom[item.id];\n var j = 0;\n\n if (domStyle) {\n domStyle.refs++;\n\n for (; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j]);\n }\n\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j], options));\n }\n } else {\n var parts = [];\n\n for (; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j], options));\n }\n\n stylesInDom[item.id] = {\n id: item.id,\n refs: 1,\n parts: parts\n };\n }\n }\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n\n if (typeof options.attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n options.attributes.nonce = nonce;\n }\n }\n\n Object.keys(options.attributes).forEach(function (key) {\n style.setAttribute(key, options.attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n }\n\n if (sourceMap && btoa) {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n options.attributes = typeof options.attributes === 'object' ? options.attributes : {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n var styles = listToStyles(list, options);\n addStylesToDom(styles, options);\n return function update(newList) {\n var mayRemove = [];\n\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i];\n var domStyle = stylesInDom[item.id];\n\n if (domStyle) {\n domStyle.refs--;\n mayRemove.push(domStyle);\n }\n }\n\n if (newList) {\n var newStyles = listToStyles(newList, options);\n addStylesToDom(newStyles, options);\n }\n\n for (var _i = 0; _i < mayRemove.length; _i++) {\n var _domStyle = mayRemove[_i];\n\n if (_domStyle.refs === 0) {\n for (var j = 0; j < _domStyle.parts.length; j++) {\n _domStyle.parts[j]();\n }\n\n delete stylesInDom[_domStyle.id];\n }\n }\n };\n};","var content = require(\"!!../node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!../node_modules/postcss-loader/src/index.js??embedded!../node_modules/sass-loader/lib/loader.js??ref--15-3!./styles.scss\");\n\nif (typeof content === 'string') {\n content = [[module.id, content, '']];\n}\n\nvar options = {}\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = require(\"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\")(content, options);\n\nif (content.locals) {\n module.exports = content.locals;\n}\n"],"sourceRoot":"webpack:///"}
\ No newline at end of file
+{"version":3,"sources":["./src/styles.scss","./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///./src/styles.scss?530d"],"names":[],"mappings":"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;AACnC;AACA;AACA,KAAK;AACL;;AAEA,YAAY,uBAAuB;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,KAAwC,GAAG,sBAAiB,GAAG,SAAI;;AAEnF;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,kCAAkC;;AAElC;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yDAAyD;AACzD,GAAG;;AAEH;;;AAGA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,wFAAwF;AACxF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,mBAAmB,mBAAmB;AACtC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAoB,uBAAuB;AAC3C;;AAEA;AACA,uBAAuB,4BAA4B;AACnD;AACA;;AAEA;AACA;AACA;AACA;AACA,E;;;;;;;;;;;ACzRA,cAAc,mBAAO,CAAC,4ZAA0N;;AAEhP;AACA,cAAc,QAAS;AACvB;;AAEA;;AAEA;AACA;;AAEA,aAAa,mBAAO,CAAC,mJAAwE;;AAE7F;AACA;AACA","file":"styles-es2015.js","sourcesContent":["module.exports = [[module.id, \"/* Theme for the ripple elements.*/\\n/* stylelint-disable material/no-prefixes */\\n/* stylelint-enable */\\n.mat-badge-content {\\n font-weight: 600;\\n font-size: 12px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-badge-small .mat-badge-content {\\n font-size: 9px;\\n}\\n.mat-badge-large .mat-badge-content {\\n font-size: 24px;\\n}\\n.mat-h1, .mat-headline, .mat-typography h1 {\\n font: 400 24px/32px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.mat-h2, .mat-title, .mat-typography h2 {\\n font: 500 20px/32px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.mat-h3, .mat-subheading-2, .mat-typography h3 {\\n font: 400 16px/28px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.mat-h4, .mat-subheading-1, .mat-typography h4 {\\n font: 400 15px/24px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.mat-h5, .mat-typography h5 {\\n font: 400 calc(14px * 0.83)/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 12px;\\n}\\n.mat-h6, .mat-typography h6 {\\n font: 400 calc(14px * 0.67)/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 12px;\\n}\\n.mat-body-strong, .mat-body-2 {\\n font: 500 14px/24px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-body, .mat-body-1, .mat-typography {\\n font: 400 14px/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-body p, .mat-body-1 p, .mat-typography p {\\n margin: 0 0 12px;\\n}\\n.mat-small, .mat-caption {\\n font: 400 12px/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-display-4, .mat-typography .mat-display-4 {\\n font: 300 112px/112px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n letter-spacing: -0.05em;\\n margin: 0 0 56px;\\n}\\n.mat-display-3, .mat-typography .mat-display-3 {\\n font: 400 56px/56px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n letter-spacing: -0.02em;\\n margin: 0 0 64px;\\n}\\n.mat-display-2, .mat-typography .mat-display-2 {\\n font: 400 45px/48px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n letter-spacing: -0.005em;\\n margin: 0 0 64px;\\n}\\n.mat-display-1, .mat-typography .mat-display-1 {\\n font: 400 34px/40px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 64px;\\n}\\n.mat-bottom-sheet-container {\\n font: 400 14px/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-button, .mat-raised-button, .mat-icon-button, .mat-stroked-button,\\n.mat-flat-button, .mat-fab, .mat-mini-fab {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-button-toggle {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-card {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-card-title {\\n font-size: 24px;\\n font-weight: 500;\\n}\\n.mat-card-header .mat-card-title {\\n font-size: 20px;\\n}\\n.mat-card-subtitle,\\n.mat-card-content {\\n font-size: 14px;\\n}\\n.mat-checkbox {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-checkbox-layout .mat-checkbox-label {\\n line-height: 24px;\\n}\\n.mat-chip {\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-chip .mat-chip-trailing-icon.mat-icon,\\n.mat-chip .mat-chip-remove.mat-icon {\\n font-size: 18px;\\n}\\n.mat-table {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-header-cell {\\n font-size: 12px;\\n font-weight: 500;\\n}\\n.mat-cell, .mat-footer-cell {\\n font-size: 14px;\\n}\\n.mat-calendar {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-calendar-body {\\n font-size: 13px;\\n}\\n.mat-calendar-body-label,\\n.mat-calendar-period-button {\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-calendar-table-header th {\\n font-size: 11px;\\n font-weight: 400;\\n}\\n.mat-dialog-title {\\n font: 500 20px/32px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-expansion-panel-header {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 15px;\\n font-weight: 400;\\n}\\n.mat-expansion-panel-content {\\n font: 400 14px/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-form-field {\\n font-size: inherit;\\n font-weight: 400;\\n line-height: 1.125;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-form-field-wrapper {\\n padding-bottom: 1.34375em;\\n}\\n.mat-form-field-prefix .mat-icon,\\n.mat-form-field-suffix .mat-icon {\\n font-size: 150%;\\n line-height: 1.125;\\n}\\n.mat-form-field-prefix .mat-icon-button,\\n.mat-form-field-suffix .mat-icon-button {\\n height: 1.5em;\\n width: 1.5em;\\n}\\n.mat-form-field-prefix .mat-icon-button .mat-icon,\\n.mat-form-field-suffix .mat-icon-button .mat-icon {\\n height: 1.125em;\\n line-height: 1.125;\\n}\\n.mat-form-field-infix {\\n padding: 0.5em 0;\\n border-top: 0.84375em solid transparent;\\n}\\n.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.34375em) scale(0.75);\\n width: 133.3333333333%;\\n}\\n.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.34374em) scale(0.75);\\n width: 133.3333433333%;\\n}\\n.mat-form-field-label-wrapper {\\n top: -0.84375em;\\n padding-top: 0.84375em;\\n}\\n.mat-form-field-label {\\n top: 1.34375em;\\n}\\n.mat-form-field-underline {\\n bottom: 1.34375em;\\n}\\n.mat-form-field-subscript-wrapper {\\n font-size: 75%;\\n margin-top: 0.6666666667em;\\n top: calc(100% - 1.7916666667em);\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-wrapper {\\n padding-bottom: 1.25em;\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-infix {\\n padding: 0.4375em 0;\\n}\\n.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);\\n -ms-transform: translateY(-1.28125em) scale(0.75);\\n width: 133.3333333333%;\\n}\\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);\\n -ms-transform: translateY(-1.28124em) scale(0.75);\\n width: 133.3333433333%;\\n}\\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);\\n -ms-transform: translateY(-1.28123em) scale(0.75);\\n width: 133.3333533333%;\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-label {\\n top: 1.28125em;\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-underline {\\n bottom: 1.25em;\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper {\\n margin-top: 0.5416666667em;\\n top: calc(100% - 1.6666666667em);\\n}\\n@media print {\\n .mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28122em) scale(0.75);\\n }\\n .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28121em) scale(0.75);\\n }\\n .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.2812em) scale(0.75);\\n }\\n}\\n.mat-form-field-appearance-fill .mat-form-field-infix {\\n padding: 0.25em 0 0.75em 0;\\n}\\n.mat-form-field-appearance-fill .mat-form-field-label {\\n top: 1.09375em;\\n margin-top: -0.5em;\\n}\\n.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-0.59375em) scale(0.75);\\n width: 133.3333333333%;\\n}\\n.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-0.59374em) scale(0.75);\\n width: 133.3333433333%;\\n}\\n.mat-form-field-appearance-outline .mat-form-field-infix {\\n padding: 1em 0 1em 0;\\n}\\n.mat-form-field-appearance-outline .mat-form-field-label {\\n top: 1.84375em;\\n margin-top: -0.25em;\\n}\\n.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.59375em) scale(0.75);\\n width: 133.3333333333%;\\n}\\n.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.59374em) scale(0.75);\\n width: 133.3333433333%;\\n}\\n.mat-grid-tile-header,\\n.mat-grid-tile-footer {\\n font-size: 14px;\\n}\\n.mat-grid-tile-header .mat-line,\\n.mat-grid-tile-footer .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.mat-grid-tile-header .mat-line:nth-child(n+2),\\n.mat-grid-tile-footer .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\ninput.mat-input-element {\\n margin-top: -0.0625em;\\n}\\n.mat-menu-item {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 400;\\n}\\n.mat-paginator,\\n.mat-paginator-page-size .mat-select-trigger {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n}\\n.mat-radio-button {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-select {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-select-trigger {\\n height: 1.125em;\\n}\\n.mat-slide-toggle-content {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-slider-thumb-label-text {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 500;\\n}\\n.mat-stepper-vertical, .mat-stepper-horizontal {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-step-label {\\n font-size: 14px;\\n font-weight: 400;\\n}\\n.mat-step-sub-label-error {\\n font-weight: normal;\\n}\\n.mat-step-label-error {\\n font-size: 14px;\\n}\\n.mat-step-label-selected {\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-tab-group {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-tab-label, .mat-tab-link {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-toolbar,\\n.mat-toolbar h1,\\n.mat-toolbar h2,\\n.mat-toolbar h3,\\n.mat-toolbar h4,\\n.mat-toolbar h5,\\n.mat-toolbar h6 {\\n font: 500 20px/32px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0;\\n}\\n.mat-tooltip {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 10px;\\n padding-top: 6px;\\n padding-bottom: 6px;\\n}\\n.mat-tooltip-handset {\\n font-size: 14px;\\n padding-top: 8px;\\n padding-bottom: 8px;\\n}\\n.mat-list-item {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-list-option {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-list-base .mat-list-item {\\n font-size: 16px;\\n}\\n.mat-list-base .mat-list-item .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.mat-list-base .mat-list-item .mat-line:nth-child(n+2) {\\n font-size: 14px;\\n}\\n.mat-list-base .mat-list-option {\\n font-size: 16px;\\n}\\n.mat-list-base .mat-list-option .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.mat-list-base .mat-list-option .mat-line:nth-child(n+2) {\\n font-size: 14px;\\n}\\n.mat-list-base .mat-subheader {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-list-base[dense] .mat-list-item {\\n font-size: 12px;\\n}\\n.mat-list-base[dense] .mat-list-item .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\n.mat-list-base[dense] .mat-list-option {\\n font-size: 12px;\\n}\\n.mat-list-base[dense] .mat-list-option .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\n.mat-list-base[dense] .mat-subheader {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 500;\\n}\\n.mat-option {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 16px;\\n}\\n.mat-optgroup-label {\\n font: 500 14px/24px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-simple-snackbar {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n}\\n.mat-simple-snackbar-action {\\n line-height: 1;\\n font-family: inherit;\\n font-size: inherit;\\n font-weight: 500;\\n}\\n.mat-tree {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-tree-node,\\n.mat-nested-tree-node {\\n font-weight: 400;\\n font-size: 14px;\\n}\\n.mat-ripple {\\n overflow: hidden;\\n position: relative;\\n}\\n.mat-ripple.mat-ripple-unbounded {\\n overflow: visible;\\n}\\n.mat-ripple-element {\\n position: absolute;\\n border-radius: 50%;\\n pointer-events: none;\\n transition: opacity, transform 0ms cubic-bezier(0, 0, 0.2, 1);\\n transform: scale(0);\\n}\\n@media (-ms-high-contrast: active) {\\n .mat-ripple-element {\\n display: none;\\n }\\n}\\n.cdk-visually-hidden {\\n border: 0;\\n clip: rect(0 0 0 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px;\\n outline: 0;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n}\\n.cdk-overlay-container, .cdk-global-overlay-wrapper {\\n pointer-events: none;\\n top: 0;\\n left: 0;\\n height: 100%;\\n width: 100%;\\n}\\n.cdk-overlay-container {\\n position: fixed;\\n z-index: 1000;\\n}\\n.cdk-overlay-container:empty {\\n display: none;\\n}\\n.cdk-global-overlay-wrapper {\\n display: flex;\\n position: absolute;\\n z-index: 1000;\\n}\\n.cdk-overlay-pane {\\n position: absolute;\\n pointer-events: auto;\\n box-sizing: border-box;\\n z-index: 1000;\\n display: flex;\\n max-width: 100%;\\n max-height: 100%;\\n}\\n.cdk-overlay-backdrop {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n z-index: 1000;\\n pointer-events: auto;\\n -webkit-tap-highlight-color: transparent;\\n transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);\\n opacity: 0;\\n}\\n.cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\\n opacity: 1;\\n}\\n@media screen and (-ms-high-contrast: active) {\\n .cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\\n opacity: 0.6;\\n }\\n}\\n.cdk-overlay-dark-backdrop {\\n background: rgba(0, 0, 0, 0.32);\\n}\\n.cdk-overlay-transparent-backdrop, .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {\\n opacity: 0;\\n}\\n.cdk-overlay-connected-position-bounding-box {\\n position: absolute;\\n z-index: 1000;\\n display: flex;\\n flex-direction: column;\\n min-width: 1px;\\n min-height: 1px;\\n}\\n.cdk-global-scrollblock {\\n position: fixed;\\n width: 100%;\\n overflow-y: scroll;\\n}\\n@-webkit-keyframes cdk-text-field-autofill-start {\\n /*!*/\\n}\\n@keyframes cdk-text-field-autofill-start {\\n /*!*/\\n}\\n@-webkit-keyframes cdk-text-field-autofill-end {\\n /*!*/\\n}\\n@keyframes cdk-text-field-autofill-end {\\n /*!*/\\n}\\n.cdk-text-field-autofill-monitored:-webkit-autofill {\\n -webkit-animation-name: cdk-text-field-autofill-start;\\n animation-name: cdk-text-field-autofill-start;\\n}\\n.cdk-text-field-autofill-monitored:not(:-webkit-autofill) {\\n -webkit-animation-name: cdk-text-field-autofill-end;\\n animation-name: cdk-text-field-autofill-end;\\n}\\ntextarea.cdk-textarea-autosize {\\n resize: none;\\n}\\ntextarea.cdk-textarea-autosize-measuring {\\n height: auto !important;\\n overflow: hidden !important;\\n padding: 2px 0 !important;\\n box-sizing: content-box !important;\\n}\\n.standard-theme .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n.standard-theme .mat-option {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-option:hover:not(.mat-option-disabled), .standard-theme .mat-option:focus:not(.mat-option-disabled) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.standard-theme .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.standard-theme .mat-option.mat-active {\\n background: rgba(0, 0, 0, 0.04);\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-option.mat-option-disabled {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #607d8b;\\n}\\n.standard-theme .mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #448aff;\\n}\\n.standard-theme .mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #f44336;\\n}\\n.standard-theme .mat-optgroup-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-optgroup-disabled .mat-optgroup-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-pseudo-checkbox {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-pseudo-checkbox::after {\\n color: #fafafa;\\n}\\n.standard-theme .mat-pseudo-checkbox-disabled {\\n color: #b0b0b0;\\n}\\n.standard-theme .mat-primary .mat-pseudo-checkbox-checked,\\n.standard-theme .mat-primary .mat-pseudo-checkbox-indeterminate {\\n background: #607d8b;\\n}\\n.standard-theme .mat-pseudo-checkbox-checked,\\n.standard-theme .mat-pseudo-checkbox-indeterminate,\\n.standard-theme .mat-accent .mat-pseudo-checkbox-checked,\\n.standard-theme .mat-accent .mat-pseudo-checkbox-indeterminate {\\n background: #448aff;\\n}\\n.standard-theme .mat-warn .mat-pseudo-checkbox-checked,\\n.standard-theme .mat-warn .mat-pseudo-checkbox-indeterminate {\\n background: #f44336;\\n}\\n.standard-theme .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,\\n.standard-theme .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {\\n background: #b0b0b0;\\n}\\n.standard-theme .mat-elevation-z0 {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z1 {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z2 {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z3 {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z4 {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z5 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z6 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z7 {\\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z8 {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z9 {\\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z10 {\\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z11 {\\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z12 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z13 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z14 {\\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z15 {\\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z16 {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z17 {\\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z18 {\\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z19 {\\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z20 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z21 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z22 {\\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z23 {\\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-elevation-z24 {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-app-background, .standard-theme.mat-app-background {\\n background-color: #fafafa;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-theme-loaded-marker {\\n display: none;\\n}\\n.standard-theme .mat-autocomplete-panel {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-autocomplete-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {\\n background: white;\\n}\\n.standard-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-badge-content {\\n color: white;\\n background: #607d8b;\\n}\\n@media (-ms-high-contrast: active) {\\n .standard-theme .mat-badge-content {\\n outline: solid 1px;\\n border-radius: 0;\\n }\\n}\\n.standard-theme .mat-badge-accent .mat-badge-content {\\n background: #448aff;\\n color: white;\\n}\\n.standard-theme .mat-badge-warn .mat-badge-content {\\n color: white;\\n background: #f44336;\\n}\\n.standard-theme .mat-badge {\\n position: relative;\\n}\\n.standard-theme .mat-badge-hidden .mat-badge-content {\\n display: none;\\n}\\n.standard-theme .mat-badge-disabled .mat-badge-content {\\n background: #b9b9b9;\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-badge-content {\\n position: absolute;\\n text-align: center;\\n display: inline-block;\\n border-radius: 50%;\\n transition: transform 200ms ease-in-out;\\n transform: scale(0.6);\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n pointer-events: none;\\n}\\n.standard-theme .ng-animate-disabled .mat-badge-content,\\n.standard-theme .mat-badge-content._mat-animation-noopable {\\n transition: none;\\n}\\n.standard-theme .mat-badge-content.mat-badge-active {\\n transform: none;\\n}\\n.standard-theme .mat-badge-small .mat-badge-content {\\n width: 16px;\\n height: 16px;\\n line-height: 16px;\\n}\\n.standard-theme .mat-badge-small.mat-badge-above .mat-badge-content {\\n top: -8px;\\n}\\n.standard-theme .mat-badge-small.mat-badge-below .mat-badge-content {\\n bottom: -8px;\\n}\\n.standard-theme .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: -16px;\\n}\\n[dir=rtl] .standard-theme .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -16px;\\n}\\n.standard-theme .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: -16px;\\n}\\n[dir=rtl] .standard-theme .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -16px;\\n}\\n.standard-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -8px;\\n}\\n[dir=rtl] .standard-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -8px;\\n}\\n.standard-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -8px;\\n}\\n[dir=rtl] .standard-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -8px;\\n}\\n.standard-theme .mat-badge-medium .mat-badge-content {\\n width: 22px;\\n height: 22px;\\n line-height: 22px;\\n}\\n.standard-theme .mat-badge-medium.mat-badge-above .mat-badge-content {\\n top: -11px;\\n}\\n.standard-theme .mat-badge-medium.mat-badge-below .mat-badge-content {\\n bottom: -11px;\\n}\\n.standard-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: -22px;\\n}\\n[dir=rtl] .standard-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -22px;\\n}\\n.standard-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: -22px;\\n}\\n[dir=rtl] .standard-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -22px;\\n}\\n.standard-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -11px;\\n}\\n[dir=rtl] .standard-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -11px;\\n}\\n.standard-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -11px;\\n}\\n[dir=rtl] .standard-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -11px;\\n}\\n.standard-theme .mat-badge-large .mat-badge-content {\\n width: 28px;\\n height: 28px;\\n line-height: 28px;\\n}\\n.standard-theme .mat-badge-large.mat-badge-above .mat-badge-content {\\n top: -14px;\\n}\\n.standard-theme .mat-badge-large.mat-badge-below .mat-badge-content {\\n bottom: -14px;\\n}\\n.standard-theme .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: -28px;\\n}\\n[dir=rtl] .standard-theme .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -28px;\\n}\\n.standard-theme .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: -28px;\\n}\\n[dir=rtl] .standard-theme .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -28px;\\n}\\n.standard-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -14px;\\n}\\n[dir=rtl] .standard-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -14px;\\n}\\n.standard-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -14px;\\n}\\n[dir=rtl] .standard-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -14px;\\n}\\n.standard-theme .mat-bottom-sheet-container {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-button, .standard-theme .mat-icon-button, .standard-theme .mat-stroked-button {\\n color: inherit;\\n background: transparent;\\n}\\n.standard-theme .mat-button.mat-primary, .standard-theme .mat-icon-button.mat-primary, .standard-theme .mat-stroked-button.mat-primary {\\n color: #607d8b;\\n}\\n.standard-theme .mat-button.mat-accent, .standard-theme .mat-icon-button.mat-accent, .standard-theme .mat-stroked-button.mat-accent {\\n color: #448aff;\\n}\\n.standard-theme .mat-button.mat-warn, .standard-theme .mat-icon-button.mat-warn, .standard-theme .mat-stroked-button.mat-warn {\\n color: #f44336;\\n}\\n.standard-theme .mat-button.mat-primary[disabled], .standard-theme .mat-button.mat-accent[disabled], .standard-theme .mat-button.mat-warn[disabled], .standard-theme .mat-button[disabled][disabled], .standard-theme .mat-icon-button.mat-primary[disabled], .standard-theme .mat-icon-button.mat-accent[disabled], .standard-theme .mat-icon-button.mat-warn[disabled], .standard-theme .mat-icon-button[disabled][disabled], .standard-theme .mat-stroked-button.mat-primary[disabled], .standard-theme .mat-stroked-button.mat-accent[disabled], .standard-theme .mat-stroked-button.mat-warn[disabled], .standard-theme .mat-stroked-button[disabled][disabled] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n.standard-theme .mat-button.mat-primary .mat-button-focus-overlay, .standard-theme .mat-icon-button.mat-primary .mat-button-focus-overlay, .standard-theme .mat-stroked-button.mat-primary .mat-button-focus-overlay {\\n background-color: #607d8b;\\n}\\n.standard-theme .mat-button.mat-accent .mat-button-focus-overlay, .standard-theme .mat-icon-button.mat-accent .mat-button-focus-overlay, .standard-theme .mat-stroked-button.mat-accent .mat-button-focus-overlay {\\n background-color: #448aff;\\n}\\n.standard-theme .mat-button.mat-warn .mat-button-focus-overlay, .standard-theme .mat-icon-button.mat-warn .mat-button-focus-overlay, .standard-theme .mat-stroked-button.mat-warn .mat-button-focus-overlay {\\n background-color: #f44336;\\n}\\n.standard-theme .mat-button[disabled] .mat-button-focus-overlay, .standard-theme .mat-icon-button[disabled] .mat-button-focus-overlay, .standard-theme .mat-stroked-button[disabled] .mat-button-focus-overlay {\\n background-color: transparent;\\n}\\n.standard-theme .mat-button .mat-ripple-element, .standard-theme .mat-icon-button .mat-ripple-element, .standard-theme .mat-stroked-button .mat-ripple-element {\\n opacity: 0.1;\\n background-color: currentColor;\\n}\\n.standard-theme .mat-button-focus-overlay {\\n background: black;\\n}\\n.standard-theme .mat-stroked-button:not([disabled]) {\\n border-color: rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-flat-button, .standard-theme .mat-raised-button, .standard-theme .mat-fab, .standard-theme .mat-mini-fab {\\n color: rgba(0, 0, 0, 0.87);\\n background-color: white;\\n}\\n.standard-theme .mat-flat-button.mat-primary, .standard-theme .mat-raised-button.mat-primary, .standard-theme .mat-fab.mat-primary, .standard-theme .mat-mini-fab.mat-primary {\\n color: white;\\n}\\n.standard-theme .mat-flat-button.mat-accent, .standard-theme .mat-raised-button.mat-accent, .standard-theme .mat-fab.mat-accent, .standard-theme .mat-mini-fab.mat-accent {\\n color: white;\\n}\\n.standard-theme .mat-flat-button.mat-warn, .standard-theme .mat-raised-button.mat-warn, .standard-theme .mat-fab.mat-warn, .standard-theme .mat-mini-fab.mat-warn {\\n color: white;\\n}\\n.standard-theme .mat-flat-button.mat-primary[disabled], .standard-theme .mat-flat-button.mat-accent[disabled], .standard-theme .mat-flat-button.mat-warn[disabled], .standard-theme .mat-flat-button[disabled][disabled], .standard-theme .mat-raised-button.mat-primary[disabled], .standard-theme .mat-raised-button.mat-accent[disabled], .standard-theme .mat-raised-button.mat-warn[disabled], .standard-theme .mat-raised-button[disabled][disabled], .standard-theme .mat-fab.mat-primary[disabled], .standard-theme .mat-fab.mat-accent[disabled], .standard-theme .mat-fab.mat-warn[disabled], .standard-theme .mat-fab[disabled][disabled], .standard-theme .mat-mini-fab.mat-primary[disabled], .standard-theme .mat-mini-fab.mat-accent[disabled], .standard-theme .mat-mini-fab.mat-warn[disabled], .standard-theme .mat-mini-fab[disabled][disabled] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n.standard-theme .mat-flat-button.mat-primary, .standard-theme .mat-raised-button.mat-primary, .standard-theme .mat-fab.mat-primary, .standard-theme .mat-mini-fab.mat-primary {\\n background-color: #607d8b;\\n}\\n.standard-theme .mat-flat-button.mat-accent, .standard-theme .mat-raised-button.mat-accent, .standard-theme .mat-fab.mat-accent, .standard-theme .mat-mini-fab.mat-accent {\\n background-color: #448aff;\\n}\\n.standard-theme .mat-flat-button.mat-warn, .standard-theme .mat-raised-button.mat-warn, .standard-theme .mat-fab.mat-warn, .standard-theme .mat-mini-fab.mat-warn {\\n background-color: #f44336;\\n}\\n.standard-theme .mat-flat-button.mat-primary[disabled], .standard-theme .mat-flat-button.mat-accent[disabled], .standard-theme .mat-flat-button.mat-warn[disabled], .standard-theme .mat-flat-button[disabled][disabled], .standard-theme .mat-raised-button.mat-primary[disabled], .standard-theme .mat-raised-button.mat-accent[disabled], .standard-theme .mat-raised-button.mat-warn[disabled], .standard-theme .mat-raised-button[disabled][disabled], .standard-theme .mat-fab.mat-primary[disabled], .standard-theme .mat-fab.mat-accent[disabled], .standard-theme .mat-fab.mat-warn[disabled], .standard-theme .mat-fab[disabled][disabled], .standard-theme .mat-mini-fab.mat-primary[disabled], .standard-theme .mat-mini-fab.mat-accent[disabled], .standard-theme .mat-mini-fab.mat-warn[disabled], .standard-theme .mat-mini-fab[disabled][disabled] {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-flat-button.mat-primary .mat-ripple-element, .standard-theme .mat-raised-button.mat-primary .mat-ripple-element, .standard-theme .mat-fab.mat-primary .mat-ripple-element, .standard-theme .mat-mini-fab.mat-primary .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.standard-theme .mat-flat-button.mat-accent .mat-ripple-element, .standard-theme .mat-raised-button.mat-accent .mat-ripple-element, .standard-theme .mat-fab.mat-accent .mat-ripple-element, .standard-theme .mat-mini-fab.mat-accent .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.standard-theme .mat-flat-button.mat-warn .mat-ripple-element, .standard-theme .mat-raised-button.mat-warn .mat-ripple-element, .standard-theme .mat-fab.mat-warn .mat-ripple-element, .standard-theme .mat-mini-fab.mat-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.standard-theme .mat-stroked-button:not([class*=mat-elevation-z]), .standard-theme .mat-flat-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-raised-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-raised-button[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-fab:not([class*=mat-elevation-z]), .standard-theme .mat-mini-fab:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-fab:not([disabled]):active:not([class*=mat-elevation-z]), .standard-theme .mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-fab[disabled]:not([class*=mat-elevation-z]), .standard-theme .mat-mini-fab[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-button-toggle-standalone,\\n.standard-theme .mat-button-toggle-group {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.standard-theme .mat-button-toggle-group-appearance-standard {\\n box-shadow: none;\\n}\\n.standard-theme .mat-button-toggle {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-button-toggle .mat-button-toggle-focus-overlay {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-button-toggle-appearance-standard {\\n color: rgba(0, 0, 0, 0.87);\\n background: white;\\n}\\n.standard-theme .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {\\n background-color: black;\\n}\\n.standard-theme .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: none;\\n border-top: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-button-toggle-checked {\\n background-color: #e0e0e0;\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-button-toggle-checked.mat-button-toggle-appearance-standard {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-button-toggle-disabled {\\n color: rgba(0, 0, 0, 0.26);\\n background-color: #eeeeee;\\n}\\n.standard-theme .mat-button-toggle-disabled.mat-button-toggle-appearance-standard {\\n background: white;\\n}\\n.standard-theme .mat-button-toggle-disabled.mat-button-toggle-checked {\\n background-color: #bdbdbd;\\n}\\n.standard-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.standard-theme .mat-button-toggle-group-appearance-standard {\\n border: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-card {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-card:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-card.mat-card-flat:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-card-subtitle {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-checkbox-frame {\\n border-color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-checkbox-checkmark {\\n fill: #fafafa;\\n}\\n.standard-theme .mat-checkbox-checkmark-path {\\n stroke: #fafafa !important;\\n}\\n@media (-ms-high-contrast: black-on-white) {\\n .standard-theme .mat-checkbox-checkmark-path {\\n stroke: #000 !important;\\n }\\n}\\n.standard-theme .mat-checkbox-mixedmark {\\n background-color: #fafafa;\\n}\\n.standard-theme .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .standard-theme .mat-checkbox-checked.mat-primary .mat-checkbox-background {\\n background-color: #607d8b;\\n}\\n.standard-theme .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .standard-theme .mat-checkbox-checked.mat-accent .mat-checkbox-background {\\n background-color: #448aff;\\n}\\n.standard-theme .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .standard-theme .mat-checkbox-checked.mat-warn .mat-checkbox-background {\\n background-color: #f44336;\\n}\\n.standard-theme .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .standard-theme .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {\\n background-color: #b0b0b0;\\n}\\n.standard-theme .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {\\n border-color: #b0b0b0;\\n}\\n.standard-theme .mat-checkbox-disabled .mat-checkbox-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n@media (-ms-high-contrast: active) {\\n .standard-theme .mat-checkbox-disabled {\\n opacity: 0.5;\\n }\\n}\\n@media (-ms-high-contrast: active) {\\n .standard-theme .mat-checkbox-background {\\n background: none;\\n }\\n}\\n.standard-theme .mat-checkbox .mat-ripple-element {\\n background-color: black;\\n}\\n.standard-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,\\n.standard-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {\\n background: #607d8b;\\n}\\n.standard-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,\\n.standard-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {\\n background: #448aff;\\n}\\n.standard-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,\\n.standard-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {\\n background: #f44336;\\n}\\n.standard-theme .mat-chip.mat-standard-chip {\\n background-color: #e0e0e0;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-chip.mat-standard-chip .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n.standard-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {\\n opacity: 0.54;\\n}\\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-disabled {\\n opacity: 0.4;\\n}\\n.standard-theme .mat-chip.mat-standard-chip::after {\\n background: black;\\n}\\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {\\n background-color: #607d8b;\\n color: white;\\n}\\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {\\n background-color: #f44336;\\n color: white;\\n}\\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {\\n background-color: #448aff;\\n color: white;\\n}\\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n.standard-theme .mat-table {\\n background: white;\\n}\\n.standard-theme .mat-table thead, .standard-theme .mat-table tbody, .standard-theme .mat-table tfoot,\\n.standard-theme mat-header-row, .standard-theme mat-row, .standard-theme mat-footer-row,\\n.standard-theme [mat-header-row], .standard-theme [mat-row], .standard-theme [mat-footer-row],\\n.standard-theme .mat-table-sticky {\\n background: inherit;\\n}\\n.standard-theme mat-row, .standard-theme mat-header-row, .standard-theme mat-footer-row,\\n.standard-theme th.mat-header-cell, .standard-theme td.mat-cell, .standard-theme td.mat-footer-cell {\\n border-bottom-color: rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-header-cell {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-cell, .standard-theme .mat-footer-cell {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-calendar-arrow {\\n border-top-color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-datepicker-toggle,\\n.standard-theme .mat-datepicker-content .mat-calendar-next-button,\\n.standard-theme .mat-datepicker-content .mat-calendar-previous-button {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-calendar-table-header {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-calendar-table-header-divider::after {\\n background: rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-calendar-body-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-calendar-body-cell-content {\\n color: rgba(0, 0, 0, 0.87);\\n border-color: transparent;\\n}\\n.standard-theme .mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.standard-theme .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.standard-theme .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n.standard-theme .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(0, 0, 0, 0.18);\\n}\\n.standard-theme .mat-calendar-body-selected {\\n background-color: #607d8b;\\n color: white;\\n}\\n.standard-theme .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(96, 125, 139, 0.4);\\n}\\n.standard-theme .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px white;\\n}\\n.standard-theme .mat-datepicker-content {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n background-color: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-datepicker-content.mat-accent .mat-calendar-body-selected {\\n background-color: #448aff;\\n color: white;\\n}\\n.standard-theme .mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(68, 138, 255, 0.4);\\n}\\n.standard-theme .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px white;\\n}\\n.standard-theme .mat-datepicker-content.mat-warn .mat-calendar-body-selected {\\n background-color: #f44336;\\n color: white;\\n}\\n.standard-theme .mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(244, 67, 54, 0.4);\\n}\\n.standard-theme .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px white;\\n}\\n.standard-theme .mat-datepicker-content-touch {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-datepicker-toggle-active {\\n color: #607d8b;\\n}\\n.standard-theme .mat-datepicker-toggle-active.mat-accent {\\n color: #448aff;\\n}\\n.standard-theme .mat-datepicker-toggle-active.mat-warn {\\n color: #f44336;\\n}\\n.standard-theme .mat-dialog-container {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-divider {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-divider-vertical {\\n border-right-color: rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-expansion-panel {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-expansion-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-action-row {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]), .standard-theme .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]), .standard-theme .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n@media (hover: none) {\\n .standard-theme .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover {\\n background: white;\\n }\\n}\\n.standard-theme .mat-expansion-panel-header-title {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-expansion-panel-header-description,\\n.standard-theme .mat-expansion-indicator::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-expansion-panel-header[aria-disabled=true] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n.standard-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,\\n.standard-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description {\\n color: inherit;\\n}\\n.standard-theme .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.6);\\n}\\n.standard-theme .mat-hint {\\n color: rgba(0, 0, 0, 0.6);\\n}\\n.standard-theme .mat-form-field.mat-focused .mat-form-field-label {\\n color: #607d8b;\\n}\\n.standard-theme .mat-form-field.mat-focused .mat-form-field-label.mat-accent {\\n color: #448aff;\\n}\\n.standard-theme .mat-form-field.mat-focused .mat-form-field-label.mat-warn {\\n color: #f44336;\\n}\\n.standard-theme .mat-focused .mat-form-field-required-marker {\\n color: #448aff;\\n}\\n.standard-theme .mat-form-field-ripple {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-form-field.mat-focused .mat-form-field-ripple {\\n background-color: #607d8b;\\n}\\n.standard-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {\\n background-color: #448aff;\\n}\\n.standard-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {\\n background-color: #f44336;\\n}\\n.standard-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {\\n color: #607d8b;\\n}\\n.standard-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {\\n color: #448aff;\\n}\\n.standard-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {\\n color: #f44336;\\n}\\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label {\\n color: #f44336;\\n}\\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,\\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {\\n color: #f44336;\\n}\\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,\\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {\\n background-color: #f44336;\\n}\\n.standard-theme .mat-error {\\n color: #f44336;\\n}\\n.standard-theme .mat-form-field-appearance-legacy .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-form-field-appearance-legacy .mat-hint {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-form-field-appearance-legacy .mat-form-field-underline {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n.standard-theme .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n.standard-theme .mat-form-field-appearance-standard .mat-form-field-underline {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n.standard-theme .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n.standard-theme .mat-form-field-appearance-fill .mat-form-field-flex {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n.standard-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {\\n background-color: rgba(0, 0, 0, 0.02);\\n}\\n.standard-theme .mat-form-field-appearance-fill .mat-form-field-underline::before {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n.standard-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {\\n background-color: transparent;\\n}\\n.standard-theme .mat-form-field-appearance-outline .mat-form-field-outline {\\n color: rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-form-field-appearance-outline .mat-form-field-outline-thick {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {\\n color: #607d8b;\\n}\\n.standard-theme .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {\\n color: #448aff;\\n}\\n.standard-theme .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {\\n color: #f44336;\\n}\\n.standard-theme .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {\\n color: #f44336;\\n}\\n.standard-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {\\n color: rgba(0, 0, 0, 0.06);\\n}\\n.standard-theme .mat-icon.mat-primary {\\n color: #607d8b;\\n}\\n.standard-theme .mat-icon.mat-accent {\\n color: #448aff;\\n}\\n.standard-theme .mat-icon.mat-warn {\\n color: #f44336;\\n}\\n.standard-theme .mat-form-field-type-mat-native-select .mat-form-field-infix::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-input-element:disabled,\\n.standard-theme .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-input-element {\\n caret-color: #607d8b;\\n}\\n.standard-theme .mat-input-element::-webkit-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.standard-theme .mat-input-element::-moz-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.standard-theme .mat-input-element::-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.standard-theme .mat-input-element::placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.standard-theme .mat-input-element::-moz-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.standard-theme .mat-input-element::-webkit-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.standard-theme .mat-input-element:-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.standard-theme .mat-accent .mat-input-element {\\n caret-color: #448aff;\\n}\\n.standard-theme .mat-warn .mat-input-element,\\n.standard-theme .mat-form-field-invalid .mat-input-element {\\n caret-color: #f44336;\\n}\\n.standard-theme .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {\\n color: #f44336;\\n}\\n.standard-theme .mat-list-base .mat-list-item {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-list-base .mat-list-option {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-list-base .mat-subheader {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-list-item-disabled {\\n background-color: #eeeeee;\\n}\\n.standard-theme .mat-list-option:hover, .standard-theme .mat-list-option:focus,\\n.standard-theme .mat-nav-list .mat-list-item:hover,\\n.standard-theme .mat-nav-list .mat-list-item:focus,\\n.standard-theme .mat-action-list .mat-list-item:hover,\\n.standard-theme .mat-action-list .mat-list-item:focus {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.standard-theme .mat-menu-panel {\\n background: white;\\n}\\n.standard-theme .mat-menu-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-menu-item {\\n background: transparent;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-menu-item[disabled], .standard-theme .mat-menu-item[disabled]::after {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-menu-item .mat-icon-no-color,\\n.standard-theme .mat-menu-item-submenu-trigger::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-menu-item:hover:not([disabled]),\\n.standard-theme .mat-menu-item.cdk-program-focused:not([disabled]),\\n.standard-theme .mat-menu-item.cdk-keyboard-focused:not([disabled]),\\n.standard-theme .mat-menu-item-highlighted:not([disabled]) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.standard-theme .mat-paginator {\\n background: white;\\n}\\n.standard-theme .mat-paginator,\\n.standard-theme .mat-paginator-page-size .mat-select-trigger {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-paginator-decrement,\\n.standard-theme .mat-paginator-increment {\\n border-top: 2px solid rgba(0, 0, 0, 0.54);\\n border-right: 2px solid rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-paginator-first,\\n.standard-theme .mat-paginator-last {\\n border-top: 2px solid rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-icon-button[disabled] .mat-paginator-decrement,\\n.standard-theme .mat-icon-button[disabled] .mat-paginator-increment,\\n.standard-theme .mat-icon-button[disabled] .mat-paginator-first,\\n.standard-theme .mat-icon-button[disabled] .mat-paginator-last {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-progress-bar-background {\\n fill: #cfd8dc;\\n}\\n.standard-theme .mat-progress-bar-buffer {\\n background-color: #cfd8dc;\\n}\\n.standard-theme .mat-progress-bar-fill::after {\\n background-color: #607d8b;\\n}\\n.standard-theme .mat-progress-bar.mat-accent .mat-progress-bar-background {\\n fill: #82b1ff;\\n}\\n.standard-theme .mat-progress-bar.mat-accent .mat-progress-bar-buffer {\\n background-color: #82b1ff;\\n}\\n.standard-theme .mat-progress-bar.mat-accent .mat-progress-bar-fill::after {\\n background-color: #448aff;\\n}\\n.standard-theme .mat-progress-bar.mat-warn .mat-progress-bar-background {\\n fill: #ffcdd2;\\n}\\n.standard-theme .mat-progress-bar.mat-warn .mat-progress-bar-buffer {\\n background-color: #ffcdd2;\\n}\\n.standard-theme .mat-progress-bar.mat-warn .mat-progress-bar-fill::after {\\n background-color: #f44336;\\n}\\n.standard-theme .mat-progress-spinner circle, .standard-theme .mat-spinner circle {\\n stroke: #607d8b;\\n}\\n.standard-theme .mat-progress-spinner.mat-accent circle, .standard-theme .mat-spinner.mat-accent circle {\\n stroke: #448aff;\\n}\\n.standard-theme .mat-progress-spinner.mat-warn circle, .standard-theme .mat-spinner.mat-warn circle {\\n stroke: #f44336;\\n}\\n.standard-theme .mat-radio-outer-circle {\\n border-color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #607d8b;\\n}\\n.standard-theme .mat-radio-button.mat-primary .mat-radio-inner-circle,\\n.standard-theme .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .standard-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple, .standard-theme .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {\\n background-color: #607d8b;\\n}\\n.standard-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #448aff;\\n}\\n.standard-theme .mat-radio-button.mat-accent .mat-radio-inner-circle,\\n.standard-theme .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .standard-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple, .standard-theme .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {\\n background-color: #448aff;\\n}\\n.standard-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #f44336;\\n}\\n.standard-theme .mat-radio-button.mat-warn .mat-radio-inner-circle,\\n.standard-theme .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .standard-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple, .standard-theme .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {\\n background-color: #f44336;\\n}\\n.standard-theme .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,\\n.standard-theme .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,\\n.standard-theme .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-radio-button.mat-radio-disabled .mat-radio-label-content {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-radio-button .mat-ripple-element {\\n background-color: black;\\n}\\n.standard-theme .mat-select-value {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-select-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.standard-theme .mat-select-disabled .mat-select-value {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-select-arrow {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-select-panel {\\n background: white;\\n}\\n.standard-theme .mat-select-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {\\n background: rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-form-field.mat-focused.mat-primary .mat-select-arrow {\\n color: #607d8b;\\n}\\n.standard-theme .mat-form-field.mat-focused.mat-accent .mat-select-arrow {\\n color: #448aff;\\n}\\n.standard-theme .mat-form-field.mat-focused.mat-warn .mat-select-arrow {\\n color: #f44336;\\n}\\n.standard-theme .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {\\n color: #f44336;\\n}\\n.standard-theme .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-drawer-container {\\n background-color: #fafafa;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-drawer {\\n background-color: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-drawer.mat-drawer-push {\\n background-color: white;\\n}\\n.standard-theme .mat-drawer:not(.mat-drawer-side) {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-drawer-side {\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-drawer-side.mat-drawer-end {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n border-right: none;\\n}\\n.standard-theme [dir=rtl] .mat-drawer-side {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n border-right: none;\\n}\\n.standard-theme [dir=rtl] .mat-drawer-side.mat-drawer-end {\\n border-left: none;\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-drawer-backdrop.mat-drawer-shown {\\n background-color: rgba(0, 0, 0, 0.6);\\n}\\n.standard-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {\\n background-color: #448aff;\\n}\\n.standard-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(68, 138, 255, 0.54);\\n}\\n.standard-theme .mat-slide-toggle.mat-checked .mat-ripple-element {\\n background-color: #448aff;\\n}\\n.standard-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {\\n background-color: #607d8b;\\n}\\n.standard-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(96, 125, 139, 0.54);\\n}\\n.standard-theme .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {\\n background-color: #607d8b;\\n}\\n.standard-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {\\n background-color: #f44336;\\n}\\n.standard-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(244, 67, 54, 0.54);\\n}\\n.standard-theme .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {\\n background-color: #f44336;\\n}\\n.standard-theme .mat-slide-toggle:not(.mat-checked) .mat-ripple-element {\\n background-color: black;\\n}\\n.standard-theme .mat-slide-toggle-thumb {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n background-color: #fafafa;\\n}\\n.standard-theme .mat-slide-toggle-bar {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.standard-theme .mat-primary .mat-slider-track-fill,\\n.standard-theme .mat-primary .mat-slider-thumb,\\n.standard-theme .mat-primary .mat-slider-thumb-label {\\n background-color: #607d8b;\\n}\\n.standard-theme .mat-primary .mat-slider-thumb-label-text {\\n color: white;\\n}\\n.standard-theme .mat-accent .mat-slider-track-fill,\\n.standard-theme .mat-accent .mat-slider-thumb,\\n.standard-theme .mat-accent .mat-slider-thumb-label {\\n background-color: #448aff;\\n}\\n.standard-theme .mat-accent .mat-slider-thumb-label-text {\\n color: white;\\n}\\n.standard-theme .mat-warn .mat-slider-track-fill,\\n.standard-theme .mat-warn .mat-slider-thumb,\\n.standard-theme .mat-warn .mat-slider-thumb-label {\\n background-color: #f44336;\\n}\\n.standard-theme .mat-warn .mat-slider-thumb-label-text {\\n color: white;\\n}\\n.standard-theme .mat-slider-focus-ring {\\n background-color: rgba(68, 138, 255, 0.2);\\n}\\n.standard-theme .mat-slider:hover .mat-slider-track-background,\\n.standard-theme .cdk-focused .mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-slider-disabled .mat-slider-track-background,\\n.standard-theme .mat-slider-disabled .mat-slider-track-fill,\\n.standard-theme .mat-slider-disabled .mat-slider-thumb {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.standard-theme .mat-slider-disabled:hover .mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.standard-theme .mat-slider-min-value .mat-slider-focus-ring {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,\\n.standard-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,\\n.standard-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.26);\\n background-color: transparent;\\n}\\n.standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb, .standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb, .standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.26);\\n}\\n.standard-theme .mat-slider-has-ticks .mat-slider-wrapper::after {\\n border-color: rgba(0, 0, 0, 0.7);\\n}\\n.standard-theme .mat-slider-horizontal .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to right, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n background-image: -moz-repeating-linear-gradient(0.0001deg, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n}\\n.standard-theme .mat-slider-vertical .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to bottom, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n}\\n.standard-theme .mat-step-header.cdk-keyboard-focused, .standard-theme .mat-step-header.cdk-program-focused, .standard-theme .mat-step-header:hover {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n@media (hover: none) {\\n .standard-theme .mat-step-header:hover {\\n background: none;\\n }\\n}\\n.standard-theme .mat-step-header .mat-step-label,\\n.standard-theme .mat-step-header .mat-step-optional {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.standard-theme .mat-step-header .mat-step-icon {\\n background-color: rgba(0, 0, 0, 0.54);\\n color: white;\\n}\\n.standard-theme .mat-step-header .mat-step-icon-selected,\\n.standard-theme .mat-step-header .mat-step-icon-state-done,\\n.standard-theme .mat-step-header .mat-step-icon-state-edit {\\n background-color: #607d8b;\\n color: white;\\n}\\n.standard-theme .mat-step-header .mat-step-icon-state-error {\\n background-color: transparent;\\n color: #f44336;\\n}\\n.standard-theme .mat-step-header .mat-step-label.mat-step-label-active {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-step-header .mat-step-label.mat-step-label-error {\\n color: #f44336;\\n}\\n.standard-theme .mat-stepper-horizontal, .standard-theme .mat-stepper-vertical {\\n background-color: white;\\n}\\n.standard-theme .mat-stepper-vertical-line::before {\\n border-left-color: rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-horizontal-stepper-header::before,\\n.standard-theme .mat-horizontal-stepper-header::after,\\n.standard-theme .mat-stepper-horizontal-line {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-sort-header-arrow {\\n color: #757575;\\n}\\n.standard-theme .mat-tab-nav-bar,\\n.standard-theme .mat-tab-header {\\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-tab-group-inverted-header .mat-tab-nav-bar,\\n.standard-theme .mat-tab-group-inverted-header .mat-tab-header {\\n border-top: 1px solid rgba(0, 0, 0, 0.12);\\n border-bottom: none;\\n}\\n.standard-theme .mat-tab-label, .standard-theme .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.standard-theme .mat-tab-group[class*=mat-background-] .mat-tab-header,\\n.standard-theme .mat-tab-nav-bar[class*=mat-background-] {\\n border-bottom: none;\\n border-top: none;\\n}\\n.standard-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(207, 216, 220, 0.3);\\n}\\n.standard-theme .mat-tab-group.mat-primary .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-primary .mat-ink-bar {\\n background-color: #607d8b;\\n}\\n.standard-theme .mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar {\\n background-color: white;\\n}\\n.standard-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(130, 177, 255, 0.3);\\n}\\n.standard-theme .mat-tab-group.mat-accent .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-accent .mat-ink-bar {\\n background-color: #448aff;\\n}\\n.standard-theme .mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar {\\n background-color: white;\\n}\\n.standard-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 205, 210, 0.3);\\n}\\n.standard-theme .mat-tab-group.mat-warn .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-warn .mat-ink-bar {\\n background-color: #f44336;\\n}\\n.standard-theme .mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar {\\n background-color: white;\\n}\\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(207, 216, 220, 0.3);\\n}\\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-header, .standard-theme .mat-tab-group.mat-background-primary .mat-tab-links, .standard-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-links, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination {\\n background-color: #607d8b;\\n}\\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-label, .standard-theme .mat-tab-group.mat-background-primary .mat-tab-link, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link {\\n color: white;\\n}\\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.4);\\n}\\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.4);\\n}\\n.standard-theme .mat-tab-group.mat-background-primary .mat-ripple-element, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(130, 177, 255, 0.3);\\n}\\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-header, .standard-theme .mat-tab-group.mat-background-accent .mat-tab-links, .standard-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-links, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination {\\n background-color: #448aff;\\n}\\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-label, .standard-theme .mat-tab-group.mat-background-accent .mat-tab-link, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link {\\n color: white;\\n}\\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.4);\\n}\\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.4);\\n}\\n.standard-theme .mat-tab-group.mat-background-accent .mat-ripple-element, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 205, 210, 0.3);\\n}\\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-header, .standard-theme .mat-tab-group.mat-background-warn .mat-tab-links, .standard-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-links, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination {\\n background-color: #f44336;\\n}\\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-label, .standard-theme .mat-tab-group.mat-background-warn .mat-tab-link, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link {\\n color: white;\\n}\\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.4);\\n}\\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.4);\\n}\\n.standard-theme .mat-tab-group.mat-background-warn .mat-ripple-element, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.standard-theme .mat-toolbar {\\n background: whitesmoke;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-toolbar.mat-primary {\\n background: #607d8b;\\n color: white;\\n}\\n.standard-theme .mat-toolbar.mat-accent {\\n background: #448aff;\\n color: white;\\n}\\n.standard-theme .mat-toolbar.mat-warn {\\n background: #f44336;\\n color: white;\\n}\\n.standard-theme .mat-toolbar .mat-form-field-underline,\\n.standard-theme .mat-toolbar .mat-form-field-ripple,\\n.standard-theme .mat-toolbar .mat-focused .mat-form-field-ripple {\\n background-color: currentColor;\\n}\\n.standard-theme .mat-toolbar .mat-form-field-label,\\n.standard-theme .mat-toolbar .mat-focused .mat-form-field-label,\\n.standard-theme .mat-toolbar .mat-select-value,\\n.standard-theme .mat-toolbar .mat-select-arrow,\\n.standard-theme .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow {\\n color: inherit;\\n}\\n.standard-theme .mat-toolbar .mat-input-element {\\n caret-color: currentColor;\\n}\\n.standard-theme .mat-tooltip {\\n background: rgba(97, 97, 97, 0.9);\\n}\\n.standard-theme .mat-tree {\\n background: white;\\n}\\n.standard-theme .mat-tree-node,\\n.standard-theme .mat-nested-tree-node {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.standard-theme .mat-snack-bar-container {\\n color: rgba(255, 255, 255, 0.7);\\n background: #323232;\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.standard-theme .mat-simple-snackbar-action {\\n color: #448aff;\\n}\\n.standard-theme h1 {\\n color: #607d8b;\\n}\\n.green-theme .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.green-theme .mat-option {\\n color: white;\\n}\\n.green-theme .mat-option:hover:not(.mat-option-disabled), .green-theme .mat-option:focus:not(.mat-option-disabled) {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n.green-theme .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n.green-theme .mat-option.mat-active {\\n background: rgba(255, 255, 255, 0.04);\\n color: white;\\n}\\n.green-theme .mat-option.mat-option-disabled {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #8bc34a;\\n}\\n.green-theme .mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #4caf50;\\n}\\n.green-theme .mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #4caf50;\\n}\\n.green-theme .mat-optgroup-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-optgroup-disabled .mat-optgroup-label {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-pseudo-checkbox {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-pseudo-checkbox::after {\\n color: #303030;\\n}\\n.green-theme .mat-pseudo-checkbox-disabled {\\n color: #686868;\\n}\\n.green-theme .mat-primary .mat-pseudo-checkbox-checked,\\n.green-theme .mat-primary .mat-pseudo-checkbox-indeterminate {\\n background: #8bc34a;\\n}\\n.green-theme .mat-pseudo-checkbox-checked,\\n.green-theme .mat-pseudo-checkbox-indeterminate,\\n.green-theme .mat-accent .mat-pseudo-checkbox-checked,\\n.green-theme .mat-accent .mat-pseudo-checkbox-indeterminate {\\n background: #4caf50;\\n}\\n.green-theme .mat-warn .mat-pseudo-checkbox-checked,\\n.green-theme .mat-warn .mat-pseudo-checkbox-indeterminate {\\n background: #4caf50;\\n}\\n.green-theme .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,\\n.green-theme .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {\\n background: #686868;\\n}\\n.green-theme .mat-elevation-z0 {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z1 {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z2 {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z3 {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z4 {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z5 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z6 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z7 {\\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z8 {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z9 {\\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z10 {\\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z11 {\\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z12 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z13 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z14 {\\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z15 {\\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z16 {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z17 {\\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z18 {\\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z19 {\\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z20 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z21 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z22 {\\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z23 {\\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-elevation-z24 {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-app-background, .green-theme.mat-app-background {\\n background-color: #303030;\\n color: white;\\n}\\n.mat-theme-loaded-marker {\\n display: none;\\n}\\n.green-theme .mat-autocomplete-panel {\\n background: #424242;\\n color: white;\\n}\\n.green-theme .mat-autocomplete-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {\\n background: #424242;\\n}\\n.green-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {\\n color: white;\\n}\\n.green-theme .mat-badge-content {\\n color: rgba(0, 0, 0, 0.87);\\n background: #8bc34a;\\n}\\n@media (-ms-high-contrast: active) {\\n .green-theme .mat-badge-content {\\n outline: solid 1px;\\n border-radius: 0;\\n }\\n}\\n.green-theme .mat-badge-accent .mat-badge-content {\\n background: #4caf50;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-badge-warn .mat-badge-content {\\n color: rgba(0, 0, 0, 0.87);\\n background: #4caf50;\\n}\\n.green-theme .mat-badge {\\n position: relative;\\n}\\n.green-theme .mat-badge-hidden .mat-badge-content {\\n display: none;\\n}\\n.green-theme .mat-badge-disabled .mat-badge-content {\\n background: #6e6e6e;\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-badge-content {\\n position: absolute;\\n text-align: center;\\n display: inline-block;\\n border-radius: 50%;\\n transition: transform 200ms ease-in-out;\\n transform: scale(0.6);\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n pointer-events: none;\\n}\\n.green-theme .ng-animate-disabled .mat-badge-content,\\n.green-theme .mat-badge-content._mat-animation-noopable {\\n transition: none;\\n}\\n.green-theme .mat-badge-content.mat-badge-active {\\n transform: none;\\n}\\n.green-theme .mat-badge-small .mat-badge-content {\\n width: 16px;\\n height: 16px;\\n line-height: 16px;\\n}\\n.green-theme .mat-badge-small.mat-badge-above .mat-badge-content {\\n top: -8px;\\n}\\n.green-theme .mat-badge-small.mat-badge-below .mat-badge-content {\\n bottom: -8px;\\n}\\n.green-theme .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: -16px;\\n}\\n[dir=rtl] .green-theme .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -16px;\\n}\\n.green-theme .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: -16px;\\n}\\n[dir=rtl] .green-theme .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -16px;\\n}\\n.green-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -8px;\\n}\\n[dir=rtl] .green-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -8px;\\n}\\n.green-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -8px;\\n}\\n[dir=rtl] .green-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -8px;\\n}\\n.green-theme .mat-badge-medium .mat-badge-content {\\n width: 22px;\\n height: 22px;\\n line-height: 22px;\\n}\\n.green-theme .mat-badge-medium.mat-badge-above .mat-badge-content {\\n top: -11px;\\n}\\n.green-theme .mat-badge-medium.mat-badge-below .mat-badge-content {\\n bottom: -11px;\\n}\\n.green-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: -22px;\\n}\\n[dir=rtl] .green-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -22px;\\n}\\n.green-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: -22px;\\n}\\n[dir=rtl] .green-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -22px;\\n}\\n.green-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -11px;\\n}\\n[dir=rtl] .green-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -11px;\\n}\\n.green-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -11px;\\n}\\n[dir=rtl] .green-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -11px;\\n}\\n.green-theme .mat-badge-large .mat-badge-content {\\n width: 28px;\\n height: 28px;\\n line-height: 28px;\\n}\\n.green-theme .mat-badge-large.mat-badge-above .mat-badge-content {\\n top: -14px;\\n}\\n.green-theme .mat-badge-large.mat-badge-below .mat-badge-content {\\n bottom: -14px;\\n}\\n.green-theme .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: -28px;\\n}\\n[dir=rtl] .green-theme .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -28px;\\n}\\n.green-theme .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: -28px;\\n}\\n[dir=rtl] .green-theme .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -28px;\\n}\\n.green-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -14px;\\n}\\n[dir=rtl] .green-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -14px;\\n}\\n.green-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -14px;\\n}\\n[dir=rtl] .green-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -14px;\\n}\\n.green-theme .mat-bottom-sheet-container {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n background: #424242;\\n color: white;\\n}\\n.green-theme .mat-button, .green-theme .mat-icon-button, .green-theme .mat-stroked-button {\\n color: inherit;\\n background: transparent;\\n}\\n.green-theme .mat-button.mat-primary, .green-theme .mat-icon-button.mat-primary, .green-theme .mat-stroked-button.mat-primary {\\n color: #8bc34a;\\n}\\n.green-theme .mat-button.mat-accent, .green-theme .mat-icon-button.mat-accent, .green-theme .mat-stroked-button.mat-accent {\\n color: #4caf50;\\n}\\n.green-theme .mat-button.mat-warn, .green-theme .mat-icon-button.mat-warn, .green-theme .mat-stroked-button.mat-warn {\\n color: #4caf50;\\n}\\n.green-theme .mat-button.mat-primary[disabled], .green-theme .mat-button.mat-accent[disabled], .green-theme .mat-button.mat-warn[disabled], .green-theme .mat-button[disabled][disabled], .green-theme .mat-icon-button.mat-primary[disabled], .green-theme .mat-icon-button.mat-accent[disabled], .green-theme .mat-icon-button.mat-warn[disabled], .green-theme .mat-icon-button[disabled][disabled], .green-theme .mat-stroked-button.mat-primary[disabled], .green-theme .mat-stroked-button.mat-accent[disabled], .green-theme .mat-stroked-button.mat-warn[disabled], .green-theme .mat-stroked-button[disabled][disabled] {\\n color: rgba(255, 255, 255, 0.3);\\n}\\n.green-theme .mat-button.mat-primary .mat-button-focus-overlay, .green-theme .mat-icon-button.mat-primary .mat-button-focus-overlay, .green-theme .mat-stroked-button.mat-primary .mat-button-focus-overlay {\\n background-color: #8bc34a;\\n}\\n.green-theme .mat-button.mat-accent .mat-button-focus-overlay, .green-theme .mat-icon-button.mat-accent .mat-button-focus-overlay, .green-theme .mat-stroked-button.mat-accent .mat-button-focus-overlay {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-button.mat-warn .mat-button-focus-overlay, .green-theme .mat-icon-button.mat-warn .mat-button-focus-overlay, .green-theme .mat-stroked-button.mat-warn .mat-button-focus-overlay {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-button[disabled] .mat-button-focus-overlay, .green-theme .mat-icon-button[disabled] .mat-button-focus-overlay, .green-theme .mat-stroked-button[disabled] .mat-button-focus-overlay {\\n background-color: transparent;\\n}\\n.green-theme .mat-button .mat-ripple-element, .green-theme .mat-icon-button .mat-ripple-element, .green-theme .mat-stroked-button .mat-ripple-element {\\n opacity: 0.1;\\n background-color: currentColor;\\n}\\n.green-theme .mat-button-focus-overlay {\\n background: white;\\n}\\n.green-theme .mat-stroked-button:not([disabled]) {\\n border-color: rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-flat-button, .green-theme .mat-raised-button, .green-theme .mat-fab, .green-theme .mat-mini-fab {\\n color: white;\\n background-color: #424242;\\n}\\n.green-theme .mat-flat-button.mat-primary, .green-theme .mat-raised-button.mat-primary, .green-theme .mat-fab.mat-primary, .green-theme .mat-mini-fab.mat-primary {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-flat-button.mat-accent, .green-theme .mat-raised-button.mat-accent, .green-theme .mat-fab.mat-accent, .green-theme .mat-mini-fab.mat-accent {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-flat-button.mat-warn, .green-theme .mat-raised-button.mat-warn, .green-theme .mat-fab.mat-warn, .green-theme .mat-mini-fab.mat-warn {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-flat-button.mat-primary[disabled], .green-theme .mat-flat-button.mat-accent[disabled], .green-theme .mat-flat-button.mat-warn[disabled], .green-theme .mat-flat-button[disabled][disabled], .green-theme .mat-raised-button.mat-primary[disabled], .green-theme .mat-raised-button.mat-accent[disabled], .green-theme .mat-raised-button.mat-warn[disabled], .green-theme .mat-raised-button[disabled][disabled], .green-theme .mat-fab.mat-primary[disabled], .green-theme .mat-fab.mat-accent[disabled], .green-theme .mat-fab.mat-warn[disabled], .green-theme .mat-fab[disabled][disabled], .green-theme .mat-mini-fab.mat-primary[disabled], .green-theme .mat-mini-fab.mat-accent[disabled], .green-theme .mat-mini-fab.mat-warn[disabled], .green-theme .mat-mini-fab[disabled][disabled] {\\n color: rgba(255, 255, 255, 0.3);\\n}\\n.green-theme .mat-flat-button.mat-primary, .green-theme .mat-raised-button.mat-primary, .green-theme .mat-fab.mat-primary, .green-theme .mat-mini-fab.mat-primary {\\n background-color: #8bc34a;\\n}\\n.green-theme .mat-flat-button.mat-accent, .green-theme .mat-raised-button.mat-accent, .green-theme .mat-fab.mat-accent, .green-theme .mat-mini-fab.mat-accent {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-flat-button.mat-warn, .green-theme .mat-raised-button.mat-warn, .green-theme .mat-fab.mat-warn, .green-theme .mat-mini-fab.mat-warn {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-flat-button.mat-primary[disabled], .green-theme .mat-flat-button.mat-accent[disabled], .green-theme .mat-flat-button.mat-warn[disabled], .green-theme .mat-flat-button[disabled][disabled], .green-theme .mat-raised-button.mat-primary[disabled], .green-theme .mat-raised-button.mat-accent[disabled], .green-theme .mat-raised-button.mat-warn[disabled], .green-theme .mat-raised-button[disabled][disabled], .green-theme .mat-fab.mat-primary[disabled], .green-theme .mat-fab.mat-accent[disabled], .green-theme .mat-fab.mat-warn[disabled], .green-theme .mat-fab[disabled][disabled], .green-theme .mat-mini-fab.mat-primary[disabled], .green-theme .mat-mini-fab.mat-accent[disabled], .green-theme .mat-mini-fab.mat-warn[disabled], .green-theme .mat-mini-fab[disabled][disabled] {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-flat-button.mat-primary .mat-ripple-element, .green-theme .mat-raised-button.mat-primary .mat-ripple-element, .green-theme .mat-fab.mat-primary .mat-ripple-element, .green-theme .mat-mini-fab.mat-primary .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n.green-theme .mat-flat-button.mat-accent .mat-ripple-element, .green-theme .mat-raised-button.mat-accent .mat-ripple-element, .green-theme .mat-fab.mat-accent .mat-ripple-element, .green-theme .mat-mini-fab.mat-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n.green-theme .mat-flat-button.mat-warn .mat-ripple-element, .green-theme .mat-raised-button.mat-warn .mat-ripple-element, .green-theme .mat-fab.mat-warn .mat-ripple-element, .green-theme .mat-mini-fab.mat-warn .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n.green-theme .mat-stroked-button:not([class*=mat-elevation-z]), .green-theme .mat-flat-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-raised-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-raised-button[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-fab:not([class*=mat-elevation-z]), .green-theme .mat-mini-fab:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-fab:not([disabled]):active:not([class*=mat-elevation-z]), .green-theme .mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-fab[disabled]:not([class*=mat-elevation-z]), .green-theme .mat-mini-fab[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-button-toggle-standalone,\\n.green-theme .mat-button-toggle-group {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.green-theme .mat-button-toggle-group-appearance-standard {\\n box-shadow: none;\\n}\\n.green-theme .mat-button-toggle {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-button-toggle .mat-button-toggle-focus-overlay {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-button-toggle-appearance-standard {\\n color: white;\\n background: #424242;\\n}\\n.green-theme .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {\\n background-color: white;\\n}\\n.green-theme .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.green-theme [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: none;\\n border-top: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-button-toggle-checked {\\n background-color: #212121;\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-button-toggle-checked.mat-button-toggle-appearance-standard {\\n color: white;\\n}\\n.green-theme .mat-button-toggle-disabled {\\n color: rgba(255, 255, 255, 0.3);\\n background-color: black;\\n}\\n.green-theme .mat-button-toggle-disabled.mat-button-toggle-appearance-standard {\\n background: #424242;\\n}\\n.green-theme .mat-button-toggle-disabled.mat-button-toggle-checked {\\n background-color: #424242;\\n}\\n.green-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.green-theme .mat-button-toggle-group-appearance-standard {\\n border: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-card {\\n background: #424242;\\n color: white;\\n}\\n.green-theme .mat-card:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-card.mat-card-flat:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-card-subtitle {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-checkbox-frame {\\n border-color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-checkbox-checkmark {\\n fill: #303030;\\n}\\n.green-theme .mat-checkbox-checkmark-path {\\n stroke: #303030 !important;\\n}\\n@media (-ms-high-contrast: black-on-white) {\\n .green-theme .mat-checkbox-checkmark-path {\\n stroke: #000 !important;\\n }\\n}\\n.green-theme .mat-checkbox-mixedmark {\\n background-color: #303030;\\n}\\n.green-theme .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .green-theme .mat-checkbox-checked.mat-primary .mat-checkbox-background {\\n background-color: #8bc34a;\\n}\\n.green-theme .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .green-theme .mat-checkbox-checked.mat-accent .mat-checkbox-background {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .green-theme .mat-checkbox-checked.mat-warn .mat-checkbox-background {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .green-theme .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {\\n background-color: #686868;\\n}\\n.green-theme .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {\\n border-color: #686868;\\n}\\n.green-theme .mat-checkbox-disabled .mat-checkbox-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n@media (-ms-high-contrast: active) {\\n .green-theme .mat-checkbox-disabled {\\n opacity: 0.5;\\n }\\n}\\n@media (-ms-high-contrast: active) {\\n .green-theme .mat-checkbox-background {\\n background: none;\\n }\\n}\\n.green-theme .mat-checkbox .mat-ripple-element {\\n background-color: white;\\n}\\n.green-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,\\n.green-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {\\n background: #8bc34a;\\n}\\n.green-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,\\n.green-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {\\n background: #4caf50;\\n}\\n.green-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,\\n.green-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {\\n background: #4caf50;\\n}\\n.green-theme .mat-chip.mat-standard-chip {\\n background-color: #616161;\\n color: white;\\n}\\n.green-theme .mat-chip.mat-standard-chip .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n.green-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {\\n opacity: 0.54;\\n}\\n.green-theme .mat-chip.mat-standard-chip.mat-chip-disabled {\\n opacity: 0.4;\\n}\\n.green-theme .mat-chip.mat-standard-chip::after {\\n background: white;\\n}\\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {\\n background-color: #8bc34a;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {\\n background: rgba(0, 0, 0, 0.1);\\n}\\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {\\n background-color: #4caf50;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {\\n background: rgba(0, 0, 0, 0.1);\\n}\\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {\\n background-color: #4caf50;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {\\n background: rgba(0, 0, 0, 0.1);\\n}\\n.green-theme .mat-table {\\n background: #424242;\\n}\\n.green-theme .mat-table thead, .green-theme .mat-table tbody, .green-theme .mat-table tfoot,\\n.green-theme mat-header-row, .green-theme mat-row, .green-theme mat-footer-row,\\n.green-theme [mat-header-row], .green-theme [mat-row], .green-theme [mat-footer-row],\\n.green-theme .mat-table-sticky {\\n background: inherit;\\n}\\n.green-theme mat-row, .green-theme mat-header-row, .green-theme mat-footer-row,\\n.green-theme th.mat-header-cell, .green-theme td.mat-cell, .green-theme td.mat-footer-cell {\\n border-bottom-color: rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-header-cell {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-cell, .green-theme .mat-footer-cell {\\n color: white;\\n}\\n.green-theme .mat-calendar-arrow {\\n border-top-color: white;\\n}\\n.green-theme .mat-datepicker-toggle,\\n.green-theme .mat-datepicker-content .mat-calendar-next-button,\\n.green-theme .mat-datepicker-content .mat-calendar-previous-button {\\n color: white;\\n}\\n.green-theme .mat-calendar-table-header {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-calendar-table-header-divider::after {\\n background: rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-calendar-body-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-calendar-body-cell-content {\\n color: white;\\n border-color: transparent;\\n}\\n.green-theme .mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.green-theme .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.green-theme .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n background-color: rgba(255, 255, 255, 0.04);\\n}\\n.green-theme .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(255, 255, 255, 0.3);\\n}\\n.green-theme .mat-calendar-body-selected {\\n background-color: #8bc34a;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(139, 195, 74, 0.4);\\n}\\n.green-theme .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-datepicker-content {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n background-color: #424242;\\n color: white;\\n}\\n.green-theme .mat-datepicker-content.mat-accent .mat-calendar-body-selected {\\n background-color: #4caf50;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(76, 175, 80, 0.4);\\n}\\n.green-theme .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-datepicker-content.mat-warn .mat-calendar-body-selected {\\n background-color: #4caf50;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(76, 175, 80, 0.4);\\n}\\n.green-theme .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-datepicker-content-touch {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-datepicker-toggle-active {\\n color: #8bc34a;\\n}\\n.green-theme .mat-datepicker-toggle-active.mat-accent {\\n color: #4caf50;\\n}\\n.green-theme .mat-datepicker-toggle-active.mat-warn {\\n color: #4caf50;\\n}\\n.green-theme .mat-dialog-container {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n background: #424242;\\n color: white;\\n}\\n.green-theme .mat-divider {\\n border-top-color: rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-divider-vertical {\\n border-right-color: rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-expansion-panel {\\n background: #424242;\\n color: white;\\n}\\n.green-theme .mat-expansion-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-action-row {\\n border-top-color: rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]), .green-theme .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]), .green-theme .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]) {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n@media (hover: none) {\\n .green-theme .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover {\\n background: #424242;\\n }\\n}\\n.green-theme .mat-expansion-panel-header-title {\\n color: white;\\n}\\n.green-theme .mat-expansion-panel-header-description,\\n.green-theme .mat-expansion-indicator::after {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-expansion-panel-header[aria-disabled=true] {\\n color: rgba(255, 255, 255, 0.3);\\n}\\n.green-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,\\n.green-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description {\\n color: inherit;\\n}\\n.green-theme .mat-form-field-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-hint {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-form-field.mat-focused .mat-form-field-label {\\n color: #8bc34a;\\n}\\n.green-theme .mat-form-field.mat-focused .mat-form-field-label.mat-accent {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field.mat-focused .mat-form-field-label.mat-warn {\\n color: #4caf50;\\n}\\n.green-theme .mat-focused .mat-form-field-required-marker {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field-ripple {\\n background-color: white;\\n}\\n.green-theme .mat-form-field.mat-focused .mat-form-field-ripple {\\n background-color: #8bc34a;\\n}\\n.green-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {\\n color: #8bc34a;\\n}\\n.green-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,\\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,\\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-error {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field-appearance-legacy .mat-form-field-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-form-field-appearance-legacy .mat-hint {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-form-field-appearance-legacy .mat-form-field-underline {\\n background-color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0.7) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n.green-theme .mat-form-field-appearance-standard .mat-form-field-underline {\\n background-color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0.7) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n.green-theme .mat-form-field-appearance-fill .mat-form-field-flex {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.green-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {\\n background-color: rgba(255, 255, 255, 0.05);\\n}\\n.green-theme .mat-form-field-appearance-fill .mat-form-field-underline::before {\\n background-color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {\\n background-color: transparent;\\n}\\n.green-theme .mat-form-field-appearance-outline .mat-form-field-outline {\\n color: rgba(255, 255, 255, 0.3);\\n}\\n.green-theme .mat-form-field-appearance-outline .mat-form-field-outline-thick {\\n color: white;\\n}\\n.green-theme .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {\\n color: #8bc34a;\\n}\\n.green-theme .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {\\n color: rgba(255, 255, 255, 0.15);\\n}\\n.green-theme .mat-icon.mat-primary {\\n color: #8bc34a;\\n}\\n.green-theme .mat-icon.mat-accent {\\n color: #4caf50;\\n}\\n.green-theme .mat-icon.mat-warn {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field-type-mat-native-select .mat-form-field-infix::after {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-input-element:disabled,\\n.green-theme .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-input-element {\\n caret-color: #8bc34a;\\n}\\n.green-theme .mat-input-element::-webkit-input-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-input-element::-moz-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-input-element::-ms-input-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-input-element::placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-input-element::-moz-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-input-element::-webkit-input-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-input-element:-ms-input-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-input-element option {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-input-element option:disabled {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.green-theme .mat-accent .mat-input-element {\\n caret-color: #4caf50;\\n}\\n.green-theme .mat-warn .mat-input-element,\\n.green-theme .mat-form-field-invalid .mat-input-element {\\n caret-color: #4caf50;\\n}\\n.green-theme .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {\\n color: #4caf50;\\n}\\n.green-theme .mat-list-base .mat-list-item {\\n color: white;\\n}\\n.green-theme .mat-list-base .mat-list-option {\\n color: white;\\n}\\n.green-theme .mat-list-base .mat-subheader {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-list-item-disabled {\\n background-color: black;\\n}\\n.green-theme .mat-list-option:hover, .green-theme .mat-list-option:focus,\\n.green-theme .mat-nav-list .mat-list-item:hover,\\n.green-theme .mat-nav-list .mat-list-item:focus,\\n.green-theme .mat-action-list .mat-list-item:hover,\\n.green-theme .mat-action-list .mat-list-item:focus {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n.green-theme .mat-menu-panel {\\n background: #424242;\\n}\\n.green-theme .mat-menu-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-menu-item {\\n background: transparent;\\n color: white;\\n}\\n.green-theme .mat-menu-item[disabled], .green-theme .mat-menu-item[disabled]::after {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-menu-item .mat-icon-no-color,\\n.green-theme .mat-menu-item-submenu-trigger::after {\\n color: white;\\n}\\n.green-theme .mat-menu-item:hover:not([disabled]),\\n.green-theme .mat-menu-item.cdk-program-focused:not([disabled]),\\n.green-theme .mat-menu-item.cdk-keyboard-focused:not([disabled]),\\n.green-theme .mat-menu-item-highlighted:not([disabled]) {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n.green-theme .mat-paginator {\\n background: #424242;\\n}\\n.green-theme .mat-paginator,\\n.green-theme .mat-paginator-page-size .mat-select-trigger {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-paginator-decrement,\\n.green-theme .mat-paginator-increment {\\n border-top: 2px solid white;\\n border-right: 2px solid white;\\n}\\n.green-theme .mat-paginator-first,\\n.green-theme .mat-paginator-last {\\n border-top: 2px solid white;\\n}\\n.green-theme .mat-icon-button[disabled] .mat-paginator-decrement,\\n.green-theme .mat-icon-button[disabled] .mat-paginator-increment,\\n.green-theme .mat-icon-button[disabled] .mat-paginator-first,\\n.green-theme .mat-icon-button[disabled] .mat-paginator-last {\\n border-color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-progress-bar-background {\\n fill: #dcedc8;\\n}\\n.green-theme .mat-progress-bar-buffer {\\n background-color: #dcedc8;\\n}\\n.green-theme .mat-progress-bar-fill::after {\\n background-color: #8bc34a;\\n}\\n.green-theme .mat-progress-bar.mat-accent .mat-progress-bar-background {\\n fill: #c8e6c9;\\n}\\n.green-theme .mat-progress-bar.mat-accent .mat-progress-bar-buffer {\\n background-color: #c8e6c9;\\n}\\n.green-theme .mat-progress-bar.mat-accent .mat-progress-bar-fill::after {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-progress-bar.mat-warn .mat-progress-bar-background {\\n fill: #c8e6c9;\\n}\\n.green-theme .mat-progress-bar.mat-warn .mat-progress-bar-buffer {\\n background-color: #c8e6c9;\\n}\\n.green-theme .mat-progress-bar.mat-warn .mat-progress-bar-fill::after {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-progress-spinner circle, .green-theme .mat-spinner circle {\\n stroke: #8bc34a;\\n}\\n.green-theme .mat-progress-spinner.mat-accent circle, .green-theme .mat-spinner.mat-accent circle {\\n stroke: #4caf50;\\n}\\n.green-theme .mat-progress-spinner.mat-warn circle, .green-theme .mat-spinner.mat-warn circle {\\n stroke: #4caf50;\\n}\\n.green-theme .mat-radio-outer-circle {\\n border-color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #8bc34a;\\n}\\n.green-theme .mat-radio-button.mat-primary .mat-radio-inner-circle,\\n.green-theme .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .green-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple, .green-theme .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {\\n background-color: #8bc34a;\\n}\\n.green-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #4caf50;\\n}\\n.green-theme .mat-radio-button.mat-accent .mat-radio-inner-circle,\\n.green-theme .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .green-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple, .green-theme .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #4caf50;\\n}\\n.green-theme .mat-radio-button.mat-warn .mat-radio-inner-circle,\\n.green-theme .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .green-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple, .green-theme .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,\\n.green-theme .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {\\n border-color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,\\n.green-theme .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {\\n background-color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-radio-button.mat-radio-disabled .mat-radio-label-content {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-radio-button .mat-ripple-element {\\n background-color: white;\\n}\\n.green-theme .mat-select-value {\\n color: white;\\n}\\n.green-theme .mat-select-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-select-disabled .mat-select-value {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-select-arrow {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-select-panel {\\n background: #424242;\\n}\\n.green-theme .mat-select-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {\\n background: rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-form-field.mat-focused.mat-primary .mat-select-arrow {\\n color: #8bc34a;\\n}\\n.green-theme .mat-form-field.mat-focused.mat-accent .mat-select-arrow {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field.mat-focused.mat-warn .mat-select-arrow {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {\\n color: #4caf50;\\n}\\n.green-theme .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-drawer-container {\\n background-color: #303030;\\n color: white;\\n}\\n.green-theme .mat-drawer {\\n background-color: #424242;\\n color: white;\\n}\\n.green-theme .mat-drawer.mat-drawer-push {\\n background-color: #424242;\\n}\\n.green-theme .mat-drawer:not(.mat-drawer-side) {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-drawer-side {\\n border-right: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-drawer-side.mat-drawer-end {\\n border-left: solid 1px rgba(255, 255, 255, 0.12);\\n border-right: none;\\n}\\n.green-theme [dir=rtl] .mat-drawer-side {\\n border-left: solid 1px rgba(255, 255, 255, 0.12);\\n border-right: none;\\n}\\n.green-theme [dir=rtl] .mat-drawer-side.mat-drawer-end {\\n border-left: none;\\n border-right: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-drawer-backdrop.mat-drawer-shown {\\n background-color: rgba(189, 189, 189, 0.6);\\n}\\n.green-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(76, 175, 80, 0.54);\\n}\\n.green-theme .mat-slide-toggle.mat-checked .mat-ripple-element {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {\\n background-color: #8bc34a;\\n}\\n.green-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(139, 195, 74, 0.54);\\n}\\n.green-theme .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {\\n background-color: #8bc34a;\\n}\\n.green-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(76, 175, 80, 0.54);\\n}\\n.green-theme .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-slide-toggle:not(.mat-checked) .mat-ripple-element {\\n background-color: white;\\n}\\n.green-theme .mat-slide-toggle-thumb {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n background-color: #bdbdbd;\\n}\\n.green-theme .mat-slide-toggle-bar {\\n background-color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-slider-track-background {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n.green-theme .mat-primary .mat-slider-track-fill,\\n.green-theme .mat-primary .mat-slider-thumb,\\n.green-theme .mat-primary .mat-slider-thumb-label {\\n background-color: #8bc34a;\\n}\\n.green-theme .mat-primary .mat-slider-thumb-label-text {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-accent .mat-slider-track-fill,\\n.green-theme .mat-accent .mat-slider-thumb,\\n.green-theme .mat-accent .mat-slider-thumb-label {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-accent .mat-slider-thumb-label-text {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-warn .mat-slider-track-fill,\\n.green-theme .mat-warn .mat-slider-thumb,\\n.green-theme .mat-warn .mat-slider-thumb-label {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-warn .mat-slider-thumb-label-text {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-slider-focus-ring {\\n background-color: rgba(76, 175, 80, 0.2);\\n}\\n.green-theme .mat-slider:hover .mat-slider-track-background,\\n.green-theme .cdk-focused .mat-slider-track-background {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n.green-theme .mat-slider-disabled .mat-slider-track-background,\\n.green-theme .mat-slider-disabled .mat-slider-track-fill,\\n.green-theme .mat-slider-disabled .mat-slider-thumb {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n.green-theme .mat-slider-disabled:hover .mat-slider-track-background {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n.green-theme .mat-slider-min-value .mat-slider-focus-ring {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,\\n.green-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label {\\n background-color: white;\\n}\\n.green-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,\\n.green-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n.green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb {\\n border-color: rgba(255, 255, 255, 0.3);\\n background-color: transparent;\\n}\\n.green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb, .green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb {\\n border-color: rgba(255, 255, 255, 0.3);\\n}\\n.green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb, .green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb {\\n border-color: rgba(255, 255, 255, 0.3);\\n}\\n.green-theme .mat-slider-has-ticks .mat-slider-wrapper::after {\\n border-color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-slider-horizontal .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to right, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\\n background-image: -moz-repeating-linear-gradient(0.0001deg, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\\n}\\n.green-theme .mat-slider-vertical .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to bottom, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\\n}\\n.green-theme .mat-step-header.cdk-keyboard-focused, .green-theme .mat-step-header.cdk-program-focused, .green-theme .mat-step-header:hover {\\n background-color: rgba(255, 255, 255, 0.04);\\n}\\n@media (hover: none) {\\n .green-theme .mat-step-header:hover {\\n background: none;\\n }\\n}\\n.green-theme .mat-step-header .mat-step-label,\\n.green-theme .mat-step-header .mat-step-optional {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.green-theme .mat-step-header .mat-step-icon {\\n background-color: rgba(255, 255, 255, 0.7);\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-step-header .mat-step-icon-selected,\\n.green-theme .mat-step-header .mat-step-icon-state-done,\\n.green-theme .mat-step-header .mat-step-icon-state-edit {\\n background-color: #8bc34a;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-step-header .mat-step-icon-state-error {\\n background-color: transparent;\\n color: #4caf50;\\n}\\n.green-theme .mat-step-header .mat-step-label.mat-step-label-active {\\n color: white;\\n}\\n.green-theme .mat-step-header .mat-step-label.mat-step-label-error {\\n color: #4caf50;\\n}\\n.green-theme .mat-stepper-horizontal, .green-theme .mat-stepper-vertical {\\n background-color: #424242;\\n}\\n.green-theme .mat-stepper-vertical-line::before {\\n border-left-color: rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-horizontal-stepper-header::before,\\n.green-theme .mat-horizontal-stepper-header::after,\\n.green-theme .mat-stepper-horizontal-line {\\n border-top-color: rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-sort-header-arrow {\\n color: #c6c6c6;\\n}\\n.green-theme .mat-tab-nav-bar,\\n.green-theme .mat-tab-header {\\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\\n}\\n.green-theme .mat-tab-group-inverted-header .mat-tab-nav-bar,\\n.green-theme .mat-tab-group-inverted-header .mat-tab-header {\\n border-top: 1px solid rgba(255, 255, 255, 0.12);\\n border-bottom: none;\\n}\\n.green-theme .mat-tab-label, .green-theme .mat-tab-link {\\n color: white;\\n}\\n.green-theme .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n.green-theme .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.5);\\n}\\n.green-theme .mat-tab-group[class*=mat-background-] .mat-tab-header,\\n.green-theme .mat-tab-nav-bar[class*=mat-background-] {\\n border-bottom: none;\\n border-top: none;\\n}\\n.green-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(220, 237, 200, 0.3);\\n}\\n.green-theme .mat-tab-group.mat-primary .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-primary .mat-ink-bar {\\n background-color: #8bc34a;\\n}\\n.green-theme .mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(200, 230, 201, 0.3);\\n}\\n.green-theme .mat-tab-group.mat-accent .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-accent .mat-ink-bar {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(200, 230, 201, 0.3);\\n}\\n.green-theme .mat-tab-group.mat-warn .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-warn .mat-ink-bar {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(220, 237, 200, 0.3);\\n}\\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-header, .green-theme .mat-tab-group.mat-background-primary .mat-tab-links, .green-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-links, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination {\\n background-color: #8bc34a;\\n}\\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-label, .green-theme .mat-tab-group.mat-background-primary .mat-tab-link, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.4);\\n}\\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.4);\\n}\\n.green-theme .mat-tab-group.mat-background-primary .mat-ripple-element, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(200, 230, 201, 0.3);\\n}\\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-header, .green-theme .mat-tab-group.mat-background-accent .mat-tab-links, .green-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-links, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-label, .green-theme .mat-tab-group.mat-background-accent .mat-tab-link, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.4);\\n}\\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.4);\\n}\\n.green-theme .mat-tab-group.mat-background-accent .mat-ripple-element, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(200, 230, 201, 0.3);\\n}\\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-header, .green-theme .mat-tab-group.mat-background-warn .mat-tab-links, .green-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-links, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination {\\n background-color: #4caf50;\\n}\\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-label, .green-theme .mat-tab-group.mat-background-warn .mat-tab-link, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.4);\\n}\\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.4);\\n}\\n.green-theme .mat-tab-group.mat-background-warn .mat-ripple-element, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-toolbar {\\n background: #212121;\\n color: white;\\n}\\n.green-theme .mat-toolbar.mat-primary {\\n background: #8bc34a;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-toolbar.mat-accent {\\n background: #4caf50;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-toolbar.mat-warn {\\n background: #4caf50;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.green-theme .mat-toolbar .mat-form-field-underline,\\n.green-theme .mat-toolbar .mat-form-field-ripple,\\n.green-theme .mat-toolbar .mat-focused .mat-form-field-ripple {\\n background-color: currentColor;\\n}\\n.green-theme .mat-toolbar .mat-form-field-label,\\n.green-theme .mat-toolbar .mat-focused .mat-form-field-label,\\n.green-theme .mat-toolbar .mat-select-value,\\n.green-theme .mat-toolbar .mat-select-arrow,\\n.green-theme .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow {\\n color: inherit;\\n}\\n.green-theme .mat-toolbar .mat-input-element {\\n caret-color: currentColor;\\n}\\n.green-theme .mat-tooltip {\\n background: rgba(97, 97, 97, 0.9);\\n}\\n.green-theme .mat-tree {\\n background: #424242;\\n}\\n.green-theme .mat-tree-node,\\n.green-theme .mat-nested-tree-node {\\n color: white;\\n}\\n.green-theme .mat-snack-bar-container {\\n color: rgba(0, 0, 0, 0.87);\\n background: #fafafa;\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.green-theme .mat-simple-snackbar-action {\\n color: inherit;\\n}\\n.green-theme h1 {\\n color: #8bc34a;\\n}\\n/* You can add global styles to this file, and also import other style files */\\nhtml, body {\\n height: 100%;\\n}\\nbody {\\n margin: 0;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.flex-spacer {\\n flex: 1 1 auto;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvbWF0ZXJpYWwvX3RoZW1pbmcuc2NzcyIsIi4uL3N0eWxlcy5zY3NzIiwiL2RhdGEvaG9tZS9rbmlzdGVyMC9naXRodWJzL05pZXR6c2NoZUJldGEvbmlldHpzY2hlLWJldGEtYXBwL3NyYy9zdHlsZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwMUNBLGtDQUFBO0FBNmlEQSwyQ0FBQTtBQXdDQSxxQkFBQTtBQXgvQkU7RUFDRSxnQkFyTG9CO0VBc0xwQixlQXZMa0I7RUF3TGxCLGlEQUFBO0FDbjdESjtBRHM3REU7RUFFRSxjQUFBO0FDcDdESjtBRHU3REU7RUFDRSxlQUFBO0FDcDdESjtBRHluREU7RUE5TkUsd0RBQUE7RUFnT0EsZ0JBQUE7QUN0bkRKO0FEeW5ERTtFQW5PRSx3REFBQTtFQXFPQSxnQkFBQTtBQ3RuREo7QUR5bkRFO0VBeE9FLHdEQUFBO0VBME9BLGdCQUFBO0FDdG5ESjtBRHluREU7RUE3T0Usd0RBQUE7RUErT0EsZ0JBQUE7QUN0bkRKO0FENG5ERTtFQXJQRSxxRUFBQTtFQThQQSxnQkFBQTtBQ2hvREo7QURtb0RFO0VBalFFLHFFQUFBO0VBMFFBLGdCQUFBO0FDdm9ESjtBRDBvREU7RUE3UUUsd0RBQUE7QUN6M0NKO0FEMG9ERTtFQWpSRSx3REFBQTtBQ3IzQ0o7QUR5b0RJO0VBQ0UsZ0JBQUE7QUN2b0ROO0FEMm9ERTtFQXpSRSx3REFBQTtBQzkyQ0o7QUQyb0RFO0VBN1JFLDBEQUFBO0VBWUYsdUJBQUE7RUFtUkUsZ0JBQUE7QUN2b0RKO0FEMG9ERTtFQWxTRSx3REFBQTtFQVlGLHVCQUFBO0VBd1JFLGdCQUFBO0FDdG9ESjtBRHlvREU7RUF2U0Usd0RBQUE7RUFZRix3QkFBQTtFQTZSRSxnQkFBQTtBQ3JvREo7QUR3b0RFO0VBNVNFLHdEQUFBO0VBOFNBLGdCQUFB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Qy9oQko7QUQ2Zk07Ozs7O0VBQ0UsMENBQUE7QUN2ZlI7QUQrZkU7RUFDRSx5QkFBQTtBQzdmSjtBRGlnQkU7RUFDRSwwQkFBQTtBQy9mSjtBRGlnQkk7RUFDRSx5QkFBQTtBQy9mTjtBRG9nQkU7RUFDRSxpQ0FBQTtBQ2xnQko7QURxZ0JFO0VBQ0UsZ0NBQUE7QUNuZ0JKO0FEd2dCRTtFQUNFLHFDQUFBO0FDdGdCSjtBRG9lTTs7Ozs7RUFDRSwwQ0FBQTtBQzlkUjtBRHNlRTtFQUNFLHlCQUFBO0FDcGVKO0FEd2VFO0VBQ0UsMEJBQUE7QUN0ZUo7QUR3ZUk7RUFDRSx5QkFBQTtBQ3RlTjtBRDJlRTtFQUNFLGlDQUFBO0FDemVKO0FENGVFO0VBQ0UsZ0NBQUE7QUMxZUo7QUQrZUU7RUFDRSxxQ0FBQTtBQzdlSjtBRG9pQkU7RUFDRSxtQkFBQTtFQUNBLFlBQUE7QUNsaUJKO0FEb2lCSTtFQW5DRixtQkFBQTtFQUNBLDBCQUFBO0FDOWZGO0FEb2lCSTtFQXZDRixtQkFBQTtFQUNBLDBCQUFBO0FDMWZGO0FEb2lCSTtFQTNDRixtQkFBQTtFQUNBLDBCQUFBO0FDdGZGO0FEMGZFOzs7RUFHRSw4QkFBQTtBQ3hmSjtBRDJmRTs7Ozs7RUFLRSxjQUFBO0FDemZKO0FENGZFO0VBQ0UseUJBQUE7QUMxZko7QURvakJFO0VBQ0UsaUNBQUE7QUNsakJKO0FEaXhDRTtFQUNFLG1CQUFBO0FDL3dDSjtBRGt4Q0U7O0VBRUUsWUFBQTtBQ2h4Q0o7QURza0JFO0VBR0UsMEJBQUE7RUFDQSxtQkFBQTtFQTFvSEYsMkhBQUE7QUNxa0dGO0FEMGtCRTtFQUNFLGNBQUE7QUN4a0JKO0FDcCtHRTtFQUFLLGNBQUE7QUR1K0dQO0FDbitHQSw4RUFBQTtBQUdBO0VBQWEsWUFBQTtBRHErR2I7QUNwK0dBO0VBQU8sU0FBQTtFQUFXLGlEQUFBO0FEeStHbEI7QUN2K0dBO0VBQ0UsY0FBQTtBRDArR0YiLCJmaWxlIjoiLi4vc3R5bGVzLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnQgYWxsIHRoZSB0aGVtaW5nIGZ1bmN0aW9uYWxpdHkuXG4vLyBXZSBjYW4gdXNlIHJlbGF0aXZlIGltcG9ydHMgZm9yIGltcG9ydHMgZnJvbSB0aGUgY2RrIGJlY2F1c2Ugd2UgYnVuZGxlIGV2ZXJ5dGhpbmdcbi8vIHVwIGludG8gYSBzaW5nbGUgZmxhdCBzY3NzIGZpbGUgZm9yIG1hdGVyaWFsLlxuLy8gV2Ugd2FudCBvdmVybGF5cyB0byBhbHdheXMgYXBwZWFyIG92ZXIgdXNlciBjb250ZW50LCBzbyBzZXQgYSBiYXNlbGluZVxuLy8gdmVyeSBoaWdoIHotaW5kZXggZm9yIHRoZSBvdmVybGF5IGNvbnRhaW5lciwgd2hpY2ggaXMgd2hlcmUgd2UgY3JlYXRlIHRoZSBuZXdcbi8vIHN0YWNraW5nIGNvbnRleHQgZm9yIGFsbCBvdmVybGF5cy5cbiRjZGstei1pbmRleC1vdmVybGF5LWNvbnRhaW5lcjogMTAwMCAhZGVmYXVsdDtcbiRjZGstei1pbmRleC1vdmVybGF5OiAxMDAwICFkZWZhdWx0O1xuJGNkay16LWluZGV4LW92ZXJsYXktYmFja2Ryb3A6IDEwMDAgIWRlZmF1bHQ7XG5cbi8vIEJhY2tncm91bmQgY29sb3IgZm9yIGFsbCBvZiB0aGUgYmFja2Ryb3BzXG4kY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcC1iYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzIpICFkZWZhdWx0O1xuXG4vLyBEZWZhdWx0IGJhY2tkcm9wIGFuaW1hdGlvbiBpcyBiYXNlZCBvbiB0aGUgTWF0ZXJpYWwgRGVzaWduIHN3aWZ0LWVhc2Utb3V0LlxuJGJhY2tkcm9wLWFuaW1hdGlvbi1kdXJhdGlvbjogNDAwbXMgIWRlZmF1bHQ7XG4kYmFja2Ryb3AtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSkgIWRlZmF1bHQ7XG5cblxuQG1peGluIGNkay1vdmVybGF5KCkge1xuICAuY2RrLW92ZXJsYXktY29udGFpbmVyLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICAgIC8vIERpc2FibGUgZXZlbnRzIGZyb20gYmVpbmcgY2FwdHVyZWQgb24gdGhlIG92ZXJsYXkgY29udGFpbmVyLlxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgLy8gVGhlIGNvbnRhaW5lciBzaG91bGQgYmUgdGhlIHNpemUgb2YgdGhlIHZpZXdwb3J0LlxuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIFRoZSBvdmVybGF5LWNvbnRhaW5lciBpcyBhbiBpbnZpc2libGUgZWxlbWVudCB3aGljaCBjb250YWlucyBhbGwgaW5kaXZpZHVhbCBvdmVybGF5cy5cbiAgLmNkay1vdmVybGF5LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5LWNvbnRhaW5lcjtcblxuICAgICY6ZW1wdHkge1xuICAgICAgLy8gSGlkZSB0aGUgZWxlbWVudCB3aGVuIGl0IGRvZXNuJ3QgaGF2ZSBhbnkgY2hpbGQgbm9kZXMuIFRoaXMgZG9lc24ndFxuICAgICAgLy8gaW5jbHVkZSBvdmVybGF5cyB0aGF0IGhhdmUgYmVlbiBkZXRhY2hlZCwgcmF0aGVyIHRoYW4gZGlzcG9zZWQuXG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdlIHVzZSBhbiBleHRyYSB3cmFwcGVyIGVsZW1lbnQgaW4gb3JkZXIgdG8gdXNlIG1ha2UgdGhlIG92ZXJsYXkgaXRzZWxmIGEgZmxleCBpdGVtLlxuICAvLyBUaGlzIG1ha2VzIGNlbnRlcmluZyB0aGUgb3ZlcmxheSBlYXN5IHdpdGhvdXQgcnVubmluZyBpbnRvIHRoZSBzdWJwaXhlbCByZW5kZXJpbmdcbiAgLy8gcHJvYmxlbXMgdGllZCB0byB1c2luZyBgdHJhbnNmb3JtYCBhbmQgd2l0aG91dCBpbnRlcmZlcmluZyB3aXRoIHRoZSBvdGhlciBwb3NpdGlvblxuICAvLyBzdHJhdGVnaWVzLlxuICAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5O1xuICB9XG5cbiAgLy8gQSBzaW5nbGUgb3ZlcmxheSBwYW5lLlxuICAuY2RrLW92ZXJsYXktcGFuZSB7XG4gICAgLy8gTm90ZTogaXQncyBpbXBvcnRhbnQgZm9yIHRoaXMgb25lIHRvIHN0YXJ0IG9mZiBgYWJzb2x1dGVgLFxuICAgIC8vIGluIG9yZGVyIGZvciB1cyB0byBiZSBhYmxlIHRvIG1lYXN1cmUgaXQgY29ycmVjdGx5LlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5O1xuXG4gICAgLy8gRm9yIGNvbm5lY3RlZC1wb3NpdGlvbiBvdmVybGF5cywgd2Ugc2V0IGBkaXNwbGF5OiBmbGV4YCBpblxuICAgIC8vIG9yZGVyIHRvIGZvcmNlIGBtYXgtd2lkdGhgIGFuZCBgbWF4LWhlaWdodGAgdG8gdGFrZSBlZmZlY3QuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1iYWNrZHJvcCB7XG4gICAgLy8gVE9ETyhqZWxib3Vybik6IHJldXNlIHNpZGVuYXYgZnVsbHNjcmVlbiBtaXhpbi5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuXG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXktYmFja2Ryb3A7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRiYWNrZHJvcC1hbmltYXRpb24tZHVyYXRpb24gJGJhY2tkcm9wLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb247XG4gICAgb3BhY2l0eTogMDtcblxuICAgICYuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAvLyBJbiBoaWdoIGNvbnRyYXN0IG1vZGUgdGhlIHJnYmEgYmFja2dyb3VuZCB3aWxsIGJlY29tZSBzb2xpZCBzbyB3ZSBuZWVkIHRvIGZhbGwgYmFja1xuICAgICAgLy8gdG8gbWFraW5nIGl0IG9wYXF1ZSB1c2luZyBgb3BhY2l0eWAuIE5vdGUgdGhhdCB3ZSBjYW4ndCB1c2UgdGhlIGBjZGstaGlnaC1jb250cmFzdGBcbiAgICAgIC8vIG1peGluLCBiZWNhdXNlIHdlIGNhbid0IG5vcm1hbGl6ZSB0aGUgaW1wb3J0IHBhdGggdG8gdGhlIF9hMTF5LnNjc3MgYm90aCBmb3IgdGhlXG4gICAgICAvLyBzb3VyY2UgYW5kIHdoZW4gdGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkLiBTZWUgIzEwOTA4LlxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wIHtcbiAgICBiYWNrZ3JvdW5kOiAkY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcC1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wIHtcbiAgICAvLyBOb3RlOiBhcyBvZiBGaXJlZm94IDU3LCBoYXZpbmcgdGhlIGJhY2tkcm9wIGJlIGBiYWNrZ3JvdW5kOiBub25lYCB3aWxsIHByZXZlbnQgaXQgZnJvbVxuICAgIC8vIGNhcHR1cmluZyB0aGUgdXNlcidzIG1vdXNlIHNjcm9sbCBldmVudHMuIFNpbmNlIHdlIGFsc28gY2FuJ3QgdXNlIHNvbWV0aGluZyBsaWtlXG4gICAgLy8gYHJnYmEoMCwgMCwgMCwgMClgLCB3ZSB3b3JrIGFyb3VuZCB0aGUgaW5jb25zaXN0ZW5jeSBieSBub3Qgc2V0dGluZyB0aGUgYmFja2dyb3VuZCBhdFxuICAgIC8vIGFsbCBhbmQgdXNpbmcgYG9wYWNpdHlgIHRvIG1ha2UgdGhlIGVsZW1lbnQgdHJhbnNwYXJlbnQuXG4gICAgJiwgJi5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gT3ZlcmxheSBwYXJlbnQgZWxlbWVudCB1c2VkIHdpdGggdGhlIGNvbm5lY3RlZCBwb3NpdGlvbiBzdHJhdGVneS4gVXNlZCB0byBjb25zdHJhaW4gdGhlXG4gIC8vIG92ZXJsYXkgZWxlbWVudCdzIHNpemUgdG8gZml0IHdpdGhpbiB0aGUgdmlld3BvcnQuXG4gIC5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXk7XG5cbiAgICAvLyBXZSB1c2UgYGRpc3BsYXk6IGZsZXhgIG9uIHRoaXMgZWxlbWVudCBleGNsdXNpdmVseSBmb3IgY2VudGVyaW5nIGNvbm5lY3RlZCBvdmVybGF5cy5cbiAgICAvLyBXaGVuICpub3QqIGNlbnRlcmluZywgYSB0b3AvbGVmdC9ib3R0b20vcmlnaHQgd2lsbCBiZSBzZXQgd2hpY2ggb3ZlcnJpZGVzIHRoZSBub3JtYWxcbiAgICAvLyBmbGV4IGxheW91dC5cbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgLy8gV2UgdXNlIHRoZSBgY29sdW1uYCBkaXJlY3Rpb24gaGVyZSB0byBhdm9pZCBzb21lIGZsZXhib3ggaXNzdWVzIGluIEVkZ2VcbiAgICAvLyB3aGVuIHVzaW5nIHRoZSBcImdyb3cgYWZ0ZXIgb3BlblwiIG9wdGlvbnMuXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC8vIEFkZCBzb21lIGRpbWVuc2lvbnMgc28gdGhlIGVsZW1lbnQgaGFzIGFuIGBpbm5lclRleHRgIHdoaWNoIHNvbWUgcGVvcGxlIGRlcGVuZCBvbiBpbiB0ZXN0cy5cbiAgICBtaW4td2lkdGg6IDFweDtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gIH1cblxuICAvLyBVc2VkIHdoZW4gZGlzYWJsaW5nIGdsb2JhbCBzY3JvbGxpbmcuXG4gIC5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG5cbiAgICAvLyBOZWNlc3NhcnkgZm9yIHRoZSBjb250ZW50IG5vdCB0byBsb3NlIGl0cyB3aWR0aC4gTm90ZSB0aGF0IHdlJ3JlIHVzaW5nIDEwMCUsIGluc3RlYWQgb2ZcbiAgICAvLyAxMDB2dywgYmVjYXVzZSAxMDB2dyBpbmNsdWRlcyB0aGUgd2lkdGggcGx1cyB0aGUgc2Nyb2xsYmFyLCB3aGVyZWFzIDEwMCUgaXMgdGhlIHdpZHRoXG4gICAgLy8gdGhhdCB0aGUgZWxlbWVudCBoYWQgYmVmb3JlIHdlIG1hZGUgaXQgYGZpeGVkYC5cbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC8vIE5vdGU6IHRoaXMgd2lsbCBhbHdheXMgYWRkIGEgc2Nyb2xsYmFyIHRvIHdoYXRldmVyIGVsZW1lbnQgaXQgaXMgb24sIHdoaWNoIGNhblxuICAgIC8vIHBvdGVudGlhbGx5IHJlc3VsdCBpbiBkb3VibGUgc2Nyb2xsYmFycy4gSXQgc2hvdWxkbid0IGJlIGFuIGlzc3VlLCBiZWNhdXNlIHdlIHdvbid0XG4gICAgLy8gYmxvY2sgc2Nyb2xsaW5nIG9uIGEgcGFnZSB0aGF0IGRvZXNuJ3QgaGF2ZSBhIHNjcm9sbGJhciBpbiB0aGUgZmlyc3QgcGxhY2UuXG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICB9XG59XG5cbkBtaXhpbiBjZGstYTExeSB7XG4gIC5jZGstdmlzdWFsbHktaGlkZGVuIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuXG4gICAgLy8gQXZvaWQgYnJvd3NlcnMgcmVuZGVyaW5nIHRoZSBmb2N1cyByaW5nIGluIHNvbWUgY2FzZXMuXG4gICAgb3V0bGluZTogMDtcblxuICAgIC8vIEF2b2lkIHNvbWUgY2FzZXMgd2hlcmUgdGhlIGJyb3dzZXIgd2lsbCBzdGlsbCByZW5kZXIgdGhlIG5hdGl2ZSBjb250cm9scyAoc2VlICM5MDQ5KS5cbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICB9XG59XG5cbi8vIEFwcGxpZXMgc3R5bGVzIGZvciB1c2VycyBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuIE5vdGUgdGhhdCB0aGlzIG9ubHkgYXBwbGllc1xuLy8gdG8gTWljcm9zb2Z0IGJyb3dzZXJzLiBDaHJvbWUgY2FuIGJlIGluY2x1ZGVkIGJ5IGNoZWNraW5nIGZvciB0aGUgYGh0bWxbaGNdYFxuLy8gYXR0cmlidXRlLCBob3dldmVyIENocm9tZSBoYW5kbGVzIGhpZ2ggY29udHJhc3QgZGlmZmVyZW50bHkuXG4vL1xuLy8gQHBhcmFtIHRhcmdldCBXaGljaCBraW5kIG9mIGhpZ2ggY29udHJhc3Qgc2V0dGluZyB0byB0YXJnZXQuIERlZmF1bHRzIHRvIGBhY3RpdmVgLCBjYW4gYmVcbi8vICAgIGB3aGl0ZS1vbi1ibGFja2Agb3IgYGJsYWNrLW9uLXdoaXRlYC5cbkBtaXhpbiBjZGstaGlnaC1jb250cmFzdCgkdGFyZ2V0OiBhY3RpdmUpIHtcbiAgQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogJHRhcmdldCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIENvcmUgc3R5bGVzIHRoYXQgZW5hYmxlIG1vbml0b3JpbmcgYXV0b2ZpbGwgc3RhdGUgb2YgdGV4dCBmaWVsZHMuXG5AbWl4aW4gY2RrLXRleHQtZmllbGQge1xuICAvLyBLZXlmcmFtZXMgdGhhdCBhcHBseSBubyBzdHlsZXMsIGJ1dCBhbGxvdyB1cyB0byBtb25pdG9yIHdoZW4gYW4gdGV4dCBmaWVsZCBiZWNvbWVzIGF1dG9maWxsZWRcbiAgLy8gYnkgd2F0Y2hpbmcgZm9yIHRoZSBhbmltYXRpb24gZXZlbnRzIHRoYXQgYXJlIGZpcmVkIHdoZW4gdGhleSBzdGFydC4gTm90ZTogdGhlIC8qISovIGNvbW1lbnQgaXNcbiAgLy8gbmVlZGVkIHRvIHByZXZlbnQgTGliU2FzcyBmcm9tIHN0cmlwcGluZyB0aGUga2V5ZnJhbWVzIG91dC5cbiAgLy8gQmFzZWQgb246IGh0dHBzOi8vbWVkaXVtLmNvbS9AYnJ1bm4vZGV0ZWN0aW5nLWF1dG9maWxsZWQtZmllbGRzLWluLWphdmFzY3JpcHQtYWVkNTk4ZDI1ZGE3XG4gIEBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgey8qISovfVxuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCB7LyohKi99XG5cbiAgLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxsIHtcbiAgICBhbmltYXRpb24tbmFtZTogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQ7XG4gIH1cblxuICAuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCkge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQ7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIHJlc2l6ZSBoYW5kbGUgb24gYXV0b3NpemluZyB0ZXh0YXJlYXMsIGJlY2F1c2Ugd2hhdGV2ZXIgaGVpZ2h0XG4gIC8vIHRoZSB1c2VyIHJlc2l6ZWQgdG8gd2lsbCBiZSBvdmVyd3JpdHRlbiBvbmNlIHRoZXkgc3RhcnQgdHlwaW5nIGFnYWluLlxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUge1xuICAgIHJlc2l6ZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRoaXMgY2xhc3MgaXMgdGVtcG9yYXJpbHkgYXBwbGllZCB0byB0aGUgdGV4dGFyZWEgd2hlbiBpdCBpcyBiZWluZyBtZWFzdXJlZC4gSXQgaXMgaW1tZWRpYXRlbHlcbiAgLy8gcmVtb3ZlZCB3aGVuIG1lYXN1cmluZyBpcyBjb21wbGV0ZS4gV2UgdXNlIGAhaW1wb3J0YW50YCBydWxlcyBoZXJlIHRvIG1ha2Ugc3VyZSB1c2VyLXNwZWNpZmllZFxuICAvLyBydWxlcyBkbyBub3QgaW50ZXJmZXJlIHdpdGggdGhlIG1lYXN1cmVtZW50LlxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nIHtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgLy8gSGF2aW5nIDJweCB0b3AgYW5kIGJvdHRvbSBwYWRkaW5nIHNlZW1zIHRvIGZpeCBhIGJ1ZyB3aGVyZSBDaHJvbWUgZ2V0cyBhbiBpbmNvcnJlY3RcbiAgICAvLyBtZWFzdXJlbWVudC4gV2UganVzdCBoYXZlIHRvIGFjY291bnQgZm9yIGl0IGxhdGVyIGFuZCBzdWJ0cmFjdCBpdCBvZmYgdGhlIGZpbmFsIHJlc3VsdC5cbiAgICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8gVXNlZCB0byBnZW5lcmF0ZSBVSURzIGZvciBrZXlmcmFtZXMgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQgZmllbGQgYXV0b2ZpbGwgc3R5bGVzLlxuJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50OiAwO1xuXG4vLyBNaXhpbiB1c2VkIHRvIGFwcGx5IGN1c3RvbSBiYWNrZ3JvdW5kIGFuZCBmb3JlZ3JvdW5kIGNvbG9ycyB0byBhbiBhdXRvZmlsbGVkIHRleHQgZmllbGQuXG4vLyBCYXNlZCBvbjogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjc4MTU0OS9cbi8vIHJlbW92aW5nLWlucHV0LWJhY2tncm91bmQtY29sb3VyLWZvci1jaHJvbWUtYXV0b2NvbXBsZXRlI2Fuc3dlci0zNzQzMjI2MFxuQG1peGluIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yKCRiYWNrZ3JvdW5kLCAkZm9yZWdyb3VuZDonJykge1xuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLSN7JGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50fSB7XG4gICAgdG8ge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICBAaWYgJGZvcmVncm91bmQgIT0gJycgeyBjb2xvcjogJGZvcmVncm91bmQ7IH1cbiAgICB9XG4gIH1cblxuICAmOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci0jeyRjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudH07XG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgfVxuXG4gICYuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCxcbiAgICAgICAgICAgICAgICAgICAgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItI3skY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnR9O1xuICB9XG5cbiAgJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50OlxuICAgICAgJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50ICsgMSAhZ2xvYmFsO1xufVxuXG5cbi8vIENvcmUgc3R5bGVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gYXBwbHkgbWF0ZXJpYWwgZGVzaWduIHRyZWF0bWVudHMgdG8gYW55IGVsZW1lbnQuXG4vLyBNZWRpYSBxdWVyaWVzXG4vLyBUT0RPKGpvc2VwaHBlcnJvdHQpOiBDaGFuZ2UgJG1hdC14c21hbGwgYW5kICRtYXQtc21hbGwgdXNhZ2VzIHRvIHJlbHkgb24gQnJlYWtwb2ludE9ic2VydmVyLFxuJG1hdC14c21hbGw6ICdtYXgtd2lkdGg6IDU5OXB4JztcbiRtYXQtc21hbGw6ICdtYXgtd2lkdGg6IDk1OXB4JztcblxuLy8gVE9ETzogUmV2aXNpdCBhbGwgei1pbmRpY2VzIGJlZm9yZSBiZXRhXG4vLyB6LWluZGV4IG1hc3RlciBsaXN0XG5cbiR6LWluZGV4LWZhYjogMjAgIWRlZmF1bHQ7XG4kei1pbmRleC1kcmF3ZXI6IDEwMCAhZGVmYXVsdDtcblxuLy8gR2xvYmFsIGNvbnN0YW50c1xuJHBpOiAzLjE0MTU5MjY1O1xuXG4vLyBQYWRkaW5nIGJldHdlZW4gaW5wdXQgdG9nZ2xlcyBhbmQgdGhlaXIgbGFiZWxzXG4kbWF0LXRvZ2dsZS1wYWRkaW5nOiA4cHggIWRlZmF1bHQ7XG4vLyBXaWR0aCBhbmQgaGVpZ2h0IG9mIGlucHV0IHRvZ2dsZXNcbiRtYXQtdG9nZ2xlLXNpemU6IDIwcHggIWRlZmF1bHQ7XG5cbi8vIEVhc2luZyBDdXJ2ZXNcbi8vIFRPRE8oamVsYm91cm4pOiBhbGwgb2YgdGhlc2UgbmVlZCB0byBiZSByZXZpc2l0ZWRcblxuLy8gVGhlIGRlZmF1bHQgYW5pbWF0aW9uIGN1cnZlcyB1c2VkIGJ5IG1hdGVyaWFsIGRlc2lnbi5cbiRtYXQtbGluZWFyLW91dC1zbG93LWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMC4xKSAhZGVmYXVsdDtcbiRtYXQtZmFzdC1vdXQtc2xvdy1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWRlZmF1bHQ7XG4kbWF0LWZhc3Qtb3V0LWxpbmVhci1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpICFkZWZhdWx0O1xuXG4kZWFzZS1pbi1vdXQtY3VydmUtZnVuY3Rpb246IGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKSAhZGVmYXVsdDtcblxuJHN3aWZ0LWVhc2Utb3V0LWR1cmF0aW9uOiA0MDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLW91dC10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpICFkZWZhdWx0O1xuJHN3aWZ0LWVhc2Utb3V0OiBhbGwgJHN3aWZ0LWVhc2Utb3V0LWR1cmF0aW9uICRzd2lmdC1lYXNlLW91dC10aW1pbmctZnVuY3Rpb24gIWRlZmF1bHQ7XG5cbiRzd2lmdC1lYXNlLWluLWR1cmF0aW9uOiAzMDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAsIDAuNTUsIDAuMikgIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1pbjogYWxsICRzd2lmdC1lYXNlLWluLWR1cmF0aW9uICRzd2lmdC1lYXNlLWluLXRpbWluZy1mdW5jdGlvbiAhZGVmYXVsdDtcblxuJHN3aWZ0LWVhc2UtaW4tb3V0LWR1cmF0aW9uOiA1MDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLW91dC10aW1pbmctZnVuY3Rpb246ICRlYXNlLWluLW91dC1jdXJ2ZS1mdW5jdGlvbiAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLW91dDogYWxsICRzd2lmdC1lYXNlLWluLW91dC1kdXJhdGlvbiAkc3dpZnQtZWFzZS1pbi1vdXQtdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuXG4kc3dpZnQtbGluZWFyLWR1cmF0aW9uOiA4MG1zICFkZWZhdWx0O1xuJHN3aWZ0LWxpbmVhci10aW1pbmctZnVuY3Rpb246IGxpbmVhciAhZGVmYXVsdDtcbiRzd2lmdC1saW5lYXI6IGFsbCAkc3dpZnQtbGluZWFyLWR1cmF0aW9uICRzd2lmdC1saW5lYXItdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuXG5cblxuLy8gQSBjb2xsZWN0aW9uIG9mIG1peGlucyBhbmQgQ1NTIGNsYXNzZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBhcHBseSBlbGV2YXRpb24gdG8gYSBtYXRlcmlhbFxuLy8gZWxlbWVudC5cbi8vIFNlZTogaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vZW52aXJvbm1lbnQvZWxldmF0aW9uLmh0bWxcbi8vIEV4YW1wbGVzOlxuLy9cbi8vXG4vLyAubWF0LWZvbyB7XG4vLyAgIEBpbmNsdWRlICRtYXQtZWxldmF0aW9uKDIpO1xuLy9cbi8vICAgJjphY3RpdmUge1xuLy8gICAgIEBpbmNsdWRlICRtYXQtZWxldmF0aW9uKDgpO1xuLy8gICB9XG4vLyB9XG4vL1xuLy8gPGRpdiBpZD1cImV4dGVybmFsLWNhcmRcIiBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejJcIj48cD5Tb21lIGNvbnRlbnQ8L3A+PC9kaXY+XG4vL1xuLy8gRm9yIGFuIGV4cGxhbmF0aW9uIG9mIHRoZSBkZXNpZ24gYmVoaW5kIGhvdyBlbGV2YXRpb24gaXMgaW1wbGVtZW50ZWQsIHNlZSB0aGUgZGVzaWduIGRvYyBhdFxuLy8gaHR0cHM6Ly9nb28uZ2wvS3EwazlaLlxuXG4vLyBDb2xvcnMgZm9yIHVtYnJhLCBwZW51bWJyYSwgYW5kIGFtYmllbnQgc2hhZG93cy4gQXMgZGVzY3JpYmVkIGluIHRoZSBkZXNpZ24gZG9jLCBlYWNoIGVsZXZhdGlvblxuLy8gbGV2ZWwgaXMgY3JlYXRlZCB1c2luZyBhIHNldCBvZiAzIHNoYWRvdyB2YWx1ZXMsIG9uZSBmb3IgdW1icmEgKHRoZSBzaGFkb3cgcmVwcmVzZW50aW5nIHRoZVxuLy8gc3BhY2UgY29tcGxldGVseSBvYnNjdXJlZCBieSBhbiBvYmplY3QgcmVsYXRpdmUgdG8gaXRzIGxpZ2h0IHNvdXJjZSksIG9uZSBmb3IgcGVudW1icmEgKHRoZVxuLy8gc3BhY2UgcGFydGlhbGx5IG9ic2N1cmVkIGJ5IGFuIG9iamVjdCksIGFuZCBvbmUgZm9yIGFtYmllbnQgKHRoZSBzcGFjZSB3aGljaCBjb250YWlucyB0aGUgb2JqZWN0XG4vLyBpdHNlbGYpLiBGb3IgYSBmdXJ0aGVyIGV4cGxhbmF0aW9uIG9mIHRoZXNlIHRlcm1zIGFuZCB0aGVpciBtZWFuaW5ncywgc2VlXG4vLyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9VbWJyYSxfcGVudW1icmFfYW5kX2FudHVtYnJhLlxuXG4vLyBNYXBzIGZvciB0aGUgZGlmZmVyZW50IHNoYWRvdyBzZXRzIGFuZCB0aGVpciB2YWx1ZXMgd2l0aGluIGVhY2ggei1zcGFjZS4gVGhlc2UgdmFsdWVzIHdlcmVcbi8vIGNyZWF0ZWQgYnkgdGFraW5nIGEgZmV3IHJlZmVyZW5jZSBzaGFkb3cgc2V0cyBjcmVhdGVkIGJ5IEdvb2dsZSdzIERlc2lnbmVycyBhbmQgaW50ZXJwb2xhdGluZ1xuLy8gYWxsIG9mIHRoZSB2YWx1ZXMgYmV0d2VlbiB0aGVtLlxuXG5AZnVuY3Rpb24gX2dldC11bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSkge1xuICAkc2hhZG93LWNvbG9yOiBpZih0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IsIHJnYmEoJGNvbG9yLCAkb3BhY2l0eSAqIDAuMiksICRjb2xvcik7XG5cbiAgQHJldHVybiAoXG4gICAgMDogJzBweCAwcHggMHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOiAnMHB4IDJweCAxcHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyOiAnMHB4IDNweCAxcHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAzOiAnMHB4IDNweCAzcHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA0OiAnMHB4IDJweCA0cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA1OiAnMHB4IDNweCA1cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA2OiAnMHB4IDNweCA1cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA3OiAnMHB4IDRweCA1cHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA4OiAnMHB4IDVweCA1cHggLTNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA5OiAnMHB4IDVweCA2cHggLTNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMDogJzBweCA2cHggNnB4IC0zcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTE6ICcwcHggNnB4IDdweCAtNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEyOiAnMHB4IDdweCA4cHggLTRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMzogJzBweCA3cHggOHB4IC00cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTQ6ICcwcHggN3B4IDlweCAtNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE1OiAnMHB4IDhweCA5cHggLTVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNjogJzBweCA4cHggMTBweCAtNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE3OiAnMHB4IDhweCAxMXB4IC01cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTg6ICcwcHggOXB4IDExcHggLTVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOTogJzBweCA5cHggMTJweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIwOiAnMHB4IDEwcHggMTNweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIxOiAnMHB4IDEwcHggMTNweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIyOiAnMHB4IDEwcHggMTRweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIzOiAnMHB4IDExcHggMTRweCAtN3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI0OiAnMHB4IDExcHggMTVweCAtN3B4ICN7JHNoYWRvdy1jb2xvcn0nXG4gICk7XG59XG5cbkBmdW5jdGlvbiBfZ2V0LXBlbnVtYnJhLW1hcCgkY29sb3IsICRvcGFjaXR5KSB7XG4gICRzaGFkb3ctY29sb3I6IGlmKHR5cGUtb2YoJGNvbG9yKSA9PSBjb2xvciwgcmdiYSgkY29sb3IsICRvcGFjaXR5ICogMC4xNCksICRjb2xvcik7XG5cbiAgQHJldHVybiAoXG4gICAgMDogJzBweCAwcHggMHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOiAnMHB4IDFweCAxcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI6ICcwcHggMnB4IDJweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMzogJzBweCAzcHggNHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA0OiAnMHB4IDRweCA1cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDU6ICcwcHggNXB4IDhweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNjogJzBweCA2cHggMTBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNzogJzBweCA3cHggMTBweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgODogJzBweCA4cHggMTBweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgOTogJzBweCA5cHggMTJweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTA6ICcwcHggMTBweCAxNHB4IDFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMTogJzBweCAxMXB4IDE1cHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEyOiAnMHB4IDEycHggMTdweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTM6ICcwcHggMTNweCAxOXB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNDogJzBweCAxNHB4IDIxcHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE1OiAnMHB4IDE1cHggMjJweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTY6ICcwcHggMTZweCAyNHB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNzogJzBweCAxN3B4IDI2cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE4OiAnMHB4IDE4cHggMjhweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTk6ICcwcHggMTlweCAyOXB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMDogJzBweCAyMHB4IDMxcHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIxOiAnMHB4IDIxcHggMzNweCAzcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjI6ICcwcHggMjJweCAzNXB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMzogJzBweCAyM3B4IDM2cHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI0OiAnMHB4IDI0cHggMzhweCAzcHggI3skc2hhZG93LWNvbG9yfSdcbiAgKTtcbn1cblxuQGZ1bmN0aW9uIF9nZXQtYW1iaWVudC1tYXAoJGNvbG9yLCAkb3BhY2l0eSkge1xuICAkc2hhZG93LWNvbG9yOiBpZih0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IsIHJnYmEoJGNvbG9yLCAkb3BhY2l0eSAqIDAuMTIpLCAkY29sb3IpO1xuXG4gIEByZXR1cm4gKFxuICAgIDA6ICcwcHggMHB4IDBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTogJzBweCAxcHggM3B4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyOiAnMHB4IDFweCA1cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDM6ICcwcHggMXB4IDhweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNDogJzBweCAxcHggMTBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNTogJzBweCAxcHggMTRweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNjogJzBweCAxcHggMThweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNzogJzBweCAycHggMTZweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgODogJzBweCAzcHggMTRweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgOTogJzBweCAzcHggMTZweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTA6ICcwcHggNHB4IDE4cHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDExOiAnMHB4IDRweCAyMHB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMjogJzBweCA1cHggMjJweCA0cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTM6ICcwcHggNXB4IDI0cHggNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE0OiAnMHB4IDVweCAyNnB4IDRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNTogJzBweCA2cHggMjhweCA1cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTY6ICcwcHggNnB4IDMwcHggNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE3OiAnMHB4IDZweCAzMnB4IDVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxODogJzBweCA3cHggMzRweCA2cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTk6ICcwcHggN3B4IDM2cHggNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIwOiAnMHB4IDhweCAzOHB4IDdweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMTogJzBweCA4cHggNDBweCA3cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjI6ICcwcHggOHB4IDQycHggN3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIzOiAnMHB4IDlweCA0NHB4IDhweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyNDogJzBweCA5cHggNDZweCA4cHggI3skc2hhZG93LWNvbG9yfSdcbiAgKTtcbn1cblxuLy8gVGhlIGRlZmF1bHQgZHVyYXRpb24gdmFsdWUgZm9yIGVsZXZhdGlvbiB0cmFuc2l0aW9ucy5cbiRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb246IDI4MG1zICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBlYXNpbmcgdmFsdWUgZm9yIGVsZXZhdGlvbiB0cmFuc2l0aW9ucy5cbiRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkbWF0LWZhc3Qtb3V0LXNsb3ctaW4tdGltaW5nLWZ1bmN0aW9uO1xuXG4vLyBUaGUgZGVmYXVsdCBjb2xvciBmb3IgZWxldmF0aW9uIHNoYWRvd3MuXG4kbWF0LWVsZXZhdGlvbi1jb2xvcjogYmxhY2sgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IG9wYWNpdHkgc2NhbGluZyB2YWx1ZSBmb3IgZWxldmF0aW9uIHNoYWRvd3MuXG4kbWF0LWVsZXZhdGlvbi1vcGFjaXR5OiAxICFkZWZhdWx0O1xuXG4vLyBQcmVmaXggZm9yIGVsZXZhdGlvbi1yZWxhdGVkIHNlbGVjdG9ycy5cbiRfbWF0LWVsZXZhdGlvbi1wcmVmaXg6ICdtYXQtZWxldmF0aW9uLXonO1xuXG4vLyBBcHBsaWVzIHRoZSBjb3JyZWN0IGNzcyBydWxlcyB0byBhbiBlbGVtZW50IHRvIGdpdmUgaXQgdGhlIGVsZXZhdGlvbiBzcGVjaWZpZWQgYnkgJHpWYWx1ZS5cbi8vIFRoZSAkelZhbHVlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyNC5cbkBtaXhpbiBtYXQtZWxldmF0aW9uKCR6VmFsdWUsICRjb2xvcjogJG1hdC1lbGV2YXRpb24tY29sb3IsICRvcGFjaXR5OiAkbWF0LWVsZXZhdGlvbi1vcGFjaXR5KSB7XG4gIEBpZiB0eXBlLW9mKCR6VmFsdWUpICE9IG51bWJlciBvciBub3QgdW5pdGxlc3MoJHpWYWx1ZSkge1xuICAgIEBlcnJvciAnJHpWYWx1ZSBtdXN0IGJlIGEgdW5pdGxlc3MgbnVtYmVyJztcbiAgfVxuICBAaWYgJHpWYWx1ZSA8IDAgb3IgJHpWYWx1ZSA+IDI0IHtcbiAgICBAZXJyb3IgJyR6VmFsdWUgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDI0JztcbiAgfVxuXG4gIGJveC1zaGFkb3c6ICN7bWFwLWdldChfZ2V0LXVtYnJhLW1hcCgkY29sb3IsICRvcGFjaXR5KSwgJHpWYWx1ZSl9LFxuICAgICAgICAgICAgICAje21hcC1nZXQoX2dldC1wZW51bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSksICR6VmFsdWUpfSxcbiAgICAgICAgICAgICAgI3ttYXAtZ2V0KF9nZXQtYW1iaWVudC1tYXAoJGNvbG9yLCAkb3BhY2l0eSksICR6VmFsdWUpfTtcbn1cblxuQG1peGluIF9tYXQtdGhlbWUtZWxldmF0aW9uKCR6VmFsdWUsICR0aGVtZSwgJG9wYWNpdHk6ICRtYXQtZWxldmF0aW9uLW9wYWNpdHkpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGVsZXZhdGlvbi1jb2xvcjogbWFwLWdldCgkZm9yZWdyb3VuZCwgZWxldmF0aW9uKTtcbiAgJGVsZXZhdGlvbi1jb2xvci1vci1kZWZhdWx0OiBpZigkZWxldmF0aW9uLWNvbG9yID09IG51bGwsICRtYXQtZWxldmF0aW9uLWNvbG9yLCAkZWxldmF0aW9uLWNvbG9yKTtcblxuICBAaW5jbHVkZSBtYXQtZWxldmF0aW9uKCR6VmFsdWUsICRlbGV2YXRpb24tY29sb3Itb3ItZGVmYXVsdCwgJG9wYWNpdHkpO1xufVxuXG4vLyBBcHBsaWVzIHRoZSBlbGV2YXRpb24gdG8gYW4gZWxlbWVudCBpbiBhIG1hbm5lciB0aGF0IGFsbG93c1xuLy8gY29uc3VtZXJzIHRvIG92ZXJyaWRlIGl0IHZpYSB0aGUgTWF0ZXJpYWwgZWxldmF0aW9uIGNsYXNzZXMuXG5AbWl4aW4gbWF0LW92ZXJyaWRhYmxlLWVsZXZhdGlvbihcbiAgICAkelZhbHVlLFxuICAgICRjb2xvcjogJG1hdC1lbGV2YXRpb24tY29sb3IsXG4gICAgJG9wYWNpdHk6ICRtYXQtZWxldmF0aW9uLW9wYWNpdHkpIHtcbiAgJjpub3QoW2NsYXNzKj0nI3skX21hdC1lbGV2YXRpb24tcHJlZml4fSddKSB7XG4gICAgQGluY2x1ZGUgbWF0LWVsZXZhdGlvbigkelZhbHVlLCAkY29sb3IsICRvcGFjaXR5KTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oJHpWYWx1ZSwgJHRoZW1lLCAkb3BhY2l0eTogJG1hdC1lbGV2YXRpb24tb3BhY2l0eSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkZWxldmF0aW9uLWNvbG9yOiBtYXAtZ2V0KCRmb3JlZ3JvdW5kLCBlbGV2YXRpb24pO1xuICAkZWxldmF0aW9uLWNvbG9yLW9yLWRlZmF1bHQ6IGlmKCRlbGV2YXRpb24tY29sb3IgPT0gbnVsbCwgJG1hdC1lbGV2YXRpb24tY29sb3IsICRlbGV2YXRpb24tY29sb3IpO1xuXG4gIEBpbmNsdWRlIG1hdC1vdmVycmlkYWJsZS1lbGV2YXRpb24oJHpWYWx1ZSwgJGVsZXZhdGlvbi1jb2xvci1vci1kZWZhdWx0LCAkb3BhY2l0eSk7XG59XG5cbi8vIFJldHVybnMgYSBzdHJpbmcgdGhhdCBjYW4gYmUgdXNlZCBhcyB0aGUgdmFsdWUgZm9yIGEgdHJhbnNpdGlvbiBwcm9wZXJ0eSBmb3IgZWxldmF0aW9uLlxuLy8gQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIGRpcmVjdGx5IGlzIHVzZWZ1bCBpbiBzaXR1YXRpb25zIHdoZXJlIGEgY29tcG9uZW50IG5lZWRzIHRvIHRyYW5zaXRpb25cbi8vIG1vcmUgdGhhbiBvbmUgcHJvcGVydHkuXG4vL1xuLy8gLmZvbyB7XG4vLyAgIHRyYW5zaXRpb246IG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1wcm9wZXJ0eS12YWx1ZSgpLCBvcGFjaXR5IDEwMG1zIGVhc2U7XG4vLyB9XG5AZnVuY3Rpb24gbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXByb3BlcnR5LXZhbHVlKFxuICAgICRkdXJhdGlvbjogJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbixcbiAgICAkZWFzaW5nOiAkbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbikge1xuICBAcmV0dXJuIGJveC1zaGFkb3cgI3skZHVyYXRpb259ICN7JGVhc2luZ307XG59XG5cbi8vIEFwcGxpZXMgdGhlIGNvcnJlY3QgY3NzIHJ1bGVzIG5lZWRlZCB0byBoYXZlIGFuIGVsZW1lbnQgdHJhbnNpdGlvbiBiZXR3ZWVuIGVsZXZhdGlvbnMuXG4vLyBUaGlzIG1peGluIHNob3VsZCBiZSBhcHBsaWVkIHRvIGVsZW1lbnRzIHdob3NlIGVsZXZhdGlvbiB2YWx1ZXMgd2lsbCBjaGFuZ2UgZGVwZW5kaW5nIG9uIHRoZWlyXG4vLyBjb250ZXh0IChlLmcuIHdoZW4gYWN0aXZlIG9yIGRpc2FibGVkKS5cbi8vXG4vLyBOT1RFKHRyYXZpc2thdWZtYW4pOiBCb3RoIHRoaXMgbWl4aW4gYW5kIHRoZSBhYm92ZSBmdW5jdGlvbiB1c2UgZGVmYXVsdCBwYXJhbWV0ZXJzIHNvIHRoZXkgY2FuXG4vLyBiZSB1c2VkIGluIHRoZSBzYW1lIHdheSBieSBjbGllbnRzLlxuQG1peGluIG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbihcbiAgICAkZHVyYXRpb246ICRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24sXG4gICAgJGVhc2luZzogJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pIHtcbiAgdHJhbnNpdGlvbjogbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXByb3BlcnR5LXZhbHVlKCRkdXJhdGlvbiwgJGVhc2luZyk7XG59XG5cbi8vIENvbG9yIHBhbGV0dGVzIGZyb20gdGhlIE1hdGVyaWFsIERlc2lnbiBzcGVjLlxuLy8gU2VlIGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2NvbG9yL1xuLy9cbi8vIENvbnRyYXN0IGNvbG9ycyBhcmUgaGFyZC1jb2RlZCBiZWNhdXNlIGl0IGlzIHRvbyBkaWZmaWN1bHQgKHByb2JhYmx5IGltcG9zc2libGUpIHRvXG4vLyBjYWxjdWxhdGUgdGhlbS4gVGhlc2UgY29udHJhc3QgY29sb3JzIGFyZSBwdWxsZWQgZnJvbSB0aGUgcHVibGljIE1hdGVyaWFsIERlc2lnbiBzcGVjIHN3YXRjaGVzLlxuLy8gV2hpbGUgdGhlIGNvbnRyYXN0IGNvbG9ycyBpbiB0aGUgc3BlYyBhcmUgbm90IHByZXNjcmlwdGl2ZSwgd2UgdXNlIHRoZW0gZm9yIGNvbnZlbmllbmNlLlxuXG5cbi8vIEBkZXByZWNhdGVkIHJlbmFtZWQgdG8gJGRhcmstcHJpbWFyeS10ZXh0LlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJGJsYWNrLTg3LW9wYWNpdHk6IHJnYmEoYmxhY2ssIDAuODcpO1xuLy8gQGRlcHJlY2F0ZWQgcmVuYW1lZCB0byAkbGlnaHQtcHJpbWFyeS10ZXh0LlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJHdoaXRlLTg3LW9wYWNpdHk6IHJnYmEod2hpdGUsIDAuODcpO1xuLy8gQGRlcHJlY2F0ZWQgdXNlICRkYXJrLVtzZWNvbmRhcnktdGV4dCxkaXNhYmxlZC10ZXh0LGRpdmlkZXJzLGZvY3VzZWRdIGluc3RlYWQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kYmxhY2stMTItb3BhY2l0eTogcmdiYShibGFjaywgMC4xMik7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGxpZ2h0LVtzZWNvbmRhcnktdGV4dCxkaXNhYmxlZC10ZXh0LGRpdmlkZXJzLGZvY3VzZWRdIGluc3RlYWQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kd2hpdGUtMTItb3BhY2l0eTogcmdiYSh3aGl0ZSwgMC4xMik7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGRhcmstW3NlY29uZGFyeS10ZXh0LGRpc2FibGVkLXRleHQsZGl2aWRlcnMsZm9jdXNlZF0gaW5zdGVhZC5cbi8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjBcbiRibGFjay02LW9wYWNpdHk6IHJnYmEoYmxhY2ssIDAuMDYpO1xuLy8gQGRlcHJlY2F0ZWQgdXNlICRsaWdodC1bc2Vjb25kYXJ5LXRleHQsZGlzYWJsZWQtdGV4dCxkaXZpZGVycyxmb2N1c2VkXSBpbnN0ZWFkLlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJHdoaXRlLTYtb3BhY2l0eTogcmdiYSh3aGl0ZSwgMC4wNik7XG5cbiRkYXJrLXByaW1hcnktdGV4dDogcmdiYShibGFjaywgMC44Nyk7XG4kZGFyay1zZWNvbmRhcnktdGV4dDogcmdiYShibGFjaywgMC41NCk7XG4kZGFyay1kaXNhYmxlZC10ZXh0OiByZ2JhKGJsYWNrLCAwLjM4KTtcbiRkYXJrLWRpdmlkZXJzOiByZ2JhKGJsYWNrLCAwLjEyKTtcbiRkYXJrLWZvY3VzZWQ6IHJnYmEoYmxhY2ssIDAuMTIpO1xuJGxpZ2h0LXByaW1hcnktdGV4dDogd2hpdGU7XG4kbGlnaHQtc2Vjb25kYXJ5LXRleHQ6IHJnYmEod2hpdGUsIDAuNyk7XG4kbGlnaHQtZGlzYWJsZWQtdGV4dDogcmdiYSh3aGl0ZSwgMC41KTtcbiRsaWdodC1kaXZpZGVyczogcmdiYSh3aGl0ZSwgMC4xMik7XG4kbGlnaHQtZm9jdXNlZDogcmdiYSh3aGl0ZSwgMC4xMik7XG5cbiRtYXQtcmVkOiAoXG4gIDUwOiAjZmZlYmVlLFxuICAxMDA6ICNmZmNkZDIsXG4gIDIwMDogI2VmOWE5YSxcbiAgMzAwOiAjZTU3MzczLFxuICA0MDA6ICNlZjUzNTAsXG4gIDUwMDogI2Y0NDMzNixcbiAgNjAwOiAjZTUzOTM1LFxuICA3MDA6ICNkMzJmMmYsXG4gIDgwMDogI2M2MjgyOCxcbiAgOTAwOiAjYjcxYzFjLFxuICBBMTAwOiAjZmY4YTgwLFxuICBBMjAwOiAjZmY1MjUyLFxuICBBNDAwOiAjZmYxNzQ0LFxuICBBNzAwOiAjZDUwMDAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtcGluazogKFxuICA1MDogI2ZjZTRlYyxcbiAgMTAwOiAjZjhiYmQwLFxuICAyMDA6ICNmNDhmYjEsXG4gIDMwMDogI2YwNjI5MixcbiAgNDAwOiAjZWM0MDdhLFxuICA1MDA6ICNlOTFlNjMsXG4gIDYwMDogI2Q4MWI2MCxcbiAgNzAwOiAjYzIxODViLFxuICA4MDA6ICNhZDE0NTcsXG4gIDkwMDogIzg4MGU0ZixcbiAgQTEwMDogI2ZmODBhYixcbiAgQTIwMDogI2ZmNDA4MSxcbiAgQTQwMDogI2Y1MDA1NyxcbiAgQTcwMDogI2M1MTE2MixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LXB1cnBsZTogKFxuICA1MDogI2YzZTVmNSxcbiAgMTAwOiAjZTFiZWU3LFxuICAyMDA6ICNjZTkzZDgsXG4gIDMwMDogI2JhNjhjOCxcbiAgNDAwOiAjYWI0N2JjLFxuICA1MDA6ICM5YzI3YjAsXG4gIDYwMDogIzhlMjRhYSxcbiAgNzAwOiAjN2IxZmEyLFxuICA4MDA6ICM2YTFiOWEsXG4gIDkwMDogIzRhMTQ4YyxcbiAgQTEwMDogI2VhODBmYyxcbiAgQTIwMDogI2UwNDBmYixcbiAgQTQwMDogI2Q1MDBmOSxcbiAgQTcwMDogI2FhMDBmZixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtZGVlcC1wdXJwbGU6IChcbiAgNTA6ICNlZGU3ZjYsXG4gIDEwMDogI2QxYzRlOSxcbiAgMjAwOiAjYjM5ZGRiLFxuICAzMDA6ICM5NTc1Y2QsXG4gIDQwMDogIzdlNTdjMixcbiAgNTAwOiAjNjczYWI3LFxuICA2MDA6ICM1ZTM1YjEsXG4gIDcwMDogIzUxMmRhOCxcbiAgODAwOiAjNDUyN2EwLFxuICA5MDA6ICMzMTFiOTIsXG4gIEExMDA6ICNiMzg4ZmYsXG4gIEEyMDA6ICM3YzRkZmYsXG4gIEE0MDA6ICM2NTFmZmYsXG4gIEE3MDA6ICM2MjAwZWEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWluZGlnbzogKFxuICA1MDogI2U4ZWFmNixcbiAgMTAwOiAjYzVjYWU5LFxuICAyMDA6ICM5ZmE4ZGEsXG4gIDMwMDogIzc5ODZjYixcbiAgNDAwOiAjNWM2YmMwLFxuICA1MDA6ICMzZjUxYjUsXG4gIDYwMDogIzM5NDlhYixcbiAgNzAwOiAjMzAzZjlmLFxuICA4MDA6ICMyODM1OTMsXG4gIDkwMDogIzFhMjM3ZSxcbiAgQTEwMDogIzhjOWVmZixcbiAgQTIwMDogIzUzNmRmZSxcbiAgQTQwMDogIzNkNWFmZSxcbiAgQTcwMDogIzMwNGZmZSxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtYmx1ZTogKFxuICA1MDogI2UzZjJmZCxcbiAgMTAwOiAjYmJkZWZiLFxuICAyMDA6ICM5MGNhZjksXG4gIDMwMDogIzY0YjVmNixcbiAgNDAwOiAjNDJhNWY1LFxuICA1MDA6ICMyMTk2ZjMsXG4gIDYwMDogIzFlODhlNSxcbiAgNzAwOiAjMTk3NmQyLFxuICA4MDA6ICMxNTY1YzAsXG4gIDkwMDogIzBkNDdhMSxcbiAgQTEwMDogIzgyYjFmZixcbiAgQTIwMDogIzQ0OGFmZixcbiAgQTQwMDogIzI5NzlmZixcbiAgQTcwMDogIzI5NjJmZixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWxpZ2h0LWJsdWU6IChcbiAgNTA6ICNlMWY1ZmUsXG4gIDEwMDogI2IzZTVmYyxcbiAgMjAwOiAjODFkNGZhLFxuICAzMDA6ICM0ZmMzZjcsXG4gIDQwMDogIzI5YjZmNixcbiAgNTAwOiAjMDNhOWY0LFxuICA2MDA6ICMwMzliZTUsXG4gIDcwMDogIzAyODhkMSxcbiAgODAwOiAjMDI3N2JkLFxuICA5MDA6ICMwMTU3OWIsXG4gIEExMDA6ICM4MGQ4ZmYsXG4gIEEyMDA6ICM0MGM0ZmYsXG4gIEE0MDA6ICMwMGIwZmYsXG4gIEE3MDA6ICMwMDkxZWEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtY3lhbjogKFxuICA1MDogI2UwZjdmYSxcbiAgMTAwOiAjYjJlYmYyLFxuICAyMDA6ICM4MGRlZWEsXG4gIDMwMDogIzRkZDBlMSxcbiAgNDAwOiAjMjZjNmRhLFxuICA1MDA6ICMwMGJjZDQsXG4gIDYwMDogIzAwYWNjMSxcbiAgNzAwOiAjMDA5N2E3LFxuICA4MDA6ICMwMDgzOGYsXG4gIDkwMDogIzAwNjA2NCxcbiAgQTEwMDogIzg0ZmZmZixcbiAgQTIwMDogIzE4ZmZmZixcbiAgQTQwMDogIzAwZTVmZixcbiAgQTcwMDogIzAwYjhkNCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LXRlYWw6IChcbiAgNTA6ICNlMGYyZjEsXG4gIDEwMDogI2IyZGZkYixcbiAgMjAwOiAjODBjYmM0LFxuICAzMDA6ICM0ZGI2YWMsXG4gIDQwMDogIzI2YTY5YSxcbiAgNTAwOiAjMDA5Njg4LFxuICA2MDA6ICMwMDg5N2IsXG4gIDcwMDogIzAwNzk2YixcbiAgODAwOiAjMDA2OTVjLFxuICA5MDA6ICMwMDRkNDAsXG4gIEExMDA6ICNhN2ZmZWIsXG4gIEEyMDA6ICM2NGZmZGEsXG4gIEE0MDA6ICMxZGU5YjYsXG4gIEE3MDA6ICMwMGJmYTUsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1ncmVlbjogKFxuICA1MDogI2U4ZjVlOSxcbiAgMTAwOiAjYzhlNmM5LFxuICAyMDA6ICNhNWQ2YTcsXG4gIDMwMDogIzgxYzc4NCxcbiAgNDAwOiAjNjZiYjZhLFxuICA1MDA6ICM0Y2FmNTAsXG4gIDYwMDogIzQzYTA0NyxcbiAgNzAwOiAjMzg4ZTNjLFxuICA4MDA6ICMyZTdkMzIsXG4gIDkwMDogIzFiNWUyMCxcbiAgQTEwMDogI2I5ZjZjYSxcbiAgQTIwMDogIzY5ZjBhZSxcbiAgQTQwMDogIzAwZTY3NixcbiAgQTcwMDogIzAwYzg1MyxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtbGlnaHQtZ3JlZW46IChcbiAgNTA6ICNmMWY4ZTksXG4gIDEwMDogI2RjZWRjOCxcbiAgMjAwOiAjYzVlMWE1LFxuICAzMDA6ICNhZWQ1ODEsXG4gIDQwMDogIzljY2M2NSxcbiAgNTAwOiAjOGJjMzRhLFxuICA2MDA6ICM3Y2IzNDIsXG4gIDcwMDogIzY4OWYzOCxcbiAgODAwOiAjNTU4YjJmLFxuICA5MDA6ICMzMzY5MWUsXG4gIEExMDA6ICNjY2ZmOTAsXG4gIEEyMDA6ICNiMmZmNTksXG4gIEE0MDA6ICM3NmZmMDMsXG4gIEE3MDA6ICM2NGRkMTcsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtbGltZTogKFxuICA1MDogI2Y5ZmJlNyxcbiAgMTAwOiAjZjBmNGMzLFxuICAyMDA6ICNlNmVlOWMsXG4gIDMwMDogI2RjZTc3NSxcbiAgNDAwOiAjZDRlMTU3LFxuICA1MDA6ICNjZGRjMzksXG4gIDYwMDogI2MwY2EzMyxcbiAgNzAwOiAjYWZiNDJiLFxuICA4MDA6ICM5ZTlkMjQsXG4gIDkwMDogIzgyNzcxNyxcbiAgQTEwMDogI2Y0ZmY4MSxcbiAgQTIwMDogI2VlZmY0MSxcbiAgQTQwMDogI2M2ZmYwMCxcbiAgQTcwMDogI2FlZWEwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQteWVsbG93OiAoXG4gIDUwOiAjZmZmZGU3LFxuICAxMDA6ICNmZmY5YzQsXG4gIDIwMDogI2ZmZjU5ZCxcbiAgMzAwOiAjZmZmMTc2LFxuICA0MDA6ICNmZmVlNTgsXG4gIDUwMDogI2ZmZWIzYixcbiAgNjAwOiAjZmRkODM1LFxuICA3MDA6ICNmYmMwMmQsXG4gIDgwMDogI2Y5YTgyNSxcbiAgOTAwOiAjZjU3ZjE3LFxuICBBMTAwOiAjZmZmZjhkLFxuICBBMjAwOiAjZmZmZjAwLFxuICBBNDAwOiAjZmZlYTAwLFxuICBBNzAwOiAjZmZkNjAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWFtYmVyOiAoXG4gIDUwOiAjZmZmOGUxLFxuICAxMDA6ICNmZmVjYjMsXG4gIDIwMDogI2ZmZTA4MixcbiAgMzAwOiAjZmZkNTRmLFxuICA0MDA6ICNmZmNhMjgsXG4gIDUwMDogI2ZmYzEwNyxcbiAgNjAwOiAjZmZiMzAwLFxuICA3MDA6ICNmZmEwMDAsXG4gIDgwMDogI2ZmOGYwMCxcbiAgOTAwOiAjZmY2ZjAwLFxuICBBMTAwOiAjZmZlNTdmLFxuICBBMjAwOiAjZmZkNzQwLFxuICBBNDAwOiAjZmZjNDAwLFxuICBBNzAwOiAjZmZhYjAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LW9yYW5nZTogKFxuICA1MDogI2ZmZjNlMCxcbiAgMTAwOiAjZmZlMGIyLFxuICAyMDA6ICNmZmNjODAsXG4gIDMwMDogI2ZmYjc0ZCxcbiAgNDAwOiAjZmZhNzI2LFxuICA1MDA6ICNmZjk4MDAsXG4gIDYwMDogI2ZiOGMwMCxcbiAgNzAwOiAjZjU3YzAwLFxuICA4MDA6ICNlZjZjMDAsXG4gIDkwMDogI2U2NTEwMCxcbiAgQTEwMDogI2ZmZDE4MCxcbiAgQTIwMDogI2ZmYWI0MCxcbiAgQTQwMDogI2ZmOTEwMCxcbiAgQTcwMDogI2ZmNmQwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogYmxhY2ssXG4gIClcbik7XG5cbiRtYXQtZGVlcC1vcmFuZ2U6IChcbiAgNTA6ICNmYmU5ZTcsXG4gIDEwMDogI2ZmY2NiYyxcbiAgMjAwOiAjZmZhYjkxLFxuICAzMDA6ICNmZjhhNjUsXG4gIDQwMDogI2ZmNzA0MyxcbiAgNTAwOiAjZmY1NzIyLFxuICA2MDA6ICNmNDUxMWUsXG4gIDcwMDogI2U2NGExOSxcbiAgODAwOiAjZDg0MzE1LFxuICA5MDA6ICNiZjM2MGMsXG4gIEExMDA6ICNmZjllODAsXG4gIEEyMDA6ICNmZjZlNDAsXG4gIEE0MDA6ICNmZjNkMDAsXG4gIEE3MDA6ICNkZDJjMDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWJyb3duOiAoXG4gIDUwOiAjZWZlYmU5LFxuICAxMDA6ICNkN2NjYzgsXG4gIDIwMDogI2JjYWFhNCxcbiAgMzAwOiAjYTE4ODdmLFxuICA0MDA6ICM4ZDZlNjMsXG4gIDUwMDogIzc5NTU0OCxcbiAgNjAwOiAjNmQ0YzQxLFxuICA3MDA6ICM1ZDQwMzcsXG4gIDgwMDogIzRlMzQyZSxcbiAgOTAwOiAjM2UyNzIzLFxuICBBMTAwOiAjZDdjY2M4LFxuICBBMjAwOiAjYmNhYWE0LFxuICBBNDAwOiAjOGQ2ZTYzLFxuICBBNzAwOiAjNWQ0MDM3LFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWdyZXk6IChcbiAgNTA6ICNmYWZhZmEsXG4gIDEwMDogI2Y1ZjVmNSxcbiAgMjAwOiAjZWVlZWVlLFxuICAzMDA6ICNlMGUwZTAsXG4gIDQwMDogI2JkYmRiZCxcbiAgNTAwOiAjOWU5ZTllLFxuICA2MDA6ICM3NTc1NzUsXG4gIDcwMDogIzYxNjE2MSxcbiAgODAwOiAjNDI0MjQyLFxuICA5MDA6ICMyMTIxMjEsXG4gIEExMDA6ICNmZmZmZmYsXG4gIEEyMDA6ICNlZWVlZWUsXG4gIEE0MDA6ICNiZGJkYmQsXG4gIEE3MDA6ICM2MTYxNjEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuLy8gQWxpYXMgZm9yIGFsdGVybmF0ZSBzcGVsbGluZy5cbiRtYXQtZ3JheTogJG1hdC1ncmV5O1xuXG4kbWF0LWJsdWUtZ3JleTogKFxuICA1MDogI2VjZWZmMSxcbiAgMTAwOiAjY2ZkOGRjLFxuICAyMDA6ICNiMGJlYzUsXG4gIDMwMDogIzkwYTRhZSxcbiAgNDAwOiAjNzg5MDljLFxuICA1MDA6ICM2MDdkOGIsXG4gIDYwMDogIzU0NmU3YSxcbiAgNzAwOiAjNDU1YTY0LFxuICA4MDA6ICMzNzQ3NGYsXG4gIDkwMDogIzI2MzIzOCxcbiAgQTEwMDogI2NmZDhkYyxcbiAgQTIwMDogI2IwYmVjNSxcbiAgQTQwMDogIzc4OTA5YyxcbiAgQTcwMDogIzQ1NWE2NCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4vLyBBbGlhcyBmb3IgYWx0ZXJuYXRlIHNwZWxsaW5nLlxuJG1hdC1ibHVlLWdyYXk6ICRtYXQtYmx1ZS1ncmV5O1xuXG5cbi8vIEJhY2tncm91bmQgcGFsZXR0ZSBmb3IgbGlnaHQgdGhlbWVzLlxuJG1hdC1saWdodC10aGVtZS1iYWNrZ3JvdW5kOiAoXG4gIHN0YXR1cy1iYXI6IG1hcF9nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBhcHAtYmFyOiAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgMTAwKSxcbiAgYmFja2dyb3VuZDogbWFwX2dldCgkbWF0LWdyZXksIDUwKSxcbiAgaG92ZXI6ICAgICAgcmdiYShibGFjaywgMC4wNCksIC8vIFRPRE8oa2FyYSk6IGNoZWNrIHN0eWxlIHdpdGggTWF0ZXJpYWwgRGVzaWduIFVYXG4gIGNhcmQ6ICAgICAgIHdoaXRlLFxuICBkaWFsb2c6ICAgICB3aGl0ZSxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKGJsYWNrLCAwLjEyKSxcbiAgcmFpc2VkLWJ1dHRvbjogd2hpdGUsXG4gIGZvY3VzZWQtYnV0dG9uOiAkZGFyay1mb2N1c2VkLFxuICBzZWxlY3RlZC1idXR0b246IG1hcF9nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBzZWxlY3RlZC1kaXNhYmxlZC1idXR0b246IG1hcF9nZXQoJG1hdC1ncmV5LCA0MDApLFxuICBkaXNhYmxlZC1idXR0b24tdG9nZ2xlOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMjAwKSxcbiAgdW5zZWxlY3RlZC1jaGlwOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMzAwKSxcbiAgZGlzYWJsZWQtbGlzdC1vcHRpb246IG1hcF9nZXQoJG1hdC1ncmV5LCAyMDApLFxuKTtcblxuLy8gQmFja2dyb3VuZCBwYWxldHRlIGZvciBkYXJrIHRoZW1lcy5cbiRtYXQtZGFyay10aGVtZS1iYWNrZ3JvdW5kOiAoXG4gIHN0YXR1cy1iYXI6IGJsYWNrLFxuICBhcHAtYmFyOiAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgOTAwKSxcbiAgYmFja2dyb3VuZDogIzMwMzAzMCxcbiAgaG92ZXI6ICAgICAgcmdiYSh3aGl0ZSwgMC4wNCksIC8vIFRPRE8oa2FyYSk6IGNoZWNrIHN0eWxlIHdpdGggTWF0ZXJpYWwgRGVzaWduIFVYXG4gIGNhcmQ6ICAgICAgIG1hcF9nZXQoJG1hdC1ncmV5LCA4MDApLFxuICBkaWFsb2c6ICAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKHdoaXRlLCAwLjEyKSxcbiAgcmFpc2VkLWJ1dHRvbjogbWFwLWdldCgkbWF0LWdyZXksIDgwMCksXG4gIGZvY3VzZWQtYnV0dG9uOiAkbGlnaHQtZm9jdXNlZCxcbiAgc2VsZWN0ZWQtYnV0dG9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgOTAwKSxcbiAgc2VsZWN0ZWQtZGlzYWJsZWQtYnV0dG9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uLXRvZ2dsZTogYmxhY2ssXG4gIHVuc2VsZWN0ZWQtY2hpcDogbWFwX2dldCgkbWF0LWdyZXksIDcwMCksXG4gIGRpc2FibGVkLWxpc3Qtb3B0aW9uOiBibGFjayxcbik7XG5cbi8vIEZvcmVncm91bmQgcGFsZXR0ZSBmb3IgbGlnaHQgdGhlbWVzLlxuJG1hdC1saWdodC10aGVtZS1mb3JlZ3JvdW5kOiAoXG4gIGJhc2U6ICAgICAgICAgICAgICBibGFjayxcbiAgZGl2aWRlcjogICAgICAgICAgICRkYXJrLWRpdmlkZXJzLFxuICBkaXZpZGVyczogICAgICAgICAgJGRhcmstZGl2aWRlcnMsXG4gIGRpc2FibGVkOiAgICAgICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBkaXNhYmxlZC1idXR0b246ICAgcmdiYShibGFjaywgMC4yNiksXG4gIGRpc2FibGVkLXRleHQ6ICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBlbGV2YXRpb246ICAgICAgICAgYmxhY2ssXG4gIGhpbnQtdGV4dDogICAgICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBzZWNvbmRhcnktdGV4dDogICAgJGRhcmstc2Vjb25kYXJ5LXRleHQsXG4gIGljb246ICAgICAgICAgICAgICByZ2JhKGJsYWNrLCAwLjU0KSxcbiAgaWNvbnM6ICAgICAgICAgICAgIHJnYmEoYmxhY2ssIDAuNTQpLFxuICB0ZXh0OiAgICAgICAgICAgICAgcmdiYShibGFjaywgMC44NyksXG4gIHNsaWRlci1taW46ICAgICAgICByZ2JhKGJsYWNrLCAwLjg3KSxcbiAgc2xpZGVyLW9mZjogICAgICAgIHJnYmEoYmxhY2ssIDAuMjYpLFxuICBzbGlkZXItb2ZmLWFjdGl2ZTogcmdiYShibGFjaywgMC4zOCksXG4pO1xuXG4vLyBGb3JlZ3JvdW5kIHBhbGV0dGUgZm9yIGRhcmsgdGhlbWVzLlxuJG1hdC1kYXJrLXRoZW1lLWZvcmVncm91bmQ6IChcbiAgYmFzZTogICAgICAgICAgICAgIHdoaXRlLFxuICBkaXZpZGVyOiAgICAgICAgICAgJGxpZ2h0LWRpdmlkZXJzLFxuICBkaXZpZGVyczogICAgICAgICAgJGxpZ2h0LWRpdmlkZXJzLFxuICBkaXNhYmxlZDogICAgICAgICAgJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIGRpc2FibGVkLWJ1dHRvbjogICByZ2JhKHdoaXRlLCAwLjMpLFxuICBkaXNhYmxlZC10ZXh0OiAgICAgJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIGVsZXZhdGlvbjogICAgICAgICBibGFjayxcbiAgaGludC10ZXh0OiAgICAgICAgICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBzZWNvbmRhcnktdGV4dDogICAgJGxpZ2h0LXNlY29uZGFyeS10ZXh0LFxuICBpY29uOiAgICAgICAgICAgICAgd2hpdGUsXG4gIGljb25zOiAgICAgICAgICAgICB3aGl0ZSxcbiAgdGV4dDogICAgICAgICAgICAgIHdoaXRlLFxuICBzbGlkZXItbWluOiAgICAgICAgd2hpdGUsXG4gIHNsaWRlci1vZmY6ICAgICAgICByZ2JhKHdoaXRlLCAwLjMpLFxuICBzbGlkZXItb2ZmLWFjdGl2ZTogcmdiYSh3aGl0ZSwgMC4zKSxcbik7XG5cblxuXG4vLyBGb3IgYSBnaXZlbiBodWUgaW4gYSBwYWxldHRlLCByZXR1cm4gdGhlIGNvbnRyYXN0IGNvbG9yIGZyb20gdGhlIG1hcCBvZiBjb250cmFzdCBwYWxldHRlcy5cbi8vIEBwYXJhbSAkY29sb3ItbWFwXG4vLyBAcGFyYW0gJGh1ZVxuQGZ1bmN0aW9uIG1hdC1jb250cmFzdCgkcGFsZXR0ZSwgJGh1ZSkge1xuICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkcGFsZXR0ZSwgY29udHJhc3QpLCAkaHVlKTtcbn1cblxuXG4vLyBDcmVhdGVzIGEgbWFwIG9mIGh1ZXMgdG8gY29sb3JzIGZvciBhIHRoZW1lLiBUaGlzIGlzIHVzZWQgdG8gZGVmaW5lIGEgdGhlbWUgcGFsZXR0ZSBpbiB0ZXJtc1xuLy8gb2YgdGhlIE1hdGVyaWFsIERlc2lnbiBodWVzLlxuLy8gQHBhcmFtICRjb2xvci1tYXBcbi8vIEBwYXJhbSAkcHJpbWFyeVxuLy8gQHBhcmFtICRsaWdodGVyXG5AZnVuY3Rpb24gbWF0LXBhbGV0dGUoJGJhc2UtcGFsZXR0ZSwgJGRlZmF1bHQ6IDUwMCwgJGxpZ2h0ZXI6IDEwMCwgJGRhcmtlcjogNzAwLCAkdGV4dDogJGRlZmF1bHQpIHtcbiAgJHJlc3VsdDogbWFwX21lcmdlKCRiYXNlLXBhbGV0dGUsIChcbiAgICBkZWZhdWx0OiBtYXAtZ2V0KCRiYXNlLXBhbGV0dGUsICRkZWZhdWx0KSxcbiAgICBsaWdodGVyOiBtYXAtZ2V0KCRiYXNlLXBhbGV0dGUsICRsaWdodGVyKSxcbiAgICBkYXJrZXI6IG1hcC1nZXQoJGJhc2UtcGFsZXR0ZSwgJGRhcmtlciksXG4gICAgdGV4dDogbWFwLWdldCgkYmFzZS1wYWxldHRlLCAkdGV4dCksXG5cbiAgICBkZWZhdWx0LWNvbnRyYXN0OiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGRlZmF1bHQpLFxuICAgIGxpZ2h0ZXItY29udHJhc3Q6IG1hdC1jb250cmFzdCgkYmFzZS1wYWxldHRlLCAkbGlnaHRlciksXG4gICAgZGFya2VyLWNvbnRyYXN0OiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGRhcmtlcilcbiAgKSk7XG5cbiAgLy8gRm9yIGVhY2ggaHVlIGluIHRoZSBwYWxldHRlLCBhZGQgYSBcIi1jb250cmFzdFwiIGNvbG9yIHRvIHRoZSBtYXAuXG4gIEBlYWNoICRodWUsICRjb2xvciBpbiAkYmFzZS1wYWxldHRlIHtcbiAgICAkcmVzdWx0OiBtYXBfbWVyZ2UoJHJlc3VsdCwgKFxuICAgICAgJyN7JGh1ZX0tY29udHJhc3QnOiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGh1ZSlcbiAgICApKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuXG4vLyBHZXRzIGEgY29sb3IgZnJvbSBhIHRoZW1lIHBhbGV0dGUgKHRoZSBvdXRwdXQgb2YgbWF0LXBhbGV0dGUpLlxuLy8gVGhlIGh1ZSBjYW4gYmUgb25lIG9mIHRoZSBzdGFuZGFyZCB2YWx1ZXMgKDUwMCwgQTQwMCwgZXRjLiksIG9uZSBvZiB0aGUgdGhyZWUgcHJlY29uZmlndXJlZFxuLy8gaHVlcyAoZGVmYXVsdCwgbGlnaHRlciwgZGFya2VyKSwgb3IgYW55IG9mIHRoZSBhZm9yZW1lbnRpb25lZCBwcmVmaXhlZCB3aXRoIFwiLWNvbnRyYXN0XCIuXG4vL1xuLy8gQHBhcmFtICRjb2xvci1tYXAgVGhlIHRoZW1lIHBhbGV0dGUgKG91dHB1dCBvZiBtYXQtcGFsZXR0ZSkuXG4vLyBAcGFyYW0gJGh1ZSBUaGUgaHVlIGZyb20gdGhlIHBhbGV0dGUgdG8gdXNlLiBJZiB0aGlzIGlzIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxLCBpdCB3aWxsXG4vLyAgICAgYmUgdHJlYXRlZCBhcyBvcGFjaXR5LlxuLy8gQHBhcmFtICRvcGFjaXR5IFRoZSBhbHBoYSBjaGFubmVsIHZhbHVlIGZvciB0aGUgY29sb3IuXG5AZnVuY3Rpb24gbWF0LWNvbG9yKCRwYWxldHRlLCAkaHVlOiBkZWZhdWx0LCAkb3BhY2l0eTogbnVsbCkge1xuICAvLyBJZiBodWVLZXkgaXMgYSBudW1iZXIgYmV0d2VlbiB6ZXJvIGFuZCBvbmUsIHRoZW4gaXQgYWN0dWFsbHkgY29udGFpbnMgYW5cbiAgLy8gb3BhY2l0eSB2YWx1ZSwgc28gcmVjYWxsIHRoaXMgZnVuY3Rpb24gd2l0aCB0aGUgZGVmYXVsdCBodWUgYW5kIHRoYXQgZ2l2ZW4gb3BhY2l0eS5cbiAgQGlmIHR5cGUtb2YoJGh1ZSkgPT0gbnVtYmVyIGFuZCAkaHVlID49IDAgYW5kICRodWUgPD0gMSB7XG4gICAgQHJldHVybiBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQsICRodWUpO1xuICB9XG5cbiAgJGNvbG9yOiBtYXAtZ2V0KCRwYWxldHRlLCAkaHVlKTtcblxuICBAaWYgKHR5cGUtb2YoJGNvbG9yKSAhPSBjb2xvcikge1xuICAgIC8vIElmIHRoZSAkY29sb3IgcmVzb2x2ZWQgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIGEgY29sb3IgKGUuZy4gYSBDU1MgdmFyaWFibGUpLFxuICAgIC8vIHdlIGNhbid0IGFwcGx5IHRoZSBvcGFjaXR5IGFueXdheSBzbyB3ZSByZXR1cm4gdGhlIHZhbHVlIGFzIGlzLCBvdGhlcndpc2UgU2FzcyBjYW5cbiAgICAvLyB0aHJvdyBhbiBlcnJvciBvciBvdXRwdXQgc29tZXRoaW5nIGludmFsaWQuXG4gICAgQHJldHVybiAkY29sb3I7XG4gIH1cblxuICBAcmV0dXJuIHJnYmEoJGNvbG9yLCBpZigkb3BhY2l0eSA9PSBudWxsLCBvcGFjaXR5KCRjb2xvciksICRvcGFjaXR5KSk7XG59XG5cblxuLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBvYmplY3QgZm9yIGEgbGlnaHQgdGhlbWUgdG8gYmUgZ2l2ZW4gdG8gaW5kaXZpZHVhbCBjb21wb25lbnQgdGhlbWUgbWl4aW5zLlxuQGZ1bmN0aW9uIG1hdC1saWdodC10aGVtZSgkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm46IG1hdC1wYWxldHRlKCRtYXQtcmVkKSkge1xuICBAcmV0dXJuIChcbiAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICBhY2NlbnQ6ICRhY2NlbnQsXG4gICAgd2FybjogJHdhcm4sXG4gICAgaXMtZGFyazogZmFsc2UsXG4gICAgZm9yZWdyb3VuZDogJG1hdC1saWdodC10aGVtZS1mb3JlZ3JvdW5kLFxuICAgIGJhY2tncm91bmQ6ICRtYXQtbGlnaHQtdGhlbWUtYmFja2dyb3VuZCxcbiAgKTtcbn1cblxuXG4vLyBDcmVhdGVzIGEgY29udGFpbmVyIG9iamVjdCBmb3IgYSBkYXJrIHRoZW1lIHRvIGJlIGdpdmVuIHRvIGluZGl2aWR1YWwgY29tcG9uZW50IHRoZW1lIG1peGlucy5cbkBmdW5jdGlvbiBtYXQtZGFyay10aGVtZSgkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm46IG1hdC1wYWxldHRlKCRtYXQtcmVkKSkge1xuICBAcmV0dXJuIChcbiAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICBhY2NlbnQ6ICRhY2NlbnQsXG4gICAgd2FybjogJHdhcm4sXG4gICAgaXMtZGFyazogdHJ1ZSxcbiAgICBmb3JlZ3JvdW5kOiAkbWF0LWRhcmstdGhlbWUtZm9yZWdyb3VuZCxcbiAgICBiYWNrZ3JvdW5kOiAkbWF0LWRhcmstdGhlbWUtYmFja2dyb3VuZCxcbiAgKTtcbn1cblxuXG5cbiRtYXQtcmlwcGxlLWNvbG9yLW9wYWNpdHk6IDAuMTtcblxuQG1peGluIG1hdC1yaXBwbGUoKSB7XG5cbiAgLy8gVGhlIGhvc3QgZWxlbWVudCBvZiBhbiBtYXQtcmlwcGxlIGRpcmVjdGl2ZSBzaG91bGQgYWx3YXlzIGhhdmUgYSBwb3NpdGlvbiBvZiBcImFic29sdXRlXCIgb3JcbiAgLy8gXCJyZWxhdGl2ZVwiIHNvIHRoYXQgdGhlIHJpcHBsZXMgaW5zaWRlIGFyZSBjb3JyZWN0bHkgcG9zaXRpb25lZCByZWxhdGl2ZWx5IHRvIHRoZSBjb250YWluZXIuXG4gIC5tYXQtcmlwcGxlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLy8gQnkgZGVmYXVsdCwgZXZlcnkgcmlwcGxlIGNvbnRhaW5lciBzaG91bGQgaGF2ZSBwb3NpdGlvbjogcmVsYXRpdmUgaW4gZmF2b3Igb2YgY3JlYXRpbmcgYW5cbiAgICAvLyBlYXN5IEFQSSBmb3IgZGV2ZWxvcGVycyB1c2luZyB0aGUgTWF0UmlwcGxlIGRpcmVjdGl2ZS5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZCB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cblxuICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSwgdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuXG4gICAgLy8gSW4gaGlnaCBjb250cmFzdCBtb2RlIHRoZSByaXBwbGUgaXMgb3BhcXVlLCBjYXVzaW5nIGl0IHRvIG9ic3RydWN0IHRoZSBjb250ZW50LlxuICAgIEBpbmNsdWRlIGNkay1oaWdoLWNvbnRyYXN0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8qIFRoZW1lIGZvciB0aGUgcmlwcGxlIGVsZW1lbnRzLiovXG5AbWl4aW4gbWF0LXJpcHBsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcF9nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQtYmFzZTogbWFwX2dldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgLy8gSWYgdGhlIHJpcHBsZSBjb2xvciBpcyByZXNvbHZlcyB0byBhIGNvbG9yICp0eXBlKiwgd2UgY2FuIHVzZSBpdCBkaXJlY3RseSwgb3RoZXJ3aXNlXG4gICAgLy8gKGUuZy4gaXQgcmVzb2x2ZXMgdG8gYSBDU1MgdmFyaWFibGUpIHdlIGZhbGwgYmFjayB0byB1c2luZyB0aGUgY29sb3IgYW5kIHNldHRpbmcgYW4gb3BhY2l0eS5cbiAgICBAaWYgKHR5cGUtb2YoJGZvcmVncm91bmQtYmFzZSkgPT0gY29sb3IpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGZvcmVncm91bmQtYmFzZSwgJG1hdC1yaXBwbGUtY29sb3Itb3BhY2l0eSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmb3JlZ3JvdW5kLWJhc2U7XG4gICAgICBvcGFjaXR5OiAkbWF0LXJpcHBsZS1jb2xvci1vcGFjaXR5O1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gVXRpbGl0eSBmb3IgZmV0Y2hpbmcgYSBuZXN0ZWQgdmFsdWUgZnJvbSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCAkbmFtZSkge1xuICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkY29uZmlnLCAkbGV2ZWwpLCAkbmFtZSk7XG59XG5cbi8vIEdldHMgdGhlIGZvbnQgc2l6ZSBmb3IgYSBsZXZlbCBpbnNpZGUgYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBtYXQtZm9udC1zaXplKCRjb25maWcsICRsZXZlbCkge1xuICBAcmV0dXJuIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBmb250LXNpemUpO1xufVxuXG4vLyBHZXRzIHRoZSBsaW5lIGhlaWdodCBmb3IgYSBsZXZlbCBpbnNpZGUgYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgJGxldmVsKSB7XG4gIEByZXR1cm4gX21hdC1nZXQtdHlwZS12YWx1ZSgkY29uZmlnLCAkbGV2ZWwsIGxpbmUtaGVpZ2h0KTtcbn1cblxuLy8gR2V0cyB0aGUgZm9udCB3ZWlnaHQgZm9yIGEgbGV2ZWwgaW5zaWRlIGEgdHlwb2dyYXBoeSBjb25maWcuXG5AZnVuY3Rpb24gbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsICRsZXZlbCkge1xuICBAcmV0dXJuIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBmb250LXdlaWdodCk7XG59XG5cbi8vIEdldHMgdGhlIGxldHRlciBzcGFjaW5nIGZvciBhIGxldmVsIGluc2lkZSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIG1hdC1sZXR0ZXItc3BhY2luZygkY29uZmlnLCAkbGV2ZWwpIHtcbiAgQHJldHVybiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgbGV0dGVyLXNwYWNpbmcpO1xufVxuXG4vLyBHZXRzIHRoZSBmb250LWZhbWlseSBmcm9tIGEgdHlwb2dyYXBoeSBjb25maWcgYW5kIHJlbW92ZXMgdGhlIHF1b3RlcyBhcm91bmQgaXQuXG5AZnVuY3Rpb24gbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsICRsZXZlbDogbnVsbCkge1xuICAkZm9udC1mYW1pbHk6IG1hcC1nZXQoJGNvbmZpZywgZm9udC1mYW1pbHkpO1xuXG4gIEBpZiAkbGV2ZWwgIT0gbnVsbCB7XG4gICAgJGZvbnQtZmFtaWx5OiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgZm9udC1mYW1pbHkpO1xuICB9XG5cbiAgLy8gR3VhcmQgYWdhaW5zdCB1bnF1b3Rpbmcgbm9uLXN0cmluZyB2YWx1ZXMsIGJlY2F1c2UgaXQncyBkZXByZWNhdGVkLlxuICBAcmV0dXJuIGlmKHR5cGUtb2YoJGZvbnQtZmFtaWx5KSA9PSBzdHJpbmcsIHVucXVvdGUoJGZvbnQtZmFtaWx5KSwgJGZvbnQtZmFtaWx5KTtcbn1cblxuLy8gT3V0cHV0cyB0aGUgc2hvcnRoYW5kIGBmb250YCBDU1MgcHJvcGVydHksIGJhc2VkIG9uIGEgc2V0IG9mIHR5cG9ncmFwaHkgdmFsdWVzLiBGYWxscyBiYWNrIHRvXG4vLyB0aGUgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIGlmIGEgdmFsdWUgdGhhdCBpc24ndCBhbGxvd2VkIGluIHRoZSBzaG9ydGhhbmQgaXMgcGFzc2VkIGluLlxuQG1peGluIG1hdC10eXBvZ3JhcGh5LWZvbnQtc2hvcnRoYW5kKCRmb250LXNpemUsICRmb250LXdlaWdodCwgJGxpbmUtaGVpZ2h0LCAkZm9udC1mYW1pbHkpIHtcbiAgLy8gSWYgYW55IG9mIHRoZSB2YWx1ZXMgYXJlIHNldCB0byBgaW5oZXJpdGAsIHdlIGNhbid0IHVzZSB0aGUgc2hvcnRoYW5kXG4gIC8vIHNvIHdlIGZhbGwgYmFjayB0byBwYXNzaW5nIGluIHRoZSBpbmRpdmlkdWFsIHByb3BlcnRpZXMuXG4gIEBpZiAoJGZvbnQtc2l6ZSA9PSBpbmhlcml0IG9yXG4gICAgICAgJGZvbnQtd2VpZ2h0ID09IGluaGVyaXQgb3JcbiAgICAgICAkbGluZS1oZWlnaHQgPT0gaW5oZXJpdCBvclxuICAgICAgICRmb250LWZhbWlseSA9PSBpbmhlcml0IG9yXG4gICAgICAgJGZvbnQtc2l6ZSA9PSBudWxsIG9yXG4gICAgICAgJGZvbnQtd2VpZ2h0ID09IG51bGwgb3JcbiAgICAgICAkbGluZS1oZWlnaHQgPT0gbnVsbCBvclxuICAgICAgICRmb250LWZhbWlseSA9PSBudWxsKSB7XG5cbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIE90aGVyd2lzZSB1c2UgdGhlIHNob3J0aGFuZCBgZm9udGAsIGJlY2F1c2UgaXQncyB0aGUgbGVhc3QgYW1vdW50IG9mIGJ5dGVzLiBOb3RlXG4gICAgLy8gdGhhdCB3ZSBuZWVkIHRvIHVzZSBpbnRlcnBvbGF0aW9uIGZvciBgZm9udC1zaXplL2xpbmUtaGVpZ2h0YCBpbiBvcmRlciB0byBwcmV2ZW50XG4gICAgLy8gU2FzcyBmcm9tIGRpdmlkaW5nIHRoZSB0d28gdmFsdWVzLlxuICAgIGZvbnQ6ICRmb250LXdlaWdodCAjeyRmb250LXNpemV9LyN7JGxpbmUtaGVpZ2h0fSAkZm9udC1mYW1pbHk7XG4gIH1cbn1cblxuLy8gQ29udmVydHMgYSB0eXBvZ3JhcGh5IGxldmVsIGludG8gQ1NTIHN0eWxlcy5cbkBtaXhpbiBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgJGxldmVsKSB7XG4gICRmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgJGxldmVsKTtcbiAgJGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgJGxldmVsKTtcbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgJGxldmVsKTtcbiAgJGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgJGxldmVsKTtcblxuICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZCgkZm9udC1zaXplLCAkZm9udC13ZWlnaHQsICRsaW5lLWhlaWdodCwgJGZvbnQtZmFtaWx5KTtcbiAgbGV0dGVyLXNwYWNpbmc6IG1hdC1sZXR0ZXItc3BhY2luZygkY29uZmlnLCAkbGV2ZWwpO1xufVxuXG5cbkBtaXhpbiBtYXQtb3B0aW9uLXRoZW1lKCR0aGVtZSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcblxuICAubWF0LW9wdGlvbiB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAmOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksXG4gICAgJjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgIH1cblxuICAgIC8vIEluIG11bHRpcGxlIG1vZGUgdGhlcmUgaXMgYSBjaGVja2JveCB0byBzaG93IHRoYXQgdGhlIG9wdGlvbiBpcyBzZWxlY3RlZC5cbiAgICAmLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgfVxuXG4gICAgJi5tYXQtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtb3B0aW9uLWRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1wcmltYXJ5IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LW9wdGlvbi10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1vcHRpb24ge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBzdWJoZWFkaW5nLTIpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtb3B0Z3JvdXAtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1vcHRncm91cC1kaXNhYmxlZCAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtb3B0Z3JvdXAtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTIpO1xuICB9XG59XG5cblxuXG5AbWl4aW4gbWF0LXBzZXVkby1jaGVja2JveC10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG5cbiAgLy8gTk9URSh0cmF2aXNrYXVmbWFuKTogV2hpbGUgdGhlIHNwZWMgY2FsbHMgZm9yIHRyYW5zbHVjZW50IGJsYWNrcy93aGl0ZXMgZm9yIGRpc2FibGVkIGNvbG9ycyxcbiAgLy8gdGhpcyBkb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBlbGVtZW50cyBsYXllcmVkIG9uIHRvcCBvZiBvbmUgYW5vdGhlci4gVG8gZ2V0IGFyb3VuZCB0aGlzIHdlXG4gIC8vIGJsZW5kIHRoZSBjb2xvcnMgdG9nZXRoZXIgYmFzZWQgb24gdGhlIGJhc2UgY29sb3IgYW5kIHRoZSB0aGVtZSBiYWNrZ3JvdW5kLlxuICAkd2hpdGUtMzBwY3Qtb3BhY2l0eS1vbi1kYXJrOiAjNjg2ODY4O1xuICAkYmxhY2stMjZwY3Qtb3BhY2l0eS1vbi1saWdodDogI2IwYjBiMDtcbiAgJGRpc2FibGVkLWNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJHdoaXRlLTMwcGN0LW9wYWNpdHktb24tZGFyaywgJGJsYWNrLTI2cGN0LW9wYWNpdHktb24tbGlnaHQpO1xuICAkY29sb3JlZC1ib3gtc2VsZWN0b3I6ICcubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlJztcblxuICAubWF0LXBzZXVkby1jaGVja2JveCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCksIHNlY29uZGFyeS10ZXh0KTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICBjb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IobWFwLWdldCgkdGhlbWUsIHByaW1hcnkpKTtcbiAgfVxuXG4gIC8vIERlZmF1bHQgdG8gdGhlIGFjY2VudCBjb2xvci4gTm90ZSB0aGF0IHRoZSBwc2V1ZG8gY2hlY2tib3hlcyBhcmUgbWVhbnQgdG8gaW5oZXJpdCB0aGVcbiAgLy8gdGhlbWUgZnJvbSB0aGVpciBwYXJlbnQsIHJhdGhlciB0aGFuIGltcGxlbWVudGluZyB0aGVpciBvd24gdGhlbWluZywgd2hpY2ggaXMgd2h5IHdlXG4gIC8vIGRvbid0IGF0dGFjaCB0byB0aGUgYG1hdC0qYCBjbGFzc2VzLiBBbHNvIG5vdGUgdGhhdCB0aGlzIG5lZWRzIHRvIGJlIGJlbG93IGAubWF0LXByaW1hcnlgXG4gIC8vIGluIG9yZGVyIHRvIGFsbG93IGZvciB0aGUgY29sb3IgdG8gYmUgb3ZlcndyaXR0ZW4gaWYgdGhlIGNoZWNrYm94IGlzIGluc2lkZSBhIHBhcmVudCB0aGF0XG4gIC8vIGhhcyBgbWF0LWFjY2VudGAgYW5kIGlzIHBsYWNlZCBpbnNpZGUgYW5vdGhlciBwYXJlbnQgdGhhdCBoYXMgYG1hdC1wcmltYXJ5YC5cbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSxcbiAgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbiAgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpKTtcbiAgfVxuXG4gIC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKG1hcC1nZXQoJHRoZW1lLCB3YXJuKSk7XG4gIH1cblxuICAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICAmLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICAgICAgYmFja2dyb3VuZDogJGRpc2FibGVkLWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gUmVwcmVzZW50cyBhIHR5cG9ncmFwaHkgbGV2ZWwgZnJvbSB0aGUgTWF0ZXJpYWwgZGVzaWduIHNwZWMuXG5AZnVuY3Rpb24gbWF0LXR5cG9ncmFwaHktbGV2ZWwoXG4gICRmb250LXNpemUsXG4gICRsaW5lLWhlaWdodDogJGZvbnQtc2l6ZSxcbiAgJGZvbnQtd2VpZ2h0OiA0MDAsXG4gICRmb250LWZhbWlseTogbnVsbCxcbiAgJGxldHRlci1zcGFjaW5nOiBudWxsKSB7XG5cbiAgQHJldHVybiAoXG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLFxuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQsXG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodCxcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LFxuICAgIGxldHRlci1zcGFjaW5nOiAkbGV0dGVyLXNwYWNpbmdcbiAgKTtcbn1cblxuLy8gUmVwcmVzZW50cyBhIGNvbGxlY3Rpb24gb2YgdHlwb2dyYXBoeSBsZXZlbHMuXG4vLyBEZWZhdWx0cyBjb21lIGZyb20gaHR0cHM6Ly9tYXRlcmlhbC5pby9ndWlkZWxpbmVzL3N0eWxlL3R5cG9ncmFwaHkuaHRtbFxuLy8gTm90ZTogVGhlIHNwZWMgZG9lc24ndCBtZW50aW9uIGxldHRlciBzcGFjaW5nLiBUaGUgdmFsdWVzIGhlcmUgY29tZSBmcm9tXG4vLyBleWViYWxsaW5nIGl0IHVudGlsIGl0IGxvb2tlZCBleGFjdGx5IGxpa2UgdGhlIHNwZWMgZXhhbXBsZXMuXG5AZnVuY3Rpb24gbWF0LXR5cG9ncmFwaHktY29uZmlnKFxuICAkZm9udC1mYW1pbHk6ICAgJ1JvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmJyxcbiAgJGRpc3BsYXktNDogICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDExMnB4LCAxMTJweCwgMzAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjA1ZW0pLFxuICAkZGlzcGxheS0zOiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoNTZweCwgNTZweCwgNDAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW0pLFxuICAkZGlzcGxheS0yOiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoNDVweCwgNDhweCwgNDAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjAwNWVtKSxcbiAgJGRpc3BsYXktMTogICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDM0cHgsIDQwcHgsIDQwMCksXG4gICRoZWFkbGluZTogICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgyNHB4LCAzMnB4LCA0MDApLFxuICAkdGl0bGU6ICAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMjBweCwgMzJweCwgNTAwKSxcbiAgJHN1YmhlYWRpbmctMjogIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE2cHgsIDI4cHgsIDQwMCksXG4gICRzdWJoZWFkaW5nLTE6ICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNXB4LCAyNHB4LCA0MDApLFxuICAkYm9keS0yOiAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTRweCwgMjRweCwgNTAwKSxcbiAgJGJvZHktMTogICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE0cHgsIDIwcHgsIDQwMCksXG4gICRjYXB0aW9uOiAgICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxMnB4LCAyMHB4LCA0MDApLFxuICAkYnV0dG9uOiAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTRweCwgMTRweCwgNTAwKSxcbiAgLy8gTGluZS1oZWlnaHQgbXVzdCBiZSB1bml0LWxlc3MgZnJhY3Rpb24gb2YgdGhlIGZvbnQtc2l6ZS5cbiAgJGlucHV0OiAgICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKGluaGVyaXQsIDEuMTI1LCA0MDApXG4pIHtcblxuICAvLyBEZWNsYXJlIGFuIGluaXRpYWwgbWFwIHdpdGggYWxsIG9mIHRoZSBsZXZlbHMuXG4gICRjb25maWc6IChcbiAgICBkaXNwbGF5LTQ6ICAgICAgJGRpc3BsYXktNCxcbiAgICBkaXNwbGF5LTM6ICAgICAgJGRpc3BsYXktMyxcbiAgICBkaXNwbGF5LTI6ICAgICAgJGRpc3BsYXktMixcbiAgICBkaXNwbGF5LTE6ICAgICAgJGRpc3BsYXktMSxcbiAgICBoZWFkbGluZTogICAgICAgJGhlYWRsaW5lLFxuICAgIHRpdGxlOiAgICAgICAgICAkdGl0bGUsXG4gICAgc3ViaGVhZGluZy0yOiAgICRzdWJoZWFkaW5nLTIsXG4gICAgc3ViaGVhZGluZy0xOiAgICRzdWJoZWFkaW5nLTEsXG4gICAgYm9keS0yOiAgICAgICAgICRib2R5LTIsXG4gICAgYm9keS0xOiAgICAgICAgICRib2R5LTEsXG4gICAgY2FwdGlvbjogICAgICAgICRjYXB0aW9uLFxuICAgIGJ1dHRvbjogICAgICAgICAkYnV0dG9uLFxuICAgIGlucHV0OiAgICAgICAgICAkaW5wdXQsXG4gICk7XG5cbiAgLy8gTG9vcCB0aHJvdWdoIHRoZSBsZXZlbHMgYW5kIHNldCB0aGUgYGZvbnQtZmFtaWx5YCBvZiB0aGUgb25lcyB0aGF0IGRvbid0IGhhdmUgb25lIHRvIHRoZSBiYXNlLlxuICAvLyBOb3RlIHRoYXQgU2FzcyBjYW4ndCBtb2RpZnkgbWFwcyBpbiBwbGFjZSwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBuZWVkIHRvIG1lcmdlIGFuZCByZS1hc3NpZ24uXG4gIEBlYWNoICRrZXksICRsZXZlbCBpbiAkY29uZmlnIHtcbiAgICBAaWYgbWFwLWdldCgkbGV2ZWwsIGZvbnQtZmFtaWx5KSA9PSBudWxsIHtcbiAgICAgICRuZXctbGV2ZWw6IG1hcC1tZXJnZSgkbGV2ZWwsIChmb250LWZhbWlseTogJGZvbnQtZmFtaWx5KSk7XG4gICAgICAkY29uZmlnOiBtYXAtbWVyZ2UoJGNvbmZpZywgKCRrZXk6ICRuZXctbGV2ZWwpKTtcbiAgICB9XG4gIH1cblxuICAvLyBBZGQgdGhlIGJhc2UgZm9udCBmYW1pbHkgdG8gdGhlIGNvbmZpZy5cbiAgQHJldHVybiBtYXAtbWVyZ2UoJGNvbmZpZywgKGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHkpKTtcbn1cblxuLy8gQWRkcyB0aGUgYmFzZSB0eXBvZ3JhcGh5IHN0eWxlcywgYmFzZWQgb24gYSBjb25maWcuXG5AbWl4aW4gbWF0LWJhc2UtdHlwb2dyYXBoeSgkY29uZmlnLCAkc2VsZWN0b3I6ICcubWF0LXR5cG9ncmFwaHknKSB7XG4gIC5tYXQtaDEsIC5tYXQtaGVhZGxpbmUsICN7JHNlbGVjdG9yfSBoMSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGhlYWRsaW5lKTtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICB9XG5cbiAgLm1hdC1oMiwgLm1hdC10aXRsZSwgI3skc2VsZWN0b3J9IGgyIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgdGl0bGUpO1xuICAgIG1hcmdpbjogMCAwIDE2cHg7XG4gIH1cblxuICAubWF0LWgzLCAubWF0LXN1YmhlYWRpbmctMiwgI3skc2VsZWN0b3J9IGgzIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgc3ViaGVhZGluZy0yKTtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICB9XG5cbiAgLm1hdC1oNCwgLm1hdC1zdWJoZWFkaW5nLTEsICN7JHNlbGVjdG9yfSBoNCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgbWFyZ2luOiAwIDAgMTZweDtcbiAgfVxuXG4gIC8vIE5vdGU6IHRoZSBzcGVjIGRvZXNuJ3QgaGF2ZSBhbnl0aGluZyB0aGF0IHdvdWxkIGNvcnJlc3BvbmQgdG8gaDUgYW5kIGg2LCBidXQgd2UgYWRkIHRoZXNlIGZvclxuICAvLyBjb25zaXN0ZW5jeS4gVGhlIGZvbnQgc2l6ZXMgY29tZSBmcm9tIHRoZSBDaHJvbWUgdXNlciBhZ2VudCBzdHlsZXMgd2hpY2ggaGF2ZSBoNSBhdCAwLjgzZW1cbiAgLy8gYW5kIGg2IGF0IDAuNjdlbS5cbiAgLm1hdC1oNSwgI3skc2VsZWN0b3J9IGg1IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZChcbiAgICAgICAvLyBjYWxjIGlzIHVzZWQgaGVyZSB0byBzdXBwb3J0IGNzcyB2YXJpYWJsZXNcbiAgICAgIGNhbGMoI3ttYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSl9ICogMC44MyksXG4gICAgICBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgIG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBib2R5LTEpLFxuICAgICAgbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMSlcbiAgICApO1xuXG4gICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgfVxuXG4gIC5tYXQtaDYsICN7JHNlbGVjdG9yfSBoNiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktZm9udC1zaG9ydGhhbmQoXG4gICAgICAgLy8gY2FsYyBpcyB1c2VkIGhlcmUgdG8gc3VwcG9ydCBjc3MgdmFyaWFibGVzXG4gICAgICBjYWxjKCN7bWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpfSAqIDAuNjcpLFxuICAgICAgbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSksXG4gICAgICBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgIG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBib2R5LTEpXG4gICAgKTtcblxuICAgIG1hcmdpbjogMCAwIDEycHg7XG4gIH1cblxuICAubWF0LWJvZHktc3Ryb25nLCAubWF0LWJvZHktMiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGJvZHktMik7XG4gIH1cblxuICAubWF0LWJvZHksIC5tYXQtYm9keS0xLCAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuXG4gICAgcCB7XG4gICAgICBtYXJnaW46IDAgMCAxMnB4O1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc21hbGwsIC5tYXQtY2FwdGlvbiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGNhcHRpb24pO1xuICB9XG5cbiAgLm1hdC1kaXNwbGF5LTQsICN7JHNlbGVjdG9yfSAubWF0LWRpc3BsYXktNCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGRpc3BsYXktNCk7XG4gICAgbWFyZ2luOiAwIDAgNTZweDtcbiAgfVxuXG4gIC5tYXQtZGlzcGxheS0zLCAjeyRzZWxlY3Rvcn0gLm1hdC1kaXNwbGF5LTMge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBkaXNwbGF5LTMpO1xuICAgIG1hcmdpbjogMCAwIDY0cHg7XG4gIH1cblxuICAubWF0LWRpc3BsYXktMiwgI3skc2VsZWN0b3J9IC5tYXQtZGlzcGxheS0yIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgZGlzcGxheS0yKTtcbiAgICBtYXJnaW46IDAgMCA2NHB4O1xuICB9XG5cbiAgLm1hdC1kaXNwbGF5LTEsICN7JHNlbGVjdG9yfSAubWF0LWRpc3BsYXktMSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGRpc3BsYXktMSk7XG4gICAgbWFyZ2luOiAwIDAgNjRweDtcbiAgfVxufVxuXG5cblxuXG5AbWl4aW4gbWF0LWF1dG9jb21wbGV0ZS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcblxuICAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgLy8gU2VsZWN0ZWQgb3B0aW9ucyBpbiBhdXRvY29tcGxldGVzIHNob3VsZCBub3QgYmUgZ3JheSwgYnV0IHdlXG4gICAgLy8gb25seSB3YW50IHRvIG92ZXJyaWRlIHRoZSBiYWNrZ3JvdW5kIGZvciBzZWxlY3RlZCBvcHRpb25zIGlmXG4gICAgLy8gdGhleSBhcmUgKm5vdCogaW4gaG92ZXIgb3IgZm9jdXMgc3RhdGUuIFRoaXMgY2hhbmdlIGhhcyB0byBiZVxuICAgIC8vIG1hZGUgaGVyZSBiZWNhdXNlIGJhc2Ugb3B0aW9uIHN0eWxlcyBhcmUgc2hhcmVkIGJldHdlZW4gdGhlXG4gICAgLy8gYXV0b2NvbXBsZXRlIGFuZCB0aGUgc2VsZWN0LlxuICAgIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG5cbiAgICAgICY6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbkBtaXhpbiBtYXQtYXV0b2NvbXBsZXRlLXR5cG9ncmFwaHkoJGNvbmZpZykgeyB9XG5cbi8vIFRoaXMgY29udGFpbnMgYWxsIG9mIHRoZSBzdHlsZXMgZm9yIHRoZSBiYWRnZVxuLy8gcmF0aGVyIHRoYW4ganVzdCB0aGUgY29sb3IvdGhlbWUgYmVjYXVzZSBvZlxuLy8gbm8gc3R5bGUgc2hlZXQgc3VwcG9ydCBmb3IgZGlyZWN0aXZlcy5cblxuXG5cblxuXG4kbWF0LWJhZGdlLWZvbnQtc2l6ZTogMTJweDtcbiRtYXQtYmFkZ2UtZm9udC13ZWlnaHQ6IDYwMDtcbiRtYXQtYmFkZ2UtZGVmYXVsdC1zaXplOiAyMnB4ICFkZWZhdWx0O1xuJG1hdC1iYWRnZS1zbWFsbC1zaXplOiAkbWF0LWJhZGdlLWRlZmF1bHQtc2l6ZSAtIDY7XG4kbWF0LWJhZGdlLWxhcmdlLXNpemU6ICRtYXQtYmFkZ2UtZGVmYXVsdC1zaXplICsgNjtcblxuLy8gTWl4aW4gZm9yIGJ1aWxkaW5nIG9mZnNldCBnaXZlbiBkaWZmZXJlbnQgc2l6ZXNcbkBtaXhpbiBfbWF0LWJhZGdlLXNpemUoJHNpemUpIHtcbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJHNpemU7XG4gIH1cblxuICAmLm1hdC1iYWRnZS1hYm92ZSB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIHRvcDogLSRzaXplIC8gMjtcbiAgICB9XG4gIH1cblxuICAmLm1hdC1iYWRnZS1iZWxvdyB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIGJvdHRvbTogLSRzaXplIC8gMjtcbiAgICB9XG4gIH1cblxuICAmLm1hdC1iYWRnZS1iZWZvcmUge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBsZWZ0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgW2Rpcj0ncnRsJ10gJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIHJpZ2h0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgJi5tYXQtYmFkZ2UtYWZ0ZXIge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICByaWdodDogLSRzaXplO1xuICAgIH1cbiAgfVxuXG4gIFtkaXI9J3J0bCddICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBsZWZ0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgJi5tYXQtYmFkZ2Utb3ZlcmxhcCB7XG4gICAgJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIGxlZnQ6IC0kc2l6ZSAvIDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgW2Rpcj0ncnRsJ10gJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIHJpZ2h0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cblxuICAgIFtkaXI9J3J0bCddICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBsZWZ0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJhZGdlLXRoZW1lKCR0aGVtZSkge1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG5cbiAgICBAaW5jbHVkZSBjZGstaGlnaC1jb250cmFzdCB7XG4gICAgICBvdXRsaW5lOiBzb2xpZCAxcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2UtYWNjZW50IHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJhZGdlLXdhcm4ge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLm1hdC1iYWRnZS1oaWRkZW4ge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2UtZGlzYWJsZWQge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAkYXBwLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2JhY2tncm91bmQnKTtcbiAgICAgICRiYWRnZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC1idXR0b24pO1xuXG4gICAgICAvLyBUaGUgZGlzYWJsZWQgY29sb3IgdXN1YWxseSBoYXMgc29tZSBraW5kIG9mIG9wYWNpdHksIGJ1dCBiZWNhdXNlIHRoZSBiYWRnZSBpcyBvdmVybGF5ZWRcbiAgICAgIC8vIG9uIHRvcCBvZiBzb21ldGhpbmcgZWxzZSwgaXQgd29uJ3QgbG9vayBnb29kIGlmIGl0J3Mgb3BhcXVlLiBJZiBpdCBpcyBhIGNvbG9yICp0eXBlKixcbiAgICAgIC8vIHdlIGNvbnZlcnQgaXQgaW50byBhIHNvbGlkIGNvbG9yIGJ5IHRha2luZyB0aGUgb3BhY2l0eSBmcm9tIHRoZSByZ2JhIHZhbHVlIGFuZCB1c2luZ1xuICAgICAgLy8gdGhlIHZhbHVlIHRvIGRldGVybWluZSB0aGUgcGVyY2VudGFnZSBvZiB0aGUgYmFja2dyb3VuZCB0byBwdXQgaW50byBmb3JlZ3JvdW5kIHdoZW5cbiAgICAgIC8vIG1peGluZyB0aGUgY29sb3JzIHRvZ2V0aGVyLlxuICAgICAgQGlmICh0eXBlLW9mKCRiYWRnZS1jb2xvcikgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGFwcC1iYWNrZ3JvdW5kKSA9PSBjb2xvcikge1xuICAgICAgICAkYmFkZ2Utb3BhY2l0eTogb3BhY2l0eSgkYmFkZ2UtY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kOiBtaXgoJGFwcC1iYWNrZ3JvdW5kLCByZ2JhKCRiYWRnZS1jb2xvciwgMSksICgxIC0gJGJhZGdlLW9wYWNpdHkpICogMTAwJSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRiYWRnZS1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0O1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsXG4gIC5tYXQtYmFkZ2UtY29udGVudC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8vIFRoZSBhY3RpdmUgY2xhc3MgaXMgYWRkZWQgYWZ0ZXIgdGhlIGVsZW1lbnQgaXMgYWRkZWRcbiAgLy8gc28gaXQgY2FuIGFuaW1hdGUgc2NhbGUgdG8gZGVmYXVsdFxuICAubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZSB7XG4gICAgLy8gU2NhbGUgdG8gYG5vbmVgIGluc3RlYWQgb2YgYDFgIHRvIGF2b2lkIGJsdXJyeSB0ZXh0IGluIHNvbWUgYnJvd3NlcnMuXG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgLm1hdC1iYWRnZS1zbWFsbCB7XG4gICAgQGluY2x1ZGUgX21hdC1iYWRnZS1zaXplKCRtYXQtYmFkZ2Utc21hbGwtc2l6ZSk7XG4gIH1cbiAgLm1hdC1iYWRnZS1tZWRpdW0ge1xuICAgIEBpbmNsdWRlIF9tYXQtYmFkZ2Utc2l6ZSgkbWF0LWJhZGdlLWRlZmF1bHQtc2l6ZSk7XG4gIH1cbiAgLm1hdC1iYWRnZS1sYXJnZSB7XG4gICAgQGluY2x1ZGUgX21hdC1iYWRnZS1zaXplKCRtYXQtYmFkZ2UtbGFyZ2Utc2l6ZSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1iYWRnZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBmb250LXdlaWdodDogJG1hdC1iYWRnZS1mb250LXdlaWdodDtcbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplO1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgLy8gU2V0IHRoZSBmb250IHNpemUgdG8gNzUlIG9mIHRoZSBvcmlnaW5hbC5cbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplICogMC43NTtcbiAgfVxuXG4gIC5tYXQtYmFkZ2UtbGFyZ2UgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplICogMjtcbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtYm90dG9tLXNoZWV0LXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMTYsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtYm90dG9tLXNoZWV0LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG5cblxuJF9tYXQtYnV0dG9uLXJpcHBsZS1vcGFjaXR5OiAwLjE7XG5cbi8vIEFwcGxpZXMgYSBmb2N1cyBzdHlsZSB0byBhbiBtYXQtYnV0dG9uIGVsZW1lbnQgZm9yIGVhY2ggb2YgdGhlIHN1cHBvcnRlZCBwYWxldHRlcy5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LWNvbG9yKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcblxuICAmLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gIH1cblxuICAmLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICB9XG5cbiAgJi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHdhcm4pO1xuICB9XG5cbiAgJltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8gQXBwbGllcyB0aGUgYmFja2dyb3VuZCBjb2xvciBmb3IgYSByaXBwbGUuIElmIHRoZSB2YWx1ZSBwcm92aWRlZCBpcyBub3QgYSBTYXNzIGNvbG9yLFxuLy8gd2UgYXNzdW1lIHRoYXQgd2UndmUgYmVlbiBnaXZlbiBhIENTUyB2YXJpYWJsZS4gU2luY2Ugd2UgY2FuJ3QgcGVyZm9ybSBhbHBoYS1ibGVuZGluZ1xuLy8gb24gYSBDU1MgdmFyaWFibGUsIHdlIGluc3RlYWQgYWRkIHRoZSBvcGFjaXR5IGRpcmVjdGx5IHRvIHRoZSByaXBwbGUgZWxlbWVudC5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1yaXBwbGUtYmFja2dyb3VuZCgkcGFsZXR0ZSwgJGh1ZSwgJG9wYWNpdHkpIHtcbiAgJGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgJGh1ZSwgJG9wYWNpdHkpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgQGlmICh0eXBlLW9mKCRiYWNrZ3JvdW5kLWNvbG9yKSAhPSBjb2xvcikge1xuICAgIG9wYWNpdHk6ICRvcGFjaXR5O1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1yaXBwbGUtY29sb3IoJHRoZW1lLCAkaHVlLCAkb3BhY2l0eTogJF9tYXQtYnV0dG9uLXJpcHBsZS1vcGFjaXR5KSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gICYubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tcmlwcGxlLWJhY2tncm91bmQoJHByaW1hcnksICRodWUsICRvcGFjaXR5KTtcbiAgfVxuXG4gICYubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi1yaXBwbGUtYmFja2dyb3VuZCgkYWNjZW50LCAkaHVlLCAkb3BhY2l0eSk7XG4gIH1cblxuICAmLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXJpcHBsZS1iYWNrZ3JvdW5kKCR3YXJuLCAkaHVlLCAkb3BhY2l0eSk7XG4gIH1cbn1cblxuLy8gQXBwbGllcyBhIHByb3BlcnR5IHRvIGFuIG1hdC1idXR0b24gZWxlbWVudCBmb3IgZWFjaCBvZiB0aGUgc3VwcG9ydGVkIHBhbGV0dGVzLlxuQG1peGluIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCR0aGVtZSwgJHByb3BlcnR5LCAkaHVlKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICYubWF0LXByaW1hcnkge1xuICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRwcmltYXJ5LCAkaHVlKTtcbiAgfVxuICAmLm1hdC1hY2NlbnQge1xuICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRhY2NlbnQsICRodWUpO1xuICB9XG4gICYubWF0LXdhcm4ge1xuICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCR3YXJuLCAkaHVlKTtcbiAgfVxuXG4gICYubWF0LXByaW1hcnksICYubWF0LWFjY2VudCwgJi5tYXQtd2FybiwgJltkaXNhYmxlZF0ge1xuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICRwYWxldHRlOiBpZigkcHJvcGVydHkgPT0gJ2NvbG9yJywgJGZvcmVncm91bmQsICRiYWNrZ3JvdW5kKTtcbiAgICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRwYWxldHRlLCBkaXNhYmxlZC1idXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJ1dHRvbi10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1idXR0b24sIC5tYXQtaWNvbi1idXR0b24sIC5tYXQtc3Ryb2tlZC1idXR0b24ge1xuICAgIC8vIEJ1dHRvbnMgd2l0aG91dCBhIGJhY2tncm91bmQgY29sb3Igc2hvdWxkIGluaGVyaXQgdGhlIGZvbnQgY29sb3IuIFRoaXMgaXMgbmVjZXNzYXJ5IHRvXG4gICAgLy8gZW5zdXJlIHRoYXQgdGhlIGJ1dHRvbiBpcyByZWFkYWJsZSBvbiBjdXN0b20gYmFja2dyb3VuZCBjb2xvcnMuIEl0J3Mgd3JvbmcgdG8gYWx3YXlzIGFzc3VtZVxuICAgIC8vIHRoYXQgdGhvc2UgYnV0dG9ucyBhcmUgYWx3YXlzIHBsYWNlZCBpbnNpZGUgb2YgY29udGFpbmVycyB3aXRoIHRoZSBkZWZhdWx0IGJhY2tncm91bmRcbiAgICAvLyBjb2xvciBvZiB0aGUgdGhlbWUgKGUuZy4gdGhlbWVkIHRvb2xiYXJzKS5cbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCR0aGVtZSwgJ2NvbG9yJywgdGV4dCk7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tZm9jdXMtb3ZlcmxheS1jb2xvcigkdGhlbWUpO1xuXG4gICAgLy8gU2V0dXAgdGhlIHJpcHBsZSBjb2xvciB0byBiZSBiYXNlZCBvbiB0aGUgdGV4dCBjb2xvci4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHJpcHBsZXNcbiAgICAvLyBhcmUgbWF0Y2hpbmcgd2l0aCB0aGUgY3VycmVudCB0aGVtZSBwYWxldHRlIGFuZCBhcmUgaW4gY29udHJhc3QgdG8gdGhlIGJhY2tncm91bmQgY29sb3JcbiAgICAvLyAoZS5nIGluIHRoZW1lZCB0b29sYmFycykuXG4gICAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBvcGFjaXR5OiAkX21hdC1idXR0b24tcmlwcGxlLW9wYWNpdHk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZDogbWFwX2dldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG4gIH1cblxuICAvLyBOb3RlOiB0aGlzIG5lZWRzIGEgYml0IGV4dHJhIHNwZWNpZmljaXR5LCBiZWNhdXNlIHdlJ3JlIG5vdCBndWFyYW50ZWVkIHRoZSBpbmNsdXNpb25cbiAgLy8gb3JkZXIgb2YgdGhlIHRoZW1lIHN0eWxlcyBhbmQgdGhlIGJ1dHRvbiByZXNldCBtYXkgZW5kIHVwIHJlc2V0dGluZyB0aGlzIGFzIHdlbGwuXG4gIC5tYXQtc3Ryb2tlZC1idXR0b246bm90KFtkaXNhYmxlZF0pIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWZsYXQtYnV0dG9uLCAubWF0LXJhaXNlZC1idXR0b24sIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgICAvLyBEZWZhdWx0IGZvbnQgYW5kIGJhY2tncm91bmQgY29sb3Igd2hlbiBub3QgdXNpbmcgYW55IGNvbG9yIHBhbGV0dGUuXG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCByYWlzZWQtYnV0dG9uKTtcblxuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCR0aGVtZSwgJ2NvbG9yJywgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tdGhlbWUtcHJvcGVydHkoJHRoZW1lLCAnYmFja2dyb3VuZC1jb2xvcicsIGRlZmF1bHQpO1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXJpcHBsZS1jb2xvcigkdGhlbWUsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgLm1hdC1zdHJva2VkLWJ1dHRvbiwgLm1hdC1mbGF0LWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMCwgJHRoZW1lKTtcbiAgfVxuXG4gIC5tYXQtcmFpc2VkLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMiwgJHRoZW1lKTtcblxuICAgICY6bm90KFtkaXNhYmxlZF0pOmFjdGl2ZSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbig4LCAkdGhlbWUpO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mYWIsIC5tYXQtbWluaS1mYWIge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDYsICR0aGVtZSk7XG5cbiAgICAmOm5vdChbZGlzYWJsZWRdKTphY3RpdmUge1xuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMTIsICR0aGVtZSk7XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMCwgJHRoZW1lKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1idXR0b24tdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtYnV0dG9uLCAubWF0LXJhaXNlZC1idXR0b24sIC5tYXQtaWNvbi1idXR0b24sIC5tYXQtc3Ryb2tlZC1idXR0b24sXG4gIC5tYXQtZmxhdC1idXR0b24sIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYnV0dG9uKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRvZ2dsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGRpdmlkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUsXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMiwgJHRoZW1lKTtcbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuXG4gICAgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBmb2N1c2VkLWJ1dHRvbik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG5cbiAgICAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGZvY3VzZWQtYnV0dG9uLCAxKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggJGRpdmlkZXItY29sb3I7XG4gIH1cblxuICBbZGlyPSdydGwnXSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIGJvcmRlci1yaWdodDogc29saWQgMXB4ICRkaXZpZGVyLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwge1xuICAgIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgIGJvcmRlci10b3A6IHNvbGlkIDFweCAkZGl2aWRlci1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBzZWxlY3RlZC1idXR0b24pO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLWJ1dHRvbik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaXNhYmxlZC1idXR0b24tdG9nZ2xlKTtcblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIH1cblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIHNlbGVjdGVkLWRpc2FibGVkLWJ1dHRvbik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIGJvcmRlcjogc29saWQgMXB4ICRkaXZpZGVyLWNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRvZ2dsZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtY2FyZC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWNhcmQge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDEsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgIC8vIE5lZWRzIGV4dHJhIHNwZWNpZmljaXR5IHRvIGJlIGFibGUgdG8gb3ZlcnJpZGUgdGhlIGVsZXZhdGlvbiBzZWxlY3RvcnMuXG4gICAgJi5tYXQtY2FyZC1mbGF0IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYXJkLXN1YnRpdGxlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1jYXJkLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWNhcmQge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWNhcmQtdGl0bGUge1xuICAgIGZvbnQ6IHtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgaGVhZGxpbmUpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgdGl0bGUpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FyZC1oZWFkZXIgLm1hdC1jYXJkLXRpdGxlIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgdGl0bGUpO1xuICB9XG5cbiAgLm1hdC1jYXJkLXN1YnRpdGxlLFxuICAubWF0LWNhcmQtY29udGVudCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtY2hlY2tib3gtdGhlbWUoJHRoZW1lKSB7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG5cbiAgLy8gVGhlIGNvbG9yIG9mIHRoZSBjaGVja2JveCdzIGNoZWNrbWFyayAvIG1peGVkbWFyay5cbiAgJGNoZWNrYm94LW1hcmstY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgYmFja2dyb3VuZCk7XG5cbiAgLy8gTk9URSh0cmF2aXNrYXVmbWFuKTogV2hpbGUgdGhlIHNwZWMgY2FsbHMgZm9yIHRyYW5zbHVjZW50IGJsYWNrcy93aGl0ZXMgZm9yIGRpc2FibGVkIGNvbG9ycyxcbiAgLy8gdGhpcyBkb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBlbGVtZW50cyBsYXllcmVkIG9uIHRvcCBvZiBvbmUgYW5vdGhlci4gVG8gZ2V0IGFyb3VuZCB0aGlzIHdlXG4gIC8vIGJsZW5kIHRoZSBjb2xvcnMgdG9nZXRoZXIgYmFzZWQgb24gdGhlIGJhc2UgY29sb3IgYW5kIHRoZSB0aGVtZSBiYWNrZ3JvdW5kLlxuICAkd2hpdGUtMzBwY3Qtb3BhY2l0eS1vbi1kYXJrOiAjNjg2ODY4O1xuICAkYmxhY2stMjZwY3Qtb3BhY2l0eS1vbi1saWdodDogI2IwYjBiMDtcbiAgJGRpc2FibGVkLWNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJHdoaXRlLTMwcGN0LW9wYWNpdHktb24tZGFyaywgJGJsYWNrLTI2cGN0LW9wYWNpdHktb24tbGlnaHQpO1xuXG4gIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gICAgZmlsbDogJGNoZWNrYm94LW1hcmstY29sb3I7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIHtcbiAgICAvLyAhaW1wb3J0YW50IGlzIG5lZWRlZCBoZXJlIGJlY2F1c2UgYSBzdHJva2UgbXVzdCBiZSBzZXQgYXMgYW5cbiAgICAvLyBhdHRyaWJ1dGUgb24gdGhlIFNWRyBpbiBvcmRlciBmb3IgbGluZSBhbmltYXRpb24gdG8gd29yayBwcm9wZXJseS5cbiAgICBzdHJva2U6ICRjaGVja2JveC1tYXJrLWNvbG9yICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBjZGstaGlnaC1jb250cmFzdChibGFjay1vbi13aGl0ZSkge1xuICAgICAgLy8gSGF2aW5nIHRoZSBvbmUgYWJvdmUgYmUgIWltcG9ydGFudCBlbmRzIHVwIG92ZXJyaWRpbmcgdGhlIGJyb3dzZXIncyBhdXRvbWF0aWNcbiAgICAgIC8vIGNvbG9yIGludmVyc2lvbiBzbyB3ZSBuZWVkIHRvIHJlLWludmVydCBpdCBvdXJzZWx2ZXMgZm9yIGJsYWNrLW9uLXdoaXRlLlxuICAgICAgc3Ryb2tlOiAjMDAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjaGVja2JveC1tYXJrLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLCAubWF0LWNoZWNrYm94LWNoZWNrZWQge1xuICAgICYubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICAmLm1hdC1jaGVja2JveC1jaGVja2VkLFxuICAgICYubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICAgICAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5tYXQtY2hlY2tib3gtY2hlY2tlZCkge1xuICAgICAgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGNkay1oaWdoLWNvbnRyYXN0IHtcbiAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG4gIH1cblxuICAvLyBUaGlzIG9uZSBpcyBtb3ZlZCBkb3duIGhlcmUgc28gaXQgY2FuIHRhcmdldCBib3RoXG4gIC8vIHRoZSB0aGVtZSBjb2xvcnMgYW5kIHRoZSBkaXNhYmxlZCBzdGF0ZS5cbiAgQGluY2x1ZGUgY2RrLWhpZ2gtY29udHJhc3Qge1xuICAgIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICAvLyBOZWVkcyB0byBiZSByZW1vdmVkIGJlY2F1c2UgaXQgaGlkZXMgdGhlIGNoZWNrYm94IG91dGxpbmUuXG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN3aXRjaCB0aGlzIHRvIGEgc29saWQgY29sb3Igc2luY2Ugd2UncmUgdXNpbmcgYG9wYWNpdHlgXG4gIC8vIHRvIGNvbnRyb2wgaG93IG9wYXF1ZSB0aGUgcmlwcGxlIHNob3VsZCBiZS5cbiAgLm1hdC1jaGVja2JveCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXBfZ2V0KG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKSwgYmFzZSk7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLFxuICAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkge1xuICAgICYubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1jaGVja2JveC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1jaGVja2JveCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC8vIFRPRE8oa2FyYSk6IFJlbW92ZSB0aGlzIHN0eWxlIHdoZW4gZml4aW5nIHZlcnRpY2FsIGJhc2VsaW5lXG4gIC5tYXQtY2hlY2tib3gtbGF5b3V0IC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICAgIGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxufVxuXG5cblxuXG5cblxuJG1hdC1jaGlwLXJlbW92ZS1mb250LXNpemU6IDE4cHg7XG5cbkBtaXhpbiBtYXQtY2hpcHMtY29sb3IoJGZvcmVncm91bmQsICRiYWNrZ3JvdW5kKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGZvcmVncm91bmQ7XG5cbiAgLm1hdC1jaGlwLXJlbW92ZSB7XG4gICAgY29sb3I6ICRmb3JlZ3JvdW5kO1xuICAgIG9wYWNpdHk6IDAuNDtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWNoaXBzLXRoZW1lLWNvbG9yKCRwYWxldHRlKSB7XG4gIEBpbmNsdWRlIG1hdC1jaGlwcy1jb2xvcihtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QpLCBtYXQtY29sb3IoJHBhbGV0dGUpKTtcblxuICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QsIDAuMSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1jaGlwcy10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgJHVuc2VsZWN0ZWQtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCB1bnNlbGVjdGVkLWNoaXApO1xuICAkdW5zZWxlY3RlZC1mb3JlZ3JvdW5kOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcCB7XG4gICAgQGluY2x1ZGUgbWF0LWNoaXBzLWNvbG9yKCR1bnNlbGVjdGVkLWZvcmVncm91bmQsICR1bnNlbGVjdGVkLWJhY2tncm91bmQpO1xuXG4gICAgJjpub3QoLm1hdC1jaGlwLWRpc2FibGVkKSB7XG4gICAgICAmOmFjdGl2ZSB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDMsICR0aGVtZSk7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtY2hpcC1yZW1vdmU6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAwLjU0O1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWNoaXAtZGlzYWJsZWQge1xuICAgICAgb3BhY2l0eTogMC40O1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hcF9nZXQoJGZvcmVncm91bmQsIGJhc2UpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZCB7XG4gICAgJi5tYXQtcHJpbWFyeSB7XG4gICAgICBAaW5jbHVkZSBtYXQtY2hpcHMtdGhlbWUtY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgbWF0LWNoaXBzLXRoZW1lLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgbWF0LWNoaXBzLXRoZW1lLWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWNoaXBzLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWNoaXAge1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTIpO1xuICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcblxuICAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uLFxuICAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkbWF0LWNoaXAtcmVtb3ZlLWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LXRhYmxlLXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtdGFibGUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgfVxuXG4gIC5tYXQtdGFibGUgdGhlYWQsIC5tYXQtdGFibGUgdGJvZHksIC5tYXQtdGFibGUgdGZvb3QsXG4gIG1hdC1oZWFkZXItcm93LCBtYXQtcm93LCBtYXQtZm9vdGVyLXJvdyxcbiAgW21hdC1oZWFkZXItcm93XSwgW21hdC1yb3ddLCBbbWF0LWZvb3Rlci1yb3ddLFxuICAubWF0LXRhYmxlLXN0aWNreSB7XG4gICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgfVxuXG4gIG1hdC1yb3csIG1hdC1oZWFkZXItcm93LCBtYXQtZm9vdGVyLXJvdyxcbiAgdGgubWF0LWhlYWRlci1jZWxsLCB0ZC5tYXQtY2VsbCwgdGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jZWxsLCAubWF0LWZvb3Rlci1jZWxsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRhYmxlLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXRhYmxlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxuXG4gIC5tYXQtY2VsbCwgLm1hdC1mb290ZXItY2VsbCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuXG5cblxuJG1hdC1kYXRlcGlja2VyLXNlbGVjdGVkLXRvZGF5LWJveC1zaGFkb3ctd2lkdGg6IDFweDtcbiRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC1mYWRlLWFtb3VudDogMC42O1xuJG1hdC1kYXRlcGlja2VyLXRvZGF5LWZhZGUtYW1vdW50OiAwLjI7XG4kbWF0LWNhbGVuZGFyLWJvZHktZm9udC1zaXplOiAxM3B4ICFkZWZhdWx0O1xuJG1hdC1jYWxlbmRhci13ZWVrZGF5LXRhYmxlLWZvbnQtc2l6ZTogMTFweCAhZGVmYXVsdDtcblxuQG1peGluIF9tYXQtZGF0ZXBpY2tlci1jb2xvcigkcGFsZXR0ZSkge1xuICAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgICRiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRiYWNrZ3JvdW5kKSA9PSBjb2xvcikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZmFkZS1vdXQoJGJhY2tncm91bmQsICRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC1mYWRlLWFtb3VudCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIElmIHdlIGNvdWxkbid0IHJlc29sdmUgdG8gYmFja2dyb3VuZCB0byBhIGNvbG9yIChlLmcuIGl0J3MgYSBDU1MgdmFyaWFibGUpLFxuICAgICAgLy8gZmFsbCBiYWNrIHRvIGZhZGluZyB0aGUgY29udGVudCBvdXQgdmlhIGBvcGFjaXR5YC5cbiAgICAgIG9wYWNpdHk6ICRtYXQtZGF0ZXBpY2tlci10b2RheS1mYWRlLWFtb3VudDtcbiAgICB9XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwICRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC10b2RheS1ib3gtc2hhZG93LXdpZHRoXG4gICAgICAgICAgICAgICAgbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWRhdGVwaWNrZXItdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG5cbiAgLm1hdC1jYWxlbmRhci1hcnJvdyB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBpY29uKTtcbiAgfVxuXG4gIC8vIFRoZSBwcmV2L25leHQgYnV0dG9ucyBuZWVkIGEgYml0IG1vcmUgc3BlY2lmaWNpdHkgdG9cbiAgLy8gYXZvaWQgYmVpbmcgb3ZlcndyaXR0ZW4gYnkgdGhlIC5tYXQtaWNvbi1idXR0b24uXG4gIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUsXG4gIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItbmV4dC1idXR0b24sXG4gIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItcHJldmlvdXMtYnV0dG9uIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBpY29uKTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXItZGl2aWRlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQpOmhvdmVyLFxuICAuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZSxcbiAgLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZSB7XG4gICAgJiA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgICAvLyBOb3RlOiB0aG91Z2ggaXQncyBub3QgdGV4dCwgdGhlIGJvcmRlciBpcyBhIGhpbnQgYWJvdXQgdGhlIGZhY3QgdGhhdCB0aGlzIGlzIHRvZGF5J3MgZGF0ZSxcbiAgICAvLyBzbyB3ZSB1c2UgdGhlIGhpbnQgY29sb3IuXG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICAgICRjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IpIHtcbiAgICAgIGJvcmRlci1jb2xvcjogZmFkZS1vdXQoJGNvbG9yLCAkbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBJZiB0aGUgY29sb3IgZGlkbid0IHJlc29sdmUgdG8gYSBjb2xvciB2YWx1ZSwgYnV0IHNvbWV0aGluZyBsaWtlIGEgQ1NTIHZhcmlhYmxlLCB3ZSBjYW4ndFxuICAgICAgLy8gZmFkZSBpdCBvdXQgc28gd2UgZmFsbCBiYWNrIHRvIHJlZHVjaW5nIHRoZSBlbGVtZW50IG9wYWNpdHkuIE5vdGUgdGhhdCB3ZSBkb24ndCB1c2UgdGhlXG4gICAgICAvLyAkbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQsIGJlY2F1c2UgaGludCB0ZXh0IHVzdWFsbHkgaGFzIHNvbWUgb3BhY2l0eSBhcHBsaWVkXG4gICAgICAvLyB0byBpdCBhbHJlYWR5IGFuZCB3ZSBkb24ndCB3YW50IHRoZW0gdG8gc3RhY2sgb24gdG9wIG9mIGVhY2ggb3RoZXIuXG4gICAgICBvcGFjaXR5OiAwLjU7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLWNvbG9yKG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KSk7XG5cbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDQsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWRhdGVwaWNrZXItY29sb3IobWFwLWdldCgkdGhlbWUsIGFjY2VudCkpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLWNvbG9yKG1hcC1nZXQoJHRoZW1lLCB3YXJuKSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQtdG91Y2gge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gIH1cblxuICAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSksIHRleHQpO1xuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IobWFwLWdldCgkdGhlbWUsIGFjY2VudCksIHRleHQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgd2FybiksIHRleHQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWRhdGVwaWNrZXItdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtY2FsZW5kYXIge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHkge1xuICAgIGZvbnQtc2l6ZTogJG1hdC1jYWxlbmRhci1ib2R5LWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCxcbiAgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJ1dHRvbik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHRoIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiAkbWF0LWNhbGVuZGFyLXdlZWtkYXktdGFibGUtZm9udC1zaXplO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1kaWFsb2ctdGhlbWUoJHRoZW1lKSB7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1kaWFsb2ctY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigyNCwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGRpYWxvZyk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1kaWFsb2ctdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtZGlhbG9nLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgdGl0bGUpO1xuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LWV4cGFuc2lvbi1wYW5lbC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWV4cGFuc2lvbi1wYW5lbCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMiwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1hY3Rpb24tcm93IHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwge1xuICAgICYgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkLFxuICAgICYgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gICAgJjpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyIHtcbiAgICAgICY6bm90KFthcmlhLWRpc2FibGVkPSd0cnVlJ10pIHtcbiAgICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gRGlzYWJsZSB0aGUgaG92ZXIgb24gdG91Y2ggZGV2aWNlcyBzaW5jZSBpdCBjYW4gYXBwZWFyIGxpa2UgaXQgaXMgc3R1Y2suIFdlIGNhbid0IHVzZVxuICAvLyBgQG1lZGlhIChob3ZlcilgIGFib3ZlLCBiZWNhdXNlIHRoZSBkZXNrdG9wIHN1cHBvcnQgYnJvd3NlciBzdXBwb3J0IGlzbid0IGdyZWF0LlxuICBAbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gICAgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpOm5vdChbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddKVxuICAgICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbixcbiAgLm1hdC1leHBhbnNpb24taW5kaWNhdG9yOjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtYnV0dG9uKTtcblxuICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSxcbiAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtZXhwYW5zaW9uLXBhbmVsLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBzdWJoZWFkaW5nLTEpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG5cbi8vIFRoaXMgbWl4aW4gd2lsbCBlbnN1cmUgdGhhdCBsaW5lcyB0aGF0IG92ZXJmbG93IHRoZSBjb250YWluZXIgd2lsbCBoaWRlIHRoZSBvdmVyZmxvdyBhbmRcbi8vIHRydW5jYXRlIG5lYXRseSB3aXRoIGFuIGVsbGlwc2lzLlxuQG1peGluIG1hdC10cnVuY2F0ZS1saW5lKCkge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLy8gTWl4aW4gdG8gcHJvdmlkZSBhbGwgbWF0LWxpbmUgc3R5bGVzLCBjaGFuZ2luZyBzZWNvbmRhcnkgZm9udCBzaXplIGJhc2VkIG9uIHdoZXRoZXIgdGhlIGxpc3Rcbi8vIGlzIGluIGRlbnNlIG1vZGUuXG5AbWl4aW4gbWF0LWxpbmUtYmFzZSgkc2Vjb25kYXJ5LWZvbnQtc2l6ZSkge1xuICAubWF0LWxpbmUge1xuICAgIEBpbmNsdWRlIG1hdC10cnVuY2F0ZS1saW5lKCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIC8vIGFsbCBsaW5lcyBidXQgdGhlIHRvcCBsaW5lIHNob3VsZCBoYXZlIHNtYWxsZXIgdGV4dFxuICAgICY6bnRoLWNoaWxkKG4rMikge1xuICAgICAgZm9udC1zaXplOiAkc2Vjb25kYXJ5LWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gVGhpcyBtaXhpbiBub3JtYWxpemVzIGRlZmF1bHQgZWxlbWVudCBzdHlsZXMsIGUuZy4gZm9udCB3ZWlnaHQgZm9yIGhlYWRpbmcgdGV4dC5cbkBtaXhpbiBtYXQtbm9ybWFsaXplLXRleHQoKSB7XG4gICYgPiAqIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgfVxufVxuXG4vLyBUaGlzIG1peGluIHByb3ZpZGVzIGJhc2Ugc3R5bGVzIGZvciB0aGUgd3JhcHBlciBhcm91bmQgbWF0LWxpbmUgZWxlbWVudHMgaW4gYSBsaXN0LlxuQG1peGluIG1hdC1saW5lLXdyYXBwZXItYmFzZSgpIHtcbiAgQGluY2x1ZGUgbWF0LW5vcm1hbGl6ZS10ZXh0KCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgLy8gTXVzdCByZW1vdmUgd3JhcHBlciB3aGVuIGxpbmVzIGFyZSBlbXB0eSBvciBpdCB0YWtlcyB1cCBob3Jpem9udGFsXG4gIC8vIHNwYWNlIGFuZCBwdXNoZXMgb3RoZXIgZWxlbWVudHMgdG8gdGhlIHJpZ2h0LlxuICAmOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cblxuXG4vLyBJbmNsdWRlIHRoaXMgZW1wdHkgbWl4aW4gZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIG90aGVyIGNvbXBvbmVudHMuXG5AbWl4aW4gbWF0LWdyaWQtbGlzdC10aGVtZSgkdGhlbWUpIHsgfVxuXG5AbWl4aW4gbWF0LWdyaWQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1ncmlkLXRpbGUtaGVhZGVyLFxuICAubWF0LWdyaWQtdGlsZS1mb290ZXIge1xuICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKSk7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuLy8gSW5jbHVkZSB0aGlzIGVtcHR5IG1peGluIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBvdGhlciBjb21wb25lbnRzLlxuQG1peGluIG1hdC1pY29uLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWljb24ge1xuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1pY29uLXR5cG9ncmFwaHkoJGNvbmZpZykgeyB9XG5cblxuXG5cblxuLy8gUmVuZGVycyBhIGdyYWRpZW50IGZvciBzaG93aW5nIHRoZSBkYXNoZWQgbGluZSB3aGVuIHRoZSBpbnB1dCBpcyBkaXNhYmxlZC5cbi8vIFVubGlrZSB1c2luZyBhIGJvcmRlciwgYSBncmFkaWVudCBhbGxvd3MgdXMgdG8gYWRqdXN0IHRoZSBzcGFjaW5nIG9mIHRoZSBkb3R0ZWQgbGluZVxuLy8gdG8gbWF0Y2ggdGhlIE1hdGVyaWFsIERlc2lnbiBzcGVjLlxuQG1peGluIG1hdC1jb250cm9sLWRpc2FibGVkLXVuZGVybGluZSgkY29sb3IpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkY29sb3IgMCUsICRjb2xvciAzMyUsIHRyYW5zcGFyZW50IDAlKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0cHggMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuXG4vLyBGaWd1cmVzIG91dCB0aGUgY29sb3Igb2YgdGhlIHBsYWNlaG9sZGVyIGZvciBhIGZvcm0gY29udHJvbC5cbi8vIFVzZWQgcHJpbWFyaWx5IHRvIHByZXZlbnQgdGhlIHZhcmlvdXMgZm9ybSBjb250cm9scyBmcm9tXG4vLyBiZWNvbWluZyBvdXQgb2Ygc3luYyBzaW5jZSB0aGVzZSBjb2xvcnMgYXJlbid0IGluIGEgcGFsZXR0ZS5cbkBmdW5jdGlvbiBfbWF0LWNvbnRyb2wtcGxhY2Vob2xkZXItY29sb3IoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG4gIEByZXR1cm4gbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCwgaWYoJGlzLWRhcmstdGhlbWUsIDAuNSwgMC40MikpO1xufVxuXG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIG1hdGVyaWFsL25vLXByZWZpeGVzICovXG5AbWl4aW4gdXNlci1zZWxlY3QoJHZhbHVlKSB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgLW1vei11c2VyLXNlbGVjdDogJHZhbHVlO1xuICAtbXMtdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbn1cblxuQG1peGluIGlucHV0LXBsYWNlaG9sZGVyIHtcbiAgJjo6cGxhY2Vob2xkZXIge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgJjo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gY3Vyc29yLWdyYWIge1xuICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcbiAgY3Vyc29yOiBncmFiO1xufVxuXG5AbWl4aW4gY3Vyc29yLWdyYWJiaW5nIHtcbiAgY3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nO1xuICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuXG5AbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmFsdWUpIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiAkdmFsdWU7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6ICR2YWx1ZTtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cblxuXG5cbkBtaXhpbiBtYXQtaW5wdXQtdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtaW5wdXQtZWxlbWVudDpkaXNhYmxlZCxcbiAgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gIH1cblxuICAubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIGNhcmV0LWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuXG4gICAgQGluY2x1ZGUgaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IF9tYXQtY29udHJvbC1wbGFjZWhvbGRlci1jb2xvcigkdGhlbWUpO1xuICAgIH1cblxuICAgIC8vIE9uIGRhcmsgdGhlbWVzIHdlIHNldCB0aGUgbmF0aXZlIGBzZWxlY3RgIGNvbG9yIHRvIHNvbWUgc2hhZGUgb2Ygd2hpdGUsXG4gICAgLy8gaG93ZXZlciB0aGUgY29sb3IgcHJvcGFnYXRlcyB0byBhbGwgb2YgdGhlIGBvcHRpb25gIGVsZW1lbnRzLCB3aGljaCBhcmVcbiAgICAvLyBhbHdheXMgb24gYSB3aGl0ZSBiYWNrZ3JvdW5kIGluc2lkZSB0aGUgZHJvcGRvd24sIGNhdXNpbmcgdGhlbSB0byBibGVuZCBpbi5cbiAgICAvLyBTaW5jZSB3ZSBjYW4ndCBjaGFuZ2UgYmFja2dyb3VuZCBvZiB0aGUgZHJvcGRvd24sIHdlIG5lZWQgdG8gZXhwbGljaXRseVxuICAgIC8vIHJlc2V0IHRoZSBjb2xvciBvZiB0aGUgb3B0aW9ucyB0byBzb21ldGhpbmcgZGFyay5cbiAgICBAaWYgKG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKSkge1xuICAgICAgb3B0aW9uIHtcbiAgICAgICAgY29sb3I6ICRkYXJrLXByaW1hcnktdGV4dDtcbiAgICAgIH1cblxuICAgICAgb3B0aW9uOmRpc2FibGVkIHtcbiAgICAgICAgY29sb3I6ICRkYXJrLWRpc2FibGVkLXRleHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1hY2NlbnQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC13YXJuIC5tYXQtaW5wdXQtZWxlbWVudCxcbiAgLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1pbnB1dC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuXG4gIC8vIFRoZSBhbW91bnQgb2Ygc3BhY2UgYmV0d2VlbiB0aGUgdG9wIG9mIHRoZSBsaW5lIGFuZCB0aGUgdG9wIG9mIHRoZSBhY3R1YWwgdGV4dFxuICAvLyAoYXMgYSBmcmFjdGlvbiBvZiB0aGUgZm9udC1zaXplKS5cbiAgJGxpbmUtc3BhY2luZzogKCRsaW5lLWhlaWdodCAtIDEpIC8gMjtcblxuICAvLyA8aW5wdXQ+IGVsZW1lbnRzIHNlZW0gdG8gaGF2ZSB0aGVpciBoZWlnaHQgc2V0IHNsaWdodGx5IHRvbyBsYXJnZSBvbiBTYWZhcmkgY2F1c2luZyB0aGUgdGV4dCB0b1xuICAvLyBiZSBtaXNhbGlnbmVkIHcuci50LiB0aGUgcGxhY2Vob2xkZXIuIEFkZGluZyB0aGlzIG1hcmdpbiBjb3JyZWN0cyBpdC5cbiAgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIG1hcmdpbi10b3A6IC0kbGluZS1zcGFjaW5nICogMWVtO1xuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtbGlzdC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWxpc3QtYmFzZSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXN1YmhlYWRlciB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1saXN0LWl0ZW0tZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlzYWJsZWQtbGlzdC1vcHRpb24pO1xuICB9XG5cbiAgLm1hdC1saXN0LW9wdGlvbixcbiAgLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbSxcbiAgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbSB7XG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdob3ZlcicpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWxpc3QtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gICRmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuXG4gIC5tYXQtbGlzdC1pdGVtIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICB9XG5cbiAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgfVxuXG4gIC8vIERlZmF1bHQgbGlzdFxuICAubWF0LWxpc3QtYmFzZSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHN1YmhlYWRpbmctMik7XG4gICAgICBAaW5jbHVkZSBtYXQtbGluZS1iYXNlKG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKSk7XG4gICAgfVxuXG4gICAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgc3ViaGVhZGluZy0yKTtcbiAgICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpKTtcbiAgICB9XG5cbiAgICAubWF0LXN1YmhlYWRlciB7XG4gICAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMik7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0yKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cblxuICAvLyBEZW5zZSBsaXN0XG4gIC5tYXQtbGlzdC1iYXNlW2RlbnNlXSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgQGluY2x1ZGUgbWF0LWxpbmUtYmFzZShtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pKTtcbiAgICB9XG5cbiAgICAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKSk7XG4gICAgfVxuXG4gICAgLm1hdC1zdWJoZWFkZXIge1xuICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1tZW51LXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtbWVudS1wYW5lbCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdjYXJkJyk7XG4gIH1cblxuICAubWF0LW1lbnUtaXRlbSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ3RleHQnKTtcblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICYsICY6OmFmdGVyIHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2Rpc2FibGVkJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1tZW51LWl0ZW0gLm1hdC1pY29uLW5vLWNvbG9yLFxuICAubWF0LW1lbnUtaXRlbS1zdWJtZW51LXRyaWdnZXI6OmFmdGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAnaWNvbicpO1xuICB9XG5cbiAgLm1hdC1tZW51LWl0ZW06aG92ZXIsXG4gIC5tYXQtbWVudS1pdGVtLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gIC5tYXQtbWVudS1pdGVtLmNkay1rZXlib2FyZC1mb2N1c2VkLFxuICAubWF0LW1lbnUtaXRlbS1oaWdobGlnaHRlZCB7XG4gICAgJjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnaG92ZXInKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1tZW51LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LW1lbnUtaXRlbSB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LXBhZ2luYXRvci10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcblxuICAubWF0LXBhZ2luYXRvciB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICB9XG5cbiAgLm1hdC1wYWdpbmF0b3IsXG4gIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4gIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCB7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2ljb24nKTtcbiAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCBtYXQtY29sb3IoJGZvcmVncm91bmQsICdpY29uJyk7XG4gIH1cblxuICAubWF0LXBhZ2luYXRvci1maXJzdCxcbiAgLm1hdC1wYWdpbmF0b3ItbGFzdCB7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2ljb24nKTtcbiAgfVxuXG4gIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIHtcbiAgICAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4gICAgLm1hdC1wYWdpbmF0b3ItaW5jcmVtZW50LFxuICAgIC5tYXQtcGFnaW5hdG9yLWZpcnN0LFxuICAgIC5tYXQtcGFnaW5hdG9yLWxhc3Qge1xuICAgICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsICdkaXNhYmxlZCcpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXBhZ2luYXRvci10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1wYWdpbmF0b3IsXG4gIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbik7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuQG1peGluIG1hdC1wcm9ncmVzcy1iYXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICAgIGZpbGw6IG1hdC1jb2xvcigkcHJpbWFyeSwgbGlnaHRlcik7XG4gIH1cblxuICAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgbGlnaHRlcik7XG4gIH1cblxuICAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQge1xuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICAgICAgZmlsbDogbWF0LWNvbG9yKCRhY2NlbnQsIGxpZ2h0ZXIpO1xuICAgIH1cblxuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIHtcbiAgICAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgICAgIGZpbGw6IG1hdC1jb2xvcigkd2FybiwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkd2FybiwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1wcm9ncmVzcy1iYXItdHlwb2dyYXBoeSgkY29uZmlnKSB7IH1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG5cbiAgLm1hdC1wcm9ncmVzcy1zcGlubmVyLCAubWF0LXNwaW5uZXIge1xuICAgIGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cbkBtaXhpbiBfbWF0LXJhZGlvLWNvbG9yKCRwYWxldHRlKSB7XG4gICYubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlKTtcbiAgfVxuXG4gIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuICAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSxcbiAgJi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLFxuICAmOmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtcmFkaW8tdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1yYWRpby1idXR0b24ge1xuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgX21hdC1yYWRpby1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtcmFkaW8tY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXJhZGlvLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIG5lZWRzIGV4dHJhIHNwZWNpZmljaXR5LCBiZWNhdXNlIHRoZSBjbGFzc2VzIGFib3ZlIGFyZSBjb21iaW5lZFxuICAgIC8vIChlLmcuIGAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50YCkgd2hpY2ggaW5jcmVhc2VzIHRoZWlyIHNwZWNpZmljaXR5IGEgbG90LlxuICAgIC8vIFRPRE86IGNvbnNpZGVyIG1ha2luZyB0aGUgc2VsZWN0b3JzIGludG8gZGVzY2VuZGFudHMgKGAubWF0LXByaW1hcnkgLm1hdC1yYWRpby1idXR0b25gKS5cbiAgICAmLm1hdC1yYWRpby1kaXNhYmxlZCB7XG4gICAgICAmLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlLFxuICAgICAgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgICAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQpO1xuICAgICAgfVxuXG4gICAgICAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50LFxuICAgICAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkKTtcbiAgICAgIH1cblxuICAgICAgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFN3aXRjaCB0aGlzIHRvIGEgc29saWQgY29sb3Igc2luY2Ugd2UncmUgdXNpbmcgYG9wYWNpdHlgXG4gICAgLy8gdG8gY29udHJvbCBob3cgb3BhcXVlIHRoZSByaXBwbGUgc2hvdWxkIGJlLlxuICAgIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwX2dldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcmFkaW8tdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1zZWxlY3QtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogX21hdC1jb250cm9sLXBsYWNlaG9sZGVyLWNvbG9yKCR0aGVtZSk7XG4gIH1cblxuICAubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gIH1cblxuICAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1zZWxlY3QtcGFuZWwge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJHRoZW1lKTtcblxuICAgIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIsIDAuMTIpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZCB7XG4gICAgJi5tYXQtZm9jdXNlZCB7XG4gICAgICAmLm1hdC1wcmltYXJ5IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWFjY2VudCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LXdhcm4gLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWludmFsaWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1zZWxlY3QtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcblxuICAubWF0LXNlbGVjdCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIGhlaWdodDogJGxpbmUtaGVpZ2h0ICogMWVtO1xuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LXNpZGVuYXYtdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICRkcmF3ZXItYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAkZHJhd2VyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yOiAgbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBiYWNrZ3JvdW5kKTtcbiAgJGRyYXdlci1wdXNoLWJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlhbG9nKTtcbiAgJGRyYXdlci1zaWRlLWJvcmRlcjogc29saWQgMXB4IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG5cbiAgLm1hdC1kcmF3ZXItY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJhd2VyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1kcmF3ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkcmF3ZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LWRyYXdlci1wdXNoIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkcmF3ZXItcHVzaC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cblxuICAgICY6bm90KC5tYXQtZHJhd2VyLXNpZGUpIHtcbiAgICAgIC8vIFRoZSBlbGV2YXRpb24gb2Ygei0xNiBpcyBub3RlZCBpbiB0aGUgZGVzaWduIHNwZWNpZmljYXRpb25zLlxuICAgICAgLy8gU2VlIGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1kcmF3ZXIuaHRtbFxuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMTYsICR0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kcmF3ZXItc2lkZSB7XG4gICAgYm9yZGVyLXJpZ2h0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuXG4gICAgJi5tYXQtZHJhd2VyLWVuZCB7XG4gICAgICBib3JkZXItbGVmdDogJGRyYXdlci1zaWRlLWJvcmRlcjtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICB9XG4gIH1cblxuICBbZGlyPSdydGwnXSAubWF0LWRyYXdlci1zaWRlIHtcbiAgICBib3JkZXItbGVmdDogJGRyYXdlci1zaWRlLWJvcmRlcjtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG5cbiAgICAmLm1hdC1kcmF3ZXItZW5kIHtcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZHJhd2VyLWJhY2tkcm9wLm1hdC1kcmF3ZXItc2hvd24ge1xuICAgICRvcGFjaXR5OiAwLjY7XG4gICAgJGJhY2tkcm9wLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQsICRvcGFjaXR5KTtcblxuICAgIEBpZiAodHlwZS1vZigkYmFja2Ryb3AtY29sb3IpID09IGNvbG9yKSB7XG4gICAgICAvLyBXZSB1c2UgaW52ZXJ0KCkgaGVyZSB0byBoYXZlIHRoZSBkYXJrZW4gdGhlIGJhY2tncm91bmQgY29sb3IgZXhwZWN0ZWQgdG8gYmUgdXNlZC4gSWYgdGhlXG4gICAgICAvLyBiYWNrZ3JvdW5kIGlzIGxpZ2h0LCB3ZSB1c2UgYSBkYXJrIGJhY2tkcm9wLiBJZiB0aGUgYmFja2dyb3VuZCBpcyBkYXJrLFxuICAgICAgLy8gd2UgdXNlIGEgbGlnaHQgYmFja2Ryb3AuXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbnZlcnQoJGJhY2tkcm9wLWNvbG9yKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gSWYgd2UgY291bGRuJ3QgcmVzb2x2ZSB0aGUgYmFja2Ryb3AgY29sb3IgdG8gYSBjb2xvciB2YWx1ZSwgZmFsbCBiYWNrIHRvIHVzaW5nXG4gICAgICAvLyBgb3BhY2l0eWAgdG8gbWFrZSBpdCBvcGFxdWUgc2luY2UgaXRzIGVuZCB2YWx1ZSBjb3VsZCBiZSBhIHNvbGlkIGNvbG9yLlxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tkcm9wLWNvbG9yO1xuICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc2lkZW5hdi10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cblxuQG1peGluIF9tYXQtc2xpZGUtdG9nZ2xlLWNoZWNrZWQoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSkge1xuICAmLm1hdC1jaGVja2VkIHtcbiAgICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSk7XG4gICAgfVxuXG4gICAgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgICAgIC8vIE9wYWNpdHkgaXMgZGV0ZXJtaW5lZCBmcm9tIHRoZSBzcGVjcyBmb3IgdGhlIHNlbGVjdGlvbiBjb250cm9scy5cbiAgICAgIC8vIFNlZTogaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vY29tcG9uZW50cy9zZWxlY3Rpb24tY29udHJvbHMuaHRtbCNzcGVjc1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAkdGh1bWItY2hlY2tlZC1odWUsIDAuNTQpO1xuICAgIH1cblxuICAgIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgLy8gU2V0IG5vIG9wYWNpdHkgZm9yIHRoZSByaXBwbGVzIGJlY2F1c2UgdGhlIHJpcHBsZSBvcGFjaXR5IHdpbGwgYmUgYWRqdXN0ZWQgZHluYW1pY2FsbHlcbiAgICAgIC8vIGJhc2VkIG9uIHRoZSB0eXBlIG9mIGludGVyYWN0aW9uIHdpdGggdGhlIHNsaWRlLXRvZ2dsZSAoZS5nLiBmb3IgaG92ZXIsIGZvY3VzKVxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAkdGh1bWItY2hlY2tlZC1odWUpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNsaWRlLXRvZ2dsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcms6IG1hcF9nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLy8gQ29sb3IgaHVlcyBhcmUgYmFzZWQgb24gdGhlIHNwZWNzIHdoaWNoIGJyaWVmbHkgc2hvdyB0aGUgaHVlcyB0aGF0IGFyZSBhcHBsaWVkIHRvIGEgc3dpdGNoLlxuICAvLyBUaGUgMjAxOCBzcGVjcyBubyBsb25nZXIgZGVzY3JpYmUgaG93IGRhcmsgc3dpdGNoZXMgc2hvdWxkIGxvb2sgbGlrZS4gRHVlIHRvIHRoZSBsYWNrIG9mXG4gIC8vIGluZm9ybWF0aW9uIGZvciBkYXJrIHRoZW1lZCBzd2l0Y2hlcywgd2UgcGFydGlhbGx5IGtlZXAgdGhlIG9sZCBiZWhhdmlvciB0aGF0IGlzIGJhc2VkIG9uXG4gIC8vIHRoZSBwcmV2aW91cyBzcGVjaWZpY2F0aW9ucy4gRm9yIHRoZSBjaGVja2VkIGNvbG9yIHdlIGFsd2F5cyB1c2UgdGhlIGBkZWZhdWx0YCBodWUgYmVjYXVzZVxuICAvLyB0aGF0IGZvbGxvd3MgTURDIGFuZCBhbHNvIG1ha2VzIGl0IGVhc2llciBmb3IgcGVvcGxlIHRvIGNyZWF0ZSBhIGN1c3RvbSB0aGVtZSB3aXRob3V0IG5lZWRpbmdcbiAgLy8gdG8gc3BlY2lmeSBlYWNoIGh1ZSBpbmRpdmlkdWFsbHkuXG4gICR0aHVtYi11bmNoZWNrZWQtaHVlOiBpZigkaXMtZGFyaywgNDAwLCA1MCk7XG4gICR0aHVtYi1jaGVja2VkLWh1ZTogZGVmYXVsdDtcblxuICAkYmFyLXVuY2hlY2tlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZCk7XG4gICRyaXBwbGUtdW5jaGVja2VkLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGJhc2UpO1xuXG4gIC5tYXQtc2xpZGUtdG9nZ2xlIHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlLXRvZ2dsZS1jaGVja2VkKCRhY2NlbnQsICR0aHVtYi1jaGVja2VkLWh1ZSk7XG5cbiAgICAmLm1hdC1wcmltYXJ5IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtc2xpZGUtdG9nZ2xlLWNoZWNrZWQoJHByaW1hcnksICR0aHVtYi1jaGVja2VkLWh1ZSk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXNsaWRlLXRvZ2dsZS1jaGVja2VkKCR3YXJuLCAkdGh1bWItY2hlY2tlZC1odWUpO1xuICAgIH1cblxuICAgICY6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICAvLyBTZXQgbm8gb3BhY2l0eSBmb3IgdGhlIHJpcHBsZXMgYmVjYXVzZSB0aGUgcmlwcGxlIG9wYWNpdHkgd2lsbCBiZSBhZGp1c3RlZCBkeW5hbWljYWxseVxuICAgICAgLy8gYmFzZWQgb24gdGhlIHR5cGUgb2YgaW50ZXJhY3Rpb24gd2l0aCB0aGUgc2xpZGUtdG9nZ2xlIChlLmcuIGZvciBob3ZlciwgZm9jdXMpXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmlwcGxlLXVuY2hlY2tlZC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMSwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJG1hdC1ncmV5LCAkdGh1bWItdW5jaGVja2VkLWh1ZSk7XG4gIH1cblxuICAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXItdW5jaGVja2VkLWNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc2xpZGUtdG9nZ2xlLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50IHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cblxuXG5cblxuQG1peGluIF9tYXQtc2xpZGVyLWlubmVyLWNvbnRlbnQtdGhlbWUoJHBhbGV0dGUpIHtcbiAgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbiAgLm1hdC1zbGlkZXItdGh1bWIsXG4gIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICB9XG5cbiAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1zbGlkZXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICRtYXQtc2xpZGVyLW9mZi1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmKTtcbiAgJG1hdC1zbGlkZXItb2ZmLWZvY3VzZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW9mZi1hY3RpdmUpO1xuICAkbWF0LXNsaWRlci1kaXNhYmxlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmKTtcbiAgJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW1pbik7XG4gICRtYXQtc2xpZGVyLWxhYmVsZWQtbWluLXZhbHVlLXRodW1iLWxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNsaWRlci1vZmYpO1xuICAkbWF0LXNsaWRlci1mb2N1cy1yaW5nLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgZGVmYXVsdCwgMC4yKTtcbiAgJG1hdC1zbGlkZXItZm9jdXMtcmluZy1taW4tdmFsdWUtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgMC4xMik7XG4gICRtYXQtc2xpZGVyLXRpY2stY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgMC43KTtcbiAgJG1hdC1zbGlkZXItdGljay1zaXplOiAycHg7XG5cbiAgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItb2ZmLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1wcmltYXJ5IHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCRwcmltYXJ5KTtcbiAgfVxuXG4gIC5tYXQtYWNjZW50IHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCRhY2NlbnQpO1xuICB9XG5cbiAgLm1hdC13YXJuIHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCR3YXJuKTtcbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWZvY3VzLXJpbmctY29sb3I7XG4gIH1cblxuICAubWF0LXNsaWRlcjpob3ZlcixcbiAgLmNkay1mb2N1c2VkIHtcbiAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLW9mZi1mb2N1c2VkLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWRpc2FibGVkIHtcbiAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLFxuICAgIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4gICAgLm1hdC1zbGlkZXItdGh1bWIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItZGlzYWJsZWQtY29sb3I7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zbGlkZXItbWluLXZhbHVlIHtcbiAgICAubWF0LXNsaWRlci1mb2N1cy1yaW5nIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWZvY3VzLXJpbmctbWluLXZhbHVlLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIHtcbiAgICAgIC5tYXQtc2xpZGVyLXRodW1iLFxuICAgICAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWF0LXNsaWRlci1sYWJlbGVkLW1pbi12YWx1ZS10aHVtYi1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgJi5jZGstZm9jdXNlZCB7XG4gICAgICAgIC5tYXQtc2xpZGVyLXRodW1iLFxuICAgICAgICAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItbGFiZWwtY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKSB7XG4gICAgICAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJG1hdC1zbGlkZXItb2ZmLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlcixcbiAgICAgICYuY2RrLWZvY3VzZWQge1xuICAgICAgICAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci1vZmYtZm9jdXNlZC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWhhcy10aWNrcyAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci10aWNrLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgICAvLyBGaXJlZm94IGRvZXNuJ3QgZHJhdyB0aGUgZ3JhZGllbnQgY29ycmVjdGx5IHdpdGggJ3RvIHJpZ2h0J1xuICAgIC8vIChzZWUgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxNDMxOSkuXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1yZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDAuMDAwMWRlZywgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgfVxuXG4gIC5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRpY2tzIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNsaWRlci10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LXN0ZXBwZXItdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG5cbiAgLm1hdC1zdGVwLWhlYWRlciB7XG4gICAgJi5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgICAmLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGhvdmVyKTtcbiAgICB9XG5cbiAgICAvLyBPbiB0b3VjaCBkZXZpY2VzIHRoZSA6aG92ZXIgc3RhdGUgd2lsbCBsaW5nZXIgb24gdGhlIGVsZW1lbnQgYWZ0ZXIgYSB0YXAuXG4gICAgLy8gUmVzZXQgaXQgdmlhIGBAbWVkaWFgIGFmdGVyIHRoZSBkZWNsYXJhdGlvbiwgYmVjYXVzZSB0aGUgbWVkaWEgcXVlcnkgaXNuJ3RcbiAgICAvLyBzdXBwb3J0ZWQgYnkgYWxsIGJyb3dzZXJzIHlldC5cbiAgICBAbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtbGFiZWwsXG4gICAgLm1hdC1zdGVwLW9wdGlvbmFsIHtcbiAgICAgIC8vIFRPRE8oam9zZXBocGVycm90dCk6IFVwZGF0ZSB0byB1c2luZyBhIGNvcnJlY3RlZCBkaXNhYmxlZC10ZXh0IGNvbnRyYXN0XG4gICAgICAvLyBpbnN0ZWFkIG9mIHNlY29uZGFyeS10ZXh0LlxuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1pY29uIHtcbiAgICAgIC8vIFRPRE8oam9zZXBocGVycm90dCk6IFVwZGF0ZSB0byB1c2luZyBhIGNvcnJlY3RlZCBkaXNhYmxlZC10ZXh0IGNvbnRyYXN0XG4gICAgICAvLyBpbnN0ZWFkIG9mIHNlY29uZGFyeS10ZXh0LlxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCxcbiAgICAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVkaXQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVycm9yIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWFjdGl2ZSB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtZXJyb3Ige1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zdGVwcGVyLWhvcml6b250YWwsIC5tYXQtc3RlcHBlci12ZXJ0aWNhbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgfVxuXG4gIC5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmUge1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmUsXG4gIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YWZ0ZXIsXG4gIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmUge1xuICAgIGJvcmRlci10b3AtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cbn1cblxuQG1peGluIG1hdC1zdGVwcGVyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXN0ZXBwZXItdmVydGljYWwsIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1zdGVwLWxhYmVsIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpO1xuICAgIH07XG4gIH1cblxuICAubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICB9XG5cbiAgLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxuXG4gIC5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZCB7XG4gICAgZm9udDoge1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTIpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9O1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc29ydC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXNvcnQtaGVhZGVyLWFycm93IHtcbiAgICAkdGFibGUtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICAgICR0ZXh0LWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcblxuICAgIC8vIEJlY2F1c2UgdGhlIGFycm93IGlzIG1hZGUgdXAgb2YgbXVsdGlwbGUgZWxlbWVudHMgdGhhdCBhcmUgc3RhY2tlZCBvbiB0b3Agb2YgZWFjaCBvdGhlcixcbiAgICAvLyB3ZSBjYW4ndCB1c2UgdGhlIHNlbWktdHJhc3BhcmVudCBjb2xvciBmcm9tIHRoZSB0aGVtZSBkaXJlY3RseS4gSWYgdGhlIHZhbHVlIGlzIGEgY29sb3JcbiAgICAvLyAqdHlwZSosIHdlIGNvbnZlcnQgaXQgaW50byBhIHNvbGlkIGNvbG9yIGJ5IHRha2luZyB0aGUgb3BhY2l0eSBmcm9tIHRoZSByZ2JhIHZhbHVlIGFuZFxuICAgIC8vIHVzaW5nIHRoZSB2YWx1ZSB0byBkZXRlcm1pbmUgdGhlIHBlcmNlbnRhZ2Ugb2YgdGhlIGJhY2tncm91bmQgdG8gcHV0IGludG8gZm9yZWdyb3VuZFxuICAgIC8vIHdoZW4gbWl4aW5nIHRoZSBjb2xvcnMgdG9nZXRoZXIuIE90aGVyd2lzZSwgaWYgaXQgcmVzb2x2ZXMgdG8gc29tZXRoaW5nIGRpZmZlcmVudFxuICAgIC8vIChlLmcuIGl0IHJlc29sdmVzIHRvIGEgQ1NTIHZhcmlhYmxlKSwgd2UgdXNlIHRoZSBjb2xvciBkaXJlY3RseS5cbiAgICBAaWYgKHR5cGUtb2YoJHRhYmxlLWJhY2tncm91bmQpID09IGNvbG9yIGFuZCB0eXBlLW9mKCR0ZXh0LWNvbG9yKSA9PSBjb2xvcikge1xuICAgICAgJHRleHQtb3BhY2l0eTogb3BhY2l0eSgkdGV4dC1jb2xvcik7XG4gICAgICBjb2xvcjogbWl4KCR0YWJsZS1iYWNrZ3JvdW5kLCByZ2JhKCR0ZXh0LWNvbG9yLCAxKSwgKDEgLSAkdGV4dC1vcGFjaXR5KSAqIDEwMCUpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBjb2xvcjogJHRleHQtY29sb3I7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc29ydC10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtdGFicy10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRoZWFkZXItYm9yZGVyOiAxcHggc29saWQgbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcblxuICAubWF0LXRhYi1uYXYtYmFyLFxuICAubWF0LXRhYi1oZWFkZXIge1xuICAgIGJvcmRlci1ib3R0b206ICRoZWFkZXItYm9yZGVyO1xuICB9XG5cbiAgLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIHtcbiAgICAubWF0LXRhYi1uYXYtYmFyLFxuICAgIC5tYXQtdGFiLWhlYWRlciB7XG4gICAgICBib3JkZXItdG9wOiAkaGVhZGVyLWJvcmRlcjtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgJi5tYXQtdGFiLWRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgfVxuXG4gIC8vIFJlbW92ZSBoZWFkZXIgYm9yZGVyIHdoZW4gdGhlcmUgaXMgYSBiYWNrZ3JvdW5kIGNvbG9yXG4gIC5tYXQtdGFiLWdyb3VwW2NsYXNzKj0nbWF0LWJhY2tncm91bmQtJ10gLm1hdC10YWItaGVhZGVyLFxuICAubWF0LXRhYi1uYXYtYmFyW2NsYXNzKj0nbWF0LWJhY2tncm91bmQtJ10ge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgfVxuXG4gIC5tYXQtdGFiLWdyb3VwLCAubWF0LXRhYi1uYXYtYmFyIHtcbiAgICAkdGhlbWUtY29sb3JzOiAoXG4gICAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICAgIGFjY2VudDogJGFjY2VudCxcbiAgICAgIHdhcm46ICR3YXJuXG4gICAgKTtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJHRoZW1lLWNvbG9ycyB7XG4gICAgICAvLyBTZXQgdGhlIGZvcmVncm91bmQgY29sb3Igb2YgdGhlIHRhYnNcbiAgICAgICYubWF0LSN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWItbGFiZWwtZm9jdXMoJGNvbG9yKTtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1pbmstYmFyKCRjb2xvcik7XG5cbiAgICAgICAgLy8gT3ZlcnJpZGUgaW5rIGJhciB3aGVuIGJhY2tncm91bmQgY29sb3IgaXMgdGhlIHNhbWVcbiAgICAgICAgJi5tYXQtYmFja2dyb3VuZC0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1pbmstYmFyKCRjb2xvciwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICR0aGVtZS1jb2xvcnMge1xuICAgICAgLy8gU2V0IGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHRhYnMgYW5kIG92ZXJyaWRlIGZvY3VzIGNvbG9yXG4gICAgICAmLm1hdC1iYWNrZ3JvdW5kLSN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWItbGFiZWwtZm9jdXMoJGNvbG9yKTtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWJzLWJhY2tncm91bmQoJGNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9tYXQtaW5rLWJhcigkY29sb3IsICRodWU6IGRlZmF1bHQpIHtcbiAgLm1hdC1pbmstYmFyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGNvbG9yLCAkaHVlKTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC10YWItbGFiZWwtZm9jdXMoJHRhYi1mb2N1cy1jb2xvcikge1xuICAubWF0LXRhYi1sYWJlbCxcbiAgLm1hdC10YWItbGluayB7XG4gICAgJi5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgICAmLmNkay1wcm9ncmFtLWZvY3VzZWQge1xuICAgICAgJjpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR0YWItZm9jdXMtY29sb3IsIGxpZ2h0ZXIsIDAuMyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LXRhYnMtYmFja2dyb3VuZCgkYmFja2dyb3VuZC1jb2xvcikge1xuICAvLyBTZXQgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHRhYiBncm91cFxuICAubWF0LXRhYi1oZWFkZXIsIC5tYXQtdGFiLWxpbmtzLCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yKTtcbiAgfVxuXG4gIC8vIFNldCBsYWJlbHMgdG8gY29udHJhc3QgYWdhaW5zdCBiYWNrZ3JvdW5kXG4gIC5tYXQtdGFiLWxhYmVsLCAubWF0LXRhYi1saW5rIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0KTtcblxuICAgICYubWF0LXRhYi1kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBwYWdpbmF0aW9uIGNoZXZyb25zIHRvIGNvbnRyYXN0IGJhY2tncm91bmRcbiAgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QsIDAuNCk7XG4gIH1cblxuICAvLyBTZXQgcmlwcGxlcyBjb2xvciB0byBiZSB0aGUgY29udHJhc3QgY29sb3Igb2YgdGhlIG5ldyBiYWNrZ3JvdW5kLiBPdGhlcndpc2UgdGhlIHJpcHBsZVxuICAvLyBjb2xvciB3aWxsIGJlIGJhc2VkIG9uIHRoZSBhcHAgYmFja2dyb3VuZCBjb2xvci5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjEyKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRhYnMtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtdGFiLWdyb3VwIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJ1dHRvbik7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJ1dHRvbik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuQG1peGluIF9tYXQtdG9vbGJhci1jb2xvcigkcGFsZXR0ZSkge1xuICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICBjb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KTtcbn1cblxuQG1peGluIF9tYXQtdG9vbGJhci1mb3JtLWZpZWxkLW92ZXJyaWRlcyB7XG4gIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUsXG4gIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUsXG4gIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gIC5tYXQtc2VsZWN0LXZhbHVlLFxuICAubWF0LXNlbGVjdC1hcnJvdyxcbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuXG4gIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgY2FyZXQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2xiYXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtdG9vbGJhciB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBhcHAtYmFyKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCRwcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBfbWF0LXRvb2xiYXItZm9ybS1maWVsZC1vdmVycmlkZXM7XG4gIH1cbn1cblxuQG1peGluIG1hdC10b29sYmFyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXRvb2xiYXIsXG4gIC5tYXQtdG9vbGJhciBoMSxcbiAgLm1hdC10b29sYmFyIGgyLFxuICAubWF0LXRvb2xiYXIgaDMsXG4gIC5tYXQtdG9vbGJhciBoNCxcbiAgLm1hdC10b29sYmFyIGg1LFxuICAubWF0LXRvb2xiYXIgaDYge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCB0aXRsZSk7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cblxuXG5cblxuJG1hdC10b29sdGlwLXRhcmdldC1oZWlnaHQ6IDIycHg7XG4kbWF0LXRvb2x0aXAtZm9udC1zaXplOiAxMHB4O1xuJG1hdC10b29sdGlwLXZlcnRpY2FsLXBhZGRpbmc6ICgkbWF0LXRvb2x0aXAtdGFyZ2V0LWhlaWdodCAtICRtYXQtdG9vbHRpcC1mb250LXNpemUpIC8gMjtcblxuJG1hdC10b29sdGlwLWhhbmRzZXQtdGFyZ2V0LWhlaWdodDogMzBweDtcbiRtYXQtdG9vbHRpcC1oYW5kc2V0LWZvbnQtc2l6ZTogMTRweDtcbiRtYXQtdG9vbHRpcC1oYW5kc2V0LXZlcnRpY2FsLXBhZGRpbmc6XG4gICAgKCRtYXQtdG9vbHRpcC1oYW5kc2V0LXRhcmdldC1oZWlnaHQgLSAkbWF0LXRvb2x0aXAtaGFuZHNldC1mb250LXNpemUpIC8gMjtcblxuQG1peGluIG1hdC10b29sdGlwLXRoZW1lKCR0aGVtZSkge1xuICAubWF0LXRvb2x0aXAge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkbWF0LWdyZXksIDcwMCwgMC45KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2x0aXAtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtdG9vbHRpcCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgICBmb250LXNpemU6ICRtYXQtdG9vbHRpcC1mb250LXNpemU7XG4gICAgcGFkZGluZy10b3A6ICRtYXQtdG9vbHRpcC12ZXJ0aWNhbC1wYWRkaW5nO1xuICAgIHBhZGRpbmctYm90dG9tOiAkbWF0LXRvb2x0aXAtdmVydGljYWwtcGFkZGluZztcbiAgfVxuXG4gIC5tYXQtdG9vbHRpcC1oYW5kc2V0IHtcbiAgICBmb250LXNpemU6ICRtYXQtdG9vbHRpcC1oYW5kc2V0LWZvbnQtc2l6ZTtcbiAgICBwYWRkaW5nLXRvcDogJG1hdC10b29sdGlwLWhhbmRzZXQtdmVydGljYWwtcGFkZGluZztcbiAgICBwYWRkaW5nLWJvdHRvbTogJG1hdC10b29sdGlwLWhhbmRzZXQtdmVydGljYWwtcGFkZGluZztcbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtc25hY2stYmFyLXRoZW1lKCR0aGVtZSkge1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkdGhlbWUsIGlzLWRhcmspO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcblxuICAubWF0LXNuYWNrLWJhci1jb250YWluZXIge1xuICAgIC8vIFVzZSB0aGUgcHJpbWFyeSB0ZXh0IG9uIHRoZSBkYXJrIHRoZW1lLCBldmVuIHRob3VnaCB0aGUgbGlnaHRlciBvbmUgdXNlc1xuICAgIC8vIGEgc2Vjb25kYXJ5LCBiZWNhdXNlIHRoZSBjb250cmFzdCBvbiB0aGUgbGlnaHQgcHJpbWFyeSB0ZXh0IGlzIHBvb3IuXG4gICAgY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCAkZGFyay1wcmltYXJ5LXRleHQsICRsaWdodC1zZWNvbmRhcnktdGV4dCk7XG4gICAgYmFja2dyb3VuZDogaWYoJGlzLWRhcmstdGhlbWUsIG1hcC1nZXQoJG1hdC1ncmV5LCA1MCksICMzMjMyMzIpO1xuXG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oNiwgJHRoZW1lKTtcbiAgfVxuXG4gIC5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiB7XG4gICAgY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCBpbmhlcml0LCBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCkpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc25hY2stYmFyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXNpbXBsZS1zbmFja2JhciB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9XG4gIH1cblxuICAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogaW5oZXJpdDtcbiAgICAgIHNpemU6IGluaGVyaXQ7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIGZpbGwgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWZpbGwtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG5cbiAgJGZpbGwtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBiYXNlLCBpZigkaXMtZGFyay10aGVtZSwgMC4xLCAwLjA0KSk7XG4gICRmaWxsLWRpc2FibGVkLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgaWYoJGlzLWRhcmstdGhlbWUsIDAuMDUsIDAuMDIpKTtcbiAgJHVuZGVybGluZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyLCBpZigkaXMtZGFyay10aGVtZSwgMC41LCAwLjQyKSk7XG4gICRsYWJlbC1kaXNhYmxlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIHtcbiAgICAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmlsbC1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZpbGwtZGlzYWJsZWQtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkbGFiZWwtZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZTogMDtcblxuLy8gQXBwbGllcyBhIGZsb2F0aW5nIGxhYmVsIGFib3ZlIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaXRzZWxmLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1maWxsLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLWZpbGwtZGVkdXBlKVxuICAgICAgICAgICAgIHNjYWxlKCRmb250LXNjYWxlKTtcbiAgd2lkdGg6IDEwMCUgLyAkZm9udC1zY2FsZSArICRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZTtcblxuICAkbWF0LWZvcm0tZmllbGQtZmlsbC1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZSArIDAuMDAwMDEgIWdsb2JhbDtcbn1cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWZpbGwtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcbiAgLy8gVGhlIGFtb3VudCB0byBzY2FsZSB0aGUgZm9udCBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsIGFuZCBzdWJzY3JpcHQuXG4gICRzdWJzY3JpcHQtZm9udC1zY2FsZTogMC43NTtcbiAgLy8gVGhlIHBhZGRpbmcgb24gdG9wIG9mIHRoZSBpbmZpeC5cbiAgJGluZml4LXBhZGRpbmctdG9wOiAwLjI1ZW07XG4gIC8vIFRoZSBwYWRkaW5nIGJlbG93IHRoZSBpbmZpeC5cbiAgJGluZml4LXBhZGRpbmctYm90dG9tOiAwLjc1ZW07XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBhbW91bnQgd2Ugb2Zmc2V0IHRoZSBsYWJlbCBmcm9tIHRoZSBpbnB1dCB0ZXh0IGluIHRoZSBmaWxsIGFwcGVhcmFuY2UuXG4gICRmaWxsLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0OiAtMC41ZW07XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICAgIHBhZGRpbmc6ICRpbmZpeC1wYWRkaW5nLXRvcCAwICRpbmZpeC1wYWRkaW5nLWJvdHRvbSAwO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmctdG9wO1xuICAgICAgbWFyZ2luLXRvcDogJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQ7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtZmlsbC1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLXRvcCArICRmaWxsLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1maWxsLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmctdG9wICsgJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQsXG4gICAgICAgICAgICAgICAgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHRoZSBsZWdhY3kgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAkdW5kZXJsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjcsIDAuNDIpKTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kge1xuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtaGludCB7XG4gICAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgQGluY2x1ZGUgbWF0LWNvbnRyb2wtZGlzYWJsZWQtdW5kZXJsaW5lKCR1bmRlcmxpbmUtY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlOiAwO1xuXG4vLyBBcHBsaWVzIGEgZmxvYXRpbmcgbGFiZWwgYWJvdmUgdGhlIGZvcm0gZmllbGQgY29udHJvbCBpdHNlbGYuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZygkZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKSB7XG4gIC8vIFdlIHVzZSBwZXJzcGVjdGl2ZSB0byBmaXggdGhlIHRleHQgYmx1cnJpbmVzcyBhcyBkZXNjcmliZWQgaGVyZTpcbiAgLy8gaHR0cDovL3d3dy51c2VyYWdlbnRtYW4uY29tL2Jsb2cvMjAxNC8wNS8wNC9maXhpbmctdHlwb2dyYXBoeS1pbnNpZGUtb2YtMi1kLWNzcy10cmFuc2Zvcm1zL1xuICAvLyBUaGlzIHJlc3VsdHMgaW4gYSBzbWFsbCBqaXR0ZXIgYWZ0ZXIgdGhlIGxhYmVsIGZsb2F0cyBvbiBGaXJlZm94LCB3aGljaCB0aGVcbiAgLy8gdHJhbnNsYXRlWiBmaXhlcy5cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nKSBzY2FsZSgkZm9udC1zY2FsZSkgcGVyc3BlY3RpdmUoMTAwcHgpXG4gIHRyYW5zbGF0ZVooMC4wMDFweCArICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlKTtcbiAgLy8gVGhlIHRyaWNrcyBhYm92ZSB1c2VkIHRvIHNtb290aCBvdXQgdGhlIGFuaW1hdGlvbiBvbiBjaHJvbWUgYW5kIGZpcmVmb3ggYWN0dWFsbHkgbWFrZSB0aGluZ3NcbiAgLy8gd29yc2Ugb24gSUUsIHNvIHdlIGRvbid0IGluY2x1ZGUgdGhlbSBpbiB0aGUgSUUgdmVyc2lvbi5cbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJGluZml4LW1hcmdpbi10b3AgLSAkaW5maXgtcGFkZGluZyArICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlKVxuICAgICAgICAgICAgICAgICAgc2NhbGUoJGZvbnQtc2NhbGUpO1xuXG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZTtcblxuICAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZTogJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbi8vIFNhbWUgYXMgbWl4aW4gYWJvdmUsIGJ1dCBvbWl0cyB0aGUgdHJhbnNsYXRlWiBmb3IgcHJpbnRpbmcgcHVycG9zZXMuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludCgkZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKSB7XG4gIC8vIFRoaXMgcmVzdWx0cyBpbiBhIHNtYWxsIGppdHRlciBhZnRlciB0aGUgbGFiZWwgZmxvYXRzIG9uIEZpcmVmb3gsIHdoaWNoIHRoZVxuICAvLyB0cmFuc2xhdGVaIGZpeGVzLlxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRpbmZpeC1tYXJnaW4tdG9wIC0gJGluZml4LXBhZGRpbmcgKyAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZSlcbiAgICAgICAgICAgICAgICAgIHNjYWxlKCRmb250LXNjYWxlKTtcbiAgLy8gVGhlIHRyaWNrcyBhYm92ZSB1c2VkIHRvIHNtb290aCBvdXQgdGhlIGFuaW1hdGlvbiBvbiBjaHJvbWUgYW5kIGZpcmVmb3ggYWN0dWFsbHkgbWFrZSB0aGluZ3NcbiAgLy8gd29yc2Ugb24gSUUsIHNvIHdlIGRvbid0IGluY2x1ZGUgdGhlbSBpbiB0aGUgSUUgdmVyc2lvbi5cbiAgJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlICsgMC4wMDAwMSAhZ2xvYmFsO1xufVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtbGVnYWN5LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBhbW91bnQgb2Ygc3BhY2UgYmV0d2VlbiB0aGUgdG9wIG9mIHRoZSBsaW5lIGFuZCB0aGUgdG9wIG9mIHRoZSBhY3R1YWwgdGV4dFxuICAvLyAoYXMgYSBmcmFjdGlvbiBvZiB0aGUgZm9udC1zaXplKS5cbiAgJGxpbmUtc3BhY2luZzogKCRsaW5lLWhlaWdodCAtIDEpIC8gMjtcbiAgLy8gVGhlIHBhZGRpbmcgb24gdGhlIGluZml4LiBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZSwgYnV0IHNlZW0gdG8gbWVhc3VyZSBmcm9tIHRoZSBlZGdlXG4gIC8vIG9mIHRoZSB0ZXh0IGl0c2VsZiwgbm90IHRoZSBlZGdlIG9mIHRoZSBsaW5lOyB0aGVyZWZvcmUgd2Ugc3VidHJhY3Qgb2ZmIHRoZSBsaW5lIHNwYWNpbmcuXG4gICRpbmZpeC1wYWRkaW5nOiAwLjVlbSAtICRsaW5lLXNwYWNpbmc7XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBib3R0b20gb2YgdGhlIC5tYXQtZm9ybS1maWVsZC1mbGV4IGFyZWEgYW5kIHRoZSBzdWJzY3JpcHQgd3JhcHBlci5cbiAgLy8gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCB0aGlzIG1hcmdpbiBpcyBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgd2l0aCB0aGUgc3Vic2NyaXB0XG4gIC8vIHRleHQgZm9udCBzaXplLCBzbyB3ZSBuZWVkIHRvIGRpdmlkZSBieSB0aGUgc2NhbGUgZmFjdG9yIHRvIG1ha2UgaXQgaGFsZiBvZiB0aGUgb3JpZ2luYWwgdGV4dFxuICAvLyBzaXplLiBXZSBhZ2FpbiBuZWVkIHRvIHN1YnRyYWN0IG9mZiB0aGUgbGluZSBzcGFjaW5nIHNpbmNlIHRoZSBtb2NrcyBtZWFzdXJlIHRvIHRoZSBlZGdlIG9mIHRoZVxuICAvLyB0ZXh0LCBub3QgdGhlICBlZGdlIG9mIHRoZSBsaW5lLlxuICAkc3Vic2NyaXB0LW1hcmdpbi10b3A6IDAuNWVtIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlIC0gKCRsaW5lLXNwYWNpbmcgKiAyKTtcbiAgLy8gVGhlIHBhZGRpbmcgYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC13cmFwcGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBzdWJzY3JpcHQsIHNpbmNlIGl0J3NcbiAgLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkLiBUaGlzIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIHN1YnNjcmlwdCdzIG1hcmdpbiBhbmQgbGluZS1oZWlnaHQsIGJ1dCB3ZVxuICAvLyBuZWVkIHRvIG11bHRpcGx5IGJ5IHRoZSBzdWJzY3JpcHQgZm9udCBzY2FsZSBmYWN0b3Igc2luY2UgdGhlIHdyYXBwZXIgaGFzIGEgbGFyZ2VyIGZvbnQgc2l6ZS5cbiAgJHdyYXBwZXItcGFkZGluZy1ib3R0b206ICgkc3Vic2NyaXB0LW1hcmdpbi10b3AgKyAkbGluZS1oZWlnaHQpICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgICAgcGFkZGluZy1ib3R0b206ICR3cmFwcGVyLXBhZGRpbmctYm90dG9tO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICBwYWRkaW5nOiAkaW5maXgtcGFkZGluZyAwO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjAgd2lsbCByZWx5IG9uIEF1dG9maWxsTW9uaXRvciBpbnN0ZWFkLlxuICAgICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICAvLyBXZSB3YW50IHRoZSB1bmRlcmxpbmUgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgICAvLyBzbyB3ZSBtb3ZlIGl0IHVwIGJ5IHRoZSBwYWRkaW5nIGFtb3VudC5cbiAgICAgIGJvdHRvbTogJHdyYXBwZXItcGFkZGluZy1ib3R0b207XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgICAgIG1hcmdpbi10b3A6ICRzdWJzY3JpcHQtbWFyZ2luLXRvcDtcblxuICAgICAgLy8gV2Ugd2FudCB0aGUgc3Vic2NyaXB0IHRvIHN0YXJ0IGF0IHRoZSBlbmQgb2YgdGhlIGNvbnRlbnQgYm94LCBub3QgdGhlIHBhZGRpbmcgYm94LFxuICAgICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQgKGFkanVzdGVkIGZvciB0aGUgc21hbGxlciBmb250IHNpemUpO1xuICAgICAgdG9wOiBjYWxjKDEwMCUgLSAjeyR3cmFwcGVyLXBhZGRpbmctYm90dG9tIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gdHJhbnNsYXRlWiBjYXVzZXMgdGhlIGxhYmVsIHRvIG5vdCBhcHBlYXIgd2hpbGUgcHJpbnRpbmcsIHNvIHdlIG92ZXJyaWRlIGl0IHRvIG5vdFxuICAvLyBhcHBseSB0cmFuc2xhdGVaIHdoaWxlIHByaW50aW5nXG4gIEBtZWRpYSBwcmludCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgICAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludChcbiAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjAgd2lsbCByZWx5IG9uIEF1dG9maWxsTW9uaXRvciBpbnN0ZWFkLlxuICAgICAgICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbDotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nLXByaW50KFxuICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAgIC8vICh1c2VkIGFzIGEgcHVyZSBDU1Mgc3RhbmQtaW4gZm9yIG1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCkuXG4gICAgICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludChcbiAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHRoZSBvdXRsaW5lIGFwcGVhcmFuY2Ugb2YgdGhlIGZvcm0tZmllbGQuXG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkbGFiZWwtZGlzYWJsZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gICRvdXRsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjMsIDAuMTIpKTtcbiAgJG91dGxpbmUtY29sb3ItaG92ZXI6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDEsIDAuODcpKTtcbiAgJG91dGxpbmUtY29sb3ItcHJpbWFyeTogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgJG91dGxpbmUtY29sb3ItYWNjZW50OiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICRvdXRsaW5lLWNvbG9yLXdhcm46IG1hdC1jb2xvcigkd2Fybik7XG4gICRvdXRsaW5lLWNvbG9yLWRpc2FibGVkOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjE1LCAwLjA2KSk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xuICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1ob3ZlcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb2N1c2VkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLXByaW1hcnk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gICAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1hY2NlbnQ7XG4gICAgICB9XG5cbiAgICAgICYubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDbGFzcyByZXBlYXRlZCBzbyB0aGF0IHJ1bGUgaXMgc3BlY2lmaWMgZW5vdWdoIHRvIG92ZXJyaWRlIGZvY3VzZWQgYWNjZW50IGNvbG9yIGNhc2UuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQge1xuICAgICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkbGFiZWwtZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLWRpc2FibGVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWRlZHVwZTogMDtcblxuLy8gQXBwbGllcyBhIGZsb2F0aW5nIGxhYmVsIGFib3ZlIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaXRzZWxmLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlKVxuICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGU7XG5cbiAgJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlOiAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBwYWRkaW5nIGFib3ZlIGFuZCBiZWxvdyB0aGUgaW5maXguXG4gICRpbmZpeC1wYWRkaW5nOiAxZW07XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBib3R0b20gb2YgdGhlIC5tYXQtZm9ybS1maWVsZC1mbGV4IGFyZWEgYW5kIHRoZSBzdWJzY3JpcHQgd3JhcHBlci5cbiAgLy8gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCB0aGlzIG1hcmdpbiBpcyBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgd2l0aCB0aGUgc3Vic2NyaXB0XG4gIC8vIHRleHQgZm9udCBzaXplLCBzbyB3ZSBuZWVkIHRvIGRpdmlkZSBieSB0aGUgc2NhbGUgZmFjdG9yIHRvIG1ha2UgaXQgaGFsZiBvZiB0aGUgb3JpZ2luYWwgdGV4dFxuICAvLyBzaXplLlxuICAkc3Vic2NyaXB0LW1hcmdpbi10b3A6IDAuNWVtIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBUaGUgcGFkZGluZyBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLXdyYXBwZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIHN1YnNjcmlwdCwgc2luY2UgaXQnc1xuICAvLyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQuIFRoaXMgaXMgYSBjb21iaW5hdGlvbiBvZiB0aGUgc3Vic2NyaXB0J3MgbWFyZ2luIGFuZCBsaW5lLWhlaWdodCwgYnV0IHdlXG4gIC8vIG5lZWQgdG8gbXVsdGlwbHkgYnkgdGhlIHN1YnNjcmlwdCBmb250IHNjYWxlIGZhY3RvciBzaW5jZSB0aGUgd3JhcHBlciBoYXMgYSBsYXJnZXIgZm9udCBzaXplLlxuICAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTogKCRzdWJzY3JpcHQtbWFyZ2luLXRvcCArICRsaW5lLWhlaWdodCkgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBhbW91bnQgd2Ugb2Zmc2V0IHRoZSBsYWJlbCBmcm9tIHRoZSBpbnB1dCB0ZXh0IGluIHRoZSBvdXRsaW5lIGFwcGVhcmFuY2UuXG4gICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0OiAtMC4yNWVtO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUge1xuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICBwYWRkaW5nOiAkaW5maXgtcGFkZGluZyAwICRpbmZpeC1wYWRkaW5nIDA7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIHRvcDogJGluZml4LW1hcmdpbi10b3AgKyAkaW5maXgtcGFkZGluZztcbiAgICAgIG1hcmdpbi10b3A6ICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0O1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLW91dGxpbmUtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZyArICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcgKyAkb3V0bGluZS1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldCxcbiAgICAgICAgICAgICAgICAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIHN0YW5kYXJkIGFwcGVhcmFuY2Ugb2YgdGhlIGZvcm0tZmllbGQuXG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkdW5kZXJsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjcsIDAuNDIpKTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICBAaW5jbHVkZSBtYXQtY29udHJvbC1kaXNhYmxlZC11bmRlcmxpbmUoJHVuZGVybGluZS1jb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10eXBvZ3JhcGh5KCRjb25maWcpIHt9XG5cblxuLy8gVGhlbWUgc3R5bGVzIHRoYXQgYXBwbHkgdG8gYWxsIGFwcGVhcmFuY2VzIG9mIHRoZSBmb3JtLWZpZWxkLlxuQG1peGluIG1hdC1mb3JtLWZpZWxkLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAvLyBMYWJlbCBjb2xvcnMuIFJlcXVpcmVkIGlzIHVzZWQgZm9yIHRoZSBgKmAgc3RhciBzaG93biBpbiB0aGUgbGFiZWwuXG4gICRsYWJlbC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCwgaWYoJGlzLWRhcmstdGhlbWUsIDAuNywgMC42KSk7XG4gICRmb2N1c2VkLWxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuICAkcmVxdWlyZWQtbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcblxuICAvLyBVbmRlcmxpbmUgY29sb3JzLlxuICAkdW5kZXJsaW5lLWNvbG9yLWJhc2U6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDEsIDAuODcpKTtcbiAgJHVuZGVybGluZS1jb2xvci1hY2NlbnQ6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcbiAgJHVuZGVybGluZS1jb2xvci13YXJuOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICAkdW5kZXJsaW5lLWZvY3VzZWQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1oaW50IHtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgY29sb3I6ICRmb2N1c2VkLWxhYmVsLWNvbG9yO1xuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWFjY2VudDtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIge1xuICAgIGNvbG9yOiAkcmVxdWlyZWQtbGFiZWwtY29sb3I7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWJhc2U7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQge1xuICAgIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1mb2N1c2VkLWNvbG9yO1xuXG4gICAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWFjY2VudDtcbiAgICAgIH1cblxuICAgICAgJi5tYXQtd2FybiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpIHtcbiAgICAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWZvY3VzZWQtY29sb3I7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3ItYWNjZW50O1xuICAgIH1cblxuICAgICYubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN0eWxpbmcgZm9yIHRoZSBlcnJvciBzdGF0ZSBvZiB0aGUgZm9ybSBmaWVsZC4gTm90ZSB0aGF0IHdoaWxlIHRoZSBzYW1lIGNhbiBiZVxuICAvLyBhY2hpZXZlZCB3aXRoIHRoZSBuZy0qIGNsYXNzZXMsIHdlIHVzZSB0aGlzIGFwcHJvYWNoIGluIG9yZGVyIHRvIGVuc3VyZSB0aGF0IHRoZSBzYW1lXG4gIC8vIGxvZ2ljIGlzIHVzZWQgdG8gc3R5bGUgdGhlIGVycm9yIHN0YXRlIGFuZCB0byBzaG93IHRoZSBlcnJvciBtZXNzYWdlcy5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQge1xuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuXG4gICAgICAmLm1hdC1hY2NlbnQsXG4gICAgICAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtcmlwcGxlLFxuICAgIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgfVxuICB9XG5cbiAgLm1hdC1lcnJvciB7XG4gICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1maWxsLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhlbWUoJHRoZW1lKTtcbn1cblxuLy8gVXNlZCB0byBtYWtlIGluc3RhbmNlcyBvZiB0aGUgX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nIG1peGluIG5lZ2xpZ2libHkgZGlmZmVyZW50LFxuLy8gYW5kIHByZXZlbnQgR29vZ2xlJ3MgQ1NTIE9wdGltaXplciBmcm9tIGNvbGxhcHNpbmcgdGhlIGRlY2xhcmF0aW9ucy4gVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBzb21lXG4vLyBvZiB0aGUgc2VsZWN0b3JzIGNvbnRhaW4gcHNldWRvLWNsYXNzZXMgbm90IHJlY29nbml6ZWQgaW4gYWxsIGJyb3dzZXJzLiBJZiBhIGJyb3dzZXIgZW5jb3VudGVyc1xuLy8gYW4gdW5rbm93biBwc2V1ZG8tY2xhc3MgaXQgd2lsbCBkaXNjYXJkIHRoZSBlbnRpcmUgcnVsZSBzZXQuXG4kbWF0LWZvcm0tZmllbGQtZGVkdXBlOiAwO1xuXG4vLyBBcHBsaWVzIGEgZmxvYXRpbmcgbGFiZWwgYWJvdmUgdGhlIGZvcm0gZmllbGQgY29udHJvbCBpdHNlbGYuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLWRlZHVwZSlcbiAgICAgICAgICAgICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtZGVkdXBlO1xuXG4gICRtYXQtZm9ybS1maWVsZC1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuXG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBwcmVmaXggYW5kIHN1ZmZpeCBpY29ucy5cbiAgJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNjYWxlOiAxLjU7XG5cbiAgLy8gVGhlIHBhZGRpbmcgb24gdGhlIGluZml4LiBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZS5cbiAgJGluZml4LXBhZGRpbmc6IDAuNWVtO1xuICAvLyBUaGUgbWFyZ2luIGFwcGxpZWQgdG8gdGhlIGZvcm0tZmllbGQtaW5maXggdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsLlxuICAkaW5maXgtbWFyZ2luLXRvcDogMWVtICogJGxpbmUtaGVpZ2h0ICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBGb250IHNpemUgdG8gdXNlIGZvciB0aGUgbGFiZWwgYW5kIHN1YnNjcmlwdCB0ZXh0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2l6ZTogJHN1YnNjcmlwdC1mb250LXNjYWxlICogMTAwJTtcbiAgLy8gRm9udCBzaXplIHRvIHVzZSBmb3IgdGhlIGZvciB0aGUgcHJlZml4IGFuZCBzdWZmaXggaWNvbnMuXG4gICRwcmVmaXgtc3VmZml4LWljb24tZm9udC1zaXplOiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGUgKiAxMDAlO1xuICAvLyBUaGUgc3BhY2UgYmV0d2VlbiB0aGUgYm90dG9tIG9mIHRoZSAubWF0LWZvcm0tZmllbGQtZmxleCBhcmVhIGFuZCB0aGUgc3Vic2NyaXB0IHdyYXBwZXIuXG4gIC8vIE1vY2tzIHNob3cgaGFsZiBvZiB0aGUgdGV4dCBzaXplLCBidXQgdGhpcyBtYXJnaW4gaXMgYXBwbGllZCB0byBhbiBlbGVtZW50IHdpdGggdGhlIHN1YnNjcmlwdFxuICAvLyB0ZXh0IGZvbnQgc2l6ZSwgc28gd2UgbmVlZCB0byBkaXZpZGUgYnkgdGhlIHNjYWxlIGZhY3RvciB0byBtYWtlIGl0IGhhbGYgb2YgdGhlIG9yaWdpbmFsIHRleHRcbiAgLy8gc2l6ZS5cbiAgJHN1YnNjcmlwdC1tYXJnaW4tdG9wOiAwLjVlbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcbiAgLy8gVGhlIHBhZGRpbmcgYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC13cmFwcGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBzdWJzY3JpcHQsIHNpbmNlIGl0J3NcbiAgLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkLiBUaGlzIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIHN1YnNjcmlwdCdzIG1hcmdpbiBhbmQgbGluZS1oZWlnaHQsIGJ1dCB3ZVxuICAvLyBuZWVkIHRvIG11bHRpcGx5IGJ5IHRoZSBzdWJzY3JpcHQgZm9udCBzY2FsZSBmYWN0b3Igc2luY2UgdGhlIHdyYXBwZXIgaGFzIGEgbGFyZ2VyIGZvbnQgc2l6ZS5cbiAgJHdyYXBwZXItcGFkZGluZy1ib3R0b206ICgkc3Vic2NyaXB0LW1hcmdpbi10b3AgKyAkbGluZS1oZWlnaHQpICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuXG4gIC5tYXQtZm9ybS1maWVsZCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGlucHV0KTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHdyYXBwZXItcGFkZGluZy1ib3R0b207XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtcHJlZml4LFxuICAubWF0LWZvcm0tZmllbGQtc3VmZml4IHtcbiAgICAvLyBBbGxvdyBpY29ucyBpbiBhIHByZWZpeCBvciBzdWZmaXggdG8gYWRhcHQgdG8gdGhlIGNvcnJlY3Qgc2l6ZS5cbiAgICAubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gICAgfVxuXG4gICAgLy8gQWxsb3cgaWNvbiBidXR0b25zIGluIGEgcHJlZml4IG9yIHN1ZmZpeCB0byBhZGFwdCB0byB0aGUgY29ycmVjdCBzaXplLlxuICAgIC5tYXQtaWNvbi1idXR0b24ge1xuICAgICAgaGVpZ2h0OiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGUgKiAxZW07XG4gICAgICB3aWR0aDogJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNjYWxlICogMWVtO1xuXG4gICAgICAubWF0LWljb24ge1xuICAgICAgICBoZWlnaHQ6ICRsaW5lLWhlaWdodCAqIDFlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIHBhZGRpbmc6ICRpbmZpeC1wYWRkaW5nIDA7XG4gICAgLy8gVGhyb3dzIG9mZiB0aGUgYmFzZWxpbmUgaWYgd2UgZG8gaXQgYXMgYSByZWFsIG1hcmdpbiwgc28gd2UgZG8gaXQgYXMgYSBib3JkZXIgaW5zdGVhZC5cbiAgICBib3JkZXItdG9wOiAkaW5maXgtbWFyZ2luLXRvcCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICB9XG5cbiAgICAvLyBTZXJ2ZXItc2lkZSByZW5kZXJlZCBtYXRJbnB1dCB3aXRoIGEgbGFiZWwgYXR0cmlidXRlIGJ1dCBsYWJlbCBub3Qgc2hvd25cbiAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgdG9wOiAtJGluZml4LW1hcmdpbi10b3A7XG4gICAgcGFkZGluZy10b3A6ICRpbmZpeC1tYXJnaW4tdG9wO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmc7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAvLyBXZSB3YW50IHRoZSB1bmRlcmxpbmUgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQuXG4gICAgYm90dG9tOiAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciB7XG4gICAgZm9udC1zaXplOiAkc3Vic2NyaXB0LWZvbnQtc2l6ZTtcbiAgICBtYXJnaW4tdG9wOiAkc3Vic2NyaXB0LW1hcmdpbi10b3A7XG5cbiAgICAvLyBXZSB3YW50IHRoZSBzdWJzY3JpcHQgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQgKGFkanVzdGVkIGZvciB0aGUgc21hbGxlciBmb250IHNpemUpO1xuICAgIHRvcDogY2FsYygxMDAlIC0gI3skd3JhcHBlci1wYWRkaW5nLWJvdHRvbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZX0pO1xuICB9XG5cbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtbGVnYWN5LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXN0YW5kYXJkLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWZpbGwtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtb3V0bGluZS10eXBvZ3JhcGh5KCRjb25maWcpO1xufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtdHJlZS10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXRyZWUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgfVxuXG4gIC5tYXQtdHJlZS1ub2RlLFxuICAubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtdHJlZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC10cmVlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC10cmVlLW5vZGUsXG4gIC5tYXQtbmVzdGVkLXRyZWUtbm9kZSB7XG4gICAgZm9udC13ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpO1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG4vLyBJbmNsdWRlcyBhbGwgb2YgdGhlIHR5cG9ncmFwaGljIHN0eWxlcy5cbkBtaXhpbiBhbmd1bGFyLW1hdGVyaWFsLXR5cG9ncmFwaHkoJGNvbmZpZzogbnVsbCkge1xuICBAaWYgJGNvbmZpZyA9PSBudWxsIHtcbiAgICAkY29uZmlnOiBtYXQtdHlwb2dyYXBoeS1jb25maWcoKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1hdC1iYWRnZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYmFzZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYXV0b2NvbXBsZXRlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1ib3R0b20tc2hlZXQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYnV0dG9uLXRvZ2dsZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtY2FyZC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtY2hlY2tib3gtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWNoaXBzLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10YWJsZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZGF0ZXBpY2tlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZGlhbG9nLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1leHBhbnNpb24tcGFuZWwtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWdyaWQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtaWNvbi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtaW5wdXQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LW1lbnUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXBhZ2luYXRvci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3MtYmFyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcm9ncmVzcy1zcGlubmVyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1yYWRpby10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc2VsZWN0LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zaWRlbmF2LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zbGlkZS10b2dnbGUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXNsaWRlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc3RlcHBlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc29ydC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdGFicy10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdG9vbGJhci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdG9vbHRpcC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtb3B0aW9uLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1vcHRncm91cC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc25hY2stYmFyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10cmVlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG59XG5cblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBzdHlsZXMgdGhhdCBhcmUgbm90IHRoZW1lLWRlcGVuZGVudC5cbkBtaXhpbiBtYXQtY29yZSgkdHlwb2dyYXBoeS1jb25maWc6IG51bGwpIHtcbiAgQGluY2x1ZGUgYW5ndWxhci1tYXRlcmlhbC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5LWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1yaXBwbGUoKTtcbiAgQGluY2x1ZGUgY2RrLWExMXkoKTtcbiAgQGluY2x1ZGUgY2RrLW92ZXJsYXkoKTtcbiAgQGluY2x1ZGUgY2RrLXRleHQtZmllbGQoKTtcbn1cblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBzdHlsZXMgdGhhdCBkZXBlbmQgb24gdGhlIHRoZW1lLlxuQG1peGluIG1hdC1jb3JlLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtcmlwcGxlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1vcHRpb24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LW9wdGdyb3VwLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1wc2V1ZG8tY2hlY2tib3gtdGhlbWUoJHRoZW1lKTtcblxuICAvLyBQcm92aWRlcyBleHRlcm5hbCBDU1MgY2xhc3NlcyBmb3IgZWFjaCBlbGV2YXRpb24gdmFsdWUuIEVhY2ggQ1NTIGNsYXNzIGlzIGZvcm1hdHRlZCBhc1xuICAvLyBgbWF0LWVsZXZhdGlvbi16JHpWYWx1ZWAgd2hlcmUgYCR6VmFsdWVgIGNvcnJlc3BvbmRzIHRvIHRoZSB6LXNwYWNlIHRvIHdoaWNoIHRoZSBlbGVtZW50IGlzXG4gIC8vIGVsZXZhdGVkLlxuICBAZm9yICR6VmFsdWUgZnJvbSAwIHRocm91Z2ggMjQge1xuICAgIC4jeyRfbWF0LWVsZXZhdGlvbi1wcmVmaXh9I3skelZhbHVlfSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigkelZhbHVlLCAkdGhlbWUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdyYXBwZXIgZWxlbWVudCB0aGF0IHByb3ZpZGVzIHRoZSB0aGVtZSBiYWNrZ3JvdW5kIHdoZW4gdGhlIHVzZXIncyBjb250ZW50IGlzbid0XG4gIC8vIGluc2lkZSBvZiBhIGBtYXQtc2lkZW5hdi1jb250YWluZXJgLiBOb3RlIHRoYXQgd2UgbmVlZCB0byBleGNsdWRlIHRoZSBhbXBlcnNhbmRcbiAgLy8gc2VsZWN0b3IgaW4gY2FzZSB0aGUgbWl4aW4gaXMgaW5jbHVkZWQgYXQgdGhlIHRvcCBsZXZlbC5cbiAgLm1hdC1hcHAtYmFja2dyb3VuZCN7aWYoJiwgJywgJi5tYXQtYXBwLWJhY2tncm91bmQnLCAnJyl9IHtcbiAgICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAgICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLy8gTWFya2VyIHRoYXQgaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgdXNlciBoYXMgYWRkZWQgYSB0aGVtZSB0byB0aGVpciBwYWdlLlxuICBAYXQtcm9vdCB7XG4gICAgLm1hdC10aGVtZS1sb2FkZWQtbWFya2VyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtZGl2aWRlci10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWRpdmlkZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWRpdmlkZXItdmVydGljYWwge1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxufVxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4vLyBDcmVhdGUgYSB0aGVtZS5cbkBtaXhpbiBhbmd1bGFyLW1hdGVyaWFsLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtY29yZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtYXV0b2NvbXBsZXRlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1iYWRnZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtYm90dG9tLXNoZWV0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1idXR0b24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10b2dnbGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWNhcmQtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWNoZWNrYm94LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1jaGlwcy10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtdGFibGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWRhdGVwaWNrZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWRpYWxvZy10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZGl2aWRlci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZXhwYW5zaW9uLXBhbmVsLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1ncmlkLWxpc3QtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWljb24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWlucHV0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1saXN0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1tZW51LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1wYWdpbmF0b3ItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLWJhci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtcmFkaW8tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNlbGVjdC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtc2lkZW5hdi10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtc2xpZGUtdG9nZ2xlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1zbGlkZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXN0ZXBwZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNvcnQtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRhYnMtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRvb2xiYXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRvb2x0aXAtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRyZWUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNuYWNrLWJhci10aGVtZSgkdGhlbWUpO1xufVxuIiwiLyogVGhlbWUgZm9yIHRoZSByaXBwbGUgZWxlbWVudHMuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIG1hdGVyaWFsL25vLXByZWZpeGVzICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4ubWF0LWJhZGdlLWNvbnRlbnQge1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1iYWRnZS1zbWFsbCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBmb250LXNpemU6IDlweDtcbn1cblxuLm1hdC1iYWRnZS1sYXJnZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBmb250LXNpemU6IDI0cHg7XG59XG5cbi5tYXQtaDEsIC5tYXQtaGVhZGxpbmUsIC5tYXQtdHlwb2dyYXBoeSBoMSB7XG4gIGZvbnQ6IDQwMCAyNHB4LzMycHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDE2cHg7XG59XG5cbi5tYXQtaDIsIC5tYXQtdGl0bGUsIC5tYXQtdHlwb2dyYXBoeSBoMiB7XG4gIGZvbnQ6IDUwMCAyMHB4LzMycHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDE2cHg7XG59XG5cbi5tYXQtaDMsIC5tYXQtc3ViaGVhZGluZy0yLCAubWF0LXR5cG9ncmFwaHkgaDMge1xuICBmb250OiA0MDAgMTZweC8yOHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCAxNnB4O1xufVxuXG4ubWF0LWg0LCAubWF0LXN1YmhlYWRpbmctMSwgLm1hdC10eXBvZ3JhcGh5IGg0IHtcbiAgZm9udDogNDAwIDE1cHgvMjRweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgMTZweDtcbn1cblxuLm1hdC1oNSwgLm1hdC10eXBvZ3JhcGh5IGg1IHtcbiAgZm9udDogNDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDEycHg7XG59XG5cbi5tYXQtaDYsIC5tYXQtdHlwb2dyYXBoeSBoNiB7XG4gIGZvbnQ6IDQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCAxMnB4O1xufVxuXG4ubWF0LWJvZHktc3Ryb25nLCAubWF0LWJvZHktMiB7XG4gIGZvbnQ6IDUwMCAxNHB4LzI0cHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtYm9keSwgLm1hdC1ib2R5LTEsIC5tYXQtdHlwb2dyYXBoeSB7XG4gIGZvbnQ6IDQwMCAxNHB4LzIwcHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4ubWF0LWJvZHkgcCwgLm1hdC1ib2R5LTEgcCwgLm1hdC10eXBvZ3JhcGh5IHAge1xuICBtYXJnaW46IDAgMCAxMnB4O1xufVxuXG4ubWF0LXNtYWxsLCAubWF0LWNhcHRpb24ge1xuICBmb250OiA0MDAgMTJweC8yMHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWRpc3BsYXktNCwgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS00IHtcbiAgZm9udDogMzAwIDExMnB4LzExMnB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDVlbTtcbiAgbWFyZ2luOiAwIDAgNTZweDtcbn1cblxuLm1hdC1kaXNwbGF5LTMsIC5tYXQtdHlwb2dyYXBoeSAubWF0LWRpc3BsYXktMyB7XG4gIGZvbnQ6IDQwMCA1NnB4LzU2cHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICBtYXJnaW46IDAgMCA2NHB4O1xufVxuXG4ubWF0LWRpc3BsYXktMiwgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS0yIHtcbiAgZm9udDogNDAwIDQ1cHgvNDhweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwNWVtO1xuICBtYXJnaW46IDAgMCA2NHB4O1xufVxuXG4ubWF0LWRpc3BsYXktMSwgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS0xIHtcbiAgZm9udDogNDAwIDM0cHgvNDBweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgNjRweDtcbn1cblxuLm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyIHtcbiAgZm9udDogNDAwIDE0cHgvMjBweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1idXR0b24sIC5tYXQtcmFpc2VkLWJ1dHRvbiwgLm1hdC1pY29uLWJ1dHRvbiwgLm1hdC1zdHJva2VkLWJ1dHRvbixcbi5tYXQtZmxhdC1idXR0b24sIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1jYXJkIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWNhcmQtdGl0bGUge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtY2FyZC1oZWFkZXIgLm1hdC1jYXJkLXRpdGxlIHtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuXG4ubWF0LWNhcmQtc3VidGl0bGUsXG4ubWF0LWNhcmQtY29udGVudCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1hdC1jaGVja2JveCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1jaGVja2JveC1sYXlvdXQgLm1hdC1jaGVja2JveC1sYWJlbCB7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuXG4ubWF0LWNoaXAge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4ubWF0LWNoaXAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb24sXG4ubWF0LWNoaXAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLm1hdC10YWJsZSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1oZWFkZXItY2VsbCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1jZWxsLCAubWF0LWZvb3Rlci1jZWxsIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4ubWF0LWNhbGVuZGFyIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWNhbGVuZGFyLWJvZHkge1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCxcbi5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIgdGgge1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5tYXQtZGlhbG9nLXRpdGxlIHtcbiAgZm9udDogNTAwIDIwcHgvMzJweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnQge1xuICBmb250OiA0MDAgMTRweC8yMHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWZvcm0tZmllbGQge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjEyNTtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAxLjM0Mzc1ZW07XG59XG5cbi5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLFxuLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24ge1xuICBmb250LXNpemU6IDE1MCU7XG4gIGxpbmUtaGVpZ2h0OiAxLjEyNTtcbn1cbi5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbixcbi5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbiB7XG4gIGhlaWdodDogMS41ZW07XG4gIHdpZHRoOiAxLjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb24sXG4ubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29uIHtcbiAgaGVpZ2h0OiAxLjEyNWVtO1xuICBsaW5lLWhlaWdodDogMS4xMjU7XG59XG5cbi5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDAuNWVtIDA7XG4gIGJvcmRlci10b3A6IDAuODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzMzMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM0MzMzMzMlO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gIHRvcDogLTAuODQzNzVlbTtcbiAgcGFkZGluZy10b3A6IDAuODQzNzVlbTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAxLjM0Mzc1ZW07XG59XG5cbi5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBib3R0b206IDEuMzQzNzVlbTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIG1hcmdpbi10b3A6IDAuNjY2NjY2NjY2N2VtO1xuICB0b3A6IGNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDEuMjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBwYWRkaW5nOiAwLjQzNzVlbSAwO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzMzMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM0MzMzMzMlO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzNTMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuMjgxMjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYm90dG9tOiAxLjI1ZW07XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgbWFyZ2luLXRvcDogMC41NDE2NjY2NjY3ZW07XG4gIHRvcDogY2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pO1xufVxuXG5AbWVkaWEgcHJpbnQge1xuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSk7XG4gIH1cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbDotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSk7XG4gIH1cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpO1xuICB9XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDAuMjVlbSAwIDAuNzVlbSAwO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuMDkzNzVlbTtcbiAgbWFyZ2luLXRvcDogLTAuNWVtO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzMzMzMzMzMlO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM0MzMzMzMlO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDFlbSAwIDFlbSAwO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuODQzNzVlbTtcbiAgbWFyZ2luLXRvcDogLTAuMjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzMzMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzNDMzMzMzJTtcbn1cblxuLm1hdC1ncmlkLXRpbGUtaGVhZGVyLFxuLm1hdC1ncmlkLXRpbGUtZm9vdGVyIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLm1hdC1ncmlkLXRpbGUtaGVhZGVyIC5tYXQtbGluZSxcbi5tYXQtZ3JpZC10aWxlLWZvb3RlciAubWF0LWxpbmUge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubWF0LWdyaWQtdGlsZS1oZWFkZXIgLm1hdC1saW5lOm50aC1jaGlsZChuKzIpLFxuLm1hdC1ncmlkLXRpbGUtZm9vdGVyIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICBtYXJnaW4tdG9wOiAtMC4wNjI1ZW07XG59XG5cbi5tYXQtbWVudS1pdGVtIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5tYXQtcGFnaW5hdG9yLFxuLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLm1hdC1yYWRpby1idXR0b24ge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtc2VsZWN0IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgaGVpZ2h0OiAxLjEyNWVtO1xufVxuXG4ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtc3RlcHBlci12ZXJ0aWNhbCwgLm1hdC1zdGVwcGVyLWhvcml6b250YWwge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtc3RlcC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvciB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi5tYXQtc3RlcC1sYWJlbC1lcnJvciB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWF0LXRhYi1ncm91cCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC10b29sYmFyLFxuLm1hdC10b29sYmFyIGgxLFxuLm1hdC10b29sYmFyIGgyLFxuLm1hdC10b29sYmFyIGgzLFxuLm1hdC10b29sYmFyIGg0LFxuLm1hdC10b29sYmFyIGg1LFxuLm1hdC10b29sYmFyIGg2IHtcbiAgZm9udDogNTAwIDIwcHgvMzJweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwO1xufVxuXG4ubWF0LXRvb2x0aXAge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgcGFkZGluZy10b3A6IDZweDtcbiAgcGFkZGluZy1ib3R0b206IDZweDtcbn1cblxuLm1hdC10b29sdGlwLWhhbmRzZXQge1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmctdG9wOiA4cHg7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG59XG5cbi5tYXQtbGlzdC1pdGVtIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWxpc3Qtb3B0aW9uIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24ge1xuICBmb250LXNpemU6IDE2cHg7XG59XG4ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLm1hdC1saXN0LWJhc2UgLm1hdC1zdWJoZWFkZXIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1pdGVtIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3QtaXRlbSAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMikge1xuICBmb250LXNpemU6IDEycHg7XG59XG4ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LW9wdGlvbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LXN1YmhlYWRlciB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWF0LW9wdGlvbiB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4ubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgZm9udDogNTAwIDE0cHgvMjRweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1zaW1wbGUtc25hY2tiYXIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtdHJlZSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC10cmVlLW5vZGUsXG4ubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5tYXQtcmlwcGxlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4ubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5LCB0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmNkay12aXN1YWxseS1oaWRkZW4ge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgb3V0bGluZTogMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi5jZGstb3ZlcmxheS1jb250YWluZXIsIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jZGstb3ZlcmxheS1jb250YWluZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDEwMDA7XG59XG4uY2RrLW92ZXJsYXktY29udGFpbmVyOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDAwO1xufVxuXG4uY2RrLW92ZXJsYXktcGFuZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbn1cblxuLmNkay1vdmVybGF5LWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO1xuICBvcGFjaXR5OiAwO1xufVxuLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICBvcGFjaXR5OiAxO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgfVxufVxuXG4uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zMik7XG59XG5cbi5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICBvcGFjaXR5OiAwO1xufVxuXG4uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAwMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLXdpZHRoOiAxcHg7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbn1cblxuLmNkay1nbG9iYWwtc2Nyb2xsYmxvY2sge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG5cbkBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQge1xuICAvKiEqL1xufVxuQGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQge1xuICAvKiEqL1xufVxuLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxsIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0O1xufVxuXG4uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCkge1xuICBhbmltYXRpb24tbmFtZTogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kO1xufVxuXG50ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUge1xuICByZXNpemU6IG5vbmU7XG59XG5cbnRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmcge1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveCAhaW1wb3J0YW50O1xufVxuXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW9wdGlvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtb3B0aW9uOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LW9wdGlvbjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW9wdGlvbi5tYXQtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1vcHRpb24ubWF0LW9wdGlvbi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtb3B0Z3JvdXAtZGlzYWJsZWQgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHNldWRvLWNoZWNrYm94IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3g6OmFmdGVyIHtcbiAgY29sb3I6ICNmYWZhZmE7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBjb2xvcjogI2IwYjBiMDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiAjYjBiMGIwO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXowIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejMge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXo0IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDVweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16NiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16NyB7XG4gIGJveC1zaGFkb3c6IDBweCA0cHggNXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggN3B4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAycHggMTZweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16OCB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16OSB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOXB4IDEycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTZweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTAge1xuICBib3gtc2hhZG93OiAwcHggNnB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEwcHggMTRweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDRweCAxOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxMSB7XG4gIGJveC1zaGFkb3c6IDBweCA2cHggN3B4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTFweCAxNXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDIwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejEyIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTMge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEzcHggMTlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxNCB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOXB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTRweCAyMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejE1IHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCA5cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNXB4IDIycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMjhweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTYge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTcge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxN3B4IDI2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTgge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOHB4IDI4cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTkge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDEycHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOXB4IDI5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MjAge1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjBweCAzMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDM4cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejIxIHtcbiAgYm94LXNoYWRvdzogMHB4IDEwcHggMTNweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIxcHggMzNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MHB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoyMiB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDE0cHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMnB4IDM1cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDJweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MjMge1xuICBib3gtc2hhZG93OiAwcHggMTFweCAxNHB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjNweCAzNnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejI0IHtcbiAgYm94LXNoYWRvdzogMHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYXBwLWJhY2tncm91bmQsIC5zdGFuZGFyZC10aGVtZS5tYXQtYXBwLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtdGhlbWUtbG9hZGVkLW1hcmtlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zdGFuZGFyZC10aGVtZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LWFjdGl2ZSk6bm90KDpob3Zlcik6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZDogIzYwN2Q4Yjtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBvdXRsaW5lOiBzb2xpZCAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtYWNjZW50IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICM0NDhhZmY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXdhcm4gLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1oaWRkZW4gLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWRpc2FibGVkIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICNiOWI5Yjk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0O1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIHtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLThweDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC04cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNnB4O1xufVxuW2Rpcj1ydGxdIC5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTZweDtcbn1cbltkaXI9cnRsXSAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtOHB4O1xufVxuW2Rpcj1ydGxdIC5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC04cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC04cHg7XG59XG5bZGlyPXJ0bF0gLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtOHB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB0b3A6IC0xMXB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC0xMXB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0yMnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTIycHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTExcHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMTFweDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWxhcmdlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLTE0cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVsb3cgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYm90dG9tOiAtMTRweDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTI4cHg7XG59XG5bZGlyPXJ0bF0gLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTI4cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0yOHB4O1xufVxuW2Rpcj1ydGxdIC5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTI4cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNHB4O1xufVxuW2Rpcj1ydGxdIC5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNHB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTRweDtcbn1cbltkaXI9cnRsXSAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNHB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24sIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbiB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnksIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24ubWF0LWFjY2VudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24ubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b25bZGlzYWJsZWRdIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBvcGFjaXR5OiAwLjE7XG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZDogYmxhY2s7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2Rpc2FibGVkXSkge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnksIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC1wcmltYXJ5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWZhYi5tYXQtYWNjZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhaXNlZC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF06bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWI6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiOm5vdChbZGlzYWJsZWRdKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiOm5vdChbZGlzYWJsZWRdKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEycHggMTdweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiW2Rpc2FibGVkXTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWJbZGlzYWJsZWRdOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSBbZGlyPXJ0bF0gLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiZGJkYmQ7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGJvcmRlcjogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYXJkIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FyZDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYXJkLm1hdC1jYXJkLWZsYXQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYXJkLXN1YnRpdGxlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gIGZpbGw6ICNmYWZhZmE7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gIHN0cm9rZTogI2ZhZmFmYSAhaW1wb3J0YW50O1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHtcbiAgLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGgge1xuICAgIHN0cm9rZTogIzAwMCAhaW1wb3J0YW50O1xuICB9XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IwYjBiMDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkOm5vdCgubWF0LWNoZWNrYm94LWNoZWNrZWQpIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6ICNiMGIwYjA7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveC1kaXNhYmxlZCAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgb3BhY2l0eTogMC40O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDpub3QoLm1hdC1jaGlwLWRpc2FibGVkKTphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDpub3QoLm1hdC1jaGlwLWRpc2FibGVkKSAubWF0LWNoaXAtcmVtb3ZlOmhvdmVyIHtcbiAgb3BhY2l0eTogMC41NDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjQ7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOjphZnRlciB7XG4gIGJhY2tncm91bmQ6IGJsYWNrO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgb3BhY2l0eTogMC40O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXdhcm4gLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgb3BhY2l0eTogMC40O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFibGUge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYmxlIHRoZWFkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWJsZSB0Ym9keSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFibGUgdGZvb3QsXG4uc3RhbmRhcmQtdGhlbWUgbWF0LWhlYWRlci1yb3csIC5zdGFuZGFyZC10aGVtZSBtYXQtcm93LCAuc3RhbmRhcmQtdGhlbWUgbWF0LWZvb3Rlci1yb3csXG4uc3RhbmRhcmQtdGhlbWUgW21hdC1oZWFkZXItcm93XSwgLnN0YW5kYXJkLXRoZW1lIFttYXQtcm93XSwgLnN0YW5kYXJkLXRoZW1lIFttYXQtZm9vdGVyLXJvd10sXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWJsZS1zdGlja3kge1xuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xufVxuLnN0YW5kYXJkLXRoZW1lIG1hdC1yb3csIC5zdGFuZGFyZC10aGVtZSBtYXQtaGVhZGVyLXJvdywgLnN0YW5kYXJkLXRoZW1lIG1hdC1mb290ZXItcm93LFxuLnN0YW5kYXJkLXRoZW1lIHRoLm1hdC1oZWFkZXItY2VsbCwgLnN0YW5kYXJkLXRoZW1lIHRkLm1hdC1jZWxsLCAuc3RhbmRhcmQtdGhlbWUgdGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWhlYWRlci1jZWxsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jZWxsLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mb290ZXItY2VsbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItYXJyb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1uZXh0LWJ1dHRvbixcbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLXByZXZpb3VzLWJ1dHRvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXItZGl2aWRlcjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXIgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSxcbi5zdGFuZGFyZC10aGVtZSAuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS10b2RheTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xuICBjb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg5NiwgMTI1LCAxMzksIDAuNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDhhZmY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNjgsIDEzOCwgMjU1LCAwLjQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0NCwgNjcsIDU0LCAwLjQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC10b3VjaCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLm1hdC1hY2NlbnQge1xuICBjb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGl2aWRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kaXZpZGVyLXZlcnRpY2FsIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWFjdGlvbi1yb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5zdGFuZGFyZC10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCk6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICB9XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLWluZGljYXRvcjo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaGludCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKSAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKS5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LWFjY2VudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVycm9yIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWhpbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC40MikgMCUsIHJnYmEoMCwgMCwgMCwgMC40MikgMzMlLCB0cmFuc3BhcmVudCAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogNHB4IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNDIpIDAlLCByZ2JhKDAsIDAsIDAsIDAuNDIpIDMzJSwgdHJhbnNwYXJlbnQgMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDRweCAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA2KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWljb24ubWF0LXByaW1hcnkge1xuICBjb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWljb24ubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6ZGlzYWJsZWQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtaW5wdXQtZWxlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWlucHV0LWVsZW1lbnQge1xuICBjYXJldC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWxpc3QtYmFzZSAubWF0LXN1YmhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbGlzdC1pdGVtLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWxpc3Qtb3B0aW9uOmhvdmVyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1saXN0LW9wdGlvbjpmb2N1cyxcbi5zdGFuZGFyZC10aGVtZSAubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06Zm9jdXMsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbTpob3Zlcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtaXRlbSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF06OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1tZW51LWl0ZW0gLm1hdC1pY29uLW5vLWNvbG9yLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWVudS1pdGVtLXN1Ym1lbnUtdHJpZ2dlcjo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtaXRlbTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1tZW51LWl0ZW0uY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoW2Rpc2FibGVkXSksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1tZW51LWl0ZW0uY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWVudS1pdGVtLWhpZ2hsaWdodGVkOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wYWdpbmF0b3Ige1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvci1wYWdlLXNpemUgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQge1xuICBib3JkZXItdG9wOiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvci1maXJzdCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZGVjcmVtZW50LFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1maXJzdCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjY2ZkOGRjO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZmQ4ZGM7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gIGZpbGw6ICM4MmIxZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODJiMWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjZmZjZGQyO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmNkZDI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGUsIC5zdGFuZGFyZC10aGVtZSAubWF0LXNwaW5uZXIgY2lyY2xlIHtcbiAgc3Ryb2tlOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSB7XG4gIHN0cm9rZTogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXdhcm4gY2lyY2xlLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zcGlubmVyLm1hdC13YXJuIGNpcmNsZSB7XG4gIHN0cm9rZTogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeTphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudC5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50OmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2Fybi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybjphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zZWxlY3QtdmFsdWUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNlbGVjdC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNlbGVjdC1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2VsZWN0LXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zZWxlY3QtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtcHJpbWFyeSAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtYWNjZW50IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtaW52YWxpZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZCAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXItY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXIubWF0LWRyYXdlci1wdXNoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXI6bm90KC5tYXQtZHJhd2VyLXNpZGUpIHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXItc2lkZSB7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXItc2lkZS5tYXQtZHJhd2VyLWVuZCB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLnN0YW5kYXJkLXRoZW1lIFtkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRlIHtcbiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgW2Rpcj1ydGxdIC5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmQge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRyYXdlci1iYWNrZHJvcC5tYXQtZHJhd2VyLXNob3duIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDY4LCAxMzgsIDI1NSwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoOTYsIDEyNSwgMTM5LCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDQsIDY3LCA1NCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGU6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWIsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItZm9jdXMtcmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNjgsIDEzOCwgMjU1LCAwLjIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGVyOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4uc3RhbmRhcmQtdGhlbWUgLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItZGlzYWJsZWQ6aG92ZXIgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWIsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZy5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpOmhvdmVyIC5tYXQtc2xpZGVyLXRodW1iLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKS5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpOmhvdmVyLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpLmNkay1mb2N1c2VkLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItaGFzLXRpY2tzIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC43KSwgcmdiYSgwLCAwLCAwLCAwLjcpIDJweCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LXJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMC4wMDAxZGVnLCByZ2JhKDAsIDAsIDAsIDAuNyksIHJnYmEoMCwgMCwgMCwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDAsIDAsIDAsIDAuNyksIHJnYmEoMCwgMCwgMCwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXAtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlci5jZGstcHJvZ3JhbS1mb2N1c2VkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXAtaGVhZGVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtb3B0aW9uYWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVycm9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWFjdGl2ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwcGVyLWhvcml6b250YWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXBwZXItdmVydGljYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXBwZXItdmVydGljYWwtbGluZTo6YmVmb3JlIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjphZnRlcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbC1saW5lIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNvcnQtaGVhZGVyLWFycm93IHtcbiAgY29sb3I6ICM3NTc1NzU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC10YWItbmF2LWJhcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC10YWItaGVhZGVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbGFiZWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cFtjbGFzcyo9bWF0LWJhY2tncm91bmQtXSAubWF0LXRhYi1oZWFkZXIsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhcltjbGFzcyo9bWF0LWJhY2tncm91bmQtXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDcsIDIxNiwgMjIwLCAwLjMpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtaW5rLWJhciwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtaW5rLWJhciwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMzAsIDE3NywgMjU1LCAwLjMpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC1pbmstYmFyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1pbmstYmFyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50Lm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjA1LCAyMTAsIDAuMyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC1pbmstYmFyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1pbmstYmFyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwNywgMjE2LCAyMjAsIDAuMyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmtzLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGlua3MsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmssIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMzAsIDE3NywgMjU1LCAwLjMpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGlua3MsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rcywgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluaywgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMDUsIDIxMCwgMC4zKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlciwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGlua3MsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlciwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rcywgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluaywgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10b29sYmFyIHtcbiAgYmFja2dyb3VuZDogd2hpdGVzbW9rZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10b29sYmFyLm1hdC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzYwN2Q4YjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdG9vbGJhci5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZDogIzQ0OGFmZjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdG9vbGJhci5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQ6ICNmNDQzMzY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtdmFsdWUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LWFycm93LFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2x0aXAge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDk3LCA5NywgOTcsIDAuOSk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10cmVlIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10cmVlLW5vZGUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbmFjay1iYXItY29udGFpbmVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgYmFja2dyb3VuZDogIzMyMzIzMjtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIGgxIHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG5cbi5ncmVlbi10aGVtZSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtb3B0aW9uIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtb3B0aW9uOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksIC5ncmVlbi10aGVtZSAubWF0LW9wdGlvbjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW9wdGlvbi5tYXQtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtb3B0aW9uLm1hdC1vcHRpb24tZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1vcHRncm91cC1kaXNhYmxlZCAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3g6OmFmdGVyIHtcbiAgY29sb3I6ICMzMDMwMzA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBjb2xvcjogIzY4Njg2ODtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5ncmVlbi10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLFxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uZ3JlZW4tdGhlbWUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCxcbi5ncmVlbi10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiAjNjg2ODY4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXowIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejMge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXo0IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDVweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16NiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16NyB7XG4gIGJveC1zaGFkb3c6IDBweCA0cHggNXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggN3B4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAycHggMTZweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16OCB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16OSB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOXB4IDEycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTZweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTAge1xuICBib3gtc2hhZG93OiAwcHggNnB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEwcHggMTRweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDRweCAxOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxMSB7XG4gIGJveC1zaGFkb3c6IDBweCA2cHggN3B4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTFweCAxNXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDIwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejEyIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTMge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEzcHggMTlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxNCB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOXB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTRweCAyMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejE1IHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCA5cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNXB4IDIycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMjhweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTYge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTcge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxN3B4IDI2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTgge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOHB4IDI4cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTkge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDEycHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOXB4IDI5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MjAge1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjBweCAzMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDM4cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejIxIHtcbiAgYm94LXNoYWRvdzogMHB4IDEwcHggMTNweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIxcHggMzNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MHB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoyMiB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDE0cHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMnB4IDM1cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDJweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MjMge1xuICBib3gtc2hhZG93OiAwcHggMTFweCAxNHB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjNweCAzNnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejI0IHtcbiAgYm94LXNoYWRvdzogMHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYXBwLWJhY2tncm91bmQsIC5ncmVlbi10aGVtZS5tYXQtYXBwLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzAzMDMwO1xuICBjb2xvcjogd2hpdGU7XG59XG4ubWF0LXRoZW1lLWxvYWRlZC1tYXJrZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZ3JlZW4tdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtYWN0aXZlKTpub3QoOmhvdmVyKSB7XG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LWFjdGl2ZSk6bm90KDpob3Zlcik6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYmFja2dyb3VuZDogIzhiYzM0YTtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBvdXRsaW5lOiBzb2xpZCAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtYWNjZW50IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICM0Y2FmNTA7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utd2FybiAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYmFja2dyb3VuZDogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtaGlkZGVuIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiAjNmU2ZTZlO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0O1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIHtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLThweDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC04cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNnB4O1xufVxuW2Rpcj1ydGxdIC5ncmVlbi10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTZweDtcbn1cbltkaXI9cnRsXSAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtOHB4O1xufVxuW2Rpcj1ydGxdIC5ncmVlbi10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC04cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC04cHg7XG59XG5bZGlyPXJ0bF0gLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtOHB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB0b3A6IC0xMXB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC0xMXB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0yMnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTIycHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTExcHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMTFweDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWxhcmdlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLTE0cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVsb3cgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYm90dG9tOiAtMTRweDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTI4cHg7XG59XG5bZGlyPXJ0bF0gLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTI4cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0yOHB4O1xufVxuW2Rpcj1ydGxdIC5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTI4cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNHB4O1xufVxuW2Rpcj1ydGxdIC5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNHB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTRweDtcbn1cbltkaXI9cnRsXSAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNHB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24sIC5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbiB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24ubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuLCAuZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4ge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5ncmVlbi10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uW2Rpc2FibGVkXSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIG9wYWNpdHk6IDAuMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIsIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeSwgLmdyZWVuLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQsIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtZmFiLm1hdC1hY2NlbnQsIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0ge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeSwgLmdyZWVuLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiwgLmdyZWVuLXRoZW1lIC5tYXQtZmFiLm1hdC13YXJuLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtZmFiLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b246bm90KFtkaXNhYmxlZF0pOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmFiOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZhYjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZhYltkaXNhYmxlZF06bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiW2Rpc2FibGVkXTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZSxcbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSBbZGlyPXJ0bF0gLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMTIxO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyNDI0Mjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLFxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgYm9yZGVyOiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNhcmQge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYXJkOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNhcmQubWF0LWNhcmQtZmxhdDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNhcmQtc3VidGl0bGUge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gIGZpbGw6ICMzMDMwMzA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gIHN0cm9rZTogIzMwMzAzMCAhaW1wb3J0YW50O1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHtcbiAgLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGgge1xuICAgIHN0cm9rZTogIzAwMCAhaW1wb3J0YW50O1xuICB9XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzAzMDMwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwgLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY4Njg2ODtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkOm5vdCgubWF0LWNoZWNrYm94LWNoZWNrZWQpIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6ICM2ODY4Njg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1kaXNhYmxlZCAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAuZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3ggLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCxcbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LFxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjE2MTYxO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXA6bm90KC5tYXQtY2hpcC1kaXNhYmxlZCk6YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAzcHggNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXA6bm90KC5tYXQtY2hpcC1kaXNhYmxlZCkgLm1hdC1jaGlwLXJlbW92ZTpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNTQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC40O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBvcGFjaXR5OiAwLjQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgb3BhY2l0eTogMC40O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBvcGFjaXR5OiAwLjQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYmxlIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYmxlIHRoZWFkLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWJsZSB0Ym9keSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFibGUgdGZvb3QsXG4uZ3JlZW4tdGhlbWUgbWF0LWhlYWRlci1yb3csIC5ncmVlbi10aGVtZSBtYXQtcm93LCAuZ3JlZW4tdGhlbWUgbWF0LWZvb3Rlci1yb3csXG4uZ3JlZW4tdGhlbWUgW21hdC1oZWFkZXItcm93XSwgLmdyZWVuLXRoZW1lIFttYXQtcm93XSwgLmdyZWVuLXRoZW1lIFttYXQtZm9vdGVyLXJvd10sXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWJsZS1zdGlja3kge1xuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xufVxuLmdyZWVuLXRoZW1lIG1hdC1yb3csIC5ncmVlbi10aGVtZSBtYXQtaGVhZGVyLXJvdywgLmdyZWVuLXRoZW1lIG1hdC1mb290ZXItcm93LFxuLmdyZWVuLXRoZW1lIHRoLm1hdC1oZWFkZXItY2VsbCwgLmdyZWVuLXRoZW1lIHRkLm1hdC1jZWxsLCAuZ3JlZW4tdGhlbWUgdGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWhlYWRlci1jZWxsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNlbGwsIC5ncmVlbi10aGVtZSAubWF0LWZvb3Rlci1jZWxsIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2FsZW5kYXItYXJyb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLFxuLmdyZWVuLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItbmV4dC1idXR0b24sXG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1wcmV2aW91cy1idXR0b24ge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyLWRpdmlkZXI6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXIgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpLFxuLmdyZWVuLXRoZW1lIC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSxcbi5ncmVlbi10aGVtZSAuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMzksIDE5NSwgNzQsIDAuNCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDc2LCAxNzUsIDgwLCAwLjQpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3NiwgMTc1LCA4MCwgMC40KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC10b3VjaCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gIGNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLm1hdC1hY2NlbnQge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtd2FybiB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZDogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGl2aWRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kaXZpZGVyLXZlcnRpY2FsIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWFjdGlvbi1yb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLCAuZ3JlZW4tdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSwgLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5ncmVlbi10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCk6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICM0MjQyNDI7XG4gIH1cbn1cbi5ncmVlbi10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uLFxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLWluZGljYXRvcjo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUsXG4uZ3JlZW4tdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWhpbnQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC1hY2NlbnQge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC13YXJuIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtYWNjZW50LFxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXJyb3Ige1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1oaW50IHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMzMlLCB0cmFuc3BhcmVudCAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogNHB4IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDMzJSwgdHJhbnNwYXJlbnQgMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDRweCAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi5tYXQtcHJpbWFyeSB7XG4gIGNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi5tYXQtYWNjZW50IHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1pY29uLm1hdC13YXJuIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1pbnB1dC1lbGVtZW50OmRpc2FibGVkLFxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQgb3B0aW9uIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1pbnB1dC1lbGVtZW50IG9wdGlvbjpkaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtd2FybiAubWF0LWlucHV0LWVsZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW0ge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbiB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWxpc3QtYmFzZSAubWF0LXN1YmhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1saXN0LWl0ZW0tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbi5ncmVlbi10aGVtZSAubWF0LWxpc3Qtb3B0aW9uOmhvdmVyLCAuZ3JlZW4tdGhlbWUgLm1hdC1saXN0LW9wdGlvbjpmb2N1cyxcbi5ncmVlbi10aGVtZSAubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLFxuLmdyZWVuLXRoZW1lIC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06Zm9jdXMsXG4uZ3JlZW4tdGhlbWUgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbTpob3Zlcixcbi5ncmVlbi10aGVtZSAubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW1lbnUtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtbWVudS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtbWVudS1pdGVtIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF06OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW1lbnUtaXRlbSAubWF0LWljb24tbm8tY29sb3IsXG4uZ3JlZW4tdGhlbWUgLm1hdC1tZW51LWl0ZW0tc3VibWVudS10cmlnZ2VyOjphZnRlciB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW1lbnUtaXRlbTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4uZ3JlZW4tdGhlbWUgLm1hdC1tZW51LWl0ZW0uY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoW2Rpc2FibGVkXSksXG4uZ3JlZW4tdGhlbWUgLm1hdC1tZW51LWl0ZW0uY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLFxuLmdyZWVuLXRoZW1lIC5tYXQtbWVudS1pdGVtLWhpZ2hsaWdodGVkOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wYWdpbmF0b3Ige1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcGFnaW5hdG9yLFxuLmdyZWVuLXRoZW1lIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1wYWdpbmF0b3ItaW5jcmVtZW50IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHdoaXRlO1xuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXBhZ2luYXRvci1maXJzdCxcbi5ncmVlbi10aGVtZSAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxcbi5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZmlyc3QsXG4uZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItbGFzdCB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjZGNlZGM4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkY2VkYzg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gIGZpbGw6ICNjOGU2Yzk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzhlNmM5O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjYzhlNmM5O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjOGU2Yzk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGUsIC5ncmVlbi10aGVtZSAubWF0LXNwaW5uZXIgY2lyY2xlIHtcbiAgc3Ryb2tlOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSwgLmdyZWVuLXRoZW1lIC5tYXQtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSB7XG4gIHN0cm9rZTogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXdhcm4gY2lyY2xlLCAuZ3JlZW4tdGhlbWUgLm1hdC1zcGlubmVyLm1hdC13YXJuIGNpcmNsZSB7XG4gIHN0cm9rZTogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5OmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsXG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudCAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQ6YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4ubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuOmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUsXG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNlbGVjdC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtdmFsdWUge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNlbGVjdC1wYW5lbCB7XG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zZWxlY3QtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNlbGVjdC1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1wcmltYXJ5IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LXdhcm4gLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1pbnZhbGlkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZHJhd2VyLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMDMwMzA7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRyYXdlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MjQyNDI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRyYXdlci5tYXQtZHJhd2VyLXB1c2gge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZHJhd2VyOm5vdCgubWF0LWRyYXdlci1zaWRlKSB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZHJhd2VyLXNpZGUge1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmQge1xuICBib3JkZXItbGVmdDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSBbZGlyPXJ0bF0gLm1hdC1kcmF3ZXItc2lkZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLmdyZWVuLXRoZW1lIFtkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRlLm1hdC1kcmF3ZXItZW5kIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kcmF3ZXItYmFja2Ryb3AubWF0LWRyYXdlci1zaG93biB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTg5LCAxODksIDE4OSwgMC42KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3NiwgMTc1LCA4MCwgMC41NCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTM5LCAxOTUsIDc0LCAwLjU0KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3NiwgMTc1LCA4MCwgMC41NCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGU6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JkYmRiZDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4uZ3JlZW4tdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXdhcm4gLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5ncmVlbi10aGVtZSAubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDc2LCAxNzUsIDgwLCAwLjIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4uZ3JlZW4tdGhlbWUgLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCxcbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLWRpc2FibGVkOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZy5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyk6aG92ZXIgLm1hdC1zbGlkZXItdGh1bWIsIC5ncmVlbi10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKTpob3Zlci5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iLCAuZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKS5jZGstZm9jdXNlZC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItaGFzLXRpY2tzIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDJweCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LXJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMC4wMDAxZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXN0ZXAtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlci5jZGstcHJvZ3JhbS1mb2N1c2VkLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5ncmVlbi10aGVtZSAubWF0LXN0ZXAtaGVhZGVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwsXG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtb3B0aW9uYWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YmMzNGE7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZXJyb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtYWN0aXZlIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwcGVyLWhvcml6b250YWwsIC5ncmVlbi10aGVtZSAubWF0LXN0ZXBwZXItdmVydGljYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmUge1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmJlZm9yZSxcbi5ncmVlbi10aGVtZSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmFmdGVyLFxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmUge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc29ydC1oZWFkZXItYXJyb3cge1xuICBjb2xvcjogI2M2YzZjNjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciAubWF0LXRhYi1uYXYtYmFyLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciAubWF0LXRhYi1oZWFkZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1sYWJlbCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWxpbmsge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwW2NsYXNzKj1tYXQtYmFja2dyb3VuZC1dIC5tYXQtdGFiLWhlYWRlcixcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyW2NsYXNzKj1tYXQtYmFja2dyb3VuZC1dIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyMCwgMjM3LCAyMDAsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC1pbmstYmFyLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC1pbmstYmFyLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjAwLCAyMzAsIDIwMSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtaW5rLWJhciwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtaW5rLWJhciwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwMCwgMjMwLCAyMDEsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC1pbmstYmFyLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1pbmstYmFyLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjIwLCAyMzcsIDIwMCwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlciwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGlua3MsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlciwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rcywgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluaywgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDAsIDIzMCwgMjAxLCAwLjMpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGlua3MsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rcywgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluaywgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwMCwgMjMwLCAyMDEsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXIsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmtzLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXIsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGlua3MsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmssIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIge1xuICBiYWNrZ3JvdW5kOiAjMjEyMTIxO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10b29sYmFyLm1hdC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzhiYzM0YTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10b29sYmFyLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kOiAjNGNhZjUwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIubWF0LXdhcm4ge1xuICBiYWNrZ3JvdW5kOiAjNGNhZjUwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSxcbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtdmFsdWUsXG4uZ3JlZW4tdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LWFycm93LFxuLmdyZWVuLXRoZW1lIC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2x0aXAge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDk3LCA5NywgOTcsIDAuOSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10cmVlIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRyZWUtbm9kZSxcbi5ncmVlbi10aGVtZSAubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbmFjay1iYXItY29udGFpbmVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5ncmVlbi10aGVtZSBoMSB7XG4gIGNvbG9yOiAjOGJjMzRhO1xufVxuXG4vKiBZb3UgY2FuIGFkZCBnbG9iYWwgc3R5bGVzIHRvIHRoaXMgZmlsZSwgYW5kIGFsc28gaW1wb3J0IG90aGVyIHN0eWxlIGZpbGVzICovXG5odG1sLCBib2R5IHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5mbGV4LXNwYWNlciB7XG4gIGZsZXg6IDEgMSBhdXRvO1xufSIsIlxuLy8gQ3VzdG9tIFRoZW1pbmcgZm9yIEFuZ3VsYXIgTWF0ZXJpYWxcbi8vIEZvciBtb3JlIGluZm9ybWF0aW9uOiBodHRwczovL21hdGVyaWFsLmFuZ3VsYXIuaW8vZ3VpZGUvdGhlbWluZ1xuQGltcG9ydCAnfkBhbmd1bGFyL21hdGVyaWFsL3RoZW1pbmcnO1xuLy8gUGx1cyBpbXBvcnRzIGZvciBvdGhlciBjb21wb25lbnRzIGluIHlvdXIgYXBwLlxuXG4vLyBJbmNsdWRlIHRoZSBjb21tb24gc3R5bGVzIGZvciBBbmd1bGFyIE1hdGVyaWFsLiBXZSBpbmNsdWRlIHRoaXMgaGVyZSBzbyB0aGF0IHlvdSBvbmx5XG4vLyBoYXZlIHRvIGxvYWQgYSBzaW5nbGUgY3NzIGZpbGUgZm9yIEFuZ3VsYXIgTWF0ZXJpYWwgaW4geW91ciBhcHAuXG4vLyBCZSBzdXJlIHRoYXQgeW91IG9ubHkgZXZlciBpbmNsdWRlIHRoaXMgbWl4aW4gb25jZSFcbkBpbmNsdWRlIG1hdC1jb3JlKCk7XG5cbi8vIGltcG9ydGluZyB0aGUgdGhlbWVzIGZyb20gb3VyIHRoZW1lIGZpbGVzXG5AaW1wb3J0IFwiLi90aGVtZXMvc3RhbmRhcmQtdGhlbWVcIjtcbkBpbXBvcnQgXCIuL3RoZW1lcy9ncmVlbi10aGVtZVwiO1xuLy8gSW5jbHVkZSB0aGVtZSBzdHlsZXMgZm9yIGNvcmUgYW5kIGVhY2ggY29tcG9uZW50IHVzZWQgaW4geW91ciBhcHAuXG4vLyBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGltcG9ydCBhbmQgQGluY2x1ZGUgdGhlIHRoZW1lIG1peGlucyBmb3IgZWFjaCBjb21wb25lbnRcbi8vIHRoYXQgeW91IGFyZSB1c2luZy5cblxuLy8gZm9yIG93biBjb21wb25lbnRzLCBpLmUuIG5vbiBtYXRlcmlhbCBjb21wb25lbnQgd2UgbGlrZSB0byB1c2UgdGhlIHNhbWUgc3R5bGUvcGFsZXR0ZXNcblxuXG4uc3RhbmRhcmQtdGhlbWUge1xuICBAaW5jbHVkZSBhbmd1bGFyLW1hdGVyaWFsLXRoZW1lKCRzdGFuZGFyZC10aGVtZSk7XG5cbiAgaDEgeyBjb2xvcjogbWF0LWNvbG9yKCRzdGFuZGFyZC10aGVtZS1wcmltYXJ5KX1cbn1cbi5ncmVlbi10aGVtZSB7XG4gIEBpbmNsdWRlIGFuZ3VsYXItbWF0ZXJpYWwtdGhlbWUoJGdyZWVuLXRoZW1lKTtcblxuICBoMSB7IGNvbG9yOiBtYXQtY29sb3IoJGdyZWVuLXRoZW1lLXByaW1hcnkpfVxufVxuXG5cbi8qIFlvdSBjYW4gYWRkIGdsb2JhbCBzdHlsZXMgdG8gdGhpcyBmaWxlLCBhbmQgYWxzbyBpbXBvcnQgb3RoZXIgc3R5bGUgZmlsZXMgKi9cblxuXG5odG1sLCBib2R5IHsgaGVpZ2h0OiAxMDAlOyB9XG5ib2R5IHsgbWFyZ2luOiAwOyBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7IH1cblxuLmZsZXgtc3BhY2VyIHtcbiAgZmxleDogMSAxIGF1dG87XG59XG5cblxuXG4iXX0= */\", '', '']]","\"use strict\";\n\nvar stylesInDom = {};\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nfunction listToStyles(list, options) {\n var styles = [];\n var newStyles = {};\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var css = item[1];\n var media = item[2];\n var sourceMap = item[3];\n var part = {\n css: css,\n media: media,\n sourceMap: sourceMap\n };\n\n if (!newStyles[id]) {\n styles.push(newStyles[id] = {\n id: id,\n parts: [part]\n });\n } else {\n newStyles[id].parts.push(part);\n }\n }\n\n return styles;\n}\n\nfunction addStylesToDom(styles, options) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i];\n var domStyle = stylesInDom[item.id];\n var j = 0;\n\n if (domStyle) {\n domStyle.refs++;\n\n for (; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j]);\n }\n\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j], options));\n }\n } else {\n var parts = [];\n\n for (; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j], options));\n }\n\n stylesInDom[item.id] = {\n id: item.id,\n refs: 1,\n parts: parts\n };\n }\n }\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n\n if (typeof options.attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n options.attributes.nonce = nonce;\n }\n }\n\n Object.keys(options.attributes).forEach(function (key) {\n style.setAttribute(key, options.attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n }\n\n if (sourceMap && btoa) {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n options.attributes = typeof options.attributes === 'object' ? options.attributes : {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n var styles = listToStyles(list, options);\n addStylesToDom(styles, options);\n return function update(newList) {\n var mayRemove = [];\n\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i];\n var domStyle = stylesInDom[item.id];\n\n if (domStyle) {\n domStyle.refs--;\n mayRemove.push(domStyle);\n }\n }\n\n if (newList) {\n var newStyles = listToStyles(newList, options);\n addStylesToDom(newStyles, options);\n }\n\n for (var _i = 0; _i < mayRemove.length; _i++) {\n var _domStyle = mayRemove[_i];\n\n if (_domStyle.refs === 0) {\n for (var j = 0; j < _domStyle.parts.length; j++) {\n _domStyle.parts[j]();\n }\n\n delete stylesInDom[_domStyle.id];\n }\n }\n };\n};","var content = require(\"!!../node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!../node_modules/postcss-loader/src/index.js??embedded!../node_modules/sass-loader/lib/loader.js??ref--15-3!./styles.scss\");\n\nif (typeof content === 'string') {\n content = [[module.id, content, '']];\n}\n\nvar options = {}\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = require(\"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\")(content, options);\n\nif (content.locals) {\n module.exports = content.locals;\n}\n"],"sourceRoot":"webpack:///"}
\ No newline at end of file
diff --git a/nietzsche-beta-app/dist/nietzsche-beta-app/styles-es5.js b/nietzsche-beta-app/dist/nietzsche-beta-app/styles-es5.js
index b920a12..d0f4325 100644
--- a/nietzsche-beta-app/dist/nietzsche-beta-app/styles-es5.js
+++ b/nietzsche-beta-app/dist/nietzsche-beta-app/styles-es5.js
@@ -1,361 +1,361 @@
(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/sass-loader/lib/loader.js?!./src/styles.scss":
/*!**********************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!./node_modules/postcss-loader/src??embedded!./node_modules/sass-loader/lib/loader.js??ref--15-3!./src/styles.scss ***!
\**********************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/
function node_modulesAngularDevkitBuildAngularSrcAngularCliFilesPluginsRawCssLoaderJsNode_modulesPostcssLoaderSrcIndexJsNode_modulesSassLoaderLibLoaderJsSrcStylesScss(module, exports) {
- module.exports = [[module.i, "/* Theme for the ripple elements.*/\n/* stylelint-disable material/no-prefixes */\n/* stylelint-enable */\n.mat-badge-content {\n font-weight: 600;\n font-size: 12px;\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-badge-small .mat-badge-content {\n font-size: 9px;\n}\n.mat-badge-large .mat-badge-content {\n font-size: 24px;\n}\n.mat-h1, .mat-headline, .mat-typography h1 {\n font: 400 24px/32px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 16px;\n}\n.mat-h2, .mat-title, .mat-typography h2 {\n font: 500 20px/32px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 16px;\n}\n.mat-h3, .mat-subheading-2, .mat-typography h3 {\n font: 400 16px/28px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 16px;\n}\n.mat-h4, .mat-subheading-1, .mat-typography h4 {\n font: 400 15px/24px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 16px;\n}\n.mat-h5, .mat-typography h5 {\n font: 400 calc(14px * 0.83)/20px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 12px;\n}\n.mat-h6, .mat-typography h6 {\n font: 400 calc(14px * 0.67)/20px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 12px;\n}\n.mat-body-strong, .mat-body-2 {\n font: 500 14px/24px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-body, .mat-body-1, .mat-typography {\n font: 400 14px/20px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-body p, .mat-body-1 p, .mat-typography p {\n margin: 0 0 12px;\n}\n.mat-small, .mat-caption {\n font: 400 12px/20px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-display-4, .mat-typography .mat-display-4 {\n font: 300 112px/112px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: -0.05em;\n margin: 0 0 56px;\n}\n.mat-display-3, .mat-typography .mat-display-3 {\n font: 400 56px/56px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: -0.02em;\n margin: 0 0 64px;\n}\n.mat-display-2, .mat-typography .mat-display-2 {\n font: 400 45px/48px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: -0.005em;\n margin: 0 0 64px;\n}\n.mat-display-1, .mat-typography .mat-display-1 {\n font: 400 34px/40px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 64px;\n}\n.mat-bottom-sheet-container {\n font: 400 14px/20px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-button, .mat-raised-button, .mat-icon-button, .mat-stroked-button,\n.mat-flat-button, .mat-fab, .mat-mini-fab {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n font-weight: 500;\n}\n.mat-button-toggle {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-card {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-card-title {\n font-size: 24px;\n font-weight: 500;\n}\n.mat-card-header .mat-card-title {\n font-size: 20px;\n}\n.mat-card-subtitle,\n.mat-card-content {\n font-size: 14px;\n}\n.mat-checkbox {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-checkbox-layout .mat-checkbox-label {\n line-height: 24px;\n}\n.mat-chip {\n font-size: 14px;\n font-weight: 500;\n}\n.mat-chip .mat-chip-trailing-icon.mat-icon,\n.mat-chip .mat-chip-remove.mat-icon {\n font-size: 18px;\n}\n.mat-table {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-header-cell {\n font-size: 12px;\n font-weight: 500;\n}\n.mat-cell, .mat-footer-cell {\n font-size: 14px;\n}\n.mat-calendar {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-calendar-body {\n font-size: 13px;\n}\n.mat-calendar-body-label,\n.mat-calendar-period-button {\n font-size: 14px;\n font-weight: 500;\n}\n.mat-calendar-table-header th {\n font-size: 11px;\n font-weight: 400;\n}\n.mat-dialog-title {\n font: 500 20px/32px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-expansion-panel-header {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 15px;\n font-weight: 400;\n}\n.mat-expansion-panel-content {\n font: 400 14px/20px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-form-field {\n font-size: inherit;\n font-weight: 400;\n line-height: 1.125;\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-form-field-wrapper {\n padding-bottom: 1.34375em;\n}\n.mat-form-field-prefix .mat-icon,\n.mat-form-field-suffix .mat-icon {\n font-size: 150%;\n line-height: 1.125;\n}\n.mat-form-field-prefix .mat-icon-button,\n.mat-form-field-suffix .mat-icon-button {\n height: 1.5em;\n width: 1.5em;\n}\n.mat-form-field-prefix .mat-icon-button .mat-icon,\n.mat-form-field-suffix .mat-icon-button .mat-icon {\n height: 1.125em;\n line-height: 1.125;\n}\n.mat-form-field-infix {\n padding: 0.5em 0;\n border-top: 0.84375em solid transparent;\n}\n.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\n.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.34375em) scale(0.75);\n width: 133.3333333333%;\n}\n.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.34374em) scale(0.75);\n width: 133.3333433333%;\n}\n.mat-form-field-label-wrapper {\n top: -0.84375em;\n padding-top: 0.84375em;\n}\n.mat-form-field-label {\n top: 1.34375em;\n}\n.mat-form-field-underline {\n bottom: 1.34375em;\n}\n.mat-form-field-subscript-wrapper {\n font-size: 75%;\n margin-top: 0.6666666667em;\n top: calc(100% - 1.7916666667em);\n}\n.mat-form-field-appearance-legacy .mat-form-field-wrapper {\n padding-bottom: 1.25em;\n}\n.mat-form-field-appearance-legacy .mat-form-field-infix {\n padding: 0.4375em 0;\n}\n.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);\n -ms-transform: translateY(-1.28125em) scale(0.75);\n width: 133.3333333333%;\n}\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);\n -ms-transform: translateY(-1.28124em) scale(0.75);\n width: 133.3333433333%;\n}\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);\n -ms-transform: translateY(-1.28123em) scale(0.75);\n width: 133.3333533333%;\n}\n.mat-form-field-appearance-legacy .mat-form-field-label {\n top: 1.28125em;\n}\n.mat-form-field-appearance-legacy .mat-form-field-underline {\n bottom: 1.25em;\n}\n.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper {\n margin-top: 0.5416666667em;\n top: calc(100% - 1.6666666667em);\n}\n@media print {\n .mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.28122em) scale(0.75);\n }\n .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.28121em) scale(0.75);\n }\n .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.2812em) scale(0.75);\n }\n}\n.mat-form-field-appearance-fill .mat-form-field-infix {\n padding: 0.25em 0 0.75em 0;\n}\n.mat-form-field-appearance-fill .mat-form-field-label {\n top: 1.09375em;\n margin-top: -0.5em;\n}\n.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\n.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-0.59375em) scale(0.75);\n width: 133.3333333333%;\n}\n.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-0.59374em) scale(0.75);\n width: 133.3333433333%;\n}\n.mat-form-field-appearance-outline .mat-form-field-infix {\n padding: 1em 0 1em 0;\n}\n.mat-form-field-appearance-outline .mat-form-field-label {\n top: 1.84375em;\n margin-top: -0.25em;\n}\n.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\n.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.59375em) scale(0.75);\n width: 133.3333333333%;\n}\n.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.59374em) scale(0.75);\n width: 133.3333433333%;\n}\n.mat-grid-tile-header,\n.mat-grid-tile-footer {\n font-size: 14px;\n}\n.mat-grid-tile-header .mat-line,\n.mat-grid-tile-footer .mat-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n box-sizing: border-box;\n}\n.mat-grid-tile-header .mat-line:nth-child(n+2),\n.mat-grid-tile-footer .mat-line:nth-child(n+2) {\n font-size: 12px;\n}\ninput.mat-input-element {\n margin-top: -0.0625em;\n}\n.mat-menu-item {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n font-weight: 400;\n}\n.mat-paginator,\n.mat-paginator-page-size .mat-select-trigger {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 12px;\n}\n.mat-radio-button {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-select {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-select-trigger {\n height: 1.125em;\n}\n.mat-slide-toggle-content {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-slider-thumb-label-text {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 12px;\n font-weight: 500;\n}\n.mat-stepper-vertical, .mat-stepper-horizontal {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-step-label {\n font-size: 14px;\n font-weight: 400;\n}\n.mat-step-sub-label-error {\n font-weight: normal;\n}\n.mat-step-label-error {\n font-size: 14px;\n}\n.mat-step-label-selected {\n font-size: 14px;\n font-weight: 500;\n}\n.mat-tab-group {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-tab-label, .mat-tab-link {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n font-weight: 500;\n}\n.mat-toolbar,\n.mat-toolbar h1,\n.mat-toolbar h2,\n.mat-toolbar h3,\n.mat-toolbar h4,\n.mat-toolbar h5,\n.mat-toolbar h6 {\n font: 500 20px/32px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0;\n}\n.mat-tooltip {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 10px;\n padding-top: 6px;\n padding-bottom: 6px;\n}\n.mat-tooltip-handset {\n font-size: 14px;\n padding-top: 8px;\n padding-bottom: 8px;\n}\n.mat-list-item {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-list-option {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-list-base .mat-list-item {\n font-size: 16px;\n}\n.mat-list-base .mat-list-item .mat-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n box-sizing: border-box;\n}\n.mat-list-base .mat-list-item .mat-line:nth-child(n+2) {\n font-size: 14px;\n}\n.mat-list-base .mat-list-option {\n font-size: 16px;\n}\n.mat-list-base .mat-list-option .mat-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n box-sizing: border-box;\n}\n.mat-list-base .mat-list-option .mat-line:nth-child(n+2) {\n font-size: 14px;\n}\n.mat-list-base .mat-subheader {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n font-weight: 500;\n}\n.mat-list-base[dense] .mat-list-item {\n font-size: 12px;\n}\n.mat-list-base[dense] .mat-list-item .mat-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n box-sizing: border-box;\n}\n.mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2) {\n font-size: 12px;\n}\n.mat-list-base[dense] .mat-list-option {\n font-size: 12px;\n}\n.mat-list-base[dense] .mat-list-option .mat-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n box-sizing: border-box;\n}\n.mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2) {\n font-size: 12px;\n}\n.mat-list-base[dense] .mat-subheader {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 12px;\n font-weight: 500;\n}\n.mat-option {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 16px;\n}\n.mat-optgroup-label {\n font: 500 14px/24px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-simple-snackbar {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n}\n.mat-simple-snackbar-action {\n line-height: 1;\n font-family: inherit;\n font-size: inherit;\n font-weight: 500;\n}\n.mat-tree {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-tree-node,\n.mat-nested-tree-node {\n font-weight: 400;\n font-size: 14px;\n}\n.mat-ripple {\n overflow: hidden;\n position: relative;\n}\n.mat-ripple.mat-ripple-unbounded {\n overflow: visible;\n}\n.mat-ripple-element {\n position: absolute;\n border-radius: 50%;\n pointer-events: none;\n transition: opacity, transform 0ms cubic-bezier(0, 0, 0.2, 1);\n transform: scale(0);\n}\n@media (-ms-high-contrast: active) {\n .mat-ripple-element {\n display: none;\n }\n}\n.cdk-visually-hidden {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n outline: 0;\n -webkit-appearance: none;\n -moz-appearance: none;\n}\n.cdk-overlay-container, .cdk-global-overlay-wrapper {\n pointer-events: none;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n}\n.cdk-overlay-container {\n position: fixed;\n z-index: 1000;\n}\n.cdk-overlay-container:empty {\n display: none;\n}\n.cdk-global-overlay-wrapper {\n display: flex;\n position: absolute;\n z-index: 1000;\n}\n.cdk-overlay-pane {\n position: absolute;\n pointer-events: auto;\n box-sizing: border-box;\n z-index: 1000;\n display: flex;\n max-width: 100%;\n max-height: 100%;\n}\n.cdk-overlay-backdrop {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 1000;\n pointer-events: auto;\n -webkit-tap-highlight-color: transparent;\n transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);\n opacity: 0;\n}\n.cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\n opacity: 1;\n}\n@media screen and (-ms-high-contrast: active) {\n .cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\n opacity: 0.6;\n }\n}\n.cdk-overlay-dark-backdrop {\n background: rgba(0, 0, 0, 0.32);\n}\n.cdk-overlay-transparent-backdrop, .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {\n opacity: 0;\n}\n.cdk-overlay-connected-position-bounding-box {\n position: absolute;\n z-index: 1000;\n display: flex;\n flex-direction: column;\n min-width: 1px;\n min-height: 1px;\n}\n.cdk-global-scrollblock {\n position: fixed;\n width: 100%;\n overflow-y: scroll;\n}\n@-webkit-keyframes cdk-text-field-autofill-start {\n /*!*/\n}\n@keyframes cdk-text-field-autofill-start {\n /*!*/\n}\n@-webkit-keyframes cdk-text-field-autofill-end {\n /*!*/\n}\n@keyframes cdk-text-field-autofill-end {\n /*!*/\n}\n.cdk-text-field-autofill-monitored:-webkit-autofill {\n -webkit-animation-name: cdk-text-field-autofill-start;\n animation-name: cdk-text-field-autofill-start;\n}\n.cdk-text-field-autofill-monitored:not(:-webkit-autofill) {\n -webkit-animation-name: cdk-text-field-autofill-end;\n animation-name: cdk-text-field-autofill-end;\n}\ntextarea.cdk-textarea-autosize {\n resize: none;\n}\ntextarea.cdk-textarea-autosize-measuring {\n height: auto !important;\n overflow: hidden !important;\n padding: 2px 0 !important;\n box-sizing: content-box !important;\n}\n.standard-theme .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.standard-theme .mat-option {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-option:hover:not(.mat-option-disabled), .standard-theme .mat-option:focus:not(.mat-option-disabled) {\n background: rgba(0, 0, 0, 0.04);\n}\n.standard-theme .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {\n background: rgba(0, 0, 0, 0.04);\n}\n.standard-theme .mat-option.mat-active {\n background: rgba(0, 0, 0, 0.04);\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-option.mat-option-disabled {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\n color: #607d8b;\n}\n.standard-theme .mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {\n color: #448aff;\n}\n.standard-theme .mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {\n color: #f44336;\n}\n.standard-theme .mat-optgroup-label {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-optgroup-disabled .mat-optgroup-label {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-pseudo-checkbox {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-pseudo-checkbox::after {\n color: #fafafa;\n}\n.standard-theme .mat-pseudo-checkbox-disabled {\n color: #b0b0b0;\n}\n.standard-theme .mat-primary .mat-pseudo-checkbox-checked,\n.standard-theme .mat-primary .mat-pseudo-checkbox-indeterminate {\n background: #607d8b;\n}\n.standard-theme .mat-pseudo-checkbox-checked,\n.standard-theme .mat-pseudo-checkbox-indeterminate,\n.standard-theme .mat-accent .mat-pseudo-checkbox-checked,\n.standard-theme .mat-accent .mat-pseudo-checkbox-indeterminate {\n background: #448aff;\n}\n.standard-theme .mat-warn .mat-pseudo-checkbox-checked,\n.standard-theme .mat-warn .mat-pseudo-checkbox-indeterminate {\n background: #f44336;\n}\n.standard-theme .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,\n.standard-theme .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {\n background: #b0b0b0;\n}\n.standard-theme .mat-elevation-z0 {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z1 {\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z2 {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z3 {\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z4 {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z5 {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z6 {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z7 {\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z8 {\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z9 {\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z10 {\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z11 {\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z12 {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z13 {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z14 {\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z15 {\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z16 {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z17 {\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z18 {\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z19 {\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z20 {\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z21 {\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z22 {\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z23 {\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z24 {\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-app-background, .standard-theme.mat-app-background {\n background-color: #fafafa;\n color: rgba(0, 0, 0, 0.87);\n}\n.mat-theme-loaded-marker {\n display: none;\n}\n.standard-theme .mat-autocomplete-panel {\n background: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-autocomplete-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {\n background: white;\n}\n.standard-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-badge-content {\n color: white;\n background: #607d8b;\n}\n@media (-ms-high-contrast: active) {\n .standard-theme .mat-badge-content {\n outline: solid 1px;\n border-radius: 0;\n }\n}\n.standard-theme .mat-badge-accent .mat-badge-content {\n background: #448aff;\n color: white;\n}\n.standard-theme .mat-badge-warn .mat-badge-content {\n color: white;\n background: #f44336;\n}\n.standard-theme .mat-badge {\n position: relative;\n}\n.standard-theme .mat-badge-hidden .mat-badge-content {\n display: none;\n}\n.standard-theme .mat-badge-disabled .mat-badge-content {\n background: #b9b9b9;\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-badge-content {\n position: absolute;\n text-align: center;\n display: inline-block;\n border-radius: 50%;\n transition: transform 200ms ease-in-out;\n transform: scale(0.6);\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n pointer-events: none;\n}\n.standard-theme .ng-animate-disabled .mat-badge-content,\n.standard-theme .mat-badge-content._mat-animation-noopable {\n transition: none;\n}\n.standard-theme .mat-badge-content.mat-badge-active {\n transform: none;\n}\n.standard-theme .mat-badge-small .mat-badge-content {\n width: 16px;\n height: 16px;\n line-height: 16px;\n}\n.standard-theme .mat-badge-small.mat-badge-above .mat-badge-content {\n top: -8px;\n}\n.standard-theme .mat-badge-small.mat-badge-below .mat-badge-content {\n bottom: -8px;\n}\n.standard-theme .mat-badge-small.mat-badge-before .mat-badge-content {\n left: -16px;\n}\n[dir=rtl] .standard-theme .mat-badge-small.mat-badge-before .mat-badge-content {\n left: auto;\n right: -16px;\n}\n.standard-theme .mat-badge-small.mat-badge-after .mat-badge-content {\n right: -16px;\n}\n[dir=rtl] .standard-theme .mat-badge-small.mat-badge-after .mat-badge-content {\n right: auto;\n left: -16px;\n}\n.standard-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: -8px;\n}\n[dir=rtl] .standard-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: auto;\n right: -8px;\n}\n.standard-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: -8px;\n}\n[dir=rtl] .standard-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: auto;\n left: -8px;\n}\n.standard-theme .mat-badge-medium .mat-badge-content {\n width: 22px;\n height: 22px;\n line-height: 22px;\n}\n.standard-theme .mat-badge-medium.mat-badge-above .mat-badge-content {\n top: -11px;\n}\n.standard-theme .mat-badge-medium.mat-badge-below .mat-badge-content {\n bottom: -11px;\n}\n.standard-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\n left: -22px;\n}\n[dir=rtl] .standard-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\n left: auto;\n right: -22px;\n}\n.standard-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\n right: -22px;\n}\n[dir=rtl] .standard-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\n right: auto;\n left: -22px;\n}\n.standard-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: -11px;\n}\n[dir=rtl] .standard-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: auto;\n right: -11px;\n}\n.standard-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: -11px;\n}\n[dir=rtl] .standard-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: auto;\n left: -11px;\n}\n.standard-theme .mat-badge-large .mat-badge-content {\n width: 28px;\n height: 28px;\n line-height: 28px;\n}\n.standard-theme .mat-badge-large.mat-badge-above .mat-badge-content {\n top: -14px;\n}\n.standard-theme .mat-badge-large.mat-badge-below .mat-badge-content {\n bottom: -14px;\n}\n.standard-theme .mat-badge-large.mat-badge-before .mat-badge-content {\n left: -28px;\n}\n[dir=rtl] .standard-theme .mat-badge-large.mat-badge-before .mat-badge-content {\n left: auto;\n right: -28px;\n}\n.standard-theme .mat-badge-large.mat-badge-after .mat-badge-content {\n right: -28px;\n}\n[dir=rtl] .standard-theme .mat-badge-large.mat-badge-after .mat-badge-content {\n right: auto;\n left: -28px;\n}\n.standard-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: -14px;\n}\n[dir=rtl] .standard-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: auto;\n right: -14px;\n}\n.standard-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: -14px;\n}\n[dir=rtl] .standard-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: auto;\n left: -14px;\n}\n.standard-theme .mat-bottom-sheet-container {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n background: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-button, .standard-theme .mat-icon-button, .standard-theme .mat-stroked-button {\n color: inherit;\n background: transparent;\n}\n.standard-theme .mat-button.mat-primary, .standard-theme .mat-icon-button.mat-primary, .standard-theme .mat-stroked-button.mat-primary {\n color: #607d8b;\n}\n.standard-theme .mat-button.mat-accent, .standard-theme .mat-icon-button.mat-accent, .standard-theme .mat-stroked-button.mat-accent {\n color: #448aff;\n}\n.standard-theme .mat-button.mat-warn, .standard-theme .mat-icon-button.mat-warn, .standard-theme .mat-stroked-button.mat-warn {\n color: #f44336;\n}\n.standard-theme .mat-button.mat-primary[disabled], .standard-theme .mat-button.mat-accent[disabled], .standard-theme .mat-button.mat-warn[disabled], .standard-theme .mat-button[disabled][disabled], .standard-theme .mat-icon-button.mat-primary[disabled], .standard-theme .mat-icon-button.mat-accent[disabled], .standard-theme .mat-icon-button.mat-warn[disabled], .standard-theme .mat-icon-button[disabled][disabled], .standard-theme .mat-stroked-button.mat-primary[disabled], .standard-theme .mat-stroked-button.mat-accent[disabled], .standard-theme .mat-stroked-button.mat-warn[disabled], .standard-theme .mat-stroked-button[disabled][disabled] {\n color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-button.mat-primary .mat-button-focus-overlay, .standard-theme .mat-icon-button.mat-primary .mat-button-focus-overlay, .standard-theme .mat-stroked-button.mat-primary .mat-button-focus-overlay {\n background-color: #607d8b;\n}\n.standard-theme .mat-button.mat-accent .mat-button-focus-overlay, .standard-theme .mat-icon-button.mat-accent .mat-button-focus-overlay, .standard-theme .mat-stroked-button.mat-accent .mat-button-focus-overlay {\n background-color: #448aff;\n}\n.standard-theme .mat-button.mat-warn .mat-button-focus-overlay, .standard-theme .mat-icon-button.mat-warn .mat-button-focus-overlay, .standard-theme .mat-stroked-button.mat-warn .mat-button-focus-overlay {\n background-color: #f44336;\n}\n.standard-theme .mat-button[disabled] .mat-button-focus-overlay, .standard-theme .mat-icon-button[disabled] .mat-button-focus-overlay, .standard-theme .mat-stroked-button[disabled] .mat-button-focus-overlay {\n background-color: transparent;\n}\n.standard-theme .mat-button .mat-ripple-element, .standard-theme .mat-icon-button .mat-ripple-element, .standard-theme .mat-stroked-button .mat-ripple-element {\n opacity: 0.1;\n background-color: currentColor;\n}\n.standard-theme .mat-button-focus-overlay {\n background: black;\n}\n.standard-theme .mat-stroked-button:not([disabled]) {\n border-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-flat-button, .standard-theme .mat-raised-button, .standard-theme .mat-fab, .standard-theme .mat-mini-fab {\n color: rgba(0, 0, 0, 0.87);\n background-color: white;\n}\n.standard-theme .mat-flat-button.mat-primary, .standard-theme .mat-raised-button.mat-primary, .standard-theme .mat-fab.mat-primary, .standard-theme .mat-mini-fab.mat-primary {\n color: white;\n}\n.standard-theme .mat-flat-button.mat-accent, .standard-theme .mat-raised-button.mat-accent, .standard-theme .mat-fab.mat-accent, .standard-theme .mat-mini-fab.mat-accent {\n color: white;\n}\n.standard-theme .mat-flat-button.mat-warn, .standard-theme .mat-raised-button.mat-warn, .standard-theme .mat-fab.mat-warn, .standard-theme .mat-mini-fab.mat-warn {\n color: white;\n}\n.standard-theme .mat-flat-button.mat-primary[disabled], .standard-theme .mat-flat-button.mat-accent[disabled], .standard-theme .mat-flat-button.mat-warn[disabled], .standard-theme .mat-flat-button[disabled][disabled], .standard-theme .mat-raised-button.mat-primary[disabled], .standard-theme .mat-raised-button.mat-accent[disabled], .standard-theme .mat-raised-button.mat-warn[disabled], .standard-theme .mat-raised-button[disabled][disabled], .standard-theme .mat-fab.mat-primary[disabled], .standard-theme .mat-fab.mat-accent[disabled], .standard-theme .mat-fab.mat-warn[disabled], .standard-theme .mat-fab[disabled][disabled], .standard-theme .mat-mini-fab.mat-primary[disabled], .standard-theme .mat-mini-fab.mat-accent[disabled], .standard-theme .mat-mini-fab.mat-warn[disabled], .standard-theme .mat-mini-fab[disabled][disabled] {\n color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-flat-button.mat-primary, .standard-theme .mat-raised-button.mat-primary, .standard-theme .mat-fab.mat-primary, .standard-theme .mat-mini-fab.mat-primary {\n background-color: #607d8b;\n}\n.standard-theme .mat-flat-button.mat-accent, .standard-theme .mat-raised-button.mat-accent, .standard-theme .mat-fab.mat-accent, .standard-theme .mat-mini-fab.mat-accent {\n background-color: #448aff;\n}\n.standard-theme .mat-flat-button.mat-warn, .standard-theme .mat-raised-button.mat-warn, .standard-theme .mat-fab.mat-warn, .standard-theme .mat-mini-fab.mat-warn {\n background-color: #f44336;\n}\n.standard-theme .mat-flat-button.mat-primary[disabled], .standard-theme .mat-flat-button.mat-accent[disabled], .standard-theme .mat-flat-button.mat-warn[disabled], .standard-theme .mat-flat-button[disabled][disabled], .standard-theme .mat-raised-button.mat-primary[disabled], .standard-theme .mat-raised-button.mat-accent[disabled], .standard-theme .mat-raised-button.mat-warn[disabled], .standard-theme .mat-raised-button[disabled][disabled], .standard-theme .mat-fab.mat-primary[disabled], .standard-theme .mat-fab.mat-accent[disabled], .standard-theme .mat-fab.mat-warn[disabled], .standard-theme .mat-fab[disabled][disabled], .standard-theme .mat-mini-fab.mat-primary[disabled], .standard-theme .mat-mini-fab.mat-accent[disabled], .standard-theme .mat-mini-fab.mat-warn[disabled], .standard-theme .mat-mini-fab[disabled][disabled] {\n background-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-flat-button.mat-primary .mat-ripple-element, .standard-theme .mat-raised-button.mat-primary .mat-ripple-element, .standard-theme .mat-fab.mat-primary .mat-ripple-element, .standard-theme .mat-mini-fab.mat-primary .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.standard-theme .mat-flat-button.mat-accent .mat-ripple-element, .standard-theme .mat-raised-button.mat-accent .mat-ripple-element, .standard-theme .mat-fab.mat-accent .mat-ripple-element, .standard-theme .mat-mini-fab.mat-accent .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.standard-theme .mat-flat-button.mat-warn .mat-ripple-element, .standard-theme .mat-raised-button.mat-warn .mat-ripple-element, .standard-theme .mat-fab.mat-warn .mat-ripple-element, .standard-theme .mat-mini-fab.mat-warn .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.standard-theme .mat-stroked-button:not([class*=mat-elevation-z]), .standard-theme .mat-flat-button:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-raised-button:not([class*=mat-elevation-z]) {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]) {\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-raised-button[disabled]:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-fab:not([class*=mat-elevation-z]), .standard-theme .mat-mini-fab:not([class*=mat-elevation-z]) {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-fab:not([disabled]):active:not([class*=mat-elevation-z]), .standard-theme .mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]) {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-fab[disabled]:not([class*=mat-elevation-z]), .standard-theme .mat-mini-fab[disabled]:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-button-toggle-standalone,\n.standard-theme .mat-button-toggle-group {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\n.standard-theme .mat-button-toggle-group-appearance-standard {\n box-shadow: none;\n}\n.standard-theme .mat-button-toggle {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-button-toggle .mat-button-toggle-focus-overlay {\n background-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-button-toggle-appearance-standard {\n color: rgba(0, 0, 0, 0.87);\n background: white;\n}\n.standard-theme .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {\n background-color: black;\n}\n.standard-theme .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\n border-left: solid 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\n border-left: none;\n border-right: solid 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {\n border-left: none;\n border-right: none;\n border-top: solid 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-button-toggle-checked {\n background-color: #e0e0e0;\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-button-toggle-checked.mat-button-toggle-appearance-standard {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-button-toggle-disabled {\n color: rgba(0, 0, 0, 0.26);\n background-color: #eeeeee;\n}\n.standard-theme .mat-button-toggle-disabled.mat-button-toggle-appearance-standard {\n background: white;\n}\n.standard-theme .mat-button-toggle-disabled.mat-button-toggle-checked {\n background-color: #bdbdbd;\n}\n.standard-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\n.standard-theme .mat-button-toggle-group-appearance-standard {\n border: solid 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-card {\n background: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-card:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-card.mat-card-flat:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-card-subtitle {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-checkbox-frame {\n border-color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-checkbox-checkmark {\n fill: #fafafa;\n}\n.standard-theme .mat-checkbox-checkmark-path {\n stroke: #fafafa !important;\n}\n@media (-ms-high-contrast: black-on-white) {\n .standard-theme .mat-checkbox-checkmark-path {\n stroke: #000 !important;\n }\n}\n.standard-theme .mat-checkbox-mixedmark {\n background-color: #fafafa;\n}\n.standard-theme .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .standard-theme .mat-checkbox-checked.mat-primary .mat-checkbox-background {\n background-color: #607d8b;\n}\n.standard-theme .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .standard-theme .mat-checkbox-checked.mat-accent .mat-checkbox-background {\n background-color: #448aff;\n}\n.standard-theme .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .standard-theme .mat-checkbox-checked.mat-warn .mat-checkbox-background {\n background-color: #f44336;\n}\n.standard-theme .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .standard-theme .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {\n background-color: #b0b0b0;\n}\n.standard-theme .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {\n border-color: #b0b0b0;\n}\n.standard-theme .mat-checkbox-disabled .mat-checkbox-label {\n color: rgba(0, 0, 0, 0.54);\n}\n@media (-ms-high-contrast: active) {\n .standard-theme .mat-checkbox-disabled {\n opacity: 0.5;\n }\n}\n@media (-ms-high-contrast: active) {\n .standard-theme .mat-checkbox-background {\n background: none;\n }\n}\n.standard-theme .mat-checkbox .mat-ripple-element {\n background-color: black;\n}\n.standard-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,\n.standard-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {\n background: #607d8b;\n}\n.standard-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,\n.standard-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {\n background: #448aff;\n}\n.standard-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,\n.standard-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {\n background: #f44336;\n}\n.standard-theme .mat-chip.mat-standard-chip {\n background-color: #e0e0e0;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-chip.mat-standard-chip .mat-chip-remove {\n color: rgba(0, 0, 0, 0.87);\n opacity: 0.4;\n}\n.standard-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {\n opacity: 0.54;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-disabled {\n opacity: 0.4;\n}\n.standard-theme .mat-chip.mat-standard-chip::after {\n background: black;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {\n background-color: #607d8b;\n color: white;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {\n color: white;\n opacity: 0.4;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {\n background: rgba(255, 255, 255, 0.1);\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {\n background-color: #f44336;\n color: white;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {\n color: white;\n opacity: 0.4;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {\n background: rgba(255, 255, 255, 0.1);\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {\n background-color: #448aff;\n color: white;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {\n color: white;\n opacity: 0.4;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {\n background: rgba(255, 255, 255, 0.1);\n}\n.standard-theme .mat-table {\n background: white;\n}\n.standard-theme .mat-table thead, .standard-theme .mat-table tbody, .standard-theme .mat-table tfoot,\n.standard-theme mat-header-row, .standard-theme mat-row, .standard-theme mat-footer-row,\n.standard-theme [mat-header-row], .standard-theme [mat-row], .standard-theme [mat-footer-row],\n.standard-theme .mat-table-sticky {\n background: inherit;\n}\n.standard-theme mat-row, .standard-theme mat-header-row, .standard-theme mat-footer-row,\n.standard-theme th.mat-header-cell, .standard-theme td.mat-cell, .standard-theme td.mat-footer-cell {\n border-bottom-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-header-cell {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-cell, .standard-theme .mat-footer-cell {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-calendar-arrow {\n border-top-color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-datepicker-toggle,\n.standard-theme .mat-datepicker-content .mat-calendar-next-button,\n.standard-theme .mat-datepicker-content .mat-calendar-previous-button {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-calendar-table-header {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-calendar-table-header-divider::after {\n background: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-calendar-body-label {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-calendar-body-cell-content {\n color: rgba(0, 0, 0, 0.87);\n border-color: transparent;\n}\n.standard-theme .mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\n.standard-theme .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\n.standard-theme .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\n background-color: rgba(0, 0, 0, 0.04);\n}\n.standard-theme .mat-calendar-body-today:not(.mat-calendar-body-selected) {\n border-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected) {\n border-color: rgba(0, 0, 0, 0.18);\n}\n.standard-theme .mat-calendar-body-selected {\n background-color: #607d8b;\n color: white;\n}\n.standard-theme .mat-calendar-body-disabled > .mat-calendar-body-selected {\n background-color: rgba(96, 125, 139, 0.4);\n}\n.standard-theme .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 1px white;\n}\n.standard-theme .mat-datepicker-content {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n background-color: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-datepicker-content.mat-accent .mat-calendar-body-selected {\n background-color: #448aff;\n color: white;\n}\n.standard-theme .mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {\n background-color: rgba(68, 138, 255, 0.4);\n}\n.standard-theme .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 1px white;\n}\n.standard-theme .mat-datepicker-content.mat-warn .mat-calendar-body-selected {\n background-color: #f44336;\n color: white;\n}\n.standard-theme .mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {\n background-color: rgba(244, 67, 54, 0.4);\n}\n.standard-theme .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 1px white;\n}\n.standard-theme .mat-datepicker-content-touch {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-datepicker-toggle-active {\n color: #607d8b;\n}\n.standard-theme .mat-datepicker-toggle-active.mat-accent {\n color: #448aff;\n}\n.standard-theme .mat-datepicker-toggle-active.mat-warn {\n color: #f44336;\n}\n.standard-theme .mat-dialog-container {\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\n background: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-divider {\n border-top-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-divider-vertical {\n border-right-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-expansion-panel {\n background: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-expansion-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-action-row {\n border-top-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]), .standard-theme .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]), .standard-theme .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]) {\n background: rgba(0, 0, 0, 0.04);\n}\n@media (hover: none) {\n .standard-theme .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover {\n background: white;\n }\n}\n.standard-theme .mat-expansion-panel-header-title {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-expansion-panel-header-description,\n.standard-theme .mat-expansion-indicator::after {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-expansion-panel-header[aria-disabled=true] {\n color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,\n.standard-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description {\n color: inherit;\n}\n.standard-theme .mat-form-field-label {\n color: rgba(0, 0, 0, 0.6);\n}\n.standard-theme .mat-hint {\n color: rgba(0, 0, 0, 0.6);\n}\n.standard-theme .mat-form-field.mat-focused .mat-form-field-label {\n color: #607d8b;\n}\n.standard-theme .mat-form-field.mat-focused .mat-form-field-label.mat-accent {\n color: #448aff;\n}\n.standard-theme .mat-form-field.mat-focused .mat-form-field-label.mat-warn {\n color: #f44336;\n}\n.standard-theme .mat-focused .mat-form-field-required-marker {\n color: #448aff;\n}\n.standard-theme .mat-form-field-ripple {\n background-color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-form-field.mat-focused .mat-form-field-ripple {\n background-color: #607d8b;\n}\n.standard-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {\n background-color: #448aff;\n}\n.standard-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {\n background-color: #f44336;\n}\n.standard-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {\n color: #607d8b;\n}\n.standard-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {\n color: #448aff;\n}\n.standard-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {\n color: #f44336;\n}\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label {\n color: #f44336;\n}\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {\n color: #f44336;\n}\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {\n background-color: #f44336;\n}\n.standard-theme .mat-error {\n color: #f44336;\n}\n.standard-theme .mat-form-field-appearance-legacy .mat-form-field-label {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-form-field-appearance-legacy .mat-hint {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-form-field-appearance-legacy .mat-form-field-underline {\n background-color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\n background-size: 4px 100%;\n background-repeat: repeat-x;\n}\n.standard-theme .mat-form-field-appearance-standard .mat-form-field-underline {\n background-color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\n background-size: 4px 100%;\n background-repeat: repeat-x;\n}\n.standard-theme .mat-form-field-appearance-fill .mat-form-field-flex {\n background-color: rgba(0, 0, 0, 0.04);\n}\n.standard-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {\n background-color: rgba(0, 0, 0, 0.02);\n}\n.standard-theme .mat-form-field-appearance-fill .mat-form-field-underline::before {\n background-color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {\n background-color: transparent;\n}\n.standard-theme .mat-form-field-appearance-outline .mat-form-field-outline {\n color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-form-field-appearance-outline .mat-form-field-outline-thick {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {\n color: #607d8b;\n}\n.standard-theme .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {\n color: #448aff;\n}\n.standard-theme .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {\n color: #f44336;\n}\n.standard-theme .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {\n color: #f44336;\n}\n.standard-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {\n color: rgba(0, 0, 0, 0.06);\n}\n.standard-theme .mat-icon.mat-primary {\n color: #607d8b;\n}\n.standard-theme .mat-icon.mat-accent {\n color: #448aff;\n}\n.standard-theme .mat-icon.mat-warn {\n color: #f44336;\n}\n.standard-theme .mat-form-field-type-mat-native-select .mat-form-field-infix::after {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-input-element:disabled,\n.standard-theme .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-input-element {\n caret-color: #607d8b;\n}\n.standard-theme .mat-input-element::-webkit-input-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-input-element::-moz-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-input-element::-ms-input-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-input-element::placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-input-element::-moz-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-input-element::-webkit-input-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-input-element:-ms-input-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-accent .mat-input-element {\n caret-color: #448aff;\n}\n.standard-theme .mat-warn .mat-input-element,\n.standard-theme .mat-form-field-invalid .mat-input-element {\n caret-color: #f44336;\n}\n.standard-theme .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {\n color: #f44336;\n}\n.standard-theme .mat-list-base .mat-list-item {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-list-base .mat-list-option {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-list-base .mat-subheader {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-list-item-disabled {\n background-color: #eeeeee;\n}\n.standard-theme .mat-list-option:hover, .standard-theme .mat-list-option:focus,\n.standard-theme .mat-nav-list .mat-list-item:hover,\n.standard-theme .mat-nav-list .mat-list-item:focus,\n.standard-theme .mat-action-list .mat-list-item:hover,\n.standard-theme .mat-action-list .mat-list-item:focus {\n background: rgba(0, 0, 0, 0.04);\n}\n.standard-theme .mat-menu-panel {\n background: white;\n}\n.standard-theme .mat-menu-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-menu-item {\n background: transparent;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-menu-item[disabled], .standard-theme .mat-menu-item[disabled]::after {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-menu-item .mat-icon-no-color,\n.standard-theme .mat-menu-item-submenu-trigger::after {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-menu-item:hover:not([disabled]),\n.standard-theme .mat-menu-item.cdk-program-focused:not([disabled]),\n.standard-theme .mat-menu-item.cdk-keyboard-focused:not([disabled]),\n.standard-theme .mat-menu-item-highlighted:not([disabled]) {\n background: rgba(0, 0, 0, 0.04);\n}\n.standard-theme .mat-paginator {\n background: white;\n}\n.standard-theme .mat-paginator,\n.standard-theme .mat-paginator-page-size .mat-select-trigger {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-paginator-decrement,\n.standard-theme .mat-paginator-increment {\n border-top: 2px solid rgba(0, 0, 0, 0.54);\n border-right: 2px solid rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-paginator-first,\n.standard-theme .mat-paginator-last {\n border-top: 2px solid rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-icon-button[disabled] .mat-paginator-decrement,\n.standard-theme .mat-icon-button[disabled] .mat-paginator-increment,\n.standard-theme .mat-icon-button[disabled] .mat-paginator-first,\n.standard-theme .mat-icon-button[disabled] .mat-paginator-last {\n border-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-progress-bar-background {\n fill: #cfd8dc;\n}\n.standard-theme .mat-progress-bar-buffer {\n background-color: #cfd8dc;\n}\n.standard-theme .mat-progress-bar-fill::after {\n background-color: #607d8b;\n}\n.standard-theme .mat-progress-bar.mat-accent .mat-progress-bar-background {\n fill: #82b1ff;\n}\n.standard-theme .mat-progress-bar.mat-accent .mat-progress-bar-buffer {\n background-color: #82b1ff;\n}\n.standard-theme .mat-progress-bar.mat-accent .mat-progress-bar-fill::after {\n background-color: #448aff;\n}\n.standard-theme .mat-progress-bar.mat-warn .mat-progress-bar-background {\n fill: #ffcdd2;\n}\n.standard-theme .mat-progress-bar.mat-warn .mat-progress-bar-buffer {\n background-color: #ffcdd2;\n}\n.standard-theme .mat-progress-bar.mat-warn .mat-progress-bar-fill::after {\n background-color: #f44336;\n}\n.standard-theme .mat-progress-spinner circle, .standard-theme .mat-spinner circle {\n stroke: #607d8b;\n}\n.standard-theme .mat-progress-spinner.mat-accent circle, .standard-theme .mat-spinner.mat-accent circle {\n stroke: #448aff;\n}\n.standard-theme .mat-progress-spinner.mat-warn circle, .standard-theme .mat-spinner.mat-warn circle {\n stroke: #f44336;\n}\n.standard-theme .mat-radio-outer-circle {\n border-color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {\n border-color: #607d8b;\n}\n.standard-theme .mat-radio-button.mat-primary .mat-radio-inner-circle,\n.standard-theme .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .standard-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple, .standard-theme .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {\n background-color: #607d8b;\n}\n.standard-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {\n border-color: #448aff;\n}\n.standard-theme .mat-radio-button.mat-accent .mat-radio-inner-circle,\n.standard-theme .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .standard-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple, .standard-theme .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {\n background-color: #448aff;\n}\n.standard-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {\n border-color: #f44336;\n}\n.standard-theme .mat-radio-button.mat-warn .mat-radio-inner-circle,\n.standard-theme .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .standard-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple, .standard-theme .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {\n background-color: #f44336;\n}\n.standard-theme .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,\n.standard-theme .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {\n border-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,\n.standard-theme .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {\n background-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-radio-button.mat-radio-disabled .mat-radio-label-content {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-radio-button .mat-ripple-element {\n background-color: black;\n}\n.standard-theme .mat-select-value {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-select-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-select-disabled .mat-select-value {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-select-arrow {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-select-panel {\n background: white;\n}\n.standard-theme .mat-select-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {\n background: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-form-field.mat-focused.mat-primary .mat-select-arrow {\n color: #607d8b;\n}\n.standard-theme .mat-form-field.mat-focused.mat-accent .mat-select-arrow {\n color: #448aff;\n}\n.standard-theme .mat-form-field.mat-focused.mat-warn .mat-select-arrow {\n color: #f44336;\n}\n.standard-theme .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {\n color: #f44336;\n}\n.standard-theme .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-drawer-container {\n background-color: #fafafa;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-drawer {\n background-color: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-drawer.mat-drawer-push {\n background-color: white;\n}\n.standard-theme .mat-drawer:not(.mat-drawer-side) {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-drawer-side {\n border-right: solid 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-drawer-side.mat-drawer-end {\n border-left: solid 1px rgba(0, 0, 0, 0.12);\n border-right: none;\n}\n.standard-theme [dir=rtl] .mat-drawer-side {\n border-left: solid 1px rgba(0, 0, 0, 0.12);\n border-right: none;\n}\n.standard-theme [dir=rtl] .mat-drawer-side.mat-drawer-end {\n border-left: none;\n border-right: solid 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-drawer-backdrop.mat-drawer-shown {\n background-color: rgba(0, 0, 0, 0.6);\n}\n.standard-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {\n background-color: #448aff;\n}\n.standard-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-bar {\n background-color: rgba(68, 138, 255, 0.54);\n}\n.standard-theme .mat-slide-toggle.mat-checked .mat-ripple-element {\n background-color: #448aff;\n}\n.standard-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {\n background-color: #607d8b;\n}\n.standard-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {\n background-color: rgba(96, 125, 139, 0.54);\n}\n.standard-theme .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {\n background-color: #607d8b;\n}\n.standard-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {\n background-color: #f44336;\n}\n.standard-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {\n background-color: rgba(244, 67, 54, 0.54);\n}\n.standard-theme .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {\n background-color: #f44336;\n}\n.standard-theme .mat-slide-toggle:not(.mat-checked) .mat-ripple-element {\n background-color: black;\n}\n.standard-theme .mat-slide-toggle-thumb {\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n background-color: #fafafa;\n}\n.standard-theme .mat-slide-toggle-bar {\n background-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-slider-track-background {\n background-color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-primary .mat-slider-track-fill,\n.standard-theme .mat-primary .mat-slider-thumb,\n.standard-theme .mat-primary .mat-slider-thumb-label {\n background-color: #607d8b;\n}\n.standard-theme .mat-primary .mat-slider-thumb-label-text {\n color: white;\n}\n.standard-theme .mat-accent .mat-slider-track-fill,\n.standard-theme .mat-accent .mat-slider-thumb,\n.standard-theme .mat-accent .mat-slider-thumb-label {\n background-color: #448aff;\n}\n.standard-theme .mat-accent .mat-slider-thumb-label-text {\n color: white;\n}\n.standard-theme .mat-warn .mat-slider-track-fill,\n.standard-theme .mat-warn .mat-slider-thumb,\n.standard-theme .mat-warn .mat-slider-thumb-label {\n background-color: #f44336;\n}\n.standard-theme .mat-warn .mat-slider-thumb-label-text {\n color: white;\n}\n.standard-theme .mat-slider-focus-ring {\n background-color: rgba(68, 138, 255, 0.2);\n}\n.standard-theme .mat-slider:hover .mat-slider-track-background,\n.standard-theme .cdk-focused .mat-slider-track-background {\n background-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-slider-disabled .mat-slider-track-background,\n.standard-theme .mat-slider-disabled .mat-slider-track-fill,\n.standard-theme .mat-slider-disabled .mat-slider-thumb {\n background-color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-slider-disabled:hover .mat-slider-track-background {\n background-color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-slider-min-value .mat-slider-focus-ring {\n background-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,\n.standard-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label {\n background-color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,\n.standard-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label {\n background-color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb {\n border-color: rgba(0, 0, 0, 0.26);\n background-color: transparent;\n}\n.standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb, .standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb {\n border-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb, .standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb {\n border-color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-slider-has-ticks .mat-slider-wrapper::after {\n border-color: rgba(0, 0, 0, 0.7);\n}\n.standard-theme .mat-slider-horizontal .mat-slider-ticks {\n background-image: repeating-linear-gradient(to right, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\n background-image: -moz-repeating-linear-gradient(0.0001deg, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\n}\n.standard-theme .mat-slider-vertical .mat-slider-ticks {\n background-image: repeating-linear-gradient(to bottom, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\n}\n.standard-theme .mat-step-header.cdk-keyboard-focused, .standard-theme .mat-step-header.cdk-program-focused, .standard-theme .mat-step-header:hover {\n background-color: rgba(0, 0, 0, 0.04);\n}\n@media (hover: none) {\n .standard-theme .mat-step-header:hover {\n background: none;\n }\n}\n.standard-theme .mat-step-header .mat-step-label,\n.standard-theme .mat-step-header .mat-step-optional {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-step-header .mat-step-icon {\n background-color: rgba(0, 0, 0, 0.54);\n color: white;\n}\n.standard-theme .mat-step-header .mat-step-icon-selected,\n.standard-theme .mat-step-header .mat-step-icon-state-done,\n.standard-theme .mat-step-header .mat-step-icon-state-edit {\n background-color: #607d8b;\n color: white;\n}\n.standard-theme .mat-step-header .mat-step-icon-state-error {\n background-color: transparent;\n color: #f44336;\n}\n.standard-theme .mat-step-header .mat-step-label.mat-step-label-active {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-step-header .mat-step-label.mat-step-label-error {\n color: #f44336;\n}\n.standard-theme .mat-stepper-horizontal, .standard-theme .mat-stepper-vertical {\n background-color: white;\n}\n.standard-theme .mat-stepper-vertical-line::before {\n border-left-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-horizontal-stepper-header::before,\n.standard-theme .mat-horizontal-stepper-header::after,\n.standard-theme .mat-stepper-horizontal-line {\n border-top-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-sort-header-arrow {\n color: #757575;\n}\n.standard-theme .mat-tab-nav-bar,\n.standard-theme .mat-tab-header {\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-tab-group-inverted-header .mat-tab-nav-bar,\n.standard-theme .mat-tab-group-inverted-header .mat-tab-header {\n border-top: 1px solid rgba(0, 0, 0, 0.12);\n border-bottom: none;\n}\n.standard-theme .mat-tab-label, .standard-theme .mat-tab-link {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-link.mat-tab-disabled {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-tab-group[class*=mat-background-] .mat-tab-header,\n.standard-theme .mat-tab-nav-bar[class*=mat-background-] {\n border-bottom: none;\n border-top: none;\n}\n.standard-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(207, 216, 220, 0.3);\n}\n.standard-theme .mat-tab-group.mat-primary .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-primary .mat-ink-bar {\n background-color: #607d8b;\n}\n.standard-theme .mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar {\n background-color: white;\n}\n.standard-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(130, 177, 255, 0.3);\n}\n.standard-theme .mat-tab-group.mat-accent .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-accent .mat-ink-bar {\n background-color: #448aff;\n}\n.standard-theme .mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar {\n background-color: white;\n}\n.standard-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(255, 205, 210, 0.3);\n}\n.standard-theme .mat-tab-group.mat-warn .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-warn .mat-ink-bar {\n background-color: #f44336;\n}\n.standard-theme .mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar {\n background-color: white;\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(207, 216, 220, 0.3);\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-header, .standard-theme .mat-tab-group.mat-background-primary .mat-tab-links, .standard-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-links, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination {\n background-color: #607d8b;\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-label, .standard-theme .mat-tab-group.mat-background-primary .mat-tab-link, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link {\n color: white;\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled {\n color: rgba(255, 255, 255, 0.4);\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron {\n border-color: white;\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(255, 255, 255, 0.4);\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-ripple-element, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(130, 177, 255, 0.3);\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-header, .standard-theme .mat-tab-group.mat-background-accent .mat-tab-links, .standard-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-links, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination {\n background-color: #448aff;\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-label, .standard-theme .mat-tab-group.mat-background-accent .mat-tab-link, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link {\n color: white;\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled {\n color: rgba(255, 255, 255, 0.4);\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron {\n border-color: white;\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(255, 255, 255, 0.4);\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-ripple-element, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(255, 205, 210, 0.3);\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-header, .standard-theme .mat-tab-group.mat-background-warn .mat-tab-links, .standard-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-links, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination {\n background-color: #f44336;\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-label, .standard-theme .mat-tab-group.mat-background-warn .mat-tab-link, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link {\n color: white;\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled {\n color: rgba(255, 255, 255, 0.4);\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron {\n border-color: white;\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(255, 255, 255, 0.4);\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-ripple-element, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.standard-theme .mat-toolbar {\n background: whitesmoke;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-toolbar.mat-primary {\n background: #607d8b;\n color: white;\n}\n.standard-theme .mat-toolbar.mat-accent {\n background: #448aff;\n color: white;\n}\n.standard-theme .mat-toolbar.mat-warn {\n background: #f44336;\n color: white;\n}\n.standard-theme .mat-toolbar .mat-form-field-underline,\n.standard-theme .mat-toolbar .mat-form-field-ripple,\n.standard-theme .mat-toolbar .mat-focused .mat-form-field-ripple {\n background-color: currentColor;\n}\n.standard-theme .mat-toolbar .mat-form-field-label,\n.standard-theme .mat-toolbar .mat-focused .mat-form-field-label,\n.standard-theme .mat-toolbar .mat-select-value,\n.standard-theme .mat-toolbar .mat-select-arrow,\n.standard-theme .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow {\n color: inherit;\n}\n.standard-theme .mat-toolbar .mat-input-element {\n caret-color: currentColor;\n}\n.standard-theme .mat-tooltip {\n background: rgba(97, 97, 97, 0.9);\n}\n.standard-theme .mat-tree {\n background: white;\n}\n.standard-theme .mat-tree-node,\n.standard-theme .mat-nested-tree-node {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-snack-bar-container {\n color: rgba(255, 255, 255, 0.7);\n background: #323232;\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-simple-snackbar-action {\n color: #448aff;\n}\n.standard-theme h1 {\n color: #607d8b;\n}\n.green-theme .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.green-theme .mat-option {\n color: white;\n}\n.green-theme .mat-option:hover:not(.mat-option-disabled), .green-theme .mat-option:focus:not(.mat-option-disabled) {\n background: rgba(255, 255, 255, 0.04);\n}\n.green-theme .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {\n background: rgba(255, 255, 255, 0.04);\n}\n.green-theme .mat-option.mat-active {\n background: rgba(255, 255, 255, 0.04);\n color: white;\n}\n.green-theme .mat-option.mat-option-disabled {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\n color: #8bc34a;\n}\n.green-theme .mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {\n color: #4caf50;\n}\n.green-theme .mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {\n color: #4caf50;\n}\n.green-theme .mat-optgroup-label {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-optgroup-disabled .mat-optgroup-label {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-pseudo-checkbox {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-pseudo-checkbox::after {\n color: #303030;\n}\n.green-theme .mat-pseudo-checkbox-disabled {\n color: #686868;\n}\n.green-theme .mat-primary .mat-pseudo-checkbox-checked,\n.green-theme .mat-primary .mat-pseudo-checkbox-indeterminate {\n background: #8bc34a;\n}\n.green-theme .mat-pseudo-checkbox-checked,\n.green-theme .mat-pseudo-checkbox-indeterminate,\n.green-theme .mat-accent .mat-pseudo-checkbox-checked,\n.green-theme .mat-accent .mat-pseudo-checkbox-indeterminate {\n background: #4caf50;\n}\n.green-theme .mat-warn .mat-pseudo-checkbox-checked,\n.green-theme .mat-warn .mat-pseudo-checkbox-indeterminate {\n background: #4caf50;\n}\n.green-theme .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,\n.green-theme .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {\n background: #686868;\n}\n.green-theme .mat-elevation-z0 {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z1 {\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z2 {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z3 {\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z4 {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z5 {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z6 {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z7 {\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z8 {\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z9 {\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z10 {\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z11 {\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z12 {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z13 {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z14 {\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z15 {\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z16 {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z17 {\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z18 {\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z19 {\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z20 {\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z21 {\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z22 {\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z23 {\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z24 {\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-app-background, .green-theme.mat-app-background {\n background-color: #303030;\n color: white;\n}\n.mat-theme-loaded-marker {\n display: none;\n}\n.green-theme .mat-autocomplete-panel {\n background: #424242;\n color: white;\n}\n.green-theme .mat-autocomplete-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {\n background: #424242;\n}\n.green-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {\n color: white;\n}\n.green-theme .mat-badge-content {\n color: rgba(0, 0, 0, 0.87);\n background: #8bc34a;\n}\n@media (-ms-high-contrast: active) {\n .green-theme .mat-badge-content {\n outline: solid 1px;\n border-radius: 0;\n }\n}\n.green-theme .mat-badge-accent .mat-badge-content {\n background: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-badge-warn .mat-badge-content {\n color: rgba(0, 0, 0, 0.87);\n background: #4caf50;\n}\n.green-theme .mat-badge {\n position: relative;\n}\n.green-theme .mat-badge-hidden .mat-badge-content {\n display: none;\n}\n.green-theme .mat-badge-disabled .mat-badge-content {\n background: #6e6e6e;\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-badge-content {\n position: absolute;\n text-align: center;\n display: inline-block;\n border-radius: 50%;\n transition: transform 200ms ease-in-out;\n transform: scale(0.6);\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n pointer-events: none;\n}\n.green-theme .ng-animate-disabled .mat-badge-content,\n.green-theme .mat-badge-content._mat-animation-noopable {\n transition: none;\n}\n.green-theme .mat-badge-content.mat-badge-active {\n transform: none;\n}\n.green-theme .mat-badge-small .mat-badge-content {\n width: 16px;\n height: 16px;\n line-height: 16px;\n}\n.green-theme .mat-badge-small.mat-badge-above .mat-badge-content {\n top: -8px;\n}\n.green-theme .mat-badge-small.mat-badge-below .mat-badge-content {\n bottom: -8px;\n}\n.green-theme .mat-badge-small.mat-badge-before .mat-badge-content {\n left: -16px;\n}\n[dir=rtl] .green-theme .mat-badge-small.mat-badge-before .mat-badge-content {\n left: auto;\n right: -16px;\n}\n.green-theme .mat-badge-small.mat-badge-after .mat-badge-content {\n right: -16px;\n}\n[dir=rtl] .green-theme .mat-badge-small.mat-badge-after .mat-badge-content {\n right: auto;\n left: -16px;\n}\n.green-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: -8px;\n}\n[dir=rtl] .green-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: auto;\n right: -8px;\n}\n.green-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: -8px;\n}\n[dir=rtl] .green-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: auto;\n left: -8px;\n}\n.green-theme .mat-badge-medium .mat-badge-content {\n width: 22px;\n height: 22px;\n line-height: 22px;\n}\n.green-theme .mat-badge-medium.mat-badge-above .mat-badge-content {\n top: -11px;\n}\n.green-theme .mat-badge-medium.mat-badge-below .mat-badge-content {\n bottom: -11px;\n}\n.green-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\n left: -22px;\n}\n[dir=rtl] .green-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\n left: auto;\n right: -22px;\n}\n.green-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\n right: -22px;\n}\n[dir=rtl] .green-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\n right: auto;\n left: -22px;\n}\n.green-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: -11px;\n}\n[dir=rtl] .green-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: auto;\n right: -11px;\n}\n.green-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: -11px;\n}\n[dir=rtl] .green-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: auto;\n left: -11px;\n}\n.green-theme .mat-badge-large .mat-badge-content {\n width: 28px;\n height: 28px;\n line-height: 28px;\n}\n.green-theme .mat-badge-large.mat-badge-above .mat-badge-content {\n top: -14px;\n}\n.green-theme .mat-badge-large.mat-badge-below .mat-badge-content {\n bottom: -14px;\n}\n.green-theme .mat-badge-large.mat-badge-before .mat-badge-content {\n left: -28px;\n}\n[dir=rtl] .green-theme .mat-badge-large.mat-badge-before .mat-badge-content {\n left: auto;\n right: -28px;\n}\n.green-theme .mat-badge-large.mat-badge-after .mat-badge-content {\n right: -28px;\n}\n[dir=rtl] .green-theme .mat-badge-large.mat-badge-after .mat-badge-content {\n right: auto;\n left: -28px;\n}\n.green-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: -14px;\n}\n[dir=rtl] .green-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: auto;\n right: -14px;\n}\n.green-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: -14px;\n}\n[dir=rtl] .green-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: auto;\n left: -14px;\n}\n.green-theme .mat-bottom-sheet-container {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n background: #424242;\n color: white;\n}\n.green-theme .mat-button, .green-theme .mat-icon-button, .green-theme .mat-stroked-button {\n color: inherit;\n background: transparent;\n}\n.green-theme .mat-button.mat-primary, .green-theme .mat-icon-button.mat-primary, .green-theme .mat-stroked-button.mat-primary {\n color: #8bc34a;\n}\n.green-theme .mat-button.mat-accent, .green-theme .mat-icon-button.mat-accent, .green-theme .mat-stroked-button.mat-accent {\n color: #4caf50;\n}\n.green-theme .mat-button.mat-warn, .green-theme .mat-icon-button.mat-warn, .green-theme .mat-stroked-button.mat-warn {\n color: #4caf50;\n}\n.green-theme .mat-button.mat-primary[disabled], .green-theme .mat-button.mat-accent[disabled], .green-theme .mat-button.mat-warn[disabled], .green-theme .mat-button[disabled][disabled], .green-theme .mat-icon-button.mat-primary[disabled], .green-theme .mat-icon-button.mat-accent[disabled], .green-theme .mat-icon-button.mat-warn[disabled], .green-theme .mat-icon-button[disabled][disabled], .green-theme .mat-stroked-button.mat-primary[disabled], .green-theme .mat-stroked-button.mat-accent[disabled], .green-theme .mat-stroked-button.mat-warn[disabled], .green-theme .mat-stroked-button[disabled][disabled] {\n color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-button.mat-primary .mat-button-focus-overlay, .green-theme .mat-icon-button.mat-primary .mat-button-focus-overlay, .green-theme .mat-stroked-button.mat-primary .mat-button-focus-overlay {\n background-color: #8bc34a;\n}\n.green-theme .mat-button.mat-accent .mat-button-focus-overlay, .green-theme .mat-icon-button.mat-accent .mat-button-focus-overlay, .green-theme .mat-stroked-button.mat-accent .mat-button-focus-overlay {\n background-color: #4caf50;\n}\n.green-theme .mat-button.mat-warn .mat-button-focus-overlay, .green-theme .mat-icon-button.mat-warn .mat-button-focus-overlay, .green-theme .mat-stroked-button.mat-warn .mat-button-focus-overlay {\n background-color: #4caf50;\n}\n.green-theme .mat-button[disabled] .mat-button-focus-overlay, .green-theme .mat-icon-button[disabled] .mat-button-focus-overlay, .green-theme .mat-stroked-button[disabled] .mat-button-focus-overlay {\n background-color: transparent;\n}\n.green-theme .mat-button .mat-ripple-element, .green-theme .mat-icon-button .mat-ripple-element, .green-theme .mat-stroked-button .mat-ripple-element {\n opacity: 0.1;\n background-color: currentColor;\n}\n.green-theme .mat-button-focus-overlay {\n background: white;\n}\n.green-theme .mat-stroked-button:not([disabled]) {\n border-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-flat-button, .green-theme .mat-raised-button, .green-theme .mat-fab, .green-theme .mat-mini-fab {\n color: white;\n background-color: #424242;\n}\n.green-theme .mat-flat-button.mat-primary, .green-theme .mat-raised-button.mat-primary, .green-theme .mat-fab.mat-primary, .green-theme .mat-mini-fab.mat-primary {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-flat-button.mat-accent, .green-theme .mat-raised-button.mat-accent, .green-theme .mat-fab.mat-accent, .green-theme .mat-mini-fab.mat-accent {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-flat-button.mat-warn, .green-theme .mat-raised-button.mat-warn, .green-theme .mat-fab.mat-warn, .green-theme .mat-mini-fab.mat-warn {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-flat-button.mat-primary[disabled], .green-theme .mat-flat-button.mat-accent[disabled], .green-theme .mat-flat-button.mat-warn[disabled], .green-theme .mat-flat-button[disabled][disabled], .green-theme .mat-raised-button.mat-primary[disabled], .green-theme .mat-raised-button.mat-accent[disabled], .green-theme .mat-raised-button.mat-warn[disabled], .green-theme .mat-raised-button[disabled][disabled], .green-theme .mat-fab.mat-primary[disabled], .green-theme .mat-fab.mat-accent[disabled], .green-theme .mat-fab.mat-warn[disabled], .green-theme .mat-fab[disabled][disabled], .green-theme .mat-mini-fab.mat-primary[disabled], .green-theme .mat-mini-fab.mat-accent[disabled], .green-theme .mat-mini-fab.mat-warn[disabled], .green-theme .mat-mini-fab[disabled][disabled] {\n color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-flat-button.mat-primary, .green-theme .mat-raised-button.mat-primary, .green-theme .mat-fab.mat-primary, .green-theme .mat-mini-fab.mat-primary {\n background-color: #8bc34a;\n}\n.green-theme .mat-flat-button.mat-accent, .green-theme .mat-raised-button.mat-accent, .green-theme .mat-fab.mat-accent, .green-theme .mat-mini-fab.mat-accent {\n background-color: #4caf50;\n}\n.green-theme .mat-flat-button.mat-warn, .green-theme .mat-raised-button.mat-warn, .green-theme .mat-fab.mat-warn, .green-theme .mat-mini-fab.mat-warn {\n background-color: #4caf50;\n}\n.green-theme .mat-flat-button.mat-primary[disabled], .green-theme .mat-flat-button.mat-accent[disabled], .green-theme .mat-flat-button.mat-warn[disabled], .green-theme .mat-flat-button[disabled][disabled], .green-theme .mat-raised-button.mat-primary[disabled], .green-theme .mat-raised-button.mat-accent[disabled], .green-theme .mat-raised-button.mat-warn[disabled], .green-theme .mat-raised-button[disabled][disabled], .green-theme .mat-fab.mat-primary[disabled], .green-theme .mat-fab.mat-accent[disabled], .green-theme .mat-fab.mat-warn[disabled], .green-theme .mat-fab[disabled][disabled], .green-theme .mat-mini-fab.mat-primary[disabled], .green-theme .mat-mini-fab.mat-accent[disabled], .green-theme .mat-mini-fab.mat-warn[disabled], .green-theme .mat-mini-fab[disabled][disabled] {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-flat-button.mat-primary .mat-ripple-element, .green-theme .mat-raised-button.mat-primary .mat-ripple-element, .green-theme .mat-fab.mat-primary .mat-ripple-element, .green-theme .mat-mini-fab.mat-primary .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.green-theme .mat-flat-button.mat-accent .mat-ripple-element, .green-theme .mat-raised-button.mat-accent .mat-ripple-element, .green-theme .mat-fab.mat-accent .mat-ripple-element, .green-theme .mat-mini-fab.mat-accent .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.green-theme .mat-flat-button.mat-warn .mat-ripple-element, .green-theme .mat-raised-button.mat-warn .mat-ripple-element, .green-theme .mat-fab.mat-warn .mat-ripple-element, .green-theme .mat-mini-fab.mat-warn .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.green-theme .mat-stroked-button:not([class*=mat-elevation-z]), .green-theme .mat-flat-button:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-raised-button:not([class*=mat-elevation-z]) {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]) {\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-raised-button[disabled]:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-fab:not([class*=mat-elevation-z]), .green-theme .mat-mini-fab:not([class*=mat-elevation-z]) {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-fab:not([disabled]):active:not([class*=mat-elevation-z]), .green-theme .mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]) {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-fab[disabled]:not([class*=mat-elevation-z]), .green-theme .mat-mini-fab[disabled]:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-button-toggle-standalone,\n.green-theme .mat-button-toggle-group {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\n.green-theme .mat-button-toggle-group-appearance-standard {\n box-shadow: none;\n}\n.green-theme .mat-button-toggle {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-button-toggle .mat-button-toggle-focus-overlay {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-button-toggle-appearance-standard {\n color: white;\n background: #424242;\n}\n.green-theme .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {\n background-color: white;\n}\n.green-theme .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\n border-left: solid 1px rgba(255, 255, 255, 0.12);\n}\n.green-theme [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\n border-left: none;\n border-right: solid 1px rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {\n border-left: none;\n border-right: none;\n border-top: solid 1px rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-button-toggle-checked {\n background-color: #212121;\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-button-toggle-checked.mat-button-toggle-appearance-standard {\n color: white;\n}\n.green-theme .mat-button-toggle-disabled {\n color: rgba(255, 255, 255, 0.3);\n background-color: black;\n}\n.green-theme .mat-button-toggle-disabled.mat-button-toggle-appearance-standard {\n background: #424242;\n}\n.green-theme .mat-button-toggle-disabled.mat-button-toggle-checked {\n background-color: #424242;\n}\n.green-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\n.green-theme .mat-button-toggle-group-appearance-standard {\n border: solid 1px rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-card {\n background: #424242;\n color: white;\n}\n.green-theme .mat-card:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-card.mat-card-flat:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-card-subtitle {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-checkbox-frame {\n border-color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-checkbox-checkmark {\n fill: #303030;\n}\n.green-theme .mat-checkbox-checkmark-path {\n stroke: #303030 !important;\n}\n@media (-ms-high-contrast: black-on-white) {\n .green-theme .mat-checkbox-checkmark-path {\n stroke: #000 !important;\n }\n}\n.green-theme .mat-checkbox-mixedmark {\n background-color: #303030;\n}\n.green-theme .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .green-theme .mat-checkbox-checked.mat-primary .mat-checkbox-background {\n background-color: #8bc34a;\n}\n.green-theme .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .green-theme .mat-checkbox-checked.mat-accent .mat-checkbox-background {\n background-color: #4caf50;\n}\n.green-theme .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .green-theme .mat-checkbox-checked.mat-warn .mat-checkbox-background {\n background-color: #4caf50;\n}\n.green-theme .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .green-theme .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {\n background-color: #686868;\n}\n.green-theme .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {\n border-color: #686868;\n}\n.green-theme .mat-checkbox-disabled .mat-checkbox-label {\n color: rgba(255, 255, 255, 0.7);\n}\n@media (-ms-high-contrast: active) {\n .green-theme .mat-checkbox-disabled {\n opacity: 0.5;\n }\n}\n@media (-ms-high-contrast: active) {\n .green-theme .mat-checkbox-background {\n background: none;\n }\n}\n.green-theme .mat-checkbox .mat-ripple-element {\n background-color: white;\n}\n.green-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,\n.green-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {\n background: #8bc34a;\n}\n.green-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,\n.green-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {\n background: #4caf50;\n}\n.green-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,\n.green-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {\n background: #4caf50;\n}\n.green-theme .mat-chip.mat-standard-chip {\n background-color: #616161;\n color: white;\n}\n.green-theme .mat-chip.mat-standard-chip .mat-chip-remove {\n color: white;\n opacity: 0.4;\n}\n.green-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {\n opacity: 0.54;\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-disabled {\n opacity: 0.4;\n}\n.green-theme .mat-chip.mat-standard-chip::after {\n background: white;\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {\n background-color: #8bc34a;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {\n color: rgba(0, 0, 0, 0.87);\n opacity: 0.4;\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {\n background: rgba(0, 0, 0, 0.1);\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {\n background-color: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {\n color: rgba(0, 0, 0, 0.87);\n opacity: 0.4;\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {\n background: rgba(0, 0, 0, 0.1);\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {\n background-color: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {\n color: rgba(0, 0, 0, 0.87);\n opacity: 0.4;\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {\n background: rgba(0, 0, 0, 0.1);\n}\n.green-theme .mat-table {\n background: #424242;\n}\n.green-theme .mat-table thead, .green-theme .mat-table tbody, .green-theme .mat-table tfoot,\n.green-theme mat-header-row, .green-theme mat-row, .green-theme mat-footer-row,\n.green-theme [mat-header-row], .green-theme [mat-row], .green-theme [mat-footer-row],\n.green-theme .mat-table-sticky {\n background: inherit;\n}\n.green-theme mat-row, .green-theme mat-header-row, .green-theme mat-footer-row,\n.green-theme th.mat-header-cell, .green-theme td.mat-cell, .green-theme td.mat-footer-cell {\n border-bottom-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-header-cell {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-cell, .green-theme .mat-footer-cell {\n color: white;\n}\n.green-theme .mat-calendar-arrow {\n border-top-color: white;\n}\n.green-theme .mat-datepicker-toggle,\n.green-theme .mat-datepicker-content .mat-calendar-next-button,\n.green-theme .mat-datepicker-content .mat-calendar-previous-button {\n color: white;\n}\n.green-theme .mat-calendar-table-header {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-calendar-table-header-divider::after {\n background: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-calendar-body-label {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-calendar-body-cell-content {\n color: white;\n border-color: transparent;\n}\n.green-theme .mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\n.green-theme .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\n.green-theme .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\n background-color: rgba(255, 255, 255, 0.04);\n}\n.green-theme .mat-calendar-body-today:not(.mat-calendar-body-selected) {\n border-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected) {\n border-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-calendar-body-selected {\n background-color: #8bc34a;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-calendar-body-disabled > .mat-calendar-body-selected {\n background-color: rgba(139, 195, 74, 0.4);\n}\n.green-theme .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-datepicker-content {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n background-color: #424242;\n color: white;\n}\n.green-theme .mat-datepicker-content.mat-accent .mat-calendar-body-selected {\n background-color: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {\n background-color: rgba(76, 175, 80, 0.4);\n}\n.green-theme .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-datepicker-content.mat-warn .mat-calendar-body-selected {\n background-color: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {\n background-color: rgba(76, 175, 80, 0.4);\n}\n.green-theme .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-datepicker-content-touch {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-datepicker-toggle-active {\n color: #8bc34a;\n}\n.green-theme .mat-datepicker-toggle-active.mat-accent {\n color: #4caf50;\n}\n.green-theme .mat-datepicker-toggle-active.mat-warn {\n color: #4caf50;\n}\n.green-theme .mat-dialog-container {\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\n background: #424242;\n color: white;\n}\n.green-theme .mat-divider {\n border-top-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-divider-vertical {\n border-right-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-expansion-panel {\n background: #424242;\n color: white;\n}\n.green-theme .mat-expansion-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-action-row {\n border-top-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]), .green-theme .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]), .green-theme .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]) {\n background: rgba(255, 255, 255, 0.04);\n}\n@media (hover: none) {\n .green-theme .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover {\n background: #424242;\n }\n}\n.green-theme .mat-expansion-panel-header-title {\n color: white;\n}\n.green-theme .mat-expansion-panel-header-description,\n.green-theme .mat-expansion-indicator::after {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-expansion-panel-header[aria-disabled=true] {\n color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,\n.green-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description {\n color: inherit;\n}\n.green-theme .mat-form-field-label {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-hint {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-form-field.mat-focused .mat-form-field-label {\n color: #8bc34a;\n}\n.green-theme .mat-form-field.mat-focused .mat-form-field-label.mat-accent {\n color: #4caf50;\n}\n.green-theme .mat-form-field.mat-focused .mat-form-field-label.mat-warn {\n color: #4caf50;\n}\n.green-theme .mat-focused .mat-form-field-required-marker {\n color: #4caf50;\n}\n.green-theme .mat-form-field-ripple {\n background-color: white;\n}\n.green-theme .mat-form-field.mat-focused .mat-form-field-ripple {\n background-color: #8bc34a;\n}\n.green-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {\n background-color: #4caf50;\n}\n.green-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {\n background-color: #4caf50;\n}\n.green-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {\n color: #8bc34a;\n}\n.green-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {\n color: #4caf50;\n}\n.green-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {\n color: #4caf50;\n}\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label {\n color: #4caf50;\n}\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {\n color: #4caf50;\n}\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {\n background-color: #4caf50;\n}\n.green-theme .mat-error {\n color: #4caf50;\n}\n.green-theme .mat-form-field-appearance-legacy .mat-form-field-label {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-form-field-appearance-legacy .mat-hint {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-form-field-appearance-legacy .mat-form-field-underline {\n background-color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0.7) 33%, transparent 0%);\n background-size: 4px 100%;\n background-repeat: repeat-x;\n}\n.green-theme .mat-form-field-appearance-standard .mat-form-field-underline {\n background-color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0.7) 33%, transparent 0%);\n background-size: 4px 100%;\n background-repeat: repeat-x;\n}\n.green-theme .mat-form-field-appearance-fill .mat-form-field-flex {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.green-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {\n background-color: rgba(255, 255, 255, 0.05);\n}\n.green-theme .mat-form-field-appearance-fill .mat-form-field-underline::before {\n background-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {\n background-color: transparent;\n}\n.green-theme .mat-form-field-appearance-outline .mat-form-field-outline {\n color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-form-field-appearance-outline .mat-form-field-outline-thick {\n color: white;\n}\n.green-theme .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {\n color: #8bc34a;\n}\n.green-theme .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {\n color: #4caf50;\n}\n.green-theme .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {\n color: #4caf50;\n}\n.green-theme .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {\n color: #4caf50;\n}\n.green-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {\n color: rgba(255, 255, 255, 0.15);\n}\n.green-theme .mat-icon.mat-primary {\n color: #8bc34a;\n}\n.green-theme .mat-icon.mat-accent {\n color: #4caf50;\n}\n.green-theme .mat-icon.mat-warn {\n color: #4caf50;\n}\n.green-theme .mat-form-field-type-mat-native-select .mat-form-field-infix::after {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-input-element:disabled,\n.green-theme .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element {\n caret-color: #8bc34a;\n}\n.green-theme .mat-input-element::-webkit-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element::-moz-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element::-ms-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element::placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element::-moz-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element::-webkit-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element:-ms-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element option {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-input-element option:disabled {\n color: rgba(0, 0, 0, 0.38);\n}\n.green-theme .mat-accent .mat-input-element {\n caret-color: #4caf50;\n}\n.green-theme .mat-warn .mat-input-element,\n.green-theme .mat-form-field-invalid .mat-input-element {\n caret-color: #4caf50;\n}\n.green-theme .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {\n color: #4caf50;\n}\n.green-theme .mat-list-base .mat-list-item {\n color: white;\n}\n.green-theme .mat-list-base .mat-list-option {\n color: white;\n}\n.green-theme .mat-list-base .mat-subheader {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-list-item-disabled {\n background-color: black;\n}\n.green-theme .mat-list-option:hover, .green-theme .mat-list-option:focus,\n.green-theme .mat-nav-list .mat-list-item:hover,\n.green-theme .mat-nav-list .mat-list-item:focus,\n.green-theme .mat-action-list .mat-list-item:hover,\n.green-theme .mat-action-list .mat-list-item:focus {\n background: rgba(255, 255, 255, 0.04);\n}\n.green-theme .mat-menu-panel {\n background: #424242;\n}\n.green-theme .mat-menu-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-menu-item {\n background: transparent;\n color: white;\n}\n.green-theme .mat-menu-item[disabled], .green-theme .mat-menu-item[disabled]::after {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-menu-item .mat-icon-no-color,\n.green-theme .mat-menu-item-submenu-trigger::after {\n color: white;\n}\n.green-theme .mat-menu-item:hover:not([disabled]),\n.green-theme .mat-menu-item.cdk-program-focused:not([disabled]),\n.green-theme .mat-menu-item.cdk-keyboard-focused:not([disabled]),\n.green-theme .mat-menu-item-highlighted:not([disabled]) {\n background: rgba(255, 255, 255, 0.04);\n}\n.green-theme .mat-paginator {\n background: #424242;\n}\n.green-theme .mat-paginator,\n.green-theme .mat-paginator-page-size .mat-select-trigger {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-paginator-decrement,\n.green-theme .mat-paginator-increment {\n border-top: 2px solid white;\n border-right: 2px solid white;\n}\n.green-theme .mat-paginator-first,\n.green-theme .mat-paginator-last {\n border-top: 2px solid white;\n}\n.green-theme .mat-icon-button[disabled] .mat-paginator-decrement,\n.green-theme .mat-icon-button[disabled] .mat-paginator-increment,\n.green-theme .mat-icon-button[disabled] .mat-paginator-first,\n.green-theme .mat-icon-button[disabled] .mat-paginator-last {\n border-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-progress-bar-background {\n fill: #dcedc8;\n}\n.green-theme .mat-progress-bar-buffer {\n background-color: #dcedc8;\n}\n.green-theme .mat-progress-bar-fill::after {\n background-color: #8bc34a;\n}\n.green-theme .mat-progress-bar.mat-accent .mat-progress-bar-background {\n fill: #c8e6c9;\n}\n.green-theme .mat-progress-bar.mat-accent .mat-progress-bar-buffer {\n background-color: #c8e6c9;\n}\n.green-theme .mat-progress-bar.mat-accent .mat-progress-bar-fill::after {\n background-color: #4caf50;\n}\n.green-theme .mat-progress-bar.mat-warn .mat-progress-bar-background {\n fill: #c8e6c9;\n}\n.green-theme .mat-progress-bar.mat-warn .mat-progress-bar-buffer {\n background-color: #c8e6c9;\n}\n.green-theme .mat-progress-bar.mat-warn .mat-progress-bar-fill::after {\n background-color: #4caf50;\n}\n.green-theme .mat-progress-spinner circle, .green-theme .mat-spinner circle {\n stroke: #8bc34a;\n}\n.green-theme .mat-progress-spinner.mat-accent circle, .green-theme .mat-spinner.mat-accent circle {\n stroke: #4caf50;\n}\n.green-theme .mat-progress-spinner.mat-warn circle, .green-theme .mat-spinner.mat-warn circle {\n stroke: #4caf50;\n}\n.green-theme .mat-radio-outer-circle {\n border-color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {\n border-color: #8bc34a;\n}\n.green-theme .mat-radio-button.mat-primary .mat-radio-inner-circle,\n.green-theme .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .green-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple, .green-theme .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {\n background-color: #8bc34a;\n}\n.green-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {\n border-color: #4caf50;\n}\n.green-theme .mat-radio-button.mat-accent .mat-radio-inner-circle,\n.green-theme .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .green-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple, .green-theme .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {\n background-color: #4caf50;\n}\n.green-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {\n border-color: #4caf50;\n}\n.green-theme .mat-radio-button.mat-warn .mat-radio-inner-circle,\n.green-theme .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .green-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple, .green-theme .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {\n background-color: #4caf50;\n}\n.green-theme .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,\n.green-theme .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {\n border-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,\n.green-theme .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {\n background-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-radio-button.mat-radio-disabled .mat-radio-label-content {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-radio-button .mat-ripple-element {\n background-color: white;\n}\n.green-theme .mat-select-value {\n color: white;\n}\n.green-theme .mat-select-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-select-disabled .mat-select-value {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-select-arrow {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-select-panel {\n background: #424242;\n}\n.green-theme .mat-select-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {\n background: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-form-field.mat-focused.mat-primary .mat-select-arrow {\n color: #8bc34a;\n}\n.green-theme .mat-form-field.mat-focused.mat-accent .mat-select-arrow {\n color: #4caf50;\n}\n.green-theme .mat-form-field.mat-focused.mat-warn .mat-select-arrow {\n color: #4caf50;\n}\n.green-theme .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {\n color: #4caf50;\n}\n.green-theme .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-drawer-container {\n background-color: #303030;\n color: white;\n}\n.green-theme .mat-drawer {\n background-color: #424242;\n color: white;\n}\n.green-theme .mat-drawer.mat-drawer-push {\n background-color: #424242;\n}\n.green-theme .mat-drawer:not(.mat-drawer-side) {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-drawer-side {\n border-right: solid 1px rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-drawer-side.mat-drawer-end {\n border-left: solid 1px rgba(255, 255, 255, 0.12);\n border-right: none;\n}\n.green-theme [dir=rtl] .mat-drawer-side {\n border-left: solid 1px rgba(255, 255, 255, 0.12);\n border-right: none;\n}\n.green-theme [dir=rtl] .mat-drawer-side.mat-drawer-end {\n border-left: none;\n border-right: solid 1px rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-drawer-backdrop.mat-drawer-shown {\n background-color: rgba(189, 189, 189, 0.6);\n}\n.green-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {\n background-color: #4caf50;\n}\n.green-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-bar {\n background-color: rgba(76, 175, 80, 0.54);\n}\n.green-theme .mat-slide-toggle.mat-checked .mat-ripple-element {\n background-color: #4caf50;\n}\n.green-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {\n background-color: #8bc34a;\n}\n.green-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {\n background-color: rgba(139, 195, 74, 0.54);\n}\n.green-theme .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {\n background-color: #8bc34a;\n}\n.green-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {\n background-color: #4caf50;\n}\n.green-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {\n background-color: rgba(76, 175, 80, 0.54);\n}\n.green-theme .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {\n background-color: #4caf50;\n}\n.green-theme .mat-slide-toggle:not(.mat-checked) .mat-ripple-element {\n background-color: white;\n}\n.green-theme .mat-slide-toggle-thumb {\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n background-color: #bdbdbd;\n}\n.green-theme .mat-slide-toggle-bar {\n background-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-slider-track-background {\n background-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-primary .mat-slider-track-fill,\n.green-theme .mat-primary .mat-slider-thumb,\n.green-theme .mat-primary .mat-slider-thumb-label {\n background-color: #8bc34a;\n}\n.green-theme .mat-primary .mat-slider-thumb-label-text {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-accent .mat-slider-track-fill,\n.green-theme .mat-accent .mat-slider-thumb,\n.green-theme .mat-accent .mat-slider-thumb-label {\n background-color: #4caf50;\n}\n.green-theme .mat-accent .mat-slider-thumb-label-text {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-warn .mat-slider-track-fill,\n.green-theme .mat-warn .mat-slider-thumb,\n.green-theme .mat-warn .mat-slider-thumb-label {\n background-color: #4caf50;\n}\n.green-theme .mat-warn .mat-slider-thumb-label-text {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-slider-focus-ring {\n background-color: rgba(76, 175, 80, 0.2);\n}\n.green-theme .mat-slider:hover .mat-slider-track-background,\n.green-theme .cdk-focused .mat-slider-track-background {\n background-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-slider-disabled .mat-slider-track-background,\n.green-theme .mat-slider-disabled .mat-slider-track-fill,\n.green-theme .mat-slider-disabled .mat-slider-thumb {\n background-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-slider-disabled:hover .mat-slider-track-background {\n background-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-slider-min-value .mat-slider-focus-ring {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,\n.green-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label {\n background-color: white;\n}\n.green-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,\n.green-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label {\n background-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb {\n border-color: rgba(255, 255, 255, 0.3);\n background-color: transparent;\n}\n.green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb, .green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb {\n border-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb, .green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb {\n border-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-slider-has-ticks .mat-slider-wrapper::after {\n border-color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-slider-horizontal .mat-slider-ticks {\n background-image: repeating-linear-gradient(to right, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\n background-image: -moz-repeating-linear-gradient(0.0001deg, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\n}\n.green-theme .mat-slider-vertical .mat-slider-ticks {\n background-image: repeating-linear-gradient(to bottom, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\n}\n.green-theme .mat-step-header.cdk-keyboard-focused, .green-theme .mat-step-header.cdk-program-focused, .green-theme .mat-step-header:hover {\n background-color: rgba(255, 255, 255, 0.04);\n}\n@media (hover: none) {\n .green-theme .mat-step-header:hover {\n background: none;\n }\n}\n.green-theme .mat-step-header .mat-step-label,\n.green-theme .mat-step-header .mat-step-optional {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-step-header .mat-step-icon {\n background-color: rgba(255, 255, 255, 0.7);\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-step-header .mat-step-icon-selected,\n.green-theme .mat-step-header .mat-step-icon-state-done,\n.green-theme .mat-step-header .mat-step-icon-state-edit {\n background-color: #8bc34a;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-step-header .mat-step-icon-state-error {\n background-color: transparent;\n color: #4caf50;\n}\n.green-theme .mat-step-header .mat-step-label.mat-step-label-active {\n color: white;\n}\n.green-theme .mat-step-header .mat-step-label.mat-step-label-error {\n color: #4caf50;\n}\n.green-theme .mat-stepper-horizontal, .green-theme .mat-stepper-vertical {\n background-color: #424242;\n}\n.green-theme .mat-stepper-vertical-line::before {\n border-left-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-horizontal-stepper-header::before,\n.green-theme .mat-horizontal-stepper-header::after,\n.green-theme .mat-stepper-horizontal-line {\n border-top-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-sort-header-arrow {\n color: #c6c6c6;\n}\n.green-theme .mat-tab-nav-bar,\n.green-theme .mat-tab-header {\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-tab-group-inverted-header .mat-tab-nav-bar,\n.green-theme .mat-tab-group-inverted-header .mat-tab-header {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n border-bottom: none;\n}\n.green-theme .mat-tab-label, .green-theme .mat-tab-link {\n color: white;\n}\n.green-theme .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-link.mat-tab-disabled {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-tab-header-pagination-chevron {\n border-color: white;\n}\n.green-theme .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-tab-group[class*=mat-background-] .mat-tab-header,\n.green-theme .mat-tab-nav-bar[class*=mat-background-] {\n border-bottom: none;\n border-top: none;\n}\n.green-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(220, 237, 200, 0.3);\n}\n.green-theme .mat-tab-group.mat-primary .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-primary .mat-ink-bar {\n background-color: #8bc34a;\n}\n.green-theme .mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar {\n background-color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(200, 230, 201, 0.3);\n}\n.green-theme .mat-tab-group.mat-accent .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-accent .mat-ink-bar {\n background-color: #4caf50;\n}\n.green-theme .mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar {\n background-color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(200, 230, 201, 0.3);\n}\n.green-theme .mat-tab-group.mat-warn .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-warn .mat-ink-bar {\n background-color: #4caf50;\n}\n.green-theme .mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar {\n background-color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(220, 237, 200, 0.3);\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-header, .green-theme .mat-tab-group.mat-background-primary .mat-tab-links, .green-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-links, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination {\n background-color: #8bc34a;\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-label, .green-theme .mat-tab-group.mat-background-primary .mat-tab-link, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled {\n color: rgba(0, 0, 0, 0.4);\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.4);\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-ripple-element, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(200, 230, 201, 0.3);\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-header, .green-theme .mat-tab-group.mat-background-accent .mat-tab-links, .green-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-links, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination {\n background-color: #4caf50;\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-label, .green-theme .mat-tab-group.mat-background-accent .mat-tab-link, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled {\n color: rgba(0, 0, 0, 0.4);\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.4);\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-ripple-element, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(200, 230, 201, 0.3);\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-header, .green-theme .mat-tab-group.mat-background-warn .mat-tab-links, .green-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-links, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination {\n background-color: #4caf50;\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-label, .green-theme .mat-tab-group.mat-background-warn .mat-tab-link, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled {\n color: rgba(0, 0, 0, 0.4);\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.4);\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-ripple-element, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-toolbar {\n background: #212121;\n color: white;\n}\n.green-theme .mat-toolbar.mat-primary {\n background: #8bc34a;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-toolbar.mat-accent {\n background: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-toolbar.mat-warn {\n background: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-toolbar .mat-form-field-underline,\n.green-theme .mat-toolbar .mat-form-field-ripple,\n.green-theme .mat-toolbar .mat-focused .mat-form-field-ripple {\n background-color: currentColor;\n}\n.green-theme .mat-toolbar .mat-form-field-label,\n.green-theme .mat-toolbar .mat-focused .mat-form-field-label,\n.green-theme .mat-toolbar .mat-select-value,\n.green-theme .mat-toolbar .mat-select-arrow,\n.green-theme .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow {\n color: inherit;\n}\n.green-theme .mat-toolbar .mat-input-element {\n caret-color: currentColor;\n}\n.green-theme .mat-tooltip {\n background: rgba(97, 97, 97, 0.9);\n}\n.green-theme .mat-tree {\n background: #424242;\n}\n.green-theme .mat-tree-node,\n.green-theme .mat-nested-tree-node {\n color: white;\n}\n.green-theme .mat-snack-bar-container {\n color: rgba(0, 0, 0, 0.87);\n background: #fafafa;\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-simple-snackbar-action {\n color: inherit;\n}\n.green-theme h1 {\n color: #8bc34a;\n}\n/* You can add global styles to this file, and also import other style files */\nhtml, body {\n height: 100%;\n}\nbody {\n margin: 0;\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.flex-spacer {\n flex: 1 1 auto;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvbWF0ZXJpYWwvX3RoZW1pbmcuc2NzcyIsInN0eWxlcy5zY3NzIiwiL2RhdGEvaG9tZS9rbmlzdGVyMC9naXRodWJzL05pZXR6c2NoZUJldGEvbmlldHpzY2hlLWJldGEtYXBwL3NyYy9zdHlsZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwMUNBLGtDQUFBO0FBNmlEQSwyQ0FBQTtBQXdDQSxxQkFBQTtBQXgvQkU7RUFDRSxnQkFyTG9CO0VBc0xwQixlQXZMa0I7RUF3TGxCLGlEQUFBO0FDbjdESjtBRHM3REU7RUFFRSxjQUFBO0FDcDdESjtBRHU3REU7RUFDRSxlQUFBO0FDcDdESjtBRHluREU7RUE5TkUsd0RBQUE7RUFnT0EsZ0JBQUE7QUN0bkRKO0FEeW5ERTtFQW5PRSx3REFBQTtFQXFPQSxnQkFBQTtBQ3RuREo7QUR5bkRFO0VBeE9FLHdEQUFBO0VBME9BLGdCQUFBO0FDdG5ESjtBRHluREU7RUE3T0Usd0RBQUE7RUErT0EsZ0JBQUE7QUN0bkRKO0FENG5ERTtFQXJQRSxxRUFBQTtFQThQQSxnQkFBQTtBQ2hvREo7QURtb0RFO0VBalFFLHFFQUFBO0VBMFFBLGdCQUFBO0FDdm9ESjtBRDBvREU7RUE3UUUsd0RBQUE7QUN6M0NKO0FEMG9ERTtFQWpSRSx3REFBQTtBQ3IzQ0o7QUR5b0RJO0VBQ0UsZ0JBQUE7QUN2b0ROO0FEMm9ERTtFQXpSRSx3REFBQTtBQzkyQ0o7QUQyb0RFO0VBN1JFLDBEQUFBO0VBWUYsdUJBQUE7RUFtUkUsZ0JBQUE7QUN2b0RKO0FEMG9ERTtFQWxTRSx3REFBQTtFQVlGLHVCQUFBO0VBd1JFLGdCQUFBO0FDdG9ESjtBRHlvREU7RUF2U0Usd0RBQUE7RUFZRix3QkFBQTtFQTZSRSxnQkFBQTtBQ3JvREo7QUR3b0RFO0VBNVNFLHdEQUFBO0VBOFNBLGdCQUFBO0FD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QUlJLG9DQUFBO0FDanNCTjtBRCt4QkU7RUFDRSwwQkFBQTtBQzd4Qko7QUQreEJJO0VBRUUsK0JBQUE7QUM5eEJOO0FEa3lCSTtFQUNFLCtCQUFBO0FDaHlCTjtBRG15Qkk7RUFDRSwrQkFBQTtFQUNBLDBCQUFBO0FDanlCTjtBRG95Qkk7RUFDRSwwQkFBQTtBQ2x5Qk47QURzeUJFO0VBQ0UsY0FBQTtBQ3B5Qko7QUR1eUJFO0VBQ0UsY0FBQTtBQ3J5Qko7QUR3eUJFO0VBQ0UsY0FBQTtBQ3R5Qko7QUQwekJFO0VBQ0UsMEJBQUE7QUN4ekJKO0FEMnpCRTtFQUNFLDBCQUFBO0FDenpCSjtBRG8xQkU7RUFDRSwwQkFBQTtBQ2wxQko7QURvMUJJO0VBQ0UsY0FBQTtBQ2wxQk47QURzMUJFO0VBQ0UsY0FaZTtBQ3gwQm5CO0FEdTFCRTs7RUFFRSxtQkFBQTtBQ3IxQko7QUQ2MUJFOzs7O0VBSUUsbUJBQUE7QUMzMUJKO0FEODFCRTs7RUFFRSxtQkFBQTtBQzUxQko7QURpMkJJOztFQUNFLG1CQXhDYTtBQ3R6Qm5CO0FEZ29JSTtFQW42SUYsd0hBQUE7QUNzU0Y7QUQ2bklJO0VBbjZJRix5SEFBQTtBQ3lTRjtBRDBuSUk7RUFuNklGLHlIQUFBO0FDNFNGO0FEdW5JSTtFQW42SUYseUhBQUE7QUMrU0Y7QURvbklJO0VBbjZJRiwwSEFBQTtBQ2tURjtBRGluSUk7RUFuNklGLDBIQUFBO0FDcVRGO0FEOG1JSTtFQW42SUYsMkhBQUE7QUN3VEY7QUQybUlJO0VBbjZJRiwySEFBQTtBQzJURjtBRHdtSUk7RUFuNklGLDJIQUFBO0FDOFRGO0FEcW1JSTtFQW42SUYsMkhBQUE7QUNpVUY7QURrbUlJO0VBbjZJRiw0SEFBQTtBQ29VRjtBRCtsSUk7RUFuNklGLDRIQUFBO0FDdVVGO0FENGxJSTtFQW42SUYsNEhBQUE7QUMwVUY7QUR5bElJO0VBbjZJRiw0SEFBQTtBQzZVRjtBRHNsSUk7RUFuNklGLDRIQUFBO0FDZ1ZGO0FEbWxJSTtFQW42SUYsNEhBQUE7QUNtVkY7QURnbElJO0VBbjZJRiw2SEFBQTtBQ3NWRjtB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Qko7QUQ2Zk07Ozs7O0VBQ0UsMENBQUE7QUN2ZlI7QUQrZkU7RUFDRSx5QkFBQTtBQzdmSjtBRGlnQkU7RUFDRSwwQkFBQTtBQy9mSjtBRGlnQkk7RUFDRSx5QkFBQTtBQy9mTjtBRG9nQkU7RUFDRSxpQ0FBQTtBQ2xnQko7QURxZ0JFO0VBQ0UsZ0NBQUE7QUNuZ0JKO0FEd2dCRTtFQUNFLHFDQUFBO0FDdGdCSjtBRG9lTTs7Ozs7RUFDRSwwQ0FBQTtBQzlkUjtBRHNlRTtFQUNFLHlCQUFBO0FDcGVKO0FEd2VFO0VBQ0UsMEJBQUE7QUN0ZUo7QUR3ZUk7RUFDRSx5QkFBQTtBQ3RlTjtBRDJlRTtFQUNFLGlDQUFBO0FDemVKO0FENGVFO0VBQ0UsZ0NBQUE7QUMxZUo7QUQrZUU7RUFDRSxxQ0FBQTtBQzdlSjtBRG9pQkU7RUFDRSxtQkFBQTtFQUNBLFlBQUE7QUNsaUJKO0FEb2lCSTtFQW5DRixtQkFBQTtFQUNBLDBCQUFBO0FDOWZGO0FEb2lCSTtFQXZDRixtQkFBQTtFQUNBLDBCQUFBO0FDMWZGO0FEb2lCSTtFQTNDRixtQkFBQTtFQUNBLDBCQUFBO0FDdGZGO0FEMGZFOzs7RUFHRSw4QkFBQTtBQ3hmSjtBRDJmRTs7Ozs7RUFLRSxjQUFBO0FDemZKO0FENGZFO0VBQ0UseUJBQUE7QUMxZko7QURvakJFO0VBQ0UsaUNBQUE7QUNsakJKO0FEaXhDRTtFQUNFLG1CQUFBO0FDL3dDSjtBRGt4Q0U7O0VBRUUsWUFBQTtBQ2h4Q0o7QURza0JFO0VBR0UsMEJBQUE7RUFDQSxtQkFBQTtFQTFvSEYsMkhBQUE7QUNxa0dGO0FEMGtCRTtFQUNFLGNBQUE7QUN4a0JKO0FDcCtHRTtFQUFLLGNBQUE7QUR1K0dQO0FDbitHQSw4RUFBQTtBQUdBO0VBQWEsWUFBQTtBRHErR2I7QUNwK0dBO0VBQU8sU0FBQTtFQUFXLGlEQUFBO0FEeStHbEI7QUN2K0dBO0VBQ0UsY0FBQTtBRDArR0YiLCJmaWxlIjoic3R5bGVzLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnQgYWxsIHRoZSB0aGVtaW5nIGZ1bmN0aW9uYWxpdHkuXG4vLyBXZSBjYW4gdXNlIHJlbGF0aXZlIGltcG9ydHMgZm9yIGltcG9ydHMgZnJvbSB0aGUgY2RrIGJlY2F1c2Ugd2UgYnVuZGxlIGV2ZXJ5dGhpbmdcbi8vIHVwIGludG8gYSBzaW5nbGUgZmxhdCBzY3NzIGZpbGUgZm9yIG1hdGVyaWFsLlxuLy8gV2Ugd2FudCBvdmVybGF5cyB0byBhbHdheXMgYXBwZWFyIG92ZXIgdXNlciBjb250ZW50LCBzbyBzZXQgYSBiYXNlbGluZVxuLy8gdmVyeSBoaWdoIHotaW5kZXggZm9yIHRoZSBvdmVybGF5IGNvbnRhaW5lciwgd2hpY2ggaXMgd2hlcmUgd2UgY3JlYXRlIHRoZSBuZXdcbi8vIHN0YWNraW5nIGNvbnRleHQgZm9yIGFsbCBvdmVybGF5cy5cbiRjZGstei1pbmRleC1vdmVybGF5LWNvbnRhaW5lcjogMTAwMCAhZGVmYXVsdDtcbiRjZGstei1pbmRleC1vdmVybGF5OiAxMDAwICFkZWZhdWx0O1xuJGNkay16LWluZGV4LW92ZXJsYXktYmFja2Ryb3A6IDEwMDAgIWRlZmF1bHQ7XG5cbi8vIEJhY2tncm91bmQgY29sb3IgZm9yIGFsbCBvZiB0aGUgYmFja2Ryb3BzXG4kY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcC1iYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzIpICFkZWZhdWx0O1xuXG4vLyBEZWZhdWx0IGJhY2tkcm9wIGFuaW1hdGlvbiBpcyBiYXNlZCBvbiB0aGUgTWF0ZXJpYWwgRGVzaWduIHN3aWZ0LWVhc2Utb3V0LlxuJGJhY2tkcm9wLWFuaW1hdGlvbi1kdXJhdGlvbjogNDAwbXMgIWRlZmF1bHQ7XG4kYmFja2Ryb3AtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSkgIWRlZmF1bHQ7XG5cblxuQG1peGluIGNkay1vdmVybGF5KCkge1xuICAuY2RrLW92ZXJsYXktY29udGFpbmVyLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICAgIC8vIERpc2FibGUgZXZlbnRzIGZyb20gYmVpbmcgY2FwdHVyZWQgb24gdGhlIG92ZXJsYXkgY29udGFpbmVyLlxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgLy8gVGhlIGNvbnRhaW5lciBzaG91bGQgYmUgdGhlIHNpemUgb2YgdGhlIHZpZXdwb3J0LlxuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIFRoZSBvdmVybGF5LWNvbnRhaW5lciBpcyBhbiBpbnZpc2libGUgZWxlbWVudCB3aGljaCBjb250YWlucyBhbGwgaW5kaXZpZHVhbCBvdmVybGF5cy5cbiAgLmNkay1vdmVybGF5LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5LWNvbnRhaW5lcjtcblxuICAgICY6ZW1wdHkge1xuICAgICAgLy8gSGlkZSB0aGUgZWxlbWVudCB3aGVuIGl0IGRvZXNuJ3QgaGF2ZSBhbnkgY2hpbGQgbm9kZXMuIFRoaXMgZG9lc24ndFxuICAgICAgLy8gaW5jbHVkZSBvdmVybGF5cyB0aGF0IGhhdmUgYmVlbiBkZXRhY2hlZCwgcmF0aGVyIHRoYW4gZGlzcG9zZWQuXG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdlIHVzZSBhbiBleHRyYSB3cmFwcGVyIGVsZW1lbnQgaW4gb3JkZXIgdG8gdXNlIG1ha2UgdGhlIG92ZXJsYXkgaXRzZWxmIGEgZmxleCBpdGVtLlxuICAvLyBUaGlzIG1ha2VzIGNlbnRlcmluZyB0aGUgb3ZlcmxheSBlYXN5IHdpdGhvdXQgcnVubmluZyBpbnRvIHRoZSBzdWJwaXhlbCByZW5kZXJpbmdcbiAgLy8gcHJvYmxlbXMgdGllZCB0byB1c2luZyBgdHJhbnNmb3JtYCBhbmQgd2l0aG91dCBpbnRlcmZlcmluZyB3aXRoIHRoZSBvdGhlciBwb3NpdGlvblxuICAvLyBzdHJhdGVnaWVzLlxuICAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5O1xuICB9XG5cbiAgLy8gQSBzaW5nbGUgb3ZlcmxheSBwYW5lLlxuICAuY2RrLW92ZXJsYXktcGFuZSB7XG4gICAgLy8gTm90ZTogaXQncyBpbXBvcnRhbnQgZm9yIHRoaXMgb25lIHRvIHN0YXJ0IG9mZiBgYWJzb2x1dGVgLFxuICAgIC8vIGluIG9yZGVyIGZvciB1cyB0byBiZSBhYmxlIHRvIG1lYXN1cmUgaXQgY29ycmVjdGx5LlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5O1xuXG4gICAgLy8gRm9yIGNvbm5lY3RlZC1wb3NpdGlvbiBvdmVybGF5cywgd2Ugc2V0IGBkaXNwbGF5OiBmbGV4YCBpblxuICAgIC8vIG9yZGVyIHRvIGZvcmNlIGBtYXgtd2lkdGhgIGFuZCBgbWF4LWhlaWdodGAgdG8gdGFrZSBlZmZlY3QuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1iYWNrZHJvcCB7XG4gICAgLy8gVE9ETyhqZWxib3Vybik6IHJldXNlIHNpZGVuYXYgZnVsbHNjcmVlbiBtaXhpbi5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuXG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXktYmFja2Ryb3A7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRiYWNrZHJvcC1hbmltYXRpb24tZHVyYXRpb24gJGJhY2tkcm9wLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb247XG4gICAgb3BhY2l0eTogMDtcblxuICAgICYuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAvLyBJbiBoaWdoIGNvbnRyYXN0IG1vZGUgdGhlIHJnYmEgYmFja2dyb3VuZCB3aWxsIGJlY29tZSBzb2xpZCBzbyB3ZSBuZWVkIHRvIGZhbGwgYmFja1xuICAgICAgLy8gdG8gbWFraW5nIGl0IG9wYXF1ZSB1c2luZyBgb3BhY2l0eWAuIE5vdGUgdGhhdCB3ZSBjYW4ndCB1c2UgdGhlIGBjZGstaGlnaC1jb250cmFzdGBcbiAgICAgIC8vIG1peGluLCBiZWNhdXNlIHdlIGNhbid0IG5vcm1hbGl6ZSB0aGUgaW1wb3J0IHBhdGggdG8gdGhlIF9hMTF5LnNjc3MgYm90aCBmb3IgdGhlXG4gICAgICAvLyBzb3VyY2UgYW5kIHdoZW4gdGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkLiBTZWUgIzEwOTA4LlxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wIHtcbiAgICBiYWNrZ3JvdW5kOiAkY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcC1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wIHtcbiAgICAvLyBOb3RlOiBhcyBvZiBGaXJlZm94IDU3LCBoYXZpbmcgdGhlIGJhY2tkcm9wIGJlIGBiYWNrZ3JvdW5kOiBub25lYCB3aWxsIHByZXZlbnQgaXQgZnJvbVxuICAgIC8vIGNhcHR1cmluZyB0aGUgdXNlcidzIG1vdXNlIHNjcm9sbCBldmVudHMuIFNpbmNlIHdlIGFsc28gY2FuJ3QgdXNlIHNvbWV0aGluZyBsaWtlXG4gICAgLy8gYHJnYmEoMCwgMCwgMCwgMClgLCB3ZSB3b3JrIGFyb3VuZCB0aGUgaW5jb25zaXN0ZW5jeSBieSBub3Qgc2V0dGluZyB0aGUgYmFja2dyb3VuZCBhdFxuICAgIC8vIGFsbCBhbmQgdXNpbmcgYG9wYWNpdHlgIHRvIG1ha2UgdGhlIGVsZW1lbnQgdHJhbnNwYXJlbnQuXG4gICAgJiwgJi5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gT3ZlcmxheSBwYXJlbnQgZWxlbWVudCB1c2VkIHdpdGggdGhlIGNvbm5lY3RlZCBwb3NpdGlvbiBzdHJhdGVneS4gVXNlZCB0byBjb25zdHJhaW4gdGhlXG4gIC8vIG92ZXJsYXkgZWxlbWVudCdzIHNpemUgdG8gZml0IHdpdGhpbiB0aGUgdmlld3BvcnQuXG4gIC5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXk7XG5cbiAgICAvLyBXZSB1c2UgYGRpc3BsYXk6IGZsZXhgIG9uIHRoaXMgZWxlbWVudCBleGNsdXNpdmVseSBmb3IgY2VudGVyaW5nIGNvbm5lY3RlZCBvdmVybGF5cy5cbiAgICAvLyBXaGVuICpub3QqIGNlbnRlcmluZywgYSB0b3AvbGVmdC9ib3R0b20vcmlnaHQgd2lsbCBiZSBzZXQgd2hpY2ggb3ZlcnJpZGVzIHRoZSBub3JtYWxcbiAgICAvLyBmbGV4IGxheW91dC5cbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgLy8gV2UgdXNlIHRoZSBgY29sdW1uYCBkaXJlY3Rpb24gaGVyZSB0byBhdm9pZCBzb21lIGZsZXhib3ggaXNzdWVzIGluIEVkZ2VcbiAgICAvLyB3aGVuIHVzaW5nIHRoZSBcImdyb3cgYWZ0ZXIgb3BlblwiIG9wdGlvbnMuXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC8vIEFkZCBzb21lIGRpbWVuc2lvbnMgc28gdGhlIGVsZW1lbnQgaGFzIGFuIGBpbm5lclRleHRgIHdoaWNoIHNvbWUgcGVvcGxlIGRlcGVuZCBvbiBpbiB0ZXN0cy5cbiAgICBtaW4td2lkdGg6IDFweDtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gIH1cblxuICAvLyBVc2VkIHdoZW4gZGlzYWJsaW5nIGdsb2JhbCBzY3JvbGxpbmcuXG4gIC5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG5cbiAgICAvLyBOZWNlc3NhcnkgZm9yIHRoZSBjb250ZW50IG5vdCB0byBsb3NlIGl0cyB3aWR0aC4gTm90ZSB0aGF0IHdlJ3JlIHVzaW5nIDEwMCUsIGluc3RlYWQgb2ZcbiAgICAvLyAxMDB2dywgYmVjYXVzZSAxMDB2dyBpbmNsdWRlcyB0aGUgd2lkdGggcGx1cyB0aGUgc2Nyb2xsYmFyLCB3aGVyZWFzIDEwMCUgaXMgdGhlIHdpZHRoXG4gICAgLy8gdGhhdCB0aGUgZWxlbWVudCBoYWQgYmVmb3JlIHdlIG1hZGUgaXQgYGZpeGVkYC5cbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC8vIE5vdGU6IHRoaXMgd2lsbCBhbHdheXMgYWRkIGEgc2Nyb2xsYmFyIHRvIHdoYXRldmVyIGVsZW1lbnQgaXQgaXMgb24sIHdoaWNoIGNhblxuICAgIC8vIHBvdGVudGlhbGx5IHJlc3VsdCBpbiBkb3VibGUgc2Nyb2xsYmFycy4gSXQgc2hvdWxkbid0IGJlIGFuIGlzc3VlLCBiZWNhdXNlIHdlIHdvbid0XG4gICAgLy8gYmxvY2sgc2Nyb2xsaW5nIG9uIGEgcGFnZSB0aGF0IGRvZXNuJ3QgaGF2ZSBhIHNjcm9sbGJhciBpbiB0aGUgZmlyc3QgcGxhY2UuXG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICB9XG59XG5cbkBtaXhpbiBjZGstYTExeSB7XG4gIC5jZGstdmlzdWFsbHktaGlkZGVuIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuXG4gICAgLy8gQXZvaWQgYnJvd3NlcnMgcmVuZGVyaW5nIHRoZSBmb2N1cyByaW5nIGluIHNvbWUgY2FzZXMuXG4gICAgb3V0bGluZTogMDtcblxuICAgIC8vIEF2b2lkIHNvbWUgY2FzZXMgd2hlcmUgdGhlIGJyb3dzZXIgd2lsbCBzdGlsbCByZW5kZXIgdGhlIG5hdGl2ZSBjb250cm9scyAoc2VlICM5MDQ5KS5cbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICB9XG59XG5cbi8vIEFwcGxpZXMgc3R5bGVzIGZvciB1c2VycyBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuIE5vdGUgdGhhdCB0aGlzIG9ubHkgYXBwbGllc1xuLy8gdG8gTWljcm9zb2Z0IGJyb3dzZXJzLiBDaHJvbWUgY2FuIGJlIGluY2x1ZGVkIGJ5IGNoZWNraW5nIGZvciB0aGUgYGh0bWxbaGNdYFxuLy8gYXR0cmlidXRlLCBob3dldmVyIENocm9tZSBoYW5kbGVzIGhpZ2ggY29udHJhc3QgZGlmZmVyZW50bHkuXG4vL1xuLy8gQHBhcmFtIHRhcmdldCBXaGljaCBraW5kIG9mIGhpZ2ggY29udHJhc3Qgc2V0dGluZyB0byB0YXJnZXQuIERlZmF1bHRzIHRvIGBhY3RpdmVgLCBjYW4gYmVcbi8vICAgIGB3aGl0ZS1vbi1ibGFja2Agb3IgYGJsYWNrLW9uLXdoaXRlYC5cbkBtaXhpbiBjZGstaGlnaC1jb250cmFzdCgkdGFyZ2V0OiBhY3RpdmUpIHtcbiAgQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogJHRhcmdldCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIENvcmUgc3R5bGVzIHRoYXQgZW5hYmxlIG1vbml0b3JpbmcgYXV0b2ZpbGwgc3RhdGUgb2YgdGV4dCBmaWVsZHMuXG5AbWl4aW4gY2RrLXRleHQtZmllbGQge1xuICAvLyBLZXlmcmFtZXMgdGhhdCBhcHBseSBubyBzdHlsZXMsIGJ1dCBhbGxvdyB1cyB0byBtb25pdG9yIHdoZW4gYW4gdGV4dCBmaWVsZCBiZWNvbWVzIGF1dG9maWxsZWRcbiAgLy8gYnkgd2F0Y2hpbmcgZm9yIHRoZSBhbmltYXRpb24gZXZlbnRzIHRoYXQgYXJlIGZpcmVkIHdoZW4gdGhleSBzdGFydC4gTm90ZTogdGhlIC8qISovIGNvbW1lbnQgaXNcbiAgLy8gbmVlZGVkIHRvIHByZXZlbnQgTGliU2FzcyBmcm9tIHN0cmlwcGluZyB0aGUga2V5ZnJhbWVzIG91dC5cbiAgLy8gQmFzZWQgb246IGh0dHBzOi8vbWVkaXVtLmNvbS9AYnJ1bm4vZGV0ZWN0aW5nLWF1dG9maWxsZWQtZmllbGRzLWluLWphdmFzY3JpcHQtYWVkNTk4ZDI1ZGE3XG4gIEBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgey8qISovfVxuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCB7LyohKi99XG5cbiAgLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxsIHtcbiAgICBhbmltYXRpb24tbmFtZTogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQ7XG4gIH1cblxuICAuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCkge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQ7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIHJlc2l6ZSBoYW5kbGUgb24gYXV0b3NpemluZyB0ZXh0YXJlYXMsIGJlY2F1c2Ugd2hhdGV2ZXIgaGVpZ2h0XG4gIC8vIHRoZSB1c2VyIHJlc2l6ZWQgdG8gd2lsbCBiZSBvdmVyd3JpdHRlbiBvbmNlIHRoZXkgc3RhcnQgdHlwaW5nIGFnYWluLlxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUge1xuICAgIHJlc2l6ZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRoaXMgY2xhc3MgaXMgdGVtcG9yYXJpbHkgYXBwbGllZCB0byB0aGUgdGV4dGFyZWEgd2hlbiBpdCBpcyBiZWluZyBtZWFzdXJlZC4gSXQgaXMgaW1tZWRpYXRlbHlcbiAgLy8gcmVtb3ZlZCB3aGVuIG1lYXN1cmluZyBpcyBjb21wbGV0ZS4gV2UgdXNlIGAhaW1wb3J0YW50YCBydWxlcyBoZXJlIHRvIG1ha2Ugc3VyZSB1c2VyLXNwZWNpZmllZFxuICAvLyBydWxlcyBkbyBub3QgaW50ZXJmZXJlIHdpdGggdGhlIG1lYXN1cmVtZW50LlxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nIHtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgLy8gSGF2aW5nIDJweCB0b3AgYW5kIGJvdHRvbSBwYWRkaW5nIHNlZW1zIHRvIGZpeCBhIGJ1ZyB3aGVyZSBDaHJvbWUgZ2V0cyBhbiBpbmNvcnJlY3RcbiAgICAvLyBtZWFzdXJlbWVudC4gV2UganVzdCBoYXZlIHRvIGFjY291bnQgZm9yIGl0IGxhdGVyIGFuZCBzdWJ0cmFjdCBpdCBvZmYgdGhlIGZpbmFsIHJlc3VsdC5cbiAgICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8gVXNlZCB0byBnZW5lcmF0ZSBVSURzIGZvciBrZXlmcmFtZXMgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQgZmllbGQgYXV0b2ZpbGwgc3R5bGVzLlxuJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50OiAwO1xuXG4vLyBNaXhpbiB1c2VkIHRvIGFwcGx5IGN1c3RvbSBiYWNrZ3JvdW5kIGFuZCBmb3JlZ3JvdW5kIGNvbG9ycyB0byBhbiBhdXRvZmlsbGVkIHRleHQgZmllbGQuXG4vLyBCYXNlZCBvbjogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjc4MTU0OS9cbi8vIHJlbW92aW5nLWlucHV0LWJhY2tncm91bmQtY29sb3VyLWZvci1jaHJvbWUtYXV0b2NvbXBsZXRlI2Fuc3dlci0zNzQzMjI2MFxuQG1peGluIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yKCRiYWNrZ3JvdW5kLCAkZm9yZWdyb3VuZDonJykge1xuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLSN7JGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50fSB7XG4gICAgdG8ge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICBAaWYgJGZvcmVncm91bmQgIT0gJycgeyBjb2xvcjogJGZvcmVncm91bmQ7IH1cbiAgICB9XG4gIH1cblxuICAmOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci0jeyRjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudH07XG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgfVxuXG4gICYuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCxcbiAgICAgICAgICAgICAgICAgICAgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItI3skY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnR9O1xuICB9XG5cbiAgJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50OlxuICAgICAgJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50ICsgMSAhZ2xvYmFsO1xufVxuXG5cbi8vIENvcmUgc3R5bGVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gYXBwbHkgbWF0ZXJpYWwgZGVzaWduIHRyZWF0bWVudHMgdG8gYW55IGVsZW1lbnQuXG4vLyBNZWRpYSBxdWVyaWVzXG4vLyBUT0RPKGpvc2VwaHBlcnJvdHQpOiBDaGFuZ2UgJG1hdC14c21hbGwgYW5kICRtYXQtc21hbGwgdXNhZ2VzIHRvIHJlbHkgb24gQnJlYWtwb2ludE9ic2VydmVyLFxuJG1hdC14c21hbGw6ICdtYXgtd2lkdGg6IDU5OXB4JztcbiRtYXQtc21hbGw6ICdtYXgtd2lkdGg6IDk1OXB4JztcblxuLy8gVE9ETzogUmV2aXNpdCBhbGwgei1pbmRpY2VzIGJlZm9yZSBiZXRhXG4vLyB6LWluZGV4IG1hc3RlciBsaXN0XG5cbiR6LWluZGV4LWZhYjogMjAgIWRlZmF1bHQ7XG4kei1pbmRleC1kcmF3ZXI6IDEwMCAhZGVmYXVsdDtcblxuLy8gR2xvYmFsIGNvbnN0YW50c1xuJHBpOiAzLjE0MTU5MjY1O1xuXG4vLyBQYWRkaW5nIGJldHdlZW4gaW5wdXQgdG9nZ2xlcyBhbmQgdGhlaXIgbGFiZWxzXG4kbWF0LXRvZ2dsZS1wYWRkaW5nOiA4cHggIWRlZmF1bHQ7XG4vLyBXaWR0aCBhbmQgaGVpZ2h0IG9mIGlucHV0IHRvZ2dsZXNcbiRtYXQtdG9nZ2xlLXNpemU6IDIwcHggIWRlZmF1bHQ7XG5cbi8vIEVhc2luZyBDdXJ2ZXNcbi8vIFRPRE8oamVsYm91cm4pOiBhbGwgb2YgdGhlc2UgbmVlZCB0byBiZSByZXZpc2l0ZWRcblxuLy8gVGhlIGRlZmF1bHQgYW5pbWF0aW9uIGN1cnZlcyB1c2VkIGJ5IG1hdGVyaWFsIGRlc2lnbi5cbiRtYXQtbGluZWFyLW91dC1zbG93LWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMC4xKSAhZGVmYXVsdDtcbiRtYXQtZmFzdC1vdXQtc2xvdy1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWRlZmF1bHQ7XG4kbWF0LWZhc3Qtb3V0LWxpbmVhci1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpICFkZWZhdWx0O1xuXG4kZWFzZS1pbi1vdXQtY3VydmUtZnVuY3Rpb246IGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKSAhZGVmYXVsdDtcblxuJHN3aWZ0LWVhc2Utb3V0LWR1cmF0aW9uOiA0MDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLW91dC10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpICFkZWZhdWx0O1xuJHN3aWZ0LWVhc2Utb3V0OiBhbGwgJHN3aWZ0LWVhc2Utb3V0LWR1cmF0aW9uICRzd2lmdC1lYXNlLW91dC10aW1pbmctZnVuY3Rpb24gIWRlZmF1bHQ7XG5cbiRzd2lmdC1lYXNlLWluLWR1cmF0aW9uOiAzMDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAsIDAuNTUsIDAuMikgIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1pbjogYWxsICRzd2lmdC1lYXNlLWluLWR1cmF0aW9uICRzd2lmdC1lYXNlLWluLXRpbWluZy1mdW5jdGlvbiAhZGVmYXVsdDtcblxuJHN3aWZ0LWVhc2UtaW4tb3V0LWR1cmF0aW9uOiA1MDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLW91dC10aW1pbmctZnVuY3Rpb246ICRlYXNlLWluLW91dC1jdXJ2ZS1mdW5jdGlvbiAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLW91dDogYWxsICRzd2lmdC1lYXNlLWluLW91dC1kdXJhdGlvbiAkc3dpZnQtZWFzZS1pbi1vdXQtdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuXG4kc3dpZnQtbGluZWFyLWR1cmF0aW9uOiA4MG1zICFkZWZhdWx0O1xuJHN3aWZ0LWxpbmVhci10aW1pbmctZnVuY3Rpb246IGxpbmVhciAhZGVmYXVsdDtcbiRzd2lmdC1saW5lYXI6IGFsbCAkc3dpZnQtbGluZWFyLWR1cmF0aW9uICRzd2lmdC1saW5lYXItdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuXG5cblxuLy8gQSBjb2xsZWN0aW9uIG9mIG1peGlucyBhbmQgQ1NTIGNsYXNzZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBhcHBseSBlbGV2YXRpb24gdG8gYSBtYXRlcmlhbFxuLy8gZWxlbWVudC5cbi8vIFNlZTogaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vZW52aXJvbm1lbnQvZWxldmF0aW9uLmh0bWxcbi8vIEV4YW1wbGVzOlxuLy9cbi8vXG4vLyAubWF0LWZvbyB7XG4vLyAgIEBpbmNsdWRlICRtYXQtZWxldmF0aW9uKDIpO1xuLy9cbi8vICAgJjphY3RpdmUge1xuLy8gICAgIEBpbmNsdWRlICRtYXQtZWxldmF0aW9uKDgpO1xuLy8gICB9XG4vLyB9XG4vL1xuLy8gPGRpdiBpZD1cImV4dGVybmFsLWNhcmRcIiBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejJcIj48cD5Tb21lIGNvbnRlbnQ8L3A+PC9kaXY+XG4vL1xuLy8gRm9yIGFuIGV4cGxhbmF0aW9uIG9mIHRoZSBkZXNpZ24gYmVoaW5kIGhvdyBlbGV2YXRpb24gaXMgaW1wbGVtZW50ZWQsIHNlZSB0aGUgZGVzaWduIGRvYyBhdFxuLy8gaHR0cHM6Ly9nb28uZ2wvS3EwazlaLlxuXG4vLyBDb2xvcnMgZm9yIHVtYnJhLCBwZW51bWJyYSwgYW5kIGFtYmllbnQgc2hhZG93cy4gQXMgZGVzY3JpYmVkIGluIHRoZSBkZXNpZ24gZG9jLCBlYWNoIGVsZXZhdGlvblxuLy8gbGV2ZWwgaXMgY3JlYXRlZCB1c2luZyBhIHNldCBvZiAzIHNoYWRvdyB2YWx1ZXMsIG9uZSBmb3IgdW1icmEgKHRoZSBzaGFkb3cgcmVwcmVzZW50aW5nIHRoZVxuLy8gc3BhY2UgY29tcGxldGVseSBvYnNjdXJlZCBieSBhbiBvYmplY3QgcmVsYXRpdmUgdG8gaXRzIGxpZ2h0IHNvdXJjZSksIG9uZSBmb3IgcGVudW1icmEgKHRoZVxuLy8gc3BhY2UgcGFydGlhbGx5IG9ic2N1cmVkIGJ5IGFuIG9iamVjdCksIGFuZCBvbmUgZm9yIGFtYmllbnQgKHRoZSBzcGFjZSB3aGljaCBjb250YWlucyB0aGUgb2JqZWN0XG4vLyBpdHNlbGYpLiBGb3IgYSBmdXJ0aGVyIGV4cGxhbmF0aW9uIG9mIHRoZXNlIHRlcm1zIGFuZCB0aGVpciBtZWFuaW5ncywgc2VlXG4vLyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9VbWJyYSxfcGVudW1icmFfYW5kX2FudHVtYnJhLlxuXG4vLyBNYXBzIGZvciB0aGUgZGlmZmVyZW50IHNoYWRvdyBzZXRzIGFuZCB0aGVpciB2YWx1ZXMgd2l0aGluIGVhY2ggei1zcGFjZS4gVGhlc2UgdmFsdWVzIHdlcmVcbi8vIGNyZWF0ZWQgYnkgdGFraW5nIGEgZmV3IHJlZmVyZW5jZSBzaGFkb3cgc2V0cyBjcmVhdGVkIGJ5IEdvb2dsZSdzIERlc2lnbmVycyBhbmQgaW50ZXJwb2xhdGluZ1xuLy8gYWxsIG9mIHRoZSB2YWx1ZXMgYmV0d2VlbiB0aGVtLlxuXG5AZnVuY3Rpb24gX2dldC11bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSkge1xuICAkc2hhZG93LWNvbG9yOiBpZih0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IsIHJnYmEoJGNvbG9yLCAkb3BhY2l0eSAqIDAuMiksICRjb2xvcik7XG5cbiAgQHJldHVybiAoXG4gICAgMDogJzBweCAwcHggMHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOiAnMHB4IDJweCAxcHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyOiAnMHB4IDNweCAxcHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAzOiAnMHB4IDNweCAzcHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA0OiAnMHB4IDJweCA0cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA1OiAnMHB4IDNweCA1cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA2OiAnMHB4IDNweCA1cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA3OiAnMHB4IDRweCA1cHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA4OiAnMHB4IDVweCA1cHggLTNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA5OiAnMHB4IDVweCA2cHggLTNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMDogJzBweCA2cHggNnB4IC0zcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTE6ICcwcHggNnB4IDdweCAtNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEyOiAnMHB4IDdweCA4cHggLTRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMzogJzBweCA3cHggOHB4IC00cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTQ6ICcwcHggN3B4IDlweCAtNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE1OiAnMHB4IDhweCA5cHggLTVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNjogJzBweCA4cHggMTBweCAtNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE3OiAnMHB4IDhweCAxMXB4IC01cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTg6ICcwcHggOXB4IDExcHggLTVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOTogJzBweCA5cHggMTJweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIwOiAnMHB4IDEwcHggMTNweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIxOiAnMHB4IDEwcHggMTNweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIyOiAnMHB4IDEwcHggMTRweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIzOiAnMHB4IDExcHggMTRweCAtN3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI0OiAnMHB4IDExcHggMTVweCAtN3B4ICN7JHNoYWRvdy1jb2xvcn0nXG4gICk7XG59XG5cbkBmdW5jdGlvbiBfZ2V0LXBlbnVtYnJhLW1hcCgkY29sb3IsICRvcGFjaXR5KSB7XG4gICRzaGFkb3ctY29sb3I6IGlmKHR5cGUtb2YoJGNvbG9yKSA9PSBjb2xvciwgcmdiYSgkY29sb3IsICRvcGFjaXR5ICogMC4xNCksICRjb2xvcik7XG5cbiAgQHJldHVybiAoXG4gICAgMDogJzBweCAwcHggMHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOiAnMHB4IDFweCAxcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI6ICcwcHggMnB4IDJweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMzogJzBweCAzcHggNHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA0OiAnMHB4IDRweCA1cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDU6ICcwcHggNXB4IDhweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNjogJzBweCA2cHggMTBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNzogJzBweCA3cHggMTBweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgODogJzBweCA4cHggMTBweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgOTogJzBweCA5cHggMTJweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTA6ICcwcHggMTBweCAxNHB4IDFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMTogJzBweCAxMXB4IDE1cHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEyOiAnMHB4IDEycHggMTdweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTM6ICcwcHggMTNweCAxOXB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNDogJzBweCAxNHB4IDIxcHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE1OiAnMHB4IDE1cHggMjJweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTY6ICcwcHggMTZweCAyNHB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNzogJzBweCAxN3B4IDI2cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE4OiAnMHB4IDE4cHggMjhweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTk6ICcwcHggMTlweCAyOXB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMDogJzBweCAyMHB4IDMxcHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIxOiAnMHB4IDIxcHggMzNweCAzcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjI6ICcwcHggMjJweCAzNXB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMzogJzBweCAyM3B4IDM2cHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI0OiAnMHB4IDI0cHggMzhweCAzcHggI3skc2hhZG93LWNvbG9yfSdcbiAgKTtcbn1cblxuQGZ1bmN0aW9uIF9nZXQtYW1iaWVudC1tYXAoJGNvbG9yLCAkb3BhY2l0eSkge1xuICAkc2hhZG93LWNvbG9yOiBpZih0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IsIHJnYmEoJGNvbG9yLCAkb3BhY2l0eSAqIDAuMTIpLCAkY29sb3IpO1xuXG4gIEByZXR1cm4gKFxuICAgIDA6ICcwcHggMHB4IDBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTogJzBweCAxcHggM3B4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyOiAnMHB4IDFweCA1cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDM6ICcwcHggMXB4IDhweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNDogJzBweCAxcHggMTBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNTogJzBweCAxcHggMTRweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNjogJzBweCAxcHggMThweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNzogJzBweCAycHggMTZweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgODogJzBweCAzcHggMTRweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgOTogJzBweCAzcHggMTZweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTA6ICcwcHggNHB4IDE4cHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDExOiAnMHB4IDRweCAyMHB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMjogJzBweCA1cHggMjJweCA0cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTM6ICcwcHggNXB4IDI0cHggNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE0OiAnMHB4IDVweCAyNnB4IDRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNTogJzBweCA2cHggMjhweCA1cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTY6ICcwcHggNnB4IDMwcHggNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE3OiAnMHB4IDZweCAzMnB4IDVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxODogJzBweCA3cHggMzRweCA2cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTk6ICcwcHggN3B4IDM2cHggNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIwOiAnMHB4IDhweCAzOHB4IDdweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMTogJzBweCA4cHggNDBweCA3cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjI6ICcwcHggOHB4IDQycHggN3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIzOiAnMHB4IDlweCA0NHB4IDhweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyNDogJzBweCA5cHggNDZweCA4cHggI3skc2hhZG93LWNvbG9yfSdcbiAgKTtcbn1cblxuLy8gVGhlIGRlZmF1bHQgZHVyYXRpb24gdmFsdWUgZm9yIGVsZXZhdGlvbiB0cmFuc2l0aW9ucy5cbiRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb246IDI4MG1zICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBlYXNpbmcgdmFsdWUgZm9yIGVsZXZhdGlvbiB0cmFuc2l0aW9ucy5cbiRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkbWF0LWZhc3Qtb3V0LXNsb3ctaW4tdGltaW5nLWZ1bmN0aW9uO1xuXG4vLyBUaGUgZGVmYXVsdCBjb2xvciBmb3IgZWxldmF0aW9uIHNoYWRvd3MuXG4kbWF0LWVsZXZhdGlvbi1jb2xvcjogYmxhY2sgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IG9wYWNpdHkgc2NhbGluZyB2YWx1ZSBmb3IgZWxldmF0aW9uIHNoYWRvd3MuXG4kbWF0LWVsZXZhdGlvbi1vcGFjaXR5OiAxICFkZWZhdWx0O1xuXG4vLyBQcmVmaXggZm9yIGVsZXZhdGlvbi1yZWxhdGVkIHNlbGVjdG9ycy5cbiRfbWF0LWVsZXZhdGlvbi1wcmVmaXg6ICdtYXQtZWxldmF0aW9uLXonO1xuXG4vLyBBcHBsaWVzIHRoZSBjb3JyZWN0IGNzcyBydWxlcyB0byBhbiBlbGVtZW50IHRvIGdpdmUgaXQgdGhlIGVsZXZhdGlvbiBzcGVjaWZpZWQgYnkgJHpWYWx1ZS5cbi8vIFRoZSAkelZhbHVlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyNC5cbkBtaXhpbiBtYXQtZWxldmF0aW9uKCR6VmFsdWUsICRjb2xvcjogJG1hdC1lbGV2YXRpb24tY29sb3IsICRvcGFjaXR5OiAkbWF0LWVsZXZhdGlvbi1vcGFjaXR5KSB7XG4gIEBpZiB0eXBlLW9mKCR6VmFsdWUpICE9IG51bWJlciBvciBub3QgdW5pdGxlc3MoJHpWYWx1ZSkge1xuICAgIEBlcnJvciAnJHpWYWx1ZSBtdXN0IGJlIGEgdW5pdGxlc3MgbnVtYmVyJztcbiAgfVxuICBAaWYgJHpWYWx1ZSA8IDAgb3IgJHpWYWx1ZSA+IDI0IHtcbiAgICBAZXJyb3IgJyR6VmFsdWUgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDI0JztcbiAgfVxuXG4gIGJveC1zaGFkb3c6ICN7bWFwLWdldChfZ2V0LXVtYnJhLW1hcCgkY29sb3IsICRvcGFjaXR5KSwgJHpWYWx1ZSl9LFxuICAgICAgICAgICAgICAje21hcC1nZXQoX2dldC1wZW51bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSksICR6VmFsdWUpfSxcbiAgICAgICAgICAgICAgI3ttYXAtZ2V0KF9nZXQtYW1iaWVudC1tYXAoJGNvbG9yLCAkb3BhY2l0eSksICR6VmFsdWUpfTtcbn1cblxuQG1peGluIF9tYXQtdGhlbWUtZWxldmF0aW9uKCR6VmFsdWUsICR0aGVtZSwgJG9wYWNpdHk6ICRtYXQtZWxldmF0aW9uLW9wYWNpdHkpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGVsZXZhdGlvbi1jb2xvcjogbWFwLWdldCgkZm9yZWdyb3VuZCwgZWxldmF0aW9uKTtcbiAgJGVsZXZhdGlvbi1jb2xvci1vci1kZWZhdWx0OiBpZigkZWxldmF0aW9uLWNvbG9yID09IG51bGwsICRtYXQtZWxldmF0aW9uLWNvbG9yLCAkZWxldmF0aW9uLWNvbG9yKTtcblxuICBAaW5jbHVkZSBtYXQtZWxldmF0aW9uKCR6VmFsdWUsICRlbGV2YXRpb24tY29sb3Itb3ItZGVmYXVsdCwgJG9wYWNpdHkpO1xufVxuXG4vLyBBcHBsaWVzIHRoZSBlbGV2YXRpb24gdG8gYW4gZWxlbWVudCBpbiBhIG1hbm5lciB0aGF0IGFsbG93c1xuLy8gY29uc3VtZXJzIHRvIG92ZXJyaWRlIGl0IHZpYSB0aGUgTWF0ZXJpYWwgZWxldmF0aW9uIGNsYXNzZXMuXG5AbWl4aW4gbWF0LW92ZXJyaWRhYmxlLWVsZXZhdGlvbihcbiAgICAkelZhbHVlLFxuICAgICRjb2xvcjogJG1hdC1lbGV2YXRpb24tY29sb3IsXG4gICAgJG9wYWNpdHk6ICRtYXQtZWxldmF0aW9uLW9wYWNpdHkpIHtcbiAgJjpub3QoW2NsYXNzKj0nI3skX21hdC1lbGV2YXRpb24tcHJlZml4fSddKSB7XG4gICAgQGluY2x1ZGUgbWF0LWVsZXZhdGlvbigkelZhbHVlLCAkY29sb3IsICRvcGFjaXR5KTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oJHpWYWx1ZSwgJHRoZW1lLCAkb3BhY2l0eTogJG1hdC1lbGV2YXRpb24tb3BhY2l0eSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkZWxldmF0aW9uLWNvbG9yOiBtYXAtZ2V0KCRmb3JlZ3JvdW5kLCBlbGV2YXRpb24pO1xuICAkZWxldmF0aW9uLWNvbG9yLW9yLWRlZmF1bHQ6IGlmKCRlbGV2YXRpb24tY29sb3IgPT0gbnVsbCwgJG1hdC1lbGV2YXRpb24tY29sb3IsICRlbGV2YXRpb24tY29sb3IpO1xuXG4gIEBpbmNsdWRlIG1hdC1vdmVycmlkYWJsZS1lbGV2YXRpb24oJHpWYWx1ZSwgJGVsZXZhdGlvbi1jb2xvci1vci1kZWZhdWx0LCAkb3BhY2l0eSk7XG59XG5cbi8vIFJldHVybnMgYSBzdHJpbmcgdGhhdCBjYW4gYmUgdXNlZCBhcyB0aGUgdmFsdWUgZm9yIGEgdHJhbnNpdGlvbiBwcm9wZXJ0eSBmb3IgZWxldmF0aW9uLlxuLy8gQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIGRpcmVjdGx5IGlzIHVzZWZ1bCBpbiBzaXR1YXRpb25zIHdoZXJlIGEgY29tcG9uZW50IG5lZWRzIHRvIHRyYW5zaXRpb25cbi8vIG1vcmUgdGhhbiBvbmUgcHJvcGVydHkuXG4vL1xuLy8gLmZvbyB7XG4vLyAgIHRyYW5zaXRpb246IG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1wcm9wZXJ0eS12YWx1ZSgpLCBvcGFjaXR5IDEwMG1zIGVhc2U7XG4vLyB9XG5AZnVuY3Rpb24gbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXByb3BlcnR5LXZhbHVlKFxuICAgICRkdXJhdGlvbjogJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbixcbiAgICAkZWFzaW5nOiAkbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbikge1xuICBAcmV0dXJuIGJveC1zaGFkb3cgI3skZHVyYXRpb259ICN7JGVhc2luZ307XG59XG5cbi8vIEFwcGxpZXMgdGhlIGNvcnJlY3QgY3NzIHJ1bGVzIG5lZWRlZCB0byBoYXZlIGFuIGVsZW1lbnQgdHJhbnNpdGlvbiBiZXR3ZWVuIGVsZXZhdGlvbnMuXG4vLyBUaGlzIG1peGluIHNob3VsZCBiZSBhcHBsaWVkIHRvIGVsZW1lbnRzIHdob3NlIGVsZXZhdGlvbiB2YWx1ZXMgd2lsbCBjaGFuZ2UgZGVwZW5kaW5nIG9uIHRoZWlyXG4vLyBjb250ZXh0IChlLmcuIHdoZW4gYWN0aXZlIG9yIGRpc2FibGVkKS5cbi8vXG4vLyBOT1RFKHRyYXZpc2thdWZtYW4pOiBCb3RoIHRoaXMgbWl4aW4gYW5kIHRoZSBhYm92ZSBmdW5jdGlvbiB1c2UgZGVmYXVsdCBwYXJhbWV0ZXJzIHNvIHRoZXkgY2FuXG4vLyBiZSB1c2VkIGluIHRoZSBzYW1lIHdheSBieSBjbGllbnRzLlxuQG1peGluIG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbihcbiAgICAkZHVyYXRpb246ICRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24sXG4gICAgJGVhc2luZzogJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pIHtcbiAgdHJhbnNpdGlvbjogbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXByb3BlcnR5LXZhbHVlKCRkdXJhdGlvbiwgJGVhc2luZyk7XG59XG5cbi8vIENvbG9yIHBhbGV0dGVzIGZyb20gdGhlIE1hdGVyaWFsIERlc2lnbiBzcGVjLlxuLy8gU2VlIGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2NvbG9yL1xuLy9cbi8vIENvbnRyYXN0IGNvbG9ycyBhcmUgaGFyZC1jb2RlZCBiZWNhdXNlIGl0IGlzIHRvbyBkaWZmaWN1bHQgKHByb2JhYmx5IGltcG9zc2libGUpIHRvXG4vLyBjYWxjdWxhdGUgdGhlbS4gVGhlc2UgY29udHJhc3QgY29sb3JzIGFyZSBwdWxsZWQgZnJvbSB0aGUgcHVibGljIE1hdGVyaWFsIERlc2lnbiBzcGVjIHN3YXRjaGVzLlxuLy8gV2hpbGUgdGhlIGNvbnRyYXN0IGNvbG9ycyBpbiB0aGUgc3BlYyBhcmUgbm90IHByZXNjcmlwdGl2ZSwgd2UgdXNlIHRoZW0gZm9yIGNvbnZlbmllbmNlLlxuXG5cbi8vIEBkZXByZWNhdGVkIHJlbmFtZWQgdG8gJGRhcmstcHJpbWFyeS10ZXh0LlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJGJsYWNrLTg3LW9wYWNpdHk6IHJnYmEoYmxhY2ssIDAuODcpO1xuLy8gQGRlcHJlY2F0ZWQgcmVuYW1lZCB0byAkbGlnaHQtcHJpbWFyeS10ZXh0LlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJHdoaXRlLTg3LW9wYWNpdHk6IHJnYmEod2hpdGUsIDAuODcpO1xuLy8gQGRlcHJlY2F0ZWQgdXNlICRkYXJrLVtzZWNvbmRhcnktdGV4dCxkaXNhYmxlZC10ZXh0LGRpdmlkZXJzLGZvY3VzZWRdIGluc3RlYWQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kYmxhY2stMTItb3BhY2l0eTogcmdiYShibGFjaywgMC4xMik7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGxpZ2h0LVtzZWNvbmRhcnktdGV4dCxkaXNhYmxlZC10ZXh0LGRpdmlkZXJzLGZvY3VzZWRdIGluc3RlYWQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kd2hpdGUtMTItb3BhY2l0eTogcmdiYSh3aGl0ZSwgMC4xMik7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGRhcmstW3NlY29uZGFyeS10ZXh0LGRpc2FibGVkLXRleHQsZGl2aWRlcnMsZm9jdXNlZF0gaW5zdGVhZC5cbi8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjBcbiRibGFjay02LW9wYWNpdHk6IHJnYmEoYmxhY2ssIDAuMDYpO1xuLy8gQGRlcHJlY2F0ZWQgdXNlICRsaWdodC1bc2Vjb25kYXJ5LXRleHQsZGlzYWJsZWQtdGV4dCxkaXZpZGVycyxmb2N1c2VkXSBpbnN0ZWFkLlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJHdoaXRlLTYtb3BhY2l0eTogcmdiYSh3aGl0ZSwgMC4wNik7XG5cbiRkYXJrLXByaW1hcnktdGV4dDogcmdiYShibGFjaywgMC44Nyk7XG4kZGFyay1zZWNvbmRhcnktdGV4dDogcmdiYShibGFjaywgMC41NCk7XG4kZGFyay1kaXNhYmxlZC10ZXh0OiByZ2JhKGJsYWNrLCAwLjM4KTtcbiRkYXJrLWRpdmlkZXJzOiByZ2JhKGJsYWNrLCAwLjEyKTtcbiRkYXJrLWZvY3VzZWQ6IHJnYmEoYmxhY2ssIDAuMTIpO1xuJGxpZ2h0LXByaW1hcnktdGV4dDogd2hpdGU7XG4kbGlnaHQtc2Vjb25kYXJ5LXRleHQ6IHJnYmEod2hpdGUsIDAuNyk7XG4kbGlnaHQtZGlzYWJsZWQtdGV4dDogcmdiYSh3aGl0ZSwgMC41KTtcbiRsaWdodC1kaXZpZGVyczogcmdiYSh3aGl0ZSwgMC4xMik7XG4kbGlnaHQtZm9jdXNlZDogcmdiYSh3aGl0ZSwgMC4xMik7XG5cbiRtYXQtcmVkOiAoXG4gIDUwOiAjZmZlYmVlLFxuICAxMDA6ICNmZmNkZDIsXG4gIDIwMDogI2VmOWE5YSxcbiAgMzAwOiAjZTU3MzczLFxuICA0MDA6ICNlZjUzNTAsXG4gIDUwMDogI2Y0NDMzNixcbiAgNjAwOiAjZTUzOTM1LFxuICA3MDA6ICNkMzJmMmYsXG4gIDgwMDogI2M2MjgyOCxcbiAgOTAwOiAjYjcxYzFjLFxuICBBMTAwOiAjZmY4YTgwLFxuICBBMjAwOiAjZmY1MjUyLFxuICBBNDAwOiAjZmYxNzQ0LFxuICBBNzAwOiAjZDUwMDAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtcGluazogKFxuICA1MDogI2ZjZTRlYyxcbiAgMTAwOiAjZjhiYmQwLFxuICAyMDA6ICNmNDhmYjEsXG4gIDMwMDogI2YwNjI5MixcbiAgNDAwOiAjZWM0MDdhLFxuICA1MDA6ICNlOTFlNjMsXG4gIDYwMDogI2Q4MWI2MCxcbiAgNzAwOiAjYzIxODViLFxuICA4MDA6ICNhZDE0NTcsXG4gIDkwMDogIzg4MGU0ZixcbiAgQTEwMDogI2ZmODBhYixcbiAgQTIwMDogI2ZmNDA4MSxcbiAgQTQwMDogI2Y1MDA1NyxcbiAgQTcwMDogI2M1MTE2MixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LXB1cnBsZTogKFxuICA1MDogI2YzZTVmNSxcbiAgMTAwOiAjZTFiZWU3LFxuICAyMDA6ICNjZTkzZDgsXG4gIDMwMDogI2JhNjhjOCxcbiAgNDAwOiAjYWI0N2JjLFxuICA1MDA6ICM5YzI3YjAsXG4gIDYwMDogIzhlMjRhYSxcbiAgNzAwOiAjN2IxZmEyLFxuICA4MDA6ICM2YTFiOWEsXG4gIDkwMDogIzRhMTQ4YyxcbiAgQTEwMDogI2VhODBmYyxcbiAgQTIwMDogI2UwNDBmYixcbiAgQTQwMDogI2Q1MDBmOSxcbiAgQTcwMDogI2FhMDBmZixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtZGVlcC1wdXJwbGU6IChcbiAgNTA6ICNlZGU3ZjYsXG4gIDEwMDogI2QxYzRlOSxcbiAgMjAwOiAjYjM5ZGRiLFxuICAzMDA6ICM5NTc1Y2QsXG4gIDQwMDogIzdlNTdjMixcbiAgNTAwOiAjNjczYWI3LFxuICA2MDA6ICM1ZTM1YjEsXG4gIDcwMDogIzUxMmRhOCxcbiAgODAwOiAjNDUyN2EwLFxuICA5MDA6ICMzMTFiOTIsXG4gIEExMDA6ICNiMzg4ZmYsXG4gIEEyMDA6ICM3YzRkZmYsXG4gIEE0MDA6ICM2NTFmZmYsXG4gIEE3MDA6ICM2MjAwZWEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWluZGlnbzogKFxuICA1MDogI2U4ZWFmNixcbiAgMTAwOiAjYzVjYWU5LFxuICAyMDA6ICM5ZmE4ZGEsXG4gIDMwMDogIzc5ODZjYixcbiAgNDAwOiAjNWM2YmMwLFxuICA1MDA6ICMzZjUxYjUsXG4gIDYwMDogIzM5NDlhYixcbiAgNzAwOiAjMzAzZjlmLFxuICA4MDA6ICMyODM1OTMsXG4gIDkwMDogIzFhMjM3ZSxcbiAgQTEwMDogIzhjOWVmZixcbiAgQTIwMDogIzUzNmRmZSxcbiAgQTQwMDogIzNkNWFmZSxcbiAgQTcwMDogIzMwNGZmZSxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtYmx1ZTogKFxuICA1MDogI2UzZjJmZCxcbiAgMTAwOiAjYmJkZWZiLFxuICAyMDA6ICM5MGNhZjksXG4gIDMwMDogIzY0YjVmNixcbiAgNDAwOiAjNDJhNWY1LFxuICA1MDA6ICMyMTk2ZjMsXG4gIDYwMDogIzFlODhlNSxcbiAgNzAwOiAjMTk3NmQyLFxuICA4MDA6ICMxNTY1YzAsXG4gIDkwMDogIzBkNDdhMSxcbiAgQTEwMDogIzgyYjFmZixcbiAgQTIwMDogIzQ0OGFmZixcbiAgQTQwMDogIzI5NzlmZixcbiAgQTcwMDogIzI5NjJmZixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWxpZ2h0LWJsdWU6IChcbiAgNTA6ICNlMWY1ZmUsXG4gIDEwMDogI2IzZTVmYyxcbiAgMjAwOiAjODFkNGZhLFxuICAzMDA6ICM0ZmMzZjcsXG4gIDQwMDogIzI5YjZmNixcbiAgNTAwOiAjMDNhOWY0LFxuICA2MDA6ICMwMzliZTUsXG4gIDcwMDogIzAyODhkMSxcbiAgODAwOiAjMDI3N2JkLFxuICA5MDA6ICMwMTU3OWIsXG4gIEExMDA6ICM4MGQ4ZmYsXG4gIEEyMDA6ICM0MGM0ZmYsXG4gIEE0MDA6ICMwMGIwZmYsXG4gIEE3MDA6ICMwMDkxZWEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtY3lhbjogKFxuICA1MDogI2UwZjdmYSxcbiAgMTAwOiAjYjJlYmYyLFxuICAyMDA6ICM4MGRlZWEsXG4gIDMwMDogIzRkZDBlMSxcbiAgNDAwOiAjMjZjNmRhLFxuICA1MDA6ICMwMGJjZDQsXG4gIDYwMDogIzAwYWNjMSxcbiAgNzAwOiAjMDA5N2E3LFxuICA4MDA6ICMwMDgzOGYsXG4gIDkwMDogIzAwNjA2NCxcbiAgQTEwMDogIzg0ZmZmZixcbiAgQTIwMDogIzE4ZmZmZixcbiAgQTQwMDogIzAwZTVmZixcbiAgQTcwMDogIzAwYjhkNCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LXRlYWw6IChcbiAgNTA6ICNlMGYyZjEsXG4gIDEwMDogI2IyZGZkYixcbiAgMjAwOiAjODBjYmM0LFxuICAzMDA6ICM0ZGI2YWMsXG4gIDQwMDogIzI2YTY5YSxcbiAgNTAwOiAjMDA5Njg4LFxuICA2MDA6ICMwMDg5N2IsXG4gIDcwMDogIzAwNzk2YixcbiAgODAwOiAjMDA2OTVjLFxuICA5MDA6ICMwMDRkNDAsXG4gIEExMDA6ICNhN2ZmZWIsXG4gIEEyMDA6ICM2NGZmZGEsXG4gIEE0MDA6ICMxZGU5YjYsXG4gIEE3MDA6ICMwMGJmYTUsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1ncmVlbjogKFxuICA1MDogI2U4ZjVlOSxcbiAgMTAwOiAjYzhlNmM5LFxuICAyMDA6ICNhNWQ2YTcsXG4gIDMwMDogIzgxYzc4NCxcbiAgNDAwOiAjNjZiYjZhLFxuICA1MDA6ICM0Y2FmNTAsXG4gIDYwMDogIzQzYTA0NyxcbiAgNzAwOiAjMzg4ZTNjLFxuICA4MDA6ICMyZTdkMzIsXG4gIDkwMDogIzFiNWUyMCxcbiAgQTEwMDogI2I5ZjZjYSxcbiAgQTIwMDogIzY5ZjBhZSxcbiAgQTQwMDogIzAwZTY3NixcbiAgQTcwMDogIzAwYzg1MyxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtbGlnaHQtZ3JlZW46IChcbiAgNTA6ICNmMWY4ZTksXG4gIDEwMDogI2RjZWRjOCxcbiAgMjAwOiAjYzVlMWE1LFxuICAzMDA6ICNhZWQ1ODEsXG4gIDQwMDogIzljY2M2NSxcbiAgNTAwOiAjOGJjMzRhLFxuICA2MDA6ICM3Y2IzNDIsXG4gIDcwMDogIzY4OWYzOCxcbiAgODAwOiAjNTU4YjJmLFxuICA5MDA6ICMzMzY5MWUsXG4gIEExMDA6ICNjY2ZmOTAsXG4gIEEyMDA6ICNiMmZmNTksXG4gIEE0MDA6ICM3NmZmMDMsXG4gIEE3MDA6ICM2NGRkMTcsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtbGltZTogKFxuICA1MDogI2Y5ZmJlNyxcbiAgMTAwOiAjZjBmNGMzLFxuICAyMDA6ICNlNmVlOWMsXG4gIDMwMDogI2RjZTc3NSxcbiAgNDAwOiAjZDRlMTU3LFxuICA1MDA6ICNjZGRjMzksXG4gIDYwMDogI2MwY2EzMyxcbiAgNzAwOiAjYWZiNDJiLFxuICA4MDA6ICM5ZTlkMjQsXG4gIDkwMDogIzgyNzcxNyxcbiAgQTEwMDogI2Y0ZmY4MSxcbiAgQTIwMDogI2VlZmY0MSxcbiAgQTQwMDogI2M2ZmYwMCxcbiAgQTcwMDogI2FlZWEwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQteWVsbG93OiAoXG4gIDUwOiAjZmZmZGU3LFxuICAxMDA6ICNmZmY5YzQsXG4gIDIwMDogI2ZmZjU5ZCxcbiAgMzAwOiAjZmZmMTc2LFxuICA0MDA6ICNmZmVlNTgsXG4gIDUwMDogI2ZmZWIzYixcbiAgNjAwOiAjZmRkODM1LFxuICA3MDA6ICNmYmMwMmQsXG4gIDgwMDogI2Y5YTgyNSxcbiAgOTAwOiAjZjU3ZjE3LFxuICBBMTAwOiAjZmZmZjhkLFxuICBBMjAwOiAjZmZmZjAwLFxuICBBNDAwOiAjZmZlYTAwLFxuICBBNzAwOiAjZmZkNjAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWFtYmVyOiAoXG4gIDUwOiAjZmZmOGUxLFxuICAxMDA6ICNmZmVjYjMsXG4gIDIwMDogI2ZmZTA4MixcbiAgMzAwOiAjZmZkNTRmLFxuICA0MDA6ICNmZmNhMjgsXG4gIDUwMDogI2ZmYzEwNyxcbiAgNjAwOiAjZmZiMzAwLFxuICA3MDA6ICNmZmEwMDAsXG4gIDgwMDogI2ZmOGYwMCxcbiAgOTAwOiAjZmY2ZjAwLFxuICBBMTAwOiAjZmZlNTdmLFxuICBBMjAwOiAjZmZkNzQwLFxuICBBNDAwOiAjZmZjNDAwLFxuICBBNzAwOiAjZmZhYjAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LW9yYW5nZTogKFxuICA1MDogI2ZmZjNlMCxcbiAgMTAwOiAjZmZlMGIyLFxuICAyMDA6ICNmZmNjODAsXG4gIDMwMDogI2ZmYjc0ZCxcbiAgNDAwOiAjZmZhNzI2LFxuICA1MDA6ICNmZjk4MDAsXG4gIDYwMDogI2ZiOGMwMCxcbiAgNzAwOiAjZjU3YzAwLFxuICA4MDA6ICNlZjZjMDAsXG4gIDkwMDogI2U2NTEwMCxcbiAgQTEwMDogI2ZmZDE4MCxcbiAgQTIwMDogI2ZmYWI0MCxcbiAgQTQwMDogI2ZmOTEwMCxcbiAgQTcwMDogI2ZmNmQwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogYmxhY2ssXG4gIClcbik7XG5cbiRtYXQtZGVlcC1vcmFuZ2U6IChcbiAgNTA6ICNmYmU5ZTcsXG4gIDEwMDogI2ZmY2NiYyxcbiAgMjAwOiAjZmZhYjkxLFxuICAzMDA6ICNmZjhhNjUsXG4gIDQwMDogI2ZmNzA0MyxcbiAgNTAwOiAjZmY1NzIyLFxuICA2MDA6ICNmNDUxMWUsXG4gIDcwMDogI2U2NGExOSxcbiAgODAwOiAjZDg0MzE1LFxuICA5MDA6ICNiZjM2MGMsXG4gIEExMDA6ICNmZjllODAsXG4gIEEyMDA6ICNmZjZlNDAsXG4gIEE0MDA6ICNmZjNkMDAsXG4gIEE3MDA6ICNkZDJjMDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWJyb3duOiAoXG4gIDUwOiAjZWZlYmU5LFxuICAxMDA6ICNkN2NjYzgsXG4gIDIwMDogI2JjYWFhNCxcbiAgMzAwOiAjYTE4ODdmLFxuICA0MDA6ICM4ZDZlNjMsXG4gIDUwMDogIzc5NTU0OCxcbiAgNjAwOiAjNmQ0YzQxLFxuICA3MDA6ICM1ZDQwMzcsXG4gIDgwMDogIzRlMzQyZSxcbiAgOTAwOiAjM2UyNzIzLFxuICBBMTAwOiAjZDdjY2M4LFxuICBBMjAwOiAjYmNhYWE0LFxuICBBNDAwOiAjOGQ2ZTYzLFxuICBBNzAwOiAjNWQ0MDM3LFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWdyZXk6IChcbiAgNTA6ICNmYWZhZmEsXG4gIDEwMDogI2Y1ZjVmNSxcbiAgMjAwOiAjZWVlZWVlLFxuICAzMDA6ICNlMGUwZTAsXG4gIDQwMDogI2JkYmRiZCxcbiAgNTAwOiAjOWU5ZTllLFxuICA2MDA6ICM3NTc1NzUsXG4gIDcwMDogIzYxNjE2MSxcbiAgODAwOiAjNDI0MjQyLFxuICA5MDA6ICMyMTIxMjEsXG4gIEExMDA6ICNmZmZmZmYsXG4gIEEyMDA6ICNlZWVlZWUsXG4gIEE0MDA6ICNiZGJkYmQsXG4gIEE3MDA6ICM2MTYxNjEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuLy8gQWxpYXMgZm9yIGFsdGVybmF0ZSBzcGVsbGluZy5cbiRtYXQtZ3JheTogJG1hdC1ncmV5O1xuXG4kbWF0LWJsdWUtZ3JleTogKFxuICA1MDogI2VjZWZmMSxcbiAgMTAwOiAjY2ZkOGRjLFxuICAyMDA6ICNiMGJlYzUsXG4gIDMwMDogIzkwYTRhZSxcbiAgNDAwOiAjNzg5MDljLFxuICA1MDA6ICM2MDdkOGIsXG4gIDYwMDogIzU0NmU3YSxcbiAgNzAwOiAjNDU1YTY0LFxuICA4MDA6ICMzNzQ3NGYsXG4gIDkwMDogIzI2MzIzOCxcbiAgQTEwMDogI2NmZDhkYyxcbiAgQTIwMDogI2IwYmVjNSxcbiAgQTQwMDogIzc4OTA5YyxcbiAgQTcwMDogIzQ1NWE2NCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4vLyBBbGlhcyBmb3IgYWx0ZXJuYXRlIHNwZWxsaW5nLlxuJG1hdC1ibHVlLWdyYXk6ICRtYXQtYmx1ZS1ncmV5O1xuXG5cbi8vIEJhY2tncm91bmQgcGFsZXR0ZSBmb3IgbGlnaHQgdGhlbWVzLlxuJG1hdC1saWdodC10aGVtZS1iYWNrZ3JvdW5kOiAoXG4gIHN0YXR1cy1iYXI6IG1hcF9nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBhcHAtYmFyOiAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgMTAwKSxcbiAgYmFja2dyb3VuZDogbWFwX2dldCgkbWF0LWdyZXksIDUwKSxcbiAgaG92ZXI6ICAgICAgcmdiYShibGFjaywgMC4wNCksIC8vIFRPRE8oa2FyYSk6IGNoZWNrIHN0eWxlIHdpdGggTWF0ZXJpYWwgRGVzaWduIFVYXG4gIGNhcmQ6ICAgICAgIHdoaXRlLFxuICBkaWFsb2c6ICAgICB3aGl0ZSxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKGJsYWNrLCAwLjEyKSxcbiAgcmFpc2VkLWJ1dHRvbjogd2hpdGUsXG4gIGZvY3VzZWQtYnV0dG9uOiAkZGFyay1mb2N1c2VkLFxuICBzZWxlY3RlZC1idXR0b246IG1hcF9nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBzZWxlY3RlZC1kaXNhYmxlZC1idXR0b246IG1hcF9nZXQoJG1hdC1ncmV5LCA0MDApLFxuICBkaXNhYmxlZC1idXR0b24tdG9nZ2xlOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMjAwKSxcbiAgdW5zZWxlY3RlZC1jaGlwOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMzAwKSxcbiAgZGlzYWJsZWQtbGlzdC1vcHRpb246IG1hcF9nZXQoJG1hdC1ncmV5LCAyMDApLFxuKTtcblxuLy8gQmFja2dyb3VuZCBwYWxldHRlIGZvciBkYXJrIHRoZW1lcy5cbiRtYXQtZGFyay10aGVtZS1iYWNrZ3JvdW5kOiAoXG4gIHN0YXR1cy1iYXI6IGJsYWNrLFxuICBhcHAtYmFyOiAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgOTAwKSxcbiAgYmFja2dyb3VuZDogIzMwMzAzMCxcbiAgaG92ZXI6ICAgICAgcmdiYSh3aGl0ZSwgMC4wNCksIC8vIFRPRE8oa2FyYSk6IGNoZWNrIHN0eWxlIHdpdGggTWF0ZXJpYWwgRGVzaWduIFVYXG4gIGNhcmQ6ICAgICAgIG1hcF9nZXQoJG1hdC1ncmV5LCA4MDApLFxuICBkaWFsb2c6ICAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKHdoaXRlLCAwLjEyKSxcbiAgcmFpc2VkLWJ1dHRvbjogbWFwLWdldCgkbWF0LWdyZXksIDgwMCksXG4gIGZvY3VzZWQtYnV0dG9uOiAkbGlnaHQtZm9jdXNlZCxcbiAgc2VsZWN0ZWQtYnV0dG9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgOTAwKSxcbiAgc2VsZWN0ZWQtZGlzYWJsZWQtYnV0dG9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uLXRvZ2dsZTogYmxhY2ssXG4gIHVuc2VsZWN0ZWQtY2hpcDogbWFwX2dldCgkbWF0LWdyZXksIDcwMCksXG4gIGRpc2FibGVkLWxpc3Qtb3B0aW9uOiBibGFjayxcbik7XG5cbi8vIEZvcmVncm91bmQgcGFsZXR0ZSBmb3IgbGlnaHQgdGhlbWVzLlxuJG1hdC1saWdodC10aGVtZS1mb3JlZ3JvdW5kOiAoXG4gIGJhc2U6ICAgICAgICAgICAgICBibGFjayxcbiAgZGl2aWRlcjogICAgICAgICAgICRkYXJrLWRpdmlkZXJzLFxuICBkaXZpZGVyczogICAgICAgICAgJGRhcmstZGl2aWRlcnMsXG4gIGRpc2FibGVkOiAgICAgICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBkaXNhYmxlZC1idXR0b246ICAgcmdiYShibGFjaywgMC4yNiksXG4gIGRpc2FibGVkLXRleHQ6ICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBlbGV2YXRpb246ICAgICAgICAgYmxhY2ssXG4gIGhpbnQtdGV4dDogICAgICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBzZWNvbmRhcnktdGV4dDogICAgJGRhcmstc2Vjb25kYXJ5LXRleHQsXG4gIGljb246ICAgICAgICAgICAgICByZ2JhKGJsYWNrLCAwLjU0KSxcbiAgaWNvbnM6ICAgICAgICAgICAgIHJnYmEoYmxhY2ssIDAuNTQpLFxuICB0ZXh0OiAgICAgICAgICAgICAgcmdiYShibGFjaywgMC44NyksXG4gIHNsaWRlci1taW46ICAgICAgICByZ2JhKGJsYWNrLCAwLjg3KSxcbiAgc2xpZGVyLW9mZjogICAgICAgIHJnYmEoYmxhY2ssIDAuMjYpLFxuICBzbGlkZXItb2ZmLWFjdGl2ZTogcmdiYShibGFjaywgMC4zOCksXG4pO1xuXG4vLyBGb3JlZ3JvdW5kIHBhbGV0dGUgZm9yIGRhcmsgdGhlbWVzLlxuJG1hdC1kYXJrLXRoZW1lLWZvcmVncm91bmQ6IChcbiAgYmFzZTogICAgICAgICAgICAgIHdoaXRlLFxuICBkaXZpZGVyOiAgICAgICAgICAgJGxpZ2h0LWRpdmlkZXJzLFxuICBkaXZpZGVyczogICAgICAgICAgJGxpZ2h0LWRpdmlkZXJzLFxuICBkaXNhYmxlZDogICAgICAgICAgJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIGRpc2FibGVkLWJ1dHRvbjogICByZ2JhKHdoaXRlLCAwLjMpLFxuICBkaXNhYmxlZC10ZXh0OiAgICAgJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIGVsZXZhdGlvbjogICAgICAgICBibGFjayxcbiAgaGludC10ZXh0OiAgICAgICAgICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBzZWNvbmRhcnktdGV4dDogICAgJGxpZ2h0LXNlY29uZGFyeS10ZXh0LFxuICBpY29uOiAgICAgICAgICAgICAgd2hpdGUsXG4gIGljb25zOiAgICAgICAgICAgICB3aGl0ZSxcbiAgdGV4dDogICAgICAgICAgICAgIHdoaXRlLFxuICBzbGlkZXItbWluOiAgICAgICAgd2hpdGUsXG4gIHNsaWRlci1vZmY6ICAgICAgICByZ2JhKHdoaXRlLCAwLjMpLFxuICBzbGlkZXItb2ZmLWFjdGl2ZTogcmdiYSh3aGl0ZSwgMC4zKSxcbik7XG5cblxuXG4vLyBGb3IgYSBnaXZlbiBodWUgaW4gYSBwYWxldHRlLCByZXR1cm4gdGhlIGNvbnRyYXN0IGNvbG9yIGZyb20gdGhlIG1hcCBvZiBjb250cmFzdCBwYWxldHRlcy5cbi8vIEBwYXJhbSAkY29sb3ItbWFwXG4vLyBAcGFyYW0gJGh1ZVxuQGZ1bmN0aW9uIG1hdC1jb250cmFzdCgkcGFsZXR0ZSwgJGh1ZSkge1xuICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkcGFsZXR0ZSwgY29udHJhc3QpLCAkaHVlKTtcbn1cblxuXG4vLyBDcmVhdGVzIGEgbWFwIG9mIGh1ZXMgdG8gY29sb3JzIGZvciBhIHRoZW1lLiBUaGlzIGlzIHVzZWQgdG8gZGVmaW5lIGEgdGhlbWUgcGFsZXR0ZSBpbiB0ZXJtc1xuLy8gb2YgdGhlIE1hdGVyaWFsIERlc2lnbiBodWVzLlxuLy8gQHBhcmFtICRjb2xvci1tYXBcbi8vIEBwYXJhbSAkcHJpbWFyeVxuLy8gQHBhcmFtICRsaWdodGVyXG5AZnVuY3Rpb24gbWF0LXBhbGV0dGUoJGJhc2UtcGFsZXR0ZSwgJGRlZmF1bHQ6IDUwMCwgJGxpZ2h0ZXI6IDEwMCwgJGRhcmtlcjogNzAwLCAkdGV4dDogJGRlZmF1bHQpIHtcbiAgJHJlc3VsdDogbWFwX21lcmdlKCRiYXNlLXBhbGV0dGUsIChcbiAgICBkZWZhdWx0OiBtYXAtZ2V0KCRiYXNlLXBhbGV0dGUsICRkZWZhdWx0KSxcbiAgICBsaWdodGVyOiBtYXAtZ2V0KCRiYXNlLXBhbGV0dGUsICRsaWdodGVyKSxcbiAgICBkYXJrZXI6IG1hcC1nZXQoJGJhc2UtcGFsZXR0ZSwgJGRhcmtlciksXG4gICAgdGV4dDogbWFwLWdldCgkYmFzZS1wYWxldHRlLCAkdGV4dCksXG5cbiAgICBkZWZhdWx0LWNvbnRyYXN0OiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGRlZmF1bHQpLFxuICAgIGxpZ2h0ZXItY29udHJhc3Q6IG1hdC1jb250cmFzdCgkYmFzZS1wYWxldHRlLCAkbGlnaHRlciksXG4gICAgZGFya2VyLWNvbnRyYXN0OiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGRhcmtlcilcbiAgKSk7XG5cbiAgLy8gRm9yIGVhY2ggaHVlIGluIHRoZSBwYWxldHRlLCBhZGQgYSBcIi1jb250cmFzdFwiIGNvbG9yIHRvIHRoZSBtYXAuXG4gIEBlYWNoICRodWUsICRjb2xvciBpbiAkYmFzZS1wYWxldHRlIHtcbiAgICAkcmVzdWx0OiBtYXBfbWVyZ2UoJHJlc3VsdCwgKFxuICAgICAgJyN7JGh1ZX0tY29udHJhc3QnOiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGh1ZSlcbiAgICApKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuXG4vLyBHZXRzIGEgY29sb3IgZnJvbSBhIHRoZW1lIHBhbGV0dGUgKHRoZSBvdXRwdXQgb2YgbWF0LXBhbGV0dGUpLlxuLy8gVGhlIGh1ZSBjYW4gYmUgb25lIG9mIHRoZSBzdGFuZGFyZCB2YWx1ZXMgKDUwMCwgQTQwMCwgZXRjLiksIG9uZSBvZiB0aGUgdGhyZWUgcHJlY29uZmlndXJlZFxuLy8gaHVlcyAoZGVmYXVsdCwgbGlnaHRlciwgZGFya2VyKSwgb3IgYW55IG9mIHRoZSBhZm9yZW1lbnRpb25lZCBwcmVmaXhlZCB3aXRoIFwiLWNvbnRyYXN0XCIuXG4vL1xuLy8gQHBhcmFtICRjb2xvci1tYXAgVGhlIHRoZW1lIHBhbGV0dGUgKG91dHB1dCBvZiBtYXQtcGFsZXR0ZSkuXG4vLyBAcGFyYW0gJGh1ZSBUaGUgaHVlIGZyb20gdGhlIHBhbGV0dGUgdG8gdXNlLiBJZiB0aGlzIGlzIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxLCBpdCB3aWxsXG4vLyAgICAgYmUgdHJlYXRlZCBhcyBvcGFjaXR5LlxuLy8gQHBhcmFtICRvcGFjaXR5IFRoZSBhbHBoYSBjaGFubmVsIHZhbHVlIGZvciB0aGUgY29sb3IuXG5AZnVuY3Rpb24gbWF0LWNvbG9yKCRwYWxldHRlLCAkaHVlOiBkZWZhdWx0LCAkb3BhY2l0eTogbnVsbCkge1xuICAvLyBJZiBodWVLZXkgaXMgYSBudW1iZXIgYmV0d2VlbiB6ZXJvIGFuZCBvbmUsIHRoZW4gaXQgYWN0dWFsbHkgY29udGFpbnMgYW5cbiAgLy8gb3BhY2l0eSB2YWx1ZSwgc28gcmVjYWxsIHRoaXMgZnVuY3Rpb24gd2l0aCB0aGUgZGVmYXVsdCBodWUgYW5kIHRoYXQgZ2l2ZW4gb3BhY2l0eS5cbiAgQGlmIHR5cGUtb2YoJGh1ZSkgPT0gbnVtYmVyIGFuZCAkaHVlID49IDAgYW5kICRodWUgPD0gMSB7XG4gICAgQHJldHVybiBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQsICRodWUpO1xuICB9XG5cbiAgJGNvbG9yOiBtYXAtZ2V0KCRwYWxldHRlLCAkaHVlKTtcblxuICBAaWYgKHR5cGUtb2YoJGNvbG9yKSAhPSBjb2xvcikge1xuICAgIC8vIElmIHRoZSAkY29sb3IgcmVzb2x2ZWQgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIGEgY29sb3IgKGUuZy4gYSBDU1MgdmFyaWFibGUpLFxuICAgIC8vIHdlIGNhbid0IGFwcGx5IHRoZSBvcGFjaXR5IGFueXdheSBzbyB3ZSByZXR1cm4gdGhlIHZhbHVlIGFzIGlzLCBvdGhlcndpc2UgU2FzcyBjYW5cbiAgICAvLyB0aHJvdyBhbiBlcnJvciBvciBvdXRwdXQgc29tZXRoaW5nIGludmFsaWQuXG4gICAgQHJldHVybiAkY29sb3I7XG4gIH1cblxuICBAcmV0dXJuIHJnYmEoJGNvbG9yLCBpZigkb3BhY2l0eSA9PSBudWxsLCBvcGFjaXR5KCRjb2xvciksICRvcGFjaXR5KSk7XG59XG5cblxuLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBvYmplY3QgZm9yIGEgbGlnaHQgdGhlbWUgdG8gYmUgZ2l2ZW4gdG8gaW5kaXZpZHVhbCBjb21wb25lbnQgdGhlbWUgbWl4aW5zLlxuQGZ1bmN0aW9uIG1hdC1saWdodC10aGVtZSgkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm46IG1hdC1wYWxldHRlKCRtYXQtcmVkKSkge1xuICBAcmV0dXJuIChcbiAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICBhY2NlbnQ6ICRhY2NlbnQsXG4gICAgd2FybjogJHdhcm4sXG4gICAgaXMtZGFyazogZmFsc2UsXG4gICAgZm9yZWdyb3VuZDogJG1hdC1saWdodC10aGVtZS1mb3JlZ3JvdW5kLFxuICAgIGJhY2tncm91bmQ6ICRtYXQtbGlnaHQtdGhlbWUtYmFja2dyb3VuZCxcbiAgKTtcbn1cblxuXG4vLyBDcmVhdGVzIGEgY29udGFpbmVyIG9iamVjdCBmb3IgYSBkYXJrIHRoZW1lIHRvIGJlIGdpdmVuIHRvIGluZGl2aWR1YWwgY29tcG9uZW50IHRoZW1lIG1peGlucy5cbkBmdW5jdGlvbiBtYXQtZGFyay10aGVtZSgkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm46IG1hdC1wYWxldHRlKCRtYXQtcmVkKSkge1xuICBAcmV0dXJuIChcbiAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICBhY2NlbnQ6ICRhY2NlbnQsXG4gICAgd2FybjogJHdhcm4sXG4gICAgaXMtZGFyazogdHJ1ZSxcbiAgICBmb3JlZ3JvdW5kOiAkbWF0LWRhcmstdGhlbWUtZm9yZWdyb3VuZCxcbiAgICBiYWNrZ3JvdW5kOiAkbWF0LWRhcmstdGhlbWUtYmFja2dyb3VuZCxcbiAgKTtcbn1cblxuXG5cbiRtYXQtcmlwcGxlLWNvbG9yLW9wYWNpdHk6IDAuMTtcblxuQG1peGluIG1hdC1yaXBwbGUoKSB7XG5cbiAgLy8gVGhlIGhvc3QgZWxlbWVudCBvZiBhbiBtYXQtcmlwcGxlIGRpcmVjdGl2ZSBzaG91bGQgYWx3YXlzIGhhdmUgYSBwb3NpdGlvbiBvZiBcImFic29sdXRlXCIgb3JcbiAgLy8gXCJyZWxhdGl2ZVwiIHNvIHRoYXQgdGhlIHJpcHBsZXMgaW5zaWRlIGFyZSBjb3JyZWN0bHkgcG9zaXRpb25lZCByZWxhdGl2ZWx5IHRvIHRoZSBjb250YWluZXIuXG4gIC5tYXQtcmlwcGxlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLy8gQnkgZGVmYXVsdCwgZXZlcnkgcmlwcGxlIGNvbnRhaW5lciBzaG91bGQgaGF2ZSBwb3NpdGlvbjogcmVsYXRpdmUgaW4gZmF2b3Igb2YgY3JlYXRpbmcgYW5cbiAgICAvLyBlYXN5IEFQSSBmb3IgZGV2ZWxvcGVycyB1c2luZyB0aGUgTWF0UmlwcGxlIGRpcmVjdGl2ZS5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZCB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cblxuICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSwgdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuXG4gICAgLy8gSW4gaGlnaCBjb250cmFzdCBtb2RlIHRoZSByaXBwbGUgaXMgb3BhcXVlLCBjYXVzaW5nIGl0IHRvIG9ic3RydWN0IHRoZSBjb250ZW50LlxuICAgIEBpbmNsdWRlIGNkay1oaWdoLWNvbnRyYXN0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8qIFRoZW1lIGZvciB0aGUgcmlwcGxlIGVsZW1lbnRzLiovXG5AbWl4aW4gbWF0LXJpcHBsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcF9nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQtYmFzZTogbWFwX2dldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgLy8gSWYgdGhlIHJpcHBsZSBjb2xvciBpcyByZXNvbHZlcyB0byBhIGNvbG9yICp0eXBlKiwgd2UgY2FuIHVzZSBpdCBkaXJlY3RseSwgb3RoZXJ3aXNlXG4gICAgLy8gKGUuZy4gaXQgcmVzb2x2ZXMgdG8gYSBDU1MgdmFyaWFibGUpIHdlIGZhbGwgYmFjayB0byB1c2luZyB0aGUgY29sb3IgYW5kIHNldHRpbmcgYW4gb3BhY2l0eS5cbiAgICBAaWYgKHR5cGUtb2YoJGZvcmVncm91bmQtYmFzZSkgPT0gY29sb3IpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGZvcmVncm91bmQtYmFzZSwgJG1hdC1yaXBwbGUtY29sb3Itb3BhY2l0eSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmb3JlZ3JvdW5kLWJhc2U7XG4gICAgICBvcGFjaXR5OiAkbWF0LXJpcHBsZS1jb2xvci1vcGFjaXR5O1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gVXRpbGl0eSBmb3IgZmV0Y2hpbmcgYSBuZXN0ZWQgdmFsdWUgZnJvbSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCAkbmFtZSkge1xuICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkY29uZmlnLCAkbGV2ZWwpLCAkbmFtZSk7XG59XG5cbi8vIEdldHMgdGhlIGZvbnQgc2l6ZSBmb3IgYSBsZXZlbCBpbnNpZGUgYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBtYXQtZm9udC1zaXplKCRjb25maWcsICRsZXZlbCkge1xuICBAcmV0dXJuIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBmb250LXNpemUpO1xufVxuXG4vLyBHZXRzIHRoZSBsaW5lIGhlaWdodCBmb3IgYSBsZXZlbCBpbnNpZGUgYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgJGxldmVsKSB7XG4gIEByZXR1cm4gX21hdC1nZXQtdHlwZS12YWx1ZSgkY29uZmlnLCAkbGV2ZWwsIGxpbmUtaGVpZ2h0KTtcbn1cblxuLy8gR2V0cyB0aGUgZm9udCB3ZWlnaHQgZm9yIGEgbGV2ZWwgaW5zaWRlIGEgdHlwb2dyYXBoeSBjb25maWcuXG5AZnVuY3Rpb24gbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsICRsZXZlbCkge1xuICBAcmV0dXJuIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBmb250LXdlaWdodCk7XG59XG5cbi8vIEdldHMgdGhlIGxldHRlciBzcGFjaW5nIGZvciBhIGxldmVsIGluc2lkZSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIG1hdC1sZXR0ZXItc3BhY2luZygkY29uZmlnLCAkbGV2ZWwpIHtcbiAgQHJldHVybiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgbGV0dGVyLXNwYWNpbmcpO1xufVxuXG4vLyBHZXRzIHRoZSBmb250LWZhbWlseSBmcm9tIGEgdHlwb2dyYXBoeSBjb25maWcgYW5kIHJlbW92ZXMgdGhlIHF1b3RlcyBhcm91bmQgaXQuXG5AZnVuY3Rpb24gbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsICRsZXZlbDogbnVsbCkge1xuICAkZm9udC1mYW1pbHk6IG1hcC1nZXQoJGNvbmZpZywgZm9udC1mYW1pbHkpO1xuXG4gIEBpZiAkbGV2ZWwgIT0gbnVsbCB7XG4gICAgJGZvbnQtZmFtaWx5OiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgZm9udC1mYW1pbHkpO1xuICB9XG5cbiAgLy8gR3VhcmQgYWdhaW5zdCB1bnF1b3Rpbmcgbm9uLXN0cmluZyB2YWx1ZXMsIGJlY2F1c2UgaXQncyBkZXByZWNhdGVkLlxuICBAcmV0dXJuIGlmKHR5cGUtb2YoJGZvbnQtZmFtaWx5KSA9PSBzdHJpbmcsIHVucXVvdGUoJGZvbnQtZmFtaWx5KSwgJGZvbnQtZmFtaWx5KTtcbn1cblxuLy8gT3V0cHV0cyB0aGUgc2hvcnRoYW5kIGBmb250YCBDU1MgcHJvcGVydHksIGJhc2VkIG9uIGEgc2V0IG9mIHR5cG9ncmFwaHkgdmFsdWVzLiBGYWxscyBiYWNrIHRvXG4vLyB0aGUgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIGlmIGEgdmFsdWUgdGhhdCBpc24ndCBhbGxvd2VkIGluIHRoZSBzaG9ydGhhbmQgaXMgcGFzc2VkIGluLlxuQG1peGluIG1hdC10eXBvZ3JhcGh5LWZvbnQtc2hvcnRoYW5kKCRmb250LXNpemUsICRmb250LXdlaWdodCwgJGxpbmUtaGVpZ2h0LCAkZm9udC1mYW1pbHkpIHtcbiAgLy8gSWYgYW55IG9mIHRoZSB2YWx1ZXMgYXJlIHNldCB0byBgaW5oZXJpdGAsIHdlIGNhbid0IHVzZSB0aGUgc2hvcnRoYW5kXG4gIC8vIHNvIHdlIGZhbGwgYmFjayB0byBwYXNzaW5nIGluIHRoZSBpbmRpdmlkdWFsIHByb3BlcnRpZXMuXG4gIEBpZiAoJGZvbnQtc2l6ZSA9PSBpbmhlcml0IG9yXG4gICAgICAgJGZvbnQtd2VpZ2h0ID09IGluaGVyaXQgb3JcbiAgICAgICAkbGluZS1oZWlnaHQgPT0gaW5oZXJpdCBvclxuICAgICAgICRmb250LWZhbWlseSA9PSBpbmhlcml0IG9yXG4gICAgICAgJGZvbnQtc2l6ZSA9PSBudWxsIG9yXG4gICAgICAgJGZvbnQtd2VpZ2h0ID09IG51bGwgb3JcbiAgICAgICAkbGluZS1oZWlnaHQgPT0gbnVsbCBvclxuICAgICAgICRmb250LWZhbWlseSA9PSBudWxsKSB7XG5cbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIE90aGVyd2lzZSB1c2UgdGhlIHNob3J0aGFuZCBgZm9udGAsIGJlY2F1c2UgaXQncyB0aGUgbGVhc3QgYW1vdW50IG9mIGJ5dGVzLiBOb3RlXG4gICAgLy8gdGhhdCB3ZSBuZWVkIHRvIHVzZSBpbnRlcnBvbGF0aW9uIGZvciBgZm9udC1zaXplL2xpbmUtaGVpZ2h0YCBpbiBvcmRlciB0byBwcmV2ZW50XG4gICAgLy8gU2FzcyBmcm9tIGRpdmlkaW5nIHRoZSB0d28gdmFsdWVzLlxuICAgIGZvbnQ6ICRmb250LXdlaWdodCAjeyRmb250LXNpemV9LyN7JGxpbmUtaGVpZ2h0fSAkZm9udC1mYW1pbHk7XG4gIH1cbn1cblxuLy8gQ29udmVydHMgYSB0eXBvZ3JhcGh5IGxldmVsIGludG8gQ1NTIHN0eWxlcy5cbkBtaXhpbiBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgJGxldmVsKSB7XG4gICRmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgJGxldmVsKTtcbiAgJGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgJGxldmVsKTtcbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgJGxldmVsKTtcbiAgJGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgJGxldmVsKTtcblxuICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZCgkZm9udC1zaXplLCAkZm9udC13ZWlnaHQsICRsaW5lLWhlaWdodCwgJGZvbnQtZmFtaWx5KTtcbiAgbGV0dGVyLXNwYWNpbmc6IG1hdC1sZXR0ZXItc3BhY2luZygkY29uZmlnLCAkbGV2ZWwpO1xufVxuXG5cbkBtaXhpbiBtYXQtb3B0aW9uLXRoZW1lKCR0aGVtZSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcblxuICAubWF0LW9wdGlvbiB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAmOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksXG4gICAgJjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgIH1cblxuICAgIC8vIEluIG11bHRpcGxlIG1vZGUgdGhlcmUgaXMgYSBjaGVja2JveCB0byBzaG93IHRoYXQgdGhlIG9wdGlvbiBpcyBzZWxlY3RlZC5cbiAgICAmLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgfVxuXG4gICAgJi5tYXQtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtb3B0aW9uLWRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1wcmltYXJ5IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LW9wdGlvbi10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1vcHRpb24ge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBzdWJoZWFkaW5nLTIpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtb3B0Z3JvdXAtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1vcHRncm91cC1kaXNhYmxlZCAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtb3B0Z3JvdXAtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTIpO1xuICB9XG59XG5cblxuXG5AbWl4aW4gbWF0LXBzZXVkby1jaGVja2JveC10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG5cbiAgLy8gTk9URSh0cmF2aXNrYXVmbWFuKTogV2hpbGUgdGhlIHNwZWMgY2FsbHMgZm9yIHRyYW5zbHVjZW50IGJsYWNrcy93aGl0ZXMgZm9yIGRpc2FibGVkIGNvbG9ycyxcbiAgLy8gdGhpcyBkb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBlbGVtZW50cyBsYXllcmVkIG9uIHRvcCBvZiBvbmUgYW5vdGhlci4gVG8gZ2V0IGFyb3VuZCB0aGlzIHdlXG4gIC8vIGJsZW5kIHRoZSBjb2xvcnMgdG9nZXRoZXIgYmFzZWQgb24gdGhlIGJhc2UgY29sb3IgYW5kIHRoZSB0aGVtZSBiYWNrZ3JvdW5kLlxuICAkd2hpdGUtMzBwY3Qtb3BhY2l0eS1vbi1kYXJrOiAjNjg2ODY4O1xuICAkYmxhY2stMjZwY3Qtb3BhY2l0eS1vbi1saWdodDogI2IwYjBiMDtcbiAgJGRpc2FibGVkLWNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJHdoaXRlLTMwcGN0LW9wYWNpdHktb24tZGFyaywgJGJsYWNrLTI2cGN0LW9wYWNpdHktb24tbGlnaHQpO1xuICAkY29sb3JlZC1ib3gtc2VsZWN0b3I6ICcubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlJztcblxuICAubWF0LXBzZXVkby1jaGVja2JveCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCksIHNlY29uZGFyeS10ZXh0KTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICBjb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IobWFwLWdldCgkdGhlbWUsIHByaW1hcnkpKTtcbiAgfVxuXG4gIC8vIERlZmF1bHQgdG8gdGhlIGFjY2VudCBjb2xvci4gTm90ZSB0aGF0IHRoZSBwc2V1ZG8gY2hlY2tib3hlcyBhcmUgbWVhbnQgdG8gaW5oZXJpdCB0aGVcbiAgLy8gdGhlbWUgZnJvbSB0aGVpciBwYXJlbnQsIHJhdGhlciB0aGFuIGltcGxlbWVudGluZyB0aGVpciBvd24gdGhlbWluZywgd2hpY2ggaXMgd2h5IHdlXG4gIC8vIGRvbid0IGF0dGFjaCB0byB0aGUgYG1hdC0qYCBjbGFzc2VzLiBBbHNvIG5vdGUgdGhhdCB0aGlzIG5lZWRzIHRvIGJlIGJlbG93IGAubWF0LXByaW1hcnlgXG4gIC8vIGluIG9yZGVyIHRvIGFsbG93IGZvciB0aGUgY29sb3IgdG8gYmUgb3ZlcndyaXR0ZW4gaWYgdGhlIGNoZWNrYm94IGlzIGluc2lkZSBhIHBhcmVudCB0aGF0XG4gIC8vIGhhcyBgbWF0LWFjY2VudGAgYW5kIGlzIHBsYWNlZCBpbnNpZGUgYW5vdGhlciBwYXJlbnQgdGhhdCBoYXMgYG1hdC1wcmltYXJ5YC5cbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSxcbiAgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbiAgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpKTtcbiAgfVxuXG4gIC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKG1hcC1nZXQoJHRoZW1lLCB3YXJuKSk7XG4gIH1cblxuICAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICAmLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICAgICAgYmFja2dyb3VuZDogJGRpc2FibGVkLWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gUmVwcmVzZW50cyBhIHR5cG9ncmFwaHkgbGV2ZWwgZnJvbSB0aGUgTWF0ZXJpYWwgZGVzaWduIHNwZWMuXG5AZnVuY3Rpb24gbWF0LXR5cG9ncmFwaHktbGV2ZWwoXG4gICRmb250LXNpemUsXG4gICRsaW5lLWhlaWdodDogJGZvbnQtc2l6ZSxcbiAgJGZvbnQtd2VpZ2h0OiA0MDAsXG4gICRmb250LWZhbWlseTogbnVsbCxcbiAgJGxldHRlci1zcGFjaW5nOiBudWxsKSB7XG5cbiAgQHJldHVybiAoXG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLFxuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQsXG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodCxcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LFxuICAgIGxldHRlci1zcGFjaW5nOiAkbGV0dGVyLXNwYWNpbmdcbiAgKTtcbn1cblxuLy8gUmVwcmVzZW50cyBhIGNvbGxlY3Rpb24gb2YgdHlwb2dyYXBoeSBsZXZlbHMuXG4vLyBEZWZhdWx0cyBjb21lIGZyb20gaHR0cHM6Ly9tYXRlcmlhbC5pby9ndWlkZWxpbmVzL3N0eWxlL3R5cG9ncmFwaHkuaHRtbFxuLy8gTm90ZTogVGhlIHNwZWMgZG9lc24ndCBtZW50aW9uIGxldHRlciBzcGFjaW5nLiBUaGUgdmFsdWVzIGhlcmUgY29tZSBmcm9tXG4vLyBleWViYWxsaW5nIGl0IHVudGlsIGl0IGxvb2tlZCBleGFjdGx5IGxpa2UgdGhlIHNwZWMgZXhhbXBsZXMuXG5AZnVuY3Rpb24gbWF0LXR5cG9ncmFwaHktY29uZmlnKFxuICAkZm9udC1mYW1pbHk6ICAgJ1JvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmJyxcbiAgJGRpc3BsYXktNDogICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDExMnB4LCAxMTJweCwgMzAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjA1ZW0pLFxuICAkZGlzcGxheS0zOiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoNTZweCwgNTZweCwgNDAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW0pLFxuICAkZGlzcGxheS0yOiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoNDVweCwgNDhweCwgNDAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjAwNWVtKSxcbiAgJGRpc3BsYXktMTogICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDM0cHgsIDQwcHgsIDQwMCksXG4gICRoZWFkbGluZTogICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgyNHB4LCAzMnB4LCA0MDApLFxuICAkdGl0bGU6ICAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMjBweCwgMzJweCwgNTAwKSxcbiAgJHN1YmhlYWRpbmctMjogIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE2cHgsIDI4cHgsIDQwMCksXG4gICRzdWJoZWFkaW5nLTE6ICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNXB4LCAyNHB4LCA0MDApLFxuICAkYm9keS0yOiAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTRweCwgMjRweCwgNTAwKSxcbiAgJGJvZHktMTogICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE0cHgsIDIwcHgsIDQwMCksXG4gICRjYXB0aW9uOiAgICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxMnB4LCAyMHB4LCA0MDApLFxuICAkYnV0dG9uOiAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTRweCwgMTRweCwgNTAwKSxcbiAgLy8gTGluZS1oZWlnaHQgbXVzdCBiZSB1bml0LWxlc3MgZnJhY3Rpb24gb2YgdGhlIGZvbnQtc2l6ZS5cbiAgJGlucHV0OiAgICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKGluaGVyaXQsIDEuMTI1LCA0MDApXG4pIHtcblxuICAvLyBEZWNsYXJlIGFuIGluaXRpYWwgbWFwIHdpdGggYWxsIG9mIHRoZSBsZXZlbHMuXG4gICRjb25maWc6IChcbiAgICBkaXNwbGF5LTQ6ICAgICAgJGRpc3BsYXktNCxcbiAgICBkaXNwbGF5LTM6ICAgICAgJGRpc3BsYXktMyxcbiAgICBkaXNwbGF5LTI6ICAgICAgJGRpc3BsYXktMixcbiAgICBkaXNwbGF5LTE6ICAgICAgJGRpc3BsYXktMSxcbiAgICBoZWFkbGluZTogICAgICAgJGhlYWRsaW5lLFxuICAgIHRpdGxlOiAgICAgICAgICAkdGl0bGUsXG4gICAgc3ViaGVhZGluZy0yOiAgICRzdWJoZWFkaW5nLTIsXG4gICAgc3ViaGVhZGluZy0xOiAgICRzdWJoZWFkaW5nLTEsXG4gICAgYm9keS0yOiAgICAgICAgICRib2R5LTIsXG4gICAgYm9keS0xOiAgICAgICAgICRib2R5LTEsXG4gICAgY2FwdGlvbjogICAgICAgICRjYXB0aW9uLFxuICAgIGJ1dHRvbjogICAgICAgICAkYnV0dG9uLFxuICAgIGlucHV0OiAgICAgICAgICAkaW5wdXQsXG4gICk7XG5cbiAgLy8gTG9vcCB0aHJvdWdoIHRoZSBsZXZlbHMgYW5kIHNldCB0aGUgYGZvbnQtZmFtaWx5YCBvZiB0aGUgb25lcyB0aGF0IGRvbid0IGhhdmUgb25lIHRvIHRoZSBiYXNlLlxuICAvLyBOb3RlIHRoYXQgU2FzcyBjYW4ndCBtb2RpZnkgbWFwcyBpbiBwbGFjZSwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBuZWVkIHRvIG1lcmdlIGFuZCByZS1hc3NpZ24uXG4gIEBlYWNoICRrZXksICRsZXZlbCBpbiAkY29uZmlnIHtcbiAgICBAaWYgbWFwLWdldCgkbGV2ZWwsIGZvbnQtZmFtaWx5KSA9PSBudWxsIHtcbiAgICAgICRuZXctbGV2ZWw6IG1hcC1tZXJnZSgkbGV2ZWwsIChmb250LWZhbWlseTogJGZvbnQtZmFtaWx5KSk7XG4gICAgICAkY29uZmlnOiBtYXAtbWVyZ2UoJGNvbmZpZywgKCRrZXk6ICRuZXctbGV2ZWwpKTtcbiAgICB9XG4gIH1cblxuICAvLyBBZGQgdGhlIGJhc2UgZm9udCBmYW1pbHkgdG8gdGhlIGNvbmZpZy5cbiAgQHJldHVybiBtYXAtbWVyZ2UoJGNvbmZpZywgKGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHkpKTtcbn1cblxuLy8gQWRkcyB0aGUgYmFzZSB0eXBvZ3JhcGh5IHN0eWxlcywgYmFzZWQgb24gYSBjb25maWcuXG5AbWl4aW4gbWF0LWJhc2UtdHlwb2dyYXBoeSgkY29uZmlnLCAkc2VsZWN0b3I6ICcubWF0LXR5cG9ncmFwaHknKSB7XG4gIC5tYXQtaDEsIC5tYXQtaGVhZGxpbmUsICN7JHNlbGVjdG9yfSBoMSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGhlYWRsaW5lKTtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICB9XG5cbiAgLm1hdC1oMiwgLm1hdC10aXRsZSwgI3skc2VsZWN0b3J9IGgyIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgdGl0bGUpO1xuICAgIG1hcmdpbjogMCAwIDE2cHg7XG4gIH1cblxuICAubWF0LWgzLCAubWF0LXN1YmhlYWRpbmctMiwgI3skc2VsZWN0b3J9IGgzIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgc3ViaGVhZGluZy0yKTtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICB9XG5cbiAgLm1hdC1oNCwgLm1hdC1zdWJoZWFkaW5nLTEsICN7JHNlbGVjdG9yfSBoNCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgbWFyZ2luOiAwIDAgMTZweDtcbiAgfVxuXG4gIC8vIE5vdGU6IHRoZSBzcGVjIGRvZXNuJ3QgaGF2ZSBhbnl0aGluZyB0aGF0IHdvdWxkIGNvcnJlc3BvbmQgdG8gaDUgYW5kIGg2LCBidXQgd2UgYWRkIHRoZXNlIGZvclxuICAvLyBjb25zaXN0ZW5jeS4gVGhlIGZvbnQgc2l6ZXMgY29tZSBmcm9tIHRoZSBDaHJvbWUgdXNlciBhZ2VudCBzdHlsZXMgd2hpY2ggaGF2ZSBoNSBhdCAwLjgzZW1cbiAgLy8gYW5kIGg2IGF0IDAuNjdlbS5cbiAgLm1hdC1oNSwgI3skc2VsZWN0b3J9IGg1IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZChcbiAgICAgICAvLyBjYWxjIGlzIHVzZWQgaGVyZSB0byBzdXBwb3J0IGNzcyB2YXJpYWJsZXNcbiAgICAgIGNhbGMoI3ttYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSl9ICogMC44MyksXG4gICAgICBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgIG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBib2R5LTEpLFxuICAgICAgbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMSlcbiAgICApO1xuXG4gICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgfVxuXG4gIC5tYXQtaDYsICN7JHNlbGVjdG9yfSBoNiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktZm9udC1zaG9ydGhhbmQoXG4gICAgICAgLy8gY2FsYyBpcyB1c2VkIGhlcmUgdG8gc3VwcG9ydCBjc3MgdmFyaWFibGVzXG4gICAgICBjYWxjKCN7bWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpfSAqIDAuNjcpLFxuICAgICAgbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSksXG4gICAgICBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgIG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBib2R5LTEpXG4gICAgKTtcblxuICAgIG1hcmdpbjogMCAwIDEycHg7XG4gIH1cblxuICAubWF0LWJvZHktc3Ryb25nLCAubWF0LWJvZHktMiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGJvZHktMik7XG4gIH1cblxuICAubWF0LWJvZHksIC5tYXQtYm9keS0xLCAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuXG4gICAgcCB7XG4gICAgICBtYXJnaW46IDAgMCAxMnB4O1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc21hbGwsIC5tYXQtY2FwdGlvbiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGNhcHRpb24pO1xuICB9XG5cbiAgLm1hdC1kaXNwbGF5LTQsICN7JHNlbGVjdG9yfSAubWF0LWRpc3BsYXktNCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGRpc3BsYXktNCk7XG4gICAgbWFyZ2luOiAwIDAgNTZweDtcbiAgfVxuXG4gIC5tYXQtZGlzcGxheS0zLCAjeyRzZWxlY3Rvcn0gLm1hdC1kaXNwbGF5LTMge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBkaXNwbGF5LTMpO1xuICAgIG1hcmdpbjogMCAwIDY0cHg7XG4gIH1cblxuICAubWF0LWRpc3BsYXktMiwgI3skc2VsZWN0b3J9IC5tYXQtZGlzcGxheS0yIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgZGlzcGxheS0yKTtcbiAgICBtYXJnaW46IDAgMCA2NHB4O1xuICB9XG5cbiAgLm1hdC1kaXNwbGF5LTEsICN7JHNlbGVjdG9yfSAubWF0LWRpc3BsYXktMSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGRpc3BsYXktMSk7XG4gICAgbWFyZ2luOiAwIDAgNjRweDtcbiAgfVxufVxuXG5cblxuXG5AbWl4aW4gbWF0LWF1dG9jb21wbGV0ZS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcblxuICAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgLy8gU2VsZWN0ZWQgb3B0aW9ucyBpbiBhdXRvY29tcGxldGVzIHNob3VsZCBub3QgYmUgZ3JheSwgYnV0IHdlXG4gICAgLy8gb25seSB3YW50IHRvIG92ZXJyaWRlIHRoZSBiYWNrZ3JvdW5kIGZvciBzZWxlY3RlZCBvcHRpb25zIGlmXG4gICAgLy8gdGhleSBhcmUgKm5vdCogaW4gaG92ZXIgb3IgZm9jdXMgc3RhdGUuIFRoaXMgY2hhbmdlIGhhcyB0byBiZVxuICAgIC8vIG1hZGUgaGVyZSBiZWNhdXNlIGJhc2Ugb3B0aW9uIHN0eWxlcyBhcmUgc2hhcmVkIGJldHdlZW4gdGhlXG4gICAgLy8gYXV0b2NvbXBsZXRlIGFuZCB0aGUgc2VsZWN0LlxuICAgIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG5cbiAgICAgICY6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbkBtaXhpbiBtYXQtYXV0b2NvbXBsZXRlLXR5cG9ncmFwaHkoJGNvbmZpZykgeyB9XG5cbi8vIFRoaXMgY29udGFpbnMgYWxsIG9mIHRoZSBzdHlsZXMgZm9yIHRoZSBiYWRnZVxuLy8gcmF0aGVyIHRoYW4ganVzdCB0aGUgY29sb3IvdGhlbWUgYmVjYXVzZSBvZlxuLy8gbm8gc3R5bGUgc2hlZXQgc3VwcG9ydCBmb3IgZGlyZWN0aXZlcy5cblxuXG5cblxuXG4kbWF0LWJhZGdlLWZvbnQtc2l6ZTogMTJweDtcbiRtYXQtYmFkZ2UtZm9udC13ZWlnaHQ6IDYwMDtcbiRtYXQtYmFkZ2UtZGVmYXVsdC1zaXplOiAyMnB4ICFkZWZhdWx0O1xuJG1hdC1iYWRnZS1zbWFsbC1zaXplOiAkbWF0LWJhZGdlLWRlZmF1bHQtc2l6ZSAtIDY7XG4kbWF0LWJhZGdlLWxhcmdlLXNpemU6ICRtYXQtYmFkZ2UtZGVmYXVsdC1zaXplICsgNjtcblxuLy8gTWl4aW4gZm9yIGJ1aWxkaW5nIG9mZnNldCBnaXZlbiBkaWZmZXJlbnQgc2l6ZXNcbkBtaXhpbiBfbWF0LWJhZGdlLXNpemUoJHNpemUpIHtcbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJHNpemU7XG4gIH1cblxuICAmLm1hdC1iYWRnZS1hYm92ZSB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIHRvcDogLSRzaXplIC8gMjtcbiAgICB9XG4gIH1cblxuICAmLm1hdC1iYWRnZS1iZWxvdyB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIGJvdHRvbTogLSRzaXplIC8gMjtcbiAgICB9XG4gIH1cblxuICAmLm1hdC1iYWRnZS1iZWZvcmUge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBsZWZ0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgW2Rpcj0ncnRsJ10gJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIHJpZ2h0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgJi5tYXQtYmFkZ2UtYWZ0ZXIge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICByaWdodDogLSRzaXplO1xuICAgIH1cbiAgfVxuXG4gIFtkaXI9J3J0bCddICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBsZWZ0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgJi5tYXQtYmFkZ2Utb3ZlcmxhcCB7XG4gICAgJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIGxlZnQ6IC0kc2l6ZSAvIDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgW2Rpcj0ncnRsJ10gJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIHJpZ2h0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cblxuICAgIFtkaXI9J3J0bCddICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBsZWZ0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJhZGdlLXRoZW1lKCR0aGVtZSkge1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG5cbiAgICBAaW5jbHVkZSBjZGstaGlnaC1jb250cmFzdCB7XG4gICAgICBvdXRsaW5lOiBzb2xpZCAxcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2UtYWNjZW50IHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJhZGdlLXdhcm4ge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLm1hdC1iYWRnZS1oaWRkZW4ge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2UtZGlzYWJsZWQge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAkYXBwLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2JhY2tncm91bmQnKTtcbiAgICAgICRiYWRnZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC1idXR0b24pO1xuXG4gICAgICAvLyBUaGUgZGlzYWJsZWQgY29sb3IgdXN1YWxseSBoYXMgc29tZSBraW5kIG9mIG9wYWNpdHksIGJ1dCBiZWNhdXNlIHRoZSBiYWRnZSBpcyBvdmVybGF5ZWRcbiAgICAgIC8vIG9uIHRvcCBvZiBzb21ldGhpbmcgZWxzZSwgaXQgd29uJ3QgbG9vayBnb29kIGlmIGl0J3Mgb3BhcXVlLiBJZiBpdCBpcyBhIGNvbG9yICp0eXBlKixcbiAgICAgIC8vIHdlIGNvbnZlcnQgaXQgaW50byBhIHNvbGlkIGNvbG9yIGJ5IHRha2luZyB0aGUgb3BhY2l0eSBmcm9tIHRoZSByZ2JhIHZhbHVlIGFuZCB1c2luZ1xuICAgICAgLy8gdGhlIHZhbHVlIHRvIGRldGVybWluZSB0aGUgcGVyY2VudGFnZSBvZiB0aGUgYmFja2dyb3VuZCB0byBwdXQgaW50byBmb3JlZ3JvdW5kIHdoZW5cbiAgICAgIC8vIG1peGluZyB0aGUgY29sb3JzIHRvZ2V0aGVyLlxuICAgICAgQGlmICh0eXBlLW9mKCRiYWRnZS1jb2xvcikgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGFwcC1iYWNrZ3JvdW5kKSA9PSBjb2xvcikge1xuICAgICAgICAkYmFkZ2Utb3BhY2l0eTogb3BhY2l0eSgkYmFkZ2UtY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kOiBtaXgoJGFwcC1iYWNrZ3JvdW5kLCByZ2JhKCRiYWRnZS1jb2xvciwgMSksICgxIC0gJGJhZGdlLW9wYWNpdHkpICogMTAwJSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRiYWRnZS1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0O1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsXG4gIC5tYXQtYmFkZ2UtY29udGVudC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8vIFRoZSBhY3RpdmUgY2xhc3MgaXMgYWRkZWQgYWZ0ZXIgdGhlIGVsZW1lbnQgaXMgYWRkZWRcbiAgLy8gc28gaXQgY2FuIGFuaW1hdGUgc2NhbGUgdG8gZGVmYXVsdFxuICAubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZSB7XG4gICAgLy8gU2NhbGUgdG8gYG5vbmVgIGluc3RlYWQgb2YgYDFgIHRvIGF2b2lkIGJsdXJyeSB0ZXh0IGluIHNvbWUgYnJvd3NlcnMuXG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgLm1hdC1iYWRnZS1zbWFsbCB7XG4gICAgQGluY2x1ZGUgX21hdC1iYWRnZS1zaXplKCRtYXQtYmFkZ2Utc21hbGwtc2l6ZSk7XG4gIH1cbiAgLm1hdC1iYWRnZS1tZWRpdW0ge1xuICAgIEBpbmNsdWRlIF9tYXQtYmFkZ2Utc2l6ZSgkbWF0LWJhZGdlLWRlZmF1bHQtc2l6ZSk7XG4gIH1cbiAgLm1hdC1iYWRnZS1sYXJnZSB7XG4gICAgQGluY2x1ZGUgX21hdC1iYWRnZS1zaXplKCRtYXQtYmFkZ2UtbGFyZ2Utc2l6ZSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1iYWRnZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBmb250LXdlaWdodDogJG1hdC1iYWRnZS1mb250LXdlaWdodDtcbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplO1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgLy8gU2V0IHRoZSBmb250IHNpemUgdG8gNzUlIG9mIHRoZSBvcmlnaW5hbC5cbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplICogMC43NTtcbiAgfVxuXG4gIC5tYXQtYmFkZ2UtbGFyZ2UgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplICogMjtcbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtYm90dG9tLXNoZWV0LXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMTYsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtYm90dG9tLXNoZWV0LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG5cblxuJF9tYXQtYnV0dG9uLXJpcHBsZS1vcGFjaXR5OiAwLjE7XG5cbi8vIEFwcGxpZXMgYSBmb2N1cyBzdHlsZSB0byBhbiBtYXQtYnV0dG9uIGVsZW1lbnQgZm9yIGVhY2ggb2YgdGhlIHN1cHBvcnRlZCBwYWxldHRlcy5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LWNvbG9yKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcblxuICAmLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gIH1cblxuICAmLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICB9XG5cbiAgJi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHdhcm4pO1xuICB9XG5cbiAgJltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8gQXBwbGllcyB0aGUgYmFja2dyb3VuZCBjb2xvciBmb3IgYSByaXBwbGUuIElmIHRoZSB2YWx1ZSBwcm92aWRlZCBpcyBub3QgYSBTYXNzIGNvbG9yLFxuLy8gd2UgYXNzdW1lIHRoYXQgd2UndmUgYmVlbiBnaXZlbiBhIENTUyB2YXJpYWJsZS4gU2luY2Ugd2UgY2FuJ3QgcGVyZm9ybSBhbHBoYS1ibGVuZGluZ1xuLy8gb24gYSBDU1MgdmFyaWFibGUsIHdlIGluc3RlYWQgYWRkIHRoZSBvcGFjaXR5IGRpcmVjdGx5IHRvIHRoZSByaXBwbGUgZWxlbWVudC5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1yaXBwbGUtYmFja2dyb3VuZCgkcGFsZXR0ZSwgJGh1ZSwgJG9wYWNpdHkpIHtcbiAgJGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgJGh1ZSwgJG9wYWNpdHkpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgQGlmICh0eXBlLW9mKCRiYWNrZ3JvdW5kLWNvbG9yKSAhPSBjb2xvcikge1xuICAgIG9wYWNpdHk6ICRvcGFjaXR5O1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1yaXBwbGUtY29sb3IoJHRoZW1lLCAkaHVlLCAkb3BhY2l0eTogJF9tYXQtYnV0dG9uLXJpcHBsZS1vcGFjaXR5KSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gICYubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tcmlwcGxlLWJhY2tncm91bmQoJHByaW1hcnksICRodWUsICRvcGFjaXR5KTtcbiAgfVxuXG4gICYubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi1yaXBwbGUtYmFja2dyb3VuZCgkYWNjZW50LCAkaHVlLCAkb3BhY2l0eSk7XG4gIH1cblxuICAmLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXJpcHBsZS1iYWNrZ3JvdW5kKCR3YXJuLCAkaHVlLCAkb3BhY2l0eSk7XG4gIH1cbn1cblxuLy8gQXBwbGllcyBhIHByb3BlcnR5IHRvIGFuIG1hdC1idXR0b24gZWxlbWVudCBmb3IgZWFjaCBvZiB0aGUgc3VwcG9ydGVkIHBhbGV0dGVzLlxuQG1peGluIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCR0aGVtZSwgJHByb3BlcnR5LCAkaHVlKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICYubWF0LXByaW1hcnkge1xuICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRwcmltYXJ5LCAkaHVlKTtcbiAgfVxuICAmLm1hdC1hY2NlbnQge1xuICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRhY2NlbnQsICRodWUpO1xuICB9XG4gICYubWF0LXdhcm4ge1xuICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCR3YXJuLCAkaHVlKTtcbiAgfVxuXG4gICYubWF0LXByaW1hcnksICYubWF0LWFjY2VudCwgJi5tYXQtd2FybiwgJltkaXNhYmxlZF0ge1xuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICRwYWxldHRlOiBpZigkcHJvcGVydHkgPT0gJ2NvbG9yJywgJGZvcmVncm91bmQsICRiYWNrZ3JvdW5kKTtcbiAgICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRwYWxldHRlLCBkaXNhYmxlZC1idXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJ1dHRvbi10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1idXR0b24sIC5tYXQtaWNvbi1idXR0b24sIC5tYXQtc3Ryb2tlZC1idXR0b24ge1xuICAgIC8vIEJ1dHRvbnMgd2l0aG91dCBhIGJhY2tncm91bmQgY29sb3Igc2hvdWxkIGluaGVyaXQgdGhlIGZvbnQgY29sb3IuIFRoaXMgaXMgbmVjZXNzYXJ5IHRvXG4gICAgLy8gZW5zdXJlIHRoYXQgdGhlIGJ1dHRvbiBpcyByZWFkYWJsZSBvbiBjdXN0b20gYmFja2dyb3VuZCBjb2xvcnMuIEl0J3Mgd3JvbmcgdG8gYWx3YXlzIGFzc3VtZVxuICAgIC8vIHRoYXQgdGhvc2UgYnV0dG9ucyBhcmUgYWx3YXlzIHBsYWNlZCBpbnNpZGUgb2YgY29udGFpbmVycyB3aXRoIHRoZSBkZWZhdWx0IGJhY2tncm91bmRcbiAgICAvLyBjb2xvciBvZiB0aGUgdGhlbWUgKGUuZy4gdGhlbWVkIHRvb2xiYXJzKS5cbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCR0aGVtZSwgJ2NvbG9yJywgdGV4dCk7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tZm9jdXMtb3ZlcmxheS1jb2xvcigkdGhlbWUpO1xuXG4gICAgLy8gU2V0dXAgdGhlIHJpcHBsZSBjb2xvciB0byBiZSBiYXNlZCBvbiB0aGUgdGV4dCBjb2xvci4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHJpcHBsZXNcbiAgICAvLyBhcmUgbWF0Y2hpbmcgd2l0aCB0aGUgY3VycmVudCB0aGVtZSBwYWxldHRlIGFuZCBhcmUgaW4gY29udHJhc3QgdG8gdGhlIGJhY2tncm91bmQgY29sb3JcbiAgICAvLyAoZS5nIGluIHRoZW1lZCB0b29sYmFycykuXG4gICAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBvcGFjaXR5OiAkX21hdC1idXR0b24tcmlwcGxlLW9wYWNpdHk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZDogbWFwX2dldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG4gIH1cblxuICAvLyBOb3RlOiB0aGlzIG5lZWRzIGEgYml0IGV4dHJhIHNwZWNpZmljaXR5LCBiZWNhdXNlIHdlJ3JlIG5vdCBndWFyYW50ZWVkIHRoZSBpbmNsdXNpb25cbiAgLy8gb3JkZXIgb2YgdGhlIHRoZW1lIHN0eWxlcyBhbmQgdGhlIGJ1dHRvbiByZXNldCBtYXkgZW5kIHVwIHJlc2V0dGluZyB0aGlzIGFzIHdlbGwuXG4gIC5tYXQtc3Ryb2tlZC1idXR0b246bm90KFtkaXNhYmxlZF0pIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWZsYXQtYnV0dG9uLCAubWF0LXJhaXNlZC1idXR0b24sIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgICAvLyBEZWZhdWx0IGZvbnQgYW5kIGJhY2tncm91bmQgY29sb3Igd2hlbiBub3QgdXNpbmcgYW55IGNvbG9yIHBhbGV0dGUuXG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCByYWlzZWQtYnV0dG9uKTtcblxuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCR0aGVtZSwgJ2NvbG9yJywgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tdGhlbWUtcHJvcGVydHkoJHRoZW1lLCAnYmFja2dyb3VuZC1jb2xvcicsIGRlZmF1bHQpO1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXJpcHBsZS1jb2xvcigkdGhlbWUsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgLm1hdC1zdHJva2VkLWJ1dHRvbiwgLm1hdC1mbGF0LWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMCwgJHRoZW1lKTtcbiAgfVxuXG4gIC5tYXQtcmFpc2VkLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMiwgJHRoZW1lKTtcblxuICAgICY6bm90KFtkaXNhYmxlZF0pOmFjdGl2ZSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbig4LCAkdGhlbWUpO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mYWIsIC5tYXQtbWluaS1mYWIge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDYsICR0aGVtZSk7XG5cbiAgICAmOm5vdChbZGlzYWJsZWRdKTphY3RpdmUge1xuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMTIsICR0aGVtZSk7XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMCwgJHRoZW1lKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1idXR0b24tdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtYnV0dG9uLCAubWF0LXJhaXNlZC1idXR0b24sIC5tYXQtaWNvbi1idXR0b24sIC5tYXQtc3Ryb2tlZC1idXR0b24sXG4gIC5tYXQtZmxhdC1idXR0b24sIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYnV0dG9uKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRvZ2dsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGRpdmlkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUsXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMiwgJHRoZW1lKTtcbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuXG4gICAgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBmb2N1c2VkLWJ1dHRvbik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG5cbiAgICAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGZvY3VzZWQtYnV0dG9uLCAxKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggJGRpdmlkZXItY29sb3I7XG4gIH1cblxuICBbZGlyPSdydGwnXSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIGJvcmRlci1yaWdodDogc29saWQgMXB4ICRkaXZpZGVyLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwge1xuICAgIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgIGJvcmRlci10b3A6IHNvbGlkIDFweCAkZGl2aWRlci1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBzZWxlY3RlZC1idXR0b24pO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLWJ1dHRvbik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaXNhYmxlZC1idXR0b24tdG9nZ2xlKTtcblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIH1cblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIHNlbGVjdGVkLWRpc2FibGVkLWJ1dHRvbik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIGJvcmRlcjogc29saWQgMXB4ICRkaXZpZGVyLWNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRvZ2dsZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtY2FyZC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWNhcmQge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDEsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgIC8vIE5lZWRzIGV4dHJhIHNwZWNpZmljaXR5IHRvIGJlIGFibGUgdG8gb3ZlcnJpZGUgdGhlIGVsZXZhdGlvbiBzZWxlY3RvcnMuXG4gICAgJi5tYXQtY2FyZC1mbGF0IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYXJkLXN1YnRpdGxlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1jYXJkLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWNhcmQge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWNhcmQtdGl0bGUge1xuICAgIGZvbnQ6IHtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgaGVhZGxpbmUpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgdGl0bGUpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FyZC1oZWFkZXIgLm1hdC1jYXJkLXRpdGxlIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgdGl0bGUpO1xuICB9XG5cbiAgLm1hdC1jYXJkLXN1YnRpdGxlLFxuICAubWF0LWNhcmQtY29udGVudCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtY2hlY2tib3gtdGhlbWUoJHRoZW1lKSB7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG5cbiAgLy8gVGhlIGNvbG9yIG9mIHRoZSBjaGVja2JveCdzIGNoZWNrbWFyayAvIG1peGVkbWFyay5cbiAgJGNoZWNrYm94LW1hcmstY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgYmFja2dyb3VuZCk7XG5cbiAgLy8gTk9URSh0cmF2aXNrYXVmbWFuKTogV2hpbGUgdGhlIHNwZWMgY2FsbHMgZm9yIHRyYW5zbHVjZW50IGJsYWNrcy93aGl0ZXMgZm9yIGRpc2FibGVkIGNvbG9ycyxcbiAgLy8gdGhpcyBkb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBlbGVtZW50cyBsYXllcmVkIG9uIHRvcCBvZiBvbmUgYW5vdGhlci4gVG8gZ2V0IGFyb3VuZCB0aGlzIHdlXG4gIC8vIGJsZW5kIHRoZSBjb2xvcnMgdG9nZXRoZXIgYmFzZWQgb24gdGhlIGJhc2UgY29sb3IgYW5kIHRoZSB0aGVtZSBiYWNrZ3JvdW5kLlxuICAkd2hpdGUtMzBwY3Qtb3BhY2l0eS1vbi1kYXJrOiAjNjg2ODY4O1xuICAkYmxhY2stMjZwY3Qtb3BhY2l0eS1vbi1saWdodDogI2IwYjBiMDtcbiAgJGRpc2FibGVkLWNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJHdoaXRlLTMwcGN0LW9wYWNpdHktb24tZGFyaywgJGJsYWNrLTI2cGN0LW9wYWNpdHktb24tbGlnaHQpO1xuXG4gIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gICAgZmlsbDogJGNoZWNrYm94LW1hcmstY29sb3I7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIHtcbiAgICAvLyAhaW1wb3J0YW50IGlzIG5lZWRlZCBoZXJlIGJlY2F1c2UgYSBzdHJva2UgbXVzdCBiZSBzZXQgYXMgYW5cbiAgICAvLyBhdHRyaWJ1dGUgb24gdGhlIFNWRyBpbiBvcmRlciBmb3IgbGluZSBhbmltYXRpb24gdG8gd29yayBwcm9wZXJseS5cbiAgICBzdHJva2U6ICRjaGVja2JveC1tYXJrLWNvbG9yICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBjZGstaGlnaC1jb250cmFzdChibGFjay1vbi13aGl0ZSkge1xuICAgICAgLy8gSGF2aW5nIHRoZSBvbmUgYWJvdmUgYmUgIWltcG9ydGFudCBlbmRzIHVwIG92ZXJyaWRpbmcgdGhlIGJyb3dzZXIncyBhdXRvbWF0aWNcbiAgICAgIC8vIGNvbG9yIGludmVyc2lvbiBzbyB3ZSBuZWVkIHRvIHJlLWludmVydCBpdCBvdXJzZWx2ZXMgZm9yIGJsYWNrLW9uLXdoaXRlLlxuICAgICAgc3Ryb2tlOiAjMDAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjaGVja2JveC1tYXJrLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLCAubWF0LWNoZWNrYm94LWNoZWNrZWQge1xuICAgICYubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICAmLm1hdC1jaGVja2JveC1jaGVja2VkLFxuICAgICYubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICAgICAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5tYXQtY2hlY2tib3gtY2hlY2tlZCkge1xuICAgICAgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGNkay1oaWdoLWNvbnRyYXN0IHtcbiAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG4gIH1cblxuICAvLyBUaGlzIG9uZSBpcyBtb3ZlZCBkb3duIGhlcmUgc28gaXQgY2FuIHRhcmdldCBib3RoXG4gIC8vIHRoZSB0aGVtZSBjb2xvcnMgYW5kIHRoZSBkaXNhYmxlZCBzdGF0ZS5cbiAgQGluY2x1ZGUgY2RrLWhpZ2gtY29udHJhc3Qge1xuICAgIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICAvLyBOZWVkcyB0byBiZSByZW1vdmVkIGJlY2F1c2UgaXQgaGlkZXMgdGhlIGNoZWNrYm94IG91dGxpbmUuXG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN3aXRjaCB0aGlzIHRvIGEgc29saWQgY29sb3Igc2luY2Ugd2UncmUgdXNpbmcgYG9wYWNpdHlgXG4gIC8vIHRvIGNvbnRyb2wgaG93IG9wYXF1ZSB0aGUgcmlwcGxlIHNob3VsZCBiZS5cbiAgLm1hdC1jaGVja2JveCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXBfZ2V0KG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKSwgYmFzZSk7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLFxuICAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkge1xuICAgICYubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1jaGVja2JveC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1jaGVja2JveCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC8vIFRPRE8oa2FyYSk6IFJlbW92ZSB0aGlzIHN0eWxlIHdoZW4gZml4aW5nIHZlcnRpY2FsIGJhc2VsaW5lXG4gIC5tYXQtY2hlY2tib3gtbGF5b3V0IC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICAgIGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxufVxuXG5cblxuXG5cblxuJG1hdC1jaGlwLXJlbW92ZS1mb250LXNpemU6IDE4cHg7XG5cbkBtaXhpbiBtYXQtY2hpcHMtY29sb3IoJGZvcmVncm91bmQsICRiYWNrZ3JvdW5kKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGZvcmVncm91bmQ7XG5cbiAgLm1hdC1jaGlwLXJlbW92ZSB7XG4gICAgY29sb3I6ICRmb3JlZ3JvdW5kO1xuICAgIG9wYWNpdHk6IDAuNDtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWNoaXBzLXRoZW1lLWNvbG9yKCRwYWxldHRlKSB7XG4gIEBpbmNsdWRlIG1hdC1jaGlwcy1jb2xvcihtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QpLCBtYXQtY29sb3IoJHBhbGV0dGUpKTtcblxuICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QsIDAuMSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1jaGlwcy10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgJHVuc2VsZWN0ZWQtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCB1bnNlbGVjdGVkLWNoaXApO1xuICAkdW5zZWxlY3RlZC1mb3JlZ3JvdW5kOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcCB7XG4gICAgQGluY2x1ZGUgbWF0LWNoaXBzLWNvbG9yKCR1bnNlbGVjdGVkLWZvcmVncm91bmQsICR1bnNlbGVjdGVkLWJhY2tncm91bmQpO1xuXG4gICAgJjpub3QoLm1hdC1jaGlwLWRpc2FibGVkKSB7XG4gICAgICAmOmFjdGl2ZSB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDMsICR0aGVtZSk7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtY2hpcC1yZW1vdmU6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAwLjU0O1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWNoaXAtZGlzYWJsZWQge1xuICAgICAgb3BhY2l0eTogMC40O1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hcF9nZXQoJGZvcmVncm91bmQsIGJhc2UpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZCB7XG4gICAgJi5tYXQtcHJpbWFyeSB7XG4gICAgICBAaW5jbHVkZSBtYXQtY2hpcHMtdGhlbWUtY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgbWF0LWNoaXBzLXRoZW1lLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgbWF0LWNoaXBzLXRoZW1lLWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWNoaXBzLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWNoaXAge1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTIpO1xuICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcblxuICAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uLFxuICAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkbWF0LWNoaXAtcmVtb3ZlLWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LXRhYmxlLXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtdGFibGUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgfVxuXG4gIC5tYXQtdGFibGUgdGhlYWQsIC5tYXQtdGFibGUgdGJvZHksIC5tYXQtdGFibGUgdGZvb3QsXG4gIG1hdC1oZWFkZXItcm93LCBtYXQtcm93LCBtYXQtZm9vdGVyLXJvdyxcbiAgW21hdC1oZWFkZXItcm93XSwgW21hdC1yb3ddLCBbbWF0LWZvb3Rlci1yb3ddLFxuICAubWF0LXRhYmxlLXN0aWNreSB7XG4gICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgfVxuXG4gIG1hdC1yb3csIG1hdC1oZWFkZXItcm93LCBtYXQtZm9vdGVyLXJvdyxcbiAgdGgubWF0LWhlYWRlci1jZWxsLCB0ZC5tYXQtY2VsbCwgdGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jZWxsLCAubWF0LWZvb3Rlci1jZWxsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRhYmxlLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXRhYmxlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxuXG4gIC5tYXQtY2VsbCwgLm1hdC1mb290ZXItY2VsbCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuXG5cblxuJG1hdC1kYXRlcGlja2VyLXNlbGVjdGVkLXRvZGF5LWJveC1zaGFkb3ctd2lkdGg6IDFweDtcbiRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC1mYWRlLWFtb3VudDogMC42O1xuJG1hdC1kYXRlcGlja2VyLXRvZGF5LWZhZGUtYW1vdW50OiAwLjI7XG4kbWF0LWNhbGVuZGFyLWJvZHktZm9udC1zaXplOiAxM3B4ICFkZWZhdWx0O1xuJG1hdC1jYWxlbmRhci13ZWVrZGF5LXRhYmxlLWZvbnQtc2l6ZTogMTFweCAhZGVmYXVsdDtcblxuQG1peGluIF9tYXQtZGF0ZXBpY2tlci1jb2xvcigkcGFsZXR0ZSkge1xuICAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgICRiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRiYWNrZ3JvdW5kKSA9PSBjb2xvcikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZmFkZS1vdXQoJGJhY2tncm91bmQsICRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC1mYWRlLWFtb3VudCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIElmIHdlIGNvdWxkbid0IHJlc29sdmUgdG8gYmFja2dyb3VuZCB0byBhIGNvbG9yIChlLmcuIGl0J3MgYSBDU1MgdmFyaWFibGUpLFxuICAgICAgLy8gZmFsbCBiYWNrIHRvIGZhZGluZyB0aGUgY29udGVudCBvdXQgdmlhIGBvcGFjaXR5YC5cbiAgICAgIG9wYWNpdHk6ICRtYXQtZGF0ZXBpY2tlci10b2RheS1mYWRlLWFtb3VudDtcbiAgICB9XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwICRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC10b2RheS1ib3gtc2hhZG93LXdpZHRoXG4gICAgICAgICAgICAgICAgbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWRhdGVwaWNrZXItdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG5cbiAgLm1hdC1jYWxlbmRhci1hcnJvdyB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBpY29uKTtcbiAgfVxuXG4gIC8vIFRoZSBwcmV2L25leHQgYnV0dG9ucyBuZWVkIGEgYml0IG1vcmUgc3BlY2lmaWNpdHkgdG9cbiAgLy8gYXZvaWQgYmVpbmcgb3ZlcndyaXR0ZW4gYnkgdGhlIC5tYXQtaWNvbi1idXR0b24uXG4gIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUsXG4gIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItbmV4dC1idXR0b24sXG4gIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItcHJldmlvdXMtYnV0dG9uIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBpY29uKTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXItZGl2aWRlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQpOmhvdmVyLFxuICAuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZSxcbiAgLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZSB7XG4gICAgJiA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgICAvLyBOb3RlOiB0aG91Z2ggaXQncyBub3QgdGV4dCwgdGhlIGJvcmRlciBpcyBhIGhpbnQgYWJvdXQgdGhlIGZhY3QgdGhhdCB0aGlzIGlzIHRvZGF5J3MgZGF0ZSxcbiAgICAvLyBzbyB3ZSB1c2UgdGhlIGhpbnQgY29sb3IuXG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICAgICRjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IpIHtcbiAgICAgIGJvcmRlci1jb2xvcjogZmFkZS1vdXQoJGNvbG9yLCAkbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBJZiB0aGUgY29sb3IgZGlkbid0IHJlc29sdmUgdG8gYSBjb2xvciB2YWx1ZSwgYnV0IHNvbWV0aGluZyBsaWtlIGEgQ1NTIHZhcmlhYmxlLCB3ZSBjYW4ndFxuICAgICAgLy8gZmFkZSBpdCBvdXQgc28gd2UgZmFsbCBiYWNrIHRvIHJlZHVjaW5nIHRoZSBlbGVtZW50IG9wYWNpdHkuIE5vdGUgdGhhdCB3ZSBkb24ndCB1c2UgdGhlXG4gICAgICAvLyAkbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQsIGJlY2F1c2UgaGludCB0ZXh0IHVzdWFsbHkgaGFzIHNvbWUgb3BhY2l0eSBhcHBsaWVkXG4gICAgICAvLyB0byBpdCBhbHJlYWR5IGFuZCB3ZSBkb24ndCB3YW50IHRoZW0gdG8gc3RhY2sgb24gdG9wIG9mIGVhY2ggb3RoZXIuXG4gICAgICBvcGFjaXR5OiAwLjU7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLWNvbG9yKG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KSk7XG5cbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDQsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWRhdGVwaWNrZXItY29sb3IobWFwLWdldCgkdGhlbWUsIGFjY2VudCkpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLWNvbG9yKG1hcC1nZXQoJHRoZW1lLCB3YXJuKSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQtdG91Y2gge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gIH1cblxuICAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSksIHRleHQpO1xuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IobWFwLWdldCgkdGhlbWUsIGFjY2VudCksIHRleHQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgd2FybiksIHRleHQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWRhdGVwaWNrZXItdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtY2FsZW5kYXIge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHkge1xuICAgIGZvbnQtc2l6ZTogJG1hdC1jYWxlbmRhci1ib2R5LWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCxcbiAgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJ1dHRvbik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHRoIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiAkbWF0LWNhbGVuZGFyLXdlZWtkYXktdGFibGUtZm9udC1zaXplO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1kaWFsb2ctdGhlbWUoJHRoZW1lKSB7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1kaWFsb2ctY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigyNCwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGRpYWxvZyk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1kaWFsb2ctdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtZGlhbG9nLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgdGl0bGUpO1xuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LWV4cGFuc2lvbi1wYW5lbC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWV4cGFuc2lvbi1wYW5lbCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMiwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1hY3Rpb24tcm93IHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwge1xuICAgICYgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkLFxuICAgICYgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gICAgJjpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyIHtcbiAgICAgICY6bm90KFthcmlhLWRpc2FibGVkPSd0cnVlJ10pIHtcbiAgICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gRGlzYWJsZSB0aGUgaG92ZXIgb24gdG91Y2ggZGV2aWNlcyBzaW5jZSBpdCBjYW4gYXBwZWFyIGxpa2UgaXQgaXMgc3R1Y2suIFdlIGNhbid0IHVzZVxuICAvLyBgQG1lZGlhIChob3ZlcilgIGFib3ZlLCBiZWNhdXNlIHRoZSBkZXNrdG9wIHN1cHBvcnQgYnJvd3NlciBzdXBwb3J0IGlzbid0IGdyZWF0LlxuICBAbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gICAgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpOm5vdChbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddKVxuICAgICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbixcbiAgLm1hdC1leHBhbnNpb24taW5kaWNhdG9yOjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtYnV0dG9uKTtcblxuICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSxcbiAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtZXhwYW5zaW9uLXBhbmVsLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBzdWJoZWFkaW5nLTEpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG5cbi8vIFRoaXMgbWl4aW4gd2lsbCBlbnN1cmUgdGhhdCBsaW5lcyB0aGF0IG92ZXJmbG93IHRoZSBjb250YWluZXIgd2lsbCBoaWRlIHRoZSBvdmVyZmxvdyBhbmRcbi8vIHRydW5jYXRlIG5lYXRseSB3aXRoIGFuIGVsbGlwc2lzLlxuQG1peGluIG1hdC10cnVuY2F0ZS1saW5lKCkge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLy8gTWl4aW4gdG8gcHJvdmlkZSBhbGwgbWF0LWxpbmUgc3R5bGVzLCBjaGFuZ2luZyBzZWNvbmRhcnkgZm9udCBzaXplIGJhc2VkIG9uIHdoZXRoZXIgdGhlIGxpc3Rcbi8vIGlzIGluIGRlbnNlIG1vZGUuXG5AbWl4aW4gbWF0LWxpbmUtYmFzZSgkc2Vjb25kYXJ5LWZvbnQtc2l6ZSkge1xuICAubWF0LWxpbmUge1xuICAgIEBpbmNsdWRlIG1hdC10cnVuY2F0ZS1saW5lKCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIC8vIGFsbCBsaW5lcyBidXQgdGhlIHRvcCBsaW5lIHNob3VsZCBoYXZlIHNtYWxsZXIgdGV4dFxuICAgICY6bnRoLWNoaWxkKG4rMikge1xuICAgICAgZm9udC1zaXplOiAkc2Vjb25kYXJ5LWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gVGhpcyBtaXhpbiBub3JtYWxpemVzIGRlZmF1bHQgZWxlbWVudCBzdHlsZXMsIGUuZy4gZm9udCB3ZWlnaHQgZm9yIGhlYWRpbmcgdGV4dC5cbkBtaXhpbiBtYXQtbm9ybWFsaXplLXRleHQoKSB7XG4gICYgPiAqIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgfVxufVxuXG4vLyBUaGlzIG1peGluIHByb3ZpZGVzIGJhc2Ugc3R5bGVzIGZvciB0aGUgd3JhcHBlciBhcm91bmQgbWF0LWxpbmUgZWxlbWVudHMgaW4gYSBsaXN0LlxuQG1peGluIG1hdC1saW5lLXdyYXBwZXItYmFzZSgpIHtcbiAgQGluY2x1ZGUgbWF0LW5vcm1hbGl6ZS10ZXh0KCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgLy8gTXVzdCByZW1vdmUgd3JhcHBlciB3aGVuIGxpbmVzIGFyZSBlbXB0eSBvciBpdCB0YWtlcyB1cCBob3Jpem9udGFsXG4gIC8vIHNwYWNlIGFuZCBwdXNoZXMgb3RoZXIgZWxlbWVudHMgdG8gdGhlIHJpZ2h0LlxuICAmOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cblxuXG4vLyBJbmNsdWRlIHRoaXMgZW1wdHkgbWl4aW4gZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIG90aGVyIGNvbXBvbmVudHMuXG5AbWl4aW4gbWF0LWdyaWQtbGlzdC10aGVtZSgkdGhlbWUpIHsgfVxuXG5AbWl4aW4gbWF0LWdyaWQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1ncmlkLXRpbGUtaGVhZGVyLFxuICAubWF0LWdyaWQtdGlsZS1mb290ZXIge1xuICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKSk7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuLy8gSW5jbHVkZSB0aGlzIGVtcHR5IG1peGluIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBvdGhlciBjb21wb25lbnRzLlxuQG1peGluIG1hdC1pY29uLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWljb24ge1xuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1pY29uLXR5cG9ncmFwaHkoJGNvbmZpZykgeyB9XG5cblxuXG5cblxuLy8gUmVuZGVycyBhIGdyYWRpZW50IGZvciBzaG93aW5nIHRoZSBkYXNoZWQgbGluZSB3aGVuIHRoZSBpbnB1dCBpcyBkaXNhYmxlZC5cbi8vIFVubGlrZSB1c2luZyBhIGJvcmRlciwgYSBncmFkaWVudCBhbGxvd3MgdXMgdG8gYWRqdXN0IHRoZSBzcGFjaW5nIG9mIHRoZSBkb3R0ZWQgbGluZVxuLy8gdG8gbWF0Y2ggdGhlIE1hdGVyaWFsIERlc2lnbiBzcGVjLlxuQG1peGluIG1hdC1jb250cm9sLWRpc2FibGVkLXVuZGVybGluZSgkY29sb3IpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkY29sb3IgMCUsICRjb2xvciAzMyUsIHRyYW5zcGFyZW50IDAlKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0cHggMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuXG4vLyBGaWd1cmVzIG91dCB0aGUgY29sb3Igb2YgdGhlIHBsYWNlaG9sZGVyIGZvciBhIGZvcm0gY29udHJvbC5cbi8vIFVzZWQgcHJpbWFyaWx5IHRvIHByZXZlbnQgdGhlIHZhcmlvdXMgZm9ybSBjb250cm9scyBmcm9tXG4vLyBiZWNvbWluZyBvdXQgb2Ygc3luYyBzaW5jZSB0aGVzZSBjb2xvcnMgYXJlbid0IGluIGEgcGFsZXR0ZS5cbkBmdW5jdGlvbiBfbWF0LWNvbnRyb2wtcGxhY2Vob2xkZXItY29sb3IoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG4gIEByZXR1cm4gbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCwgaWYoJGlzLWRhcmstdGhlbWUsIDAuNSwgMC40MikpO1xufVxuXG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIG1hdGVyaWFsL25vLXByZWZpeGVzICovXG5AbWl4aW4gdXNlci1zZWxlY3QoJHZhbHVlKSB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgLW1vei11c2VyLXNlbGVjdDogJHZhbHVlO1xuICAtbXMtdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbn1cblxuQG1peGluIGlucHV0LXBsYWNlaG9sZGVyIHtcbiAgJjo6cGxhY2Vob2xkZXIge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgJjo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gY3Vyc29yLWdyYWIge1xuICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcbiAgY3Vyc29yOiBncmFiO1xufVxuXG5AbWl4aW4gY3Vyc29yLWdyYWJiaW5nIHtcbiAgY3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nO1xuICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuXG5AbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmFsdWUpIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiAkdmFsdWU7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6ICR2YWx1ZTtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cblxuXG5cbkBtaXhpbiBtYXQtaW5wdXQtdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtaW5wdXQtZWxlbWVudDpkaXNhYmxlZCxcbiAgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gIH1cblxuICAubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIGNhcmV0LWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuXG4gICAgQGluY2x1ZGUgaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IF9tYXQtY29udHJvbC1wbGFjZWhvbGRlci1jb2xvcigkdGhlbWUpO1xuICAgIH1cblxuICAgIC8vIE9uIGRhcmsgdGhlbWVzIHdlIHNldCB0aGUgbmF0aXZlIGBzZWxlY3RgIGNvbG9yIHRvIHNvbWUgc2hhZGUgb2Ygd2hpdGUsXG4gICAgLy8gaG93ZXZlciB0aGUgY29sb3IgcHJvcGFnYXRlcyB0byBhbGwgb2YgdGhlIGBvcHRpb25gIGVsZW1lbnRzLCB3aGljaCBhcmVcbiAgICAvLyBhbHdheXMgb24gYSB3aGl0ZSBiYWNrZ3JvdW5kIGluc2lkZSB0aGUgZHJvcGRvd24sIGNhdXNpbmcgdGhlbSB0byBibGVuZCBpbi5cbiAgICAvLyBTaW5jZSB3ZSBjYW4ndCBjaGFuZ2UgYmFja2dyb3VuZCBvZiB0aGUgZHJvcGRvd24sIHdlIG5lZWQgdG8gZXhwbGljaXRseVxuICAgIC8vIHJlc2V0IHRoZSBjb2xvciBvZiB0aGUgb3B0aW9ucyB0byBzb21ldGhpbmcgZGFyay5cbiAgICBAaWYgKG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKSkge1xuICAgICAgb3B0aW9uIHtcbiAgICAgICAgY29sb3I6ICRkYXJrLXByaW1hcnktdGV4dDtcbiAgICAgIH1cblxuICAgICAgb3B0aW9uOmRpc2FibGVkIHtcbiAgICAgICAgY29sb3I6ICRkYXJrLWRpc2FibGVkLXRleHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1hY2NlbnQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC13YXJuIC5tYXQtaW5wdXQtZWxlbWVudCxcbiAgLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1pbnB1dC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuXG4gIC8vIFRoZSBhbW91bnQgb2Ygc3BhY2UgYmV0d2VlbiB0aGUgdG9wIG9mIHRoZSBsaW5lIGFuZCB0aGUgdG9wIG9mIHRoZSBhY3R1YWwgdGV4dFxuICAvLyAoYXMgYSBmcmFjdGlvbiBvZiB0aGUgZm9udC1zaXplKS5cbiAgJGxpbmUtc3BhY2luZzogKCRsaW5lLWhlaWdodCAtIDEpIC8gMjtcblxuICAvLyA8aW5wdXQ+IGVsZW1lbnRzIHNlZW0gdG8gaGF2ZSB0aGVpciBoZWlnaHQgc2V0IHNsaWdodGx5IHRvbyBsYXJnZSBvbiBTYWZhcmkgY2F1c2luZyB0aGUgdGV4dCB0b1xuICAvLyBiZSBtaXNhbGlnbmVkIHcuci50LiB0aGUgcGxhY2Vob2xkZXIuIEFkZGluZyB0aGlzIG1hcmdpbiBjb3JyZWN0cyBpdC5cbiAgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIG1hcmdpbi10b3A6IC0kbGluZS1zcGFjaW5nICogMWVtO1xuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtbGlzdC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWxpc3QtYmFzZSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXN1YmhlYWRlciB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1saXN0LWl0ZW0tZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlzYWJsZWQtbGlzdC1vcHRpb24pO1xuICB9XG5cbiAgLm1hdC1saXN0LW9wdGlvbixcbiAgLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbSxcbiAgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbSB7XG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdob3ZlcicpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWxpc3QtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gICRmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuXG4gIC5tYXQtbGlzdC1pdGVtIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICB9XG5cbiAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgfVxuXG4gIC8vIERlZmF1bHQgbGlzdFxuICAubWF0LWxpc3QtYmFzZSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHN1YmhlYWRpbmctMik7XG4gICAgICBAaW5jbHVkZSBtYXQtbGluZS1iYXNlKG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKSk7XG4gICAgfVxuXG4gICAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgc3ViaGVhZGluZy0yKTtcbiAgICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpKTtcbiAgICB9XG5cbiAgICAubWF0LXN1YmhlYWRlciB7XG4gICAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMik7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0yKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cblxuICAvLyBEZW5zZSBsaXN0XG4gIC5tYXQtbGlzdC1iYXNlW2RlbnNlXSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgQGluY2x1ZGUgbWF0LWxpbmUtYmFzZShtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pKTtcbiAgICB9XG5cbiAgICAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKSk7XG4gICAgfVxuXG4gICAgLm1hdC1zdWJoZWFkZXIge1xuICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1tZW51LXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtbWVudS1wYW5lbCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdjYXJkJyk7XG4gIH1cblxuICAubWF0LW1lbnUtaXRlbSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ3RleHQnKTtcblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICYsICY6OmFmdGVyIHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2Rpc2FibGVkJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1tZW51LWl0ZW0gLm1hdC1pY29uLW5vLWNvbG9yLFxuICAubWF0LW1lbnUtaXRlbS1zdWJtZW51LXRyaWdnZXI6OmFmdGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAnaWNvbicpO1xuICB9XG5cbiAgLm1hdC1tZW51LWl0ZW06aG92ZXIsXG4gIC5tYXQtbWVudS1pdGVtLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gIC5tYXQtbWVudS1pdGVtLmNkay1rZXlib2FyZC1mb2N1c2VkLFxuICAubWF0LW1lbnUtaXRlbS1oaWdobGlnaHRlZCB7XG4gICAgJjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnaG92ZXInKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1tZW51LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LW1lbnUtaXRlbSB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LXBhZ2luYXRvci10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcblxuICAubWF0LXBhZ2luYXRvciB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICB9XG5cbiAgLm1hdC1wYWdpbmF0b3IsXG4gIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4gIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCB7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2ljb24nKTtcbiAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCBtYXQtY29sb3IoJGZvcmVncm91bmQsICdpY29uJyk7XG4gIH1cblxuICAubWF0LXBhZ2luYXRvci1maXJzdCxcbiAgLm1hdC1wYWdpbmF0b3ItbGFzdCB7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2ljb24nKTtcbiAgfVxuXG4gIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIHtcbiAgICAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4gICAgLm1hdC1wYWdpbmF0b3ItaW5jcmVtZW50LFxuICAgIC5tYXQtcGFnaW5hdG9yLWZpcnN0LFxuICAgIC5tYXQtcGFnaW5hdG9yLWxhc3Qge1xuICAgICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsICdkaXNhYmxlZCcpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXBhZ2luYXRvci10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1wYWdpbmF0b3IsXG4gIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbik7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuQG1peGluIG1hdC1wcm9ncmVzcy1iYXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICAgIGZpbGw6IG1hdC1jb2xvcigkcHJpbWFyeSwgbGlnaHRlcik7XG4gIH1cblxuICAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgbGlnaHRlcik7XG4gIH1cblxuICAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQge1xuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICAgICAgZmlsbDogbWF0LWNvbG9yKCRhY2NlbnQsIGxpZ2h0ZXIpO1xuICAgIH1cblxuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIHtcbiAgICAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgICAgIGZpbGw6IG1hdC1jb2xvcigkd2FybiwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkd2FybiwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1wcm9ncmVzcy1iYXItdHlwb2dyYXBoeSgkY29uZmlnKSB7IH1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG5cbiAgLm1hdC1wcm9ncmVzcy1zcGlubmVyLCAubWF0LXNwaW5uZXIge1xuICAgIGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cbkBtaXhpbiBfbWF0LXJhZGlvLWNvbG9yKCRwYWxldHRlKSB7XG4gICYubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlKTtcbiAgfVxuXG4gIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuICAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSxcbiAgJi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLFxuICAmOmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtcmFkaW8tdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1yYWRpby1idXR0b24ge1xuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgX21hdC1yYWRpby1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtcmFkaW8tY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXJhZGlvLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIG5lZWRzIGV4dHJhIHNwZWNpZmljaXR5LCBiZWNhdXNlIHRoZSBjbGFzc2VzIGFib3ZlIGFyZSBjb21iaW5lZFxuICAgIC8vIChlLmcuIGAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50YCkgd2hpY2ggaW5jcmVhc2VzIHRoZWlyIHNwZWNpZmljaXR5IGEgbG90LlxuICAgIC8vIFRPRE86IGNvbnNpZGVyIG1ha2luZyB0aGUgc2VsZWN0b3JzIGludG8gZGVzY2VuZGFudHMgKGAubWF0LXByaW1hcnkgLm1hdC1yYWRpby1idXR0b25gKS5cbiAgICAmLm1hdC1yYWRpby1kaXNhYmxlZCB7XG4gICAgICAmLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlLFxuICAgICAgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgICAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQpO1xuICAgICAgfVxuXG4gICAgICAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50LFxuICAgICAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkKTtcbiAgICAgIH1cblxuICAgICAgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFN3aXRjaCB0aGlzIHRvIGEgc29saWQgY29sb3Igc2luY2Ugd2UncmUgdXNpbmcgYG9wYWNpdHlgXG4gICAgLy8gdG8gY29udHJvbCBob3cgb3BhcXVlIHRoZSByaXBwbGUgc2hvdWxkIGJlLlxuICAgIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwX2dldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcmFkaW8tdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1zZWxlY3QtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogX21hdC1jb250cm9sLXBsYWNlaG9sZGVyLWNvbG9yKCR0aGVtZSk7XG4gIH1cblxuICAubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gIH1cblxuICAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1zZWxlY3QtcGFuZWwge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJHRoZW1lKTtcblxuICAgIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIsIDAuMTIpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZCB7XG4gICAgJi5tYXQtZm9jdXNlZCB7XG4gICAgICAmLm1hdC1wcmltYXJ5IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWFjY2VudCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LXdhcm4gLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWludmFsaWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1zZWxlY3QtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcblxuICAubWF0LXNlbGVjdCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIGhlaWdodDogJGxpbmUtaGVpZ2h0ICogMWVtO1xuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LXNpZGVuYXYtdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICRkcmF3ZXItYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAkZHJhd2VyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yOiAgbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBiYWNrZ3JvdW5kKTtcbiAgJGRyYXdlci1wdXNoLWJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlhbG9nKTtcbiAgJGRyYXdlci1zaWRlLWJvcmRlcjogc29saWQgMXB4IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG5cbiAgLm1hdC1kcmF3ZXItY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJhd2VyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1kcmF3ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkcmF3ZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LWRyYXdlci1wdXNoIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkcmF3ZXItcHVzaC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cblxuICAgICY6bm90KC5tYXQtZHJhd2VyLXNpZGUpIHtcbiAgICAgIC8vIFRoZSBlbGV2YXRpb24gb2Ygei0xNiBpcyBub3RlZCBpbiB0aGUgZGVzaWduIHNwZWNpZmljYXRpb25zLlxuICAgICAgLy8gU2VlIGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1kcmF3ZXIuaHRtbFxuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMTYsICR0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kcmF3ZXItc2lkZSB7XG4gICAgYm9yZGVyLXJpZ2h0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuXG4gICAgJi5tYXQtZHJhd2VyLWVuZCB7XG4gICAgICBib3JkZXItbGVmdDogJGRyYXdlci1zaWRlLWJvcmRlcjtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICB9XG4gIH1cblxuICBbZGlyPSdydGwnXSAubWF0LWRyYXdlci1zaWRlIHtcbiAgICBib3JkZXItbGVmdDogJGRyYXdlci1zaWRlLWJvcmRlcjtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG5cbiAgICAmLm1hdC1kcmF3ZXItZW5kIHtcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZHJhd2VyLWJhY2tkcm9wLm1hdC1kcmF3ZXItc2hvd24ge1xuICAgICRvcGFjaXR5OiAwLjY7XG4gICAgJGJhY2tkcm9wLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQsICRvcGFjaXR5KTtcblxuICAgIEBpZiAodHlwZS1vZigkYmFja2Ryb3AtY29sb3IpID09IGNvbG9yKSB7XG4gICAgICAvLyBXZSB1c2UgaW52ZXJ0KCkgaGVyZSB0byBoYXZlIHRoZSBkYXJrZW4gdGhlIGJhY2tncm91bmQgY29sb3IgZXhwZWN0ZWQgdG8gYmUgdXNlZC4gSWYgdGhlXG4gICAgICAvLyBiYWNrZ3JvdW5kIGlzIGxpZ2h0LCB3ZSB1c2UgYSBkYXJrIGJhY2tkcm9wLiBJZiB0aGUgYmFja2dyb3VuZCBpcyBkYXJrLFxuICAgICAgLy8gd2UgdXNlIGEgbGlnaHQgYmFja2Ryb3AuXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbnZlcnQoJGJhY2tkcm9wLWNvbG9yKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gSWYgd2UgY291bGRuJ3QgcmVzb2x2ZSB0aGUgYmFja2Ryb3AgY29sb3IgdG8gYSBjb2xvciB2YWx1ZSwgZmFsbCBiYWNrIHRvIHVzaW5nXG4gICAgICAvLyBgb3BhY2l0eWAgdG8gbWFrZSBpdCBvcGFxdWUgc2luY2UgaXRzIGVuZCB2YWx1ZSBjb3VsZCBiZSBhIHNvbGlkIGNvbG9yLlxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tkcm9wLWNvbG9yO1xuICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc2lkZW5hdi10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cblxuQG1peGluIF9tYXQtc2xpZGUtdG9nZ2xlLWNoZWNrZWQoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSkge1xuICAmLm1hdC1jaGVja2VkIHtcbiAgICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSk7XG4gICAgfVxuXG4gICAgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgICAgIC8vIE9wYWNpdHkgaXMgZGV0ZXJtaW5lZCBmcm9tIHRoZSBzcGVjcyBmb3IgdGhlIHNlbGVjdGlvbiBjb250cm9scy5cbiAgICAgIC8vIFNlZTogaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vY29tcG9uZW50cy9zZWxlY3Rpb24tY29udHJvbHMuaHRtbCNzcGVjc1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAkdGh1bWItY2hlY2tlZC1odWUsIDAuNTQpO1xuICAgIH1cblxuICAgIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgLy8gU2V0IG5vIG9wYWNpdHkgZm9yIHRoZSByaXBwbGVzIGJlY2F1c2UgdGhlIHJpcHBsZSBvcGFjaXR5IHdpbGwgYmUgYWRqdXN0ZWQgZHluYW1pY2FsbHlcbiAgICAgIC8vIGJhc2VkIG9uIHRoZSB0eXBlIG9mIGludGVyYWN0aW9uIHdpdGggdGhlIHNsaWRlLXRvZ2dsZSAoZS5nLiBmb3IgaG92ZXIsIGZvY3VzKVxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAkdGh1bWItY2hlY2tlZC1odWUpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNsaWRlLXRvZ2dsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcms6IG1hcF9nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLy8gQ29sb3IgaHVlcyBhcmUgYmFzZWQgb24gdGhlIHNwZWNzIHdoaWNoIGJyaWVmbHkgc2hvdyB0aGUgaHVlcyB0aGF0IGFyZSBhcHBsaWVkIHRvIGEgc3dpdGNoLlxuICAvLyBUaGUgMjAxOCBzcGVjcyBubyBsb25nZXIgZGVzY3JpYmUgaG93IGRhcmsgc3dpdGNoZXMgc2hvdWxkIGxvb2sgbGlrZS4gRHVlIHRvIHRoZSBsYWNrIG9mXG4gIC8vIGluZm9ybWF0aW9uIGZvciBkYXJrIHRoZW1lZCBzd2l0Y2hlcywgd2UgcGFydGlhbGx5IGtlZXAgdGhlIG9sZCBiZWhhdmlvciB0aGF0IGlzIGJhc2VkIG9uXG4gIC8vIHRoZSBwcmV2aW91cyBzcGVjaWZpY2F0aW9ucy4gRm9yIHRoZSBjaGVja2VkIGNvbG9yIHdlIGFsd2F5cyB1c2UgdGhlIGBkZWZhdWx0YCBodWUgYmVjYXVzZVxuICAvLyB0aGF0IGZvbGxvd3MgTURDIGFuZCBhbHNvIG1ha2VzIGl0IGVhc2llciBmb3IgcGVvcGxlIHRvIGNyZWF0ZSBhIGN1c3RvbSB0aGVtZSB3aXRob3V0IG5lZWRpbmdcbiAgLy8gdG8gc3BlY2lmeSBlYWNoIGh1ZSBpbmRpdmlkdWFsbHkuXG4gICR0aHVtYi11bmNoZWNrZWQtaHVlOiBpZigkaXMtZGFyaywgNDAwLCA1MCk7XG4gICR0aHVtYi1jaGVja2VkLWh1ZTogZGVmYXVsdDtcblxuICAkYmFyLXVuY2hlY2tlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZCk7XG4gICRyaXBwbGUtdW5jaGVja2VkLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGJhc2UpO1xuXG4gIC5tYXQtc2xpZGUtdG9nZ2xlIHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlLXRvZ2dsZS1jaGVja2VkKCRhY2NlbnQsICR0aHVtYi1jaGVja2VkLWh1ZSk7XG5cbiAgICAmLm1hdC1wcmltYXJ5IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtc2xpZGUtdG9nZ2xlLWNoZWNrZWQoJHByaW1hcnksICR0aHVtYi1jaGVja2VkLWh1ZSk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXNsaWRlLXRvZ2dsZS1jaGVja2VkKCR3YXJuLCAkdGh1bWItY2hlY2tlZC1odWUpO1xuICAgIH1cblxuICAgICY6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICAvLyBTZXQgbm8gb3BhY2l0eSBmb3IgdGhlIHJpcHBsZXMgYmVjYXVzZSB0aGUgcmlwcGxlIG9wYWNpdHkgd2lsbCBiZSBhZGp1c3RlZCBkeW5hbWljYWxseVxuICAgICAgLy8gYmFzZWQgb24gdGhlIHR5cGUgb2YgaW50ZXJhY3Rpb24gd2l0aCB0aGUgc2xpZGUtdG9nZ2xlIChlLmcuIGZvciBob3ZlciwgZm9jdXMpXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmlwcGxlLXVuY2hlY2tlZC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMSwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJG1hdC1ncmV5LCAkdGh1bWItdW5jaGVja2VkLWh1ZSk7XG4gIH1cblxuICAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXItdW5jaGVja2VkLWNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc2xpZGUtdG9nZ2xlLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50IHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cblxuXG5cblxuQG1peGluIF9tYXQtc2xpZGVyLWlubmVyLWNvbnRlbnQtdGhlbWUoJHBhbGV0dGUpIHtcbiAgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbiAgLm1hdC1zbGlkZXItdGh1bWIsXG4gIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICB9XG5cbiAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1zbGlkZXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICRtYXQtc2xpZGVyLW9mZi1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmKTtcbiAgJG1hdC1zbGlkZXItb2ZmLWZvY3VzZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW9mZi1hY3RpdmUpO1xuICAkbWF0LXNsaWRlci1kaXNhYmxlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmKTtcbiAgJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW1pbik7XG4gICRtYXQtc2xpZGVyLWxhYmVsZWQtbWluLXZhbHVlLXRodW1iLWxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNsaWRlci1vZmYpO1xuICAkbWF0LXNsaWRlci1mb2N1cy1yaW5nLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgZGVmYXVsdCwgMC4yKTtcbiAgJG1hdC1zbGlkZXItZm9jdXMtcmluZy1taW4tdmFsdWUtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgMC4xMik7XG4gICRtYXQtc2xpZGVyLXRpY2stY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgMC43KTtcbiAgJG1hdC1zbGlkZXItdGljay1zaXplOiAycHg7XG5cbiAgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItb2ZmLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1wcmltYXJ5IHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCRwcmltYXJ5KTtcbiAgfVxuXG4gIC5tYXQtYWNjZW50IHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCRhY2NlbnQpO1xuICB9XG5cbiAgLm1hdC13YXJuIHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCR3YXJuKTtcbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWZvY3VzLXJpbmctY29sb3I7XG4gIH1cblxuICAubWF0LXNsaWRlcjpob3ZlcixcbiAgLmNkay1mb2N1c2VkIHtcbiAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLW9mZi1mb2N1c2VkLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWRpc2FibGVkIHtcbiAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLFxuICAgIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4gICAgLm1hdC1zbGlkZXItdGh1bWIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItZGlzYWJsZWQtY29sb3I7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zbGlkZXItbWluLXZhbHVlIHtcbiAgICAubWF0LXNsaWRlci1mb2N1cy1yaW5nIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWZvY3VzLXJpbmctbWluLXZhbHVlLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIHtcbiAgICAgIC5tYXQtc2xpZGVyLXRodW1iLFxuICAgICAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWF0LXNsaWRlci1sYWJlbGVkLW1pbi12YWx1ZS10aHVtYi1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgJi5jZGstZm9jdXNlZCB7XG4gICAgICAgIC5tYXQtc2xpZGVyLXRodW1iLFxuICAgICAgICAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItbGFiZWwtY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKSB7XG4gICAgICAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJG1hdC1zbGlkZXItb2ZmLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlcixcbiAgICAgICYuY2RrLWZvY3VzZWQge1xuICAgICAgICAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci1vZmYtZm9jdXNlZC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWhhcy10aWNrcyAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci10aWNrLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgICAvLyBGaXJlZm94IGRvZXNuJ3QgZHJhdyB0aGUgZ3JhZGllbnQgY29ycmVjdGx5IHdpdGggJ3RvIHJpZ2h0J1xuICAgIC8vIChzZWUgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxNDMxOSkuXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1yZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDAuMDAwMWRlZywgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgfVxuXG4gIC5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRpY2tzIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNsaWRlci10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LXN0ZXBwZXItdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG5cbiAgLm1hdC1zdGVwLWhlYWRlciB7XG4gICAgJi5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgICAmLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGhvdmVyKTtcbiAgICB9XG5cbiAgICAvLyBPbiB0b3VjaCBkZXZpY2VzIHRoZSA6aG92ZXIgc3RhdGUgd2lsbCBsaW5nZXIgb24gdGhlIGVsZW1lbnQgYWZ0ZXIgYSB0YXAuXG4gICAgLy8gUmVzZXQgaXQgdmlhIGBAbWVkaWFgIGFmdGVyIHRoZSBkZWNsYXJhdGlvbiwgYmVjYXVzZSB0aGUgbWVkaWEgcXVlcnkgaXNuJ3RcbiAgICAvLyBzdXBwb3J0ZWQgYnkgYWxsIGJyb3dzZXJzIHlldC5cbiAgICBAbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtbGFiZWwsXG4gICAgLm1hdC1zdGVwLW9wdGlvbmFsIHtcbiAgICAgIC8vIFRPRE8oam9zZXBocGVycm90dCk6IFVwZGF0ZSB0byB1c2luZyBhIGNvcnJlY3RlZCBkaXNhYmxlZC10ZXh0IGNvbnRyYXN0XG4gICAgICAvLyBpbnN0ZWFkIG9mIHNlY29uZGFyeS10ZXh0LlxuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1pY29uIHtcbiAgICAgIC8vIFRPRE8oam9zZXBocGVycm90dCk6IFVwZGF0ZSB0byB1c2luZyBhIGNvcnJlY3RlZCBkaXNhYmxlZC10ZXh0IGNvbnRyYXN0XG4gICAgICAvLyBpbnN0ZWFkIG9mIHNlY29uZGFyeS10ZXh0LlxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCxcbiAgICAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVkaXQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVycm9yIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWFjdGl2ZSB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtZXJyb3Ige1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zdGVwcGVyLWhvcml6b250YWwsIC5tYXQtc3RlcHBlci12ZXJ0aWNhbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgfVxuXG4gIC5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmUge1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmUsXG4gIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YWZ0ZXIsXG4gIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmUge1xuICAgIGJvcmRlci10b3AtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cbn1cblxuQG1peGluIG1hdC1zdGVwcGVyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXN0ZXBwZXItdmVydGljYWwsIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1zdGVwLWxhYmVsIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpO1xuICAgIH07XG4gIH1cblxuICAubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICB9XG5cbiAgLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxuXG4gIC5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZCB7XG4gICAgZm9udDoge1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTIpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9O1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc29ydC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXNvcnQtaGVhZGVyLWFycm93IHtcbiAgICAkdGFibGUtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICAgICR0ZXh0LWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcblxuICAgIC8vIEJlY2F1c2UgdGhlIGFycm93IGlzIG1hZGUgdXAgb2YgbXVsdGlwbGUgZWxlbWVudHMgdGhhdCBhcmUgc3RhY2tlZCBvbiB0b3Agb2YgZWFjaCBvdGhlcixcbiAgICAvLyB3ZSBjYW4ndCB1c2UgdGhlIHNlbWktdHJhc3BhcmVudCBjb2xvciBmcm9tIHRoZSB0aGVtZSBkaXJlY3RseS4gSWYgdGhlIHZhbHVlIGlzIGEgY29sb3JcbiAgICAvLyAqdHlwZSosIHdlIGNvbnZlcnQgaXQgaW50byBhIHNvbGlkIGNvbG9yIGJ5IHRha2luZyB0aGUgb3BhY2l0eSBmcm9tIHRoZSByZ2JhIHZhbHVlIGFuZFxuICAgIC8vIHVzaW5nIHRoZSB2YWx1ZSB0byBkZXRlcm1pbmUgdGhlIHBlcmNlbnRhZ2Ugb2YgdGhlIGJhY2tncm91bmQgdG8gcHV0IGludG8gZm9yZWdyb3VuZFxuICAgIC8vIHdoZW4gbWl4aW5nIHRoZSBjb2xvcnMgdG9nZXRoZXIuIE90aGVyd2lzZSwgaWYgaXQgcmVzb2x2ZXMgdG8gc29tZXRoaW5nIGRpZmZlcmVudFxuICAgIC8vIChlLmcuIGl0IHJlc29sdmVzIHRvIGEgQ1NTIHZhcmlhYmxlKSwgd2UgdXNlIHRoZSBjb2xvciBkaXJlY3RseS5cbiAgICBAaWYgKHR5cGUtb2YoJHRhYmxlLWJhY2tncm91bmQpID09IGNvbG9yIGFuZCB0eXBlLW9mKCR0ZXh0LWNvbG9yKSA9PSBjb2xvcikge1xuICAgICAgJHRleHQtb3BhY2l0eTogb3BhY2l0eSgkdGV4dC1jb2xvcik7XG4gICAgICBjb2xvcjogbWl4KCR0YWJsZS1iYWNrZ3JvdW5kLCByZ2JhKCR0ZXh0LWNvbG9yLCAxKSwgKDEgLSAkdGV4dC1vcGFjaXR5KSAqIDEwMCUpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBjb2xvcjogJHRleHQtY29sb3I7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc29ydC10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtdGFicy10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRoZWFkZXItYm9yZGVyOiAxcHggc29saWQgbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcblxuICAubWF0LXRhYi1uYXYtYmFyLFxuICAubWF0LXRhYi1oZWFkZXIge1xuICAgIGJvcmRlci1ib3R0b206ICRoZWFkZXItYm9yZGVyO1xuICB9XG5cbiAgLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIHtcbiAgICAubWF0LXRhYi1uYXYtYmFyLFxuICAgIC5tYXQtdGFiLWhlYWRlciB7XG4gICAgICBib3JkZXItdG9wOiAkaGVhZGVyLWJvcmRlcjtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgJi5tYXQtdGFiLWRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgfVxuXG4gIC8vIFJlbW92ZSBoZWFkZXIgYm9yZGVyIHdoZW4gdGhlcmUgaXMgYSBiYWNrZ3JvdW5kIGNvbG9yXG4gIC5tYXQtdGFiLWdyb3VwW2NsYXNzKj0nbWF0LWJhY2tncm91bmQtJ10gLm1hdC10YWItaGVhZGVyLFxuICAubWF0LXRhYi1uYXYtYmFyW2NsYXNzKj0nbWF0LWJhY2tncm91bmQtJ10ge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgfVxuXG4gIC5tYXQtdGFiLWdyb3VwLCAubWF0LXRhYi1uYXYtYmFyIHtcbiAgICAkdGhlbWUtY29sb3JzOiAoXG4gICAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICAgIGFjY2VudDogJGFjY2VudCxcbiAgICAgIHdhcm46ICR3YXJuXG4gICAgKTtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJHRoZW1lLWNvbG9ycyB7XG4gICAgICAvLyBTZXQgdGhlIGZvcmVncm91bmQgY29sb3Igb2YgdGhlIHRhYnNcbiAgICAgICYubWF0LSN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWItbGFiZWwtZm9jdXMoJGNvbG9yKTtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1pbmstYmFyKCRjb2xvcik7XG5cbiAgICAgICAgLy8gT3ZlcnJpZGUgaW5rIGJhciB3aGVuIGJhY2tncm91bmQgY29sb3IgaXMgdGhlIHNhbWVcbiAgICAgICAgJi5tYXQtYmFja2dyb3VuZC0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1pbmstYmFyKCRjb2xvciwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICR0aGVtZS1jb2xvcnMge1xuICAgICAgLy8gU2V0IGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHRhYnMgYW5kIG92ZXJyaWRlIGZvY3VzIGNvbG9yXG4gICAgICAmLm1hdC1iYWNrZ3JvdW5kLSN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWItbGFiZWwtZm9jdXMoJGNvbG9yKTtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWJzLWJhY2tncm91bmQoJGNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9tYXQtaW5rLWJhcigkY29sb3IsICRodWU6IGRlZmF1bHQpIHtcbiAgLm1hdC1pbmstYmFyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGNvbG9yLCAkaHVlKTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC10YWItbGFiZWwtZm9jdXMoJHRhYi1mb2N1cy1jb2xvcikge1xuICAubWF0LXRhYi1sYWJlbCxcbiAgLm1hdC10YWItbGluayB7XG4gICAgJi5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgICAmLmNkay1wcm9ncmFtLWZvY3VzZWQge1xuICAgICAgJjpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR0YWItZm9jdXMtY29sb3IsIGxpZ2h0ZXIsIDAuMyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LXRhYnMtYmFja2dyb3VuZCgkYmFja2dyb3VuZC1jb2xvcikge1xuICAvLyBTZXQgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHRhYiBncm91cFxuICAubWF0LXRhYi1oZWFkZXIsIC5tYXQtdGFiLWxpbmtzLCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yKTtcbiAgfVxuXG4gIC8vIFNldCBsYWJlbHMgdG8gY29udHJhc3QgYWdhaW5zdCBiYWNrZ3JvdW5kXG4gIC5tYXQtdGFiLWxhYmVsLCAubWF0LXRhYi1saW5rIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0KTtcblxuICAgICYubWF0LXRhYi1kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBwYWdpbmF0aW9uIGNoZXZyb25zIHRvIGNvbnRyYXN0IGJhY2tncm91bmRcbiAgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QsIDAuNCk7XG4gIH1cblxuICAvLyBTZXQgcmlwcGxlcyBjb2xvciB0byBiZSB0aGUgY29udHJhc3QgY29sb3Igb2YgdGhlIG5ldyBiYWNrZ3JvdW5kLiBPdGhlcndpc2UgdGhlIHJpcHBsZVxuICAvLyBjb2xvciB3aWxsIGJlIGJhc2VkIG9uIHRoZSBhcHAgYmFja2dyb3VuZCBjb2xvci5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjEyKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRhYnMtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtdGFiLWdyb3VwIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJ1dHRvbik7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJ1dHRvbik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuQG1peGluIF9tYXQtdG9vbGJhci1jb2xvcigkcGFsZXR0ZSkge1xuICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICBjb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KTtcbn1cblxuQG1peGluIF9tYXQtdG9vbGJhci1mb3JtLWZpZWxkLW92ZXJyaWRlcyB7XG4gIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUsXG4gIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUsXG4gIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gIC5tYXQtc2VsZWN0LXZhbHVlLFxuICAubWF0LXNlbGVjdC1hcnJvdyxcbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuXG4gIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgY2FyZXQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2xiYXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtdG9vbGJhciB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBhcHAtYmFyKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCRwcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBfbWF0LXRvb2xiYXItZm9ybS1maWVsZC1vdmVycmlkZXM7XG4gIH1cbn1cblxuQG1peGluIG1hdC10b29sYmFyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXRvb2xiYXIsXG4gIC5tYXQtdG9vbGJhciBoMSxcbiAgLm1hdC10b29sYmFyIGgyLFxuICAubWF0LXRvb2xiYXIgaDMsXG4gIC5tYXQtdG9vbGJhciBoNCxcbiAgLm1hdC10b29sYmFyIGg1LFxuICAubWF0LXRvb2xiYXIgaDYge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCB0aXRsZSk7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cblxuXG5cblxuJG1hdC10b29sdGlwLXRhcmdldC1oZWlnaHQ6IDIycHg7XG4kbWF0LXRvb2x0aXAtZm9udC1zaXplOiAxMHB4O1xuJG1hdC10b29sdGlwLXZlcnRpY2FsLXBhZGRpbmc6ICgkbWF0LXRvb2x0aXAtdGFyZ2V0LWhlaWdodCAtICRtYXQtdG9vbHRpcC1mb250LXNpemUpIC8gMjtcblxuJG1hdC10b29sdGlwLWhhbmRzZXQtdGFyZ2V0LWhlaWdodDogMzBweDtcbiRtYXQtdG9vbHRpcC1oYW5kc2V0LWZvbnQtc2l6ZTogMTRweDtcbiRtYXQtdG9vbHRpcC1oYW5kc2V0LXZlcnRpY2FsLXBhZGRpbmc6XG4gICAgKCRtYXQtdG9vbHRpcC1oYW5kc2V0LXRhcmdldC1oZWlnaHQgLSAkbWF0LXRvb2x0aXAtaGFuZHNldC1mb250LXNpemUpIC8gMjtcblxuQG1peGluIG1hdC10b29sdGlwLXRoZW1lKCR0aGVtZSkge1xuICAubWF0LXRvb2x0aXAge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkbWF0LWdyZXksIDcwMCwgMC45KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2x0aXAtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtdG9vbHRpcCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgICBmb250LXNpemU6ICRtYXQtdG9vbHRpcC1mb250LXNpemU7XG4gICAgcGFkZGluZy10b3A6ICRtYXQtdG9vbHRpcC12ZXJ0aWNhbC1wYWRkaW5nO1xuICAgIHBhZGRpbmctYm90dG9tOiAkbWF0LXRvb2x0aXAtdmVydGljYWwtcGFkZGluZztcbiAgfVxuXG4gIC5tYXQtdG9vbHRpcC1oYW5kc2V0IHtcbiAgICBmb250LXNpemU6ICRtYXQtdG9vbHRpcC1oYW5kc2V0LWZvbnQtc2l6ZTtcbiAgICBwYWRkaW5nLXRvcDogJG1hdC10b29sdGlwLWhhbmRzZXQtdmVydGljYWwtcGFkZGluZztcbiAgICBwYWRkaW5nLWJvdHRvbTogJG1hdC10b29sdGlwLWhhbmRzZXQtdmVydGljYWwtcGFkZGluZztcbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtc25hY2stYmFyLXRoZW1lKCR0aGVtZSkge1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkdGhlbWUsIGlzLWRhcmspO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcblxuICAubWF0LXNuYWNrLWJhci1jb250YWluZXIge1xuICAgIC8vIFVzZSB0aGUgcHJpbWFyeSB0ZXh0IG9uIHRoZSBkYXJrIHRoZW1lLCBldmVuIHRob3VnaCB0aGUgbGlnaHRlciBvbmUgdXNlc1xuICAgIC8vIGEgc2Vjb25kYXJ5LCBiZWNhdXNlIHRoZSBjb250cmFzdCBvbiB0aGUgbGlnaHQgcHJpbWFyeSB0ZXh0IGlzIHBvb3IuXG4gICAgY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCAkZGFyay1wcmltYXJ5LXRleHQsICRsaWdodC1zZWNvbmRhcnktdGV4dCk7XG4gICAgYmFja2dyb3VuZDogaWYoJGlzLWRhcmstdGhlbWUsIG1hcC1nZXQoJG1hdC1ncmV5LCA1MCksICMzMjMyMzIpO1xuXG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oNiwgJHRoZW1lKTtcbiAgfVxuXG4gIC5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiB7XG4gICAgY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCBpbmhlcml0LCBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCkpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc25hY2stYmFyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXNpbXBsZS1zbmFja2JhciB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9XG4gIH1cblxuICAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogaW5oZXJpdDtcbiAgICAgIHNpemU6IGluaGVyaXQ7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIGZpbGwgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWZpbGwtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG5cbiAgJGZpbGwtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBiYXNlLCBpZigkaXMtZGFyay10aGVtZSwgMC4xLCAwLjA0KSk7XG4gICRmaWxsLWRpc2FibGVkLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgaWYoJGlzLWRhcmstdGhlbWUsIDAuMDUsIDAuMDIpKTtcbiAgJHVuZGVybGluZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyLCBpZigkaXMtZGFyay10aGVtZSwgMC41LCAwLjQyKSk7XG4gICRsYWJlbC1kaXNhYmxlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIHtcbiAgICAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmlsbC1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZpbGwtZGlzYWJsZWQtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkbGFiZWwtZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZTogMDtcblxuLy8gQXBwbGllcyBhIGZsb2F0aW5nIGxhYmVsIGFib3ZlIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaXRzZWxmLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1maWxsLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLWZpbGwtZGVkdXBlKVxuICAgICAgICAgICAgIHNjYWxlKCRmb250LXNjYWxlKTtcbiAgd2lkdGg6IDEwMCUgLyAkZm9udC1zY2FsZSArICRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZTtcblxuICAkbWF0LWZvcm0tZmllbGQtZmlsbC1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZSArIDAuMDAwMDEgIWdsb2JhbDtcbn1cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWZpbGwtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcbiAgLy8gVGhlIGFtb3VudCB0byBzY2FsZSB0aGUgZm9udCBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsIGFuZCBzdWJzY3JpcHQuXG4gICRzdWJzY3JpcHQtZm9udC1zY2FsZTogMC43NTtcbiAgLy8gVGhlIHBhZGRpbmcgb24gdG9wIG9mIHRoZSBpbmZpeC5cbiAgJGluZml4LXBhZGRpbmctdG9wOiAwLjI1ZW07XG4gIC8vIFRoZSBwYWRkaW5nIGJlbG93IHRoZSBpbmZpeC5cbiAgJGluZml4LXBhZGRpbmctYm90dG9tOiAwLjc1ZW07XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBhbW91bnQgd2Ugb2Zmc2V0IHRoZSBsYWJlbCBmcm9tIHRoZSBpbnB1dCB0ZXh0IGluIHRoZSBmaWxsIGFwcGVhcmFuY2UuXG4gICRmaWxsLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0OiAtMC41ZW07XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICAgIHBhZGRpbmc6ICRpbmZpeC1wYWRkaW5nLXRvcCAwICRpbmZpeC1wYWRkaW5nLWJvdHRvbSAwO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmctdG9wO1xuICAgICAgbWFyZ2luLXRvcDogJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQ7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtZmlsbC1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLXRvcCArICRmaWxsLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1maWxsLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmctdG9wICsgJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQsXG4gICAgICAgICAgICAgICAgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHRoZSBsZWdhY3kgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAkdW5kZXJsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjcsIDAuNDIpKTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kge1xuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtaGludCB7XG4gICAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgQGluY2x1ZGUgbWF0LWNvbnRyb2wtZGlzYWJsZWQtdW5kZXJsaW5lKCR1bmRlcmxpbmUtY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlOiAwO1xuXG4vLyBBcHBsaWVzIGEgZmxvYXRpbmcgbGFiZWwgYWJvdmUgdGhlIGZvcm0gZmllbGQgY29udHJvbCBpdHNlbGYuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZygkZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKSB7XG4gIC8vIFdlIHVzZSBwZXJzcGVjdGl2ZSB0byBmaXggdGhlIHRleHQgYmx1cnJpbmVzcyBhcyBkZXNjcmliZWQgaGVyZTpcbiAgLy8gaHR0cDovL3d3dy51c2VyYWdlbnRtYW4uY29tL2Jsb2cvMjAxNC8wNS8wNC9maXhpbmctdHlwb2dyYXBoeS1pbnNpZGUtb2YtMi1kLWNzcy10cmFuc2Zvcm1zL1xuICAvLyBUaGlzIHJlc3VsdHMgaW4gYSBzbWFsbCBqaXR0ZXIgYWZ0ZXIgdGhlIGxhYmVsIGZsb2F0cyBvbiBGaXJlZm94LCB3aGljaCB0aGVcbiAgLy8gdHJhbnNsYXRlWiBmaXhlcy5cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nKSBzY2FsZSgkZm9udC1zY2FsZSkgcGVyc3BlY3RpdmUoMTAwcHgpXG4gIHRyYW5zbGF0ZVooMC4wMDFweCArICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlKTtcbiAgLy8gVGhlIHRyaWNrcyBhYm92ZSB1c2VkIHRvIHNtb290aCBvdXQgdGhlIGFuaW1hdGlvbiBvbiBjaHJvbWUgYW5kIGZpcmVmb3ggYWN0dWFsbHkgbWFrZSB0aGluZ3NcbiAgLy8gd29yc2Ugb24gSUUsIHNvIHdlIGRvbid0IGluY2x1ZGUgdGhlbSBpbiB0aGUgSUUgdmVyc2lvbi5cbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJGluZml4LW1hcmdpbi10b3AgLSAkaW5maXgtcGFkZGluZyArICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlKVxuICAgICAgICAgICAgICAgICAgc2NhbGUoJGZvbnQtc2NhbGUpO1xuXG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZTtcblxuICAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZTogJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbi8vIFNhbWUgYXMgbWl4aW4gYWJvdmUsIGJ1dCBvbWl0cyB0aGUgdHJhbnNsYXRlWiBmb3IgcHJpbnRpbmcgcHVycG9zZXMuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludCgkZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKSB7XG4gIC8vIFRoaXMgcmVzdWx0cyBpbiBhIHNtYWxsIGppdHRlciBhZnRlciB0aGUgbGFiZWwgZmxvYXRzIG9uIEZpcmVmb3gsIHdoaWNoIHRoZVxuICAvLyB0cmFuc2xhdGVaIGZpeGVzLlxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRpbmZpeC1tYXJnaW4tdG9wIC0gJGluZml4LXBhZGRpbmcgKyAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZSlcbiAgICAgICAgICAgICAgICAgIHNjYWxlKCRmb250LXNjYWxlKTtcbiAgLy8gVGhlIHRyaWNrcyBhYm92ZSB1c2VkIHRvIHNtb290aCBvdXQgdGhlIGFuaW1hdGlvbiBvbiBjaHJvbWUgYW5kIGZpcmVmb3ggYWN0dWFsbHkgbWFrZSB0aGluZ3NcbiAgLy8gd29yc2Ugb24gSUUsIHNvIHdlIGRvbid0IGluY2x1ZGUgdGhlbSBpbiB0aGUgSUUgdmVyc2lvbi5cbiAgJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlICsgMC4wMDAwMSAhZ2xvYmFsO1xufVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtbGVnYWN5LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBhbW91bnQgb2Ygc3BhY2UgYmV0d2VlbiB0aGUgdG9wIG9mIHRoZSBsaW5lIGFuZCB0aGUgdG9wIG9mIHRoZSBhY3R1YWwgdGV4dFxuICAvLyAoYXMgYSBmcmFjdGlvbiBvZiB0aGUgZm9udC1zaXplKS5cbiAgJGxpbmUtc3BhY2luZzogKCRsaW5lLWhlaWdodCAtIDEpIC8gMjtcbiAgLy8gVGhlIHBhZGRpbmcgb24gdGhlIGluZml4LiBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZSwgYnV0IHNlZW0gdG8gbWVhc3VyZSBmcm9tIHRoZSBlZGdlXG4gIC8vIG9mIHRoZSB0ZXh0IGl0c2VsZiwgbm90IHRoZSBlZGdlIG9mIHRoZSBsaW5lOyB0aGVyZWZvcmUgd2Ugc3VidHJhY3Qgb2ZmIHRoZSBsaW5lIHNwYWNpbmcuXG4gICRpbmZpeC1wYWRkaW5nOiAwLjVlbSAtICRsaW5lLXNwYWNpbmc7XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBib3R0b20gb2YgdGhlIC5tYXQtZm9ybS1maWVsZC1mbGV4IGFyZWEgYW5kIHRoZSBzdWJzY3JpcHQgd3JhcHBlci5cbiAgLy8gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCB0aGlzIG1hcmdpbiBpcyBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgd2l0aCB0aGUgc3Vic2NyaXB0XG4gIC8vIHRleHQgZm9udCBzaXplLCBzbyB3ZSBuZWVkIHRvIGRpdmlkZSBieSB0aGUgc2NhbGUgZmFjdG9yIHRvIG1ha2UgaXQgaGFsZiBvZiB0aGUgb3JpZ2luYWwgdGV4dFxuICAvLyBzaXplLiBXZSBhZ2FpbiBuZWVkIHRvIHN1YnRyYWN0IG9mZiB0aGUgbGluZSBzcGFjaW5nIHNpbmNlIHRoZSBtb2NrcyBtZWFzdXJlIHRvIHRoZSBlZGdlIG9mIHRoZVxuICAvLyB0ZXh0LCBub3QgdGhlICBlZGdlIG9mIHRoZSBsaW5lLlxuICAkc3Vic2NyaXB0LW1hcmdpbi10b3A6IDAuNWVtIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlIC0gKCRsaW5lLXNwYWNpbmcgKiAyKTtcbiAgLy8gVGhlIHBhZGRpbmcgYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC13cmFwcGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBzdWJzY3JpcHQsIHNpbmNlIGl0J3NcbiAgLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkLiBUaGlzIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIHN1YnNjcmlwdCdzIG1hcmdpbiBhbmQgbGluZS1oZWlnaHQsIGJ1dCB3ZVxuICAvLyBuZWVkIHRvIG11bHRpcGx5IGJ5IHRoZSBzdWJzY3JpcHQgZm9udCBzY2FsZSBmYWN0b3Igc2luY2UgdGhlIHdyYXBwZXIgaGFzIGEgbGFyZ2VyIGZvbnQgc2l6ZS5cbiAgJHdyYXBwZXItcGFkZGluZy1ib3R0b206ICgkc3Vic2NyaXB0LW1hcmdpbi10b3AgKyAkbGluZS1oZWlnaHQpICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgICAgcGFkZGluZy1ib3R0b206ICR3cmFwcGVyLXBhZGRpbmctYm90dG9tO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICBwYWRkaW5nOiAkaW5maXgtcGFkZGluZyAwO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjAgd2lsbCByZWx5IG9uIEF1dG9maWxsTW9uaXRvciBpbnN0ZWFkLlxuICAgICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICAvLyBXZSB3YW50IHRoZSB1bmRlcmxpbmUgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgICAvLyBzbyB3ZSBtb3ZlIGl0IHVwIGJ5IHRoZSBwYWRkaW5nIGFtb3VudC5cbiAgICAgIGJvdHRvbTogJHdyYXBwZXItcGFkZGluZy1ib3R0b207XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgICAgIG1hcmdpbi10b3A6ICRzdWJzY3JpcHQtbWFyZ2luLXRvcDtcblxuICAgICAgLy8gV2Ugd2FudCB0aGUgc3Vic2NyaXB0IHRvIHN0YXJ0IGF0IHRoZSBlbmQgb2YgdGhlIGNvbnRlbnQgYm94LCBub3QgdGhlIHBhZGRpbmcgYm94LFxuICAgICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQgKGFkanVzdGVkIGZvciB0aGUgc21hbGxlciBmb250IHNpemUpO1xuICAgICAgdG9wOiBjYWxjKDEwMCUgLSAjeyR3cmFwcGVyLXBhZGRpbmctYm90dG9tIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gdHJhbnNsYXRlWiBjYXVzZXMgdGhlIGxhYmVsIHRvIG5vdCBhcHBlYXIgd2hpbGUgcHJpbnRpbmcsIHNvIHdlIG92ZXJyaWRlIGl0IHRvIG5vdFxuICAvLyBhcHBseSB0cmFuc2xhdGVaIHdoaWxlIHByaW50aW5nXG4gIEBtZWRpYSBwcmludCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgICAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludChcbiAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjAgd2lsbCByZWx5IG9uIEF1dG9maWxsTW9uaXRvciBpbnN0ZWFkLlxuICAgICAgICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbDotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nLXByaW50KFxuICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAgIC8vICh1c2VkIGFzIGEgcHVyZSBDU1Mgc3RhbmQtaW4gZm9yIG1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCkuXG4gICAgICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludChcbiAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHRoZSBvdXRsaW5lIGFwcGVhcmFuY2Ugb2YgdGhlIGZvcm0tZmllbGQuXG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkbGFiZWwtZGlzYWJsZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gICRvdXRsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjMsIDAuMTIpKTtcbiAgJG91dGxpbmUtY29sb3ItaG92ZXI6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDEsIDAuODcpKTtcbiAgJG91dGxpbmUtY29sb3ItcHJpbWFyeTogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgJG91dGxpbmUtY29sb3ItYWNjZW50OiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICRvdXRsaW5lLWNvbG9yLXdhcm46IG1hdC1jb2xvcigkd2Fybik7XG4gICRvdXRsaW5lLWNvbG9yLWRpc2FibGVkOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjE1LCAwLjA2KSk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xuICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1ob3ZlcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb2N1c2VkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLXByaW1hcnk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gICAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1hY2NlbnQ7XG4gICAgICB9XG5cbiAgICAgICYubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDbGFzcyByZXBlYXRlZCBzbyB0aGF0IHJ1bGUgaXMgc3BlY2lmaWMgZW5vdWdoIHRvIG92ZXJyaWRlIGZvY3VzZWQgYWNjZW50IGNvbG9yIGNhc2UuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQge1xuICAgICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkbGFiZWwtZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLWRpc2FibGVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWRlZHVwZTogMDtcblxuLy8gQXBwbGllcyBhIGZsb2F0aW5nIGxhYmVsIGFib3ZlIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaXRzZWxmLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlKVxuICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGU7XG5cbiAgJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlOiAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBwYWRkaW5nIGFib3ZlIGFuZCBiZWxvdyB0aGUgaW5maXguXG4gICRpbmZpeC1wYWRkaW5nOiAxZW07XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBib3R0b20gb2YgdGhlIC5tYXQtZm9ybS1maWVsZC1mbGV4IGFyZWEgYW5kIHRoZSBzdWJzY3JpcHQgd3JhcHBlci5cbiAgLy8gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCB0aGlzIG1hcmdpbiBpcyBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgd2l0aCB0aGUgc3Vic2NyaXB0XG4gIC8vIHRleHQgZm9udCBzaXplLCBzbyB3ZSBuZWVkIHRvIGRpdmlkZSBieSB0aGUgc2NhbGUgZmFjdG9yIHRvIG1ha2UgaXQgaGFsZiBvZiB0aGUgb3JpZ2luYWwgdGV4dFxuICAvLyBzaXplLlxuICAkc3Vic2NyaXB0LW1hcmdpbi10b3A6IDAuNWVtIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBUaGUgcGFkZGluZyBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLXdyYXBwZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIHN1YnNjcmlwdCwgc2luY2UgaXQnc1xuICAvLyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQuIFRoaXMgaXMgYSBjb21iaW5hdGlvbiBvZiB0aGUgc3Vic2NyaXB0J3MgbWFyZ2luIGFuZCBsaW5lLWhlaWdodCwgYnV0IHdlXG4gIC8vIG5lZWQgdG8gbXVsdGlwbHkgYnkgdGhlIHN1YnNjcmlwdCBmb250IHNjYWxlIGZhY3RvciBzaW5jZSB0aGUgd3JhcHBlciBoYXMgYSBsYXJnZXIgZm9udCBzaXplLlxuICAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTogKCRzdWJzY3JpcHQtbWFyZ2luLXRvcCArICRsaW5lLWhlaWdodCkgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBhbW91bnQgd2Ugb2Zmc2V0IHRoZSBsYWJlbCBmcm9tIHRoZSBpbnB1dCB0ZXh0IGluIHRoZSBvdXRsaW5lIGFwcGVhcmFuY2UuXG4gICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0OiAtMC4yNWVtO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUge1xuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICBwYWRkaW5nOiAkaW5maXgtcGFkZGluZyAwICRpbmZpeC1wYWRkaW5nIDA7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIHRvcDogJGluZml4LW1hcmdpbi10b3AgKyAkaW5maXgtcGFkZGluZztcbiAgICAgIG1hcmdpbi10b3A6ICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0O1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLW91dGxpbmUtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZyArICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcgKyAkb3V0bGluZS1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldCxcbiAgICAgICAgICAgICAgICAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIHN0YW5kYXJkIGFwcGVhcmFuY2Ugb2YgdGhlIGZvcm0tZmllbGQuXG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkdW5kZXJsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjcsIDAuNDIpKTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICBAaW5jbHVkZSBtYXQtY29udHJvbC1kaXNhYmxlZC11bmRlcmxpbmUoJHVuZGVybGluZS1jb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10eXBvZ3JhcGh5KCRjb25maWcpIHt9XG5cblxuLy8gVGhlbWUgc3R5bGVzIHRoYXQgYXBwbHkgdG8gYWxsIGFwcGVhcmFuY2VzIG9mIHRoZSBmb3JtLWZpZWxkLlxuQG1peGluIG1hdC1mb3JtLWZpZWxkLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAvLyBMYWJlbCBjb2xvcnMuIFJlcXVpcmVkIGlzIHVzZWQgZm9yIHRoZSBgKmAgc3RhciBzaG93biBpbiB0aGUgbGFiZWwuXG4gICRsYWJlbC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCwgaWYoJGlzLWRhcmstdGhlbWUsIDAuNywgMC42KSk7XG4gICRmb2N1c2VkLWxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuICAkcmVxdWlyZWQtbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcblxuICAvLyBVbmRlcmxpbmUgY29sb3JzLlxuICAkdW5kZXJsaW5lLWNvbG9yLWJhc2U6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDEsIDAuODcpKTtcbiAgJHVuZGVybGluZS1jb2xvci1hY2NlbnQ6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcbiAgJHVuZGVybGluZS1jb2xvci13YXJuOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICAkdW5kZXJsaW5lLWZvY3VzZWQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1oaW50IHtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgY29sb3I6ICRmb2N1c2VkLWxhYmVsLWNvbG9yO1xuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWFjY2VudDtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIge1xuICAgIGNvbG9yOiAkcmVxdWlyZWQtbGFiZWwtY29sb3I7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWJhc2U7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQge1xuICAgIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1mb2N1c2VkLWNvbG9yO1xuXG4gICAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWFjY2VudDtcbiAgICAgIH1cblxuICAgICAgJi5tYXQtd2FybiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpIHtcbiAgICAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWZvY3VzZWQtY29sb3I7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3ItYWNjZW50O1xuICAgIH1cblxuICAgICYubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN0eWxpbmcgZm9yIHRoZSBlcnJvciBzdGF0ZSBvZiB0aGUgZm9ybSBmaWVsZC4gTm90ZSB0aGF0IHdoaWxlIHRoZSBzYW1lIGNhbiBiZVxuICAvLyBhY2hpZXZlZCB3aXRoIHRoZSBuZy0qIGNsYXNzZXMsIHdlIHVzZSB0aGlzIGFwcHJvYWNoIGluIG9yZGVyIHRvIGVuc3VyZSB0aGF0IHRoZSBzYW1lXG4gIC8vIGxvZ2ljIGlzIHVzZWQgdG8gc3R5bGUgdGhlIGVycm9yIHN0YXRlIGFuZCB0byBzaG93IHRoZSBlcnJvciBtZXNzYWdlcy5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQge1xuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuXG4gICAgICAmLm1hdC1hY2NlbnQsXG4gICAgICAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtcmlwcGxlLFxuICAgIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgfVxuICB9XG5cbiAgLm1hdC1lcnJvciB7XG4gICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1maWxsLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhlbWUoJHRoZW1lKTtcbn1cblxuLy8gVXNlZCB0byBtYWtlIGluc3RhbmNlcyBvZiB0aGUgX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nIG1peGluIG5lZ2xpZ2libHkgZGlmZmVyZW50LFxuLy8gYW5kIHByZXZlbnQgR29vZ2xlJ3MgQ1NTIE9wdGltaXplciBmcm9tIGNvbGxhcHNpbmcgdGhlIGRlY2xhcmF0aW9ucy4gVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBzb21lXG4vLyBvZiB0aGUgc2VsZWN0b3JzIGNvbnRhaW4gcHNldWRvLWNsYXNzZXMgbm90IHJlY29nbml6ZWQgaW4gYWxsIGJyb3dzZXJzLiBJZiBhIGJyb3dzZXIgZW5jb3VudGVyc1xuLy8gYW4gdW5rbm93biBwc2V1ZG8tY2xhc3MgaXQgd2lsbCBkaXNjYXJkIHRoZSBlbnRpcmUgcnVsZSBzZXQuXG4kbWF0LWZvcm0tZmllbGQtZGVkdXBlOiAwO1xuXG4vLyBBcHBsaWVzIGEgZmxvYXRpbmcgbGFiZWwgYWJvdmUgdGhlIGZvcm0gZmllbGQgY29udHJvbCBpdHNlbGYuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLWRlZHVwZSlcbiAgICAgICAgICAgICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtZGVkdXBlO1xuXG4gICRtYXQtZm9ybS1maWVsZC1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuXG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBwcmVmaXggYW5kIHN1ZmZpeCBpY29ucy5cbiAgJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNjYWxlOiAxLjU7XG5cbiAgLy8gVGhlIHBhZGRpbmcgb24gdGhlIGluZml4LiBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZS5cbiAgJGluZml4LXBhZGRpbmc6IDAuNWVtO1xuICAvLyBUaGUgbWFyZ2luIGFwcGxpZWQgdG8gdGhlIGZvcm0tZmllbGQtaW5maXggdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsLlxuICAkaW5maXgtbWFyZ2luLXRvcDogMWVtICogJGxpbmUtaGVpZ2h0ICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBGb250IHNpemUgdG8gdXNlIGZvciB0aGUgbGFiZWwgYW5kIHN1YnNjcmlwdCB0ZXh0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2l6ZTogJHN1YnNjcmlwdC1mb250LXNjYWxlICogMTAwJTtcbiAgLy8gRm9udCBzaXplIHRvIHVzZSBmb3IgdGhlIGZvciB0aGUgcHJlZml4IGFuZCBzdWZmaXggaWNvbnMuXG4gICRwcmVmaXgtc3VmZml4LWljb24tZm9udC1zaXplOiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGUgKiAxMDAlO1xuICAvLyBUaGUgc3BhY2UgYmV0d2VlbiB0aGUgYm90dG9tIG9mIHRoZSAubWF0LWZvcm0tZmllbGQtZmxleCBhcmVhIGFuZCB0aGUgc3Vic2NyaXB0IHdyYXBwZXIuXG4gIC8vIE1vY2tzIHNob3cgaGFsZiBvZiB0aGUgdGV4dCBzaXplLCBidXQgdGhpcyBtYXJnaW4gaXMgYXBwbGllZCB0byBhbiBlbGVtZW50IHdpdGggdGhlIHN1YnNjcmlwdFxuICAvLyB0ZXh0IGZvbnQgc2l6ZSwgc28gd2UgbmVlZCB0byBkaXZpZGUgYnkgdGhlIHNjYWxlIGZhY3RvciB0byBtYWtlIGl0IGhhbGYgb2YgdGhlIG9yaWdpbmFsIHRleHRcbiAgLy8gc2l6ZS5cbiAgJHN1YnNjcmlwdC1tYXJnaW4tdG9wOiAwLjVlbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcbiAgLy8gVGhlIHBhZGRpbmcgYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC13cmFwcGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBzdWJzY3JpcHQsIHNpbmNlIGl0J3NcbiAgLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkLiBUaGlzIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIHN1YnNjcmlwdCdzIG1hcmdpbiBhbmQgbGluZS1oZWlnaHQsIGJ1dCB3ZVxuICAvLyBuZWVkIHRvIG11bHRpcGx5IGJ5IHRoZSBzdWJzY3JpcHQgZm9udCBzY2FsZSBmYWN0b3Igc2luY2UgdGhlIHdyYXBwZXIgaGFzIGEgbGFyZ2VyIGZvbnQgc2l6ZS5cbiAgJHdyYXBwZXItcGFkZGluZy1ib3R0b206ICgkc3Vic2NyaXB0LW1hcmdpbi10b3AgKyAkbGluZS1oZWlnaHQpICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuXG4gIC5tYXQtZm9ybS1maWVsZCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGlucHV0KTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHdyYXBwZXItcGFkZGluZy1ib3R0b207XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtcHJlZml4LFxuICAubWF0LWZvcm0tZmllbGQtc3VmZml4IHtcbiAgICAvLyBBbGxvdyBpY29ucyBpbiBhIHByZWZpeCBvciBzdWZmaXggdG8gYWRhcHQgdG8gdGhlIGNvcnJlY3Qgc2l6ZS5cbiAgICAubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gICAgfVxuXG4gICAgLy8gQWxsb3cgaWNvbiBidXR0b25zIGluIGEgcHJlZml4IG9yIHN1ZmZpeCB0byBhZGFwdCB0byB0aGUgY29ycmVjdCBzaXplLlxuICAgIC5tYXQtaWNvbi1idXR0b24ge1xuICAgICAgaGVpZ2h0OiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGUgKiAxZW07XG4gICAgICB3aWR0aDogJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNjYWxlICogMWVtO1xuXG4gICAgICAubWF0LWljb24ge1xuICAgICAgICBoZWlnaHQ6ICRsaW5lLWhlaWdodCAqIDFlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIHBhZGRpbmc6ICRpbmZpeC1wYWRkaW5nIDA7XG4gICAgLy8gVGhyb3dzIG9mZiB0aGUgYmFzZWxpbmUgaWYgd2UgZG8gaXQgYXMgYSByZWFsIG1hcmdpbiwgc28gd2UgZG8gaXQgYXMgYSBib3JkZXIgaW5zdGVhZC5cbiAgICBib3JkZXItdG9wOiAkaW5maXgtbWFyZ2luLXRvcCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICB9XG5cbiAgICAvLyBTZXJ2ZXItc2lkZSByZW5kZXJlZCBtYXRJbnB1dCB3aXRoIGEgbGFiZWwgYXR0cmlidXRlIGJ1dCBsYWJlbCBub3Qgc2hvd25cbiAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgdG9wOiAtJGluZml4LW1hcmdpbi10b3A7XG4gICAgcGFkZGluZy10b3A6ICRpbmZpeC1tYXJnaW4tdG9wO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmc7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAvLyBXZSB3YW50IHRoZSB1bmRlcmxpbmUgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQuXG4gICAgYm90dG9tOiAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciB7XG4gICAgZm9udC1zaXplOiAkc3Vic2NyaXB0LWZvbnQtc2l6ZTtcbiAgICBtYXJnaW4tdG9wOiAkc3Vic2NyaXB0LW1hcmdpbi10b3A7XG5cbiAgICAvLyBXZSB3YW50IHRoZSBzdWJzY3JpcHQgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQgKGFkanVzdGVkIGZvciB0aGUgc21hbGxlciBmb250IHNpemUpO1xuICAgIHRvcDogY2FsYygxMDAlIC0gI3skd3JhcHBlci1wYWRkaW5nLWJvdHRvbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZX0pO1xuICB9XG5cbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtbGVnYWN5LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXN0YW5kYXJkLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWZpbGwtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtb3V0bGluZS10eXBvZ3JhcGh5KCRjb25maWcpO1xufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtdHJlZS10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXRyZWUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgfVxuXG4gIC5tYXQtdHJlZS1ub2RlLFxuICAubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtdHJlZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC10cmVlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC10cmVlLW5vZGUsXG4gIC5tYXQtbmVzdGVkLXRyZWUtbm9kZSB7XG4gICAgZm9udC13ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpO1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG4vLyBJbmNsdWRlcyBhbGwgb2YgdGhlIHR5cG9ncmFwaGljIHN0eWxlcy5cbkBtaXhpbiBhbmd1bGFyLW1hdGVyaWFsLXR5cG9ncmFwaHkoJGNvbmZpZzogbnVsbCkge1xuICBAaWYgJGNvbmZpZyA9PSBudWxsIHtcbiAgICAkY29uZmlnOiBtYXQtdHlwb2dyYXBoeS1jb25maWcoKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1hdC1iYWRnZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYmFzZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYXV0b2NvbXBsZXRlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1ib3R0b20tc2hlZXQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYnV0dG9uLXRvZ2dsZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtY2FyZC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtY2hlY2tib3gtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWNoaXBzLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10YWJsZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZGF0ZXBpY2tlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZGlhbG9nLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1leHBhbnNpb24tcGFuZWwtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWdyaWQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtaWNvbi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtaW5wdXQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LW1lbnUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXBhZ2luYXRvci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3MtYmFyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcm9ncmVzcy1zcGlubmVyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1yYWRpby10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc2VsZWN0LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zaWRlbmF2LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zbGlkZS10b2dnbGUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXNsaWRlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc3RlcHBlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc29ydC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdGFicy10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdG9vbGJhci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdG9vbHRpcC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtb3B0aW9uLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1vcHRncm91cC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc25hY2stYmFyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10cmVlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG59XG5cblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBzdHlsZXMgdGhhdCBhcmUgbm90IHRoZW1lLWRlcGVuZGVudC5cbkBtaXhpbiBtYXQtY29yZSgkdHlwb2dyYXBoeS1jb25maWc6IG51bGwpIHtcbiAgQGluY2x1ZGUgYW5ndWxhci1tYXRlcmlhbC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5LWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1yaXBwbGUoKTtcbiAgQGluY2x1ZGUgY2RrLWExMXkoKTtcbiAgQGluY2x1ZGUgY2RrLW92ZXJsYXkoKTtcbiAgQGluY2x1ZGUgY2RrLXRleHQtZmllbGQoKTtcbn1cblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBzdHlsZXMgdGhhdCBkZXBlbmQgb24gdGhlIHRoZW1lLlxuQG1peGluIG1hdC1jb3JlLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtcmlwcGxlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1vcHRpb24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LW9wdGdyb3VwLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1wc2V1ZG8tY2hlY2tib3gtdGhlbWUoJHRoZW1lKTtcblxuICAvLyBQcm92aWRlcyBleHRlcm5hbCBDU1MgY2xhc3NlcyBmb3IgZWFjaCBlbGV2YXRpb24gdmFsdWUuIEVhY2ggQ1NTIGNsYXNzIGlzIGZvcm1hdHRlZCBhc1xuICAvLyBgbWF0LWVsZXZhdGlvbi16JHpWYWx1ZWAgd2hlcmUgYCR6VmFsdWVgIGNvcnJlc3BvbmRzIHRvIHRoZSB6LXNwYWNlIHRvIHdoaWNoIHRoZSBlbGVtZW50IGlzXG4gIC8vIGVsZXZhdGVkLlxuICBAZm9yICR6VmFsdWUgZnJvbSAwIHRocm91Z2ggMjQge1xuICAgIC4jeyRfbWF0LWVsZXZhdGlvbi1wcmVmaXh9I3skelZhbHVlfSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigkelZhbHVlLCAkdGhlbWUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdyYXBwZXIgZWxlbWVudCB0aGF0IHByb3ZpZGVzIHRoZSB0aGVtZSBiYWNrZ3JvdW5kIHdoZW4gdGhlIHVzZXIncyBjb250ZW50IGlzbid0XG4gIC8vIGluc2lkZSBvZiBhIGBtYXQtc2lkZW5hdi1jb250YWluZXJgLiBOb3RlIHRoYXQgd2UgbmVlZCB0byBleGNsdWRlIHRoZSBhbXBlcnNhbmRcbiAgLy8gc2VsZWN0b3IgaW4gY2FzZSB0aGUgbWl4aW4gaXMgaW5jbHVkZWQgYXQgdGhlIHRvcCBsZXZlbC5cbiAgLm1hdC1hcHAtYmFja2dyb3VuZCN7aWYoJiwgJywgJi5tYXQtYXBwLWJhY2tncm91bmQnLCAnJyl9IHtcbiAgICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAgICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLy8gTWFya2VyIHRoYXQgaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgdXNlciBoYXMgYWRkZWQgYSB0aGVtZSB0byB0aGVpciBwYWdlLlxuICBAYXQtcm9vdCB7XG4gICAgLm1hdC10aGVtZS1sb2FkZWQtbWFya2VyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtZGl2aWRlci10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWRpdmlkZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWRpdmlkZXItdmVydGljYWwge1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxufVxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4vLyBDcmVhdGUgYSB0aGVtZS5cbkBtaXhpbiBhbmd1bGFyLW1hdGVyaWFsLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtY29yZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtYXV0b2NvbXBsZXRlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1iYWRnZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtYm90dG9tLXNoZWV0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1idXR0b24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10b2dnbGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWNhcmQtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWNoZWNrYm94LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1jaGlwcy10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtdGFibGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWRhdGVwaWNrZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWRpYWxvZy10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZGl2aWRlci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZXhwYW5zaW9uLXBhbmVsLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1ncmlkLWxpc3QtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWljb24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWlucHV0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1saXN0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1tZW51LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1wYWdpbmF0b3ItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLWJhci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtcmFkaW8tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNlbGVjdC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtc2lkZW5hdi10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtc2xpZGUtdG9nZ2xlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1zbGlkZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXN0ZXBwZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNvcnQtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRhYnMtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRvb2xiYXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRvb2x0aXAtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRyZWUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNuYWNrLWJhci10aGVtZSgkdGhlbWUpO1xufVxuIiwiLyogVGhlbWUgZm9yIHRoZSByaXBwbGUgZWxlbWVudHMuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIG1hdGVyaWFsL25vLXByZWZpeGVzICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4ubWF0LWJhZGdlLWNvbnRlbnQge1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1iYWRnZS1zbWFsbCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBmb250LXNpemU6IDlweDtcbn1cblxuLm1hdC1iYWRnZS1sYXJnZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBmb250LXNpemU6IDI0cHg7XG59XG5cbi5tYXQtaDEsIC5tYXQtaGVhZGxpbmUsIC5tYXQtdHlwb2dyYXBoeSBoMSB7XG4gIGZvbnQ6IDQwMCAyNHB4LzMycHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDE2cHg7XG59XG5cbi5tYXQtaDIsIC5tYXQtdGl0bGUsIC5tYXQtdHlwb2dyYXBoeSBoMiB7XG4gIGZvbnQ6IDUwMCAyMHB4LzMycHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDE2cHg7XG59XG5cbi5tYXQtaDMsIC5tYXQtc3ViaGVhZGluZy0yLCAubWF0LXR5cG9ncmFwaHkgaDMge1xuICBmb250OiA0MDAgMTZweC8yOHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCAxNnB4O1xufVxuXG4ubWF0LWg0LCAubWF0LXN1YmhlYWRpbmctMSwgLm1hdC10eXBvZ3JhcGh5IGg0IHtcbiAgZm9udDogNDAwIDE1cHgvMjRweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgMTZweDtcbn1cblxuLm1hdC1oNSwgLm1hdC10eXBvZ3JhcGh5IGg1IHtcbiAgZm9udDogNDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDEycHg7XG59XG5cbi5tYXQtaDYsIC5tYXQtdHlwb2dyYXBoeSBoNiB7XG4gIGZvbnQ6IDQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCAxMnB4O1xufVxuXG4ubWF0LWJvZHktc3Ryb25nLCAubWF0LWJvZHktMiB7XG4gIGZvbnQ6IDUwMCAxNHB4LzI0cHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtYm9keSwgLm1hdC1ib2R5LTEsIC5tYXQtdHlwb2dyYXBoeSB7XG4gIGZvbnQ6IDQwMCAxNHB4LzIwcHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4ubWF0LWJvZHkgcCwgLm1hdC1ib2R5LTEgcCwgLm1hdC10eXBvZ3JhcGh5IHAge1xuICBtYXJnaW46IDAgMCAxMnB4O1xufVxuXG4ubWF0LXNtYWxsLCAubWF0LWNhcHRpb24ge1xuICBmb250OiA0MDAgMTJweC8yMHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWRpc3BsYXktNCwgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS00IHtcbiAgZm9udDogMzAwIDExMnB4LzExMnB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDVlbTtcbiAgbWFyZ2luOiAwIDAgNTZweDtcbn1cblxuLm1hdC1kaXNwbGF5LTMsIC5tYXQtdHlwb2dyYXBoeSAubWF0LWRpc3BsYXktMyB7XG4gIGZvbnQ6IDQwMCA1NnB4LzU2cHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICBtYXJnaW46IDAgMCA2NHB4O1xufVxuXG4ubWF0LWRpc3BsYXktMiwgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS0yIHtcbiAgZm9udDogNDAwIDQ1cHgvNDhweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwNWVtO1xuICBtYXJnaW46IDAgMCA2NHB4O1xufVxuXG4ubWF0LWRpc3BsYXktMSwgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS0xIHtcbiAgZm9udDogNDAwIDM0cHgvNDBweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgNjRweDtcbn1cblxuLm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyIHtcbiAgZm9udDogNDAwIDE0cHgvMjBweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1idXR0b24sIC5tYXQtcmFpc2VkLWJ1dHRvbiwgLm1hdC1pY29uLWJ1dHRvbiwgLm1hdC1zdHJva2VkLWJ1dHRvbixcbi5tYXQtZmxhdC1idXR0b24sIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1jYXJkIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWNhcmQtdGl0bGUge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtY2FyZC1oZWFkZXIgLm1hdC1jYXJkLXRpdGxlIHtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuXG4ubWF0LWNhcmQtc3VidGl0bGUsXG4ubWF0LWNhcmQtY29udGVudCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1hdC1jaGVja2JveCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1jaGVja2JveC1sYXlvdXQgLm1hdC1jaGVja2JveC1sYWJlbCB7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuXG4ubWF0LWNoaXAge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4ubWF0LWNoaXAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb24sXG4ubWF0LWNoaXAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLm1hdC10YWJsZSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1oZWFkZXItY2VsbCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1jZWxsLCAubWF0LWZvb3Rlci1jZWxsIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4ubWF0LWNhbGVuZGFyIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWNhbGVuZGFyLWJvZHkge1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCxcbi5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIgdGgge1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5tYXQtZGlhbG9nLXRpdGxlIHtcbiAgZm9udDogNTAwIDIwcHgvMzJweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnQge1xuICBmb250OiA0MDAgMTRweC8yMHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWZvcm0tZmllbGQge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjEyNTtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAxLjM0Mzc1ZW07XG59XG5cbi5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLFxuLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24ge1xuICBmb250LXNpemU6IDE1MCU7XG4gIGxpbmUtaGVpZ2h0OiAxLjEyNTtcbn1cbi5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbixcbi5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbiB7XG4gIGhlaWdodDogMS41ZW07XG4gIHdpZHRoOiAxLjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb24sXG4ubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29uIHtcbiAgaGVpZ2h0OiAxLjEyNWVtO1xuICBsaW5lLWhlaWdodDogMS4xMjU7XG59XG5cbi5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDAuNWVtIDA7XG4gIGJvcmRlci10b3A6IDAuODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzMzMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM0MzMzMzMlO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gIHRvcDogLTAuODQzNzVlbTtcbiAgcGFkZGluZy10b3A6IDAuODQzNzVlbTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAxLjM0Mzc1ZW07XG59XG5cbi5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBib3R0b206IDEuMzQzNzVlbTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIG1hcmdpbi10b3A6IDAuNjY2NjY2NjY2N2VtO1xuICB0b3A6IGNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDEuMjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBwYWRkaW5nOiAwLjQzNzVlbSAwO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzMzMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM0MzMzMzMlO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzNTMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuMjgxMjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYm90dG9tOiAxLjI1ZW07XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgbWFyZ2luLXRvcDogMC41NDE2NjY2NjY3ZW07XG4gIHRvcDogY2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pO1xufVxuXG5AbWVkaWEgcHJpbnQge1xuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSk7XG4gIH1cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbDotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSk7XG4gIH1cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpO1xuICB9XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDAuMjVlbSAwIDAuNzVlbSAwO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuMDkzNzVlbTtcbiAgbWFyZ2luLXRvcDogLTAuNWVtO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzMzMzMzMzMlO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM0MzMzMzMlO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDFlbSAwIDFlbSAwO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuODQzNzVlbTtcbiAgbWFyZ2luLXRvcDogLTAuMjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzMzMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzNDMzMzMzJTtcbn1cblxuLm1hdC1ncmlkLXRpbGUtaGVhZGVyLFxuLm1hdC1ncmlkLXRpbGUtZm9vdGVyIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLm1hdC1ncmlkLXRpbGUtaGVhZGVyIC5tYXQtbGluZSxcbi5tYXQtZ3JpZC10aWxlLWZvb3RlciAubWF0LWxpbmUge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubWF0LWdyaWQtdGlsZS1oZWFkZXIgLm1hdC1saW5lOm50aC1jaGlsZChuKzIpLFxuLm1hdC1ncmlkLXRpbGUtZm9vdGVyIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICBtYXJnaW4tdG9wOiAtMC4wNjI1ZW07XG59XG5cbi5tYXQtbWVudS1pdGVtIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5tYXQtcGFnaW5hdG9yLFxuLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLm1hdC1yYWRpby1idXR0b24ge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtc2VsZWN0IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgaGVpZ2h0OiAxLjEyNWVtO1xufVxuXG4ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtc3RlcHBlci12ZXJ0aWNhbCwgLm1hdC1zdGVwcGVyLWhvcml6b250YWwge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtc3RlcC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvciB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi5tYXQtc3RlcC1sYWJlbC1lcnJvciB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWF0LXRhYi1ncm91cCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC10b29sYmFyLFxuLm1hdC10b29sYmFyIGgxLFxuLm1hdC10b29sYmFyIGgyLFxuLm1hdC10b29sYmFyIGgzLFxuLm1hdC10b29sYmFyIGg0LFxuLm1hdC10b29sYmFyIGg1LFxuLm1hdC10b29sYmFyIGg2IHtcbiAgZm9udDogNTAwIDIwcHgvMzJweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwO1xufVxuXG4ubWF0LXRvb2x0aXAge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgcGFkZGluZy10b3A6IDZweDtcbiAgcGFkZGluZy1ib3R0b206IDZweDtcbn1cblxuLm1hdC10b29sdGlwLWhhbmRzZXQge1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmctdG9wOiA4cHg7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG59XG5cbi5tYXQtbGlzdC1pdGVtIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWxpc3Qtb3B0aW9uIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24ge1xuICBmb250LXNpemU6IDE2cHg7XG59XG4ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLm1hdC1saXN0LWJhc2UgLm1hdC1zdWJoZWFkZXIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1pdGVtIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3QtaXRlbSAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMikge1xuICBmb250LXNpemU6IDEycHg7XG59XG4ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LW9wdGlvbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LXN1YmhlYWRlciB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWF0LW9wdGlvbiB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4ubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgZm9udDogNTAwIDE0cHgvMjRweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1zaW1wbGUtc25hY2tiYXIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtdHJlZSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC10cmVlLW5vZGUsXG4ubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5tYXQtcmlwcGxlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4ubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5LCB0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmNkay12aXN1YWxseS1oaWRkZW4ge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgb3V0bGluZTogMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi5jZGstb3ZlcmxheS1jb250YWluZXIsIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jZGstb3ZlcmxheS1jb250YWluZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDEwMDA7XG59XG4uY2RrLW92ZXJsYXktY29udGFpbmVyOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDAwO1xufVxuXG4uY2RrLW92ZXJsYXktcGFuZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbn1cblxuLmNkay1vdmVybGF5LWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO1xuICBvcGFjaXR5OiAwO1xufVxuLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICBvcGFjaXR5OiAxO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgfVxufVxuXG4uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zMik7XG59XG5cbi5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICBvcGFjaXR5OiAwO1xufVxuXG4uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAwMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLXdpZHRoOiAxcHg7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbn1cblxuLmNkay1nbG9iYWwtc2Nyb2xsYmxvY2sge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG5cbkBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQge1xuICAvKiEqL1xufVxuQGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQge1xuICAvKiEqL1xufVxuLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxsIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0O1xufVxuXG4uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCkge1xuICBhbmltYXRpb24tbmFtZTogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kO1xufVxuXG50ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUge1xuICByZXNpemU6IG5vbmU7XG59XG5cbnRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmcge1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveCAhaW1wb3J0YW50O1xufVxuXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW9wdGlvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtb3B0aW9uOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LW9wdGlvbjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW9wdGlvbi5tYXQtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1vcHRpb24ubWF0LW9wdGlvbi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtb3B0Z3JvdXAtZGlzYWJsZWQgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHNldWRvLWNoZWNrYm94IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3g6OmFmdGVyIHtcbiAgY29sb3I6ICNmYWZhZmE7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBjb2xvcjogI2IwYjBiMDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiAjYjBiMGIwO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXowIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejMge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXo0IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDVweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16NiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16NyB7XG4gIGJveC1zaGFkb3c6IDBweCA0cHggNXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggN3B4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAycHggMTZweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16OCB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16OSB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOXB4IDEycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTZweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTAge1xuICBib3gtc2hhZG93OiAwcHggNnB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEwcHggMTRweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDRweCAxOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxMSB7XG4gIGJveC1zaGFkb3c6IDBweCA2cHggN3B4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTFweCAxNXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDIwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejEyIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTMge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEzcHggMTlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxNCB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOXB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTRweCAyMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejE1IHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCA5cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNXB4IDIycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMjhweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTYge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTcge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxN3B4IDI2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTgge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOHB4IDI4cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTkge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDEycHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOXB4IDI5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MjAge1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjBweCAzMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDM4cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejIxIHtcbiAgYm94LXNoYWRvdzogMHB4IDEwcHggMTNweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIxcHggMzNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MHB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoyMiB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDE0cHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMnB4IDM1cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDJweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MjMge1xuICBib3gtc2hhZG93OiAwcHggMTFweCAxNHB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjNweCAzNnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejI0IHtcbiAgYm94LXNoYWRvdzogMHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYXBwLWJhY2tncm91bmQsIC5zdGFuZGFyZC10aGVtZS5tYXQtYXBwLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtdGhlbWUtbG9hZGVkLW1hcmtlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zdGFuZGFyZC10aGVtZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LWFjdGl2ZSk6bm90KDpob3Zlcik6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZDogIzYwN2Q4Yjtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBvdXRsaW5lOiBzb2xpZCAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtYWNjZW50IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICM0NDhhZmY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXdhcm4gLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1oaWRkZW4gLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWRpc2FibGVkIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICNiOWI5Yjk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0O1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIHtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLThweDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC04cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNnB4O1xufVxuW2Rpcj1ydGxdIC5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTZweDtcbn1cbltkaXI9cnRsXSAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtOHB4O1xufVxuW2Rpcj1ydGxdIC5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC04cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC04cHg7XG59XG5bZGlyPXJ0bF0gLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtOHB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB0b3A6IC0xMXB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC0xMXB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0yMnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTIycHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTExcHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMTFweDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWxhcmdlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLTE0cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVsb3cgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYm90dG9tOiAtMTRweDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTI4cHg7XG59XG5bZGlyPXJ0bF0gLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTI4cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0yOHB4O1xufVxuW2Rpcj1ydGxdIC5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTI4cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNHB4O1xufVxuW2Rpcj1ydGxdIC5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNHB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTRweDtcbn1cbltkaXI9cnRsXSAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNHB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24sIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbiB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnksIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24ubWF0LWFjY2VudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24ubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b25bZGlzYWJsZWRdIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBvcGFjaXR5OiAwLjE7XG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZDogYmxhY2s7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2Rpc2FibGVkXSkge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnksIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC1wcmltYXJ5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWZhYi5tYXQtYWNjZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhaXNlZC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF06bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWI6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiOm5vdChbZGlzYWJsZWRdKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiOm5vdChbZGlzYWJsZWRdKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEycHggMTdweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiW2Rpc2FibGVkXTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWJbZGlzYWJsZWRdOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSBbZGlyPXJ0bF0gLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiZGJkYmQ7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGJvcmRlcjogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYXJkIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FyZDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYXJkLm1hdC1jYXJkLWZsYXQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYXJkLXN1YnRpdGxlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gIGZpbGw6ICNmYWZhZmE7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gIHN0cm9rZTogI2ZhZmFmYSAhaW1wb3J0YW50O1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHtcbiAgLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGgge1xuICAgIHN0cm9rZTogIzAwMCAhaW1wb3J0YW50O1xuICB9XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IwYjBiMDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkOm5vdCgubWF0LWNoZWNrYm94LWNoZWNrZWQpIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6ICNiMGIwYjA7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveC1kaXNhYmxlZCAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgb3BhY2l0eTogMC40O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDpub3QoLm1hdC1jaGlwLWRpc2FibGVkKTphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDpub3QoLm1hdC1jaGlwLWRpc2FibGVkKSAubWF0LWNoaXAtcmVtb3ZlOmhvdmVyIHtcbiAgb3BhY2l0eTogMC41NDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjQ7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOjphZnRlciB7XG4gIGJhY2tncm91bmQ6IGJsYWNrO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgb3BhY2l0eTogMC40O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXdhcm4gLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgb3BhY2l0eTogMC40O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFibGUge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYmxlIHRoZWFkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWJsZSB0Ym9keSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFibGUgdGZvb3QsXG4uc3RhbmRhcmQtdGhlbWUgbWF0LWhlYWRlci1yb3csIC5zdGFuZGFyZC10aGVtZSBtYXQtcm93LCAuc3RhbmRhcmQtdGhlbWUgbWF0LWZvb3Rlci1yb3csXG4uc3RhbmRhcmQtdGhlbWUgW21hdC1oZWFkZXItcm93XSwgLnN0YW5kYXJkLXRoZW1lIFttYXQtcm93XSwgLnN0YW5kYXJkLXRoZW1lIFttYXQtZm9vdGVyLXJvd10sXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWJsZS1zdGlja3kge1xuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xufVxuLnN0YW5kYXJkLXRoZW1lIG1hdC1yb3csIC5zdGFuZGFyZC10aGVtZSBtYXQtaGVhZGVyLXJvdywgLnN0YW5kYXJkLXRoZW1lIG1hdC1mb290ZXItcm93LFxuLnN0YW5kYXJkLXRoZW1lIHRoLm1hdC1oZWFkZXItY2VsbCwgLnN0YW5kYXJkLXRoZW1lIHRkLm1hdC1jZWxsLCAuc3RhbmRhcmQtdGhlbWUgdGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWhlYWRlci1jZWxsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jZWxsLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mb290ZXItY2VsbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItYXJyb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1uZXh0LWJ1dHRvbixcbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLXByZXZpb3VzLWJ1dHRvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXItZGl2aWRlcjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXIgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSxcbi5zdGFuZGFyZC10aGVtZSAuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS10b2RheTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xuICBjb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg5NiwgMTI1LCAxMzksIDAuNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDhhZmY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNjgsIDEzOCwgMjU1LCAwLjQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0NCwgNjcsIDU0LCAwLjQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC10b3VjaCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLm1hdC1hY2NlbnQge1xuICBjb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGl2aWRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kaXZpZGVyLXZlcnRpY2FsIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWFjdGlvbi1yb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5zdGFuZGFyZC10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCk6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICB9XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLWluZGljYXRvcjo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaGludCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKSAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKS5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LWFjY2VudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVycm9yIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWhpbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC40MikgMCUsIHJnYmEoMCwgMCwgMCwgMC40MikgMzMlLCB0cmFuc3BhcmVudCAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogNHB4IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNDIpIDAlLCByZ2JhKDAsIDAsIDAsIDAuNDIpIDMzJSwgdHJhbnNwYXJlbnQgMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDRweCAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA2KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWljb24ubWF0LXByaW1hcnkge1xuICBjb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWljb24ubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6ZGlzYWJsZWQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtaW5wdXQtZWxlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWlucHV0LWVsZW1lbnQge1xuICBjYXJldC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWxpc3QtYmFzZSAubWF0LXN1YmhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbGlzdC1pdGVtLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWxpc3Qtb3B0aW9uOmhvdmVyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1saXN0LW9wdGlvbjpmb2N1cyxcbi5zdGFuZGFyZC10aGVtZSAubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06Zm9jdXMsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbTpob3Zlcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtaXRlbSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF06OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1tZW51LWl0ZW0gLm1hdC1pY29uLW5vLWNvbG9yLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWVudS1pdGVtLXN1Ym1lbnUtdHJpZ2dlcjo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtaXRlbTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1tZW51LWl0ZW0uY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoW2Rpc2FibGVkXSksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1tZW51LWl0ZW0uY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWVudS1pdGVtLWhpZ2hsaWdodGVkOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wYWdpbmF0b3Ige1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvci1wYWdlLXNpemUgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQge1xuICBib3JkZXItdG9wOiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvci1maXJzdCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZGVjcmVtZW50LFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1maXJzdCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjY2ZkOGRjO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZmQ4ZGM7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gIGZpbGw6ICM4MmIxZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODJiMWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjZmZjZGQyO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmNkZDI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGUsIC5zdGFuZGFyZC10aGVtZSAubWF0LXNwaW5uZXIgY2lyY2xlIHtcbiAgc3Ryb2tlOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSB7XG4gIHN0cm9rZTogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXdhcm4gY2lyY2xlLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zcGlubmVyLm1hdC13YXJuIGNpcmNsZSB7XG4gIHN0cm9rZTogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeTphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudC5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50OmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2Fybi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybjphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zZWxlY3QtdmFsdWUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNlbGVjdC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNlbGVjdC1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2VsZWN0LXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zZWxlY3QtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtcHJpbWFyeSAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtYWNjZW50IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtaW52YWxpZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZCAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXItY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXIubWF0LWRyYXdlci1wdXNoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXI6bm90KC5tYXQtZHJhd2VyLXNpZGUpIHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXItc2lkZSB7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXItc2lkZS5tYXQtZHJhd2VyLWVuZCB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLnN0YW5kYXJkLXRoZW1lIFtkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRlIHtcbiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgW2Rpcj1ydGxdIC5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmQge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRyYXdlci1iYWNrZHJvcC5tYXQtZHJhd2VyLXNob3duIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDY4LCAxMzgsIDI1NSwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoOTYsIDEyNSwgMTM5LCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDQsIDY3LCA1NCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGU6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWIsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItZm9jdXMtcmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNjgsIDEzOCwgMjU1LCAwLjIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGVyOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4uc3RhbmRhcmQtdGhlbWUgLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItZGlzYWJsZWQ6aG92ZXIgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWIsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZy5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpOmhvdmVyIC5tYXQtc2xpZGVyLXRodW1iLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKS5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpOmhvdmVyLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpLmNkay1mb2N1c2VkLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItaGFzLXRpY2tzIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC43KSwgcmdiYSgwLCAwLCAwLCAwLjcpIDJweCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LXJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMC4wMDAxZGVnLCByZ2JhKDAsIDAsIDAsIDAuNyksIHJnYmEoMCwgMCwgMCwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDAsIDAsIDAsIDAuNyksIHJnYmEoMCwgMCwgMCwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXAtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlci5jZGstcHJvZ3JhbS1mb2N1c2VkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXAtaGVhZGVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtb3B0aW9uYWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVycm9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWFjdGl2ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwcGVyLWhvcml6b250YWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXBwZXItdmVydGljYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXBwZXItdmVydGljYWwtbGluZTo6YmVmb3JlIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjphZnRlcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbC1saW5lIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNvcnQtaGVhZGVyLWFycm93IHtcbiAgY29sb3I6ICM3NTc1NzU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC10YWItbmF2LWJhcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC10YWItaGVhZGVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbGFiZWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cFtjbGFzcyo9bWF0LWJhY2tncm91bmQtXSAubWF0LXRhYi1oZWFkZXIsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhcltjbGFzcyo9bWF0LWJhY2tncm91bmQtXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDcsIDIxNiwgMjIwLCAwLjMpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtaW5rLWJhciwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtaW5rLWJhciwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMzAsIDE3NywgMjU1LCAwLjMpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC1pbmstYmFyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1pbmstYmFyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50Lm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjA1LCAyMTAsIDAuMyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC1pbmstYmFyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1pbmstYmFyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwNywgMjE2LCAyMjAsIDAuMyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmtzLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGlua3MsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmssIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMzAsIDE3NywgMjU1LCAwLjMpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGlua3MsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rcywgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluaywgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMDUsIDIxMCwgMC4zKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlciwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGlua3MsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlciwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rcywgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluaywgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10b29sYmFyIHtcbiAgYmFja2dyb3VuZDogd2hpdGVzbW9rZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10b29sYmFyLm1hdC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzYwN2Q4YjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdG9vbGJhci5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZDogIzQ0OGFmZjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdG9vbGJhci5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQ6ICNmNDQzMzY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtdmFsdWUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LWFycm93LFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2x0aXAge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDk3LCA5NywgOTcsIDAuOSk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10cmVlIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10cmVlLW5vZGUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbmFjay1iYXItY29udGFpbmVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgYmFja2dyb3VuZDogIzMyMzIzMjtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIGgxIHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG5cbi5ncmVlbi10aGVtZSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtb3B0aW9uIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtb3B0aW9uOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksIC5ncmVlbi10aGVtZSAubWF0LW9wdGlvbjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW9wdGlvbi5tYXQtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtb3B0aW9uLm1hdC1vcHRpb24tZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1vcHRncm91cC1kaXNhYmxlZCAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3g6OmFmdGVyIHtcbiAgY29sb3I6ICMzMDMwMzA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBjb2xvcjogIzY4Njg2ODtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5ncmVlbi10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLFxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uZ3JlZW4tdGhlbWUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCxcbi5ncmVlbi10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiAjNjg2ODY4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXowIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejMge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXo0IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDVweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16NiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16NyB7XG4gIGJveC1zaGFkb3c6IDBweCA0cHggNXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggN3B4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAycHggMTZweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16OCB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16OSB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOXB4IDEycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTZweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTAge1xuICBib3gtc2hhZG93OiAwcHggNnB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEwcHggMTRweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDRweCAxOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxMSB7XG4gIGJveC1zaGFkb3c6IDBweCA2cHggN3B4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTFweCAxNXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDIwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejEyIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTMge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEzcHggMTlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxNCB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOXB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTRweCAyMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejE1IHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCA5cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNXB4IDIycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMjhweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTYge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTcge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxN3B4IDI2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTgge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOHB4IDI4cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTkge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDEycHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOXB4IDI5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MjAge1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjBweCAzMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDM4cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejIxIHtcbiAgYm94LXNoYWRvdzogMHB4IDEwcHggMTNweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIxcHggMzNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MHB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoyMiB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDE0cHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMnB4IDM1cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDJweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MjMge1xuICBib3gtc2hhZG93OiAwcHggMTFweCAxNHB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjNweCAzNnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejI0IHtcbiAgYm94LXNoYWRvdzogMHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYXBwLWJhY2tncm91bmQsIC5ncmVlbi10aGVtZS5tYXQtYXBwLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzAzMDMwO1xuICBjb2xvcjogd2hpdGU7XG59XG4ubWF0LXRoZW1lLWxvYWRlZC1tYXJrZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZ3JlZW4tdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtYWN0aXZlKTpub3QoOmhvdmVyKSB7XG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LWFjdGl2ZSk6bm90KDpob3Zlcik6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYmFja2dyb3VuZDogIzhiYzM0YTtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBvdXRsaW5lOiBzb2xpZCAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtYWNjZW50IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICM0Y2FmNTA7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utd2FybiAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYmFja2dyb3VuZDogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtaGlkZGVuIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiAjNmU2ZTZlO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0O1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIHtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLThweDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC04cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNnB4O1xufVxuW2Rpcj1ydGxdIC5ncmVlbi10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTZweDtcbn1cbltkaXI9cnRsXSAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtOHB4O1xufVxuW2Rpcj1ydGxdIC5ncmVlbi10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC04cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC04cHg7XG59XG5bZGlyPXJ0bF0gLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtOHB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB0b3A6IC0xMXB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC0xMXB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0yMnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTIycHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTExcHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMTFweDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWxhcmdlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLTE0cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVsb3cgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYm90dG9tOiAtMTRweDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTI4cHg7XG59XG5bZGlyPXJ0bF0gLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTI4cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0yOHB4O1xufVxuW2Rpcj1ydGxdIC5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTI4cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNHB4O1xufVxuW2Rpcj1ydGxdIC5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNHB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTRweDtcbn1cbltkaXI9cnRsXSAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNHB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24sIC5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbiB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24ubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuLCAuZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4ge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5ncmVlbi10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uW2Rpc2FibGVkXSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIG9wYWNpdHk6IDAuMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIsIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeSwgLmdyZWVuLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQsIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtZmFiLm1hdC1hY2NlbnQsIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0ge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeSwgLmdyZWVuLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiwgLmdyZWVuLXRoZW1lIC5tYXQtZmFiLm1hdC13YXJuLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtZmFiLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b246bm90KFtkaXNhYmxlZF0pOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmFiOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZhYjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZhYltkaXNhYmxlZF06bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiW2Rpc2FibGVkXTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZSxcbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSBbZGlyPXJ0bF0gLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMTIxO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyNDI0Mjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLFxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgYm9yZGVyOiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNhcmQge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYXJkOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNhcmQubWF0LWNhcmQtZmxhdDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNhcmQtc3VidGl0bGUge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gIGZpbGw6ICMzMDMwMzA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gIHN0cm9rZTogIzMwMzAzMCAhaW1wb3J0YW50O1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHtcbiAgLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGgge1xuICAgIHN0cm9rZTogIzAwMCAhaW1wb3J0YW50O1xuICB9XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzAzMDMwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwgLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY4Njg2ODtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkOm5vdCgubWF0LWNoZWNrYm94LWNoZWNrZWQpIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6ICM2ODY4Njg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1kaXNhYmxlZCAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAuZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3ggLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCxcbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LFxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjE2MTYxO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXA6bm90KC5tYXQtY2hpcC1kaXNhYmxlZCk6YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAzcHggNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXA6bm90KC5tYXQtY2hpcC1kaXNhYmxlZCkgLm1hdC1jaGlwLXJlbW92ZTpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNTQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC40O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBvcGFjaXR5OiAwLjQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgb3BhY2l0eTogMC40O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBvcGFjaXR5OiAwLjQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYmxlIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYmxlIHRoZWFkLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWJsZSB0Ym9keSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFibGUgdGZvb3QsXG4uZ3JlZW4tdGhlbWUgbWF0LWhlYWRlci1yb3csIC5ncmVlbi10aGVtZSBtYXQtcm93LCAuZ3JlZW4tdGhlbWUgbWF0LWZvb3Rlci1yb3csXG4uZ3JlZW4tdGhlbWUgW21hdC1oZWFkZXItcm93XSwgLmdyZWVuLXRoZW1lIFttYXQtcm93XSwgLmdyZWVuLXRoZW1lIFttYXQtZm9vdGVyLXJvd10sXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWJsZS1zdGlja3kge1xuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xufVxuLmdyZWVuLXRoZW1lIG1hdC1yb3csIC5ncmVlbi10aGVtZSBtYXQtaGVhZGVyLXJvdywgLmdyZWVuLXRoZW1lIG1hdC1mb290ZXItcm93LFxuLmdyZWVuLXRoZW1lIHRoLm1hdC1oZWFkZXItY2VsbCwgLmdyZWVuLXRoZW1lIHRkLm1hdC1jZWxsLCAuZ3JlZW4tdGhlbWUgdGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWhlYWRlci1jZWxsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNlbGwsIC5ncmVlbi10aGVtZSAubWF0LWZvb3Rlci1jZWxsIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2FsZW5kYXItYXJyb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLFxuLmdyZWVuLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItbmV4dC1idXR0b24sXG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1wcmV2aW91cy1idXR0b24ge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyLWRpdmlkZXI6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXIgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpLFxuLmdyZWVuLXRoZW1lIC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSxcbi5ncmVlbi10aGVtZSAuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMzksIDE5NSwgNzQsIDAuNCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDc2LCAxNzUsIDgwLCAwLjQpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3NiwgMTc1LCA4MCwgMC40KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC10b3VjaCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gIGNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLm1hdC1hY2NlbnQge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtd2FybiB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZDogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGl2aWRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kaXZpZGVyLXZlcnRpY2FsIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWFjdGlvbi1yb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLCAuZ3JlZW4tdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSwgLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5ncmVlbi10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCk6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICM0MjQyNDI7XG4gIH1cbn1cbi5ncmVlbi10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uLFxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLWluZGljYXRvcjo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUsXG4uZ3JlZW4tdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWhpbnQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC1hY2NlbnQge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC13YXJuIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtYWNjZW50LFxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXJyb3Ige1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1oaW50IHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMzMlLCB0cmFuc3BhcmVudCAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogNHB4IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDMzJSwgdHJhbnNwYXJlbnQgMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDRweCAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi5tYXQtcHJpbWFyeSB7XG4gIGNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi5tYXQtYWNjZW50IHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1pY29uLm1hdC13YXJuIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1pbnB1dC1lbGVtZW50OmRpc2FibGVkLFxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQgb3B0aW9uIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1pbnB1dC1lbGVtZW50IG9wdGlvbjpkaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtd2FybiAubWF0LWlucHV0LWVsZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW0ge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbiB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWxpc3QtYmFzZSAubWF0LXN1YmhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1saXN0LWl0ZW0tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbi5ncmVlbi10aGVtZSAubWF0LWxpc3Qtb3B0aW9uOmhvdmVyLCAuZ3JlZW4tdGhlbWUgLm1hdC1saXN0LW9wdGlvbjpmb2N1cyxcbi5ncmVlbi10aGVtZSAubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLFxuLmdyZWVuLXRoZW1lIC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06Zm9jdXMsXG4uZ3JlZW4tdGhlbWUgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbTpob3Zlcixcbi5ncmVlbi10aGVtZSAubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW1lbnUtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtbWVudS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtbWVudS1pdGVtIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF06OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW1lbnUtaXRlbSAubWF0LWljb24tbm8tY29sb3IsXG4uZ3JlZW4tdGhlbWUgLm1hdC1tZW51LWl0ZW0tc3VibWVudS10cmlnZ2VyOjphZnRlciB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW1lbnUtaXRlbTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4uZ3JlZW4tdGhlbWUgLm1hdC1tZW51LWl0ZW0uY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoW2Rpc2FibGVkXSksXG4uZ3JlZW4tdGhlbWUgLm1hdC1tZW51LWl0ZW0uY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLFxuLmdyZWVuLXRoZW1lIC5tYXQtbWVudS1pdGVtLWhpZ2hsaWdodGVkOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wYWdpbmF0b3Ige1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcGFnaW5hdG9yLFxuLmdyZWVuLXRoZW1lIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1wYWdpbmF0b3ItaW5jcmVtZW50IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHdoaXRlO1xuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXBhZ2luYXRvci1maXJzdCxcbi5ncmVlbi10aGVtZSAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxcbi5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZmlyc3QsXG4uZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItbGFzdCB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjZGNlZGM4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkY2VkYzg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gIGZpbGw6ICNjOGU2Yzk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzhlNmM5O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjYzhlNmM5O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjOGU2Yzk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGUsIC5ncmVlbi10aGVtZSAubWF0LXNwaW5uZXIgY2lyY2xlIHtcbiAgc3Ryb2tlOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSwgLmdyZWVuLXRoZW1lIC5tYXQtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSB7XG4gIHN0cm9rZTogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXdhcm4gY2lyY2xlLCAuZ3JlZW4tdGhlbWUgLm1hdC1zcGlubmVyLm1hdC13YXJuIGNpcmNsZSB7XG4gIHN0cm9rZTogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5OmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsXG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudCAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQ6YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4ubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuOmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUsXG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNlbGVjdC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtdmFsdWUge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNlbGVjdC1wYW5lbCB7XG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zZWxlY3QtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNlbGVjdC1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1wcmltYXJ5IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LXdhcm4gLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1pbnZhbGlkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZHJhd2VyLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMDMwMzA7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRyYXdlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MjQyNDI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRyYXdlci5tYXQtZHJhd2VyLXB1c2gge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZHJhd2VyOm5vdCgubWF0LWRyYXdlci1zaWRlKSB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZHJhd2VyLXNpZGUge1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmQge1xuICBib3JkZXItbGVmdDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSBbZGlyPXJ0bF0gLm1hdC1kcmF3ZXItc2lkZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLmdyZWVuLXRoZW1lIFtkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRlLm1hdC1kcmF3ZXItZW5kIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kcmF3ZXItYmFja2Ryb3AubWF0LWRyYXdlci1zaG93biB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTg5LCAxODksIDE4OSwgMC42KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3NiwgMTc1LCA4MCwgMC41NCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTM5LCAxOTUsIDc0LCAwLjU0KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3NiwgMTc1LCA4MCwgMC41NCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGU6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JkYmRiZDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4uZ3JlZW4tdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXdhcm4gLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5ncmVlbi10aGVtZSAubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDc2LCAxNzUsIDgwLCAwLjIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4uZ3JlZW4tdGhlbWUgLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCxcbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLWRpc2FibGVkOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZy5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyk6aG92ZXIgLm1hdC1zbGlkZXItdGh1bWIsIC5ncmVlbi10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKTpob3Zlci5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iLCAuZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKS5jZGstZm9jdXNlZC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItaGFzLXRpY2tzIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDJweCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LXJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMC4wMDAxZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXN0ZXAtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlci5jZGstcHJvZ3JhbS1mb2N1c2VkLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5ncmVlbi10aGVtZSAubWF0LXN0ZXAtaGVhZGVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwsXG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtb3B0aW9uYWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YmMzNGE7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZXJyb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtYWN0aXZlIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwcGVyLWhvcml6b250YWwsIC5ncmVlbi10aGVtZSAubWF0LXN0ZXBwZXItdmVydGljYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmUge1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmJlZm9yZSxcbi5ncmVlbi10aGVtZSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmFmdGVyLFxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmUge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc29ydC1oZWFkZXItYXJyb3cge1xuICBjb2xvcjogI2M2YzZjNjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciAubWF0LXRhYi1uYXYtYmFyLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciAubWF0LXRhYi1oZWFkZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1sYWJlbCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWxpbmsge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwW2NsYXNzKj1tYXQtYmFja2dyb3VuZC1dIC5tYXQtdGFiLWhlYWRlcixcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyW2NsYXNzKj1tYXQtYmFja2dyb3VuZC1dIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyMCwgMjM3LCAyMDAsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC1pbmstYmFyLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC1pbmstYmFyLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjAwLCAyMzAsIDIwMSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtaW5rLWJhciwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtaW5rLWJhciwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwMCwgMjMwLCAyMDEsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC1pbmstYmFyLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1pbmstYmFyLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjIwLCAyMzcsIDIwMCwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlciwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGlua3MsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlciwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rcywgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluaywgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDAsIDIzMCwgMjAxLCAwLjMpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGlua3MsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rcywgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluaywgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwMCwgMjMwLCAyMDEsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXIsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmtzLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXIsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGlua3MsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmssIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIge1xuICBiYWNrZ3JvdW5kOiAjMjEyMTIxO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10b29sYmFyLm1hdC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzhiYzM0YTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10b29sYmFyLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kOiAjNGNhZjUwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIubWF0LXdhcm4ge1xuICBiYWNrZ3JvdW5kOiAjNGNhZjUwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSxcbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtdmFsdWUsXG4uZ3JlZW4tdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LWFycm93LFxuLmdyZWVuLXRoZW1lIC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2x0aXAge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDk3LCA5NywgOTcsIDAuOSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10cmVlIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRyZWUtbm9kZSxcbi5ncmVlbi10aGVtZSAubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbmFjay1iYXItY29udGFpbmVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5ncmVlbi10aGVtZSBoMSB7XG4gIGNvbG9yOiAjOGJjMzRhO1xufVxuXG4vKiBZb3UgY2FuIGFkZCBnbG9iYWwgc3R5bGVzIHRvIHRoaXMgZmlsZSwgYW5kIGFsc28gaW1wb3J0IG90aGVyIHN0eWxlIGZpbGVzICovXG5odG1sLCBib2R5IHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5mbGV4LXNwYWNlciB7XG4gIGZsZXg6IDEgMSBhdXRvO1xufSIsIlxuLy8gQ3VzdG9tIFRoZW1pbmcgZm9yIEFuZ3VsYXIgTWF0ZXJpYWxcbi8vIEZvciBtb3JlIGluZm9ybWF0aW9uOiBodHRwczovL21hdGVyaWFsLmFuZ3VsYXIuaW8vZ3VpZGUvdGhlbWluZ1xuQGltcG9ydCAnfkBhbmd1bGFyL21hdGVyaWFsL3RoZW1pbmcnO1xuLy8gUGx1cyBpbXBvcnRzIGZvciBvdGhlciBjb21wb25lbnRzIGluIHlvdXIgYXBwLlxuXG4vLyBJbmNsdWRlIHRoZSBjb21tb24gc3R5bGVzIGZvciBBbmd1bGFyIE1hdGVyaWFsLiBXZSBpbmNsdWRlIHRoaXMgaGVyZSBzbyB0aGF0IHlvdSBvbmx5XG4vLyBoYXZlIHRvIGxvYWQgYSBzaW5nbGUgY3NzIGZpbGUgZm9yIEFuZ3VsYXIgTWF0ZXJpYWwgaW4geW91ciBhcHAuXG4vLyBCZSBzdXJlIHRoYXQgeW91IG9ubHkgZXZlciBpbmNsdWRlIHRoaXMgbWl4aW4gb25jZSFcbkBpbmNsdWRlIG1hdC1jb3JlKCk7XG5cbi8vIGltcG9ydGluZyB0aGUgdGhlbWVzIGZyb20gb3VyIHRoZW1lIGZpbGVzXG5AaW1wb3J0IFwiLi90aGVtZXMvc3RhbmRhcmQtdGhlbWVcIjtcbkBpbXBvcnQgXCIuL3RoZW1lcy9ncmVlbi10aGVtZVwiO1xuLy8gSW5jbHVkZSB0aGVtZSBzdHlsZXMgZm9yIGNvcmUgYW5kIGVhY2ggY29tcG9uZW50IHVzZWQgaW4geW91ciBhcHAuXG4vLyBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGltcG9ydCBhbmQgQGluY2x1ZGUgdGhlIHRoZW1lIG1peGlucyBmb3IgZWFjaCBjb21wb25lbnRcbi8vIHRoYXQgeW91IGFyZSB1c2luZy5cblxuLy8gZm9yIG93biBjb21wb25lbnRzLCBpLmUuIG5vbiBtYXRlcmlhbCBjb21wb25lbnQgd2UgbGlrZSB0byB1c2UgdGhlIHNhbWUgc3R5bGUvcGFsZXR0ZXNcblxuXG4uc3RhbmRhcmQtdGhlbWUge1xuICBAaW5jbHVkZSBhbmd1bGFyLW1hdGVyaWFsLXRoZW1lKCRzdGFuZGFyZC10aGVtZSk7XG5cbiAgaDEgeyBjb2xvcjogbWF0LWNvbG9yKCRzdGFuZGFyZC10aGVtZS1wcmltYXJ5KX1cbn1cbi5ncmVlbi10aGVtZSB7XG4gIEBpbmNsdWRlIGFuZ3VsYXItbWF0ZXJpYWwtdGhlbWUoJGdyZWVuLXRoZW1lKTtcblxuICBoMSB7IGNvbG9yOiBtYXQtY29sb3IoJGdyZWVuLXRoZW1lLXByaW1hcnkpfVxufVxuXG5cbi8qIFlvdSBjYW4gYWRkIGdsb2JhbCBzdHlsZXMgdG8gdGhpcyBmaWxlLCBhbmQgYWxzbyBpbXBvcnQgb3RoZXIgc3R5bGUgZmlsZXMgKi9cblxuXG5odG1sLCBib2R5IHsgaGVpZ2h0OiAxMDAlOyB9XG5ib2R5IHsgbWFyZ2luOiAwOyBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7IH1cblxuLmZsZXgtc3BhY2VyIHtcbiAgZmxleDogMSAxIGF1dG87XG59XG5cblxuXG4iXX0= */", '', '']];
+ module.exports = [[module.i, "/* Theme for the ripple elements.*/\n/* stylelint-disable material/no-prefixes */\n/* stylelint-enable */\n.mat-badge-content {\n font-weight: 600;\n font-size: 12px;\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-badge-small .mat-badge-content {\n font-size: 9px;\n}\n.mat-badge-large .mat-badge-content {\n font-size: 24px;\n}\n.mat-h1, .mat-headline, .mat-typography h1 {\n font: 400 24px/32px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 16px;\n}\n.mat-h2, .mat-title, .mat-typography h2 {\n font: 500 20px/32px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 16px;\n}\n.mat-h3, .mat-subheading-2, .mat-typography h3 {\n font: 400 16px/28px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 16px;\n}\n.mat-h4, .mat-subheading-1, .mat-typography h4 {\n font: 400 15px/24px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 16px;\n}\n.mat-h5, .mat-typography h5 {\n font: 400 calc(14px * 0.83)/20px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 12px;\n}\n.mat-h6, .mat-typography h6 {\n font: 400 calc(14px * 0.67)/20px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 12px;\n}\n.mat-body-strong, .mat-body-2 {\n font: 500 14px/24px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-body, .mat-body-1, .mat-typography {\n font: 400 14px/20px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-body p, .mat-body-1 p, .mat-typography p {\n margin: 0 0 12px;\n}\n.mat-small, .mat-caption {\n font: 400 12px/20px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-display-4, .mat-typography .mat-display-4 {\n font: 300 112px/112px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: -0.05em;\n margin: 0 0 56px;\n}\n.mat-display-3, .mat-typography .mat-display-3 {\n font: 400 56px/56px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: -0.02em;\n margin: 0 0 64px;\n}\n.mat-display-2, .mat-typography .mat-display-2 {\n font: 400 45px/48px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: -0.005em;\n margin: 0 0 64px;\n}\n.mat-display-1, .mat-typography .mat-display-1 {\n font: 400 34px/40px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 64px;\n}\n.mat-bottom-sheet-container {\n font: 400 14px/20px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-button, .mat-raised-button, .mat-icon-button, .mat-stroked-button,\n.mat-flat-button, .mat-fab, .mat-mini-fab {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n font-weight: 500;\n}\n.mat-button-toggle {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-card {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-card-title {\n font-size: 24px;\n font-weight: 500;\n}\n.mat-card-header .mat-card-title {\n font-size: 20px;\n}\n.mat-card-subtitle,\n.mat-card-content {\n font-size: 14px;\n}\n.mat-checkbox {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-checkbox-layout .mat-checkbox-label {\n line-height: 24px;\n}\n.mat-chip {\n font-size: 14px;\n font-weight: 500;\n}\n.mat-chip .mat-chip-trailing-icon.mat-icon,\n.mat-chip .mat-chip-remove.mat-icon {\n font-size: 18px;\n}\n.mat-table {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-header-cell {\n font-size: 12px;\n font-weight: 500;\n}\n.mat-cell, .mat-footer-cell {\n font-size: 14px;\n}\n.mat-calendar {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-calendar-body {\n font-size: 13px;\n}\n.mat-calendar-body-label,\n.mat-calendar-period-button {\n font-size: 14px;\n font-weight: 500;\n}\n.mat-calendar-table-header th {\n font-size: 11px;\n font-weight: 400;\n}\n.mat-dialog-title {\n font: 500 20px/32px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-expansion-panel-header {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 15px;\n font-weight: 400;\n}\n.mat-expansion-panel-content {\n font: 400 14px/20px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-form-field {\n font-size: inherit;\n font-weight: 400;\n line-height: 1.125;\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-form-field-wrapper {\n padding-bottom: 1.34375em;\n}\n.mat-form-field-prefix .mat-icon,\n.mat-form-field-suffix .mat-icon {\n font-size: 150%;\n line-height: 1.125;\n}\n.mat-form-field-prefix .mat-icon-button,\n.mat-form-field-suffix .mat-icon-button {\n height: 1.5em;\n width: 1.5em;\n}\n.mat-form-field-prefix .mat-icon-button .mat-icon,\n.mat-form-field-suffix .mat-icon-button .mat-icon {\n height: 1.125em;\n line-height: 1.125;\n}\n.mat-form-field-infix {\n padding: 0.5em 0;\n border-top: 0.84375em solid transparent;\n}\n.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\n.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.34375em) scale(0.75);\n width: 133.3333333333%;\n}\n.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.34374em) scale(0.75);\n width: 133.3333433333%;\n}\n.mat-form-field-label-wrapper {\n top: -0.84375em;\n padding-top: 0.84375em;\n}\n.mat-form-field-label {\n top: 1.34375em;\n}\n.mat-form-field-underline {\n bottom: 1.34375em;\n}\n.mat-form-field-subscript-wrapper {\n font-size: 75%;\n margin-top: 0.6666666667em;\n top: calc(100% - 1.7916666667em);\n}\n.mat-form-field-appearance-legacy .mat-form-field-wrapper {\n padding-bottom: 1.25em;\n}\n.mat-form-field-appearance-legacy .mat-form-field-infix {\n padding: 0.4375em 0;\n}\n.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);\n -ms-transform: translateY(-1.28125em) scale(0.75);\n width: 133.3333333333%;\n}\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);\n -ms-transform: translateY(-1.28124em) scale(0.75);\n width: 133.3333433333%;\n}\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);\n -ms-transform: translateY(-1.28123em) scale(0.75);\n width: 133.3333533333%;\n}\n.mat-form-field-appearance-legacy .mat-form-field-label {\n top: 1.28125em;\n}\n.mat-form-field-appearance-legacy .mat-form-field-underline {\n bottom: 1.25em;\n}\n.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper {\n margin-top: 0.5416666667em;\n top: calc(100% - 1.6666666667em);\n}\n@media print {\n .mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.28122em) scale(0.75);\n }\n .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.28121em) scale(0.75);\n }\n .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.2812em) scale(0.75);\n }\n}\n.mat-form-field-appearance-fill .mat-form-field-infix {\n padding: 0.25em 0 0.75em 0;\n}\n.mat-form-field-appearance-fill .mat-form-field-label {\n top: 1.09375em;\n margin-top: -0.5em;\n}\n.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\n.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-0.59375em) scale(0.75);\n width: 133.3333333333%;\n}\n.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-0.59374em) scale(0.75);\n width: 133.3333433333%;\n}\n.mat-form-field-appearance-outline .mat-form-field-infix {\n padding: 1em 0 1em 0;\n}\n.mat-form-field-appearance-outline .mat-form-field-label {\n top: 1.84375em;\n margin-top: -0.25em;\n}\n.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\n.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.59375em) scale(0.75);\n width: 133.3333333333%;\n}\n.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.59374em) scale(0.75);\n width: 133.3333433333%;\n}\n.mat-grid-tile-header,\n.mat-grid-tile-footer {\n font-size: 14px;\n}\n.mat-grid-tile-header .mat-line,\n.mat-grid-tile-footer .mat-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n box-sizing: border-box;\n}\n.mat-grid-tile-header .mat-line:nth-child(n+2),\n.mat-grid-tile-footer .mat-line:nth-child(n+2) {\n font-size: 12px;\n}\ninput.mat-input-element {\n margin-top: -0.0625em;\n}\n.mat-menu-item {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n font-weight: 400;\n}\n.mat-paginator,\n.mat-paginator-page-size .mat-select-trigger {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 12px;\n}\n.mat-radio-button {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-select {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-select-trigger {\n height: 1.125em;\n}\n.mat-slide-toggle-content {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-slider-thumb-label-text {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 12px;\n font-weight: 500;\n}\n.mat-stepper-vertical, .mat-stepper-horizontal {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-step-label {\n font-size: 14px;\n font-weight: 400;\n}\n.mat-step-sub-label-error {\n font-weight: normal;\n}\n.mat-step-label-error {\n font-size: 14px;\n}\n.mat-step-label-selected {\n font-size: 14px;\n font-weight: 500;\n}\n.mat-tab-group {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-tab-label, .mat-tab-link {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n font-weight: 500;\n}\n.mat-toolbar,\n.mat-toolbar h1,\n.mat-toolbar h2,\n.mat-toolbar h3,\n.mat-toolbar h4,\n.mat-toolbar h5,\n.mat-toolbar h6 {\n font: 500 20px/32px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0;\n}\n.mat-tooltip {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 10px;\n padding-top: 6px;\n padding-bottom: 6px;\n}\n.mat-tooltip-handset {\n font-size: 14px;\n padding-top: 8px;\n padding-bottom: 8px;\n}\n.mat-list-item {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-list-option {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-list-base .mat-list-item {\n font-size: 16px;\n}\n.mat-list-base .mat-list-item .mat-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n box-sizing: border-box;\n}\n.mat-list-base .mat-list-item .mat-line:nth-child(n+2) {\n font-size: 14px;\n}\n.mat-list-base .mat-list-option {\n font-size: 16px;\n}\n.mat-list-base .mat-list-option .mat-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n box-sizing: border-box;\n}\n.mat-list-base .mat-list-option .mat-line:nth-child(n+2) {\n font-size: 14px;\n}\n.mat-list-base .mat-subheader {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n font-weight: 500;\n}\n.mat-list-base[dense] .mat-list-item {\n font-size: 12px;\n}\n.mat-list-base[dense] .mat-list-item .mat-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n box-sizing: border-box;\n}\n.mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2) {\n font-size: 12px;\n}\n.mat-list-base[dense] .mat-list-option {\n font-size: 12px;\n}\n.mat-list-base[dense] .mat-list-option .mat-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n box-sizing: border-box;\n}\n.mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2) {\n font-size: 12px;\n}\n.mat-list-base[dense] .mat-subheader {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 12px;\n font-weight: 500;\n}\n.mat-option {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 16px;\n}\n.mat-optgroup-label {\n font: 500 14px/24px Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-simple-snackbar {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n}\n.mat-simple-snackbar-action {\n line-height: 1;\n font-family: inherit;\n font-size: inherit;\n font-weight: 500;\n}\n.mat-tree {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.mat-tree-node,\n.mat-nested-tree-node {\n font-weight: 400;\n font-size: 14px;\n}\n.mat-ripple {\n overflow: hidden;\n position: relative;\n}\n.mat-ripple.mat-ripple-unbounded {\n overflow: visible;\n}\n.mat-ripple-element {\n position: absolute;\n border-radius: 50%;\n pointer-events: none;\n transition: opacity, transform 0ms cubic-bezier(0, 0, 0.2, 1);\n transform: scale(0);\n}\n@media (-ms-high-contrast: active) {\n .mat-ripple-element {\n display: none;\n }\n}\n.cdk-visually-hidden {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n outline: 0;\n -webkit-appearance: none;\n -moz-appearance: none;\n}\n.cdk-overlay-container, .cdk-global-overlay-wrapper {\n pointer-events: none;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n}\n.cdk-overlay-container {\n position: fixed;\n z-index: 1000;\n}\n.cdk-overlay-container:empty {\n display: none;\n}\n.cdk-global-overlay-wrapper {\n display: flex;\n position: absolute;\n z-index: 1000;\n}\n.cdk-overlay-pane {\n position: absolute;\n pointer-events: auto;\n box-sizing: border-box;\n z-index: 1000;\n display: flex;\n max-width: 100%;\n max-height: 100%;\n}\n.cdk-overlay-backdrop {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 1000;\n pointer-events: auto;\n -webkit-tap-highlight-color: transparent;\n transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);\n opacity: 0;\n}\n.cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\n opacity: 1;\n}\n@media screen and (-ms-high-contrast: active) {\n .cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\n opacity: 0.6;\n }\n}\n.cdk-overlay-dark-backdrop {\n background: rgba(0, 0, 0, 0.32);\n}\n.cdk-overlay-transparent-backdrop, .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {\n opacity: 0;\n}\n.cdk-overlay-connected-position-bounding-box {\n position: absolute;\n z-index: 1000;\n display: flex;\n flex-direction: column;\n min-width: 1px;\n min-height: 1px;\n}\n.cdk-global-scrollblock {\n position: fixed;\n width: 100%;\n overflow-y: scroll;\n}\n@-webkit-keyframes cdk-text-field-autofill-start {\n /*!*/\n}\n@keyframes cdk-text-field-autofill-start {\n /*!*/\n}\n@-webkit-keyframes cdk-text-field-autofill-end {\n /*!*/\n}\n@keyframes cdk-text-field-autofill-end {\n /*!*/\n}\n.cdk-text-field-autofill-monitored:-webkit-autofill {\n -webkit-animation-name: cdk-text-field-autofill-start;\n animation-name: cdk-text-field-autofill-start;\n}\n.cdk-text-field-autofill-monitored:not(:-webkit-autofill) {\n -webkit-animation-name: cdk-text-field-autofill-end;\n animation-name: cdk-text-field-autofill-end;\n}\ntextarea.cdk-textarea-autosize {\n resize: none;\n}\ntextarea.cdk-textarea-autosize-measuring {\n height: auto !important;\n overflow: hidden !important;\n padding: 2px 0 !important;\n box-sizing: content-box !important;\n}\n.standard-theme .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.standard-theme .mat-option {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-option:hover:not(.mat-option-disabled), .standard-theme .mat-option:focus:not(.mat-option-disabled) {\n background: rgba(0, 0, 0, 0.04);\n}\n.standard-theme .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {\n background: rgba(0, 0, 0, 0.04);\n}\n.standard-theme .mat-option.mat-active {\n background: rgba(0, 0, 0, 0.04);\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-option.mat-option-disabled {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\n color: #607d8b;\n}\n.standard-theme .mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {\n color: #448aff;\n}\n.standard-theme .mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {\n color: #f44336;\n}\n.standard-theme .mat-optgroup-label {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-optgroup-disabled .mat-optgroup-label {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-pseudo-checkbox {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-pseudo-checkbox::after {\n color: #fafafa;\n}\n.standard-theme .mat-pseudo-checkbox-disabled {\n color: #b0b0b0;\n}\n.standard-theme .mat-primary .mat-pseudo-checkbox-checked,\n.standard-theme .mat-primary .mat-pseudo-checkbox-indeterminate {\n background: #607d8b;\n}\n.standard-theme .mat-pseudo-checkbox-checked,\n.standard-theme .mat-pseudo-checkbox-indeterminate,\n.standard-theme .mat-accent .mat-pseudo-checkbox-checked,\n.standard-theme .mat-accent .mat-pseudo-checkbox-indeterminate {\n background: #448aff;\n}\n.standard-theme .mat-warn .mat-pseudo-checkbox-checked,\n.standard-theme .mat-warn .mat-pseudo-checkbox-indeterminate {\n background: #f44336;\n}\n.standard-theme .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,\n.standard-theme .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {\n background: #b0b0b0;\n}\n.standard-theme .mat-elevation-z0 {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z1 {\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z2 {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z3 {\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z4 {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z5 {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z6 {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z7 {\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z8 {\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z9 {\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z10 {\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z11 {\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z12 {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z13 {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z14 {\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z15 {\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z16 {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z17 {\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z18 {\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z19 {\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z20 {\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z21 {\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z22 {\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z23 {\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-elevation-z24 {\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-app-background, .standard-theme.mat-app-background {\n background-color: #fafafa;\n color: rgba(0, 0, 0, 0.87);\n}\n.mat-theme-loaded-marker {\n display: none;\n}\n.standard-theme .mat-autocomplete-panel {\n background: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-autocomplete-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {\n background: white;\n}\n.standard-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-badge-content {\n color: white;\n background: #607d8b;\n}\n@media (-ms-high-contrast: active) {\n .standard-theme .mat-badge-content {\n outline: solid 1px;\n border-radius: 0;\n }\n}\n.standard-theme .mat-badge-accent .mat-badge-content {\n background: #448aff;\n color: white;\n}\n.standard-theme .mat-badge-warn .mat-badge-content {\n color: white;\n background: #f44336;\n}\n.standard-theme .mat-badge {\n position: relative;\n}\n.standard-theme .mat-badge-hidden .mat-badge-content {\n display: none;\n}\n.standard-theme .mat-badge-disabled .mat-badge-content {\n background: #b9b9b9;\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-badge-content {\n position: absolute;\n text-align: center;\n display: inline-block;\n border-radius: 50%;\n transition: transform 200ms ease-in-out;\n transform: scale(0.6);\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n pointer-events: none;\n}\n.standard-theme .ng-animate-disabled .mat-badge-content,\n.standard-theme .mat-badge-content._mat-animation-noopable {\n transition: none;\n}\n.standard-theme .mat-badge-content.mat-badge-active {\n transform: none;\n}\n.standard-theme .mat-badge-small .mat-badge-content {\n width: 16px;\n height: 16px;\n line-height: 16px;\n}\n.standard-theme .mat-badge-small.mat-badge-above .mat-badge-content {\n top: -8px;\n}\n.standard-theme .mat-badge-small.mat-badge-below .mat-badge-content {\n bottom: -8px;\n}\n.standard-theme .mat-badge-small.mat-badge-before .mat-badge-content {\n left: -16px;\n}\n[dir=rtl] .standard-theme .mat-badge-small.mat-badge-before .mat-badge-content {\n left: auto;\n right: -16px;\n}\n.standard-theme .mat-badge-small.mat-badge-after .mat-badge-content {\n right: -16px;\n}\n[dir=rtl] .standard-theme .mat-badge-small.mat-badge-after .mat-badge-content {\n right: auto;\n left: -16px;\n}\n.standard-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: -8px;\n}\n[dir=rtl] .standard-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: auto;\n right: -8px;\n}\n.standard-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: -8px;\n}\n[dir=rtl] .standard-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: auto;\n left: -8px;\n}\n.standard-theme .mat-badge-medium .mat-badge-content {\n width: 22px;\n height: 22px;\n line-height: 22px;\n}\n.standard-theme .mat-badge-medium.mat-badge-above .mat-badge-content {\n top: -11px;\n}\n.standard-theme .mat-badge-medium.mat-badge-below .mat-badge-content {\n bottom: -11px;\n}\n.standard-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\n left: -22px;\n}\n[dir=rtl] .standard-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\n left: auto;\n right: -22px;\n}\n.standard-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\n right: -22px;\n}\n[dir=rtl] .standard-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\n right: auto;\n left: -22px;\n}\n.standard-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: -11px;\n}\n[dir=rtl] .standard-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: auto;\n right: -11px;\n}\n.standard-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: -11px;\n}\n[dir=rtl] .standard-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: auto;\n left: -11px;\n}\n.standard-theme .mat-badge-large .mat-badge-content {\n width: 28px;\n height: 28px;\n line-height: 28px;\n}\n.standard-theme .mat-badge-large.mat-badge-above .mat-badge-content {\n top: -14px;\n}\n.standard-theme .mat-badge-large.mat-badge-below .mat-badge-content {\n bottom: -14px;\n}\n.standard-theme .mat-badge-large.mat-badge-before .mat-badge-content {\n left: -28px;\n}\n[dir=rtl] .standard-theme .mat-badge-large.mat-badge-before .mat-badge-content {\n left: auto;\n right: -28px;\n}\n.standard-theme .mat-badge-large.mat-badge-after .mat-badge-content {\n right: -28px;\n}\n[dir=rtl] .standard-theme .mat-badge-large.mat-badge-after .mat-badge-content {\n right: auto;\n left: -28px;\n}\n.standard-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: -14px;\n}\n[dir=rtl] .standard-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: auto;\n right: -14px;\n}\n.standard-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: -14px;\n}\n[dir=rtl] .standard-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: auto;\n left: -14px;\n}\n.standard-theme .mat-bottom-sheet-container {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n background: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-button, .standard-theme .mat-icon-button, .standard-theme .mat-stroked-button {\n color: inherit;\n background: transparent;\n}\n.standard-theme .mat-button.mat-primary, .standard-theme .mat-icon-button.mat-primary, .standard-theme .mat-stroked-button.mat-primary {\n color: #607d8b;\n}\n.standard-theme .mat-button.mat-accent, .standard-theme .mat-icon-button.mat-accent, .standard-theme .mat-stroked-button.mat-accent {\n color: #448aff;\n}\n.standard-theme .mat-button.mat-warn, .standard-theme .mat-icon-button.mat-warn, .standard-theme .mat-stroked-button.mat-warn {\n color: #f44336;\n}\n.standard-theme .mat-button.mat-primary[disabled], .standard-theme .mat-button.mat-accent[disabled], .standard-theme .mat-button.mat-warn[disabled], .standard-theme .mat-button[disabled][disabled], .standard-theme .mat-icon-button.mat-primary[disabled], .standard-theme .mat-icon-button.mat-accent[disabled], .standard-theme .mat-icon-button.mat-warn[disabled], .standard-theme .mat-icon-button[disabled][disabled], .standard-theme .mat-stroked-button.mat-primary[disabled], .standard-theme .mat-stroked-button.mat-accent[disabled], .standard-theme .mat-stroked-button.mat-warn[disabled], .standard-theme .mat-stroked-button[disabled][disabled] {\n color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-button.mat-primary .mat-button-focus-overlay, .standard-theme .mat-icon-button.mat-primary .mat-button-focus-overlay, .standard-theme .mat-stroked-button.mat-primary .mat-button-focus-overlay {\n background-color: #607d8b;\n}\n.standard-theme .mat-button.mat-accent .mat-button-focus-overlay, .standard-theme .mat-icon-button.mat-accent .mat-button-focus-overlay, .standard-theme .mat-stroked-button.mat-accent .mat-button-focus-overlay {\n background-color: #448aff;\n}\n.standard-theme .mat-button.mat-warn .mat-button-focus-overlay, .standard-theme .mat-icon-button.mat-warn .mat-button-focus-overlay, .standard-theme .mat-stroked-button.mat-warn .mat-button-focus-overlay {\n background-color: #f44336;\n}\n.standard-theme .mat-button[disabled] .mat-button-focus-overlay, .standard-theme .mat-icon-button[disabled] .mat-button-focus-overlay, .standard-theme .mat-stroked-button[disabled] .mat-button-focus-overlay {\n background-color: transparent;\n}\n.standard-theme .mat-button .mat-ripple-element, .standard-theme .mat-icon-button .mat-ripple-element, .standard-theme .mat-stroked-button .mat-ripple-element {\n opacity: 0.1;\n background-color: currentColor;\n}\n.standard-theme .mat-button-focus-overlay {\n background: black;\n}\n.standard-theme .mat-stroked-button:not([disabled]) {\n border-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-flat-button, .standard-theme .mat-raised-button, .standard-theme .mat-fab, .standard-theme .mat-mini-fab {\n color: rgba(0, 0, 0, 0.87);\n background-color: white;\n}\n.standard-theme .mat-flat-button.mat-primary, .standard-theme .mat-raised-button.mat-primary, .standard-theme .mat-fab.mat-primary, .standard-theme .mat-mini-fab.mat-primary {\n color: white;\n}\n.standard-theme .mat-flat-button.mat-accent, .standard-theme .mat-raised-button.mat-accent, .standard-theme .mat-fab.mat-accent, .standard-theme .mat-mini-fab.mat-accent {\n color: white;\n}\n.standard-theme .mat-flat-button.mat-warn, .standard-theme .mat-raised-button.mat-warn, .standard-theme .mat-fab.mat-warn, .standard-theme .mat-mini-fab.mat-warn {\n color: white;\n}\n.standard-theme .mat-flat-button.mat-primary[disabled], .standard-theme .mat-flat-button.mat-accent[disabled], .standard-theme .mat-flat-button.mat-warn[disabled], .standard-theme .mat-flat-button[disabled][disabled], .standard-theme .mat-raised-button.mat-primary[disabled], .standard-theme .mat-raised-button.mat-accent[disabled], .standard-theme .mat-raised-button.mat-warn[disabled], .standard-theme .mat-raised-button[disabled][disabled], .standard-theme .mat-fab.mat-primary[disabled], .standard-theme .mat-fab.mat-accent[disabled], .standard-theme .mat-fab.mat-warn[disabled], .standard-theme .mat-fab[disabled][disabled], .standard-theme .mat-mini-fab.mat-primary[disabled], .standard-theme .mat-mini-fab.mat-accent[disabled], .standard-theme .mat-mini-fab.mat-warn[disabled], .standard-theme .mat-mini-fab[disabled][disabled] {\n color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-flat-button.mat-primary, .standard-theme .mat-raised-button.mat-primary, .standard-theme .mat-fab.mat-primary, .standard-theme .mat-mini-fab.mat-primary {\n background-color: #607d8b;\n}\n.standard-theme .mat-flat-button.mat-accent, .standard-theme .mat-raised-button.mat-accent, .standard-theme .mat-fab.mat-accent, .standard-theme .mat-mini-fab.mat-accent {\n background-color: #448aff;\n}\n.standard-theme .mat-flat-button.mat-warn, .standard-theme .mat-raised-button.mat-warn, .standard-theme .mat-fab.mat-warn, .standard-theme .mat-mini-fab.mat-warn {\n background-color: #f44336;\n}\n.standard-theme .mat-flat-button.mat-primary[disabled], .standard-theme .mat-flat-button.mat-accent[disabled], .standard-theme .mat-flat-button.mat-warn[disabled], .standard-theme .mat-flat-button[disabled][disabled], .standard-theme .mat-raised-button.mat-primary[disabled], .standard-theme .mat-raised-button.mat-accent[disabled], .standard-theme .mat-raised-button.mat-warn[disabled], .standard-theme .mat-raised-button[disabled][disabled], .standard-theme .mat-fab.mat-primary[disabled], .standard-theme .mat-fab.mat-accent[disabled], .standard-theme .mat-fab.mat-warn[disabled], .standard-theme .mat-fab[disabled][disabled], .standard-theme .mat-mini-fab.mat-primary[disabled], .standard-theme .mat-mini-fab.mat-accent[disabled], .standard-theme .mat-mini-fab.mat-warn[disabled], .standard-theme .mat-mini-fab[disabled][disabled] {\n background-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-flat-button.mat-primary .mat-ripple-element, .standard-theme .mat-raised-button.mat-primary .mat-ripple-element, .standard-theme .mat-fab.mat-primary .mat-ripple-element, .standard-theme .mat-mini-fab.mat-primary .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.standard-theme .mat-flat-button.mat-accent .mat-ripple-element, .standard-theme .mat-raised-button.mat-accent .mat-ripple-element, .standard-theme .mat-fab.mat-accent .mat-ripple-element, .standard-theme .mat-mini-fab.mat-accent .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.standard-theme .mat-flat-button.mat-warn .mat-ripple-element, .standard-theme .mat-raised-button.mat-warn .mat-ripple-element, .standard-theme .mat-fab.mat-warn .mat-ripple-element, .standard-theme .mat-mini-fab.mat-warn .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.standard-theme .mat-stroked-button:not([class*=mat-elevation-z]), .standard-theme .mat-flat-button:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-raised-button:not([class*=mat-elevation-z]) {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]) {\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-raised-button[disabled]:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-fab:not([class*=mat-elevation-z]), .standard-theme .mat-mini-fab:not([class*=mat-elevation-z]) {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-fab:not([disabled]):active:not([class*=mat-elevation-z]), .standard-theme .mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]) {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-fab[disabled]:not([class*=mat-elevation-z]), .standard-theme .mat-mini-fab[disabled]:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-button-toggle-standalone,\n.standard-theme .mat-button-toggle-group {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\n.standard-theme .mat-button-toggle-group-appearance-standard {\n box-shadow: none;\n}\n.standard-theme .mat-button-toggle {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-button-toggle .mat-button-toggle-focus-overlay {\n background-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-button-toggle-appearance-standard {\n color: rgba(0, 0, 0, 0.87);\n background: white;\n}\n.standard-theme .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {\n background-color: black;\n}\n.standard-theme .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\n border-left: solid 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\n border-left: none;\n border-right: solid 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {\n border-left: none;\n border-right: none;\n border-top: solid 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-button-toggle-checked {\n background-color: #e0e0e0;\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-button-toggle-checked.mat-button-toggle-appearance-standard {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-button-toggle-disabled {\n color: rgba(0, 0, 0, 0.26);\n background-color: #eeeeee;\n}\n.standard-theme .mat-button-toggle-disabled.mat-button-toggle-appearance-standard {\n background: white;\n}\n.standard-theme .mat-button-toggle-disabled.mat-button-toggle-checked {\n background-color: #bdbdbd;\n}\n.standard-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\n.standard-theme .mat-button-toggle-group-appearance-standard {\n border: solid 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-card {\n background: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-card:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-card.mat-card-flat:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-card-subtitle {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-checkbox-frame {\n border-color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-checkbox-checkmark {\n fill: #fafafa;\n}\n.standard-theme .mat-checkbox-checkmark-path {\n stroke: #fafafa !important;\n}\n@media (-ms-high-contrast: black-on-white) {\n .standard-theme .mat-checkbox-checkmark-path {\n stroke: #000 !important;\n }\n}\n.standard-theme .mat-checkbox-mixedmark {\n background-color: #fafafa;\n}\n.standard-theme .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .standard-theme .mat-checkbox-checked.mat-primary .mat-checkbox-background {\n background-color: #607d8b;\n}\n.standard-theme .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .standard-theme .mat-checkbox-checked.mat-accent .mat-checkbox-background {\n background-color: #448aff;\n}\n.standard-theme .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .standard-theme .mat-checkbox-checked.mat-warn .mat-checkbox-background {\n background-color: #f44336;\n}\n.standard-theme .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .standard-theme .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {\n background-color: #b0b0b0;\n}\n.standard-theme .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {\n border-color: #b0b0b0;\n}\n.standard-theme .mat-checkbox-disabled .mat-checkbox-label {\n color: rgba(0, 0, 0, 0.54);\n}\n@media (-ms-high-contrast: active) {\n .standard-theme .mat-checkbox-disabled {\n opacity: 0.5;\n }\n}\n@media (-ms-high-contrast: active) {\n .standard-theme .mat-checkbox-background {\n background: none;\n }\n}\n.standard-theme .mat-checkbox .mat-ripple-element {\n background-color: black;\n}\n.standard-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,\n.standard-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {\n background: #607d8b;\n}\n.standard-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,\n.standard-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {\n background: #448aff;\n}\n.standard-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,\n.standard-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {\n background: #f44336;\n}\n.standard-theme .mat-chip.mat-standard-chip {\n background-color: #e0e0e0;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-chip.mat-standard-chip .mat-chip-remove {\n color: rgba(0, 0, 0, 0.87);\n opacity: 0.4;\n}\n.standard-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {\n opacity: 0.54;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-disabled {\n opacity: 0.4;\n}\n.standard-theme .mat-chip.mat-standard-chip::after {\n background: black;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {\n background-color: #607d8b;\n color: white;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {\n color: white;\n opacity: 0.4;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {\n background: rgba(255, 255, 255, 0.1);\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {\n background-color: #f44336;\n color: white;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {\n color: white;\n opacity: 0.4;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {\n background: rgba(255, 255, 255, 0.1);\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {\n background-color: #448aff;\n color: white;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {\n color: white;\n opacity: 0.4;\n}\n.standard-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {\n background: rgba(255, 255, 255, 0.1);\n}\n.standard-theme .mat-table {\n background: white;\n}\n.standard-theme .mat-table thead, .standard-theme .mat-table tbody, .standard-theme .mat-table tfoot,\n.standard-theme mat-header-row, .standard-theme mat-row, .standard-theme mat-footer-row,\n.standard-theme [mat-header-row], .standard-theme [mat-row], .standard-theme [mat-footer-row],\n.standard-theme .mat-table-sticky {\n background: inherit;\n}\n.standard-theme mat-row, .standard-theme mat-header-row, .standard-theme mat-footer-row,\n.standard-theme th.mat-header-cell, .standard-theme td.mat-cell, .standard-theme td.mat-footer-cell {\n border-bottom-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-header-cell {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-cell, .standard-theme .mat-footer-cell {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-calendar-arrow {\n border-top-color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-datepicker-toggle,\n.standard-theme .mat-datepicker-content .mat-calendar-next-button,\n.standard-theme .mat-datepicker-content .mat-calendar-previous-button {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-calendar-table-header {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-calendar-table-header-divider::after {\n background: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-calendar-body-label {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-calendar-body-cell-content {\n color: rgba(0, 0, 0, 0.87);\n border-color: transparent;\n}\n.standard-theme .mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\n.standard-theme .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\n.standard-theme .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\n background-color: rgba(0, 0, 0, 0.04);\n}\n.standard-theme .mat-calendar-body-today:not(.mat-calendar-body-selected) {\n border-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected) {\n border-color: rgba(0, 0, 0, 0.18);\n}\n.standard-theme .mat-calendar-body-selected {\n background-color: #607d8b;\n color: white;\n}\n.standard-theme .mat-calendar-body-disabled > .mat-calendar-body-selected {\n background-color: rgba(96, 125, 139, 0.4);\n}\n.standard-theme .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 1px white;\n}\n.standard-theme .mat-datepicker-content {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n background-color: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-datepicker-content.mat-accent .mat-calendar-body-selected {\n background-color: #448aff;\n color: white;\n}\n.standard-theme .mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {\n background-color: rgba(68, 138, 255, 0.4);\n}\n.standard-theme .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 1px white;\n}\n.standard-theme .mat-datepicker-content.mat-warn .mat-calendar-body-selected {\n background-color: #f44336;\n color: white;\n}\n.standard-theme .mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {\n background-color: rgba(244, 67, 54, 0.4);\n}\n.standard-theme .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 1px white;\n}\n.standard-theme .mat-datepicker-content-touch {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-datepicker-toggle-active {\n color: #607d8b;\n}\n.standard-theme .mat-datepicker-toggle-active.mat-accent {\n color: #448aff;\n}\n.standard-theme .mat-datepicker-toggle-active.mat-warn {\n color: #f44336;\n}\n.standard-theme .mat-dialog-container {\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\n background: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-divider {\n border-top-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-divider-vertical {\n border-right-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-expansion-panel {\n background: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-expansion-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-action-row {\n border-top-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]), .standard-theme .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]), .standard-theme .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]) {\n background: rgba(0, 0, 0, 0.04);\n}\n@media (hover: none) {\n .standard-theme .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover {\n background: white;\n }\n}\n.standard-theme .mat-expansion-panel-header-title {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-expansion-panel-header-description,\n.standard-theme .mat-expansion-indicator::after {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-expansion-panel-header[aria-disabled=true] {\n color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,\n.standard-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description {\n color: inherit;\n}\n.standard-theme .mat-form-field-label {\n color: rgba(0, 0, 0, 0.6);\n}\n.standard-theme .mat-hint {\n color: rgba(0, 0, 0, 0.6);\n}\n.standard-theme .mat-form-field.mat-focused .mat-form-field-label {\n color: #607d8b;\n}\n.standard-theme .mat-form-field.mat-focused .mat-form-field-label.mat-accent {\n color: #448aff;\n}\n.standard-theme .mat-form-field.mat-focused .mat-form-field-label.mat-warn {\n color: #f44336;\n}\n.standard-theme .mat-focused .mat-form-field-required-marker {\n color: #448aff;\n}\n.standard-theme .mat-form-field-ripple {\n background-color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-form-field.mat-focused .mat-form-field-ripple {\n background-color: #607d8b;\n}\n.standard-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {\n background-color: #448aff;\n}\n.standard-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {\n background-color: #f44336;\n}\n.standard-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {\n color: #607d8b;\n}\n.standard-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {\n color: #448aff;\n}\n.standard-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {\n color: #f44336;\n}\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label {\n color: #f44336;\n}\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {\n color: #f44336;\n}\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,\n.standard-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {\n background-color: #f44336;\n}\n.standard-theme .mat-error {\n color: #f44336;\n}\n.standard-theme .mat-form-field-appearance-legacy .mat-form-field-label {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-form-field-appearance-legacy .mat-hint {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-form-field-appearance-legacy .mat-form-field-underline {\n background-color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\n background-size: 4px 100%;\n background-repeat: repeat-x;\n}\n.standard-theme .mat-form-field-appearance-standard .mat-form-field-underline {\n background-color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\n background-size: 4px 100%;\n background-repeat: repeat-x;\n}\n.standard-theme .mat-form-field-appearance-fill .mat-form-field-flex {\n background-color: rgba(0, 0, 0, 0.04);\n}\n.standard-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {\n background-color: rgba(0, 0, 0, 0.02);\n}\n.standard-theme .mat-form-field-appearance-fill .mat-form-field-underline::before {\n background-color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {\n background-color: transparent;\n}\n.standard-theme .mat-form-field-appearance-outline .mat-form-field-outline {\n color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-form-field-appearance-outline .mat-form-field-outline-thick {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {\n color: #607d8b;\n}\n.standard-theme .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {\n color: #448aff;\n}\n.standard-theme .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {\n color: #f44336;\n}\n.standard-theme .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {\n color: #f44336;\n}\n.standard-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {\n color: rgba(0, 0, 0, 0.06);\n}\n.standard-theme .mat-icon.mat-primary {\n color: #607d8b;\n}\n.standard-theme .mat-icon.mat-accent {\n color: #448aff;\n}\n.standard-theme .mat-icon.mat-warn {\n color: #f44336;\n}\n.standard-theme .mat-form-field-type-mat-native-select .mat-form-field-infix::after {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-input-element:disabled,\n.standard-theme .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-input-element {\n caret-color: #607d8b;\n}\n.standard-theme .mat-input-element::-webkit-input-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-input-element::-moz-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-input-element::-ms-input-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-input-element::placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-input-element::-moz-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-input-element::-webkit-input-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-input-element:-ms-input-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-accent .mat-input-element {\n caret-color: #448aff;\n}\n.standard-theme .mat-warn .mat-input-element,\n.standard-theme .mat-form-field-invalid .mat-input-element {\n caret-color: #f44336;\n}\n.standard-theme .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {\n color: #f44336;\n}\n.standard-theme .mat-list-base .mat-list-item {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-list-base .mat-list-option {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-list-base .mat-subheader {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-list-item-disabled {\n background-color: #eeeeee;\n}\n.standard-theme .mat-list-option:hover, .standard-theme .mat-list-option:focus,\n.standard-theme .mat-nav-list .mat-list-item:hover,\n.standard-theme .mat-nav-list .mat-list-item:focus,\n.standard-theme .mat-action-list .mat-list-item:hover,\n.standard-theme .mat-action-list .mat-list-item:focus {\n background: rgba(0, 0, 0, 0.04);\n}\n.standard-theme .mat-menu-panel {\n background: white;\n}\n.standard-theme .mat-menu-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-menu-item {\n background: transparent;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-menu-item[disabled], .standard-theme .mat-menu-item[disabled]::after {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-menu-item .mat-icon-no-color,\n.standard-theme .mat-menu-item-submenu-trigger::after {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-menu-item:hover:not([disabled]),\n.standard-theme .mat-menu-item.cdk-program-focused:not([disabled]),\n.standard-theme .mat-menu-item.cdk-keyboard-focused:not([disabled]),\n.standard-theme .mat-menu-item-highlighted:not([disabled]) {\n background: rgba(0, 0, 0, 0.04);\n}\n.standard-theme .mat-paginator {\n background: white;\n}\n.standard-theme .mat-paginator,\n.standard-theme .mat-paginator-page-size .mat-select-trigger {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-paginator-decrement,\n.standard-theme .mat-paginator-increment {\n border-top: 2px solid rgba(0, 0, 0, 0.54);\n border-right: 2px solid rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-paginator-first,\n.standard-theme .mat-paginator-last {\n border-top: 2px solid rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-icon-button[disabled] .mat-paginator-decrement,\n.standard-theme .mat-icon-button[disabled] .mat-paginator-increment,\n.standard-theme .mat-icon-button[disabled] .mat-paginator-first,\n.standard-theme .mat-icon-button[disabled] .mat-paginator-last {\n border-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-progress-bar-background {\n fill: #cfd8dc;\n}\n.standard-theme .mat-progress-bar-buffer {\n background-color: #cfd8dc;\n}\n.standard-theme .mat-progress-bar-fill::after {\n background-color: #607d8b;\n}\n.standard-theme .mat-progress-bar.mat-accent .mat-progress-bar-background {\n fill: #82b1ff;\n}\n.standard-theme .mat-progress-bar.mat-accent .mat-progress-bar-buffer {\n background-color: #82b1ff;\n}\n.standard-theme .mat-progress-bar.mat-accent .mat-progress-bar-fill::after {\n background-color: #448aff;\n}\n.standard-theme .mat-progress-bar.mat-warn .mat-progress-bar-background {\n fill: #ffcdd2;\n}\n.standard-theme .mat-progress-bar.mat-warn .mat-progress-bar-buffer {\n background-color: #ffcdd2;\n}\n.standard-theme .mat-progress-bar.mat-warn .mat-progress-bar-fill::after {\n background-color: #f44336;\n}\n.standard-theme .mat-progress-spinner circle, .standard-theme .mat-spinner circle {\n stroke: #607d8b;\n}\n.standard-theme .mat-progress-spinner.mat-accent circle, .standard-theme .mat-spinner.mat-accent circle {\n stroke: #448aff;\n}\n.standard-theme .mat-progress-spinner.mat-warn circle, .standard-theme .mat-spinner.mat-warn circle {\n stroke: #f44336;\n}\n.standard-theme .mat-radio-outer-circle {\n border-color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {\n border-color: #607d8b;\n}\n.standard-theme .mat-radio-button.mat-primary .mat-radio-inner-circle,\n.standard-theme .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .standard-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple, .standard-theme .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {\n background-color: #607d8b;\n}\n.standard-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {\n border-color: #448aff;\n}\n.standard-theme .mat-radio-button.mat-accent .mat-radio-inner-circle,\n.standard-theme .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .standard-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple, .standard-theme .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {\n background-color: #448aff;\n}\n.standard-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {\n border-color: #f44336;\n}\n.standard-theme .mat-radio-button.mat-warn .mat-radio-inner-circle,\n.standard-theme .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .standard-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple, .standard-theme .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {\n background-color: #f44336;\n}\n.standard-theme .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,\n.standard-theme .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {\n border-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,\n.standard-theme .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {\n background-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-radio-button.mat-radio-disabled .mat-radio-label-content {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-radio-button .mat-ripple-element {\n background-color: black;\n}\n.standard-theme .mat-select-value {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-select-placeholder {\n color: rgba(0, 0, 0, 0.42);\n}\n.standard-theme .mat-select-disabled .mat-select-value {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-select-arrow {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-select-panel {\n background: white;\n}\n.standard-theme .mat-select-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {\n background: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-form-field.mat-focused.mat-primary .mat-select-arrow {\n color: #607d8b;\n}\n.standard-theme .mat-form-field.mat-focused.mat-accent .mat-select-arrow {\n color: #448aff;\n}\n.standard-theme .mat-form-field.mat-focused.mat-warn .mat-select-arrow {\n color: #f44336;\n}\n.standard-theme .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {\n color: #f44336;\n}\n.standard-theme .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-drawer-container {\n background-color: #fafafa;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-drawer {\n background-color: white;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-drawer.mat-drawer-push {\n background-color: white;\n}\n.standard-theme .mat-drawer:not(.mat-drawer-side) {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-drawer-side {\n border-right: solid 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-drawer-side.mat-drawer-end {\n border-left: solid 1px rgba(0, 0, 0, 0.12);\n border-right: none;\n}\n.standard-theme [dir=rtl] .mat-drawer-side {\n border-left: solid 1px rgba(0, 0, 0, 0.12);\n border-right: none;\n}\n.standard-theme [dir=rtl] .mat-drawer-side.mat-drawer-end {\n border-left: none;\n border-right: solid 1px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-drawer-backdrop.mat-drawer-shown {\n background-color: rgba(0, 0, 0, 0.6);\n}\n.standard-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {\n background-color: #448aff;\n}\n.standard-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-bar {\n background-color: rgba(68, 138, 255, 0.54);\n}\n.standard-theme .mat-slide-toggle.mat-checked .mat-ripple-element {\n background-color: #448aff;\n}\n.standard-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {\n background-color: #607d8b;\n}\n.standard-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {\n background-color: rgba(96, 125, 139, 0.54);\n}\n.standard-theme .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {\n background-color: #607d8b;\n}\n.standard-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {\n background-color: #f44336;\n}\n.standard-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {\n background-color: rgba(244, 67, 54, 0.54);\n}\n.standard-theme .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {\n background-color: #f44336;\n}\n.standard-theme .mat-slide-toggle:not(.mat-checked) .mat-ripple-element {\n background-color: black;\n}\n.standard-theme .mat-slide-toggle-thumb {\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n background-color: #fafafa;\n}\n.standard-theme .mat-slide-toggle-bar {\n background-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-slider-track-background {\n background-color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-primary .mat-slider-track-fill,\n.standard-theme .mat-primary .mat-slider-thumb,\n.standard-theme .mat-primary .mat-slider-thumb-label {\n background-color: #607d8b;\n}\n.standard-theme .mat-primary .mat-slider-thumb-label-text {\n color: white;\n}\n.standard-theme .mat-accent .mat-slider-track-fill,\n.standard-theme .mat-accent .mat-slider-thumb,\n.standard-theme .mat-accent .mat-slider-thumb-label {\n background-color: #448aff;\n}\n.standard-theme .mat-accent .mat-slider-thumb-label-text {\n color: white;\n}\n.standard-theme .mat-warn .mat-slider-track-fill,\n.standard-theme .mat-warn .mat-slider-thumb,\n.standard-theme .mat-warn .mat-slider-thumb-label {\n background-color: #f44336;\n}\n.standard-theme .mat-warn .mat-slider-thumb-label-text {\n color: white;\n}\n.standard-theme .mat-slider-focus-ring {\n background-color: rgba(68, 138, 255, 0.2);\n}\n.standard-theme .mat-slider:hover .mat-slider-track-background,\n.standard-theme .cdk-focused .mat-slider-track-background {\n background-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-slider-disabled .mat-slider-track-background,\n.standard-theme .mat-slider-disabled .mat-slider-track-fill,\n.standard-theme .mat-slider-disabled .mat-slider-thumb {\n background-color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-slider-disabled:hover .mat-slider-track-background {\n background-color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-slider-min-value .mat-slider-focus-ring {\n background-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,\n.standard-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label {\n background-color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,\n.standard-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label {\n background-color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb {\n border-color: rgba(0, 0, 0, 0.26);\n background-color: transparent;\n}\n.standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb, .standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb {\n border-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb, .standard-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb {\n border-color: rgba(0, 0, 0, 0.26);\n}\n.standard-theme .mat-slider-has-ticks .mat-slider-wrapper::after {\n border-color: rgba(0, 0, 0, 0.7);\n}\n.standard-theme .mat-slider-horizontal .mat-slider-ticks {\n background-image: repeating-linear-gradient(to right, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\n background-image: -moz-repeating-linear-gradient(0.0001deg, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\n}\n.standard-theme .mat-slider-vertical .mat-slider-ticks {\n background-image: repeating-linear-gradient(to bottom, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\n}\n.standard-theme .mat-step-header.cdk-keyboard-focused, .standard-theme .mat-step-header.cdk-program-focused, .standard-theme .mat-step-header:hover {\n background-color: rgba(0, 0, 0, 0.04);\n}\n@media (hover: none) {\n .standard-theme .mat-step-header:hover {\n background: none;\n }\n}\n.standard-theme .mat-step-header .mat-step-label,\n.standard-theme .mat-step-header .mat-step-optional {\n color: rgba(0, 0, 0, 0.54);\n}\n.standard-theme .mat-step-header .mat-step-icon {\n background-color: rgba(0, 0, 0, 0.54);\n color: white;\n}\n.standard-theme .mat-step-header .mat-step-icon-selected,\n.standard-theme .mat-step-header .mat-step-icon-state-done,\n.standard-theme .mat-step-header .mat-step-icon-state-edit {\n background-color: #607d8b;\n color: white;\n}\n.standard-theme .mat-step-header .mat-step-icon-state-error {\n background-color: transparent;\n color: #f44336;\n}\n.standard-theme .mat-step-header .mat-step-label.mat-step-label-active {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-step-header .mat-step-label.mat-step-label-error {\n color: #f44336;\n}\n.standard-theme .mat-stepper-horizontal, .standard-theme .mat-stepper-vertical {\n background-color: white;\n}\n.standard-theme .mat-stepper-vertical-line::before {\n border-left-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-horizontal-stepper-header::before,\n.standard-theme .mat-horizontal-stepper-header::after,\n.standard-theme .mat-stepper-horizontal-line {\n border-top-color: rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-sort-header-arrow {\n color: #757575;\n}\n.standard-theme .mat-tab-nav-bar,\n.standard-theme .mat-tab-header {\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-tab-group-inverted-header .mat-tab-nav-bar,\n.standard-theme .mat-tab-group-inverted-header .mat-tab-header {\n border-top: 1px solid rgba(0, 0, 0, 0.12);\n border-bottom: none;\n}\n.standard-theme .mat-tab-label, .standard-theme .mat-tab-link {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-link.mat-tab-disabled {\n color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.38);\n}\n.standard-theme .mat-tab-group[class*=mat-background-] .mat-tab-header,\n.standard-theme .mat-tab-nav-bar[class*=mat-background-] {\n border-bottom: none;\n border-top: none;\n}\n.standard-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(207, 216, 220, 0.3);\n}\n.standard-theme .mat-tab-group.mat-primary .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-primary .mat-ink-bar {\n background-color: #607d8b;\n}\n.standard-theme .mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar {\n background-color: white;\n}\n.standard-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(130, 177, 255, 0.3);\n}\n.standard-theme .mat-tab-group.mat-accent .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-accent .mat-ink-bar {\n background-color: #448aff;\n}\n.standard-theme .mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar {\n background-color: white;\n}\n.standard-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(255, 205, 210, 0.3);\n}\n.standard-theme .mat-tab-group.mat-warn .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-warn .mat-ink-bar {\n background-color: #f44336;\n}\n.standard-theme .mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar, .standard-theme .mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar {\n background-color: white;\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(207, 216, 220, 0.3);\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-header, .standard-theme .mat-tab-group.mat-background-primary .mat-tab-links, .standard-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-links, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination {\n background-color: #607d8b;\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-label, .standard-theme .mat-tab-group.mat-background-primary .mat-tab-link, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link {\n color: white;\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled {\n color: rgba(255, 255, 255, 0.4);\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron {\n border-color: white;\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(255, 255, 255, 0.4);\n}\n.standard-theme .mat-tab-group.mat-background-primary .mat-ripple-element, .standard-theme .mat-tab-nav-bar.mat-background-primary .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(130, 177, 255, 0.3);\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-header, .standard-theme .mat-tab-group.mat-background-accent .mat-tab-links, .standard-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-links, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination {\n background-color: #448aff;\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-label, .standard-theme .mat-tab-group.mat-background-accent .mat-tab-link, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link {\n color: white;\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled {\n color: rgba(255, 255, 255, 0.4);\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron {\n border-color: white;\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(255, 255, 255, 0.4);\n}\n.standard-theme .mat-tab-group.mat-background-accent .mat-ripple-element, .standard-theme .mat-tab-nav-bar.mat-background-accent .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(255, 205, 210, 0.3);\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-header, .standard-theme .mat-tab-group.mat-background-warn .mat-tab-links, .standard-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-links, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination {\n background-color: #f44336;\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-label, .standard-theme .mat-tab-group.mat-background-warn .mat-tab-link, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link {\n color: white;\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled {\n color: rgba(255, 255, 255, 0.4);\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron {\n border-color: white;\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(255, 255, 255, 0.4);\n}\n.standard-theme .mat-tab-group.mat-background-warn .mat-ripple-element, .standard-theme .mat-tab-nav-bar.mat-background-warn .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.standard-theme .mat-toolbar {\n background: whitesmoke;\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-toolbar.mat-primary {\n background: #607d8b;\n color: white;\n}\n.standard-theme .mat-toolbar.mat-accent {\n background: #448aff;\n color: white;\n}\n.standard-theme .mat-toolbar.mat-warn {\n background: #f44336;\n color: white;\n}\n.standard-theme .mat-toolbar .mat-form-field-underline,\n.standard-theme .mat-toolbar .mat-form-field-ripple,\n.standard-theme .mat-toolbar .mat-focused .mat-form-field-ripple {\n background-color: currentColor;\n}\n.standard-theme .mat-toolbar .mat-form-field-label,\n.standard-theme .mat-toolbar .mat-focused .mat-form-field-label,\n.standard-theme .mat-toolbar .mat-select-value,\n.standard-theme .mat-toolbar .mat-select-arrow,\n.standard-theme .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow {\n color: inherit;\n}\n.standard-theme .mat-toolbar .mat-input-element {\n caret-color: currentColor;\n}\n.standard-theme .mat-tooltip {\n background: rgba(97, 97, 97, 0.9);\n}\n.standard-theme .mat-tree {\n background: white;\n}\n.standard-theme .mat-tree-node,\n.standard-theme .mat-nested-tree-node {\n color: rgba(0, 0, 0, 0.87);\n}\n.standard-theme .mat-snack-bar-container {\n color: rgba(255, 255, 255, 0.7);\n background: #323232;\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n}\n.standard-theme .mat-simple-snackbar-action {\n color: #448aff;\n}\n.standard-theme h1 {\n color: #607d8b;\n}\n.green-theme .mat-ripple-element {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.green-theme .mat-option {\n color: white;\n}\n.green-theme .mat-option:hover:not(.mat-option-disabled), .green-theme .mat-option:focus:not(.mat-option-disabled) {\n background: rgba(255, 255, 255, 0.04);\n}\n.green-theme .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {\n background: rgba(255, 255, 255, 0.04);\n}\n.green-theme .mat-option.mat-active {\n background: rgba(255, 255, 255, 0.04);\n color: white;\n}\n.green-theme .mat-option.mat-option-disabled {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\n color: #8bc34a;\n}\n.green-theme .mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {\n color: #4caf50;\n}\n.green-theme .mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {\n color: #4caf50;\n}\n.green-theme .mat-optgroup-label {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-optgroup-disabled .mat-optgroup-label {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-pseudo-checkbox {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-pseudo-checkbox::after {\n color: #303030;\n}\n.green-theme .mat-pseudo-checkbox-disabled {\n color: #686868;\n}\n.green-theme .mat-primary .mat-pseudo-checkbox-checked,\n.green-theme .mat-primary .mat-pseudo-checkbox-indeterminate {\n background: #8bc34a;\n}\n.green-theme .mat-pseudo-checkbox-checked,\n.green-theme .mat-pseudo-checkbox-indeterminate,\n.green-theme .mat-accent .mat-pseudo-checkbox-checked,\n.green-theme .mat-accent .mat-pseudo-checkbox-indeterminate {\n background: #4caf50;\n}\n.green-theme .mat-warn .mat-pseudo-checkbox-checked,\n.green-theme .mat-warn .mat-pseudo-checkbox-indeterminate {\n background: #4caf50;\n}\n.green-theme .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,\n.green-theme .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {\n background: #686868;\n}\n.green-theme .mat-elevation-z0 {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z1 {\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z2 {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z3 {\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z4 {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z5 {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z6 {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z7 {\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z8 {\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z9 {\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z10 {\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z11 {\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z12 {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z13 {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z14 {\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z15 {\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z16 {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z17 {\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z18 {\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z19 {\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z20 {\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z21 {\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z22 {\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z23 {\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-elevation-z24 {\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-app-background, .green-theme.mat-app-background {\n background-color: #303030;\n color: white;\n}\n.mat-theme-loaded-marker {\n display: none;\n}\n.green-theme .mat-autocomplete-panel {\n background: #424242;\n color: white;\n}\n.green-theme .mat-autocomplete-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {\n background: #424242;\n}\n.green-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {\n color: white;\n}\n.green-theme .mat-badge-content {\n color: rgba(0, 0, 0, 0.87);\n background: #8bc34a;\n}\n@media (-ms-high-contrast: active) {\n .green-theme .mat-badge-content {\n outline: solid 1px;\n border-radius: 0;\n }\n}\n.green-theme .mat-badge-accent .mat-badge-content {\n background: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-badge-warn .mat-badge-content {\n color: rgba(0, 0, 0, 0.87);\n background: #4caf50;\n}\n.green-theme .mat-badge {\n position: relative;\n}\n.green-theme .mat-badge-hidden .mat-badge-content {\n display: none;\n}\n.green-theme .mat-badge-disabled .mat-badge-content {\n background: #6e6e6e;\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-badge-content {\n position: absolute;\n text-align: center;\n display: inline-block;\n border-radius: 50%;\n transition: transform 200ms ease-in-out;\n transform: scale(0.6);\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n pointer-events: none;\n}\n.green-theme .ng-animate-disabled .mat-badge-content,\n.green-theme .mat-badge-content._mat-animation-noopable {\n transition: none;\n}\n.green-theme .mat-badge-content.mat-badge-active {\n transform: none;\n}\n.green-theme .mat-badge-small .mat-badge-content {\n width: 16px;\n height: 16px;\n line-height: 16px;\n}\n.green-theme .mat-badge-small.mat-badge-above .mat-badge-content {\n top: -8px;\n}\n.green-theme .mat-badge-small.mat-badge-below .mat-badge-content {\n bottom: -8px;\n}\n.green-theme .mat-badge-small.mat-badge-before .mat-badge-content {\n left: -16px;\n}\n[dir=rtl] .green-theme .mat-badge-small.mat-badge-before .mat-badge-content {\n left: auto;\n right: -16px;\n}\n.green-theme .mat-badge-small.mat-badge-after .mat-badge-content {\n right: -16px;\n}\n[dir=rtl] .green-theme .mat-badge-small.mat-badge-after .mat-badge-content {\n right: auto;\n left: -16px;\n}\n.green-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: -8px;\n}\n[dir=rtl] .green-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: auto;\n right: -8px;\n}\n.green-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: -8px;\n}\n[dir=rtl] .green-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: auto;\n left: -8px;\n}\n.green-theme .mat-badge-medium .mat-badge-content {\n width: 22px;\n height: 22px;\n line-height: 22px;\n}\n.green-theme .mat-badge-medium.mat-badge-above .mat-badge-content {\n top: -11px;\n}\n.green-theme .mat-badge-medium.mat-badge-below .mat-badge-content {\n bottom: -11px;\n}\n.green-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\n left: -22px;\n}\n[dir=rtl] .green-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\n left: auto;\n right: -22px;\n}\n.green-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\n right: -22px;\n}\n[dir=rtl] .green-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\n right: auto;\n left: -22px;\n}\n.green-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: -11px;\n}\n[dir=rtl] .green-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: auto;\n right: -11px;\n}\n.green-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: -11px;\n}\n[dir=rtl] .green-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: auto;\n left: -11px;\n}\n.green-theme .mat-badge-large .mat-badge-content {\n width: 28px;\n height: 28px;\n line-height: 28px;\n}\n.green-theme .mat-badge-large.mat-badge-above .mat-badge-content {\n top: -14px;\n}\n.green-theme .mat-badge-large.mat-badge-below .mat-badge-content {\n bottom: -14px;\n}\n.green-theme .mat-badge-large.mat-badge-before .mat-badge-content {\n left: -28px;\n}\n[dir=rtl] .green-theme .mat-badge-large.mat-badge-before .mat-badge-content {\n left: auto;\n right: -28px;\n}\n.green-theme .mat-badge-large.mat-badge-after .mat-badge-content {\n right: -28px;\n}\n[dir=rtl] .green-theme .mat-badge-large.mat-badge-after .mat-badge-content {\n right: auto;\n left: -28px;\n}\n.green-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: -14px;\n}\n[dir=rtl] .green-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\n left: auto;\n right: -14px;\n}\n.green-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: -14px;\n}\n[dir=rtl] .green-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\n right: auto;\n left: -14px;\n}\n.green-theme .mat-bottom-sheet-container {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n background: #424242;\n color: white;\n}\n.green-theme .mat-button, .green-theme .mat-icon-button, .green-theme .mat-stroked-button {\n color: inherit;\n background: transparent;\n}\n.green-theme .mat-button.mat-primary, .green-theme .mat-icon-button.mat-primary, .green-theme .mat-stroked-button.mat-primary {\n color: #8bc34a;\n}\n.green-theme .mat-button.mat-accent, .green-theme .mat-icon-button.mat-accent, .green-theme .mat-stroked-button.mat-accent {\n color: #4caf50;\n}\n.green-theme .mat-button.mat-warn, .green-theme .mat-icon-button.mat-warn, .green-theme .mat-stroked-button.mat-warn {\n color: #4caf50;\n}\n.green-theme .mat-button.mat-primary[disabled], .green-theme .mat-button.mat-accent[disabled], .green-theme .mat-button.mat-warn[disabled], .green-theme .mat-button[disabled][disabled], .green-theme .mat-icon-button.mat-primary[disabled], .green-theme .mat-icon-button.mat-accent[disabled], .green-theme .mat-icon-button.mat-warn[disabled], .green-theme .mat-icon-button[disabled][disabled], .green-theme .mat-stroked-button.mat-primary[disabled], .green-theme .mat-stroked-button.mat-accent[disabled], .green-theme .mat-stroked-button.mat-warn[disabled], .green-theme .mat-stroked-button[disabled][disabled] {\n color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-button.mat-primary .mat-button-focus-overlay, .green-theme .mat-icon-button.mat-primary .mat-button-focus-overlay, .green-theme .mat-stroked-button.mat-primary .mat-button-focus-overlay {\n background-color: #8bc34a;\n}\n.green-theme .mat-button.mat-accent .mat-button-focus-overlay, .green-theme .mat-icon-button.mat-accent .mat-button-focus-overlay, .green-theme .mat-stroked-button.mat-accent .mat-button-focus-overlay {\n background-color: #4caf50;\n}\n.green-theme .mat-button.mat-warn .mat-button-focus-overlay, .green-theme .mat-icon-button.mat-warn .mat-button-focus-overlay, .green-theme .mat-stroked-button.mat-warn .mat-button-focus-overlay {\n background-color: #4caf50;\n}\n.green-theme .mat-button[disabled] .mat-button-focus-overlay, .green-theme .mat-icon-button[disabled] .mat-button-focus-overlay, .green-theme .mat-stroked-button[disabled] .mat-button-focus-overlay {\n background-color: transparent;\n}\n.green-theme .mat-button .mat-ripple-element, .green-theme .mat-icon-button .mat-ripple-element, .green-theme .mat-stroked-button .mat-ripple-element {\n opacity: 0.1;\n background-color: currentColor;\n}\n.green-theme .mat-button-focus-overlay {\n background: white;\n}\n.green-theme .mat-stroked-button:not([disabled]) {\n border-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-flat-button, .green-theme .mat-raised-button, .green-theme .mat-fab, .green-theme .mat-mini-fab {\n color: white;\n background-color: #424242;\n}\n.green-theme .mat-flat-button.mat-primary, .green-theme .mat-raised-button.mat-primary, .green-theme .mat-fab.mat-primary, .green-theme .mat-mini-fab.mat-primary {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-flat-button.mat-accent, .green-theme .mat-raised-button.mat-accent, .green-theme .mat-fab.mat-accent, .green-theme .mat-mini-fab.mat-accent {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-flat-button.mat-warn, .green-theme .mat-raised-button.mat-warn, .green-theme .mat-fab.mat-warn, .green-theme .mat-mini-fab.mat-warn {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-flat-button.mat-primary[disabled], .green-theme .mat-flat-button.mat-accent[disabled], .green-theme .mat-flat-button.mat-warn[disabled], .green-theme .mat-flat-button[disabled][disabled], .green-theme .mat-raised-button.mat-primary[disabled], .green-theme .mat-raised-button.mat-accent[disabled], .green-theme .mat-raised-button.mat-warn[disabled], .green-theme .mat-raised-button[disabled][disabled], .green-theme .mat-fab.mat-primary[disabled], .green-theme .mat-fab.mat-accent[disabled], .green-theme .mat-fab.mat-warn[disabled], .green-theme .mat-fab[disabled][disabled], .green-theme .mat-mini-fab.mat-primary[disabled], .green-theme .mat-mini-fab.mat-accent[disabled], .green-theme .mat-mini-fab.mat-warn[disabled], .green-theme .mat-mini-fab[disabled][disabled] {\n color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-flat-button.mat-primary, .green-theme .mat-raised-button.mat-primary, .green-theme .mat-fab.mat-primary, .green-theme .mat-mini-fab.mat-primary {\n background-color: #8bc34a;\n}\n.green-theme .mat-flat-button.mat-accent, .green-theme .mat-raised-button.mat-accent, .green-theme .mat-fab.mat-accent, .green-theme .mat-mini-fab.mat-accent {\n background-color: #4caf50;\n}\n.green-theme .mat-flat-button.mat-warn, .green-theme .mat-raised-button.mat-warn, .green-theme .mat-fab.mat-warn, .green-theme .mat-mini-fab.mat-warn {\n background-color: #4caf50;\n}\n.green-theme .mat-flat-button.mat-primary[disabled], .green-theme .mat-flat-button.mat-accent[disabled], .green-theme .mat-flat-button.mat-warn[disabled], .green-theme .mat-flat-button[disabled][disabled], .green-theme .mat-raised-button.mat-primary[disabled], .green-theme .mat-raised-button.mat-accent[disabled], .green-theme .mat-raised-button.mat-warn[disabled], .green-theme .mat-raised-button[disabled][disabled], .green-theme .mat-fab.mat-primary[disabled], .green-theme .mat-fab.mat-accent[disabled], .green-theme .mat-fab.mat-warn[disabled], .green-theme .mat-fab[disabled][disabled], .green-theme .mat-mini-fab.mat-primary[disabled], .green-theme .mat-mini-fab.mat-accent[disabled], .green-theme .mat-mini-fab.mat-warn[disabled], .green-theme .mat-mini-fab[disabled][disabled] {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-flat-button.mat-primary .mat-ripple-element, .green-theme .mat-raised-button.mat-primary .mat-ripple-element, .green-theme .mat-fab.mat-primary .mat-ripple-element, .green-theme .mat-mini-fab.mat-primary .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.green-theme .mat-flat-button.mat-accent .mat-ripple-element, .green-theme .mat-raised-button.mat-accent .mat-ripple-element, .green-theme .mat-fab.mat-accent .mat-ripple-element, .green-theme .mat-mini-fab.mat-accent .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.green-theme .mat-flat-button.mat-warn .mat-ripple-element, .green-theme .mat-raised-button.mat-warn .mat-ripple-element, .green-theme .mat-fab.mat-warn .mat-ripple-element, .green-theme .mat-mini-fab.mat-warn .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.green-theme .mat-stroked-button:not([class*=mat-elevation-z]), .green-theme .mat-flat-button:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-raised-button:not([class*=mat-elevation-z]) {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]) {\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-raised-button[disabled]:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-fab:not([class*=mat-elevation-z]), .green-theme .mat-mini-fab:not([class*=mat-elevation-z]) {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-fab:not([disabled]):active:not([class*=mat-elevation-z]), .green-theme .mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]) {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-fab[disabled]:not([class*=mat-elevation-z]), .green-theme .mat-mini-fab[disabled]:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-button-toggle-standalone,\n.green-theme .mat-button-toggle-group {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\n.green-theme .mat-button-toggle-group-appearance-standard {\n box-shadow: none;\n}\n.green-theme .mat-button-toggle {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-button-toggle .mat-button-toggle-focus-overlay {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-button-toggle-appearance-standard {\n color: white;\n background: #424242;\n}\n.green-theme .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {\n background-color: white;\n}\n.green-theme .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\n border-left: solid 1px rgba(255, 255, 255, 0.12);\n}\n.green-theme [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\n border-left: none;\n border-right: solid 1px rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {\n border-left: none;\n border-right: none;\n border-top: solid 1px rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-button-toggle-checked {\n background-color: #212121;\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-button-toggle-checked.mat-button-toggle-appearance-standard {\n color: white;\n}\n.green-theme .mat-button-toggle-disabled {\n color: rgba(255, 255, 255, 0.3);\n background-color: black;\n}\n.green-theme .mat-button-toggle-disabled.mat-button-toggle-appearance-standard {\n background: #424242;\n}\n.green-theme .mat-button-toggle-disabled.mat-button-toggle-checked {\n background-color: #424242;\n}\n.green-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\n.green-theme .mat-button-toggle-group-appearance-standard {\n border: solid 1px rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-card {\n background: #424242;\n color: white;\n}\n.green-theme .mat-card:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-card.mat-card-flat:not([class*=mat-elevation-z]) {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-card-subtitle {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-checkbox-frame {\n border-color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-checkbox-checkmark {\n fill: #303030;\n}\n.green-theme .mat-checkbox-checkmark-path {\n stroke: #303030 !important;\n}\n@media (-ms-high-contrast: black-on-white) {\n .green-theme .mat-checkbox-checkmark-path {\n stroke: #000 !important;\n }\n}\n.green-theme .mat-checkbox-mixedmark {\n background-color: #303030;\n}\n.green-theme .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .green-theme .mat-checkbox-checked.mat-primary .mat-checkbox-background {\n background-color: #8bc34a;\n}\n.green-theme .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .green-theme .mat-checkbox-checked.mat-accent .mat-checkbox-background {\n background-color: #4caf50;\n}\n.green-theme .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .green-theme .mat-checkbox-checked.mat-warn .mat-checkbox-background {\n background-color: #4caf50;\n}\n.green-theme .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .green-theme .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {\n background-color: #686868;\n}\n.green-theme .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {\n border-color: #686868;\n}\n.green-theme .mat-checkbox-disabled .mat-checkbox-label {\n color: rgba(255, 255, 255, 0.7);\n}\n@media (-ms-high-contrast: active) {\n .green-theme .mat-checkbox-disabled {\n opacity: 0.5;\n }\n}\n@media (-ms-high-contrast: active) {\n .green-theme .mat-checkbox-background {\n background: none;\n }\n}\n.green-theme .mat-checkbox .mat-ripple-element {\n background-color: white;\n}\n.green-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,\n.green-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {\n background: #8bc34a;\n}\n.green-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,\n.green-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {\n background: #4caf50;\n}\n.green-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,\n.green-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {\n background: #4caf50;\n}\n.green-theme .mat-chip.mat-standard-chip {\n background-color: #616161;\n color: white;\n}\n.green-theme .mat-chip.mat-standard-chip .mat-chip-remove {\n color: white;\n opacity: 0.4;\n}\n.green-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {\n opacity: 0.54;\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-disabled {\n opacity: 0.4;\n}\n.green-theme .mat-chip.mat-standard-chip::after {\n background: white;\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {\n background-color: #8bc34a;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {\n color: rgba(0, 0, 0, 0.87);\n opacity: 0.4;\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {\n background: rgba(0, 0, 0, 0.1);\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {\n background-color: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {\n color: rgba(0, 0, 0, 0.87);\n opacity: 0.4;\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {\n background: rgba(0, 0, 0, 0.1);\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {\n background-color: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {\n color: rgba(0, 0, 0, 0.87);\n opacity: 0.4;\n}\n.green-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {\n background: rgba(0, 0, 0, 0.1);\n}\n.green-theme .mat-table {\n background: #424242;\n}\n.green-theme .mat-table thead, .green-theme .mat-table tbody, .green-theme .mat-table tfoot,\n.green-theme mat-header-row, .green-theme mat-row, .green-theme mat-footer-row,\n.green-theme [mat-header-row], .green-theme [mat-row], .green-theme [mat-footer-row],\n.green-theme .mat-table-sticky {\n background: inherit;\n}\n.green-theme mat-row, .green-theme mat-header-row, .green-theme mat-footer-row,\n.green-theme th.mat-header-cell, .green-theme td.mat-cell, .green-theme td.mat-footer-cell {\n border-bottom-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-header-cell {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-cell, .green-theme .mat-footer-cell {\n color: white;\n}\n.green-theme .mat-calendar-arrow {\n border-top-color: white;\n}\n.green-theme .mat-datepicker-toggle,\n.green-theme .mat-datepicker-content .mat-calendar-next-button,\n.green-theme .mat-datepicker-content .mat-calendar-previous-button {\n color: white;\n}\n.green-theme .mat-calendar-table-header {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-calendar-table-header-divider::after {\n background: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-calendar-body-label {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-calendar-body-cell-content {\n color: white;\n border-color: transparent;\n}\n.green-theme .mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\n.green-theme .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\n.green-theme .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\n background-color: rgba(255, 255, 255, 0.04);\n}\n.green-theme .mat-calendar-body-today:not(.mat-calendar-body-selected) {\n border-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected) {\n border-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-calendar-body-selected {\n background-color: #8bc34a;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-calendar-body-disabled > .mat-calendar-body-selected {\n background-color: rgba(139, 195, 74, 0.4);\n}\n.green-theme .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-datepicker-content {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n background-color: #424242;\n color: white;\n}\n.green-theme .mat-datepicker-content.mat-accent .mat-calendar-body-selected {\n background-color: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {\n background-color: rgba(76, 175, 80, 0.4);\n}\n.green-theme .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-datepicker-content.mat-warn .mat-calendar-body-selected {\n background-color: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {\n background-color: rgba(76, 175, 80, 0.4);\n}\n.green-theme .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-datepicker-content-touch {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-datepicker-toggle-active {\n color: #8bc34a;\n}\n.green-theme .mat-datepicker-toggle-active.mat-accent {\n color: #4caf50;\n}\n.green-theme .mat-datepicker-toggle-active.mat-warn {\n color: #4caf50;\n}\n.green-theme .mat-dialog-container {\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\n background: #424242;\n color: white;\n}\n.green-theme .mat-divider {\n border-top-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-divider-vertical {\n border-right-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-expansion-panel {\n background: #424242;\n color: white;\n}\n.green-theme .mat-expansion-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-action-row {\n border-top-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]), .green-theme .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]), .green-theme .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]) {\n background: rgba(255, 255, 255, 0.04);\n}\n@media (hover: none) {\n .green-theme .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover {\n background: #424242;\n }\n}\n.green-theme .mat-expansion-panel-header-title {\n color: white;\n}\n.green-theme .mat-expansion-panel-header-description,\n.green-theme .mat-expansion-indicator::after {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-expansion-panel-header[aria-disabled=true] {\n color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,\n.green-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description {\n color: inherit;\n}\n.green-theme .mat-form-field-label {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-hint {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-form-field.mat-focused .mat-form-field-label {\n color: #8bc34a;\n}\n.green-theme .mat-form-field.mat-focused .mat-form-field-label.mat-accent {\n color: #4caf50;\n}\n.green-theme .mat-form-field.mat-focused .mat-form-field-label.mat-warn {\n color: #4caf50;\n}\n.green-theme .mat-focused .mat-form-field-required-marker {\n color: #4caf50;\n}\n.green-theme .mat-form-field-ripple {\n background-color: white;\n}\n.green-theme .mat-form-field.mat-focused .mat-form-field-ripple {\n background-color: #8bc34a;\n}\n.green-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {\n background-color: #4caf50;\n}\n.green-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {\n background-color: #4caf50;\n}\n.green-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {\n color: #8bc34a;\n}\n.green-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {\n color: #4caf50;\n}\n.green-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {\n color: #4caf50;\n}\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label {\n color: #4caf50;\n}\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {\n color: #4caf50;\n}\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,\n.green-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {\n background-color: #4caf50;\n}\n.green-theme .mat-error {\n color: #4caf50;\n}\n.green-theme .mat-form-field-appearance-legacy .mat-form-field-label {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-form-field-appearance-legacy .mat-hint {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-form-field-appearance-legacy .mat-form-field-underline {\n background-color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0.7) 33%, transparent 0%);\n background-size: 4px 100%;\n background-repeat: repeat-x;\n}\n.green-theme .mat-form-field-appearance-standard .mat-form-field-underline {\n background-color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0.7) 33%, transparent 0%);\n background-size: 4px 100%;\n background-repeat: repeat-x;\n}\n.green-theme .mat-form-field-appearance-fill .mat-form-field-flex {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.green-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {\n background-color: rgba(255, 255, 255, 0.05);\n}\n.green-theme .mat-form-field-appearance-fill .mat-form-field-underline::before {\n background-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {\n background-color: transparent;\n}\n.green-theme .mat-form-field-appearance-outline .mat-form-field-outline {\n color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-form-field-appearance-outline .mat-form-field-outline-thick {\n color: white;\n}\n.green-theme .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {\n color: #8bc34a;\n}\n.green-theme .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {\n color: #4caf50;\n}\n.green-theme .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {\n color: #4caf50;\n}\n.green-theme .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {\n color: #4caf50;\n}\n.green-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {\n color: rgba(255, 255, 255, 0.15);\n}\n.green-theme .mat-icon.mat-primary {\n color: #8bc34a;\n}\n.green-theme .mat-icon.mat-accent {\n color: #4caf50;\n}\n.green-theme .mat-icon.mat-warn {\n color: #4caf50;\n}\n.green-theme .mat-form-field-type-mat-native-select .mat-form-field-infix::after {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-input-element:disabled,\n.green-theme .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element {\n caret-color: #8bc34a;\n}\n.green-theme .mat-input-element::-webkit-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element::-moz-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element::-ms-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element::placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element::-moz-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element::-webkit-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element:-ms-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-input-element option {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-input-element option:disabled {\n color: rgba(0, 0, 0, 0.38);\n}\n.green-theme .mat-accent .mat-input-element {\n caret-color: #4caf50;\n}\n.green-theme .mat-warn .mat-input-element,\n.green-theme .mat-form-field-invalid .mat-input-element {\n caret-color: #4caf50;\n}\n.green-theme .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {\n color: #4caf50;\n}\n.green-theme .mat-list-base .mat-list-item {\n color: white;\n}\n.green-theme .mat-list-base .mat-list-option {\n color: white;\n}\n.green-theme .mat-list-base .mat-subheader {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-list-item-disabled {\n background-color: black;\n}\n.green-theme .mat-list-option:hover, .green-theme .mat-list-option:focus,\n.green-theme .mat-nav-list .mat-list-item:hover,\n.green-theme .mat-nav-list .mat-list-item:focus,\n.green-theme .mat-action-list .mat-list-item:hover,\n.green-theme .mat-action-list .mat-list-item:focus {\n background: rgba(255, 255, 255, 0.04);\n}\n.green-theme .mat-menu-panel {\n background: #424242;\n}\n.green-theme .mat-menu-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-menu-item {\n background: transparent;\n color: white;\n}\n.green-theme .mat-menu-item[disabled], .green-theme .mat-menu-item[disabled]::after {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-menu-item .mat-icon-no-color,\n.green-theme .mat-menu-item-submenu-trigger::after {\n color: white;\n}\n.green-theme .mat-menu-item:hover:not([disabled]),\n.green-theme .mat-menu-item.cdk-program-focused:not([disabled]),\n.green-theme .mat-menu-item.cdk-keyboard-focused:not([disabled]),\n.green-theme .mat-menu-item-highlighted:not([disabled]) {\n background: rgba(255, 255, 255, 0.04);\n}\n.green-theme .mat-paginator {\n background: #424242;\n}\n.green-theme .mat-paginator,\n.green-theme .mat-paginator-page-size .mat-select-trigger {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-paginator-decrement,\n.green-theme .mat-paginator-increment {\n border-top: 2px solid white;\n border-right: 2px solid white;\n}\n.green-theme .mat-paginator-first,\n.green-theme .mat-paginator-last {\n border-top: 2px solid white;\n}\n.green-theme .mat-icon-button[disabled] .mat-paginator-decrement,\n.green-theme .mat-icon-button[disabled] .mat-paginator-increment,\n.green-theme .mat-icon-button[disabled] .mat-paginator-first,\n.green-theme .mat-icon-button[disabled] .mat-paginator-last {\n border-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-progress-bar-background {\n fill: #dcedc8;\n}\n.green-theme .mat-progress-bar-buffer {\n background-color: #dcedc8;\n}\n.green-theme .mat-progress-bar-fill::after {\n background-color: #8bc34a;\n}\n.green-theme .mat-progress-bar.mat-accent .mat-progress-bar-background {\n fill: #c8e6c9;\n}\n.green-theme .mat-progress-bar.mat-accent .mat-progress-bar-buffer {\n background-color: #c8e6c9;\n}\n.green-theme .mat-progress-bar.mat-accent .mat-progress-bar-fill::after {\n background-color: #4caf50;\n}\n.green-theme .mat-progress-bar.mat-warn .mat-progress-bar-background {\n fill: #c8e6c9;\n}\n.green-theme .mat-progress-bar.mat-warn .mat-progress-bar-buffer {\n background-color: #c8e6c9;\n}\n.green-theme .mat-progress-bar.mat-warn .mat-progress-bar-fill::after {\n background-color: #4caf50;\n}\n.green-theme .mat-progress-spinner circle, .green-theme .mat-spinner circle {\n stroke: #8bc34a;\n}\n.green-theme .mat-progress-spinner.mat-accent circle, .green-theme .mat-spinner.mat-accent circle {\n stroke: #4caf50;\n}\n.green-theme .mat-progress-spinner.mat-warn circle, .green-theme .mat-spinner.mat-warn circle {\n stroke: #4caf50;\n}\n.green-theme .mat-radio-outer-circle {\n border-color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {\n border-color: #8bc34a;\n}\n.green-theme .mat-radio-button.mat-primary .mat-radio-inner-circle,\n.green-theme .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .green-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple, .green-theme .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {\n background-color: #8bc34a;\n}\n.green-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {\n border-color: #4caf50;\n}\n.green-theme .mat-radio-button.mat-accent .mat-radio-inner-circle,\n.green-theme .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .green-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple, .green-theme .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {\n background-color: #4caf50;\n}\n.green-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {\n border-color: #4caf50;\n}\n.green-theme .mat-radio-button.mat-warn .mat-radio-inner-circle,\n.green-theme .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .green-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple, .green-theme .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {\n background-color: #4caf50;\n}\n.green-theme .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,\n.green-theme .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {\n border-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,\n.green-theme .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {\n background-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-radio-button.mat-radio-disabled .mat-radio-label-content {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-radio-button .mat-ripple-element {\n background-color: white;\n}\n.green-theme .mat-select-value {\n color: white;\n}\n.green-theme .mat-select-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-select-disabled .mat-select-value {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-select-arrow {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-select-panel {\n background: #424242;\n}\n.green-theme .mat-select-panel:not([class*=mat-elevation-z]) {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {\n background: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-form-field.mat-focused.mat-primary .mat-select-arrow {\n color: #8bc34a;\n}\n.green-theme .mat-form-field.mat-focused.mat-accent .mat-select-arrow {\n color: #4caf50;\n}\n.green-theme .mat-form-field.mat-focused.mat-warn .mat-select-arrow {\n color: #4caf50;\n}\n.green-theme .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {\n color: #4caf50;\n}\n.green-theme .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-drawer-container {\n background-color: #303030;\n color: white;\n}\n.green-theme .mat-drawer {\n background-color: #424242;\n color: white;\n}\n.green-theme .mat-drawer.mat-drawer-push {\n background-color: #424242;\n}\n.green-theme .mat-drawer:not(.mat-drawer-side) {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-drawer-side {\n border-right: solid 1px rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-drawer-side.mat-drawer-end {\n border-left: solid 1px rgba(255, 255, 255, 0.12);\n border-right: none;\n}\n.green-theme [dir=rtl] .mat-drawer-side {\n border-left: solid 1px rgba(255, 255, 255, 0.12);\n border-right: none;\n}\n.green-theme [dir=rtl] .mat-drawer-side.mat-drawer-end {\n border-left: none;\n border-right: solid 1px rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-drawer-backdrop.mat-drawer-shown {\n background-color: rgba(189, 189, 189, 0.6);\n}\n.green-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {\n background-color: #4caf50;\n}\n.green-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-bar {\n background-color: rgba(76, 175, 80, 0.54);\n}\n.green-theme .mat-slide-toggle.mat-checked .mat-ripple-element {\n background-color: #4caf50;\n}\n.green-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {\n background-color: #8bc34a;\n}\n.green-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {\n background-color: rgba(139, 195, 74, 0.54);\n}\n.green-theme .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {\n background-color: #8bc34a;\n}\n.green-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {\n background-color: #4caf50;\n}\n.green-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {\n background-color: rgba(76, 175, 80, 0.54);\n}\n.green-theme .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {\n background-color: #4caf50;\n}\n.green-theme .mat-slide-toggle:not(.mat-checked) .mat-ripple-element {\n background-color: white;\n}\n.green-theme .mat-slide-toggle-thumb {\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n background-color: #bdbdbd;\n}\n.green-theme .mat-slide-toggle-bar {\n background-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-slider-track-background {\n background-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-primary .mat-slider-track-fill,\n.green-theme .mat-primary .mat-slider-thumb,\n.green-theme .mat-primary .mat-slider-thumb-label {\n background-color: #8bc34a;\n}\n.green-theme .mat-primary .mat-slider-thumb-label-text {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-accent .mat-slider-track-fill,\n.green-theme .mat-accent .mat-slider-thumb,\n.green-theme .mat-accent .mat-slider-thumb-label {\n background-color: #4caf50;\n}\n.green-theme .mat-accent .mat-slider-thumb-label-text {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-warn .mat-slider-track-fill,\n.green-theme .mat-warn .mat-slider-thumb,\n.green-theme .mat-warn .mat-slider-thumb-label {\n background-color: #4caf50;\n}\n.green-theme .mat-warn .mat-slider-thumb-label-text {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-slider-focus-ring {\n background-color: rgba(76, 175, 80, 0.2);\n}\n.green-theme .mat-slider:hover .mat-slider-track-background,\n.green-theme .cdk-focused .mat-slider-track-background {\n background-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-slider-disabled .mat-slider-track-background,\n.green-theme .mat-slider-disabled .mat-slider-track-fill,\n.green-theme .mat-slider-disabled .mat-slider-thumb {\n background-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-slider-disabled:hover .mat-slider-track-background {\n background-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-slider-min-value .mat-slider-focus-ring {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,\n.green-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label {\n background-color: white;\n}\n.green-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,\n.green-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label {\n background-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb {\n border-color: rgba(255, 255, 255, 0.3);\n background-color: transparent;\n}\n.green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb, .green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb {\n border-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb, .green-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb {\n border-color: rgba(255, 255, 255, 0.3);\n}\n.green-theme .mat-slider-has-ticks .mat-slider-wrapper::after {\n border-color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-slider-horizontal .mat-slider-ticks {\n background-image: repeating-linear-gradient(to right, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\n background-image: -moz-repeating-linear-gradient(0.0001deg, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\n}\n.green-theme .mat-slider-vertical .mat-slider-ticks {\n background-image: repeating-linear-gradient(to bottom, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\n}\n.green-theme .mat-step-header.cdk-keyboard-focused, .green-theme .mat-step-header.cdk-program-focused, .green-theme .mat-step-header:hover {\n background-color: rgba(255, 255, 255, 0.04);\n}\n@media (hover: none) {\n .green-theme .mat-step-header:hover {\n background: none;\n }\n}\n.green-theme .mat-step-header .mat-step-label,\n.green-theme .mat-step-header .mat-step-optional {\n color: rgba(255, 255, 255, 0.7);\n}\n.green-theme .mat-step-header .mat-step-icon {\n background-color: rgba(255, 255, 255, 0.7);\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-step-header .mat-step-icon-selected,\n.green-theme .mat-step-header .mat-step-icon-state-done,\n.green-theme .mat-step-header .mat-step-icon-state-edit {\n background-color: #8bc34a;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-step-header .mat-step-icon-state-error {\n background-color: transparent;\n color: #4caf50;\n}\n.green-theme .mat-step-header .mat-step-label.mat-step-label-active {\n color: white;\n}\n.green-theme .mat-step-header .mat-step-label.mat-step-label-error {\n color: #4caf50;\n}\n.green-theme .mat-stepper-horizontal, .green-theme .mat-stepper-vertical {\n background-color: #424242;\n}\n.green-theme .mat-stepper-vertical-line::before {\n border-left-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-horizontal-stepper-header::before,\n.green-theme .mat-horizontal-stepper-header::after,\n.green-theme .mat-stepper-horizontal-line {\n border-top-color: rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-sort-header-arrow {\n color: #c6c6c6;\n}\n.green-theme .mat-tab-nav-bar,\n.green-theme .mat-tab-header {\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n}\n.green-theme .mat-tab-group-inverted-header .mat-tab-nav-bar,\n.green-theme .mat-tab-group-inverted-header .mat-tab-header {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n border-bottom: none;\n}\n.green-theme .mat-tab-label, .green-theme .mat-tab-link {\n color: white;\n}\n.green-theme .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-link.mat-tab-disabled {\n color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-tab-header-pagination-chevron {\n border-color: white;\n}\n.green-theme .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(255, 255, 255, 0.5);\n}\n.green-theme .mat-tab-group[class*=mat-background-] .mat-tab-header,\n.green-theme .mat-tab-nav-bar[class*=mat-background-] {\n border-bottom: none;\n border-top: none;\n}\n.green-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(220, 237, 200, 0.3);\n}\n.green-theme .mat-tab-group.mat-primary .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-primary .mat-ink-bar {\n background-color: #8bc34a;\n}\n.green-theme .mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar {\n background-color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(200, 230, 201, 0.3);\n}\n.green-theme .mat-tab-group.mat-accent .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-accent .mat-ink-bar {\n background-color: #4caf50;\n}\n.green-theme .mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar {\n background-color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(200, 230, 201, 0.3);\n}\n.green-theme .mat-tab-group.mat-warn .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-warn .mat-ink-bar {\n background-color: #4caf50;\n}\n.green-theme .mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar, .green-theme .mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar {\n background-color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(220, 237, 200, 0.3);\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-header, .green-theme .mat-tab-group.mat-background-primary .mat-tab-links, .green-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-links, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination {\n background-color: #8bc34a;\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-label, .green-theme .mat-tab-group.mat-background-primary .mat-tab-link, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled {\n color: rgba(0, 0, 0, 0.4);\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.4);\n}\n.green-theme .mat-tab-group.mat-background-primary .mat-ripple-element, .green-theme .mat-tab-nav-bar.mat-background-primary .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(200, 230, 201, 0.3);\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-header, .green-theme .mat-tab-group.mat-background-accent .mat-tab-links, .green-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-links, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination {\n background-color: #4caf50;\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-label, .green-theme .mat-tab-group.mat-background-accent .mat-tab-link, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled {\n color: rgba(0, 0, 0, 0.4);\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.4);\n}\n.green-theme .mat-tab-group.mat-background-accent .mat-ripple-element, .green-theme .mat-tab-nav-bar.mat-background-accent .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\n.green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\n background-color: rgba(200, 230, 201, 0.3);\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-header, .green-theme .mat-tab-group.mat-background-warn .mat-tab-links, .green-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-links, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination {\n background-color: #4caf50;\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-label, .green-theme .mat-tab-group.mat-background-warn .mat-tab-link, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link {\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled {\n color: rgba(0, 0, 0, 0.4);\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: rgba(0, 0, 0, 0.4);\n}\n.green-theme .mat-tab-group.mat-background-warn .mat-ripple-element, .green-theme .mat-tab-nav-bar.mat-background-warn .mat-ripple-element {\n background-color: rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-toolbar {\n background: #212121;\n color: white;\n}\n.green-theme .mat-toolbar.mat-primary {\n background: #8bc34a;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-toolbar.mat-accent {\n background: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-toolbar.mat-warn {\n background: #4caf50;\n color: rgba(0, 0, 0, 0.87);\n}\n.green-theme .mat-toolbar .mat-form-field-underline,\n.green-theme .mat-toolbar .mat-form-field-ripple,\n.green-theme .mat-toolbar .mat-focused .mat-form-field-ripple {\n background-color: currentColor;\n}\n.green-theme .mat-toolbar .mat-form-field-label,\n.green-theme .mat-toolbar .mat-focused .mat-form-field-label,\n.green-theme .mat-toolbar .mat-select-value,\n.green-theme .mat-toolbar .mat-select-arrow,\n.green-theme .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow {\n color: inherit;\n}\n.green-theme .mat-toolbar .mat-input-element {\n caret-color: currentColor;\n}\n.green-theme .mat-tooltip {\n background: rgba(97, 97, 97, 0.9);\n}\n.green-theme .mat-tree {\n background: #424242;\n}\n.green-theme .mat-tree-node,\n.green-theme .mat-nested-tree-node {\n color: white;\n}\n.green-theme .mat-snack-bar-container {\n color: rgba(0, 0, 0, 0.87);\n background: #fafafa;\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n}\n.green-theme .mat-simple-snackbar-action {\n color: inherit;\n}\n.green-theme h1 {\n color: #8bc34a;\n}\n/* You can add global styles to this file, and also import other style files */\nhtml, body {\n height: 100%;\n}\nbody {\n margin: 0;\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n.flex-spacer {\n flex: 1 1 auto;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9kYXRhL2hvbWUva25pc3RlcjAvZ2l0aHVicy9OaWV0enNjaGVCZXRhL25pZXR6c2NoZS1iZXRhLWFwcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvbWF0ZXJpYWwvX3RoZW1pbmcuc2NzcyIsIi4uL3N0eWxlcy5zY3NzIiwiL2RhdGEvaG9tZS9rbmlzdGVyMC9naXRodWJzL05pZXR6c2NoZUJldGEvbmlldHpzY2hlLWJldGEtYXBwL3NyYy9zdHlsZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwMUNBLGtDQUFBO0FBNmlEQSwyQ0FBQTtBQXdDQSxxQkFBQTtBQXgvQkU7RUFDRSxnQkFyTG9CO0VBc0xwQixlQXZMa0I7RUF3TGxCLGlEQUFBO0FDbjdESjtBRHM3REU7RUFFRSxjQUFBO0FDcDdESjtBRHU3REU7RUFDRSxlQUFBO0FDcDdESjtBRHluREU7RUE5TkUsd0RBQUE7RUFnT0EsZ0JBQUE7QUN0bkRKO0FEeW5ERTtFQW5PRSx3REFBQTtFQXFPQSxnQkFBQTtBQ3RuREo7QUR5bkRFO0VBeE9FLHdEQUFBO0VBME9BLGdCQUFBO0FDdG5ESjtBRHluREU7RUE3T0Usd0RBQUE7RUErT0EsZ0JBQUE7QUN0bkRKO0FENG5ERTtFQXJQRSxxRUFBQTtFQThQQSxnQkFBQTtBQ2hvREo7QURtb0RFO0VBalFFLHFFQUFBO0VBMFFBLGdCQUFBO0FDdm9ESjtBRDBvREU7RUE3UUUsd0RBQUE7QUN6M0NKO0FEMG9ERTtFQWpSRSx3REFBQTtBQ3IzQ0o7QUR5b0RJO0VBQ0UsZ0JBQUE7QUN2b0ROO0FEMm9ERTtFQXpSRSx3REFBQTtBQzkyQ0o7QUQyb0RFO0VBN1JFLDBEQUFBO0VBWUYsdUJBQUE7RUFtUkUsZ0JBQUE7QUN2b0RKO0FEMG9ERTtFQWxTRSx3REFBQTtFQVlGLHVCQUFBO0VBd1JFLGdCQUFBO0FDdG9ESjtBRHlvREU7RUF2U0Usd0RBQUE7RUFZRix3QkFBQTtFQTZSRSxnQkFBQTtBQ3JvREo7QUR3b0RFO0VBNVNFLHdEQUFBO0VBOFNBLGdCQUFB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Qy9oQko7QUQ2Zk07Ozs7O0VBQ0UsMENBQUE7QUN2ZlI7QUQrZkU7RUFDRSx5QkFBQTtBQzdmSjtBRGlnQkU7RUFDRSwwQkFBQTtBQy9mSjtBRGlnQkk7RUFDRSx5QkFBQTtBQy9mTjtBRG9nQkU7RUFDRSxpQ0FBQTtBQ2xnQko7QURxZ0JFO0VBQ0UsZ0NBQUE7QUNuZ0JKO0FEd2dCRTtFQUNFLHFDQUFBO0FDdGdCSjtBRG9lTTs7Ozs7RUFDRSwwQ0FBQTtBQzlkUjtBRHNlRTtFQUNFLHlCQUFBO0FDcGVKO0FEd2VFO0VBQ0UsMEJBQUE7QUN0ZUo7QUR3ZUk7RUFDRSx5QkFBQTtBQ3RlTjtBRDJlRTtFQUNFLGlDQUFBO0FDemVKO0FENGVFO0VBQ0UsZ0NBQUE7QUMxZUo7QUQrZUU7RUFDRSxxQ0FBQTtBQzdlSjtBRG9pQkU7RUFDRSxtQkFBQTtFQUNBLFlBQUE7QUNsaUJKO0FEb2lCSTtFQW5DRixtQkFBQTtFQUNBLDBCQUFBO0FDOWZGO0FEb2lCSTtFQXZDRixtQkFBQTtFQUNBLDBCQUFBO0FDMWZGO0FEb2lCSTtFQTNDRixtQkFBQTtFQUNBLDBCQUFBO0FDdGZGO0FEMGZFOzs7RUFHRSw4QkFBQTtBQ3hmSjtBRDJmRTs7Ozs7RUFLRSxjQUFBO0FDemZKO0FENGZFO0VBQ0UseUJBQUE7QUMxZko7QURvakJFO0VBQ0UsaUNBQUE7QUNsakJKO0FEaXhDRTtFQUNFLG1CQUFBO0FDL3dDSjtBRGt4Q0U7O0VBRUUsWUFBQTtBQ2h4Q0o7QURza0JFO0VBR0UsMEJBQUE7RUFDQSxtQkFBQTtFQTFvSEYsMkhBQUE7QUNxa0dGO0FEMGtCRTtFQUNFLGNBQUE7QUN4a0JKO0FDcCtHRTtFQUFLLGNBQUE7QUR1K0dQO0FDbitHQSw4RUFBQTtBQUdBO0VBQWEsWUFBQTtBRHErR2I7QUNwK0dBO0VBQU8sU0FBQTtFQUFXLGlEQUFBO0FEeStHbEI7QUN2K0dBO0VBQ0UsY0FBQTtBRDArR0YiLCJmaWxlIjoiLi4vc3R5bGVzLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnQgYWxsIHRoZSB0aGVtaW5nIGZ1bmN0aW9uYWxpdHkuXG4vLyBXZSBjYW4gdXNlIHJlbGF0aXZlIGltcG9ydHMgZm9yIGltcG9ydHMgZnJvbSB0aGUgY2RrIGJlY2F1c2Ugd2UgYnVuZGxlIGV2ZXJ5dGhpbmdcbi8vIHVwIGludG8gYSBzaW5nbGUgZmxhdCBzY3NzIGZpbGUgZm9yIG1hdGVyaWFsLlxuLy8gV2Ugd2FudCBvdmVybGF5cyB0byBhbHdheXMgYXBwZWFyIG92ZXIgdXNlciBjb250ZW50LCBzbyBzZXQgYSBiYXNlbGluZVxuLy8gdmVyeSBoaWdoIHotaW5kZXggZm9yIHRoZSBvdmVybGF5IGNvbnRhaW5lciwgd2hpY2ggaXMgd2hlcmUgd2UgY3JlYXRlIHRoZSBuZXdcbi8vIHN0YWNraW5nIGNvbnRleHQgZm9yIGFsbCBvdmVybGF5cy5cbiRjZGstei1pbmRleC1vdmVybGF5LWNvbnRhaW5lcjogMTAwMCAhZGVmYXVsdDtcbiRjZGstei1pbmRleC1vdmVybGF5OiAxMDAwICFkZWZhdWx0O1xuJGNkay16LWluZGV4LW92ZXJsYXktYmFja2Ryb3A6IDEwMDAgIWRlZmF1bHQ7XG5cbi8vIEJhY2tncm91bmQgY29sb3IgZm9yIGFsbCBvZiB0aGUgYmFja2Ryb3BzXG4kY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcC1iYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzIpICFkZWZhdWx0O1xuXG4vLyBEZWZhdWx0IGJhY2tkcm9wIGFuaW1hdGlvbiBpcyBiYXNlZCBvbiB0aGUgTWF0ZXJpYWwgRGVzaWduIHN3aWZ0LWVhc2Utb3V0LlxuJGJhY2tkcm9wLWFuaW1hdGlvbi1kdXJhdGlvbjogNDAwbXMgIWRlZmF1bHQ7XG4kYmFja2Ryb3AtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSkgIWRlZmF1bHQ7XG5cblxuQG1peGluIGNkay1vdmVybGF5KCkge1xuICAuY2RrLW92ZXJsYXktY29udGFpbmVyLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICAgIC8vIERpc2FibGUgZXZlbnRzIGZyb20gYmVpbmcgY2FwdHVyZWQgb24gdGhlIG92ZXJsYXkgY29udGFpbmVyLlxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgLy8gVGhlIGNvbnRhaW5lciBzaG91bGQgYmUgdGhlIHNpemUgb2YgdGhlIHZpZXdwb3J0LlxuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIFRoZSBvdmVybGF5LWNvbnRhaW5lciBpcyBhbiBpbnZpc2libGUgZWxlbWVudCB3aGljaCBjb250YWlucyBhbGwgaW5kaXZpZHVhbCBvdmVybGF5cy5cbiAgLmNkay1vdmVybGF5LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5LWNvbnRhaW5lcjtcblxuICAgICY6ZW1wdHkge1xuICAgICAgLy8gSGlkZSB0aGUgZWxlbWVudCB3aGVuIGl0IGRvZXNuJ3QgaGF2ZSBhbnkgY2hpbGQgbm9kZXMuIFRoaXMgZG9lc24ndFxuICAgICAgLy8gaW5jbHVkZSBvdmVybGF5cyB0aGF0IGhhdmUgYmVlbiBkZXRhY2hlZCwgcmF0aGVyIHRoYW4gZGlzcG9zZWQuXG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdlIHVzZSBhbiBleHRyYSB3cmFwcGVyIGVsZW1lbnQgaW4gb3JkZXIgdG8gdXNlIG1ha2UgdGhlIG92ZXJsYXkgaXRzZWxmIGEgZmxleCBpdGVtLlxuICAvLyBUaGlzIG1ha2VzIGNlbnRlcmluZyB0aGUgb3ZlcmxheSBlYXN5IHdpdGhvdXQgcnVubmluZyBpbnRvIHRoZSBzdWJwaXhlbCByZW5kZXJpbmdcbiAgLy8gcHJvYmxlbXMgdGllZCB0byB1c2luZyBgdHJhbnNmb3JtYCBhbmQgd2l0aG91dCBpbnRlcmZlcmluZyB3aXRoIHRoZSBvdGhlciBwb3NpdGlvblxuICAvLyBzdHJhdGVnaWVzLlxuICAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5O1xuICB9XG5cbiAgLy8gQSBzaW5nbGUgb3ZlcmxheSBwYW5lLlxuICAuY2RrLW92ZXJsYXktcGFuZSB7XG4gICAgLy8gTm90ZTogaXQncyBpbXBvcnRhbnQgZm9yIHRoaXMgb25lIHRvIHN0YXJ0IG9mZiBgYWJzb2x1dGVgLFxuICAgIC8vIGluIG9yZGVyIGZvciB1cyB0byBiZSBhYmxlIHRvIG1lYXN1cmUgaXQgY29ycmVjdGx5LlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5O1xuXG4gICAgLy8gRm9yIGNvbm5lY3RlZC1wb3NpdGlvbiBvdmVybGF5cywgd2Ugc2V0IGBkaXNwbGF5OiBmbGV4YCBpblxuICAgIC8vIG9yZGVyIHRvIGZvcmNlIGBtYXgtd2lkdGhgIGFuZCBgbWF4LWhlaWdodGAgdG8gdGFrZSBlZmZlY3QuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1iYWNrZHJvcCB7XG4gICAgLy8gVE9ETyhqZWxib3Vybik6IHJldXNlIHNpZGVuYXYgZnVsbHNjcmVlbiBtaXhpbi5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuXG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXktYmFja2Ryb3A7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRiYWNrZHJvcC1hbmltYXRpb24tZHVyYXRpb24gJGJhY2tkcm9wLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb247XG4gICAgb3BhY2l0eTogMDtcblxuICAgICYuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAvLyBJbiBoaWdoIGNvbnRyYXN0IG1vZGUgdGhlIHJnYmEgYmFja2dyb3VuZCB3aWxsIGJlY29tZSBzb2xpZCBzbyB3ZSBuZWVkIHRvIGZhbGwgYmFja1xuICAgICAgLy8gdG8gbWFraW5nIGl0IG9wYXF1ZSB1c2luZyBgb3BhY2l0eWAuIE5vdGUgdGhhdCB3ZSBjYW4ndCB1c2UgdGhlIGBjZGstaGlnaC1jb250cmFzdGBcbiAgICAgIC8vIG1peGluLCBiZWNhdXNlIHdlIGNhbid0IG5vcm1hbGl6ZSB0aGUgaW1wb3J0IHBhdGggdG8gdGhlIF9hMTF5LnNjc3MgYm90aCBmb3IgdGhlXG4gICAgICAvLyBzb3VyY2UgYW5kIHdoZW4gdGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkLiBTZWUgIzEwOTA4LlxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wIHtcbiAgICBiYWNrZ3JvdW5kOiAkY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcC1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wIHtcbiAgICAvLyBOb3RlOiBhcyBvZiBGaXJlZm94IDU3LCBoYXZpbmcgdGhlIGJhY2tkcm9wIGJlIGBiYWNrZ3JvdW5kOiBub25lYCB3aWxsIHByZXZlbnQgaXQgZnJvbVxuICAgIC8vIGNhcHR1cmluZyB0aGUgdXNlcidzIG1vdXNlIHNjcm9sbCBldmVudHMuIFNpbmNlIHdlIGFsc28gY2FuJ3QgdXNlIHNvbWV0aGluZyBsaWtlXG4gICAgLy8gYHJnYmEoMCwgMCwgMCwgMClgLCB3ZSB3b3JrIGFyb3VuZCB0aGUgaW5jb25zaXN0ZW5jeSBieSBub3Qgc2V0dGluZyB0aGUgYmFja2dyb3VuZCBhdFxuICAgIC8vIGFsbCBhbmQgdXNpbmcgYG9wYWNpdHlgIHRvIG1ha2UgdGhlIGVsZW1lbnQgdHJhbnNwYXJlbnQuXG4gICAgJiwgJi5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gT3ZlcmxheSBwYXJlbnQgZWxlbWVudCB1c2VkIHdpdGggdGhlIGNvbm5lY3RlZCBwb3NpdGlvbiBzdHJhdGVneS4gVXNlZCB0byBjb25zdHJhaW4gdGhlXG4gIC8vIG92ZXJsYXkgZWxlbWVudCdzIHNpemUgdG8gZml0IHdpdGhpbiB0aGUgdmlld3BvcnQuXG4gIC5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXk7XG5cbiAgICAvLyBXZSB1c2UgYGRpc3BsYXk6IGZsZXhgIG9uIHRoaXMgZWxlbWVudCBleGNsdXNpdmVseSBmb3IgY2VudGVyaW5nIGNvbm5lY3RlZCBvdmVybGF5cy5cbiAgICAvLyBXaGVuICpub3QqIGNlbnRlcmluZywgYSB0b3AvbGVmdC9ib3R0b20vcmlnaHQgd2lsbCBiZSBzZXQgd2hpY2ggb3ZlcnJpZGVzIHRoZSBub3JtYWxcbiAgICAvLyBmbGV4IGxheW91dC5cbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgLy8gV2UgdXNlIHRoZSBgY29sdW1uYCBkaXJlY3Rpb24gaGVyZSB0byBhdm9pZCBzb21lIGZsZXhib3ggaXNzdWVzIGluIEVkZ2VcbiAgICAvLyB3aGVuIHVzaW5nIHRoZSBcImdyb3cgYWZ0ZXIgb3BlblwiIG9wdGlvbnMuXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC8vIEFkZCBzb21lIGRpbWVuc2lvbnMgc28gdGhlIGVsZW1lbnQgaGFzIGFuIGBpbm5lclRleHRgIHdoaWNoIHNvbWUgcGVvcGxlIGRlcGVuZCBvbiBpbiB0ZXN0cy5cbiAgICBtaW4td2lkdGg6IDFweDtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gIH1cblxuICAvLyBVc2VkIHdoZW4gZGlzYWJsaW5nIGdsb2JhbCBzY3JvbGxpbmcuXG4gIC5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG5cbiAgICAvLyBOZWNlc3NhcnkgZm9yIHRoZSBjb250ZW50IG5vdCB0byBsb3NlIGl0cyB3aWR0aC4gTm90ZSB0aGF0IHdlJ3JlIHVzaW5nIDEwMCUsIGluc3RlYWQgb2ZcbiAgICAvLyAxMDB2dywgYmVjYXVzZSAxMDB2dyBpbmNsdWRlcyB0aGUgd2lkdGggcGx1cyB0aGUgc2Nyb2xsYmFyLCB3aGVyZWFzIDEwMCUgaXMgdGhlIHdpZHRoXG4gICAgLy8gdGhhdCB0aGUgZWxlbWVudCBoYWQgYmVmb3JlIHdlIG1hZGUgaXQgYGZpeGVkYC5cbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC8vIE5vdGU6IHRoaXMgd2lsbCBhbHdheXMgYWRkIGEgc2Nyb2xsYmFyIHRvIHdoYXRldmVyIGVsZW1lbnQgaXQgaXMgb24sIHdoaWNoIGNhblxuICAgIC8vIHBvdGVudGlhbGx5IHJlc3VsdCBpbiBkb3VibGUgc2Nyb2xsYmFycy4gSXQgc2hvdWxkbid0IGJlIGFuIGlzc3VlLCBiZWNhdXNlIHdlIHdvbid0XG4gICAgLy8gYmxvY2sgc2Nyb2xsaW5nIG9uIGEgcGFnZSB0aGF0IGRvZXNuJ3QgaGF2ZSBhIHNjcm9sbGJhciBpbiB0aGUgZmlyc3QgcGxhY2UuXG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICB9XG59XG5cbkBtaXhpbiBjZGstYTExeSB7XG4gIC5jZGstdmlzdWFsbHktaGlkZGVuIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuXG4gICAgLy8gQXZvaWQgYnJvd3NlcnMgcmVuZGVyaW5nIHRoZSBmb2N1cyByaW5nIGluIHNvbWUgY2FzZXMuXG4gICAgb3V0bGluZTogMDtcblxuICAgIC8vIEF2b2lkIHNvbWUgY2FzZXMgd2hlcmUgdGhlIGJyb3dzZXIgd2lsbCBzdGlsbCByZW5kZXIgdGhlIG5hdGl2ZSBjb250cm9scyAoc2VlICM5MDQ5KS5cbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICB9XG59XG5cbi8vIEFwcGxpZXMgc3R5bGVzIGZvciB1c2VycyBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuIE5vdGUgdGhhdCB0aGlzIG9ubHkgYXBwbGllc1xuLy8gdG8gTWljcm9zb2Z0IGJyb3dzZXJzLiBDaHJvbWUgY2FuIGJlIGluY2x1ZGVkIGJ5IGNoZWNraW5nIGZvciB0aGUgYGh0bWxbaGNdYFxuLy8gYXR0cmlidXRlLCBob3dldmVyIENocm9tZSBoYW5kbGVzIGhpZ2ggY29udHJhc3QgZGlmZmVyZW50bHkuXG4vL1xuLy8gQHBhcmFtIHRhcmdldCBXaGljaCBraW5kIG9mIGhpZ2ggY29udHJhc3Qgc2V0dGluZyB0byB0YXJnZXQuIERlZmF1bHRzIHRvIGBhY3RpdmVgLCBjYW4gYmVcbi8vICAgIGB3aGl0ZS1vbi1ibGFja2Agb3IgYGJsYWNrLW9uLXdoaXRlYC5cbkBtaXhpbiBjZGstaGlnaC1jb250cmFzdCgkdGFyZ2V0OiBhY3RpdmUpIHtcbiAgQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogJHRhcmdldCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIENvcmUgc3R5bGVzIHRoYXQgZW5hYmxlIG1vbml0b3JpbmcgYXV0b2ZpbGwgc3RhdGUgb2YgdGV4dCBmaWVsZHMuXG5AbWl4aW4gY2RrLXRleHQtZmllbGQge1xuICAvLyBLZXlmcmFtZXMgdGhhdCBhcHBseSBubyBzdHlsZXMsIGJ1dCBhbGxvdyB1cyB0byBtb25pdG9yIHdoZW4gYW4gdGV4dCBmaWVsZCBiZWNvbWVzIGF1dG9maWxsZWRcbiAgLy8gYnkgd2F0Y2hpbmcgZm9yIHRoZSBhbmltYXRpb24gZXZlbnRzIHRoYXQgYXJlIGZpcmVkIHdoZW4gdGhleSBzdGFydC4gTm90ZTogdGhlIC8qISovIGNvbW1lbnQgaXNcbiAgLy8gbmVlZGVkIHRvIHByZXZlbnQgTGliU2FzcyBmcm9tIHN0cmlwcGluZyB0aGUga2V5ZnJhbWVzIG91dC5cbiAgLy8gQmFzZWQgb246IGh0dHBzOi8vbWVkaXVtLmNvbS9AYnJ1bm4vZGV0ZWN0aW5nLWF1dG9maWxsZWQtZmllbGRzLWluLWphdmFzY3JpcHQtYWVkNTk4ZDI1ZGE3XG4gIEBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgey8qISovfVxuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCB7LyohKi99XG5cbiAgLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxsIHtcbiAgICBhbmltYXRpb24tbmFtZTogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQ7XG4gIH1cblxuICAuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCkge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQ7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIHJlc2l6ZSBoYW5kbGUgb24gYXV0b3NpemluZyB0ZXh0YXJlYXMsIGJlY2F1c2Ugd2hhdGV2ZXIgaGVpZ2h0XG4gIC8vIHRoZSB1c2VyIHJlc2l6ZWQgdG8gd2lsbCBiZSBvdmVyd3JpdHRlbiBvbmNlIHRoZXkgc3RhcnQgdHlwaW5nIGFnYWluLlxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUge1xuICAgIHJlc2l6ZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRoaXMgY2xhc3MgaXMgdGVtcG9yYXJpbHkgYXBwbGllZCB0byB0aGUgdGV4dGFyZWEgd2hlbiBpdCBpcyBiZWluZyBtZWFzdXJlZC4gSXQgaXMgaW1tZWRpYXRlbHlcbiAgLy8gcmVtb3ZlZCB3aGVuIG1lYXN1cmluZyBpcyBjb21wbGV0ZS4gV2UgdXNlIGAhaW1wb3J0YW50YCBydWxlcyBoZXJlIHRvIG1ha2Ugc3VyZSB1c2VyLXNwZWNpZmllZFxuICAvLyBydWxlcyBkbyBub3QgaW50ZXJmZXJlIHdpdGggdGhlIG1lYXN1cmVtZW50LlxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nIHtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgLy8gSGF2aW5nIDJweCB0b3AgYW5kIGJvdHRvbSBwYWRkaW5nIHNlZW1zIHRvIGZpeCBhIGJ1ZyB3aGVyZSBDaHJvbWUgZ2V0cyBhbiBpbmNvcnJlY3RcbiAgICAvLyBtZWFzdXJlbWVudC4gV2UganVzdCBoYXZlIHRvIGFjY291bnQgZm9yIGl0IGxhdGVyIGFuZCBzdWJ0cmFjdCBpdCBvZmYgdGhlIGZpbmFsIHJlc3VsdC5cbiAgICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8gVXNlZCB0byBnZW5lcmF0ZSBVSURzIGZvciBrZXlmcmFtZXMgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQgZmllbGQgYXV0b2ZpbGwgc3R5bGVzLlxuJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50OiAwO1xuXG4vLyBNaXhpbiB1c2VkIHRvIGFwcGx5IGN1c3RvbSBiYWNrZ3JvdW5kIGFuZCBmb3JlZ3JvdW5kIGNvbG9ycyB0byBhbiBhdXRvZmlsbGVkIHRleHQgZmllbGQuXG4vLyBCYXNlZCBvbjogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjc4MTU0OS9cbi8vIHJlbW92aW5nLWlucHV0LWJhY2tncm91bmQtY29sb3VyLWZvci1jaHJvbWUtYXV0b2NvbXBsZXRlI2Fuc3dlci0zNzQzMjI2MFxuQG1peGluIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yKCRiYWNrZ3JvdW5kLCAkZm9yZWdyb3VuZDonJykge1xuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLSN7JGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50fSB7XG4gICAgdG8ge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICBAaWYgJGZvcmVncm91bmQgIT0gJycgeyBjb2xvcjogJGZvcmVncm91bmQ7IH1cbiAgICB9XG4gIH1cblxuICAmOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci0jeyRjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudH07XG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgfVxuXG4gICYuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCxcbiAgICAgICAgICAgICAgICAgICAgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItI3skY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnR9O1xuICB9XG5cbiAgJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50OlxuICAgICAgJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50ICsgMSAhZ2xvYmFsO1xufVxuXG5cbi8vIENvcmUgc3R5bGVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gYXBwbHkgbWF0ZXJpYWwgZGVzaWduIHRyZWF0bWVudHMgdG8gYW55IGVsZW1lbnQuXG4vLyBNZWRpYSBxdWVyaWVzXG4vLyBUT0RPKGpvc2VwaHBlcnJvdHQpOiBDaGFuZ2UgJG1hdC14c21hbGwgYW5kICRtYXQtc21hbGwgdXNhZ2VzIHRvIHJlbHkgb24gQnJlYWtwb2ludE9ic2VydmVyLFxuJG1hdC14c21hbGw6ICdtYXgtd2lkdGg6IDU5OXB4JztcbiRtYXQtc21hbGw6ICdtYXgtd2lkdGg6IDk1OXB4JztcblxuLy8gVE9ETzogUmV2aXNpdCBhbGwgei1pbmRpY2VzIGJlZm9yZSBiZXRhXG4vLyB6LWluZGV4IG1hc3RlciBsaXN0XG5cbiR6LWluZGV4LWZhYjogMjAgIWRlZmF1bHQ7XG4kei1pbmRleC1kcmF3ZXI6IDEwMCAhZGVmYXVsdDtcblxuLy8gR2xvYmFsIGNvbnN0YW50c1xuJHBpOiAzLjE0MTU5MjY1O1xuXG4vLyBQYWRkaW5nIGJldHdlZW4gaW5wdXQgdG9nZ2xlcyBhbmQgdGhlaXIgbGFiZWxzXG4kbWF0LXRvZ2dsZS1wYWRkaW5nOiA4cHggIWRlZmF1bHQ7XG4vLyBXaWR0aCBhbmQgaGVpZ2h0IG9mIGlucHV0IHRvZ2dsZXNcbiRtYXQtdG9nZ2xlLXNpemU6IDIwcHggIWRlZmF1bHQ7XG5cbi8vIEVhc2luZyBDdXJ2ZXNcbi8vIFRPRE8oamVsYm91cm4pOiBhbGwgb2YgdGhlc2UgbmVlZCB0byBiZSByZXZpc2l0ZWRcblxuLy8gVGhlIGRlZmF1bHQgYW5pbWF0aW9uIGN1cnZlcyB1c2VkIGJ5IG1hdGVyaWFsIGRlc2lnbi5cbiRtYXQtbGluZWFyLW91dC1zbG93LWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMC4xKSAhZGVmYXVsdDtcbiRtYXQtZmFzdC1vdXQtc2xvdy1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWRlZmF1bHQ7XG4kbWF0LWZhc3Qtb3V0LWxpbmVhci1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpICFkZWZhdWx0O1xuXG4kZWFzZS1pbi1vdXQtY3VydmUtZnVuY3Rpb246IGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKSAhZGVmYXVsdDtcblxuJHN3aWZ0LWVhc2Utb3V0LWR1cmF0aW9uOiA0MDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLW91dC10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpICFkZWZhdWx0O1xuJHN3aWZ0LWVhc2Utb3V0OiBhbGwgJHN3aWZ0LWVhc2Utb3V0LWR1cmF0aW9uICRzd2lmdC1lYXNlLW91dC10aW1pbmctZnVuY3Rpb24gIWRlZmF1bHQ7XG5cbiRzd2lmdC1lYXNlLWluLWR1cmF0aW9uOiAzMDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAsIDAuNTUsIDAuMikgIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1pbjogYWxsICRzd2lmdC1lYXNlLWluLWR1cmF0aW9uICRzd2lmdC1lYXNlLWluLXRpbWluZy1mdW5jdGlvbiAhZGVmYXVsdDtcblxuJHN3aWZ0LWVhc2UtaW4tb3V0LWR1cmF0aW9uOiA1MDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLW91dC10aW1pbmctZnVuY3Rpb246ICRlYXNlLWluLW91dC1jdXJ2ZS1mdW5jdGlvbiAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLW91dDogYWxsICRzd2lmdC1lYXNlLWluLW91dC1kdXJhdGlvbiAkc3dpZnQtZWFzZS1pbi1vdXQtdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuXG4kc3dpZnQtbGluZWFyLWR1cmF0aW9uOiA4MG1zICFkZWZhdWx0O1xuJHN3aWZ0LWxpbmVhci10aW1pbmctZnVuY3Rpb246IGxpbmVhciAhZGVmYXVsdDtcbiRzd2lmdC1saW5lYXI6IGFsbCAkc3dpZnQtbGluZWFyLWR1cmF0aW9uICRzd2lmdC1saW5lYXItdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuXG5cblxuLy8gQSBjb2xsZWN0aW9uIG9mIG1peGlucyBhbmQgQ1NTIGNsYXNzZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBhcHBseSBlbGV2YXRpb24gdG8gYSBtYXRlcmlhbFxuLy8gZWxlbWVudC5cbi8vIFNlZTogaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vZW52aXJvbm1lbnQvZWxldmF0aW9uLmh0bWxcbi8vIEV4YW1wbGVzOlxuLy9cbi8vXG4vLyAubWF0LWZvbyB7XG4vLyAgIEBpbmNsdWRlICRtYXQtZWxldmF0aW9uKDIpO1xuLy9cbi8vICAgJjphY3RpdmUge1xuLy8gICAgIEBpbmNsdWRlICRtYXQtZWxldmF0aW9uKDgpO1xuLy8gICB9XG4vLyB9XG4vL1xuLy8gPGRpdiBpZD1cImV4dGVybmFsLWNhcmRcIiBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejJcIj48cD5Tb21lIGNvbnRlbnQ8L3A+PC9kaXY+XG4vL1xuLy8gRm9yIGFuIGV4cGxhbmF0aW9uIG9mIHRoZSBkZXNpZ24gYmVoaW5kIGhvdyBlbGV2YXRpb24gaXMgaW1wbGVtZW50ZWQsIHNlZSB0aGUgZGVzaWduIGRvYyBhdFxuLy8gaHR0cHM6Ly9nb28uZ2wvS3EwazlaLlxuXG4vLyBDb2xvcnMgZm9yIHVtYnJhLCBwZW51bWJyYSwgYW5kIGFtYmllbnQgc2hhZG93cy4gQXMgZGVzY3JpYmVkIGluIHRoZSBkZXNpZ24gZG9jLCBlYWNoIGVsZXZhdGlvblxuLy8gbGV2ZWwgaXMgY3JlYXRlZCB1c2luZyBhIHNldCBvZiAzIHNoYWRvdyB2YWx1ZXMsIG9uZSBmb3IgdW1icmEgKHRoZSBzaGFkb3cgcmVwcmVzZW50aW5nIHRoZVxuLy8gc3BhY2UgY29tcGxldGVseSBvYnNjdXJlZCBieSBhbiBvYmplY3QgcmVsYXRpdmUgdG8gaXRzIGxpZ2h0IHNvdXJjZSksIG9uZSBmb3IgcGVudW1icmEgKHRoZVxuLy8gc3BhY2UgcGFydGlhbGx5IG9ic2N1cmVkIGJ5IGFuIG9iamVjdCksIGFuZCBvbmUgZm9yIGFtYmllbnQgKHRoZSBzcGFjZSB3aGljaCBjb250YWlucyB0aGUgb2JqZWN0XG4vLyBpdHNlbGYpLiBGb3IgYSBmdXJ0aGVyIGV4cGxhbmF0aW9uIG9mIHRoZXNlIHRlcm1zIGFuZCB0aGVpciBtZWFuaW5ncywgc2VlXG4vLyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9VbWJyYSxfcGVudW1icmFfYW5kX2FudHVtYnJhLlxuXG4vLyBNYXBzIGZvciB0aGUgZGlmZmVyZW50IHNoYWRvdyBzZXRzIGFuZCB0aGVpciB2YWx1ZXMgd2l0aGluIGVhY2ggei1zcGFjZS4gVGhlc2UgdmFsdWVzIHdlcmVcbi8vIGNyZWF0ZWQgYnkgdGFraW5nIGEgZmV3IHJlZmVyZW5jZSBzaGFkb3cgc2V0cyBjcmVhdGVkIGJ5IEdvb2dsZSdzIERlc2lnbmVycyBhbmQgaW50ZXJwb2xhdGluZ1xuLy8gYWxsIG9mIHRoZSB2YWx1ZXMgYmV0d2VlbiB0aGVtLlxuXG5AZnVuY3Rpb24gX2dldC11bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSkge1xuICAkc2hhZG93LWNvbG9yOiBpZih0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IsIHJnYmEoJGNvbG9yLCAkb3BhY2l0eSAqIDAuMiksICRjb2xvcik7XG5cbiAgQHJldHVybiAoXG4gICAgMDogJzBweCAwcHggMHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOiAnMHB4IDJweCAxcHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyOiAnMHB4IDNweCAxcHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAzOiAnMHB4IDNweCAzcHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA0OiAnMHB4IDJweCA0cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA1OiAnMHB4IDNweCA1cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA2OiAnMHB4IDNweCA1cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA3OiAnMHB4IDRweCA1cHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA4OiAnMHB4IDVweCA1cHggLTNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA5OiAnMHB4IDVweCA2cHggLTNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMDogJzBweCA2cHggNnB4IC0zcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTE6ICcwcHggNnB4IDdweCAtNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEyOiAnMHB4IDdweCA4cHggLTRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMzogJzBweCA3cHggOHB4IC00cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTQ6ICcwcHggN3B4IDlweCAtNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE1OiAnMHB4IDhweCA5cHggLTVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNjogJzBweCA4cHggMTBweCAtNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE3OiAnMHB4IDhweCAxMXB4IC01cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTg6ICcwcHggOXB4IDExcHggLTVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOTogJzBweCA5cHggMTJweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIwOiAnMHB4IDEwcHggMTNweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIxOiAnMHB4IDEwcHggMTNweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIyOiAnMHB4IDEwcHggMTRweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIzOiAnMHB4IDExcHggMTRweCAtN3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI0OiAnMHB4IDExcHggMTVweCAtN3B4ICN7JHNoYWRvdy1jb2xvcn0nXG4gICk7XG59XG5cbkBmdW5jdGlvbiBfZ2V0LXBlbnVtYnJhLW1hcCgkY29sb3IsICRvcGFjaXR5KSB7XG4gICRzaGFkb3ctY29sb3I6IGlmKHR5cGUtb2YoJGNvbG9yKSA9PSBjb2xvciwgcmdiYSgkY29sb3IsICRvcGFjaXR5ICogMC4xNCksICRjb2xvcik7XG5cbiAgQHJldHVybiAoXG4gICAgMDogJzBweCAwcHggMHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOiAnMHB4IDFweCAxcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI6ICcwcHggMnB4IDJweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMzogJzBweCAzcHggNHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA0OiAnMHB4IDRweCA1cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDU6ICcwcHggNXB4IDhweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNjogJzBweCA2cHggMTBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNzogJzBweCA3cHggMTBweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgODogJzBweCA4cHggMTBweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgOTogJzBweCA5cHggMTJweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTA6ICcwcHggMTBweCAxNHB4IDFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMTogJzBweCAxMXB4IDE1cHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEyOiAnMHB4IDEycHggMTdweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTM6ICcwcHggMTNweCAxOXB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNDogJzBweCAxNHB4IDIxcHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE1OiAnMHB4IDE1cHggMjJweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTY6ICcwcHggMTZweCAyNHB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNzogJzBweCAxN3B4IDI2cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE4OiAnMHB4IDE4cHggMjhweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTk6ICcwcHggMTlweCAyOXB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMDogJzBweCAyMHB4IDMxcHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIxOiAnMHB4IDIxcHggMzNweCAzcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjI6ICcwcHggMjJweCAzNXB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMzogJzBweCAyM3B4IDM2cHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI0OiAnMHB4IDI0cHggMzhweCAzcHggI3skc2hhZG93LWNvbG9yfSdcbiAgKTtcbn1cblxuQGZ1bmN0aW9uIF9nZXQtYW1iaWVudC1tYXAoJGNvbG9yLCAkb3BhY2l0eSkge1xuICAkc2hhZG93LWNvbG9yOiBpZih0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IsIHJnYmEoJGNvbG9yLCAkb3BhY2l0eSAqIDAuMTIpLCAkY29sb3IpO1xuXG4gIEByZXR1cm4gKFxuICAgIDA6ICcwcHggMHB4IDBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTogJzBweCAxcHggM3B4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyOiAnMHB4IDFweCA1cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDM6ICcwcHggMXB4IDhweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNDogJzBweCAxcHggMTBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNTogJzBweCAxcHggMTRweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNjogJzBweCAxcHggMThweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNzogJzBweCAycHggMTZweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgODogJzBweCAzcHggMTRweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgOTogJzBweCAzcHggMTZweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTA6ICcwcHggNHB4IDE4cHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDExOiAnMHB4IDRweCAyMHB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMjogJzBweCA1cHggMjJweCA0cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTM6ICcwcHggNXB4IDI0cHggNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE0OiAnMHB4IDVweCAyNnB4IDRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNTogJzBweCA2cHggMjhweCA1cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTY6ICcwcHggNnB4IDMwcHggNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE3OiAnMHB4IDZweCAzMnB4IDVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxODogJzBweCA3cHggMzRweCA2cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTk6ICcwcHggN3B4IDM2cHggNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIwOiAnMHB4IDhweCAzOHB4IDdweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMTogJzBweCA4cHggNDBweCA3cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjI6ICcwcHggOHB4IDQycHggN3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIzOiAnMHB4IDlweCA0NHB4IDhweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyNDogJzBweCA5cHggNDZweCA4cHggI3skc2hhZG93LWNvbG9yfSdcbiAgKTtcbn1cblxuLy8gVGhlIGRlZmF1bHQgZHVyYXRpb24gdmFsdWUgZm9yIGVsZXZhdGlvbiB0cmFuc2l0aW9ucy5cbiRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb246IDI4MG1zICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBlYXNpbmcgdmFsdWUgZm9yIGVsZXZhdGlvbiB0cmFuc2l0aW9ucy5cbiRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkbWF0LWZhc3Qtb3V0LXNsb3ctaW4tdGltaW5nLWZ1bmN0aW9uO1xuXG4vLyBUaGUgZGVmYXVsdCBjb2xvciBmb3IgZWxldmF0aW9uIHNoYWRvd3MuXG4kbWF0LWVsZXZhdGlvbi1jb2xvcjogYmxhY2sgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IG9wYWNpdHkgc2NhbGluZyB2YWx1ZSBmb3IgZWxldmF0aW9uIHNoYWRvd3MuXG4kbWF0LWVsZXZhdGlvbi1vcGFjaXR5OiAxICFkZWZhdWx0O1xuXG4vLyBQcmVmaXggZm9yIGVsZXZhdGlvbi1yZWxhdGVkIHNlbGVjdG9ycy5cbiRfbWF0LWVsZXZhdGlvbi1wcmVmaXg6ICdtYXQtZWxldmF0aW9uLXonO1xuXG4vLyBBcHBsaWVzIHRoZSBjb3JyZWN0IGNzcyBydWxlcyB0byBhbiBlbGVtZW50IHRvIGdpdmUgaXQgdGhlIGVsZXZhdGlvbiBzcGVjaWZpZWQgYnkgJHpWYWx1ZS5cbi8vIFRoZSAkelZhbHVlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyNC5cbkBtaXhpbiBtYXQtZWxldmF0aW9uKCR6VmFsdWUsICRjb2xvcjogJG1hdC1lbGV2YXRpb24tY29sb3IsICRvcGFjaXR5OiAkbWF0LWVsZXZhdGlvbi1vcGFjaXR5KSB7XG4gIEBpZiB0eXBlLW9mKCR6VmFsdWUpICE9IG51bWJlciBvciBub3QgdW5pdGxlc3MoJHpWYWx1ZSkge1xuICAgIEBlcnJvciAnJHpWYWx1ZSBtdXN0IGJlIGEgdW5pdGxlc3MgbnVtYmVyJztcbiAgfVxuICBAaWYgJHpWYWx1ZSA8IDAgb3IgJHpWYWx1ZSA+IDI0IHtcbiAgICBAZXJyb3IgJyR6VmFsdWUgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDI0JztcbiAgfVxuXG4gIGJveC1zaGFkb3c6ICN7bWFwLWdldChfZ2V0LXVtYnJhLW1hcCgkY29sb3IsICRvcGFjaXR5KSwgJHpWYWx1ZSl9LFxuICAgICAgICAgICAgICAje21hcC1nZXQoX2dldC1wZW51bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSksICR6VmFsdWUpfSxcbiAgICAgICAgICAgICAgI3ttYXAtZ2V0KF9nZXQtYW1iaWVudC1tYXAoJGNvbG9yLCAkb3BhY2l0eSksICR6VmFsdWUpfTtcbn1cblxuQG1peGluIF9tYXQtdGhlbWUtZWxldmF0aW9uKCR6VmFsdWUsICR0aGVtZSwgJG9wYWNpdHk6ICRtYXQtZWxldmF0aW9uLW9wYWNpdHkpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGVsZXZhdGlvbi1jb2xvcjogbWFwLWdldCgkZm9yZWdyb3VuZCwgZWxldmF0aW9uKTtcbiAgJGVsZXZhdGlvbi1jb2xvci1vci1kZWZhdWx0OiBpZigkZWxldmF0aW9uLWNvbG9yID09IG51bGwsICRtYXQtZWxldmF0aW9uLWNvbG9yLCAkZWxldmF0aW9uLWNvbG9yKTtcblxuICBAaW5jbHVkZSBtYXQtZWxldmF0aW9uKCR6VmFsdWUsICRlbGV2YXRpb24tY29sb3Itb3ItZGVmYXVsdCwgJG9wYWNpdHkpO1xufVxuXG4vLyBBcHBsaWVzIHRoZSBlbGV2YXRpb24gdG8gYW4gZWxlbWVudCBpbiBhIG1hbm5lciB0aGF0IGFsbG93c1xuLy8gY29uc3VtZXJzIHRvIG92ZXJyaWRlIGl0IHZpYSB0aGUgTWF0ZXJpYWwgZWxldmF0aW9uIGNsYXNzZXMuXG5AbWl4aW4gbWF0LW92ZXJyaWRhYmxlLWVsZXZhdGlvbihcbiAgICAkelZhbHVlLFxuICAgICRjb2xvcjogJG1hdC1lbGV2YXRpb24tY29sb3IsXG4gICAgJG9wYWNpdHk6ICRtYXQtZWxldmF0aW9uLW9wYWNpdHkpIHtcbiAgJjpub3QoW2NsYXNzKj0nI3skX21hdC1lbGV2YXRpb24tcHJlZml4fSddKSB7XG4gICAgQGluY2x1ZGUgbWF0LWVsZXZhdGlvbigkelZhbHVlLCAkY29sb3IsICRvcGFjaXR5KTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oJHpWYWx1ZSwgJHRoZW1lLCAkb3BhY2l0eTogJG1hdC1lbGV2YXRpb24tb3BhY2l0eSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkZWxldmF0aW9uLWNvbG9yOiBtYXAtZ2V0KCRmb3JlZ3JvdW5kLCBlbGV2YXRpb24pO1xuICAkZWxldmF0aW9uLWNvbG9yLW9yLWRlZmF1bHQ6IGlmKCRlbGV2YXRpb24tY29sb3IgPT0gbnVsbCwgJG1hdC1lbGV2YXRpb24tY29sb3IsICRlbGV2YXRpb24tY29sb3IpO1xuXG4gIEBpbmNsdWRlIG1hdC1vdmVycmlkYWJsZS1lbGV2YXRpb24oJHpWYWx1ZSwgJGVsZXZhdGlvbi1jb2xvci1vci1kZWZhdWx0LCAkb3BhY2l0eSk7XG59XG5cbi8vIFJldHVybnMgYSBzdHJpbmcgdGhhdCBjYW4gYmUgdXNlZCBhcyB0aGUgdmFsdWUgZm9yIGEgdHJhbnNpdGlvbiBwcm9wZXJ0eSBmb3IgZWxldmF0aW9uLlxuLy8gQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIGRpcmVjdGx5IGlzIHVzZWZ1bCBpbiBzaXR1YXRpb25zIHdoZXJlIGEgY29tcG9uZW50IG5lZWRzIHRvIHRyYW5zaXRpb25cbi8vIG1vcmUgdGhhbiBvbmUgcHJvcGVydHkuXG4vL1xuLy8gLmZvbyB7XG4vLyAgIHRyYW5zaXRpb246IG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1wcm9wZXJ0eS12YWx1ZSgpLCBvcGFjaXR5IDEwMG1zIGVhc2U7XG4vLyB9XG5AZnVuY3Rpb24gbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXByb3BlcnR5LXZhbHVlKFxuICAgICRkdXJhdGlvbjogJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbixcbiAgICAkZWFzaW5nOiAkbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbikge1xuICBAcmV0dXJuIGJveC1zaGFkb3cgI3skZHVyYXRpb259ICN7JGVhc2luZ307XG59XG5cbi8vIEFwcGxpZXMgdGhlIGNvcnJlY3QgY3NzIHJ1bGVzIG5lZWRlZCB0byBoYXZlIGFuIGVsZW1lbnQgdHJhbnNpdGlvbiBiZXR3ZWVuIGVsZXZhdGlvbnMuXG4vLyBUaGlzIG1peGluIHNob3VsZCBiZSBhcHBsaWVkIHRvIGVsZW1lbnRzIHdob3NlIGVsZXZhdGlvbiB2YWx1ZXMgd2lsbCBjaGFuZ2UgZGVwZW5kaW5nIG9uIHRoZWlyXG4vLyBjb250ZXh0IChlLmcuIHdoZW4gYWN0aXZlIG9yIGRpc2FibGVkKS5cbi8vXG4vLyBOT1RFKHRyYXZpc2thdWZtYW4pOiBCb3RoIHRoaXMgbWl4aW4gYW5kIHRoZSBhYm92ZSBmdW5jdGlvbiB1c2UgZGVmYXVsdCBwYXJhbWV0ZXJzIHNvIHRoZXkgY2FuXG4vLyBiZSB1c2VkIGluIHRoZSBzYW1lIHdheSBieSBjbGllbnRzLlxuQG1peGluIG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbihcbiAgICAkZHVyYXRpb246ICRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24sXG4gICAgJGVhc2luZzogJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pIHtcbiAgdHJhbnNpdGlvbjogbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXByb3BlcnR5LXZhbHVlKCRkdXJhdGlvbiwgJGVhc2luZyk7XG59XG5cbi8vIENvbG9yIHBhbGV0dGVzIGZyb20gdGhlIE1hdGVyaWFsIERlc2lnbiBzcGVjLlxuLy8gU2VlIGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2NvbG9yL1xuLy9cbi8vIENvbnRyYXN0IGNvbG9ycyBhcmUgaGFyZC1jb2RlZCBiZWNhdXNlIGl0IGlzIHRvbyBkaWZmaWN1bHQgKHByb2JhYmx5IGltcG9zc2libGUpIHRvXG4vLyBjYWxjdWxhdGUgdGhlbS4gVGhlc2UgY29udHJhc3QgY29sb3JzIGFyZSBwdWxsZWQgZnJvbSB0aGUgcHVibGljIE1hdGVyaWFsIERlc2lnbiBzcGVjIHN3YXRjaGVzLlxuLy8gV2hpbGUgdGhlIGNvbnRyYXN0IGNvbG9ycyBpbiB0aGUgc3BlYyBhcmUgbm90IHByZXNjcmlwdGl2ZSwgd2UgdXNlIHRoZW0gZm9yIGNvbnZlbmllbmNlLlxuXG5cbi8vIEBkZXByZWNhdGVkIHJlbmFtZWQgdG8gJGRhcmstcHJpbWFyeS10ZXh0LlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJGJsYWNrLTg3LW9wYWNpdHk6IHJnYmEoYmxhY2ssIDAuODcpO1xuLy8gQGRlcHJlY2F0ZWQgcmVuYW1lZCB0byAkbGlnaHQtcHJpbWFyeS10ZXh0LlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJHdoaXRlLTg3LW9wYWNpdHk6IHJnYmEod2hpdGUsIDAuODcpO1xuLy8gQGRlcHJlY2F0ZWQgdXNlICRkYXJrLVtzZWNvbmRhcnktdGV4dCxkaXNhYmxlZC10ZXh0LGRpdmlkZXJzLGZvY3VzZWRdIGluc3RlYWQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kYmxhY2stMTItb3BhY2l0eTogcmdiYShibGFjaywgMC4xMik7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGxpZ2h0LVtzZWNvbmRhcnktdGV4dCxkaXNhYmxlZC10ZXh0LGRpdmlkZXJzLGZvY3VzZWRdIGluc3RlYWQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kd2hpdGUtMTItb3BhY2l0eTogcmdiYSh3aGl0ZSwgMC4xMik7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGRhcmstW3NlY29uZGFyeS10ZXh0LGRpc2FibGVkLXRleHQsZGl2aWRlcnMsZm9jdXNlZF0gaW5zdGVhZC5cbi8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjBcbiRibGFjay02LW9wYWNpdHk6IHJnYmEoYmxhY2ssIDAuMDYpO1xuLy8gQGRlcHJlY2F0ZWQgdXNlICRsaWdodC1bc2Vjb25kYXJ5LXRleHQsZGlzYWJsZWQtdGV4dCxkaXZpZGVycyxmb2N1c2VkXSBpbnN0ZWFkLlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJHdoaXRlLTYtb3BhY2l0eTogcmdiYSh3aGl0ZSwgMC4wNik7XG5cbiRkYXJrLXByaW1hcnktdGV4dDogcmdiYShibGFjaywgMC44Nyk7XG4kZGFyay1zZWNvbmRhcnktdGV4dDogcmdiYShibGFjaywgMC41NCk7XG4kZGFyay1kaXNhYmxlZC10ZXh0OiByZ2JhKGJsYWNrLCAwLjM4KTtcbiRkYXJrLWRpdmlkZXJzOiByZ2JhKGJsYWNrLCAwLjEyKTtcbiRkYXJrLWZvY3VzZWQ6IHJnYmEoYmxhY2ssIDAuMTIpO1xuJGxpZ2h0LXByaW1hcnktdGV4dDogd2hpdGU7XG4kbGlnaHQtc2Vjb25kYXJ5LXRleHQ6IHJnYmEod2hpdGUsIDAuNyk7XG4kbGlnaHQtZGlzYWJsZWQtdGV4dDogcmdiYSh3aGl0ZSwgMC41KTtcbiRsaWdodC1kaXZpZGVyczogcmdiYSh3aGl0ZSwgMC4xMik7XG4kbGlnaHQtZm9jdXNlZDogcmdiYSh3aGl0ZSwgMC4xMik7XG5cbiRtYXQtcmVkOiAoXG4gIDUwOiAjZmZlYmVlLFxuICAxMDA6ICNmZmNkZDIsXG4gIDIwMDogI2VmOWE5YSxcbiAgMzAwOiAjZTU3MzczLFxuICA0MDA6ICNlZjUzNTAsXG4gIDUwMDogI2Y0NDMzNixcbiAgNjAwOiAjZTUzOTM1LFxuICA3MDA6ICNkMzJmMmYsXG4gIDgwMDogI2M2MjgyOCxcbiAgOTAwOiAjYjcxYzFjLFxuICBBMTAwOiAjZmY4YTgwLFxuICBBMjAwOiAjZmY1MjUyLFxuICBBNDAwOiAjZmYxNzQ0LFxuICBBNzAwOiAjZDUwMDAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtcGluazogKFxuICA1MDogI2ZjZTRlYyxcbiAgMTAwOiAjZjhiYmQwLFxuICAyMDA6ICNmNDhmYjEsXG4gIDMwMDogI2YwNjI5MixcbiAgNDAwOiAjZWM0MDdhLFxuICA1MDA6ICNlOTFlNjMsXG4gIDYwMDogI2Q4MWI2MCxcbiAgNzAwOiAjYzIxODViLFxuICA4MDA6ICNhZDE0NTcsXG4gIDkwMDogIzg4MGU0ZixcbiAgQTEwMDogI2ZmODBhYixcbiAgQTIwMDogI2ZmNDA4MSxcbiAgQTQwMDogI2Y1MDA1NyxcbiAgQTcwMDogI2M1MTE2MixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LXB1cnBsZTogKFxuICA1MDogI2YzZTVmNSxcbiAgMTAwOiAjZTFiZWU3LFxuICAyMDA6ICNjZTkzZDgsXG4gIDMwMDogI2JhNjhjOCxcbiAgNDAwOiAjYWI0N2JjLFxuICA1MDA6ICM5YzI3YjAsXG4gIDYwMDogIzhlMjRhYSxcbiAgNzAwOiAjN2IxZmEyLFxuICA4MDA6ICM2YTFiOWEsXG4gIDkwMDogIzRhMTQ4YyxcbiAgQTEwMDogI2VhODBmYyxcbiAgQTIwMDogI2UwNDBmYixcbiAgQTQwMDogI2Q1MDBmOSxcbiAgQTcwMDogI2FhMDBmZixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtZGVlcC1wdXJwbGU6IChcbiAgNTA6ICNlZGU3ZjYsXG4gIDEwMDogI2QxYzRlOSxcbiAgMjAwOiAjYjM5ZGRiLFxuICAzMDA6ICM5NTc1Y2QsXG4gIDQwMDogIzdlNTdjMixcbiAgNTAwOiAjNjczYWI3LFxuICA2MDA6ICM1ZTM1YjEsXG4gIDcwMDogIzUxMmRhOCxcbiAgODAwOiAjNDUyN2EwLFxuICA5MDA6ICMzMTFiOTIsXG4gIEExMDA6ICNiMzg4ZmYsXG4gIEEyMDA6ICM3YzRkZmYsXG4gIEE0MDA6ICM2NTFmZmYsXG4gIEE3MDA6ICM2MjAwZWEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWluZGlnbzogKFxuICA1MDogI2U4ZWFmNixcbiAgMTAwOiAjYzVjYWU5LFxuICAyMDA6ICM5ZmE4ZGEsXG4gIDMwMDogIzc5ODZjYixcbiAgNDAwOiAjNWM2YmMwLFxuICA1MDA6ICMzZjUxYjUsXG4gIDYwMDogIzM5NDlhYixcbiAgNzAwOiAjMzAzZjlmLFxuICA4MDA6ICMyODM1OTMsXG4gIDkwMDogIzFhMjM3ZSxcbiAgQTEwMDogIzhjOWVmZixcbiAgQTIwMDogIzUzNmRmZSxcbiAgQTQwMDogIzNkNWFmZSxcbiAgQTcwMDogIzMwNGZmZSxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtYmx1ZTogKFxuICA1MDogI2UzZjJmZCxcbiAgMTAwOiAjYmJkZWZiLFxuICAyMDA6ICM5MGNhZjksXG4gIDMwMDogIzY0YjVmNixcbiAgNDAwOiAjNDJhNWY1LFxuICA1MDA6ICMyMTk2ZjMsXG4gIDYwMDogIzFlODhlNSxcbiAgNzAwOiAjMTk3NmQyLFxuICA4MDA6ICMxNTY1YzAsXG4gIDkwMDogIzBkNDdhMSxcbiAgQTEwMDogIzgyYjFmZixcbiAgQTIwMDogIzQ0OGFmZixcbiAgQTQwMDogIzI5NzlmZixcbiAgQTcwMDogIzI5NjJmZixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWxpZ2h0LWJsdWU6IChcbiAgNTA6ICNlMWY1ZmUsXG4gIDEwMDogI2IzZTVmYyxcbiAgMjAwOiAjODFkNGZhLFxuICAzMDA6ICM0ZmMzZjcsXG4gIDQwMDogIzI5YjZmNixcbiAgNTAwOiAjMDNhOWY0LFxuICA2MDA6ICMwMzliZTUsXG4gIDcwMDogIzAyODhkMSxcbiAgODAwOiAjMDI3N2JkLFxuICA5MDA6ICMwMTU3OWIsXG4gIEExMDA6ICM4MGQ4ZmYsXG4gIEEyMDA6ICM0MGM0ZmYsXG4gIEE0MDA6ICMwMGIwZmYsXG4gIEE3MDA6ICMwMDkxZWEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtY3lhbjogKFxuICA1MDogI2UwZjdmYSxcbiAgMTAwOiAjYjJlYmYyLFxuICAyMDA6ICM4MGRlZWEsXG4gIDMwMDogIzRkZDBlMSxcbiAgNDAwOiAjMjZjNmRhLFxuICA1MDA6ICMwMGJjZDQsXG4gIDYwMDogIzAwYWNjMSxcbiAgNzAwOiAjMDA5N2E3LFxuICA4MDA6ICMwMDgzOGYsXG4gIDkwMDogIzAwNjA2NCxcbiAgQTEwMDogIzg0ZmZmZixcbiAgQTIwMDogIzE4ZmZmZixcbiAgQTQwMDogIzAwZTVmZixcbiAgQTcwMDogIzAwYjhkNCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LXRlYWw6IChcbiAgNTA6ICNlMGYyZjEsXG4gIDEwMDogI2IyZGZkYixcbiAgMjAwOiAjODBjYmM0LFxuICAzMDA6ICM0ZGI2YWMsXG4gIDQwMDogIzI2YTY5YSxcbiAgNTAwOiAjMDA5Njg4LFxuICA2MDA6ICMwMDg5N2IsXG4gIDcwMDogIzAwNzk2YixcbiAgODAwOiAjMDA2OTVjLFxuICA5MDA6ICMwMDRkNDAsXG4gIEExMDA6ICNhN2ZmZWIsXG4gIEEyMDA6ICM2NGZmZGEsXG4gIEE0MDA6ICMxZGU5YjYsXG4gIEE3MDA6ICMwMGJmYTUsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1ncmVlbjogKFxuICA1MDogI2U4ZjVlOSxcbiAgMTAwOiAjYzhlNmM5LFxuICAyMDA6ICNhNWQ2YTcsXG4gIDMwMDogIzgxYzc4NCxcbiAgNDAwOiAjNjZiYjZhLFxuICA1MDA6ICM0Y2FmNTAsXG4gIDYwMDogIzQzYTA0NyxcbiAgNzAwOiAjMzg4ZTNjLFxuICA4MDA6ICMyZTdkMzIsXG4gIDkwMDogIzFiNWUyMCxcbiAgQTEwMDogI2I5ZjZjYSxcbiAgQTIwMDogIzY5ZjBhZSxcbiAgQTQwMDogIzAwZTY3NixcbiAgQTcwMDogIzAwYzg1MyxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtbGlnaHQtZ3JlZW46IChcbiAgNTA6ICNmMWY4ZTksXG4gIDEwMDogI2RjZWRjOCxcbiAgMjAwOiAjYzVlMWE1LFxuICAzMDA6ICNhZWQ1ODEsXG4gIDQwMDogIzljY2M2NSxcbiAgNTAwOiAjOGJjMzRhLFxuICA2MDA6ICM3Y2IzNDIsXG4gIDcwMDogIzY4OWYzOCxcbiAgODAwOiAjNTU4YjJmLFxuICA5MDA6ICMzMzY5MWUsXG4gIEExMDA6ICNjY2ZmOTAsXG4gIEEyMDA6ICNiMmZmNTksXG4gIEE0MDA6ICM3NmZmMDMsXG4gIEE3MDA6ICM2NGRkMTcsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtbGltZTogKFxuICA1MDogI2Y5ZmJlNyxcbiAgMTAwOiAjZjBmNGMzLFxuICAyMDA6ICNlNmVlOWMsXG4gIDMwMDogI2RjZTc3NSxcbiAgNDAwOiAjZDRlMTU3LFxuICA1MDA6ICNjZGRjMzksXG4gIDYwMDogI2MwY2EzMyxcbiAgNzAwOiAjYWZiNDJiLFxuICA4MDA6ICM5ZTlkMjQsXG4gIDkwMDogIzgyNzcxNyxcbiAgQTEwMDogI2Y0ZmY4MSxcbiAgQTIwMDogI2VlZmY0MSxcbiAgQTQwMDogI2M2ZmYwMCxcbiAgQTcwMDogI2FlZWEwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQteWVsbG93OiAoXG4gIDUwOiAjZmZmZGU3LFxuICAxMDA6ICNmZmY5YzQsXG4gIDIwMDogI2ZmZjU5ZCxcbiAgMzAwOiAjZmZmMTc2LFxuICA0MDA6ICNmZmVlNTgsXG4gIDUwMDogI2ZmZWIzYixcbiAgNjAwOiAjZmRkODM1LFxuICA3MDA6ICNmYmMwMmQsXG4gIDgwMDogI2Y5YTgyNSxcbiAgOTAwOiAjZjU3ZjE3LFxuICBBMTAwOiAjZmZmZjhkLFxuICBBMjAwOiAjZmZmZjAwLFxuICBBNDAwOiAjZmZlYTAwLFxuICBBNzAwOiAjZmZkNjAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWFtYmVyOiAoXG4gIDUwOiAjZmZmOGUxLFxuICAxMDA6ICNmZmVjYjMsXG4gIDIwMDogI2ZmZTA4MixcbiAgMzAwOiAjZmZkNTRmLFxuICA0MDA6ICNmZmNhMjgsXG4gIDUwMDogI2ZmYzEwNyxcbiAgNjAwOiAjZmZiMzAwLFxuICA3MDA6ICNmZmEwMDAsXG4gIDgwMDogI2ZmOGYwMCxcbiAgOTAwOiAjZmY2ZjAwLFxuICBBMTAwOiAjZmZlNTdmLFxuICBBMjAwOiAjZmZkNzQwLFxuICBBNDAwOiAjZmZjNDAwLFxuICBBNzAwOiAjZmZhYjAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LW9yYW5nZTogKFxuICA1MDogI2ZmZjNlMCxcbiAgMTAwOiAjZmZlMGIyLFxuICAyMDA6ICNmZmNjODAsXG4gIDMwMDogI2ZmYjc0ZCxcbiAgNDAwOiAjZmZhNzI2LFxuICA1MDA6ICNmZjk4MDAsXG4gIDYwMDogI2ZiOGMwMCxcbiAgNzAwOiAjZjU3YzAwLFxuICA4MDA6ICNlZjZjMDAsXG4gIDkwMDogI2U2NTEwMCxcbiAgQTEwMDogI2ZmZDE4MCxcbiAgQTIwMDogI2ZmYWI0MCxcbiAgQTQwMDogI2ZmOTEwMCxcbiAgQTcwMDogI2ZmNmQwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogYmxhY2ssXG4gIClcbik7XG5cbiRtYXQtZGVlcC1vcmFuZ2U6IChcbiAgNTA6ICNmYmU5ZTcsXG4gIDEwMDogI2ZmY2NiYyxcbiAgMjAwOiAjZmZhYjkxLFxuICAzMDA6ICNmZjhhNjUsXG4gIDQwMDogI2ZmNzA0MyxcbiAgNTAwOiAjZmY1NzIyLFxuICA2MDA6ICNmNDUxMWUsXG4gIDcwMDogI2U2NGExOSxcbiAgODAwOiAjZDg0MzE1LFxuICA5MDA6ICNiZjM2MGMsXG4gIEExMDA6ICNmZjllODAsXG4gIEEyMDA6ICNmZjZlNDAsXG4gIEE0MDA6ICNmZjNkMDAsXG4gIEE3MDA6ICNkZDJjMDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWJyb3duOiAoXG4gIDUwOiAjZWZlYmU5LFxuICAxMDA6ICNkN2NjYzgsXG4gIDIwMDogI2JjYWFhNCxcbiAgMzAwOiAjYTE4ODdmLFxuICA0MDA6ICM4ZDZlNjMsXG4gIDUwMDogIzc5NTU0OCxcbiAgNjAwOiAjNmQ0YzQxLFxuICA3MDA6ICM1ZDQwMzcsXG4gIDgwMDogIzRlMzQyZSxcbiAgOTAwOiAjM2UyNzIzLFxuICBBMTAwOiAjZDdjY2M4LFxuICBBMjAwOiAjYmNhYWE0LFxuICBBNDAwOiAjOGQ2ZTYzLFxuICBBNzAwOiAjNWQ0MDM3LFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWdyZXk6IChcbiAgNTA6ICNmYWZhZmEsXG4gIDEwMDogI2Y1ZjVmNSxcbiAgMjAwOiAjZWVlZWVlLFxuICAzMDA6ICNlMGUwZTAsXG4gIDQwMDogI2JkYmRiZCxcbiAgNTAwOiAjOWU5ZTllLFxuICA2MDA6ICM3NTc1NzUsXG4gIDcwMDogIzYxNjE2MSxcbiAgODAwOiAjNDI0MjQyLFxuICA5MDA6ICMyMTIxMjEsXG4gIEExMDA6ICNmZmZmZmYsXG4gIEEyMDA6ICNlZWVlZWUsXG4gIEE0MDA6ICNiZGJkYmQsXG4gIEE3MDA6ICM2MTYxNjEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuLy8gQWxpYXMgZm9yIGFsdGVybmF0ZSBzcGVsbGluZy5cbiRtYXQtZ3JheTogJG1hdC1ncmV5O1xuXG4kbWF0LWJsdWUtZ3JleTogKFxuICA1MDogI2VjZWZmMSxcbiAgMTAwOiAjY2ZkOGRjLFxuICAyMDA6ICNiMGJlYzUsXG4gIDMwMDogIzkwYTRhZSxcbiAgNDAwOiAjNzg5MDljLFxuICA1MDA6ICM2MDdkOGIsXG4gIDYwMDogIzU0NmU3YSxcbiAgNzAwOiAjNDU1YTY0LFxuICA4MDA6ICMzNzQ3NGYsXG4gIDkwMDogIzI2MzIzOCxcbiAgQTEwMDogI2NmZDhkYyxcbiAgQTIwMDogI2IwYmVjNSxcbiAgQTQwMDogIzc4OTA5YyxcbiAgQTcwMDogIzQ1NWE2NCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4vLyBBbGlhcyBmb3IgYWx0ZXJuYXRlIHNwZWxsaW5nLlxuJG1hdC1ibHVlLWdyYXk6ICRtYXQtYmx1ZS1ncmV5O1xuXG5cbi8vIEJhY2tncm91bmQgcGFsZXR0ZSBmb3IgbGlnaHQgdGhlbWVzLlxuJG1hdC1saWdodC10aGVtZS1iYWNrZ3JvdW5kOiAoXG4gIHN0YXR1cy1iYXI6IG1hcF9nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBhcHAtYmFyOiAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgMTAwKSxcbiAgYmFja2dyb3VuZDogbWFwX2dldCgkbWF0LWdyZXksIDUwKSxcbiAgaG92ZXI6ICAgICAgcmdiYShibGFjaywgMC4wNCksIC8vIFRPRE8oa2FyYSk6IGNoZWNrIHN0eWxlIHdpdGggTWF0ZXJpYWwgRGVzaWduIFVYXG4gIGNhcmQ6ICAgICAgIHdoaXRlLFxuICBkaWFsb2c6ICAgICB3aGl0ZSxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKGJsYWNrLCAwLjEyKSxcbiAgcmFpc2VkLWJ1dHRvbjogd2hpdGUsXG4gIGZvY3VzZWQtYnV0dG9uOiAkZGFyay1mb2N1c2VkLFxuICBzZWxlY3RlZC1idXR0b246IG1hcF9nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBzZWxlY3RlZC1kaXNhYmxlZC1idXR0b246IG1hcF9nZXQoJG1hdC1ncmV5LCA0MDApLFxuICBkaXNhYmxlZC1idXR0b24tdG9nZ2xlOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMjAwKSxcbiAgdW5zZWxlY3RlZC1jaGlwOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMzAwKSxcbiAgZGlzYWJsZWQtbGlzdC1vcHRpb246IG1hcF9nZXQoJG1hdC1ncmV5LCAyMDApLFxuKTtcblxuLy8gQmFja2dyb3VuZCBwYWxldHRlIGZvciBkYXJrIHRoZW1lcy5cbiRtYXQtZGFyay10aGVtZS1iYWNrZ3JvdW5kOiAoXG4gIHN0YXR1cy1iYXI6IGJsYWNrLFxuICBhcHAtYmFyOiAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgOTAwKSxcbiAgYmFja2dyb3VuZDogIzMwMzAzMCxcbiAgaG92ZXI6ICAgICAgcmdiYSh3aGl0ZSwgMC4wNCksIC8vIFRPRE8oa2FyYSk6IGNoZWNrIHN0eWxlIHdpdGggTWF0ZXJpYWwgRGVzaWduIFVYXG4gIGNhcmQ6ICAgICAgIG1hcF9nZXQoJG1hdC1ncmV5LCA4MDApLFxuICBkaWFsb2c6ICAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKHdoaXRlLCAwLjEyKSxcbiAgcmFpc2VkLWJ1dHRvbjogbWFwLWdldCgkbWF0LWdyZXksIDgwMCksXG4gIGZvY3VzZWQtYnV0dG9uOiAkbGlnaHQtZm9jdXNlZCxcbiAgc2VsZWN0ZWQtYnV0dG9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgOTAwKSxcbiAgc2VsZWN0ZWQtZGlzYWJsZWQtYnV0dG9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uLXRvZ2dsZTogYmxhY2ssXG4gIHVuc2VsZWN0ZWQtY2hpcDogbWFwX2dldCgkbWF0LWdyZXksIDcwMCksXG4gIGRpc2FibGVkLWxpc3Qtb3B0aW9uOiBibGFjayxcbik7XG5cbi8vIEZvcmVncm91bmQgcGFsZXR0ZSBmb3IgbGlnaHQgdGhlbWVzLlxuJG1hdC1saWdodC10aGVtZS1mb3JlZ3JvdW5kOiAoXG4gIGJhc2U6ICAgICAgICAgICAgICBibGFjayxcbiAgZGl2aWRlcjogICAgICAgICAgICRkYXJrLWRpdmlkZXJzLFxuICBkaXZpZGVyczogICAgICAgICAgJGRhcmstZGl2aWRlcnMsXG4gIGRpc2FibGVkOiAgICAgICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBkaXNhYmxlZC1idXR0b246ICAgcmdiYShibGFjaywgMC4yNiksXG4gIGRpc2FibGVkLXRleHQ6ICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBlbGV2YXRpb246ICAgICAgICAgYmxhY2ssXG4gIGhpbnQtdGV4dDogICAgICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBzZWNvbmRhcnktdGV4dDogICAgJGRhcmstc2Vjb25kYXJ5LXRleHQsXG4gIGljb246ICAgICAgICAgICAgICByZ2JhKGJsYWNrLCAwLjU0KSxcbiAgaWNvbnM6ICAgICAgICAgICAgIHJnYmEoYmxhY2ssIDAuNTQpLFxuICB0ZXh0OiAgICAgICAgICAgICAgcmdiYShibGFjaywgMC44NyksXG4gIHNsaWRlci1taW46ICAgICAgICByZ2JhKGJsYWNrLCAwLjg3KSxcbiAgc2xpZGVyLW9mZjogICAgICAgIHJnYmEoYmxhY2ssIDAuMjYpLFxuICBzbGlkZXItb2ZmLWFjdGl2ZTogcmdiYShibGFjaywgMC4zOCksXG4pO1xuXG4vLyBGb3JlZ3JvdW5kIHBhbGV0dGUgZm9yIGRhcmsgdGhlbWVzLlxuJG1hdC1kYXJrLXRoZW1lLWZvcmVncm91bmQ6IChcbiAgYmFzZTogICAgICAgICAgICAgIHdoaXRlLFxuICBkaXZpZGVyOiAgICAgICAgICAgJGxpZ2h0LWRpdmlkZXJzLFxuICBkaXZpZGVyczogICAgICAgICAgJGxpZ2h0LWRpdmlkZXJzLFxuICBkaXNhYmxlZDogICAgICAgICAgJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIGRpc2FibGVkLWJ1dHRvbjogICByZ2JhKHdoaXRlLCAwLjMpLFxuICBkaXNhYmxlZC10ZXh0OiAgICAgJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIGVsZXZhdGlvbjogICAgICAgICBibGFjayxcbiAgaGludC10ZXh0OiAgICAgICAgICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBzZWNvbmRhcnktdGV4dDogICAgJGxpZ2h0LXNlY29uZGFyeS10ZXh0LFxuICBpY29uOiAgICAgICAgICAgICAgd2hpdGUsXG4gIGljb25zOiAgICAgICAgICAgICB3aGl0ZSxcbiAgdGV4dDogICAgICAgICAgICAgIHdoaXRlLFxuICBzbGlkZXItbWluOiAgICAgICAgd2hpdGUsXG4gIHNsaWRlci1vZmY6ICAgICAgICByZ2JhKHdoaXRlLCAwLjMpLFxuICBzbGlkZXItb2ZmLWFjdGl2ZTogcmdiYSh3aGl0ZSwgMC4zKSxcbik7XG5cblxuXG4vLyBGb3IgYSBnaXZlbiBodWUgaW4gYSBwYWxldHRlLCByZXR1cm4gdGhlIGNvbnRyYXN0IGNvbG9yIGZyb20gdGhlIG1hcCBvZiBjb250cmFzdCBwYWxldHRlcy5cbi8vIEBwYXJhbSAkY29sb3ItbWFwXG4vLyBAcGFyYW0gJGh1ZVxuQGZ1bmN0aW9uIG1hdC1jb250cmFzdCgkcGFsZXR0ZSwgJGh1ZSkge1xuICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkcGFsZXR0ZSwgY29udHJhc3QpLCAkaHVlKTtcbn1cblxuXG4vLyBDcmVhdGVzIGEgbWFwIG9mIGh1ZXMgdG8gY29sb3JzIGZvciBhIHRoZW1lLiBUaGlzIGlzIHVzZWQgdG8gZGVmaW5lIGEgdGhlbWUgcGFsZXR0ZSBpbiB0ZXJtc1xuLy8gb2YgdGhlIE1hdGVyaWFsIERlc2lnbiBodWVzLlxuLy8gQHBhcmFtICRjb2xvci1tYXBcbi8vIEBwYXJhbSAkcHJpbWFyeVxuLy8gQHBhcmFtICRsaWdodGVyXG5AZnVuY3Rpb24gbWF0LXBhbGV0dGUoJGJhc2UtcGFsZXR0ZSwgJGRlZmF1bHQ6IDUwMCwgJGxpZ2h0ZXI6IDEwMCwgJGRhcmtlcjogNzAwLCAkdGV4dDogJGRlZmF1bHQpIHtcbiAgJHJlc3VsdDogbWFwX21lcmdlKCRiYXNlLXBhbGV0dGUsIChcbiAgICBkZWZhdWx0OiBtYXAtZ2V0KCRiYXNlLXBhbGV0dGUsICRkZWZhdWx0KSxcbiAgICBsaWdodGVyOiBtYXAtZ2V0KCRiYXNlLXBhbGV0dGUsICRsaWdodGVyKSxcbiAgICBkYXJrZXI6IG1hcC1nZXQoJGJhc2UtcGFsZXR0ZSwgJGRhcmtlciksXG4gICAgdGV4dDogbWFwLWdldCgkYmFzZS1wYWxldHRlLCAkdGV4dCksXG5cbiAgICBkZWZhdWx0LWNvbnRyYXN0OiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGRlZmF1bHQpLFxuICAgIGxpZ2h0ZXItY29udHJhc3Q6IG1hdC1jb250cmFzdCgkYmFzZS1wYWxldHRlLCAkbGlnaHRlciksXG4gICAgZGFya2VyLWNvbnRyYXN0OiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGRhcmtlcilcbiAgKSk7XG5cbiAgLy8gRm9yIGVhY2ggaHVlIGluIHRoZSBwYWxldHRlLCBhZGQgYSBcIi1jb250cmFzdFwiIGNvbG9yIHRvIHRoZSBtYXAuXG4gIEBlYWNoICRodWUsICRjb2xvciBpbiAkYmFzZS1wYWxldHRlIHtcbiAgICAkcmVzdWx0OiBtYXBfbWVyZ2UoJHJlc3VsdCwgKFxuICAgICAgJyN7JGh1ZX0tY29udHJhc3QnOiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGh1ZSlcbiAgICApKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuXG4vLyBHZXRzIGEgY29sb3IgZnJvbSBhIHRoZW1lIHBhbGV0dGUgKHRoZSBvdXRwdXQgb2YgbWF0LXBhbGV0dGUpLlxuLy8gVGhlIGh1ZSBjYW4gYmUgb25lIG9mIHRoZSBzdGFuZGFyZCB2YWx1ZXMgKDUwMCwgQTQwMCwgZXRjLiksIG9uZSBvZiB0aGUgdGhyZWUgcHJlY29uZmlndXJlZFxuLy8gaHVlcyAoZGVmYXVsdCwgbGlnaHRlciwgZGFya2VyKSwgb3IgYW55IG9mIHRoZSBhZm9yZW1lbnRpb25lZCBwcmVmaXhlZCB3aXRoIFwiLWNvbnRyYXN0XCIuXG4vL1xuLy8gQHBhcmFtICRjb2xvci1tYXAgVGhlIHRoZW1lIHBhbGV0dGUgKG91dHB1dCBvZiBtYXQtcGFsZXR0ZSkuXG4vLyBAcGFyYW0gJGh1ZSBUaGUgaHVlIGZyb20gdGhlIHBhbGV0dGUgdG8gdXNlLiBJZiB0aGlzIGlzIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxLCBpdCB3aWxsXG4vLyAgICAgYmUgdHJlYXRlZCBhcyBvcGFjaXR5LlxuLy8gQHBhcmFtICRvcGFjaXR5IFRoZSBhbHBoYSBjaGFubmVsIHZhbHVlIGZvciB0aGUgY29sb3IuXG5AZnVuY3Rpb24gbWF0LWNvbG9yKCRwYWxldHRlLCAkaHVlOiBkZWZhdWx0LCAkb3BhY2l0eTogbnVsbCkge1xuICAvLyBJZiBodWVLZXkgaXMgYSBudW1iZXIgYmV0d2VlbiB6ZXJvIGFuZCBvbmUsIHRoZW4gaXQgYWN0dWFsbHkgY29udGFpbnMgYW5cbiAgLy8gb3BhY2l0eSB2YWx1ZSwgc28gcmVjYWxsIHRoaXMgZnVuY3Rpb24gd2l0aCB0aGUgZGVmYXVsdCBodWUgYW5kIHRoYXQgZ2l2ZW4gb3BhY2l0eS5cbiAgQGlmIHR5cGUtb2YoJGh1ZSkgPT0gbnVtYmVyIGFuZCAkaHVlID49IDAgYW5kICRodWUgPD0gMSB7XG4gICAgQHJldHVybiBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQsICRodWUpO1xuICB9XG5cbiAgJGNvbG9yOiBtYXAtZ2V0KCRwYWxldHRlLCAkaHVlKTtcblxuICBAaWYgKHR5cGUtb2YoJGNvbG9yKSAhPSBjb2xvcikge1xuICAgIC8vIElmIHRoZSAkY29sb3IgcmVzb2x2ZWQgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIGEgY29sb3IgKGUuZy4gYSBDU1MgdmFyaWFibGUpLFxuICAgIC8vIHdlIGNhbid0IGFwcGx5IHRoZSBvcGFjaXR5IGFueXdheSBzbyB3ZSByZXR1cm4gdGhlIHZhbHVlIGFzIGlzLCBvdGhlcndpc2UgU2FzcyBjYW5cbiAgICAvLyB0aHJvdyBhbiBlcnJvciBvciBvdXRwdXQgc29tZXRoaW5nIGludmFsaWQuXG4gICAgQHJldHVybiAkY29sb3I7XG4gIH1cblxuICBAcmV0dXJuIHJnYmEoJGNvbG9yLCBpZigkb3BhY2l0eSA9PSBudWxsLCBvcGFjaXR5KCRjb2xvciksICRvcGFjaXR5KSk7XG59XG5cblxuLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBvYmplY3QgZm9yIGEgbGlnaHQgdGhlbWUgdG8gYmUgZ2l2ZW4gdG8gaW5kaXZpZHVhbCBjb21wb25lbnQgdGhlbWUgbWl4aW5zLlxuQGZ1bmN0aW9uIG1hdC1saWdodC10aGVtZSgkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm46IG1hdC1wYWxldHRlKCRtYXQtcmVkKSkge1xuICBAcmV0dXJuIChcbiAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICBhY2NlbnQ6ICRhY2NlbnQsXG4gICAgd2FybjogJHdhcm4sXG4gICAgaXMtZGFyazogZmFsc2UsXG4gICAgZm9yZWdyb3VuZDogJG1hdC1saWdodC10aGVtZS1mb3JlZ3JvdW5kLFxuICAgIGJhY2tncm91bmQ6ICRtYXQtbGlnaHQtdGhlbWUtYmFja2dyb3VuZCxcbiAgKTtcbn1cblxuXG4vLyBDcmVhdGVzIGEgY29udGFpbmVyIG9iamVjdCBmb3IgYSBkYXJrIHRoZW1lIHRvIGJlIGdpdmVuIHRvIGluZGl2aWR1YWwgY29tcG9uZW50IHRoZW1lIG1peGlucy5cbkBmdW5jdGlvbiBtYXQtZGFyay10aGVtZSgkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm46IG1hdC1wYWxldHRlKCRtYXQtcmVkKSkge1xuICBAcmV0dXJuIChcbiAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICBhY2NlbnQ6ICRhY2NlbnQsXG4gICAgd2FybjogJHdhcm4sXG4gICAgaXMtZGFyazogdHJ1ZSxcbiAgICBmb3JlZ3JvdW5kOiAkbWF0LWRhcmstdGhlbWUtZm9yZWdyb3VuZCxcbiAgICBiYWNrZ3JvdW5kOiAkbWF0LWRhcmstdGhlbWUtYmFja2dyb3VuZCxcbiAgKTtcbn1cblxuXG5cbiRtYXQtcmlwcGxlLWNvbG9yLW9wYWNpdHk6IDAuMTtcblxuQG1peGluIG1hdC1yaXBwbGUoKSB7XG5cbiAgLy8gVGhlIGhvc3QgZWxlbWVudCBvZiBhbiBtYXQtcmlwcGxlIGRpcmVjdGl2ZSBzaG91bGQgYWx3YXlzIGhhdmUgYSBwb3NpdGlvbiBvZiBcImFic29sdXRlXCIgb3JcbiAgLy8gXCJyZWxhdGl2ZVwiIHNvIHRoYXQgdGhlIHJpcHBsZXMgaW5zaWRlIGFyZSBjb3JyZWN0bHkgcG9zaXRpb25lZCByZWxhdGl2ZWx5IHRvIHRoZSBjb250YWluZXIuXG4gIC5tYXQtcmlwcGxlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLy8gQnkgZGVmYXVsdCwgZXZlcnkgcmlwcGxlIGNvbnRhaW5lciBzaG91bGQgaGF2ZSBwb3NpdGlvbjogcmVsYXRpdmUgaW4gZmF2b3Igb2YgY3JlYXRpbmcgYW5cbiAgICAvLyBlYXN5IEFQSSBmb3IgZGV2ZWxvcGVycyB1c2luZyB0aGUgTWF0UmlwcGxlIGRpcmVjdGl2ZS5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZCB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cblxuICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSwgdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuXG4gICAgLy8gSW4gaGlnaCBjb250cmFzdCBtb2RlIHRoZSByaXBwbGUgaXMgb3BhcXVlLCBjYXVzaW5nIGl0IHRvIG9ic3RydWN0IHRoZSBjb250ZW50LlxuICAgIEBpbmNsdWRlIGNkay1oaWdoLWNvbnRyYXN0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8qIFRoZW1lIGZvciB0aGUgcmlwcGxlIGVsZW1lbnRzLiovXG5AbWl4aW4gbWF0LXJpcHBsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcF9nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQtYmFzZTogbWFwX2dldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgLy8gSWYgdGhlIHJpcHBsZSBjb2xvciBpcyByZXNvbHZlcyB0byBhIGNvbG9yICp0eXBlKiwgd2UgY2FuIHVzZSBpdCBkaXJlY3RseSwgb3RoZXJ3aXNlXG4gICAgLy8gKGUuZy4gaXQgcmVzb2x2ZXMgdG8gYSBDU1MgdmFyaWFibGUpIHdlIGZhbGwgYmFjayB0byB1c2luZyB0aGUgY29sb3IgYW5kIHNldHRpbmcgYW4gb3BhY2l0eS5cbiAgICBAaWYgKHR5cGUtb2YoJGZvcmVncm91bmQtYmFzZSkgPT0gY29sb3IpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGZvcmVncm91bmQtYmFzZSwgJG1hdC1yaXBwbGUtY29sb3Itb3BhY2l0eSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmb3JlZ3JvdW5kLWJhc2U7XG4gICAgICBvcGFjaXR5OiAkbWF0LXJpcHBsZS1jb2xvci1vcGFjaXR5O1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gVXRpbGl0eSBmb3IgZmV0Y2hpbmcgYSBuZXN0ZWQgdmFsdWUgZnJvbSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCAkbmFtZSkge1xuICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkY29uZmlnLCAkbGV2ZWwpLCAkbmFtZSk7XG59XG5cbi8vIEdldHMgdGhlIGZvbnQgc2l6ZSBmb3IgYSBsZXZlbCBpbnNpZGUgYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBtYXQtZm9udC1zaXplKCRjb25maWcsICRsZXZlbCkge1xuICBAcmV0dXJuIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBmb250LXNpemUpO1xufVxuXG4vLyBHZXRzIHRoZSBsaW5lIGhlaWdodCBmb3IgYSBsZXZlbCBpbnNpZGUgYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgJGxldmVsKSB7XG4gIEByZXR1cm4gX21hdC1nZXQtdHlwZS12YWx1ZSgkY29uZmlnLCAkbGV2ZWwsIGxpbmUtaGVpZ2h0KTtcbn1cblxuLy8gR2V0cyB0aGUgZm9udCB3ZWlnaHQgZm9yIGEgbGV2ZWwgaW5zaWRlIGEgdHlwb2dyYXBoeSBjb25maWcuXG5AZnVuY3Rpb24gbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsICRsZXZlbCkge1xuICBAcmV0dXJuIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBmb250LXdlaWdodCk7XG59XG5cbi8vIEdldHMgdGhlIGxldHRlciBzcGFjaW5nIGZvciBhIGxldmVsIGluc2lkZSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIG1hdC1sZXR0ZXItc3BhY2luZygkY29uZmlnLCAkbGV2ZWwpIHtcbiAgQHJldHVybiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgbGV0dGVyLXNwYWNpbmcpO1xufVxuXG4vLyBHZXRzIHRoZSBmb250LWZhbWlseSBmcm9tIGEgdHlwb2dyYXBoeSBjb25maWcgYW5kIHJlbW92ZXMgdGhlIHF1b3RlcyBhcm91bmQgaXQuXG5AZnVuY3Rpb24gbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsICRsZXZlbDogbnVsbCkge1xuICAkZm9udC1mYW1pbHk6IG1hcC1nZXQoJGNvbmZpZywgZm9udC1mYW1pbHkpO1xuXG4gIEBpZiAkbGV2ZWwgIT0gbnVsbCB7XG4gICAgJGZvbnQtZmFtaWx5OiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgZm9udC1mYW1pbHkpO1xuICB9XG5cbiAgLy8gR3VhcmQgYWdhaW5zdCB1bnF1b3Rpbmcgbm9uLXN0cmluZyB2YWx1ZXMsIGJlY2F1c2UgaXQncyBkZXByZWNhdGVkLlxuICBAcmV0dXJuIGlmKHR5cGUtb2YoJGZvbnQtZmFtaWx5KSA9PSBzdHJpbmcsIHVucXVvdGUoJGZvbnQtZmFtaWx5KSwgJGZvbnQtZmFtaWx5KTtcbn1cblxuLy8gT3V0cHV0cyB0aGUgc2hvcnRoYW5kIGBmb250YCBDU1MgcHJvcGVydHksIGJhc2VkIG9uIGEgc2V0IG9mIHR5cG9ncmFwaHkgdmFsdWVzLiBGYWxscyBiYWNrIHRvXG4vLyB0aGUgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIGlmIGEgdmFsdWUgdGhhdCBpc24ndCBhbGxvd2VkIGluIHRoZSBzaG9ydGhhbmQgaXMgcGFzc2VkIGluLlxuQG1peGluIG1hdC10eXBvZ3JhcGh5LWZvbnQtc2hvcnRoYW5kKCRmb250LXNpemUsICRmb250LXdlaWdodCwgJGxpbmUtaGVpZ2h0LCAkZm9udC1mYW1pbHkpIHtcbiAgLy8gSWYgYW55IG9mIHRoZSB2YWx1ZXMgYXJlIHNldCB0byBgaW5oZXJpdGAsIHdlIGNhbid0IHVzZSB0aGUgc2hvcnRoYW5kXG4gIC8vIHNvIHdlIGZhbGwgYmFjayB0byBwYXNzaW5nIGluIHRoZSBpbmRpdmlkdWFsIHByb3BlcnRpZXMuXG4gIEBpZiAoJGZvbnQtc2l6ZSA9PSBpbmhlcml0IG9yXG4gICAgICAgJGZvbnQtd2VpZ2h0ID09IGluaGVyaXQgb3JcbiAgICAgICAkbGluZS1oZWlnaHQgPT0gaW5oZXJpdCBvclxuICAgICAgICRmb250LWZhbWlseSA9PSBpbmhlcml0IG9yXG4gICAgICAgJGZvbnQtc2l6ZSA9PSBudWxsIG9yXG4gICAgICAgJGZvbnQtd2VpZ2h0ID09IG51bGwgb3JcbiAgICAgICAkbGluZS1oZWlnaHQgPT0gbnVsbCBvclxuICAgICAgICRmb250LWZhbWlseSA9PSBudWxsKSB7XG5cbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIE90aGVyd2lzZSB1c2UgdGhlIHNob3J0aGFuZCBgZm9udGAsIGJlY2F1c2UgaXQncyB0aGUgbGVhc3QgYW1vdW50IG9mIGJ5dGVzLiBOb3RlXG4gICAgLy8gdGhhdCB3ZSBuZWVkIHRvIHVzZSBpbnRlcnBvbGF0aW9uIGZvciBgZm9udC1zaXplL2xpbmUtaGVpZ2h0YCBpbiBvcmRlciB0byBwcmV2ZW50XG4gICAgLy8gU2FzcyBmcm9tIGRpdmlkaW5nIHRoZSB0d28gdmFsdWVzLlxuICAgIGZvbnQ6ICRmb250LXdlaWdodCAjeyRmb250LXNpemV9LyN7JGxpbmUtaGVpZ2h0fSAkZm9udC1mYW1pbHk7XG4gIH1cbn1cblxuLy8gQ29udmVydHMgYSB0eXBvZ3JhcGh5IGxldmVsIGludG8gQ1NTIHN0eWxlcy5cbkBtaXhpbiBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgJGxldmVsKSB7XG4gICRmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgJGxldmVsKTtcbiAgJGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgJGxldmVsKTtcbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgJGxldmVsKTtcbiAgJGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgJGxldmVsKTtcblxuICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZCgkZm9udC1zaXplLCAkZm9udC13ZWlnaHQsICRsaW5lLWhlaWdodCwgJGZvbnQtZmFtaWx5KTtcbiAgbGV0dGVyLXNwYWNpbmc6IG1hdC1sZXR0ZXItc3BhY2luZygkY29uZmlnLCAkbGV2ZWwpO1xufVxuXG5cbkBtaXhpbiBtYXQtb3B0aW9uLXRoZW1lKCR0aGVtZSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcblxuICAubWF0LW9wdGlvbiB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAmOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksXG4gICAgJjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgIH1cblxuICAgIC8vIEluIG11bHRpcGxlIG1vZGUgdGhlcmUgaXMgYSBjaGVja2JveCB0byBzaG93IHRoYXQgdGhlIG9wdGlvbiBpcyBzZWxlY3RlZC5cbiAgICAmLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgfVxuXG4gICAgJi5tYXQtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtb3B0aW9uLWRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1wcmltYXJ5IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LW9wdGlvbi10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1vcHRpb24ge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBzdWJoZWFkaW5nLTIpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtb3B0Z3JvdXAtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1vcHRncm91cC1kaXNhYmxlZCAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtb3B0Z3JvdXAtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTIpO1xuICB9XG59XG5cblxuXG5AbWl4aW4gbWF0LXBzZXVkby1jaGVja2JveC10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG5cbiAgLy8gTk9URSh0cmF2aXNrYXVmbWFuKTogV2hpbGUgdGhlIHNwZWMgY2FsbHMgZm9yIHRyYW5zbHVjZW50IGJsYWNrcy93aGl0ZXMgZm9yIGRpc2FibGVkIGNvbG9ycyxcbiAgLy8gdGhpcyBkb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBlbGVtZW50cyBsYXllcmVkIG9uIHRvcCBvZiBvbmUgYW5vdGhlci4gVG8gZ2V0IGFyb3VuZCB0aGlzIHdlXG4gIC8vIGJsZW5kIHRoZSBjb2xvcnMgdG9nZXRoZXIgYmFzZWQgb24gdGhlIGJhc2UgY29sb3IgYW5kIHRoZSB0aGVtZSBiYWNrZ3JvdW5kLlxuICAkd2hpdGUtMzBwY3Qtb3BhY2l0eS1vbi1kYXJrOiAjNjg2ODY4O1xuICAkYmxhY2stMjZwY3Qtb3BhY2l0eS1vbi1saWdodDogI2IwYjBiMDtcbiAgJGRpc2FibGVkLWNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJHdoaXRlLTMwcGN0LW9wYWNpdHktb24tZGFyaywgJGJsYWNrLTI2cGN0LW9wYWNpdHktb24tbGlnaHQpO1xuICAkY29sb3JlZC1ib3gtc2VsZWN0b3I6ICcubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlJztcblxuICAubWF0LXBzZXVkby1jaGVja2JveCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCksIHNlY29uZGFyeS10ZXh0KTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICBjb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IobWFwLWdldCgkdGhlbWUsIHByaW1hcnkpKTtcbiAgfVxuXG4gIC8vIERlZmF1bHQgdG8gdGhlIGFjY2VudCBjb2xvci4gTm90ZSB0aGF0IHRoZSBwc2V1ZG8gY2hlY2tib3hlcyBhcmUgbWVhbnQgdG8gaW5oZXJpdCB0aGVcbiAgLy8gdGhlbWUgZnJvbSB0aGVpciBwYXJlbnQsIHJhdGhlciB0aGFuIGltcGxlbWVudGluZyB0aGVpciBvd24gdGhlbWluZywgd2hpY2ggaXMgd2h5IHdlXG4gIC8vIGRvbid0IGF0dGFjaCB0byB0aGUgYG1hdC0qYCBjbGFzc2VzLiBBbHNvIG5vdGUgdGhhdCB0aGlzIG5lZWRzIHRvIGJlIGJlbG93IGAubWF0LXByaW1hcnlgXG4gIC8vIGluIG9yZGVyIHRvIGFsbG93IGZvciB0aGUgY29sb3IgdG8gYmUgb3ZlcndyaXR0ZW4gaWYgdGhlIGNoZWNrYm94IGlzIGluc2lkZSBhIHBhcmVudCB0aGF0XG4gIC8vIGhhcyBgbWF0LWFjY2VudGAgYW5kIGlzIHBsYWNlZCBpbnNpZGUgYW5vdGhlciBwYXJlbnQgdGhhdCBoYXMgYG1hdC1wcmltYXJ5YC5cbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSxcbiAgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbiAgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpKTtcbiAgfVxuXG4gIC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKG1hcC1nZXQoJHRoZW1lLCB3YXJuKSk7XG4gIH1cblxuICAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICAmLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICAgICAgYmFja2dyb3VuZDogJGRpc2FibGVkLWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gUmVwcmVzZW50cyBhIHR5cG9ncmFwaHkgbGV2ZWwgZnJvbSB0aGUgTWF0ZXJpYWwgZGVzaWduIHNwZWMuXG5AZnVuY3Rpb24gbWF0LXR5cG9ncmFwaHktbGV2ZWwoXG4gICRmb250LXNpemUsXG4gICRsaW5lLWhlaWdodDogJGZvbnQtc2l6ZSxcbiAgJGZvbnQtd2VpZ2h0OiA0MDAsXG4gICRmb250LWZhbWlseTogbnVsbCxcbiAgJGxldHRlci1zcGFjaW5nOiBudWxsKSB7XG5cbiAgQHJldHVybiAoXG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLFxuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQsXG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodCxcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LFxuICAgIGxldHRlci1zcGFjaW5nOiAkbGV0dGVyLXNwYWNpbmdcbiAgKTtcbn1cblxuLy8gUmVwcmVzZW50cyBhIGNvbGxlY3Rpb24gb2YgdHlwb2dyYXBoeSBsZXZlbHMuXG4vLyBEZWZhdWx0cyBjb21lIGZyb20gaHR0cHM6Ly9tYXRlcmlhbC5pby9ndWlkZWxpbmVzL3N0eWxlL3R5cG9ncmFwaHkuaHRtbFxuLy8gTm90ZTogVGhlIHNwZWMgZG9lc24ndCBtZW50aW9uIGxldHRlciBzcGFjaW5nLiBUaGUgdmFsdWVzIGhlcmUgY29tZSBmcm9tXG4vLyBleWViYWxsaW5nIGl0IHVudGlsIGl0IGxvb2tlZCBleGFjdGx5IGxpa2UgdGhlIHNwZWMgZXhhbXBsZXMuXG5AZnVuY3Rpb24gbWF0LXR5cG9ncmFwaHktY29uZmlnKFxuICAkZm9udC1mYW1pbHk6ICAgJ1JvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmJyxcbiAgJGRpc3BsYXktNDogICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDExMnB4LCAxMTJweCwgMzAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjA1ZW0pLFxuICAkZGlzcGxheS0zOiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoNTZweCwgNTZweCwgNDAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW0pLFxuICAkZGlzcGxheS0yOiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoNDVweCwgNDhweCwgNDAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjAwNWVtKSxcbiAgJGRpc3BsYXktMTogICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDM0cHgsIDQwcHgsIDQwMCksXG4gICRoZWFkbGluZTogICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgyNHB4LCAzMnB4LCA0MDApLFxuICAkdGl0bGU6ICAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMjBweCwgMzJweCwgNTAwKSxcbiAgJHN1YmhlYWRpbmctMjogIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE2cHgsIDI4cHgsIDQwMCksXG4gICRzdWJoZWFkaW5nLTE6ICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNXB4LCAyNHB4LCA0MDApLFxuICAkYm9keS0yOiAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTRweCwgMjRweCwgNTAwKSxcbiAgJGJvZHktMTogICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE0cHgsIDIwcHgsIDQwMCksXG4gICRjYXB0aW9uOiAgICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxMnB4LCAyMHB4LCA0MDApLFxuICAkYnV0dG9uOiAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTRweCwgMTRweCwgNTAwKSxcbiAgLy8gTGluZS1oZWlnaHQgbXVzdCBiZSB1bml0LWxlc3MgZnJhY3Rpb24gb2YgdGhlIGZvbnQtc2l6ZS5cbiAgJGlucHV0OiAgICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKGluaGVyaXQsIDEuMTI1LCA0MDApXG4pIHtcblxuICAvLyBEZWNsYXJlIGFuIGluaXRpYWwgbWFwIHdpdGggYWxsIG9mIHRoZSBsZXZlbHMuXG4gICRjb25maWc6IChcbiAgICBkaXNwbGF5LTQ6ICAgICAgJGRpc3BsYXktNCxcbiAgICBkaXNwbGF5LTM6ICAgICAgJGRpc3BsYXktMyxcbiAgICBkaXNwbGF5LTI6ICAgICAgJGRpc3BsYXktMixcbiAgICBkaXNwbGF5LTE6ICAgICAgJGRpc3BsYXktMSxcbiAgICBoZWFkbGluZTogICAgICAgJGhlYWRsaW5lLFxuICAgIHRpdGxlOiAgICAgICAgICAkdGl0bGUsXG4gICAgc3ViaGVhZGluZy0yOiAgICRzdWJoZWFkaW5nLTIsXG4gICAgc3ViaGVhZGluZy0xOiAgICRzdWJoZWFkaW5nLTEsXG4gICAgYm9keS0yOiAgICAgICAgICRib2R5LTIsXG4gICAgYm9keS0xOiAgICAgICAgICRib2R5LTEsXG4gICAgY2FwdGlvbjogICAgICAgICRjYXB0aW9uLFxuICAgIGJ1dHRvbjogICAgICAgICAkYnV0dG9uLFxuICAgIGlucHV0OiAgICAgICAgICAkaW5wdXQsXG4gICk7XG5cbiAgLy8gTG9vcCB0aHJvdWdoIHRoZSBsZXZlbHMgYW5kIHNldCB0aGUgYGZvbnQtZmFtaWx5YCBvZiB0aGUgb25lcyB0aGF0IGRvbid0IGhhdmUgb25lIHRvIHRoZSBiYXNlLlxuICAvLyBOb3RlIHRoYXQgU2FzcyBjYW4ndCBtb2RpZnkgbWFwcyBpbiBwbGFjZSwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBuZWVkIHRvIG1lcmdlIGFuZCByZS1hc3NpZ24uXG4gIEBlYWNoICRrZXksICRsZXZlbCBpbiAkY29uZmlnIHtcbiAgICBAaWYgbWFwLWdldCgkbGV2ZWwsIGZvbnQtZmFtaWx5KSA9PSBudWxsIHtcbiAgICAgICRuZXctbGV2ZWw6IG1hcC1tZXJnZSgkbGV2ZWwsIChmb250LWZhbWlseTogJGZvbnQtZmFtaWx5KSk7XG4gICAgICAkY29uZmlnOiBtYXAtbWVyZ2UoJGNvbmZpZywgKCRrZXk6ICRuZXctbGV2ZWwpKTtcbiAgICB9XG4gIH1cblxuICAvLyBBZGQgdGhlIGJhc2UgZm9udCBmYW1pbHkgdG8gdGhlIGNvbmZpZy5cbiAgQHJldHVybiBtYXAtbWVyZ2UoJGNvbmZpZywgKGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHkpKTtcbn1cblxuLy8gQWRkcyB0aGUgYmFzZSB0eXBvZ3JhcGh5IHN0eWxlcywgYmFzZWQgb24gYSBjb25maWcuXG5AbWl4aW4gbWF0LWJhc2UtdHlwb2dyYXBoeSgkY29uZmlnLCAkc2VsZWN0b3I6ICcubWF0LXR5cG9ncmFwaHknKSB7XG4gIC5tYXQtaDEsIC5tYXQtaGVhZGxpbmUsICN7JHNlbGVjdG9yfSBoMSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGhlYWRsaW5lKTtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICB9XG5cbiAgLm1hdC1oMiwgLm1hdC10aXRsZSwgI3skc2VsZWN0b3J9IGgyIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgdGl0bGUpO1xuICAgIG1hcmdpbjogMCAwIDE2cHg7XG4gIH1cblxuICAubWF0LWgzLCAubWF0LXN1YmhlYWRpbmctMiwgI3skc2VsZWN0b3J9IGgzIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgc3ViaGVhZGluZy0yKTtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICB9XG5cbiAgLm1hdC1oNCwgLm1hdC1zdWJoZWFkaW5nLTEsICN7JHNlbGVjdG9yfSBoNCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgbWFyZ2luOiAwIDAgMTZweDtcbiAgfVxuXG4gIC8vIE5vdGU6IHRoZSBzcGVjIGRvZXNuJ3QgaGF2ZSBhbnl0aGluZyB0aGF0IHdvdWxkIGNvcnJlc3BvbmQgdG8gaDUgYW5kIGg2LCBidXQgd2UgYWRkIHRoZXNlIGZvclxuICAvLyBjb25zaXN0ZW5jeS4gVGhlIGZvbnQgc2l6ZXMgY29tZSBmcm9tIHRoZSBDaHJvbWUgdXNlciBhZ2VudCBzdHlsZXMgd2hpY2ggaGF2ZSBoNSBhdCAwLjgzZW1cbiAgLy8gYW5kIGg2IGF0IDAuNjdlbS5cbiAgLm1hdC1oNSwgI3skc2VsZWN0b3J9IGg1IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZChcbiAgICAgICAvLyBjYWxjIGlzIHVzZWQgaGVyZSB0byBzdXBwb3J0IGNzcyB2YXJpYWJsZXNcbiAgICAgIGNhbGMoI3ttYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSl9ICogMC44MyksXG4gICAgICBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgIG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBib2R5LTEpLFxuICAgICAgbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMSlcbiAgICApO1xuXG4gICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgfVxuXG4gIC5tYXQtaDYsICN7JHNlbGVjdG9yfSBoNiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktZm9udC1zaG9ydGhhbmQoXG4gICAgICAgLy8gY2FsYyBpcyB1c2VkIGhlcmUgdG8gc3VwcG9ydCBjc3MgdmFyaWFibGVzXG4gICAgICBjYWxjKCN7bWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpfSAqIDAuNjcpLFxuICAgICAgbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSksXG4gICAgICBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgIG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBib2R5LTEpXG4gICAgKTtcblxuICAgIG1hcmdpbjogMCAwIDEycHg7XG4gIH1cblxuICAubWF0LWJvZHktc3Ryb25nLCAubWF0LWJvZHktMiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGJvZHktMik7XG4gIH1cblxuICAubWF0LWJvZHksIC5tYXQtYm9keS0xLCAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuXG4gICAgcCB7XG4gICAgICBtYXJnaW46IDAgMCAxMnB4O1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc21hbGwsIC5tYXQtY2FwdGlvbiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGNhcHRpb24pO1xuICB9XG5cbiAgLm1hdC1kaXNwbGF5LTQsICN7JHNlbGVjdG9yfSAubWF0LWRpc3BsYXktNCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGRpc3BsYXktNCk7XG4gICAgbWFyZ2luOiAwIDAgNTZweDtcbiAgfVxuXG4gIC5tYXQtZGlzcGxheS0zLCAjeyRzZWxlY3Rvcn0gLm1hdC1kaXNwbGF5LTMge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBkaXNwbGF5LTMpO1xuICAgIG1hcmdpbjogMCAwIDY0cHg7XG4gIH1cblxuICAubWF0LWRpc3BsYXktMiwgI3skc2VsZWN0b3J9IC5tYXQtZGlzcGxheS0yIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgZGlzcGxheS0yKTtcbiAgICBtYXJnaW46IDAgMCA2NHB4O1xuICB9XG5cbiAgLm1hdC1kaXNwbGF5LTEsICN7JHNlbGVjdG9yfSAubWF0LWRpc3BsYXktMSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGRpc3BsYXktMSk7XG4gICAgbWFyZ2luOiAwIDAgNjRweDtcbiAgfVxufVxuXG5cblxuXG5AbWl4aW4gbWF0LWF1dG9jb21wbGV0ZS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcblxuICAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgLy8gU2VsZWN0ZWQgb3B0aW9ucyBpbiBhdXRvY29tcGxldGVzIHNob3VsZCBub3QgYmUgZ3JheSwgYnV0IHdlXG4gICAgLy8gb25seSB3YW50IHRvIG92ZXJyaWRlIHRoZSBiYWNrZ3JvdW5kIGZvciBzZWxlY3RlZCBvcHRpb25zIGlmXG4gICAgLy8gdGhleSBhcmUgKm5vdCogaW4gaG92ZXIgb3IgZm9jdXMgc3RhdGUuIFRoaXMgY2hhbmdlIGhhcyB0byBiZVxuICAgIC8vIG1hZGUgaGVyZSBiZWNhdXNlIGJhc2Ugb3B0aW9uIHN0eWxlcyBhcmUgc2hhcmVkIGJldHdlZW4gdGhlXG4gICAgLy8gYXV0b2NvbXBsZXRlIGFuZCB0aGUgc2VsZWN0LlxuICAgIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG5cbiAgICAgICY6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbkBtaXhpbiBtYXQtYXV0b2NvbXBsZXRlLXR5cG9ncmFwaHkoJGNvbmZpZykgeyB9XG5cbi8vIFRoaXMgY29udGFpbnMgYWxsIG9mIHRoZSBzdHlsZXMgZm9yIHRoZSBiYWRnZVxuLy8gcmF0aGVyIHRoYW4ganVzdCB0aGUgY29sb3IvdGhlbWUgYmVjYXVzZSBvZlxuLy8gbm8gc3R5bGUgc2hlZXQgc3VwcG9ydCBmb3IgZGlyZWN0aXZlcy5cblxuXG5cblxuXG4kbWF0LWJhZGdlLWZvbnQtc2l6ZTogMTJweDtcbiRtYXQtYmFkZ2UtZm9udC13ZWlnaHQ6IDYwMDtcbiRtYXQtYmFkZ2UtZGVmYXVsdC1zaXplOiAyMnB4ICFkZWZhdWx0O1xuJG1hdC1iYWRnZS1zbWFsbC1zaXplOiAkbWF0LWJhZGdlLWRlZmF1bHQtc2l6ZSAtIDY7XG4kbWF0LWJhZGdlLWxhcmdlLXNpemU6ICRtYXQtYmFkZ2UtZGVmYXVsdC1zaXplICsgNjtcblxuLy8gTWl4aW4gZm9yIGJ1aWxkaW5nIG9mZnNldCBnaXZlbiBkaWZmZXJlbnQgc2l6ZXNcbkBtaXhpbiBfbWF0LWJhZGdlLXNpemUoJHNpemUpIHtcbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJHNpemU7XG4gIH1cblxuICAmLm1hdC1iYWRnZS1hYm92ZSB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIHRvcDogLSRzaXplIC8gMjtcbiAgICB9XG4gIH1cblxuICAmLm1hdC1iYWRnZS1iZWxvdyB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIGJvdHRvbTogLSRzaXplIC8gMjtcbiAgICB9XG4gIH1cblxuICAmLm1hdC1iYWRnZS1iZWZvcmUge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBsZWZ0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgW2Rpcj0ncnRsJ10gJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIHJpZ2h0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgJi5tYXQtYmFkZ2UtYWZ0ZXIge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICByaWdodDogLSRzaXplO1xuICAgIH1cbiAgfVxuXG4gIFtkaXI9J3J0bCddICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBsZWZ0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgJi5tYXQtYmFkZ2Utb3ZlcmxhcCB7XG4gICAgJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIGxlZnQ6IC0kc2l6ZSAvIDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgW2Rpcj0ncnRsJ10gJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIHJpZ2h0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cblxuICAgIFtkaXI9J3J0bCddICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBsZWZ0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJhZGdlLXRoZW1lKCR0aGVtZSkge1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG5cbiAgICBAaW5jbHVkZSBjZGstaGlnaC1jb250cmFzdCB7XG4gICAgICBvdXRsaW5lOiBzb2xpZCAxcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2UtYWNjZW50IHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJhZGdlLXdhcm4ge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLm1hdC1iYWRnZS1oaWRkZW4ge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2UtZGlzYWJsZWQge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAkYXBwLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2JhY2tncm91bmQnKTtcbiAgICAgICRiYWRnZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC1idXR0b24pO1xuXG4gICAgICAvLyBUaGUgZGlzYWJsZWQgY29sb3IgdXN1YWxseSBoYXMgc29tZSBraW5kIG9mIG9wYWNpdHksIGJ1dCBiZWNhdXNlIHRoZSBiYWRnZSBpcyBvdmVybGF5ZWRcbiAgICAgIC8vIG9uIHRvcCBvZiBzb21ldGhpbmcgZWxzZSwgaXQgd29uJ3QgbG9vayBnb29kIGlmIGl0J3Mgb3BhcXVlLiBJZiBpdCBpcyBhIGNvbG9yICp0eXBlKixcbiAgICAgIC8vIHdlIGNvbnZlcnQgaXQgaW50byBhIHNvbGlkIGNvbG9yIGJ5IHRha2luZyB0aGUgb3BhY2l0eSBmcm9tIHRoZSByZ2JhIHZhbHVlIGFuZCB1c2luZ1xuICAgICAgLy8gdGhlIHZhbHVlIHRvIGRldGVybWluZSB0aGUgcGVyY2VudGFnZSBvZiB0aGUgYmFja2dyb3VuZCB0byBwdXQgaW50byBmb3JlZ3JvdW5kIHdoZW5cbiAgICAgIC8vIG1peGluZyB0aGUgY29sb3JzIHRvZ2V0aGVyLlxuICAgICAgQGlmICh0eXBlLW9mKCRiYWRnZS1jb2xvcikgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGFwcC1iYWNrZ3JvdW5kKSA9PSBjb2xvcikge1xuICAgICAgICAkYmFkZ2Utb3BhY2l0eTogb3BhY2l0eSgkYmFkZ2UtY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kOiBtaXgoJGFwcC1iYWNrZ3JvdW5kLCByZ2JhKCRiYWRnZS1jb2xvciwgMSksICgxIC0gJGJhZGdlLW9wYWNpdHkpICogMTAwJSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRiYWRnZS1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0O1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsXG4gIC5tYXQtYmFkZ2UtY29udGVudC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8vIFRoZSBhY3RpdmUgY2xhc3MgaXMgYWRkZWQgYWZ0ZXIgdGhlIGVsZW1lbnQgaXMgYWRkZWRcbiAgLy8gc28gaXQgY2FuIGFuaW1hdGUgc2NhbGUgdG8gZGVmYXVsdFxuICAubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZSB7XG4gICAgLy8gU2NhbGUgdG8gYG5vbmVgIGluc3RlYWQgb2YgYDFgIHRvIGF2b2lkIGJsdXJyeSB0ZXh0IGluIHNvbWUgYnJvd3NlcnMuXG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgLm1hdC1iYWRnZS1zbWFsbCB7XG4gICAgQGluY2x1ZGUgX21hdC1iYWRnZS1zaXplKCRtYXQtYmFkZ2Utc21hbGwtc2l6ZSk7XG4gIH1cbiAgLm1hdC1iYWRnZS1tZWRpdW0ge1xuICAgIEBpbmNsdWRlIF9tYXQtYmFkZ2Utc2l6ZSgkbWF0LWJhZGdlLWRlZmF1bHQtc2l6ZSk7XG4gIH1cbiAgLm1hdC1iYWRnZS1sYXJnZSB7XG4gICAgQGluY2x1ZGUgX21hdC1iYWRnZS1zaXplKCRtYXQtYmFkZ2UtbGFyZ2Utc2l6ZSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1iYWRnZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBmb250LXdlaWdodDogJG1hdC1iYWRnZS1mb250LXdlaWdodDtcbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplO1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgLy8gU2V0IHRoZSBmb250IHNpemUgdG8gNzUlIG9mIHRoZSBvcmlnaW5hbC5cbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplICogMC43NTtcbiAgfVxuXG4gIC5tYXQtYmFkZ2UtbGFyZ2UgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplICogMjtcbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtYm90dG9tLXNoZWV0LXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMTYsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtYm90dG9tLXNoZWV0LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG5cblxuJF9tYXQtYnV0dG9uLXJpcHBsZS1vcGFjaXR5OiAwLjE7XG5cbi8vIEFwcGxpZXMgYSBmb2N1cyBzdHlsZSB0byBhbiBtYXQtYnV0dG9uIGVsZW1lbnQgZm9yIGVhY2ggb2YgdGhlIHN1cHBvcnRlZCBwYWxldHRlcy5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LWNvbG9yKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcblxuICAmLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gIH1cblxuICAmLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICB9XG5cbiAgJi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHdhcm4pO1xuICB9XG5cbiAgJltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8gQXBwbGllcyB0aGUgYmFja2dyb3VuZCBjb2xvciBmb3IgYSByaXBwbGUuIElmIHRoZSB2YWx1ZSBwcm92aWRlZCBpcyBub3QgYSBTYXNzIGNvbG9yLFxuLy8gd2UgYXNzdW1lIHRoYXQgd2UndmUgYmVlbiBnaXZlbiBhIENTUyB2YXJpYWJsZS4gU2luY2Ugd2UgY2FuJ3QgcGVyZm9ybSBhbHBoYS1ibGVuZGluZ1xuLy8gb24gYSBDU1MgdmFyaWFibGUsIHdlIGluc3RlYWQgYWRkIHRoZSBvcGFjaXR5IGRpcmVjdGx5IHRvIHRoZSByaXBwbGUgZWxlbWVudC5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1yaXBwbGUtYmFja2dyb3VuZCgkcGFsZXR0ZSwgJGh1ZSwgJG9wYWNpdHkpIHtcbiAgJGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgJGh1ZSwgJG9wYWNpdHkpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgQGlmICh0eXBlLW9mKCRiYWNrZ3JvdW5kLWNvbG9yKSAhPSBjb2xvcikge1xuICAgIG9wYWNpdHk6ICRvcGFjaXR5O1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1yaXBwbGUtY29sb3IoJHRoZW1lLCAkaHVlLCAkb3BhY2l0eTogJF9tYXQtYnV0dG9uLXJpcHBsZS1vcGFjaXR5KSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gICYubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tcmlwcGxlLWJhY2tncm91bmQoJHByaW1hcnksICRodWUsICRvcGFjaXR5KTtcbiAgfVxuXG4gICYubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi1yaXBwbGUtYmFja2dyb3VuZCgkYWNjZW50LCAkaHVlLCAkb3BhY2l0eSk7XG4gIH1cblxuICAmLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXJpcHBsZS1iYWNrZ3JvdW5kKCR3YXJuLCAkaHVlLCAkb3BhY2l0eSk7XG4gIH1cbn1cblxuLy8gQXBwbGllcyBhIHByb3BlcnR5IHRvIGFuIG1hdC1idXR0b24gZWxlbWVudCBmb3IgZWFjaCBvZiB0aGUgc3VwcG9ydGVkIHBhbGV0dGVzLlxuQG1peGluIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCR0aGVtZSwgJHByb3BlcnR5LCAkaHVlKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICYubWF0LXByaW1hcnkge1xuICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRwcmltYXJ5LCAkaHVlKTtcbiAgfVxuICAmLm1hdC1hY2NlbnQge1xuICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRhY2NlbnQsICRodWUpO1xuICB9XG4gICYubWF0LXdhcm4ge1xuICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCR3YXJuLCAkaHVlKTtcbiAgfVxuXG4gICYubWF0LXByaW1hcnksICYubWF0LWFjY2VudCwgJi5tYXQtd2FybiwgJltkaXNhYmxlZF0ge1xuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICRwYWxldHRlOiBpZigkcHJvcGVydHkgPT0gJ2NvbG9yJywgJGZvcmVncm91bmQsICRiYWNrZ3JvdW5kKTtcbiAgICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRwYWxldHRlLCBkaXNhYmxlZC1idXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJ1dHRvbi10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1idXR0b24sIC5tYXQtaWNvbi1idXR0b24sIC5tYXQtc3Ryb2tlZC1idXR0b24ge1xuICAgIC8vIEJ1dHRvbnMgd2l0aG91dCBhIGJhY2tncm91bmQgY29sb3Igc2hvdWxkIGluaGVyaXQgdGhlIGZvbnQgY29sb3IuIFRoaXMgaXMgbmVjZXNzYXJ5IHRvXG4gICAgLy8gZW5zdXJlIHRoYXQgdGhlIGJ1dHRvbiBpcyByZWFkYWJsZSBvbiBjdXN0b20gYmFja2dyb3VuZCBjb2xvcnMuIEl0J3Mgd3JvbmcgdG8gYWx3YXlzIGFzc3VtZVxuICAgIC8vIHRoYXQgdGhvc2UgYnV0dG9ucyBhcmUgYWx3YXlzIHBsYWNlZCBpbnNpZGUgb2YgY29udGFpbmVycyB3aXRoIHRoZSBkZWZhdWx0IGJhY2tncm91bmRcbiAgICAvLyBjb2xvciBvZiB0aGUgdGhlbWUgKGUuZy4gdGhlbWVkIHRvb2xiYXJzKS5cbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCR0aGVtZSwgJ2NvbG9yJywgdGV4dCk7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tZm9jdXMtb3ZlcmxheS1jb2xvcigkdGhlbWUpO1xuXG4gICAgLy8gU2V0dXAgdGhlIHJpcHBsZSBjb2xvciB0byBiZSBiYXNlZCBvbiB0aGUgdGV4dCBjb2xvci4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHJpcHBsZXNcbiAgICAvLyBhcmUgbWF0Y2hpbmcgd2l0aCB0aGUgY3VycmVudCB0aGVtZSBwYWxldHRlIGFuZCBhcmUgaW4gY29udHJhc3QgdG8gdGhlIGJhY2tncm91bmQgY29sb3JcbiAgICAvLyAoZS5nIGluIHRoZW1lZCB0b29sYmFycykuXG4gICAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBvcGFjaXR5OiAkX21hdC1idXR0b24tcmlwcGxlLW9wYWNpdHk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZDogbWFwX2dldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG4gIH1cblxuICAvLyBOb3RlOiB0aGlzIG5lZWRzIGEgYml0IGV4dHJhIHNwZWNpZmljaXR5LCBiZWNhdXNlIHdlJ3JlIG5vdCBndWFyYW50ZWVkIHRoZSBpbmNsdXNpb25cbiAgLy8gb3JkZXIgb2YgdGhlIHRoZW1lIHN0eWxlcyBhbmQgdGhlIGJ1dHRvbiByZXNldCBtYXkgZW5kIHVwIHJlc2V0dGluZyB0aGlzIGFzIHdlbGwuXG4gIC5tYXQtc3Ryb2tlZC1idXR0b246bm90KFtkaXNhYmxlZF0pIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWZsYXQtYnV0dG9uLCAubWF0LXJhaXNlZC1idXR0b24sIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgICAvLyBEZWZhdWx0IGZvbnQgYW5kIGJhY2tncm91bmQgY29sb3Igd2hlbiBub3QgdXNpbmcgYW55IGNvbG9yIHBhbGV0dGUuXG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCByYWlzZWQtYnV0dG9uKTtcblxuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCR0aGVtZSwgJ2NvbG9yJywgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tdGhlbWUtcHJvcGVydHkoJHRoZW1lLCAnYmFja2dyb3VuZC1jb2xvcicsIGRlZmF1bHQpO1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXJpcHBsZS1jb2xvcigkdGhlbWUsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgLm1hdC1zdHJva2VkLWJ1dHRvbiwgLm1hdC1mbGF0LWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMCwgJHRoZW1lKTtcbiAgfVxuXG4gIC5tYXQtcmFpc2VkLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMiwgJHRoZW1lKTtcblxuICAgICY6bm90KFtkaXNhYmxlZF0pOmFjdGl2ZSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbig4LCAkdGhlbWUpO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mYWIsIC5tYXQtbWluaS1mYWIge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDYsICR0aGVtZSk7XG5cbiAgICAmOm5vdChbZGlzYWJsZWRdKTphY3RpdmUge1xuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMTIsICR0aGVtZSk7XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMCwgJHRoZW1lKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1idXR0b24tdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtYnV0dG9uLCAubWF0LXJhaXNlZC1idXR0b24sIC5tYXQtaWNvbi1idXR0b24sIC5tYXQtc3Ryb2tlZC1idXR0b24sXG4gIC5tYXQtZmxhdC1idXR0b24sIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYnV0dG9uKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRvZ2dsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGRpdmlkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUsXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMiwgJHRoZW1lKTtcbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuXG4gICAgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBmb2N1c2VkLWJ1dHRvbik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG5cbiAgICAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGZvY3VzZWQtYnV0dG9uLCAxKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggJGRpdmlkZXItY29sb3I7XG4gIH1cblxuICBbZGlyPSdydGwnXSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIGJvcmRlci1yaWdodDogc29saWQgMXB4ICRkaXZpZGVyLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwge1xuICAgIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgIGJvcmRlci10b3A6IHNvbGlkIDFweCAkZGl2aWRlci1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBzZWxlY3RlZC1idXR0b24pO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLWJ1dHRvbik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaXNhYmxlZC1idXR0b24tdG9nZ2xlKTtcblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIH1cblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIHNlbGVjdGVkLWRpc2FibGVkLWJ1dHRvbik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIGJvcmRlcjogc29saWQgMXB4ICRkaXZpZGVyLWNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRvZ2dsZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtY2FyZC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWNhcmQge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDEsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgIC8vIE5lZWRzIGV4dHJhIHNwZWNpZmljaXR5IHRvIGJlIGFibGUgdG8gb3ZlcnJpZGUgdGhlIGVsZXZhdGlvbiBzZWxlY3RvcnMuXG4gICAgJi5tYXQtY2FyZC1mbGF0IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYXJkLXN1YnRpdGxlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1jYXJkLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWNhcmQge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWNhcmQtdGl0bGUge1xuICAgIGZvbnQ6IHtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgaGVhZGxpbmUpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgdGl0bGUpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FyZC1oZWFkZXIgLm1hdC1jYXJkLXRpdGxlIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgdGl0bGUpO1xuICB9XG5cbiAgLm1hdC1jYXJkLXN1YnRpdGxlLFxuICAubWF0LWNhcmQtY29udGVudCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtY2hlY2tib3gtdGhlbWUoJHRoZW1lKSB7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG5cbiAgLy8gVGhlIGNvbG9yIG9mIHRoZSBjaGVja2JveCdzIGNoZWNrbWFyayAvIG1peGVkbWFyay5cbiAgJGNoZWNrYm94LW1hcmstY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgYmFja2dyb3VuZCk7XG5cbiAgLy8gTk9URSh0cmF2aXNrYXVmbWFuKTogV2hpbGUgdGhlIHNwZWMgY2FsbHMgZm9yIHRyYW5zbHVjZW50IGJsYWNrcy93aGl0ZXMgZm9yIGRpc2FibGVkIGNvbG9ycyxcbiAgLy8gdGhpcyBkb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBlbGVtZW50cyBsYXllcmVkIG9uIHRvcCBvZiBvbmUgYW5vdGhlci4gVG8gZ2V0IGFyb3VuZCB0aGlzIHdlXG4gIC8vIGJsZW5kIHRoZSBjb2xvcnMgdG9nZXRoZXIgYmFzZWQgb24gdGhlIGJhc2UgY29sb3IgYW5kIHRoZSB0aGVtZSBiYWNrZ3JvdW5kLlxuICAkd2hpdGUtMzBwY3Qtb3BhY2l0eS1vbi1kYXJrOiAjNjg2ODY4O1xuICAkYmxhY2stMjZwY3Qtb3BhY2l0eS1vbi1saWdodDogI2IwYjBiMDtcbiAgJGRpc2FibGVkLWNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJHdoaXRlLTMwcGN0LW9wYWNpdHktb24tZGFyaywgJGJsYWNrLTI2cGN0LW9wYWNpdHktb24tbGlnaHQpO1xuXG4gIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gICAgZmlsbDogJGNoZWNrYm94LW1hcmstY29sb3I7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIHtcbiAgICAvLyAhaW1wb3J0YW50IGlzIG5lZWRlZCBoZXJlIGJlY2F1c2UgYSBzdHJva2UgbXVzdCBiZSBzZXQgYXMgYW5cbiAgICAvLyBhdHRyaWJ1dGUgb24gdGhlIFNWRyBpbiBvcmRlciBmb3IgbGluZSBhbmltYXRpb24gdG8gd29yayBwcm9wZXJseS5cbiAgICBzdHJva2U6ICRjaGVja2JveC1tYXJrLWNvbG9yICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBjZGstaGlnaC1jb250cmFzdChibGFjay1vbi13aGl0ZSkge1xuICAgICAgLy8gSGF2aW5nIHRoZSBvbmUgYWJvdmUgYmUgIWltcG9ydGFudCBlbmRzIHVwIG92ZXJyaWRpbmcgdGhlIGJyb3dzZXIncyBhdXRvbWF0aWNcbiAgICAgIC8vIGNvbG9yIGludmVyc2lvbiBzbyB3ZSBuZWVkIHRvIHJlLWludmVydCBpdCBvdXJzZWx2ZXMgZm9yIGJsYWNrLW9uLXdoaXRlLlxuICAgICAgc3Ryb2tlOiAjMDAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjaGVja2JveC1tYXJrLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLCAubWF0LWNoZWNrYm94LWNoZWNrZWQge1xuICAgICYubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICAmLm1hdC1jaGVja2JveC1jaGVja2VkLFxuICAgICYubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICAgICAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5tYXQtY2hlY2tib3gtY2hlY2tlZCkge1xuICAgICAgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGNkay1oaWdoLWNvbnRyYXN0IHtcbiAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG4gIH1cblxuICAvLyBUaGlzIG9uZSBpcyBtb3ZlZCBkb3duIGhlcmUgc28gaXQgY2FuIHRhcmdldCBib3RoXG4gIC8vIHRoZSB0aGVtZSBjb2xvcnMgYW5kIHRoZSBkaXNhYmxlZCBzdGF0ZS5cbiAgQGluY2x1ZGUgY2RrLWhpZ2gtY29udHJhc3Qge1xuICAgIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICAvLyBOZWVkcyB0byBiZSByZW1vdmVkIGJlY2F1c2UgaXQgaGlkZXMgdGhlIGNoZWNrYm94IG91dGxpbmUuXG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN3aXRjaCB0aGlzIHRvIGEgc29saWQgY29sb3Igc2luY2Ugd2UncmUgdXNpbmcgYG9wYWNpdHlgXG4gIC8vIHRvIGNvbnRyb2wgaG93IG9wYXF1ZSB0aGUgcmlwcGxlIHNob3VsZCBiZS5cbiAgLm1hdC1jaGVja2JveCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXBfZ2V0KG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKSwgYmFzZSk7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLFxuICAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkge1xuICAgICYubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1jaGVja2JveC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1jaGVja2JveCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC8vIFRPRE8oa2FyYSk6IFJlbW92ZSB0aGlzIHN0eWxlIHdoZW4gZml4aW5nIHZlcnRpY2FsIGJhc2VsaW5lXG4gIC5tYXQtY2hlY2tib3gtbGF5b3V0IC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICAgIGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxufVxuXG5cblxuXG5cblxuJG1hdC1jaGlwLXJlbW92ZS1mb250LXNpemU6IDE4cHg7XG5cbkBtaXhpbiBtYXQtY2hpcHMtY29sb3IoJGZvcmVncm91bmQsICRiYWNrZ3JvdW5kKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGZvcmVncm91bmQ7XG5cbiAgLm1hdC1jaGlwLXJlbW92ZSB7XG4gICAgY29sb3I6ICRmb3JlZ3JvdW5kO1xuICAgIG9wYWNpdHk6IDAuNDtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWNoaXBzLXRoZW1lLWNvbG9yKCRwYWxldHRlKSB7XG4gIEBpbmNsdWRlIG1hdC1jaGlwcy1jb2xvcihtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QpLCBtYXQtY29sb3IoJHBhbGV0dGUpKTtcblxuICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QsIDAuMSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1jaGlwcy10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgJHVuc2VsZWN0ZWQtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCB1bnNlbGVjdGVkLWNoaXApO1xuICAkdW5zZWxlY3RlZC1mb3JlZ3JvdW5kOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcCB7XG4gICAgQGluY2x1ZGUgbWF0LWNoaXBzLWNvbG9yKCR1bnNlbGVjdGVkLWZvcmVncm91bmQsICR1bnNlbGVjdGVkLWJhY2tncm91bmQpO1xuXG4gICAgJjpub3QoLm1hdC1jaGlwLWRpc2FibGVkKSB7XG4gICAgICAmOmFjdGl2ZSB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDMsICR0aGVtZSk7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtY2hpcC1yZW1vdmU6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAwLjU0O1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWNoaXAtZGlzYWJsZWQge1xuICAgICAgb3BhY2l0eTogMC40O1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hcF9nZXQoJGZvcmVncm91bmQsIGJhc2UpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZCB7XG4gICAgJi5tYXQtcHJpbWFyeSB7XG4gICAgICBAaW5jbHVkZSBtYXQtY2hpcHMtdGhlbWUtY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgbWF0LWNoaXBzLXRoZW1lLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgbWF0LWNoaXBzLXRoZW1lLWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWNoaXBzLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWNoaXAge1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTIpO1xuICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcblxuICAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uLFxuICAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkbWF0LWNoaXAtcmVtb3ZlLWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LXRhYmxlLXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtdGFibGUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgfVxuXG4gIC5tYXQtdGFibGUgdGhlYWQsIC5tYXQtdGFibGUgdGJvZHksIC5tYXQtdGFibGUgdGZvb3QsXG4gIG1hdC1oZWFkZXItcm93LCBtYXQtcm93LCBtYXQtZm9vdGVyLXJvdyxcbiAgW21hdC1oZWFkZXItcm93XSwgW21hdC1yb3ddLCBbbWF0LWZvb3Rlci1yb3ddLFxuICAubWF0LXRhYmxlLXN0aWNreSB7XG4gICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgfVxuXG4gIG1hdC1yb3csIG1hdC1oZWFkZXItcm93LCBtYXQtZm9vdGVyLXJvdyxcbiAgdGgubWF0LWhlYWRlci1jZWxsLCB0ZC5tYXQtY2VsbCwgdGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jZWxsLCAubWF0LWZvb3Rlci1jZWxsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRhYmxlLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXRhYmxlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxuXG4gIC5tYXQtY2VsbCwgLm1hdC1mb290ZXItY2VsbCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuXG5cblxuJG1hdC1kYXRlcGlja2VyLXNlbGVjdGVkLXRvZGF5LWJveC1zaGFkb3ctd2lkdGg6IDFweDtcbiRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC1mYWRlLWFtb3VudDogMC42O1xuJG1hdC1kYXRlcGlja2VyLXRvZGF5LWZhZGUtYW1vdW50OiAwLjI7XG4kbWF0LWNhbGVuZGFyLWJvZHktZm9udC1zaXplOiAxM3B4ICFkZWZhdWx0O1xuJG1hdC1jYWxlbmRhci13ZWVrZGF5LXRhYmxlLWZvbnQtc2l6ZTogMTFweCAhZGVmYXVsdDtcblxuQG1peGluIF9tYXQtZGF0ZXBpY2tlci1jb2xvcigkcGFsZXR0ZSkge1xuICAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgICRiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRiYWNrZ3JvdW5kKSA9PSBjb2xvcikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZmFkZS1vdXQoJGJhY2tncm91bmQsICRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC1mYWRlLWFtb3VudCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIElmIHdlIGNvdWxkbid0IHJlc29sdmUgdG8gYmFja2dyb3VuZCB0byBhIGNvbG9yIChlLmcuIGl0J3MgYSBDU1MgdmFyaWFibGUpLFxuICAgICAgLy8gZmFsbCBiYWNrIHRvIGZhZGluZyB0aGUgY29udGVudCBvdXQgdmlhIGBvcGFjaXR5YC5cbiAgICAgIG9wYWNpdHk6ICRtYXQtZGF0ZXBpY2tlci10b2RheS1mYWRlLWFtb3VudDtcbiAgICB9XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwICRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC10b2RheS1ib3gtc2hhZG93LXdpZHRoXG4gICAgICAgICAgICAgICAgbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWRhdGVwaWNrZXItdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG5cbiAgLm1hdC1jYWxlbmRhci1hcnJvdyB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBpY29uKTtcbiAgfVxuXG4gIC8vIFRoZSBwcmV2L25leHQgYnV0dG9ucyBuZWVkIGEgYml0IG1vcmUgc3BlY2lmaWNpdHkgdG9cbiAgLy8gYXZvaWQgYmVpbmcgb3ZlcndyaXR0ZW4gYnkgdGhlIC5tYXQtaWNvbi1idXR0b24uXG4gIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUsXG4gIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItbmV4dC1idXR0b24sXG4gIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItcHJldmlvdXMtYnV0dG9uIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBpY29uKTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXItZGl2aWRlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQpOmhvdmVyLFxuICAuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZSxcbiAgLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZSB7XG4gICAgJiA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgICAvLyBOb3RlOiB0aG91Z2ggaXQncyBub3QgdGV4dCwgdGhlIGJvcmRlciBpcyBhIGhpbnQgYWJvdXQgdGhlIGZhY3QgdGhhdCB0aGlzIGlzIHRvZGF5J3MgZGF0ZSxcbiAgICAvLyBzbyB3ZSB1c2UgdGhlIGhpbnQgY29sb3IuXG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICAgICRjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IpIHtcbiAgICAgIGJvcmRlci1jb2xvcjogZmFkZS1vdXQoJGNvbG9yLCAkbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBJZiB0aGUgY29sb3IgZGlkbid0IHJlc29sdmUgdG8gYSBjb2xvciB2YWx1ZSwgYnV0IHNvbWV0aGluZyBsaWtlIGEgQ1NTIHZhcmlhYmxlLCB3ZSBjYW4ndFxuICAgICAgLy8gZmFkZSBpdCBvdXQgc28gd2UgZmFsbCBiYWNrIHRvIHJlZHVjaW5nIHRoZSBlbGVtZW50IG9wYWNpdHkuIE5vdGUgdGhhdCB3ZSBkb24ndCB1c2UgdGhlXG4gICAgICAvLyAkbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQsIGJlY2F1c2UgaGludCB0ZXh0IHVzdWFsbHkgaGFzIHNvbWUgb3BhY2l0eSBhcHBsaWVkXG4gICAgICAvLyB0byBpdCBhbHJlYWR5IGFuZCB3ZSBkb24ndCB3YW50IHRoZW0gdG8gc3RhY2sgb24gdG9wIG9mIGVhY2ggb3RoZXIuXG4gICAgICBvcGFjaXR5OiAwLjU7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLWNvbG9yKG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KSk7XG5cbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDQsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWRhdGVwaWNrZXItY29sb3IobWFwLWdldCgkdGhlbWUsIGFjY2VudCkpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLWNvbG9yKG1hcC1nZXQoJHRoZW1lLCB3YXJuKSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQtdG91Y2gge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gIH1cblxuICAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSksIHRleHQpO1xuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IobWFwLWdldCgkdGhlbWUsIGFjY2VudCksIHRleHQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgd2FybiksIHRleHQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWRhdGVwaWNrZXItdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtY2FsZW5kYXIge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHkge1xuICAgIGZvbnQtc2l6ZTogJG1hdC1jYWxlbmRhci1ib2R5LWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCxcbiAgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJ1dHRvbik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHRoIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiAkbWF0LWNhbGVuZGFyLXdlZWtkYXktdGFibGUtZm9udC1zaXplO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1kaWFsb2ctdGhlbWUoJHRoZW1lKSB7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1kaWFsb2ctY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigyNCwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGRpYWxvZyk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1kaWFsb2ctdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtZGlhbG9nLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgdGl0bGUpO1xuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LWV4cGFuc2lvbi1wYW5lbC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWV4cGFuc2lvbi1wYW5lbCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMiwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1hY3Rpb24tcm93IHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwge1xuICAgICYgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkLFxuICAgICYgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gICAgJjpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyIHtcbiAgICAgICY6bm90KFthcmlhLWRpc2FibGVkPSd0cnVlJ10pIHtcbiAgICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gRGlzYWJsZSB0aGUgaG92ZXIgb24gdG91Y2ggZGV2aWNlcyBzaW5jZSBpdCBjYW4gYXBwZWFyIGxpa2UgaXQgaXMgc3R1Y2suIFdlIGNhbid0IHVzZVxuICAvLyBgQG1lZGlhIChob3ZlcilgIGFib3ZlLCBiZWNhdXNlIHRoZSBkZXNrdG9wIHN1cHBvcnQgYnJvd3NlciBzdXBwb3J0IGlzbid0IGdyZWF0LlxuICBAbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gICAgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpOm5vdChbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddKVxuICAgICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbixcbiAgLm1hdC1leHBhbnNpb24taW5kaWNhdG9yOjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtYnV0dG9uKTtcblxuICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSxcbiAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtZXhwYW5zaW9uLXBhbmVsLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBzdWJoZWFkaW5nLTEpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG5cbi8vIFRoaXMgbWl4aW4gd2lsbCBlbnN1cmUgdGhhdCBsaW5lcyB0aGF0IG92ZXJmbG93IHRoZSBjb250YWluZXIgd2lsbCBoaWRlIHRoZSBvdmVyZmxvdyBhbmRcbi8vIHRydW5jYXRlIG5lYXRseSB3aXRoIGFuIGVsbGlwc2lzLlxuQG1peGluIG1hdC10cnVuY2F0ZS1saW5lKCkge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLy8gTWl4aW4gdG8gcHJvdmlkZSBhbGwgbWF0LWxpbmUgc3R5bGVzLCBjaGFuZ2luZyBzZWNvbmRhcnkgZm9udCBzaXplIGJhc2VkIG9uIHdoZXRoZXIgdGhlIGxpc3Rcbi8vIGlzIGluIGRlbnNlIG1vZGUuXG5AbWl4aW4gbWF0LWxpbmUtYmFzZSgkc2Vjb25kYXJ5LWZvbnQtc2l6ZSkge1xuICAubWF0LWxpbmUge1xuICAgIEBpbmNsdWRlIG1hdC10cnVuY2F0ZS1saW5lKCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIC8vIGFsbCBsaW5lcyBidXQgdGhlIHRvcCBsaW5lIHNob3VsZCBoYXZlIHNtYWxsZXIgdGV4dFxuICAgICY6bnRoLWNoaWxkKG4rMikge1xuICAgICAgZm9udC1zaXplOiAkc2Vjb25kYXJ5LWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gVGhpcyBtaXhpbiBub3JtYWxpemVzIGRlZmF1bHQgZWxlbWVudCBzdHlsZXMsIGUuZy4gZm9udCB3ZWlnaHQgZm9yIGhlYWRpbmcgdGV4dC5cbkBtaXhpbiBtYXQtbm9ybWFsaXplLXRleHQoKSB7XG4gICYgPiAqIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgfVxufVxuXG4vLyBUaGlzIG1peGluIHByb3ZpZGVzIGJhc2Ugc3R5bGVzIGZvciB0aGUgd3JhcHBlciBhcm91bmQgbWF0LWxpbmUgZWxlbWVudHMgaW4gYSBsaXN0LlxuQG1peGluIG1hdC1saW5lLXdyYXBwZXItYmFzZSgpIHtcbiAgQGluY2x1ZGUgbWF0LW5vcm1hbGl6ZS10ZXh0KCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgLy8gTXVzdCByZW1vdmUgd3JhcHBlciB3aGVuIGxpbmVzIGFyZSBlbXB0eSBvciBpdCB0YWtlcyB1cCBob3Jpem9udGFsXG4gIC8vIHNwYWNlIGFuZCBwdXNoZXMgb3RoZXIgZWxlbWVudHMgdG8gdGhlIHJpZ2h0LlxuICAmOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cblxuXG4vLyBJbmNsdWRlIHRoaXMgZW1wdHkgbWl4aW4gZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIG90aGVyIGNvbXBvbmVudHMuXG5AbWl4aW4gbWF0LWdyaWQtbGlzdC10aGVtZSgkdGhlbWUpIHsgfVxuXG5AbWl4aW4gbWF0LWdyaWQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1ncmlkLXRpbGUtaGVhZGVyLFxuICAubWF0LWdyaWQtdGlsZS1mb290ZXIge1xuICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKSk7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuLy8gSW5jbHVkZSB0aGlzIGVtcHR5IG1peGluIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBvdGhlciBjb21wb25lbnRzLlxuQG1peGluIG1hdC1pY29uLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWljb24ge1xuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1pY29uLXR5cG9ncmFwaHkoJGNvbmZpZykgeyB9XG5cblxuXG5cblxuLy8gUmVuZGVycyBhIGdyYWRpZW50IGZvciBzaG93aW5nIHRoZSBkYXNoZWQgbGluZSB3aGVuIHRoZSBpbnB1dCBpcyBkaXNhYmxlZC5cbi8vIFVubGlrZSB1c2luZyBhIGJvcmRlciwgYSBncmFkaWVudCBhbGxvd3MgdXMgdG8gYWRqdXN0IHRoZSBzcGFjaW5nIG9mIHRoZSBkb3R0ZWQgbGluZVxuLy8gdG8gbWF0Y2ggdGhlIE1hdGVyaWFsIERlc2lnbiBzcGVjLlxuQG1peGluIG1hdC1jb250cm9sLWRpc2FibGVkLXVuZGVybGluZSgkY29sb3IpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkY29sb3IgMCUsICRjb2xvciAzMyUsIHRyYW5zcGFyZW50IDAlKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0cHggMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuXG4vLyBGaWd1cmVzIG91dCB0aGUgY29sb3Igb2YgdGhlIHBsYWNlaG9sZGVyIGZvciBhIGZvcm0gY29udHJvbC5cbi8vIFVzZWQgcHJpbWFyaWx5IHRvIHByZXZlbnQgdGhlIHZhcmlvdXMgZm9ybSBjb250cm9scyBmcm9tXG4vLyBiZWNvbWluZyBvdXQgb2Ygc3luYyBzaW5jZSB0aGVzZSBjb2xvcnMgYXJlbid0IGluIGEgcGFsZXR0ZS5cbkBmdW5jdGlvbiBfbWF0LWNvbnRyb2wtcGxhY2Vob2xkZXItY29sb3IoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG4gIEByZXR1cm4gbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCwgaWYoJGlzLWRhcmstdGhlbWUsIDAuNSwgMC40MikpO1xufVxuXG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIG1hdGVyaWFsL25vLXByZWZpeGVzICovXG5AbWl4aW4gdXNlci1zZWxlY3QoJHZhbHVlKSB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgLW1vei11c2VyLXNlbGVjdDogJHZhbHVlO1xuICAtbXMtdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbn1cblxuQG1peGluIGlucHV0LXBsYWNlaG9sZGVyIHtcbiAgJjo6cGxhY2Vob2xkZXIge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgJjo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gY3Vyc29yLWdyYWIge1xuICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcbiAgY3Vyc29yOiBncmFiO1xufVxuXG5AbWl4aW4gY3Vyc29yLWdyYWJiaW5nIHtcbiAgY3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nO1xuICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuXG5AbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmFsdWUpIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiAkdmFsdWU7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6ICR2YWx1ZTtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cblxuXG5cbkBtaXhpbiBtYXQtaW5wdXQtdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtaW5wdXQtZWxlbWVudDpkaXNhYmxlZCxcbiAgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gIH1cblxuICAubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIGNhcmV0LWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuXG4gICAgQGluY2x1ZGUgaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IF9tYXQtY29udHJvbC1wbGFjZWhvbGRlci1jb2xvcigkdGhlbWUpO1xuICAgIH1cblxuICAgIC8vIE9uIGRhcmsgdGhlbWVzIHdlIHNldCB0aGUgbmF0aXZlIGBzZWxlY3RgIGNvbG9yIHRvIHNvbWUgc2hhZGUgb2Ygd2hpdGUsXG4gICAgLy8gaG93ZXZlciB0aGUgY29sb3IgcHJvcGFnYXRlcyB0byBhbGwgb2YgdGhlIGBvcHRpb25gIGVsZW1lbnRzLCB3aGljaCBhcmVcbiAgICAvLyBhbHdheXMgb24gYSB3aGl0ZSBiYWNrZ3JvdW5kIGluc2lkZSB0aGUgZHJvcGRvd24sIGNhdXNpbmcgdGhlbSB0byBibGVuZCBpbi5cbiAgICAvLyBTaW5jZSB3ZSBjYW4ndCBjaGFuZ2UgYmFja2dyb3VuZCBvZiB0aGUgZHJvcGRvd24sIHdlIG5lZWQgdG8gZXhwbGljaXRseVxuICAgIC8vIHJlc2V0IHRoZSBjb2xvciBvZiB0aGUgb3B0aW9ucyB0byBzb21ldGhpbmcgZGFyay5cbiAgICBAaWYgKG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKSkge1xuICAgICAgb3B0aW9uIHtcbiAgICAgICAgY29sb3I6ICRkYXJrLXByaW1hcnktdGV4dDtcbiAgICAgIH1cblxuICAgICAgb3B0aW9uOmRpc2FibGVkIHtcbiAgICAgICAgY29sb3I6ICRkYXJrLWRpc2FibGVkLXRleHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1hY2NlbnQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC13YXJuIC5tYXQtaW5wdXQtZWxlbWVudCxcbiAgLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1pbnB1dC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuXG4gIC8vIFRoZSBhbW91bnQgb2Ygc3BhY2UgYmV0d2VlbiB0aGUgdG9wIG9mIHRoZSBsaW5lIGFuZCB0aGUgdG9wIG9mIHRoZSBhY3R1YWwgdGV4dFxuICAvLyAoYXMgYSBmcmFjdGlvbiBvZiB0aGUgZm9udC1zaXplKS5cbiAgJGxpbmUtc3BhY2luZzogKCRsaW5lLWhlaWdodCAtIDEpIC8gMjtcblxuICAvLyA8aW5wdXQ+IGVsZW1lbnRzIHNlZW0gdG8gaGF2ZSB0aGVpciBoZWlnaHQgc2V0IHNsaWdodGx5IHRvbyBsYXJnZSBvbiBTYWZhcmkgY2F1c2luZyB0aGUgdGV4dCB0b1xuICAvLyBiZSBtaXNhbGlnbmVkIHcuci50LiB0aGUgcGxhY2Vob2xkZXIuIEFkZGluZyB0aGlzIG1hcmdpbiBjb3JyZWN0cyBpdC5cbiAgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIG1hcmdpbi10b3A6IC0kbGluZS1zcGFjaW5nICogMWVtO1xuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtbGlzdC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWxpc3QtYmFzZSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXN1YmhlYWRlciB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1saXN0LWl0ZW0tZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlzYWJsZWQtbGlzdC1vcHRpb24pO1xuICB9XG5cbiAgLm1hdC1saXN0LW9wdGlvbixcbiAgLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbSxcbiAgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbSB7XG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdob3ZlcicpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWxpc3QtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gICRmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuXG4gIC5tYXQtbGlzdC1pdGVtIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICB9XG5cbiAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgfVxuXG4gIC8vIERlZmF1bHQgbGlzdFxuICAubWF0LWxpc3QtYmFzZSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHN1YmhlYWRpbmctMik7XG4gICAgICBAaW5jbHVkZSBtYXQtbGluZS1iYXNlKG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKSk7XG4gICAgfVxuXG4gICAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgc3ViaGVhZGluZy0yKTtcbiAgICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpKTtcbiAgICB9XG5cbiAgICAubWF0LXN1YmhlYWRlciB7XG4gICAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMik7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0yKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cblxuICAvLyBEZW5zZSBsaXN0XG4gIC5tYXQtbGlzdC1iYXNlW2RlbnNlXSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgQGluY2x1ZGUgbWF0LWxpbmUtYmFzZShtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pKTtcbiAgICB9XG5cbiAgICAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKSk7XG4gICAgfVxuXG4gICAgLm1hdC1zdWJoZWFkZXIge1xuICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1tZW51LXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtbWVudS1wYW5lbCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdjYXJkJyk7XG4gIH1cblxuICAubWF0LW1lbnUtaXRlbSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ3RleHQnKTtcblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICYsICY6OmFmdGVyIHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2Rpc2FibGVkJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1tZW51LWl0ZW0gLm1hdC1pY29uLW5vLWNvbG9yLFxuICAubWF0LW1lbnUtaXRlbS1zdWJtZW51LXRyaWdnZXI6OmFmdGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAnaWNvbicpO1xuICB9XG5cbiAgLm1hdC1tZW51LWl0ZW06aG92ZXIsXG4gIC5tYXQtbWVudS1pdGVtLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gIC5tYXQtbWVudS1pdGVtLmNkay1rZXlib2FyZC1mb2N1c2VkLFxuICAubWF0LW1lbnUtaXRlbS1oaWdobGlnaHRlZCB7XG4gICAgJjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnaG92ZXInKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1tZW51LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LW1lbnUtaXRlbSB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LXBhZ2luYXRvci10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcblxuICAubWF0LXBhZ2luYXRvciB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICB9XG5cbiAgLm1hdC1wYWdpbmF0b3IsXG4gIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4gIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCB7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2ljb24nKTtcbiAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCBtYXQtY29sb3IoJGZvcmVncm91bmQsICdpY29uJyk7XG4gIH1cblxuICAubWF0LXBhZ2luYXRvci1maXJzdCxcbiAgLm1hdC1wYWdpbmF0b3ItbGFzdCB7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2ljb24nKTtcbiAgfVxuXG4gIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIHtcbiAgICAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4gICAgLm1hdC1wYWdpbmF0b3ItaW5jcmVtZW50LFxuICAgIC5tYXQtcGFnaW5hdG9yLWZpcnN0LFxuICAgIC5tYXQtcGFnaW5hdG9yLWxhc3Qge1xuICAgICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsICdkaXNhYmxlZCcpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXBhZ2luYXRvci10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1wYWdpbmF0b3IsXG4gIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbik7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuQG1peGluIG1hdC1wcm9ncmVzcy1iYXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICAgIGZpbGw6IG1hdC1jb2xvcigkcHJpbWFyeSwgbGlnaHRlcik7XG4gIH1cblxuICAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgbGlnaHRlcik7XG4gIH1cblxuICAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQge1xuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICAgICAgZmlsbDogbWF0LWNvbG9yKCRhY2NlbnQsIGxpZ2h0ZXIpO1xuICAgIH1cblxuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIHtcbiAgICAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgICAgIGZpbGw6IG1hdC1jb2xvcigkd2FybiwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkd2FybiwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1wcm9ncmVzcy1iYXItdHlwb2dyYXBoeSgkY29uZmlnKSB7IH1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG5cbiAgLm1hdC1wcm9ncmVzcy1zcGlubmVyLCAubWF0LXNwaW5uZXIge1xuICAgIGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cbkBtaXhpbiBfbWF0LXJhZGlvLWNvbG9yKCRwYWxldHRlKSB7XG4gICYubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlKTtcbiAgfVxuXG4gIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuICAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSxcbiAgJi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLFxuICAmOmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtcmFkaW8tdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1yYWRpby1idXR0b24ge1xuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgX21hdC1yYWRpby1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtcmFkaW8tY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXJhZGlvLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIG5lZWRzIGV4dHJhIHNwZWNpZmljaXR5LCBiZWNhdXNlIHRoZSBjbGFzc2VzIGFib3ZlIGFyZSBjb21iaW5lZFxuICAgIC8vIChlLmcuIGAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50YCkgd2hpY2ggaW5jcmVhc2VzIHRoZWlyIHNwZWNpZmljaXR5IGEgbG90LlxuICAgIC8vIFRPRE86IGNvbnNpZGVyIG1ha2luZyB0aGUgc2VsZWN0b3JzIGludG8gZGVzY2VuZGFudHMgKGAubWF0LXByaW1hcnkgLm1hdC1yYWRpby1idXR0b25gKS5cbiAgICAmLm1hdC1yYWRpby1kaXNhYmxlZCB7XG4gICAgICAmLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlLFxuICAgICAgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgICAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQpO1xuICAgICAgfVxuXG4gICAgICAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50LFxuICAgICAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkKTtcbiAgICAgIH1cblxuICAgICAgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFN3aXRjaCB0aGlzIHRvIGEgc29saWQgY29sb3Igc2luY2Ugd2UncmUgdXNpbmcgYG9wYWNpdHlgXG4gICAgLy8gdG8gY29udHJvbCBob3cgb3BhcXVlIHRoZSByaXBwbGUgc2hvdWxkIGJlLlxuICAgIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwX2dldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcmFkaW8tdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1zZWxlY3QtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogX21hdC1jb250cm9sLXBsYWNlaG9sZGVyLWNvbG9yKCR0aGVtZSk7XG4gIH1cblxuICAubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gIH1cblxuICAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1zZWxlY3QtcGFuZWwge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJHRoZW1lKTtcblxuICAgIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIsIDAuMTIpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZCB7XG4gICAgJi5tYXQtZm9jdXNlZCB7XG4gICAgICAmLm1hdC1wcmltYXJ5IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWFjY2VudCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LXdhcm4gLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWludmFsaWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1zZWxlY3QtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcblxuICAubWF0LXNlbGVjdCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIGhlaWdodDogJGxpbmUtaGVpZ2h0ICogMWVtO1xuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LXNpZGVuYXYtdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICRkcmF3ZXItYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAkZHJhd2VyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yOiAgbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBiYWNrZ3JvdW5kKTtcbiAgJGRyYXdlci1wdXNoLWJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlhbG9nKTtcbiAgJGRyYXdlci1zaWRlLWJvcmRlcjogc29saWQgMXB4IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG5cbiAgLm1hdC1kcmF3ZXItY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJhd2VyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1kcmF3ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkcmF3ZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LWRyYXdlci1wdXNoIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkcmF3ZXItcHVzaC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cblxuICAgICY6bm90KC5tYXQtZHJhd2VyLXNpZGUpIHtcbiAgICAgIC8vIFRoZSBlbGV2YXRpb24gb2Ygei0xNiBpcyBub3RlZCBpbiB0aGUgZGVzaWduIHNwZWNpZmljYXRpb25zLlxuICAgICAgLy8gU2VlIGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1kcmF3ZXIuaHRtbFxuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMTYsICR0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kcmF3ZXItc2lkZSB7XG4gICAgYm9yZGVyLXJpZ2h0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuXG4gICAgJi5tYXQtZHJhd2VyLWVuZCB7XG4gICAgICBib3JkZXItbGVmdDogJGRyYXdlci1zaWRlLWJvcmRlcjtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICB9XG4gIH1cblxuICBbZGlyPSdydGwnXSAubWF0LWRyYXdlci1zaWRlIHtcbiAgICBib3JkZXItbGVmdDogJGRyYXdlci1zaWRlLWJvcmRlcjtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG5cbiAgICAmLm1hdC1kcmF3ZXItZW5kIHtcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZHJhd2VyLWJhY2tkcm9wLm1hdC1kcmF3ZXItc2hvd24ge1xuICAgICRvcGFjaXR5OiAwLjY7XG4gICAgJGJhY2tkcm9wLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQsICRvcGFjaXR5KTtcblxuICAgIEBpZiAodHlwZS1vZigkYmFja2Ryb3AtY29sb3IpID09IGNvbG9yKSB7XG4gICAgICAvLyBXZSB1c2UgaW52ZXJ0KCkgaGVyZSB0byBoYXZlIHRoZSBkYXJrZW4gdGhlIGJhY2tncm91bmQgY29sb3IgZXhwZWN0ZWQgdG8gYmUgdXNlZC4gSWYgdGhlXG4gICAgICAvLyBiYWNrZ3JvdW5kIGlzIGxpZ2h0LCB3ZSB1c2UgYSBkYXJrIGJhY2tkcm9wLiBJZiB0aGUgYmFja2dyb3VuZCBpcyBkYXJrLFxuICAgICAgLy8gd2UgdXNlIGEgbGlnaHQgYmFja2Ryb3AuXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbnZlcnQoJGJhY2tkcm9wLWNvbG9yKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gSWYgd2UgY291bGRuJ3QgcmVzb2x2ZSB0aGUgYmFja2Ryb3AgY29sb3IgdG8gYSBjb2xvciB2YWx1ZSwgZmFsbCBiYWNrIHRvIHVzaW5nXG4gICAgICAvLyBgb3BhY2l0eWAgdG8gbWFrZSBpdCBvcGFxdWUgc2luY2UgaXRzIGVuZCB2YWx1ZSBjb3VsZCBiZSBhIHNvbGlkIGNvbG9yLlxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tkcm9wLWNvbG9yO1xuICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc2lkZW5hdi10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cblxuQG1peGluIF9tYXQtc2xpZGUtdG9nZ2xlLWNoZWNrZWQoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSkge1xuICAmLm1hdC1jaGVja2VkIHtcbiAgICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSk7XG4gICAgfVxuXG4gICAgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgICAgIC8vIE9wYWNpdHkgaXMgZGV0ZXJtaW5lZCBmcm9tIHRoZSBzcGVjcyBmb3IgdGhlIHNlbGVjdGlvbiBjb250cm9scy5cbiAgICAgIC8vIFNlZTogaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vY29tcG9uZW50cy9zZWxlY3Rpb24tY29udHJvbHMuaHRtbCNzcGVjc1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAkdGh1bWItY2hlY2tlZC1odWUsIDAuNTQpO1xuICAgIH1cblxuICAgIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgLy8gU2V0IG5vIG9wYWNpdHkgZm9yIHRoZSByaXBwbGVzIGJlY2F1c2UgdGhlIHJpcHBsZSBvcGFjaXR5IHdpbGwgYmUgYWRqdXN0ZWQgZHluYW1pY2FsbHlcbiAgICAgIC8vIGJhc2VkIG9uIHRoZSB0eXBlIG9mIGludGVyYWN0aW9uIHdpdGggdGhlIHNsaWRlLXRvZ2dsZSAoZS5nLiBmb3IgaG92ZXIsIGZvY3VzKVxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAkdGh1bWItY2hlY2tlZC1odWUpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNsaWRlLXRvZ2dsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcms6IG1hcF9nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLy8gQ29sb3IgaHVlcyBhcmUgYmFzZWQgb24gdGhlIHNwZWNzIHdoaWNoIGJyaWVmbHkgc2hvdyB0aGUgaHVlcyB0aGF0IGFyZSBhcHBsaWVkIHRvIGEgc3dpdGNoLlxuICAvLyBUaGUgMjAxOCBzcGVjcyBubyBsb25nZXIgZGVzY3JpYmUgaG93IGRhcmsgc3dpdGNoZXMgc2hvdWxkIGxvb2sgbGlrZS4gRHVlIHRvIHRoZSBsYWNrIG9mXG4gIC8vIGluZm9ybWF0aW9uIGZvciBkYXJrIHRoZW1lZCBzd2l0Y2hlcywgd2UgcGFydGlhbGx5IGtlZXAgdGhlIG9sZCBiZWhhdmlvciB0aGF0IGlzIGJhc2VkIG9uXG4gIC8vIHRoZSBwcmV2aW91cyBzcGVjaWZpY2F0aW9ucy4gRm9yIHRoZSBjaGVja2VkIGNvbG9yIHdlIGFsd2F5cyB1c2UgdGhlIGBkZWZhdWx0YCBodWUgYmVjYXVzZVxuICAvLyB0aGF0IGZvbGxvd3MgTURDIGFuZCBhbHNvIG1ha2VzIGl0IGVhc2llciBmb3IgcGVvcGxlIHRvIGNyZWF0ZSBhIGN1c3RvbSB0aGVtZSB3aXRob3V0IG5lZWRpbmdcbiAgLy8gdG8gc3BlY2lmeSBlYWNoIGh1ZSBpbmRpdmlkdWFsbHkuXG4gICR0aHVtYi11bmNoZWNrZWQtaHVlOiBpZigkaXMtZGFyaywgNDAwLCA1MCk7XG4gICR0aHVtYi1jaGVja2VkLWh1ZTogZGVmYXVsdDtcblxuICAkYmFyLXVuY2hlY2tlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZCk7XG4gICRyaXBwbGUtdW5jaGVja2VkLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGJhc2UpO1xuXG4gIC5tYXQtc2xpZGUtdG9nZ2xlIHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlLXRvZ2dsZS1jaGVja2VkKCRhY2NlbnQsICR0aHVtYi1jaGVja2VkLWh1ZSk7XG5cbiAgICAmLm1hdC1wcmltYXJ5IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtc2xpZGUtdG9nZ2xlLWNoZWNrZWQoJHByaW1hcnksICR0aHVtYi1jaGVja2VkLWh1ZSk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXNsaWRlLXRvZ2dsZS1jaGVja2VkKCR3YXJuLCAkdGh1bWItY2hlY2tlZC1odWUpO1xuICAgIH1cblxuICAgICY6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICAvLyBTZXQgbm8gb3BhY2l0eSBmb3IgdGhlIHJpcHBsZXMgYmVjYXVzZSB0aGUgcmlwcGxlIG9wYWNpdHkgd2lsbCBiZSBhZGp1c3RlZCBkeW5hbWljYWxseVxuICAgICAgLy8gYmFzZWQgb24gdGhlIHR5cGUgb2YgaW50ZXJhY3Rpb24gd2l0aCB0aGUgc2xpZGUtdG9nZ2xlIChlLmcuIGZvciBob3ZlciwgZm9jdXMpXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmlwcGxlLXVuY2hlY2tlZC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMSwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJG1hdC1ncmV5LCAkdGh1bWItdW5jaGVja2VkLWh1ZSk7XG4gIH1cblxuICAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXItdW5jaGVja2VkLWNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc2xpZGUtdG9nZ2xlLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50IHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cblxuXG5cblxuQG1peGluIF9tYXQtc2xpZGVyLWlubmVyLWNvbnRlbnQtdGhlbWUoJHBhbGV0dGUpIHtcbiAgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbiAgLm1hdC1zbGlkZXItdGh1bWIsXG4gIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICB9XG5cbiAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1zbGlkZXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICRtYXQtc2xpZGVyLW9mZi1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmKTtcbiAgJG1hdC1zbGlkZXItb2ZmLWZvY3VzZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW9mZi1hY3RpdmUpO1xuICAkbWF0LXNsaWRlci1kaXNhYmxlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmKTtcbiAgJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW1pbik7XG4gICRtYXQtc2xpZGVyLWxhYmVsZWQtbWluLXZhbHVlLXRodW1iLWxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNsaWRlci1vZmYpO1xuICAkbWF0LXNsaWRlci1mb2N1cy1yaW5nLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgZGVmYXVsdCwgMC4yKTtcbiAgJG1hdC1zbGlkZXItZm9jdXMtcmluZy1taW4tdmFsdWUtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgMC4xMik7XG4gICRtYXQtc2xpZGVyLXRpY2stY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgMC43KTtcbiAgJG1hdC1zbGlkZXItdGljay1zaXplOiAycHg7XG5cbiAgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItb2ZmLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1wcmltYXJ5IHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCRwcmltYXJ5KTtcbiAgfVxuXG4gIC5tYXQtYWNjZW50IHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCRhY2NlbnQpO1xuICB9XG5cbiAgLm1hdC13YXJuIHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCR3YXJuKTtcbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWZvY3VzLXJpbmctY29sb3I7XG4gIH1cblxuICAubWF0LXNsaWRlcjpob3ZlcixcbiAgLmNkay1mb2N1c2VkIHtcbiAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLW9mZi1mb2N1c2VkLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWRpc2FibGVkIHtcbiAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLFxuICAgIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4gICAgLm1hdC1zbGlkZXItdGh1bWIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItZGlzYWJsZWQtY29sb3I7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zbGlkZXItbWluLXZhbHVlIHtcbiAgICAubWF0LXNsaWRlci1mb2N1cy1yaW5nIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWZvY3VzLXJpbmctbWluLXZhbHVlLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIHtcbiAgICAgIC5tYXQtc2xpZGVyLXRodW1iLFxuICAgICAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWF0LXNsaWRlci1sYWJlbGVkLW1pbi12YWx1ZS10aHVtYi1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgJi5jZGstZm9jdXNlZCB7XG4gICAgICAgIC5tYXQtc2xpZGVyLXRodW1iLFxuICAgICAgICAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItbGFiZWwtY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKSB7XG4gICAgICAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJG1hdC1zbGlkZXItb2ZmLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlcixcbiAgICAgICYuY2RrLWZvY3VzZWQge1xuICAgICAgICAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci1vZmYtZm9jdXNlZC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWhhcy10aWNrcyAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci10aWNrLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgICAvLyBGaXJlZm94IGRvZXNuJ3QgZHJhdyB0aGUgZ3JhZGllbnQgY29ycmVjdGx5IHdpdGggJ3RvIHJpZ2h0J1xuICAgIC8vIChzZWUgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxNDMxOSkuXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1yZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDAuMDAwMWRlZywgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgfVxuXG4gIC5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRpY2tzIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNsaWRlci10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LXN0ZXBwZXItdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG5cbiAgLm1hdC1zdGVwLWhlYWRlciB7XG4gICAgJi5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgICAmLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGhvdmVyKTtcbiAgICB9XG5cbiAgICAvLyBPbiB0b3VjaCBkZXZpY2VzIHRoZSA6aG92ZXIgc3RhdGUgd2lsbCBsaW5nZXIgb24gdGhlIGVsZW1lbnQgYWZ0ZXIgYSB0YXAuXG4gICAgLy8gUmVzZXQgaXQgdmlhIGBAbWVkaWFgIGFmdGVyIHRoZSBkZWNsYXJhdGlvbiwgYmVjYXVzZSB0aGUgbWVkaWEgcXVlcnkgaXNuJ3RcbiAgICAvLyBzdXBwb3J0ZWQgYnkgYWxsIGJyb3dzZXJzIHlldC5cbiAgICBAbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtbGFiZWwsXG4gICAgLm1hdC1zdGVwLW9wdGlvbmFsIHtcbiAgICAgIC8vIFRPRE8oam9zZXBocGVycm90dCk6IFVwZGF0ZSB0byB1c2luZyBhIGNvcnJlY3RlZCBkaXNhYmxlZC10ZXh0IGNvbnRyYXN0XG4gICAgICAvLyBpbnN0ZWFkIG9mIHNlY29uZGFyeS10ZXh0LlxuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1pY29uIHtcbiAgICAgIC8vIFRPRE8oam9zZXBocGVycm90dCk6IFVwZGF0ZSB0byB1c2luZyBhIGNvcnJlY3RlZCBkaXNhYmxlZC10ZXh0IGNvbnRyYXN0XG4gICAgICAvLyBpbnN0ZWFkIG9mIHNlY29uZGFyeS10ZXh0LlxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCxcbiAgICAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVkaXQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVycm9yIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWFjdGl2ZSB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtZXJyb3Ige1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zdGVwcGVyLWhvcml6b250YWwsIC5tYXQtc3RlcHBlci12ZXJ0aWNhbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgfVxuXG4gIC5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmUge1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmUsXG4gIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YWZ0ZXIsXG4gIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmUge1xuICAgIGJvcmRlci10b3AtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cbn1cblxuQG1peGluIG1hdC1zdGVwcGVyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXN0ZXBwZXItdmVydGljYWwsIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1zdGVwLWxhYmVsIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpO1xuICAgIH07XG4gIH1cblxuICAubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICB9XG5cbiAgLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxuXG4gIC5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZCB7XG4gICAgZm9udDoge1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTIpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9O1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc29ydC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXNvcnQtaGVhZGVyLWFycm93IHtcbiAgICAkdGFibGUtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICAgICR0ZXh0LWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcblxuICAgIC8vIEJlY2F1c2UgdGhlIGFycm93IGlzIG1hZGUgdXAgb2YgbXVsdGlwbGUgZWxlbWVudHMgdGhhdCBhcmUgc3RhY2tlZCBvbiB0b3Agb2YgZWFjaCBvdGhlcixcbiAgICAvLyB3ZSBjYW4ndCB1c2UgdGhlIHNlbWktdHJhc3BhcmVudCBjb2xvciBmcm9tIHRoZSB0aGVtZSBkaXJlY3RseS4gSWYgdGhlIHZhbHVlIGlzIGEgY29sb3JcbiAgICAvLyAqdHlwZSosIHdlIGNvbnZlcnQgaXQgaW50byBhIHNvbGlkIGNvbG9yIGJ5IHRha2luZyB0aGUgb3BhY2l0eSBmcm9tIHRoZSByZ2JhIHZhbHVlIGFuZFxuICAgIC8vIHVzaW5nIHRoZSB2YWx1ZSB0byBkZXRlcm1pbmUgdGhlIHBlcmNlbnRhZ2Ugb2YgdGhlIGJhY2tncm91bmQgdG8gcHV0IGludG8gZm9yZWdyb3VuZFxuICAgIC8vIHdoZW4gbWl4aW5nIHRoZSBjb2xvcnMgdG9nZXRoZXIuIE90aGVyd2lzZSwgaWYgaXQgcmVzb2x2ZXMgdG8gc29tZXRoaW5nIGRpZmZlcmVudFxuICAgIC8vIChlLmcuIGl0IHJlc29sdmVzIHRvIGEgQ1NTIHZhcmlhYmxlKSwgd2UgdXNlIHRoZSBjb2xvciBkaXJlY3RseS5cbiAgICBAaWYgKHR5cGUtb2YoJHRhYmxlLWJhY2tncm91bmQpID09IGNvbG9yIGFuZCB0eXBlLW9mKCR0ZXh0LWNvbG9yKSA9PSBjb2xvcikge1xuICAgICAgJHRleHQtb3BhY2l0eTogb3BhY2l0eSgkdGV4dC1jb2xvcik7XG4gICAgICBjb2xvcjogbWl4KCR0YWJsZS1iYWNrZ3JvdW5kLCByZ2JhKCR0ZXh0LWNvbG9yLCAxKSwgKDEgLSAkdGV4dC1vcGFjaXR5KSAqIDEwMCUpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBjb2xvcjogJHRleHQtY29sb3I7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc29ydC10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtdGFicy10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRoZWFkZXItYm9yZGVyOiAxcHggc29saWQgbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcblxuICAubWF0LXRhYi1uYXYtYmFyLFxuICAubWF0LXRhYi1oZWFkZXIge1xuICAgIGJvcmRlci1ib3R0b206ICRoZWFkZXItYm9yZGVyO1xuICB9XG5cbiAgLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIHtcbiAgICAubWF0LXRhYi1uYXYtYmFyLFxuICAgIC5tYXQtdGFiLWhlYWRlciB7XG4gICAgICBib3JkZXItdG9wOiAkaGVhZGVyLWJvcmRlcjtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgJi5tYXQtdGFiLWRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgfVxuXG4gIC8vIFJlbW92ZSBoZWFkZXIgYm9yZGVyIHdoZW4gdGhlcmUgaXMgYSBiYWNrZ3JvdW5kIGNvbG9yXG4gIC5tYXQtdGFiLWdyb3VwW2NsYXNzKj0nbWF0LWJhY2tncm91bmQtJ10gLm1hdC10YWItaGVhZGVyLFxuICAubWF0LXRhYi1uYXYtYmFyW2NsYXNzKj0nbWF0LWJhY2tncm91bmQtJ10ge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgfVxuXG4gIC5tYXQtdGFiLWdyb3VwLCAubWF0LXRhYi1uYXYtYmFyIHtcbiAgICAkdGhlbWUtY29sb3JzOiAoXG4gICAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICAgIGFjY2VudDogJGFjY2VudCxcbiAgICAgIHdhcm46ICR3YXJuXG4gICAgKTtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJHRoZW1lLWNvbG9ycyB7XG4gICAgICAvLyBTZXQgdGhlIGZvcmVncm91bmQgY29sb3Igb2YgdGhlIHRhYnNcbiAgICAgICYubWF0LSN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWItbGFiZWwtZm9jdXMoJGNvbG9yKTtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1pbmstYmFyKCRjb2xvcik7XG5cbiAgICAgICAgLy8gT3ZlcnJpZGUgaW5rIGJhciB3aGVuIGJhY2tncm91bmQgY29sb3IgaXMgdGhlIHNhbWVcbiAgICAgICAgJi5tYXQtYmFja2dyb3VuZC0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1pbmstYmFyKCRjb2xvciwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICR0aGVtZS1jb2xvcnMge1xuICAgICAgLy8gU2V0IGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHRhYnMgYW5kIG92ZXJyaWRlIGZvY3VzIGNvbG9yXG4gICAgICAmLm1hdC1iYWNrZ3JvdW5kLSN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWItbGFiZWwtZm9jdXMoJGNvbG9yKTtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWJzLWJhY2tncm91bmQoJGNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9tYXQtaW5rLWJhcigkY29sb3IsICRodWU6IGRlZmF1bHQpIHtcbiAgLm1hdC1pbmstYmFyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGNvbG9yLCAkaHVlKTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC10YWItbGFiZWwtZm9jdXMoJHRhYi1mb2N1cy1jb2xvcikge1xuICAubWF0LXRhYi1sYWJlbCxcbiAgLm1hdC10YWItbGluayB7XG4gICAgJi5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgICAmLmNkay1wcm9ncmFtLWZvY3VzZWQge1xuICAgICAgJjpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR0YWItZm9jdXMtY29sb3IsIGxpZ2h0ZXIsIDAuMyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LXRhYnMtYmFja2dyb3VuZCgkYmFja2dyb3VuZC1jb2xvcikge1xuICAvLyBTZXQgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHRhYiBncm91cFxuICAubWF0LXRhYi1oZWFkZXIsIC5tYXQtdGFiLWxpbmtzLCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yKTtcbiAgfVxuXG4gIC8vIFNldCBsYWJlbHMgdG8gY29udHJhc3QgYWdhaW5zdCBiYWNrZ3JvdW5kXG4gIC5tYXQtdGFiLWxhYmVsLCAubWF0LXRhYi1saW5rIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0KTtcblxuICAgICYubWF0LXRhYi1kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBwYWdpbmF0aW9uIGNoZXZyb25zIHRvIGNvbnRyYXN0IGJhY2tncm91bmRcbiAgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QsIDAuNCk7XG4gIH1cblxuICAvLyBTZXQgcmlwcGxlcyBjb2xvciB0byBiZSB0aGUgY29udHJhc3QgY29sb3Igb2YgdGhlIG5ldyBiYWNrZ3JvdW5kLiBPdGhlcndpc2UgdGhlIHJpcHBsZVxuICAvLyBjb2xvciB3aWxsIGJlIGJhc2VkIG9uIHRoZSBhcHAgYmFja2dyb3VuZCBjb2xvci5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjEyKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRhYnMtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtdGFiLWdyb3VwIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJ1dHRvbik7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJ1dHRvbik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuQG1peGluIF9tYXQtdG9vbGJhci1jb2xvcigkcGFsZXR0ZSkge1xuICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICBjb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KTtcbn1cblxuQG1peGluIF9tYXQtdG9vbGJhci1mb3JtLWZpZWxkLW92ZXJyaWRlcyB7XG4gIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUsXG4gIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUsXG4gIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gIC5tYXQtc2VsZWN0LXZhbHVlLFxuICAubWF0LXNlbGVjdC1hcnJvdyxcbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuXG4gIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgY2FyZXQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2xiYXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtdG9vbGJhciB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBhcHAtYmFyKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCRwcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBfbWF0LXRvb2xiYXItZm9ybS1maWVsZC1vdmVycmlkZXM7XG4gIH1cbn1cblxuQG1peGluIG1hdC10b29sYmFyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXRvb2xiYXIsXG4gIC5tYXQtdG9vbGJhciBoMSxcbiAgLm1hdC10b29sYmFyIGgyLFxuICAubWF0LXRvb2xiYXIgaDMsXG4gIC5tYXQtdG9vbGJhciBoNCxcbiAgLm1hdC10b29sYmFyIGg1LFxuICAubWF0LXRvb2xiYXIgaDYge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCB0aXRsZSk7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cblxuXG5cblxuJG1hdC10b29sdGlwLXRhcmdldC1oZWlnaHQ6IDIycHg7XG4kbWF0LXRvb2x0aXAtZm9udC1zaXplOiAxMHB4O1xuJG1hdC10b29sdGlwLXZlcnRpY2FsLXBhZGRpbmc6ICgkbWF0LXRvb2x0aXAtdGFyZ2V0LWhlaWdodCAtICRtYXQtdG9vbHRpcC1mb250LXNpemUpIC8gMjtcblxuJG1hdC10b29sdGlwLWhhbmRzZXQtdGFyZ2V0LWhlaWdodDogMzBweDtcbiRtYXQtdG9vbHRpcC1oYW5kc2V0LWZvbnQtc2l6ZTogMTRweDtcbiRtYXQtdG9vbHRpcC1oYW5kc2V0LXZlcnRpY2FsLXBhZGRpbmc6XG4gICAgKCRtYXQtdG9vbHRpcC1oYW5kc2V0LXRhcmdldC1oZWlnaHQgLSAkbWF0LXRvb2x0aXAtaGFuZHNldC1mb250LXNpemUpIC8gMjtcblxuQG1peGluIG1hdC10b29sdGlwLXRoZW1lKCR0aGVtZSkge1xuICAubWF0LXRvb2x0aXAge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkbWF0LWdyZXksIDcwMCwgMC45KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2x0aXAtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtdG9vbHRpcCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgICBmb250LXNpemU6ICRtYXQtdG9vbHRpcC1mb250LXNpemU7XG4gICAgcGFkZGluZy10b3A6ICRtYXQtdG9vbHRpcC12ZXJ0aWNhbC1wYWRkaW5nO1xuICAgIHBhZGRpbmctYm90dG9tOiAkbWF0LXRvb2x0aXAtdmVydGljYWwtcGFkZGluZztcbiAgfVxuXG4gIC5tYXQtdG9vbHRpcC1oYW5kc2V0IHtcbiAgICBmb250LXNpemU6ICRtYXQtdG9vbHRpcC1oYW5kc2V0LWZvbnQtc2l6ZTtcbiAgICBwYWRkaW5nLXRvcDogJG1hdC10b29sdGlwLWhhbmRzZXQtdmVydGljYWwtcGFkZGluZztcbiAgICBwYWRkaW5nLWJvdHRvbTogJG1hdC10b29sdGlwLWhhbmRzZXQtdmVydGljYWwtcGFkZGluZztcbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtc25hY2stYmFyLXRoZW1lKCR0aGVtZSkge1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkdGhlbWUsIGlzLWRhcmspO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcblxuICAubWF0LXNuYWNrLWJhci1jb250YWluZXIge1xuICAgIC8vIFVzZSB0aGUgcHJpbWFyeSB0ZXh0IG9uIHRoZSBkYXJrIHRoZW1lLCBldmVuIHRob3VnaCB0aGUgbGlnaHRlciBvbmUgdXNlc1xuICAgIC8vIGEgc2Vjb25kYXJ5LCBiZWNhdXNlIHRoZSBjb250cmFzdCBvbiB0aGUgbGlnaHQgcHJpbWFyeSB0ZXh0IGlzIHBvb3IuXG4gICAgY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCAkZGFyay1wcmltYXJ5LXRleHQsICRsaWdodC1zZWNvbmRhcnktdGV4dCk7XG4gICAgYmFja2dyb3VuZDogaWYoJGlzLWRhcmstdGhlbWUsIG1hcC1nZXQoJG1hdC1ncmV5LCA1MCksICMzMjMyMzIpO1xuXG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oNiwgJHRoZW1lKTtcbiAgfVxuXG4gIC5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiB7XG4gICAgY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCBpbmhlcml0LCBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCkpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc25hY2stYmFyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXNpbXBsZS1zbmFja2JhciB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9XG4gIH1cblxuICAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogaW5oZXJpdDtcbiAgICAgIHNpemU6IGluaGVyaXQ7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIGZpbGwgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWZpbGwtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG5cbiAgJGZpbGwtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBiYXNlLCBpZigkaXMtZGFyay10aGVtZSwgMC4xLCAwLjA0KSk7XG4gICRmaWxsLWRpc2FibGVkLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgaWYoJGlzLWRhcmstdGhlbWUsIDAuMDUsIDAuMDIpKTtcbiAgJHVuZGVybGluZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyLCBpZigkaXMtZGFyay10aGVtZSwgMC41LCAwLjQyKSk7XG4gICRsYWJlbC1kaXNhYmxlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIHtcbiAgICAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmlsbC1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZpbGwtZGlzYWJsZWQtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkbGFiZWwtZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZTogMDtcblxuLy8gQXBwbGllcyBhIGZsb2F0aW5nIGxhYmVsIGFib3ZlIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaXRzZWxmLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1maWxsLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLWZpbGwtZGVkdXBlKVxuICAgICAgICAgICAgIHNjYWxlKCRmb250LXNjYWxlKTtcbiAgd2lkdGg6IDEwMCUgLyAkZm9udC1zY2FsZSArICRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZTtcblxuICAkbWF0LWZvcm0tZmllbGQtZmlsbC1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZSArIDAuMDAwMDEgIWdsb2JhbDtcbn1cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWZpbGwtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcbiAgLy8gVGhlIGFtb3VudCB0byBzY2FsZSB0aGUgZm9udCBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsIGFuZCBzdWJzY3JpcHQuXG4gICRzdWJzY3JpcHQtZm9udC1zY2FsZTogMC43NTtcbiAgLy8gVGhlIHBhZGRpbmcgb24gdG9wIG9mIHRoZSBpbmZpeC5cbiAgJGluZml4LXBhZGRpbmctdG9wOiAwLjI1ZW07XG4gIC8vIFRoZSBwYWRkaW5nIGJlbG93IHRoZSBpbmZpeC5cbiAgJGluZml4LXBhZGRpbmctYm90dG9tOiAwLjc1ZW07XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBhbW91bnQgd2Ugb2Zmc2V0IHRoZSBsYWJlbCBmcm9tIHRoZSBpbnB1dCB0ZXh0IGluIHRoZSBmaWxsIGFwcGVhcmFuY2UuXG4gICRmaWxsLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0OiAtMC41ZW07XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICAgIHBhZGRpbmc6ICRpbmZpeC1wYWRkaW5nLXRvcCAwICRpbmZpeC1wYWRkaW5nLWJvdHRvbSAwO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmctdG9wO1xuICAgICAgbWFyZ2luLXRvcDogJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQ7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtZmlsbC1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLXRvcCArICRmaWxsLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1maWxsLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmctdG9wICsgJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQsXG4gICAgICAgICAgICAgICAgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHRoZSBsZWdhY3kgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAkdW5kZXJsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjcsIDAuNDIpKTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kge1xuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtaGludCB7XG4gICAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgQGluY2x1ZGUgbWF0LWNvbnRyb2wtZGlzYWJsZWQtdW5kZXJsaW5lKCR1bmRlcmxpbmUtY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlOiAwO1xuXG4vLyBBcHBsaWVzIGEgZmxvYXRpbmcgbGFiZWwgYWJvdmUgdGhlIGZvcm0gZmllbGQgY29udHJvbCBpdHNlbGYuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZygkZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKSB7XG4gIC8vIFdlIHVzZSBwZXJzcGVjdGl2ZSB0byBmaXggdGhlIHRleHQgYmx1cnJpbmVzcyBhcyBkZXNjcmliZWQgaGVyZTpcbiAgLy8gaHR0cDovL3d3dy51c2VyYWdlbnRtYW4uY29tL2Jsb2cvMjAxNC8wNS8wNC9maXhpbmctdHlwb2dyYXBoeS1pbnNpZGUtb2YtMi1kLWNzcy10cmFuc2Zvcm1zL1xuICAvLyBUaGlzIHJlc3VsdHMgaW4gYSBzbWFsbCBqaXR0ZXIgYWZ0ZXIgdGhlIGxhYmVsIGZsb2F0cyBvbiBGaXJlZm94LCB3aGljaCB0aGVcbiAgLy8gdHJhbnNsYXRlWiBmaXhlcy5cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nKSBzY2FsZSgkZm9udC1zY2FsZSkgcGVyc3BlY3RpdmUoMTAwcHgpXG4gIHRyYW5zbGF0ZVooMC4wMDFweCArICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlKTtcbiAgLy8gVGhlIHRyaWNrcyBhYm92ZSB1c2VkIHRvIHNtb290aCBvdXQgdGhlIGFuaW1hdGlvbiBvbiBjaHJvbWUgYW5kIGZpcmVmb3ggYWN0dWFsbHkgbWFrZSB0aGluZ3NcbiAgLy8gd29yc2Ugb24gSUUsIHNvIHdlIGRvbid0IGluY2x1ZGUgdGhlbSBpbiB0aGUgSUUgdmVyc2lvbi5cbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJGluZml4LW1hcmdpbi10b3AgLSAkaW5maXgtcGFkZGluZyArICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlKVxuICAgICAgICAgICAgICAgICAgc2NhbGUoJGZvbnQtc2NhbGUpO1xuXG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZTtcblxuICAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZTogJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbi8vIFNhbWUgYXMgbWl4aW4gYWJvdmUsIGJ1dCBvbWl0cyB0aGUgdHJhbnNsYXRlWiBmb3IgcHJpbnRpbmcgcHVycG9zZXMuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludCgkZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKSB7XG4gIC8vIFRoaXMgcmVzdWx0cyBpbiBhIHNtYWxsIGppdHRlciBhZnRlciB0aGUgbGFiZWwgZmxvYXRzIG9uIEZpcmVmb3gsIHdoaWNoIHRoZVxuICAvLyB0cmFuc2xhdGVaIGZpeGVzLlxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRpbmZpeC1tYXJnaW4tdG9wIC0gJGluZml4LXBhZGRpbmcgKyAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZSlcbiAgICAgICAgICAgICAgICAgIHNjYWxlKCRmb250LXNjYWxlKTtcbiAgLy8gVGhlIHRyaWNrcyBhYm92ZSB1c2VkIHRvIHNtb290aCBvdXQgdGhlIGFuaW1hdGlvbiBvbiBjaHJvbWUgYW5kIGZpcmVmb3ggYWN0dWFsbHkgbWFrZSB0aGluZ3NcbiAgLy8gd29yc2Ugb24gSUUsIHNvIHdlIGRvbid0IGluY2x1ZGUgdGhlbSBpbiB0aGUgSUUgdmVyc2lvbi5cbiAgJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlICsgMC4wMDAwMSAhZ2xvYmFsO1xufVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtbGVnYWN5LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBhbW91bnQgb2Ygc3BhY2UgYmV0d2VlbiB0aGUgdG9wIG9mIHRoZSBsaW5lIGFuZCB0aGUgdG9wIG9mIHRoZSBhY3R1YWwgdGV4dFxuICAvLyAoYXMgYSBmcmFjdGlvbiBvZiB0aGUgZm9udC1zaXplKS5cbiAgJGxpbmUtc3BhY2luZzogKCRsaW5lLWhlaWdodCAtIDEpIC8gMjtcbiAgLy8gVGhlIHBhZGRpbmcgb24gdGhlIGluZml4LiBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZSwgYnV0IHNlZW0gdG8gbWVhc3VyZSBmcm9tIHRoZSBlZGdlXG4gIC8vIG9mIHRoZSB0ZXh0IGl0c2VsZiwgbm90IHRoZSBlZGdlIG9mIHRoZSBsaW5lOyB0aGVyZWZvcmUgd2Ugc3VidHJhY3Qgb2ZmIHRoZSBsaW5lIHNwYWNpbmcuXG4gICRpbmZpeC1wYWRkaW5nOiAwLjVlbSAtICRsaW5lLXNwYWNpbmc7XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBib3R0b20gb2YgdGhlIC5tYXQtZm9ybS1maWVsZC1mbGV4IGFyZWEgYW5kIHRoZSBzdWJzY3JpcHQgd3JhcHBlci5cbiAgLy8gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCB0aGlzIG1hcmdpbiBpcyBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgd2l0aCB0aGUgc3Vic2NyaXB0XG4gIC8vIHRleHQgZm9udCBzaXplLCBzbyB3ZSBuZWVkIHRvIGRpdmlkZSBieSB0aGUgc2NhbGUgZmFjdG9yIHRvIG1ha2UgaXQgaGFsZiBvZiB0aGUgb3JpZ2luYWwgdGV4dFxuICAvLyBzaXplLiBXZSBhZ2FpbiBuZWVkIHRvIHN1YnRyYWN0IG9mZiB0aGUgbGluZSBzcGFjaW5nIHNpbmNlIHRoZSBtb2NrcyBtZWFzdXJlIHRvIHRoZSBlZGdlIG9mIHRoZVxuICAvLyB0ZXh0LCBub3QgdGhlICBlZGdlIG9mIHRoZSBsaW5lLlxuICAkc3Vic2NyaXB0LW1hcmdpbi10b3A6IDAuNWVtIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlIC0gKCRsaW5lLXNwYWNpbmcgKiAyKTtcbiAgLy8gVGhlIHBhZGRpbmcgYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC13cmFwcGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBzdWJzY3JpcHQsIHNpbmNlIGl0J3NcbiAgLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkLiBUaGlzIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIHN1YnNjcmlwdCdzIG1hcmdpbiBhbmQgbGluZS1oZWlnaHQsIGJ1dCB3ZVxuICAvLyBuZWVkIHRvIG11bHRpcGx5IGJ5IHRoZSBzdWJzY3JpcHQgZm9udCBzY2FsZSBmYWN0b3Igc2luY2UgdGhlIHdyYXBwZXIgaGFzIGEgbGFyZ2VyIGZvbnQgc2l6ZS5cbiAgJHdyYXBwZXItcGFkZGluZy1ib3R0b206ICgkc3Vic2NyaXB0LW1hcmdpbi10b3AgKyAkbGluZS1oZWlnaHQpICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgICAgcGFkZGluZy1ib3R0b206ICR3cmFwcGVyLXBhZGRpbmctYm90dG9tO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICBwYWRkaW5nOiAkaW5maXgtcGFkZGluZyAwO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjAgd2lsbCByZWx5IG9uIEF1dG9maWxsTW9uaXRvciBpbnN0ZWFkLlxuICAgICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICAvLyBXZSB3YW50IHRoZSB1bmRlcmxpbmUgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgICAvLyBzbyB3ZSBtb3ZlIGl0IHVwIGJ5IHRoZSBwYWRkaW5nIGFtb3VudC5cbiAgICAgIGJvdHRvbTogJHdyYXBwZXItcGFkZGluZy1ib3R0b207XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgICAgIG1hcmdpbi10b3A6ICRzdWJzY3JpcHQtbWFyZ2luLXRvcDtcblxuICAgICAgLy8gV2Ugd2FudCB0aGUgc3Vic2NyaXB0IHRvIHN0YXJ0IGF0IHRoZSBlbmQgb2YgdGhlIGNvbnRlbnQgYm94LCBub3QgdGhlIHBhZGRpbmcgYm94LFxuICAgICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQgKGFkanVzdGVkIGZvciB0aGUgc21hbGxlciBmb250IHNpemUpO1xuICAgICAgdG9wOiBjYWxjKDEwMCUgLSAjeyR3cmFwcGVyLXBhZGRpbmctYm90dG9tIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gdHJhbnNsYXRlWiBjYXVzZXMgdGhlIGxhYmVsIHRvIG5vdCBhcHBlYXIgd2hpbGUgcHJpbnRpbmcsIHNvIHdlIG92ZXJyaWRlIGl0IHRvIG5vdFxuICAvLyBhcHBseSB0cmFuc2xhdGVaIHdoaWxlIHByaW50aW5nXG4gIEBtZWRpYSBwcmludCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgICAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludChcbiAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjAgd2lsbCByZWx5IG9uIEF1dG9maWxsTW9uaXRvciBpbnN0ZWFkLlxuICAgICAgICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbDotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nLXByaW50KFxuICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAgIC8vICh1c2VkIGFzIGEgcHVyZSBDU1Mgc3RhbmQtaW4gZm9yIG1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCkuXG4gICAgICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludChcbiAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHRoZSBvdXRsaW5lIGFwcGVhcmFuY2Ugb2YgdGhlIGZvcm0tZmllbGQuXG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkbGFiZWwtZGlzYWJsZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gICRvdXRsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjMsIDAuMTIpKTtcbiAgJG91dGxpbmUtY29sb3ItaG92ZXI6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDEsIDAuODcpKTtcbiAgJG91dGxpbmUtY29sb3ItcHJpbWFyeTogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgJG91dGxpbmUtY29sb3ItYWNjZW50OiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICRvdXRsaW5lLWNvbG9yLXdhcm46IG1hdC1jb2xvcigkd2Fybik7XG4gICRvdXRsaW5lLWNvbG9yLWRpc2FibGVkOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjE1LCAwLjA2KSk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xuICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1ob3ZlcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb2N1c2VkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLXByaW1hcnk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gICAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1hY2NlbnQ7XG4gICAgICB9XG5cbiAgICAgICYubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDbGFzcyByZXBlYXRlZCBzbyB0aGF0IHJ1bGUgaXMgc3BlY2lmaWMgZW5vdWdoIHRvIG92ZXJyaWRlIGZvY3VzZWQgYWNjZW50IGNvbG9yIGNhc2UuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQge1xuICAgICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkbGFiZWwtZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLWRpc2FibGVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWRlZHVwZTogMDtcblxuLy8gQXBwbGllcyBhIGZsb2F0aW5nIGxhYmVsIGFib3ZlIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaXRzZWxmLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlKVxuICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGU7XG5cbiAgJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlOiAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBwYWRkaW5nIGFib3ZlIGFuZCBiZWxvdyB0aGUgaW5maXguXG4gICRpbmZpeC1wYWRkaW5nOiAxZW07XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBib3R0b20gb2YgdGhlIC5tYXQtZm9ybS1maWVsZC1mbGV4IGFyZWEgYW5kIHRoZSBzdWJzY3JpcHQgd3JhcHBlci5cbiAgLy8gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCB0aGlzIG1hcmdpbiBpcyBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgd2l0aCB0aGUgc3Vic2NyaXB0XG4gIC8vIHRleHQgZm9udCBzaXplLCBzbyB3ZSBuZWVkIHRvIGRpdmlkZSBieSB0aGUgc2NhbGUgZmFjdG9yIHRvIG1ha2UgaXQgaGFsZiBvZiB0aGUgb3JpZ2luYWwgdGV4dFxuICAvLyBzaXplLlxuICAkc3Vic2NyaXB0LW1hcmdpbi10b3A6IDAuNWVtIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBUaGUgcGFkZGluZyBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLXdyYXBwZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIHN1YnNjcmlwdCwgc2luY2UgaXQnc1xuICAvLyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQuIFRoaXMgaXMgYSBjb21iaW5hdGlvbiBvZiB0aGUgc3Vic2NyaXB0J3MgbWFyZ2luIGFuZCBsaW5lLWhlaWdodCwgYnV0IHdlXG4gIC8vIG5lZWQgdG8gbXVsdGlwbHkgYnkgdGhlIHN1YnNjcmlwdCBmb250IHNjYWxlIGZhY3RvciBzaW5jZSB0aGUgd3JhcHBlciBoYXMgYSBsYXJnZXIgZm9udCBzaXplLlxuICAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTogKCRzdWJzY3JpcHQtbWFyZ2luLXRvcCArICRsaW5lLWhlaWdodCkgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBhbW91bnQgd2Ugb2Zmc2V0IHRoZSBsYWJlbCBmcm9tIHRoZSBpbnB1dCB0ZXh0IGluIHRoZSBvdXRsaW5lIGFwcGVhcmFuY2UuXG4gICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0OiAtMC4yNWVtO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUge1xuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICBwYWRkaW5nOiAkaW5maXgtcGFkZGluZyAwICRpbmZpeC1wYWRkaW5nIDA7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIHRvcDogJGluZml4LW1hcmdpbi10b3AgKyAkaW5maXgtcGFkZGluZztcbiAgICAgIG1hcmdpbi10b3A6ICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0O1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLW91dGxpbmUtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZyArICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcgKyAkb3V0bGluZS1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldCxcbiAgICAgICAgICAgICAgICAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIHN0YW5kYXJkIGFwcGVhcmFuY2Ugb2YgdGhlIGZvcm0tZmllbGQuXG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkdW5kZXJsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjcsIDAuNDIpKTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICBAaW5jbHVkZSBtYXQtY29udHJvbC1kaXNhYmxlZC11bmRlcmxpbmUoJHVuZGVybGluZS1jb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10eXBvZ3JhcGh5KCRjb25maWcpIHt9XG5cblxuLy8gVGhlbWUgc3R5bGVzIHRoYXQgYXBwbHkgdG8gYWxsIGFwcGVhcmFuY2VzIG9mIHRoZSBmb3JtLWZpZWxkLlxuQG1peGluIG1hdC1mb3JtLWZpZWxkLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAvLyBMYWJlbCBjb2xvcnMuIFJlcXVpcmVkIGlzIHVzZWQgZm9yIHRoZSBgKmAgc3RhciBzaG93biBpbiB0aGUgbGFiZWwuXG4gICRsYWJlbC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCwgaWYoJGlzLWRhcmstdGhlbWUsIDAuNywgMC42KSk7XG4gICRmb2N1c2VkLWxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuICAkcmVxdWlyZWQtbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcblxuICAvLyBVbmRlcmxpbmUgY29sb3JzLlxuICAkdW5kZXJsaW5lLWNvbG9yLWJhc2U6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDEsIDAuODcpKTtcbiAgJHVuZGVybGluZS1jb2xvci1hY2NlbnQ6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcbiAgJHVuZGVybGluZS1jb2xvci13YXJuOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICAkdW5kZXJsaW5lLWZvY3VzZWQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1oaW50IHtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgY29sb3I6ICRmb2N1c2VkLWxhYmVsLWNvbG9yO1xuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWFjY2VudDtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIge1xuICAgIGNvbG9yOiAkcmVxdWlyZWQtbGFiZWwtY29sb3I7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWJhc2U7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQge1xuICAgIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1mb2N1c2VkLWNvbG9yO1xuXG4gICAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWFjY2VudDtcbiAgICAgIH1cblxuICAgICAgJi5tYXQtd2FybiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpIHtcbiAgICAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWZvY3VzZWQtY29sb3I7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3ItYWNjZW50O1xuICAgIH1cblxuICAgICYubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN0eWxpbmcgZm9yIHRoZSBlcnJvciBzdGF0ZSBvZiB0aGUgZm9ybSBmaWVsZC4gTm90ZSB0aGF0IHdoaWxlIHRoZSBzYW1lIGNhbiBiZVxuICAvLyBhY2hpZXZlZCB3aXRoIHRoZSBuZy0qIGNsYXNzZXMsIHdlIHVzZSB0aGlzIGFwcHJvYWNoIGluIG9yZGVyIHRvIGVuc3VyZSB0aGF0IHRoZSBzYW1lXG4gIC8vIGxvZ2ljIGlzIHVzZWQgdG8gc3R5bGUgdGhlIGVycm9yIHN0YXRlIGFuZCB0byBzaG93IHRoZSBlcnJvciBtZXNzYWdlcy5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQge1xuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuXG4gICAgICAmLm1hdC1hY2NlbnQsXG4gICAgICAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtcmlwcGxlLFxuICAgIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgfVxuICB9XG5cbiAgLm1hdC1lcnJvciB7XG4gICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1maWxsLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhlbWUoJHRoZW1lKTtcbn1cblxuLy8gVXNlZCB0byBtYWtlIGluc3RhbmNlcyBvZiB0aGUgX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nIG1peGluIG5lZ2xpZ2libHkgZGlmZmVyZW50LFxuLy8gYW5kIHByZXZlbnQgR29vZ2xlJ3MgQ1NTIE9wdGltaXplciBmcm9tIGNvbGxhcHNpbmcgdGhlIGRlY2xhcmF0aW9ucy4gVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBzb21lXG4vLyBvZiB0aGUgc2VsZWN0b3JzIGNvbnRhaW4gcHNldWRvLWNsYXNzZXMgbm90IHJlY29nbml6ZWQgaW4gYWxsIGJyb3dzZXJzLiBJZiBhIGJyb3dzZXIgZW5jb3VudGVyc1xuLy8gYW4gdW5rbm93biBwc2V1ZG8tY2xhc3MgaXQgd2lsbCBkaXNjYXJkIHRoZSBlbnRpcmUgcnVsZSBzZXQuXG4kbWF0LWZvcm0tZmllbGQtZGVkdXBlOiAwO1xuXG4vLyBBcHBsaWVzIGEgZmxvYXRpbmcgbGFiZWwgYWJvdmUgdGhlIGZvcm0gZmllbGQgY29udHJvbCBpdHNlbGYuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLWRlZHVwZSlcbiAgICAgICAgICAgICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtZGVkdXBlO1xuXG4gICRtYXQtZm9ybS1maWVsZC1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuXG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBwcmVmaXggYW5kIHN1ZmZpeCBpY29ucy5cbiAgJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNjYWxlOiAxLjU7XG5cbiAgLy8gVGhlIHBhZGRpbmcgb24gdGhlIGluZml4LiBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZS5cbiAgJGluZml4LXBhZGRpbmc6IDAuNWVtO1xuICAvLyBUaGUgbWFyZ2luIGFwcGxpZWQgdG8gdGhlIGZvcm0tZmllbGQtaW5maXggdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsLlxuICAkaW5maXgtbWFyZ2luLXRvcDogMWVtICogJGxpbmUtaGVpZ2h0ICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBGb250IHNpemUgdG8gdXNlIGZvciB0aGUgbGFiZWwgYW5kIHN1YnNjcmlwdCB0ZXh0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2l6ZTogJHN1YnNjcmlwdC1mb250LXNjYWxlICogMTAwJTtcbiAgLy8gRm9udCBzaXplIHRvIHVzZSBmb3IgdGhlIGZvciB0aGUgcHJlZml4IGFuZCBzdWZmaXggaWNvbnMuXG4gICRwcmVmaXgtc3VmZml4LWljb24tZm9udC1zaXplOiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGUgKiAxMDAlO1xuICAvLyBUaGUgc3BhY2UgYmV0d2VlbiB0aGUgYm90dG9tIG9mIHRoZSAubWF0LWZvcm0tZmllbGQtZmxleCBhcmVhIGFuZCB0aGUgc3Vic2NyaXB0IHdyYXBwZXIuXG4gIC8vIE1vY2tzIHNob3cgaGFsZiBvZiB0aGUgdGV4dCBzaXplLCBidXQgdGhpcyBtYXJnaW4gaXMgYXBwbGllZCB0byBhbiBlbGVtZW50IHdpdGggdGhlIHN1YnNjcmlwdFxuICAvLyB0ZXh0IGZvbnQgc2l6ZSwgc28gd2UgbmVlZCB0byBkaXZpZGUgYnkgdGhlIHNjYWxlIGZhY3RvciB0byBtYWtlIGl0IGhhbGYgb2YgdGhlIG9yaWdpbmFsIHRleHRcbiAgLy8gc2l6ZS5cbiAgJHN1YnNjcmlwdC1tYXJnaW4tdG9wOiAwLjVlbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcbiAgLy8gVGhlIHBhZGRpbmcgYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC13cmFwcGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBzdWJzY3JpcHQsIHNpbmNlIGl0J3NcbiAgLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkLiBUaGlzIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIHN1YnNjcmlwdCdzIG1hcmdpbiBhbmQgbGluZS1oZWlnaHQsIGJ1dCB3ZVxuICAvLyBuZWVkIHRvIG11bHRpcGx5IGJ5IHRoZSBzdWJzY3JpcHQgZm9udCBzY2FsZSBmYWN0b3Igc2luY2UgdGhlIHdyYXBwZXIgaGFzIGEgbGFyZ2VyIGZvbnQgc2l6ZS5cbiAgJHdyYXBwZXItcGFkZGluZy1ib3R0b206ICgkc3Vic2NyaXB0LW1hcmdpbi10b3AgKyAkbGluZS1oZWlnaHQpICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuXG4gIC5tYXQtZm9ybS1maWVsZCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGlucHV0KTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHdyYXBwZXItcGFkZGluZy1ib3R0b207XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtcHJlZml4LFxuICAubWF0LWZvcm0tZmllbGQtc3VmZml4IHtcbiAgICAvLyBBbGxvdyBpY29ucyBpbiBhIHByZWZpeCBvciBzdWZmaXggdG8gYWRhcHQgdG8gdGhlIGNvcnJlY3Qgc2l6ZS5cbiAgICAubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gICAgfVxuXG4gICAgLy8gQWxsb3cgaWNvbiBidXR0b25zIGluIGEgcHJlZml4IG9yIHN1ZmZpeCB0byBhZGFwdCB0byB0aGUgY29ycmVjdCBzaXplLlxuICAgIC5tYXQtaWNvbi1idXR0b24ge1xuICAgICAgaGVpZ2h0OiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGUgKiAxZW07XG4gICAgICB3aWR0aDogJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNjYWxlICogMWVtO1xuXG4gICAgICAubWF0LWljb24ge1xuICAgICAgICBoZWlnaHQ6ICRsaW5lLWhlaWdodCAqIDFlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIHBhZGRpbmc6ICRpbmZpeC1wYWRkaW5nIDA7XG4gICAgLy8gVGhyb3dzIG9mZiB0aGUgYmFzZWxpbmUgaWYgd2UgZG8gaXQgYXMgYSByZWFsIG1hcmdpbiwgc28gd2UgZG8gaXQgYXMgYSBib3JkZXIgaW5zdGVhZC5cbiAgICBib3JkZXItdG9wOiAkaW5maXgtbWFyZ2luLXRvcCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICB9XG5cbiAgICAvLyBTZXJ2ZXItc2lkZSByZW5kZXJlZCBtYXRJbnB1dCB3aXRoIGEgbGFiZWwgYXR0cmlidXRlIGJ1dCBsYWJlbCBub3Qgc2hvd25cbiAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgdG9wOiAtJGluZml4LW1hcmdpbi10b3A7XG4gICAgcGFkZGluZy10b3A6ICRpbmZpeC1tYXJnaW4tdG9wO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmc7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAvLyBXZSB3YW50IHRoZSB1bmRlcmxpbmUgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQuXG4gICAgYm90dG9tOiAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciB7XG4gICAgZm9udC1zaXplOiAkc3Vic2NyaXB0LWZvbnQtc2l6ZTtcbiAgICBtYXJnaW4tdG9wOiAkc3Vic2NyaXB0LW1hcmdpbi10b3A7XG5cbiAgICAvLyBXZSB3YW50IHRoZSBzdWJzY3JpcHQgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQgKGFkanVzdGVkIGZvciB0aGUgc21hbGxlciBmb250IHNpemUpO1xuICAgIHRvcDogY2FsYygxMDAlIC0gI3skd3JhcHBlci1wYWRkaW5nLWJvdHRvbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZX0pO1xuICB9XG5cbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtbGVnYWN5LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXN0YW5kYXJkLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWZpbGwtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtb3V0bGluZS10eXBvZ3JhcGh5KCRjb25maWcpO1xufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtdHJlZS10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXRyZWUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgfVxuXG4gIC5tYXQtdHJlZS1ub2RlLFxuICAubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtdHJlZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC10cmVlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC10cmVlLW5vZGUsXG4gIC5tYXQtbmVzdGVkLXRyZWUtbm9kZSB7XG4gICAgZm9udC13ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpO1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG4vLyBJbmNsdWRlcyBhbGwgb2YgdGhlIHR5cG9ncmFwaGljIHN0eWxlcy5cbkBtaXhpbiBhbmd1bGFyLW1hdGVyaWFsLXR5cG9ncmFwaHkoJGNvbmZpZzogbnVsbCkge1xuICBAaWYgJGNvbmZpZyA9PSBudWxsIHtcbiAgICAkY29uZmlnOiBtYXQtdHlwb2dyYXBoeS1jb25maWcoKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1hdC1iYWRnZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYmFzZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYXV0b2NvbXBsZXRlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1ib3R0b20tc2hlZXQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYnV0dG9uLXRvZ2dsZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtY2FyZC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtY2hlY2tib3gtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWNoaXBzLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10YWJsZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZGF0ZXBpY2tlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZGlhbG9nLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1leHBhbnNpb24tcGFuZWwtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWdyaWQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtaWNvbi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtaW5wdXQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LW1lbnUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXBhZ2luYXRvci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3MtYmFyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcm9ncmVzcy1zcGlubmVyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1yYWRpby10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc2VsZWN0LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zaWRlbmF2LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zbGlkZS10b2dnbGUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXNsaWRlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc3RlcHBlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc29ydC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdGFicy10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdG9vbGJhci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdG9vbHRpcC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtb3B0aW9uLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1vcHRncm91cC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc25hY2stYmFyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10cmVlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG59XG5cblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBzdHlsZXMgdGhhdCBhcmUgbm90IHRoZW1lLWRlcGVuZGVudC5cbkBtaXhpbiBtYXQtY29yZSgkdHlwb2dyYXBoeS1jb25maWc6IG51bGwpIHtcbiAgQGluY2x1ZGUgYW5ndWxhci1tYXRlcmlhbC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5LWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1yaXBwbGUoKTtcbiAgQGluY2x1ZGUgY2RrLWExMXkoKTtcbiAgQGluY2x1ZGUgY2RrLW92ZXJsYXkoKTtcbiAgQGluY2x1ZGUgY2RrLXRleHQtZmllbGQoKTtcbn1cblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBzdHlsZXMgdGhhdCBkZXBlbmQgb24gdGhlIHRoZW1lLlxuQG1peGluIG1hdC1jb3JlLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtcmlwcGxlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1vcHRpb24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LW9wdGdyb3VwLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1wc2V1ZG8tY2hlY2tib3gtdGhlbWUoJHRoZW1lKTtcblxuICAvLyBQcm92aWRlcyBleHRlcm5hbCBDU1MgY2xhc3NlcyBmb3IgZWFjaCBlbGV2YXRpb24gdmFsdWUuIEVhY2ggQ1NTIGNsYXNzIGlzIGZvcm1hdHRlZCBhc1xuICAvLyBgbWF0LWVsZXZhdGlvbi16JHpWYWx1ZWAgd2hlcmUgYCR6VmFsdWVgIGNvcnJlc3BvbmRzIHRvIHRoZSB6LXNwYWNlIHRvIHdoaWNoIHRoZSBlbGVtZW50IGlzXG4gIC8vIGVsZXZhdGVkLlxuICBAZm9yICR6VmFsdWUgZnJvbSAwIHRocm91Z2ggMjQge1xuICAgIC4jeyRfbWF0LWVsZXZhdGlvbi1wcmVmaXh9I3skelZhbHVlfSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigkelZhbHVlLCAkdGhlbWUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdyYXBwZXIgZWxlbWVudCB0aGF0IHByb3ZpZGVzIHRoZSB0aGVtZSBiYWNrZ3JvdW5kIHdoZW4gdGhlIHVzZXIncyBjb250ZW50IGlzbid0XG4gIC8vIGluc2lkZSBvZiBhIGBtYXQtc2lkZW5hdi1jb250YWluZXJgLiBOb3RlIHRoYXQgd2UgbmVlZCB0byBleGNsdWRlIHRoZSBhbXBlcnNhbmRcbiAgLy8gc2VsZWN0b3IgaW4gY2FzZSB0aGUgbWl4aW4gaXMgaW5jbHVkZWQgYXQgdGhlIHRvcCBsZXZlbC5cbiAgLm1hdC1hcHAtYmFja2dyb3VuZCN7aWYoJiwgJywgJi5tYXQtYXBwLWJhY2tncm91bmQnLCAnJyl9IHtcbiAgICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAgICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLy8gTWFya2VyIHRoYXQgaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgdXNlciBoYXMgYWRkZWQgYSB0aGVtZSB0byB0aGVpciBwYWdlLlxuICBAYXQtcm9vdCB7XG4gICAgLm1hdC10aGVtZS1sb2FkZWQtbWFya2VyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtZGl2aWRlci10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWRpdmlkZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWRpdmlkZXItdmVydGljYWwge1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxufVxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4vLyBDcmVhdGUgYSB0aGVtZS5cbkBtaXhpbiBhbmd1bGFyLW1hdGVyaWFsLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtY29yZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtYXV0b2NvbXBsZXRlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1iYWRnZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtYm90dG9tLXNoZWV0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1idXR0b24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10b2dnbGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWNhcmQtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWNoZWNrYm94LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1jaGlwcy10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtdGFibGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWRhdGVwaWNrZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWRpYWxvZy10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZGl2aWRlci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZXhwYW5zaW9uLXBhbmVsLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1ncmlkLWxpc3QtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWljb24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWlucHV0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1saXN0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1tZW51LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1wYWdpbmF0b3ItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLWJhci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtcmFkaW8tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNlbGVjdC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtc2lkZW5hdi10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtc2xpZGUtdG9nZ2xlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1zbGlkZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXN0ZXBwZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNvcnQtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRhYnMtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRvb2xiYXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRvb2x0aXAtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRyZWUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNuYWNrLWJhci10aGVtZSgkdGhlbWUpO1xufVxuIiwiLyogVGhlbWUgZm9yIHRoZSByaXBwbGUgZWxlbWVudHMuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIG1hdGVyaWFsL25vLXByZWZpeGVzICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4ubWF0LWJhZGdlLWNvbnRlbnQge1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1iYWRnZS1zbWFsbCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBmb250LXNpemU6IDlweDtcbn1cblxuLm1hdC1iYWRnZS1sYXJnZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBmb250LXNpemU6IDI0cHg7XG59XG5cbi5tYXQtaDEsIC5tYXQtaGVhZGxpbmUsIC5tYXQtdHlwb2dyYXBoeSBoMSB7XG4gIGZvbnQ6IDQwMCAyNHB4LzMycHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDE2cHg7XG59XG5cbi5tYXQtaDIsIC5tYXQtdGl0bGUsIC5tYXQtdHlwb2dyYXBoeSBoMiB7XG4gIGZvbnQ6IDUwMCAyMHB4LzMycHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDE2cHg7XG59XG5cbi5tYXQtaDMsIC5tYXQtc3ViaGVhZGluZy0yLCAubWF0LXR5cG9ncmFwaHkgaDMge1xuICBmb250OiA0MDAgMTZweC8yOHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCAxNnB4O1xufVxuXG4ubWF0LWg0LCAubWF0LXN1YmhlYWRpbmctMSwgLm1hdC10eXBvZ3JhcGh5IGg0IHtcbiAgZm9udDogNDAwIDE1cHgvMjRweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgMTZweDtcbn1cblxuLm1hdC1oNSwgLm1hdC10eXBvZ3JhcGh5IGg1IHtcbiAgZm9udDogNDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDEycHg7XG59XG5cbi5tYXQtaDYsIC5tYXQtdHlwb2dyYXBoeSBoNiB7XG4gIGZvbnQ6IDQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCAxMnB4O1xufVxuXG4ubWF0LWJvZHktc3Ryb25nLCAubWF0LWJvZHktMiB7XG4gIGZvbnQ6IDUwMCAxNHB4LzI0cHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtYm9keSwgLm1hdC1ib2R5LTEsIC5tYXQtdHlwb2dyYXBoeSB7XG4gIGZvbnQ6IDQwMCAxNHB4LzIwcHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4ubWF0LWJvZHkgcCwgLm1hdC1ib2R5LTEgcCwgLm1hdC10eXBvZ3JhcGh5IHAge1xuICBtYXJnaW46IDAgMCAxMnB4O1xufVxuXG4ubWF0LXNtYWxsLCAubWF0LWNhcHRpb24ge1xuICBmb250OiA0MDAgMTJweC8yMHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWRpc3BsYXktNCwgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS00IHtcbiAgZm9udDogMzAwIDExMnB4LzExMnB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDVlbTtcbiAgbWFyZ2luOiAwIDAgNTZweDtcbn1cblxuLm1hdC1kaXNwbGF5LTMsIC5tYXQtdHlwb2dyYXBoeSAubWF0LWRpc3BsYXktMyB7XG4gIGZvbnQ6IDQwMCA1NnB4LzU2cHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICBtYXJnaW46IDAgMCA2NHB4O1xufVxuXG4ubWF0LWRpc3BsYXktMiwgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS0yIHtcbiAgZm9udDogNDAwIDQ1cHgvNDhweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwNWVtO1xuICBtYXJnaW46IDAgMCA2NHB4O1xufVxuXG4ubWF0LWRpc3BsYXktMSwgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS0xIHtcbiAgZm9udDogNDAwIDM0cHgvNDBweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgNjRweDtcbn1cblxuLm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyIHtcbiAgZm9udDogNDAwIDE0cHgvMjBweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1idXR0b24sIC5tYXQtcmFpc2VkLWJ1dHRvbiwgLm1hdC1pY29uLWJ1dHRvbiwgLm1hdC1zdHJva2VkLWJ1dHRvbixcbi5tYXQtZmxhdC1idXR0b24sIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1jYXJkIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWNhcmQtdGl0bGUge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtY2FyZC1oZWFkZXIgLm1hdC1jYXJkLXRpdGxlIHtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuXG4ubWF0LWNhcmQtc3VidGl0bGUsXG4ubWF0LWNhcmQtY29udGVudCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1hdC1jaGVja2JveCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1jaGVja2JveC1sYXlvdXQgLm1hdC1jaGVja2JveC1sYWJlbCB7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuXG4ubWF0LWNoaXAge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4ubWF0LWNoaXAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb24sXG4ubWF0LWNoaXAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLm1hdC10YWJsZSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1oZWFkZXItY2VsbCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1jZWxsLCAubWF0LWZvb3Rlci1jZWxsIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4ubWF0LWNhbGVuZGFyIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWNhbGVuZGFyLWJvZHkge1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCxcbi5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIgdGgge1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5tYXQtZGlhbG9nLXRpdGxlIHtcbiAgZm9udDogNTAwIDIwcHgvMzJweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnQge1xuICBmb250OiA0MDAgMTRweC8yMHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWZvcm0tZmllbGQge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjEyNTtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAxLjM0Mzc1ZW07XG59XG5cbi5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLFxuLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24ge1xuICBmb250LXNpemU6IDE1MCU7XG4gIGxpbmUtaGVpZ2h0OiAxLjEyNTtcbn1cbi5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbixcbi5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbiB7XG4gIGhlaWdodDogMS41ZW07XG4gIHdpZHRoOiAxLjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb24sXG4ubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29uIHtcbiAgaGVpZ2h0OiAxLjEyNWVtO1xuICBsaW5lLWhlaWdodDogMS4xMjU7XG59XG5cbi5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDAuNWVtIDA7XG4gIGJvcmRlci10b3A6IDAuODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzMzMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM0MzMzMzMlO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gIHRvcDogLTAuODQzNzVlbTtcbiAgcGFkZGluZy10b3A6IDAuODQzNzVlbTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAxLjM0Mzc1ZW07XG59XG5cbi5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBib3R0b206IDEuMzQzNzVlbTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIG1hcmdpbi10b3A6IDAuNjY2NjY2NjY2N2VtO1xuICB0b3A6IGNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDEuMjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBwYWRkaW5nOiAwLjQzNzVlbSAwO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzMzMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM0MzMzMzMlO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzNTMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuMjgxMjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYm90dG9tOiAxLjI1ZW07XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgbWFyZ2luLXRvcDogMC41NDE2NjY2NjY3ZW07XG4gIHRvcDogY2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pO1xufVxuXG5AbWVkaWEgcHJpbnQge1xuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSk7XG4gIH1cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbDotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSk7XG4gIH1cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpO1xuICB9XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDAuMjVlbSAwIDAuNzVlbSAwO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuMDkzNzVlbTtcbiAgbWFyZ2luLXRvcDogLTAuNWVtO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzMzMzMzMzMlO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM0MzMzMzMlO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDFlbSAwIDFlbSAwO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuODQzNzVlbTtcbiAgbWFyZ2luLXRvcDogLTAuMjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzMzMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzNDMzMzMzJTtcbn1cblxuLm1hdC1ncmlkLXRpbGUtaGVhZGVyLFxuLm1hdC1ncmlkLXRpbGUtZm9vdGVyIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLm1hdC1ncmlkLXRpbGUtaGVhZGVyIC5tYXQtbGluZSxcbi5tYXQtZ3JpZC10aWxlLWZvb3RlciAubWF0LWxpbmUge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubWF0LWdyaWQtdGlsZS1oZWFkZXIgLm1hdC1saW5lOm50aC1jaGlsZChuKzIpLFxuLm1hdC1ncmlkLXRpbGUtZm9vdGVyIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICBtYXJnaW4tdG9wOiAtMC4wNjI1ZW07XG59XG5cbi5tYXQtbWVudS1pdGVtIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5tYXQtcGFnaW5hdG9yLFxuLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLm1hdC1yYWRpby1idXR0b24ge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtc2VsZWN0IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgaGVpZ2h0OiAxLjEyNWVtO1xufVxuXG4ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtc3RlcHBlci12ZXJ0aWNhbCwgLm1hdC1zdGVwcGVyLWhvcml6b250YWwge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtc3RlcC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvciB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi5tYXQtc3RlcC1sYWJlbC1lcnJvciB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWF0LXRhYi1ncm91cCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC10b29sYmFyLFxuLm1hdC10b29sYmFyIGgxLFxuLm1hdC10b29sYmFyIGgyLFxuLm1hdC10b29sYmFyIGgzLFxuLm1hdC10b29sYmFyIGg0LFxuLm1hdC10b29sYmFyIGg1LFxuLm1hdC10b29sYmFyIGg2IHtcbiAgZm9udDogNTAwIDIwcHgvMzJweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwO1xufVxuXG4ubWF0LXRvb2x0aXAge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgcGFkZGluZy10b3A6IDZweDtcbiAgcGFkZGluZy1ib3R0b206IDZweDtcbn1cblxuLm1hdC10b29sdGlwLWhhbmRzZXQge1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmctdG9wOiA4cHg7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG59XG5cbi5tYXQtbGlzdC1pdGVtIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWxpc3Qtb3B0aW9uIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24ge1xuICBmb250LXNpemU6IDE2cHg7XG59XG4ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLm1hdC1saXN0LWJhc2UgLm1hdC1zdWJoZWFkZXIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1pdGVtIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3QtaXRlbSAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMikge1xuICBmb250LXNpemU6IDEycHg7XG59XG4ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LW9wdGlvbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LXN1YmhlYWRlciB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWF0LW9wdGlvbiB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4ubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgZm9udDogNTAwIDE0cHgvMjRweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1zaW1wbGUtc25hY2tiYXIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtdHJlZSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC10cmVlLW5vZGUsXG4ubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5tYXQtcmlwcGxlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4ubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5LCB0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmNkay12aXN1YWxseS1oaWRkZW4ge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgb3V0bGluZTogMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi5jZGstb3ZlcmxheS1jb250YWluZXIsIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jZGstb3ZlcmxheS1jb250YWluZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDEwMDA7XG59XG4uY2RrLW92ZXJsYXktY29udGFpbmVyOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDAwO1xufVxuXG4uY2RrLW92ZXJsYXktcGFuZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbn1cblxuLmNkay1vdmVybGF5LWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO1xuICBvcGFjaXR5OiAwO1xufVxuLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICBvcGFjaXR5OiAxO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgfVxufVxuXG4uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zMik7XG59XG5cbi5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICBvcGFjaXR5OiAwO1xufVxuXG4uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAwMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLXdpZHRoOiAxcHg7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbn1cblxuLmNkay1nbG9iYWwtc2Nyb2xsYmxvY2sge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG5cbkBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQge1xuICAvKiEqL1xufVxuQGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQge1xuICAvKiEqL1xufVxuLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxsIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0O1xufVxuXG4uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCkge1xuICBhbmltYXRpb24tbmFtZTogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kO1xufVxuXG50ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUge1xuICByZXNpemU6IG5vbmU7XG59XG5cbnRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmcge1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveCAhaW1wb3J0YW50O1xufVxuXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW9wdGlvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtb3B0aW9uOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LW9wdGlvbjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW9wdGlvbi5tYXQtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1vcHRpb24ubWF0LW9wdGlvbi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtb3B0Z3JvdXAtZGlzYWJsZWQgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHNldWRvLWNoZWNrYm94IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3g6OmFmdGVyIHtcbiAgY29sb3I6ICNmYWZhZmE7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBjb2xvcjogI2IwYjBiMDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiAjYjBiMGIwO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXowIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejMge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXo0IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDVweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16NiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16NyB7XG4gIGJveC1zaGFkb3c6IDBweCA0cHggNXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggN3B4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAycHggMTZweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16OCB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16OSB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOXB4IDEycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTZweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTAge1xuICBib3gtc2hhZG93OiAwcHggNnB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEwcHggMTRweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDRweCAxOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxMSB7XG4gIGJveC1zaGFkb3c6IDBweCA2cHggN3B4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTFweCAxNXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDIwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejEyIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTMge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEzcHggMTlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxNCB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOXB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTRweCAyMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejE1IHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCA5cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNXB4IDIycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMjhweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTYge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTcge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxN3B4IDI2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTgge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOHB4IDI4cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MTkge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDEycHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOXB4IDI5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MjAge1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjBweCAzMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDM4cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejIxIHtcbiAgYm94LXNoYWRvdzogMHB4IDEwcHggMTNweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIxcHggMzNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MHB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoyMiB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDE0cHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMnB4IDM1cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDJweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVsZXZhdGlvbi16MjMge1xuICBib3gtc2hhZG93OiAwcHggMTFweCAxNHB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjNweCAzNnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1lbGV2YXRpb24tejI0IHtcbiAgYm94LXNoYWRvdzogMHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYXBwLWJhY2tncm91bmQsIC5zdGFuZGFyZC10aGVtZS5tYXQtYXBwLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtdGhlbWUtbG9hZGVkLW1hcmtlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zdGFuZGFyZC10aGVtZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LWFjdGl2ZSk6bm90KDpob3Zlcik6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZDogIzYwN2Q4Yjtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBvdXRsaW5lOiBzb2xpZCAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtYWNjZW50IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICM0NDhhZmY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXdhcm4gLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1oaWRkZW4gLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWRpc2FibGVkIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICNiOWI5Yjk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0O1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIHtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLThweDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC04cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNnB4O1xufVxuW2Rpcj1ydGxdIC5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTZweDtcbn1cbltkaXI9cnRsXSAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtOHB4O1xufVxuW2Rpcj1ydGxdIC5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC04cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC04cHg7XG59XG5bZGlyPXJ0bF0gLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtOHB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB0b3A6IC0xMXB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC0xMXB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0yMnB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTIycHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTExcHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMTFweDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWxhcmdlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLTE0cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVsb3cgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYm90dG9tOiAtMTRweDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTI4cHg7XG59XG5bZGlyPXJ0bF0gLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTI4cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0yOHB4O1xufVxuW2Rpcj1ydGxdIC5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTI4cHg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNHB4O1xufVxuW2Rpcj1ydGxdIC5zdGFuZGFyZC10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNHB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTRweDtcbn1cbltkaXI9cnRsXSAuc3RhbmRhcmQtdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNHB4O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24sIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbiB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnksIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24ubWF0LWFjY2VudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24ubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b25bZGlzYWJsZWRdIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBvcGFjaXR5OiAwLjE7XG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZDogYmxhY2s7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2Rpc2FibGVkXSkge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnksIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC1wcmltYXJ5LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWZhYi5tYXQtYWNjZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhaXNlZC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF06bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mYWI6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiOm5vdChbZGlzYWJsZWRdKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5zdGFuZGFyZC10aGVtZSAubWF0LW1pbmktZmFiOm5vdChbZGlzYWJsZWRdKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEycHggMTdweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZmFiW2Rpc2FibGVkXTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWluaS1mYWJbZGlzYWJsZWRdOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSBbZGlyPXJ0bF0gLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiZGJkYmQ7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGJvcmRlcjogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYXJkIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FyZDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYXJkLm1hdC1jYXJkLWZsYXQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYXJkLXN1YnRpdGxlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gIGZpbGw6ICNmYWZhZmE7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gIHN0cm9rZTogI2ZhZmFmYSAhaW1wb3J0YW50O1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHtcbiAgLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGgge1xuICAgIHN0cm9rZTogIzAwMCAhaW1wb3J0YW50O1xuICB9XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IwYjBiMDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkOm5vdCgubWF0LWNoZWNrYm94LWNoZWNrZWQpIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6ICNiMGIwYjA7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveC1kaXNhYmxlZCAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgb3BhY2l0eTogMC40O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDpub3QoLm1hdC1jaGlwLWRpc2FibGVkKTphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDpub3QoLm1hdC1jaGlwLWRpc2FibGVkKSAubWF0LWNoaXAtcmVtb3ZlOmhvdmVyIHtcbiAgb3BhY2l0eTogMC41NDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjQ7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOjphZnRlciB7XG4gIGJhY2tncm91bmQ6IGJsYWNrO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgb3BhY2l0eTogMC40O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXdhcm4gLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgb3BhY2l0eTogMC40O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFibGUge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYmxlIHRoZWFkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWJsZSB0Ym9keSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFibGUgdGZvb3QsXG4uc3RhbmRhcmQtdGhlbWUgbWF0LWhlYWRlci1yb3csIC5zdGFuZGFyZC10aGVtZSBtYXQtcm93LCAuc3RhbmRhcmQtdGhlbWUgbWF0LWZvb3Rlci1yb3csXG4uc3RhbmRhcmQtdGhlbWUgW21hdC1oZWFkZXItcm93XSwgLnN0YW5kYXJkLXRoZW1lIFttYXQtcm93XSwgLnN0YW5kYXJkLXRoZW1lIFttYXQtZm9vdGVyLXJvd10sXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWJsZS1zdGlja3kge1xuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xufVxuLnN0YW5kYXJkLXRoZW1lIG1hdC1yb3csIC5zdGFuZGFyZC10aGVtZSBtYXQtaGVhZGVyLXJvdywgLnN0YW5kYXJkLXRoZW1lIG1hdC1mb290ZXItcm93LFxuLnN0YW5kYXJkLXRoZW1lIHRoLm1hdC1oZWFkZXItY2VsbCwgLnN0YW5kYXJkLXRoZW1lIHRkLm1hdC1jZWxsLCAuc3RhbmRhcmQtdGhlbWUgdGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWhlYWRlci1jZWxsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jZWxsLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1mb290ZXItY2VsbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItYXJyb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1uZXh0LWJ1dHRvbixcbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLXByZXZpb3VzLWJ1dHRvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXItZGl2aWRlcjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXIgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSxcbi5zdGFuZGFyZC10aGVtZSAuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS10b2RheTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xuICBjb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg5NiwgMTI1LCAxMzksIDAuNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDhhZmY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNjgsIDEzOCwgMjU1LCAwLjQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0NCwgNjcsIDU0LCAwLjQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC10b3VjaCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLm1hdC1hY2NlbnQge1xuICBjb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZGl2aWRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kaXZpZGVyLXZlcnRpY2FsIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWFjdGlvbi1yb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5zdGFuZGFyZC10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCk6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICB9XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLWluZGljYXRvcjo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaGludCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKSAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKS5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LWFjY2VudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWVycm9yIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWhpbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC40MikgMCUsIHJnYmEoMCwgMCwgMCwgMC40MikgMzMlLCB0cmFuc3BhcmVudCAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogNHB4IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNDIpIDAlLCByZ2JhKDAsIDAsIDAsIDAuNDIpIDMzJSwgdHJhbnNwYXJlbnQgMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDRweCAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA2KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWljb24ubWF0LXByaW1hcnkge1xuICBjb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWljb24ubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6ZGlzYWJsZWQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtaW5wdXQtZWxlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWlucHV0LWVsZW1lbnQge1xuICBjYXJldC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWxpc3QtYmFzZSAubWF0LXN1YmhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbGlzdC1pdGVtLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWxpc3Qtb3B0aW9uOmhvdmVyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1saXN0LW9wdGlvbjpmb2N1cyxcbi5zdGFuZGFyZC10aGVtZSAubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06Zm9jdXMsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbTpob3Zlcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtaXRlbSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0sIC5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF06OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1tZW51LWl0ZW0gLm1hdC1pY29uLW5vLWNvbG9yLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWVudS1pdGVtLXN1Ym1lbnUtdHJpZ2dlcjo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LW1lbnUtaXRlbTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1tZW51LWl0ZW0uY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoW2Rpc2FibGVkXSksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1tZW51LWl0ZW0uY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtbWVudS1pdGVtLWhpZ2hsaWdodGVkOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wYWdpbmF0b3Ige1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvci1wYWdlLXNpemUgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQge1xuICBib3JkZXItdG9wOiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvci1maXJzdCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZGVjcmVtZW50LFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1maXJzdCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjY2ZkOGRjO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZmQ4ZGM7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gIGZpbGw6ICM4MmIxZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODJiMWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjZmZjZGQyO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmNkZDI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGUsIC5zdGFuZGFyZC10aGVtZSAubWF0LXNwaW5uZXIgY2lyY2xlIHtcbiAgc3Ryb2tlOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSB7XG4gIHN0cm9rZTogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXdhcm4gY2lyY2xlLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zcGlubmVyLm1hdC13YXJuIGNpcmNsZSB7XG4gIHN0cm9rZTogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeTphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudC5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50OmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2Fybi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogI2Y0NDMzNjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybjphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zZWxlY3QtdmFsdWUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNlbGVjdC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNlbGVjdC1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2VsZWN0LXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zZWxlY3QtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtcHJpbWFyeSAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtYWNjZW50IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1mb3JtLWZpZWxkIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtaW52YWxpZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtZm9ybS1maWVsZCAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXItY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXIubWF0LWRyYXdlci1wdXNoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXI6bm90KC5tYXQtZHJhd2VyLXNpZGUpIHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXItc2lkZSB7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1kcmF3ZXItc2lkZS5tYXQtZHJhd2VyLWVuZCB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLnN0YW5kYXJkLXRoZW1lIFtkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRlIHtcbiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgW2Rpcj1ydGxdIC5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmQge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LWRyYXdlci1iYWNrZHJvcC5tYXQtZHJhd2VyLXNob3duIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDY4LCAxMzgsIDI1NSwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoOTYsIDEyNSwgMTM5LCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDQsIDY3LCA1NCwgMC41NCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZS10b2dnbGU6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWIsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItZm9jdXMtcmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNjgsIDEzOCwgMjU1LCAwLjIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGVyOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4uc3RhbmRhcmQtdGhlbWUgLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItZGlzYWJsZWQ6aG92ZXIgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWIsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZy5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpOmhvdmVyIC5tYXQtc2xpZGVyLXRodW1iLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKS5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpOmhvdmVyLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpLmNkay1mb2N1c2VkLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItaGFzLXRpY2tzIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC43KSwgcmdiYSgwLCAwLCAwLCAwLjcpIDJweCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LXJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMC4wMDAxZGVnLCByZ2JhKDAsIDAsIDAsIDAuNyksIHJnYmEoMCwgMCwgMCwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDAsIDAsIDAsIDAuNyksIHJnYmEoMCwgMCwgMCwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXAtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlci5jZGstcHJvZ3JhbS1mb2N1c2VkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXAtaGVhZGVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtb3B0aW9uYWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVycm9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWFjdGl2ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zdGVwcGVyLWhvcml6b250YWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXBwZXItdmVydGljYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXBwZXItdmVydGljYWwtbGluZTo6YmVmb3JlIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjphZnRlcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbC1saW5lIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXNvcnQtaGVhZGVyLWFycm93IHtcbiAgY29sb3I6ICM3NTc1NzU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC10YWItbmF2LWJhcixcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC10YWItaGVhZGVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbGFiZWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cFtjbGFzcyo9bWF0LWJhY2tncm91bmQtXSAubWF0LXRhYi1oZWFkZXIsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhcltjbGFzcyo9bWF0LWJhY2tncm91bmQtXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDcsIDIxNiwgMjIwLCAwLjMpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtaW5rLWJhciwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtaW5rLWJhciwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMzAsIDE3NywgMjU1LCAwLjMpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC1pbmstYmFyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDhhZmY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1pbmstYmFyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50Lm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjA1LCAyMTAsIDAuMyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC1pbmstYmFyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1pbmstYmFyLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwNywgMjE2LCAyMjAsIDAuMyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmtzLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGlua3MsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmssIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMzAsIDE3NywgMjU1LCAwLjMpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGlua3MsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rcywgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OGFmZjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluaywgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMDUsIDIxMCwgMC4zKTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlciwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGlua3MsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlciwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rcywgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluaywgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnN0YW5kYXJkLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuc3RhbmRhcmQtdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5zdGFuZGFyZC10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10b29sYmFyIHtcbiAgYmFja2dyb3VuZDogd2hpdGVzbW9rZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10b29sYmFyLm1hdC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzYwN2Q4YjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdG9vbGJhci5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZDogIzQ0OGFmZjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdG9vbGJhci5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQ6ICNmNDQzMzY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtdmFsdWUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LWFycm93LFxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5zdGFuZGFyZC10aGVtZSAubWF0LXRvb2x0aXAge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDk3LCA5NywgOTcsIDAuOSk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10cmVlIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC10cmVlLW5vZGUsXG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uc3RhbmRhcmQtdGhlbWUgLm1hdC1zbmFjay1iYXItY29udGFpbmVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgYmFja2dyb3VuZDogIzMyMzIzMjtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnN0YW5kYXJkLXRoZW1lIC5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiB7XG4gIGNvbG9yOiAjNDQ4YWZmO1xufVxuLnN0YW5kYXJkLXRoZW1lIGgxIHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG5cbi5ncmVlbi10aGVtZSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtb3B0aW9uIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtb3B0aW9uOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksIC5ncmVlbi10aGVtZSAubWF0LW9wdGlvbjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW9wdGlvbi5tYXQtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtb3B0aW9uLm1hdC1vcHRpb24tZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1vcHRncm91cC1kaXNhYmxlZCAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3g6OmFmdGVyIHtcbiAgY29sb3I6ICMzMDMwMzA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBjb2xvcjogIzY4Njg2ODtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5ncmVlbi10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLFxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uZ3JlZW4tdGhlbWUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCxcbi5ncmVlbi10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiAjNjg2ODY4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXowIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejMge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXo0IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDVweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16NiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16NyB7XG4gIGJveC1zaGFkb3c6IDBweCA0cHggNXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggN3B4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAycHggMTZweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16OCB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16OSB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOXB4IDEycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTZweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTAge1xuICBib3gtc2hhZG93OiAwcHggNnB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEwcHggMTRweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDRweCAxOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxMSB7XG4gIGJveC1zaGFkb3c6IDBweCA2cHggN3B4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTFweCAxNXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDIwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejEyIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTMge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEzcHggMTlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxNCB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOXB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTRweCAyMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejE1IHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCA5cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNXB4IDIycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMjhweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTYge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTcge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxN3B4IDI2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTgge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOHB4IDI4cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MTkge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDEycHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOXB4IDI5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MjAge1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjBweCAzMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDM4cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejIxIHtcbiAgYm94LXNoYWRvdzogMHB4IDEwcHggMTNweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIxcHggMzNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MHB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoyMiB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDE0cHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMnB4IDM1cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDJweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWVsZXZhdGlvbi16MjMge1xuICBib3gtc2hhZG93OiAwcHggMTFweCAxNHB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjNweCAzNnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1lbGV2YXRpb24tejI0IHtcbiAgYm94LXNoYWRvdzogMHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYXBwLWJhY2tncm91bmQsIC5ncmVlbi10aGVtZS5tYXQtYXBwLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzAzMDMwO1xuICBjb2xvcjogd2hpdGU7XG59XG4ubWF0LXRoZW1lLWxvYWRlZC1tYXJrZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZ3JlZW4tdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtYWN0aXZlKTpub3QoOmhvdmVyKSB7XG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LWFjdGl2ZSk6bm90KDpob3Zlcik6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYmFja2dyb3VuZDogIzhiYzM0YTtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBvdXRsaW5lOiBzb2xpZCAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtYWNjZW50IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICM0Y2FmNTA7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utd2FybiAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYmFja2dyb3VuZDogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtaGlkZGVuIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiAjNmU2ZTZlO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0O1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIHtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLThweDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC04cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNnB4O1xufVxuW2Rpcj1ydGxdIC5ncmVlbi10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTZweDtcbn1cbltkaXI9cnRsXSAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtOHB4O1xufVxuW2Rpcj1ydGxdIC5ncmVlbi10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC04cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC04cHg7XG59XG5bZGlyPXJ0bF0gLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtOHB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB0b3A6IC0xMXB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC0xMXB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0yMnB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTIycHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTExcHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMTFweDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWxhcmdlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLTE0cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVsb3cgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYm90dG9tOiAtMTRweDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTI4cHg7XG59XG5bZGlyPXJ0bF0gLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTI4cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0yOHB4O1xufVxuW2Rpcj1ydGxdIC5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTI4cHg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNHB4O1xufVxuW2Rpcj1ydGxdIC5ncmVlbi10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNHB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTRweDtcbn1cbltkaXI9cnRsXSAuZ3JlZW4tdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNHB4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24sIC5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbiB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24ubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuLCAuZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4ge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5ncmVlbi10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uW2Rpc2FibGVkXSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIG9wYWNpdHk6IDAuMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIsIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeSwgLmdyZWVuLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQsIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtZmFiLm1hdC1hY2NlbnQsIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0ge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnksIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeSwgLmdyZWVuLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudCwgLmdyZWVuLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiwgLmdyZWVuLXRoZW1lIC5tYXQtZmFiLm1hdC13YXJuLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuZ3JlZW4tdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5ncmVlbi10aGVtZSAubWF0LWZhYi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtZmFiLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLmdyZWVuLXRoZW1lIC5tYXQtZmxhdC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b246bm90KFtkaXNhYmxlZF0pOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZmFiOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZhYjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAuZ3JlZW4tdGhlbWUgLm1hdC1taW5pLWZhYjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZhYltkaXNhYmxlZF06bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5ncmVlbi10aGVtZSAubWF0LW1pbmktZmFiW2Rpc2FibGVkXTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZSxcbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSBbZGlyPXJ0bF0gLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMTIxO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyNDI0Mjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLFxuLmdyZWVuLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgYm9yZGVyOiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNhcmQge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYXJkOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNhcmQubWF0LWNhcmQtZmxhdDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNhcmQtc3VidGl0bGUge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gIGZpbGw6ICMzMDMwMzA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gIHN0cm9rZTogIzMwMzAzMCAhaW1wb3J0YW50O1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHtcbiAgLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGgge1xuICAgIHN0cm9rZTogIzAwMCAhaW1wb3J0YW50O1xuICB9XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzAzMDMwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwgLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY4Njg2ODtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkOm5vdCgubWF0LWNoZWNrYm94LWNoZWNrZWQpIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6ICM2ODY4Njg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1kaXNhYmxlZCAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAuZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3ggLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCxcbi5ncmVlbi10aGVtZSAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LFxuLmdyZWVuLXRoZW1lIC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjE2MTYxO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXA6bm90KC5tYXQtY2hpcC1kaXNhYmxlZCk6YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAzcHggNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXA6bm90KC5tYXQtY2hpcC1kaXNhYmxlZCkgLm1hdC1jaGlwLXJlbW92ZTpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNTQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC40O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBvcGFjaXR5OiAwLjQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgb3BhY2l0eTogMC40O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBvcGFjaXR5OiAwLjQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYmxlIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYmxlIHRoZWFkLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWJsZSB0Ym9keSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFibGUgdGZvb3QsXG4uZ3JlZW4tdGhlbWUgbWF0LWhlYWRlci1yb3csIC5ncmVlbi10aGVtZSBtYXQtcm93LCAuZ3JlZW4tdGhlbWUgbWF0LWZvb3Rlci1yb3csXG4uZ3JlZW4tdGhlbWUgW21hdC1oZWFkZXItcm93XSwgLmdyZWVuLXRoZW1lIFttYXQtcm93XSwgLmdyZWVuLXRoZW1lIFttYXQtZm9vdGVyLXJvd10sXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWJsZS1zdGlja3kge1xuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xufVxuLmdyZWVuLXRoZW1lIG1hdC1yb3csIC5ncmVlbi10aGVtZSBtYXQtaGVhZGVyLXJvdywgLmdyZWVuLXRoZW1lIG1hdC1mb290ZXItcm93LFxuLmdyZWVuLXRoZW1lIHRoLm1hdC1oZWFkZXItY2VsbCwgLmdyZWVuLXRoZW1lIHRkLm1hdC1jZWxsLCAuZ3JlZW4tdGhlbWUgdGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWhlYWRlci1jZWxsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNlbGwsIC5ncmVlbi10aGVtZSAubWF0LWZvb3Rlci1jZWxsIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2FsZW5kYXItYXJyb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLFxuLmdyZWVuLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItbmV4dC1idXR0b24sXG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1wcmV2aW91cy1idXR0b24ge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyLWRpdmlkZXI6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXIgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpLFxuLmdyZWVuLXRoZW1lIC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSxcbi5ncmVlbi10aGVtZSAuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMzksIDE5NSwgNzQsIDAuNCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDc2LCAxNzUsIDgwLCAwLjQpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3NiwgMTc1LCA4MCwgMC40KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC10b3VjaCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gIGNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLm1hdC1hY2NlbnQge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtd2FybiB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZDogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZGl2aWRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kaXZpZGVyLXZlcnRpY2FsIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWFjdGlvbi1yb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLCAuZ3JlZW4tdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSwgLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5ncmVlbi10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCk6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICM0MjQyNDI7XG4gIH1cbn1cbi5ncmVlbi10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uLFxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLWluZGljYXRvcjo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUsXG4uZ3JlZW4tdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWhpbnQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC1hY2NlbnQge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC13YXJuIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtYWNjZW50LFxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZXJyb3Ige1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1oaW50IHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMzMlLCB0cmFuc3BhcmVudCAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogNHB4IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDMzJSwgdHJhbnNwYXJlbnQgMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDRweCAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi5tYXQtcHJpbWFyeSB7XG4gIGNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi5tYXQtYWNjZW50IHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1pY29uLm1hdC13YXJuIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1pbnB1dC1lbGVtZW50OmRpc2FibGVkLFxuLmdyZWVuLXRoZW1lIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQgb3B0aW9uIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1pbnB1dC1lbGVtZW50IG9wdGlvbjpkaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtd2FybiAubWF0LWlucHV0LWVsZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW0ge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbiB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWxpc3QtYmFzZSAubWF0LXN1YmhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1saXN0LWl0ZW0tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbi5ncmVlbi10aGVtZSAubWF0LWxpc3Qtb3B0aW9uOmhvdmVyLCAuZ3JlZW4tdGhlbWUgLm1hdC1saXN0LW9wdGlvbjpmb2N1cyxcbi5ncmVlbi10aGVtZSAubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLFxuLmdyZWVuLXRoZW1lIC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06Zm9jdXMsXG4uZ3JlZW4tdGhlbWUgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbTpob3Zlcixcbi5ncmVlbi10aGVtZSAubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW1lbnUtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtbWVudS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtbWVudS1pdGVtIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0sIC5ncmVlbi10aGVtZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF06OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW1lbnUtaXRlbSAubWF0LWljb24tbm8tY29sb3IsXG4uZ3JlZW4tdGhlbWUgLm1hdC1tZW51LWl0ZW0tc3VibWVudS10cmlnZ2VyOjphZnRlciB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LW1lbnUtaXRlbTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4uZ3JlZW4tdGhlbWUgLm1hdC1tZW51LWl0ZW0uY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoW2Rpc2FibGVkXSksXG4uZ3JlZW4tdGhlbWUgLm1hdC1tZW51LWl0ZW0uY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLFxuLmdyZWVuLXRoZW1lIC5tYXQtbWVudS1pdGVtLWhpZ2hsaWdodGVkOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wYWdpbmF0b3Ige1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcGFnaW5hdG9yLFxuLmdyZWVuLXRoZW1lIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1wYWdpbmF0b3ItaW5jcmVtZW50IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHdoaXRlO1xuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXBhZ2luYXRvci1maXJzdCxcbi5ncmVlbi10aGVtZSAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxcbi5ncmVlbi10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZmlyc3QsXG4uZ3JlZW4tdGhlbWUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItbGFzdCB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjZGNlZGM4O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkY2VkYzg7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gIGZpbGw6ICNjOGU2Yzk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzhlNmM5O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjYzhlNmM5O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjOGU2Yzk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGUsIC5ncmVlbi10aGVtZSAubWF0LXNwaW5uZXIgY2lyY2xlIHtcbiAgc3Ryb2tlOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSwgLmdyZWVuLXRoZW1lIC5tYXQtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSB7XG4gIHN0cm9rZTogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXdhcm4gY2lyY2xlLCAuZ3JlZW4tdGhlbWUgLm1hdC1zcGlubmVyLm1hdC13YXJuIGNpcmNsZSB7XG4gIHN0cm9rZTogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5OmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsXG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudCAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQ6YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLCAuZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4ubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuOmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUsXG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNlbGVjdC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtdmFsdWUge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNlbGVjdC1wYW5lbCB7XG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zZWxlY3QtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNlbGVjdC1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1wcmltYXJ5IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LXdhcm4gLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWZvcm0tZmllbGQgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1pbnZhbGlkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1mb3JtLWZpZWxkIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZHJhd2VyLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMDMwMzA7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRyYXdlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MjQyNDI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWRyYXdlci5tYXQtZHJhd2VyLXB1c2gge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZHJhd2VyOm5vdCgubWF0LWRyYXdlci1zaWRlKSB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZHJhd2VyLXNpZGUge1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmQge1xuICBib3JkZXItbGVmdDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSBbZGlyPXJ0bF0gLm1hdC1kcmF3ZXItc2lkZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLmdyZWVuLXRoZW1lIFtkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRlLm1hdC1kcmF3ZXItZW5kIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1kcmF3ZXItYmFja2Ryb3AubWF0LWRyYXdlci1zaG93biB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTg5LCAxODksIDE4OSwgMC42KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3NiwgMTc1LCA4MCwgMC41NCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTM5LCAxOTUsIDc0LCAwLjU0KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3NiwgMTc1LCA4MCwgMC41NCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZS10b2dnbGU6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JkYmRiZDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiYzM0YTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4uZ3JlZW4tdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXdhcm4gLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5ncmVlbi10aGVtZSAubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDc2LCAxNzUsIDgwLCAwLjIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4uZ3JlZW4tdGhlbWUgLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCxcbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLWRpc2FibGVkOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWIsXG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZy5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyk6aG92ZXIgLm1hdC1zbGlkZXItdGh1bWIsIC5ncmVlbi10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKTpob3Zlci5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iLCAuZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKS5jZGstZm9jdXNlZC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItaGFzLXRpY2tzIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDJweCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LXJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMC4wMDAxZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXN0ZXAtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlci5jZGstcHJvZ3JhbS1mb2N1c2VkLCAuZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5ncmVlbi10aGVtZSAubWF0LXN0ZXAtaGVhZGVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwsXG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtb3B0aW9uYWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsXG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YmMzNGE7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZXJyb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtYWN0aXZlIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgY29sb3I6ICM0Y2FmNTA7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zdGVwcGVyLWhvcml6b250YWwsIC5ncmVlbi10aGVtZSAubWF0LXN0ZXBwZXItdmVydGljYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmUge1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmJlZm9yZSxcbi5ncmVlbi10aGVtZSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmFmdGVyLFxuLmdyZWVuLXRoZW1lIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmUge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtc29ydC1oZWFkZXItYXJyb3cge1xuICBjb2xvcjogI2M2YzZjNjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciAubWF0LXRhYi1uYXYtYmFyLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciAubWF0LXRhYi1oZWFkZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1sYWJlbCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWxpbmsge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwW2NsYXNzKj1tYXQtYmFja2dyb3VuZC1dIC5tYXQtdGFiLWhlYWRlcixcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyW2NsYXNzKj1tYXQtYmFja2dyb3VuZC1dIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyMCwgMjM3LCAyMDAsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC1pbmstYmFyLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGJjMzRhO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC1pbmstYmFyLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjAwLCAyMzAsIDIwMSwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtaW5rLWJhciwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtaW5rLWJhciwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwMCwgMjMwLCAyMDEsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC1pbmstYmFyLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1pbmstYmFyLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjIwLCAyMzcsIDIwMCwgMC4zKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlciwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGlua3MsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlciwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rcywgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YmMzNGE7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluaywgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDAsIDIzMCwgMjAxLCAwLjMpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGlua3MsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rcywgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluaywgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwMCwgMjMwLCAyMDEsIDAuMyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXIsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmtzLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXIsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGlua3MsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGNhZjUwO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmssIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLCAuZ3JlZW4tdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5ncmVlbi10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLmdyZWVuLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmdyZWVuLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIge1xuICBiYWNrZ3JvdW5kOiAjMjEyMTIxO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10b29sYmFyLm1hdC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzhiYzM0YTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10b29sYmFyLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kOiAjNGNhZjUwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIubWF0LXdhcm4ge1xuICBiYWNrZ3JvdW5kOiAjNGNhZjUwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSxcbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtdmFsdWUsXG4uZ3JlZW4tdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LWFycm93LFxuLmdyZWVuLXRoZW1lIC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRvb2x0aXAge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDk3LCA5NywgOTcsIDAuOSk7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC10cmVlIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXRyZWUtbm9kZSxcbi5ncmVlbi10aGVtZSAubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZ3JlZW4tdGhlbWUgLm1hdC1zbmFjay1iYXItY29udGFpbmVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5ncmVlbi10aGVtZSAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5ncmVlbi10aGVtZSBoMSB7XG4gIGNvbG9yOiAjOGJjMzRhO1xufVxuXG4vKiBZb3UgY2FuIGFkZCBnbG9iYWwgc3R5bGVzIHRvIHRoaXMgZmlsZSwgYW5kIGFsc28gaW1wb3J0IG90aGVyIHN0eWxlIGZpbGVzICovXG5odG1sLCBib2R5IHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5mbGV4LXNwYWNlciB7XG4gIGZsZXg6IDEgMSBhdXRvO1xufSIsIlxuLy8gQ3VzdG9tIFRoZW1pbmcgZm9yIEFuZ3VsYXIgTWF0ZXJpYWxcbi8vIEZvciBtb3JlIGluZm9ybWF0aW9uOiBodHRwczovL21hdGVyaWFsLmFuZ3VsYXIuaW8vZ3VpZGUvdGhlbWluZ1xuQGltcG9ydCAnfkBhbmd1bGFyL21hdGVyaWFsL3RoZW1pbmcnO1xuLy8gUGx1cyBpbXBvcnRzIGZvciBvdGhlciBjb21wb25lbnRzIGluIHlvdXIgYXBwLlxuXG4vLyBJbmNsdWRlIHRoZSBjb21tb24gc3R5bGVzIGZvciBBbmd1bGFyIE1hdGVyaWFsLiBXZSBpbmNsdWRlIHRoaXMgaGVyZSBzbyB0aGF0IHlvdSBvbmx5XG4vLyBoYXZlIHRvIGxvYWQgYSBzaW5nbGUgY3NzIGZpbGUgZm9yIEFuZ3VsYXIgTWF0ZXJpYWwgaW4geW91ciBhcHAuXG4vLyBCZSBzdXJlIHRoYXQgeW91IG9ubHkgZXZlciBpbmNsdWRlIHRoaXMgbWl4aW4gb25jZSFcbkBpbmNsdWRlIG1hdC1jb3JlKCk7XG5cbi8vIGltcG9ydGluZyB0aGUgdGhlbWVzIGZyb20gb3VyIHRoZW1lIGZpbGVzXG5AaW1wb3J0IFwiLi90aGVtZXMvc3RhbmRhcmQtdGhlbWVcIjtcbkBpbXBvcnQgXCIuL3RoZW1lcy9ncmVlbi10aGVtZVwiO1xuLy8gSW5jbHVkZSB0aGVtZSBzdHlsZXMgZm9yIGNvcmUgYW5kIGVhY2ggY29tcG9uZW50IHVzZWQgaW4geW91ciBhcHAuXG4vLyBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGltcG9ydCBhbmQgQGluY2x1ZGUgdGhlIHRoZW1lIG1peGlucyBmb3IgZWFjaCBjb21wb25lbnRcbi8vIHRoYXQgeW91IGFyZSB1c2luZy5cblxuLy8gZm9yIG93biBjb21wb25lbnRzLCBpLmUuIG5vbiBtYXRlcmlhbCBjb21wb25lbnQgd2UgbGlrZSB0byB1c2UgdGhlIHNhbWUgc3R5bGUvcGFsZXR0ZXNcblxuXG4uc3RhbmRhcmQtdGhlbWUge1xuICBAaW5jbHVkZSBhbmd1bGFyLW1hdGVyaWFsLXRoZW1lKCRzdGFuZGFyZC10aGVtZSk7XG5cbiAgaDEgeyBjb2xvcjogbWF0LWNvbG9yKCRzdGFuZGFyZC10aGVtZS1wcmltYXJ5KX1cbn1cbi5ncmVlbi10aGVtZSB7XG4gIEBpbmNsdWRlIGFuZ3VsYXItbWF0ZXJpYWwtdGhlbWUoJGdyZWVuLXRoZW1lKTtcblxuICBoMSB7IGNvbG9yOiBtYXQtY29sb3IoJGdyZWVuLXRoZW1lLXByaW1hcnkpfVxufVxuXG5cbi8qIFlvdSBjYW4gYWRkIGdsb2JhbCBzdHlsZXMgdG8gdGhpcyBmaWxlLCBhbmQgYWxzbyBpbXBvcnQgb3RoZXIgc3R5bGUgZmlsZXMgKi9cblxuXG5odG1sLCBib2R5IHsgaGVpZ2h0OiAxMDAlOyB9XG5ib2R5IHsgbWFyZ2luOiAwOyBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7IH1cblxuLmZsZXgtc3BhY2VyIHtcbiAgZmxleDogMSAxIGF1dG87XG59XG5cblxuXG4iXX0= */", '', '']];
/***/
},
/***/
"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":
/*!****************************************************************************!*\
!*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***!
\****************************************************************************/
/*! no static exports found */
/***/
function node_modulesStyleLoaderDistRuntimeInjectStylesIntoStyleTagJs(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 <style>
// tags it will allow on a page
if (!options.singleton && typeof options.singleton !== 'boolean') {
options.singleton = isOldIE();
}
var styles = listToStyles(list, options);
addStylesToDom(styles, options);
return function update(newList) {
var mayRemove = [];
for (var i = 0; i < styles.length; i++) {
var item = styles[i];
var domStyle = stylesInDom[item.id];
if (domStyle) {
domStyle.refs--;
mayRemove.push(domStyle);
}
}
if (newList) {
var newStyles = listToStyles(newList, options);
addStylesToDom(newStyles, options);
}
for (var _i = 0; _i < mayRemove.length; _i++) {
var _domStyle = mayRemove[_i];
if (_domStyle.refs === 0) {
for (var j = 0; j < _domStyle.parts.length; j++) {
_domStyle.parts[j]();
}
delete stylesInDom[_domStyle.id];
}
}
};
};
/***/
},
/***/
"./src/styles.scss":
/*!*************************!*\
!*** ./src/styles.scss ***!
\*************************/
/*! no static exports found */
/***/
function srcStylesScss(module, exports, __webpack_require__) {
var content = __webpack_require__(
/*! !../node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!../node_modules/postcss-loader/src??embedded!../node_modules/sass-loader/lib/loader.js??ref--15-3!./styles.scss */
"./node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./src/styles.scss");
if (typeof content === 'string') {
content = [[module.i, content, '']];
}
var options = {};
options.insert = "head";
options.singleton = false;
var update = __webpack_require__(
/*! ../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */
"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js")(content, options);
if (content.locals) {
module.exports = content.locals;
}
/***/
},
/***/
5:
/*!*******************************!*\
!*** multi ./src/styles.scss ***!
\*******************************/
/*! no static exports found */
/***/
function _(module, exports, __webpack_require__) {
module.exports = __webpack_require__(
/*! /data/home/knister0/githubs/NietzscheBeta/nietzsche-beta-app/src/styles.scss */
"./src/styles.scss");
/***/
}
}, [[5, "runtime"]]]);
//# sourceMappingURL=styles-es5.js.map
\ No newline at end of file
diff --git a/nietzsche-beta-app/dist/nietzsche-beta-app/styles-es5.js.map b/nietzsche-beta-app/dist/nietzsche-beta-app/styles-es5.js.map
index c404930..9c17269 100644
--- a/nietzsche-beta-app/dist/nietzsche-beta-app/styles-es5.js.map
+++ b/nietzsche-beta-app/dist/nietzsche-beta-app/styles-es5.js.map
@@ -1 +1 @@
-{"version":3,"sources":["src/styles.scss","node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///src/styles.scss?530d"],"names":[],"mappings":"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","file":"styles-es5.js","sourceRoot":"webpack:///"}
\ No newline at end of file
+{"version":3,"sources":["src/styles.scss","node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///src/styles.scss?530d"],"names":[],"mappings":"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","file":"styles-es5.js","sourceRoot":"webpack:///"}
\ No newline at end of file
diff --git a/nietzsche-beta-app/package.json b/nietzsche-beta-app/package.json
index 64b30e5..3940e63 100644
--- a/nietzsche-beta-app/package.json
+++ b/nietzsche-beta-app/package.json
@@ -1,55 +1,55 @@
{
"name": "nietzsche-app-beta",
- "version": "0.4.1.2",
+ "version": "0.4.1.3",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e",
"compodoc": "./node_modules/.bin/compodoc -p tsconfig.app.json",
"sparqljs": "./node_modules/sparqljs/sparql.js"
},
"private": true,
"dependencies": {
"@angular/animations": "~8.2.14",
"@angular/cdk": "~8.2.3",
"@angular/common": "~8.2.14",
"@angular/compiler": "~8.2.14",
"@angular/core": "~8.2.14",
"@angular/forms": "~8.2.14",
"@angular/material": "^8.2.3",
"@angular/platform-browser": "~8.2.14",
"@angular/platform-browser-dynamic": "~8.2.14",
"@angular/router": "~8.2.14",
"@types/rdf-js": "^2.0.11",
"lodash": "^4.17.20",
"rdfjs": "^0.0.1",
"rxjs": "~6.4.0",
"sparqljs": "^3.0.1",
"tslib": "^1.10.0",
"zone.js": "~0.9.1"
},
"devDependencies": {
"@angular-devkit/build-angular": "^0.803.25",
"@angular/cli": "~8.3.24",
"@angular/compiler-cli": "~8.2.14",
"@angular/language-service": "~8.2.14",
"@types/jasmine": "~3.3.8",
"@types/jasminewd2": "~2.0.3",
"@types/node": "~8.9.4",
"codelyzer": "^5.0.0",
"jasmine-core": "~3.4.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~4.1.0",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.1",
"karma-jasmine": "~2.0.1",
"karma-jasmine-html-reporter": "^1.4.0",
"protractor": "~5.4.0",
"ts-node": "~7.0.0",
"tslint": "~5.15.0",
"typescript": "~3.5.3"
}
}
diff --git a/nietzsche-beta-app/src/app/home.component.css b/nietzsche-beta-app/src/app/home.component.css
index d7b6fdd..55c86de 100644
--- a/nietzsche-beta-app/src/app/home.component.css
+++ b/nietzsche-beta-app/src/app/home.component.css
@@ -1,6 +1,9 @@
.skip {
margin-top: 20px;
}
.second{
margin-left: 10px;
}
+.hint {
+ width: 700px;
+}
diff --git a/nietzsche-beta-app/src/app/home.component.html b/nietzsche-beta-app/src/app/home.component.html
index bc7105f..e05e17f 100644
--- a/nietzsche-beta-app/src/app/home.component.html
+++ b/nietzsche-beta-app/src/app/home.component.html
@@ -1,33 +1,38 @@
<mat-card>
<mat-card-title>Der sp&auml;te Nietzsche. Digitale Manuskriptedition</mat-card-title>
<mat-card-content>
<div>Herausgegeben von Beat Röllin, Dominique Steinbach, Christian Steiner, René Stockmar und Hubert Thüring</div>
- <div>Transkription und philologischer Kommentar: Thomas Riebe, Beat Röllin und René Stockmar unter Mitarbeit von Marie-Luise Haase und Michael Kohlenbach</div>
+ <div class="skip">Transkription und philologischer Kommentar: Thomas Riebe, Beat Röllin und René Stockmar unter Mitarbeit von Marie-Luise Haase und Michael Kohlenbach</div>
<div>Digitale Edition: Dominique Steinbach und Christian Steiner unter Mitarbeit von Eric Erhardt und Myriam Schmidt</div>
+ <div>Projektleitung: Hubert Thüring</div>
</mat-card-content>
<mat-card-content>
<div>Gefördert durch den Schweizerischen Nationalfonds (<a href="http://www.snf.ch/de/Seiten/default.aspx">SNF</a>)</div>
<div>Unterstützt durch das Projekt "Nationale Infrastruktur für Editionen - Infrastructure nationale pour les éditions" (<a href="https://www.nie-ine.ch/">NIE - INE</a>)</div>
<div class="skip">Copyright <a href="https://www.unibas.ch">Universität Basel</a></div>
</mat-card-content>
<mat-card-content>
<h3>Hinweis zur Beta-Version</h3>
<div>Bitte nehmen Sie zur Kenntnis, dass die digitale Edition sowie die darin präsentierten Inhalte noch in Entwicklung stehen und dass
- <ul>
+ <ul class="hint">
<li>die Texte und Bilder noch nicht persistent zitierbar sind </li>
<li>die Menüführung oder Features/Funktionalitäten im Verlauf der weiteren Entwicklung ändern können</li>
- <li>Browserkompatibilität noch nicht übergreifend gegeben ist; wir empfehlen die Verwendung von Mozilla Firefox oder Google Chromium in den aktuellen Versionen </li>
+ <li>Browserkompatibilität noch nicht übergreifend gegeben ist; wir empfehlen die Verwendung von Mozilla Firefox in einer aktuellen Version (zur
+ Zeit k&ouml;nnen die Faksimiles erst &uuml;ber eine unsichere HTTP-Verbindung geladen werden, deshalb zeigen Browser eine
+ <a target="_new" href="https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content">"Mixed content"-Warnung</a> an oder blockieren diese Inhalte; lesen
+ Sie <a href="https://experienceleague.adobe.com/docs/target/using/experiences/vec/troubleshoot-composer/mixed-content.html?lang=de" target="_new">hier</a>,
+ wie die blockierten Inhalte dieser Seite angezeigt werden k&ouml;nnen)</li>
<li>erst die Daten zu <a [routerLink]="manuscriptLink" [queryParams]="mpXIVParam">Mp XIV</a> eingehend erfasst und &uuml;berpr&uuml;ft wurden.
<!--Dagegen befinden sich die Daten zu <a [routerLink]="manuscriptLink" [queryParams]="mpXVParam">Mp XV</a> erst in einem fr&uuml;hen Bearbeitungsstadium. -->
</li>
</ul>
</div>
</mat-card-content>
<mat-card-content>
- <img height="52" width="319" src="http://www.snf.ch/_layouts/15/Snf.Internet/Images/logo_de.gif"/>
+ <img height="52" width="319" src="/assets/logo_de.gif"/>
<img class="second" height="52" width="164" src="https://www.unibas.ch/dam/jcr:9a8e9aff-decd-45a7-bd46-284a3da3f86e/UniBas_Logo_DE_Schwarz_RGB_65.jpg"/>
<!--<img class="second" height="52" width="164" src="/assets/uni-basel-logo.svg"/>-->
</mat-card-content>
</mat-card>

Event Timeline