tango-app-ui-store-builder 1.0.37 → 1.0.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (21) hide show
  1. package/esm2022/lib/components/manage-plano/popups/create-planogram/create-planogram.component.mjs +19 -8
  2. package/esm2022/lib/components/manage-plano/verification-table/verification-table.component.mjs +8 -2
  3. package/esm2022/lib/components/manage-store-plano/manage-store-plano.component.mjs +60 -39
  4. package/esm2022/lib/components/manage-store-plano/verification-feedback/editable-fixture/editable-fixture.component.mjs +14 -15
  5. package/esm2022/lib/components/manage-store-plano/verification-feedback/fixture/fixture.component.mjs +13 -14
  6. package/esm2022/lib/components/manage-store-plano/verification-feedback/verification-feedback.component.mjs +30 -31
  7. package/esm2022/lib/components/plano-tools/plano-migrate/plano-migrate.component.mjs +54 -7
  8. package/esm2022/lib/components/plano-tools/tools-parent/tools-parent.component.mjs +3 -3
  9. package/esm2022/lib/components/planogram/plano-table/plano-filter/plano-filter.component.mjs +13 -12
  10. package/esm2022/lib/components/planogram/plano-table/plano-table.component.mjs +4 -4
  11. package/fesm2022/tango-app-ui-store-builder.mjs +207 -125
  12. package/fesm2022/tango-app-ui-store-builder.mjs.map +1 -1
  13. package/lib/components/manage-plano/popups/create-planogram/create-planogram.component.d.ts +1 -0
  14. package/lib/components/manage-plano/rollout-table/rollout-table.component.d.ts +1 -1
  15. package/lib/components/manage-plano/verification-table/verification-table.component.d.ts +2 -2
  16. package/lib/components/manage-store-plano/manage-store-plano.component.d.ts +2 -4
  17. package/lib/components/manage-store-plano/verification-feedback/editable-fixture/editable-fixture.component.d.ts +1 -4
  18. package/lib/components/manage-store-plano/verification-feedback/fixture/fixture.component.d.ts +1 -4
  19. package/lib/components/manage-store-plano/verification-feedback/verification-feedback.component.d.ts +1 -4
  20. package/lib/components/plano-tools/plano-migrate/plano-migrate.component.d.ts +1 -0
  21. package/package.json +1 -1
@@ -156,8 +156,8 @@ export class PlanoTableComponent {
156
156
  const country = event[0].selected;
157
157
  const city = event[1].selected;
158
158
  const compliance = event[2].selected;
159
- // const method = event[3].selected;
160
- if (country.length || city.length || compliance) {
159
+ const planoStrategy = event[3].selected;
160
+ if (country.length || city.length || compliance || planoStrategy) {
161
161
  this.isFilterApplied = true;
162
162
  }
163
163
  else {
@@ -167,7 +167,7 @@ export class PlanoTableComponent {
167
167
  country,
168
168
  city,
169
169
  ...(compliance ? { compliance: [compliance.min, compliance.max] } : {}),
170
- // ...(method ? { method } : {}),
170
+ ...(planoStrategy ? { planoStrategy } : {}),
171
171
  };
172
172
  this.offset = 1;
173
173
  this.getPlanogramTableList();
@@ -234,4 +234,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
234
234
  type: Component,
235
235
  args: [{ selector: "lib-plano-table", template: "<div class=\"content-wrapper\">\r\n <div>\r\n <!-- Manage Planogram view header -->\r\n <div class=\"d-flex justify-content-between align-items-center mb-5\">\r\n <div>\r\n <h4>All Planograms</h4>\r\n <span>{{ totalItems }} - Total Records</span>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <div style=\"position: relative\">\r\n <input type=\"text\" [(ngModel)]=\"searchTerm\" (change)=\"onSearch()\"\r\n style=\"padding-left: 3rem; padding-right: 3rem\" class=\"form-control\" name=\"search\" autocomplete=\"off\"\r\n placeholder=\"Search\" />\r\n\r\n <span class=\"search-icon\">\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <circle cx=\"8\" cy=\"8\" r=\"6\" stroke=\"currentColor\" stroke-width=\"2\" />\r\n <line x1=\"13\" y1=\"13\" x2=\"16\" y2=\"16\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" />\r\n </svg>\r\n </span>\r\n\r\n <button *ngIf=\"searchTerm\" type=\"button\" aria-label=\"Clear\" (click)=\"searchTerm = ''; onSearch()\"\r\n class=\"clear-search\">\r\n <svg width=\"64px\" height=\"64px\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"SVGRepo_bgCarrier\" stroke-width=\"0\"></g>\r\n <g id=\"SVGRepo_tracerCarrier\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></g>\r\n <g id=\"SVGRepo_iconCarrier\">\r\n <path d=\"M9 9L15 15\" stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n </path>\r\n <path d=\"M15 9L9 15\" stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n </path>\r\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></circle>\r\n </g>\r\n </svg>\r\n </button>\r\n </div>\r\n <!-- Filter -->\r\n <plano-filter [clientId]=\"clientId\" (applyFilters)=\"applyFilters($event)\"\r\n (resetFilters)=\"applyFilters($event)\"></plano-filter>\r\n <button type=\"button\" (click)=\"onExport()\"\r\n class=\"btn-outline btn align-items-end text-nowrap invheader ms-4\"\r\n [disabled]=\"!planogramsList.length\">\r\n <!-- Export Icon -->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </svg>\r\n <span class=\"ms-2\"></span> Export\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"isPageLoading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\"\r\n *ngIf=\"!isPageLoading && planogramsList.length === 0 && !planoList\">\r\n <img class=\"img-src\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\" />\r\n <div class=\"nodatamaintext mt-3\">No data found</div>\r\n <div class=\"nodatasubtext\">There is no result for planogram table</div>\r\n </div>\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\"\r\n *ngIf=\"!isPageLoading && planogramsList.length === 0 && planoList\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"302\" height=\"160\" viewBox=\"0 0 302 160\" fill=\"none\">\r\n <path d=\"M97.9023 54.0942C83.6389 54.0942 72.0762 65.657 72.0762 79.9204C72.0762 85.8363 68.0722 92.5806 62.1564 92.5806H39.3506C25.0871 92.5806 13.5234 104.143 13.5234 118.407C13.5234 132.67 25.0871 144.233 39.3506 144.233H177.449C194.339 144.233 210.412 131.067 227.302 131.067H293.337C298.091 131.067 301.945 127.213 301.945 122.458C301.945 117.704 298.091 113.849 293.337 113.849H205.717C204.072 113.849 202.68 112.627 202.212 111.051C201.473 108.561 203.174 105.747 205.771 105.747H236.001C250.264 105.747 261.827 94.1838 261.827 79.9204C261.827 65.657 250.264 54.0943 236.001 54.0942H97.9023Z\" fill=\"#EAECF0\"/>\r\n <rect width=\"240.694\" height=\"16.9956\" rx=\"8.4978\" transform=\"matrix(-1 0 0 1 240.694 55.9315)\" fill=\"#EAECF0\"/>\r\n <circle cx=\"5.42147\" cy=\"5.42147\" r=\"5.42147\" transform=\"matrix(-1 0 0 1 50.3906 120.357)\" fill=\"#6BCAFF\"/>\r\n <circle cx=\"3.25288\" cy=\"3.25288\" r=\"3.25288\" transform=\"matrix(-1 0 0 1 239.058 75.9004)\" fill=\"#00A3FF\"/>\r\n <circle cx=\"3.25288\" cy=\"3.25288\" r=\"3.25288\" transform=\"matrix(-1 0 0 1 209.781 20.6014)\" fill=\"#00A3FF\"/>\r\n <circle cx=\"2.16859\" cy=\"2.16859\" r=\"2.16859\" transform=\"matrix(-1 0 0 1 98.0986 145.295)\" fill=\"#00A3FF\"/>\r\n <rect x=\"63.0869\" y=\"51.7187\" width=\"166.015\" height=\"96.9528\" rx=\"14.6093\" fill=\"#6BCAFF\" stroke=\"#00A3FF\" stroke-width=\"3.98436\"/>\r\n <mask id=\"path-8-inside-1_769_29740\" fill=\"white\">\r\n <path d=\"M87.2119 26.0743C88.1571 26.0744 89.083 26.1571 89.9824 26.3165V123.859C89.083 123.699 88.1571 123.616 87.2119 123.616H76.8682C68.1579 123.616 61.0968 130.678 61.0967 139.388V41.8458C61.0967 33.1355 68.1578 26.0743 76.8682 26.0743H87.2119Z\"/>\r\n </mask>\r\n <path d=\"M87.2119 26.0743C88.1571 26.0744 89.083 26.1571 89.9824 26.3165V123.859C89.083 123.699 88.1571 123.616 87.2119 123.616H76.8682C68.1579 123.616 61.0968 130.678 61.0967 139.388V41.8458C61.0967 33.1355 68.1578 26.0743 76.8682 26.0743H87.2119Z\" fill=\"#6BCAFF\"/>\r\n <path d=\"M87.2119 26.0743L87.212 22.09H87.2119V26.0743ZM89.9824 26.3165H93.9668V22.9762L90.6777 22.3933L89.9824 26.3165ZM89.9824 123.859L89.2872 127.782L93.9668 128.611V123.859H89.9824ZM87.2119 123.616L87.212 119.632H87.2119V123.616ZM61.0967 139.388H57.1123L65.081 139.388L61.0967 139.388ZM87.2119 26.0743L87.2119 30.0587C87.9241 30.0587 88.6173 30.121 89.2872 30.2398L89.9824 26.3165L90.6777 22.3933C89.5487 22.1932 88.3902 22.09 87.212 22.09L87.2119 26.0743ZM89.9824 26.3165H85.9981V123.859H89.9824H93.9668V26.3165H89.9824ZM89.9824 123.859L90.6777 119.935C89.5487 119.735 88.3902 119.632 87.212 119.632L87.2119 123.616L87.2119 127.601C87.924 127.601 88.6173 127.663 89.2872 127.782L89.9824 123.859ZM87.2119 123.616V119.632H76.8682V123.616V127.601H87.2119V123.616ZM76.8682 123.616V119.632C65.9574 119.632 57.1125 128.477 57.1123 139.388L61.0967 139.388L65.081 139.388C65.0811 132.878 70.3585 127.601 76.8682 127.601V123.616ZM61.0967 139.388H65.081V41.8458H61.0967H57.1123V139.388H61.0967ZM61.0967 41.8458H65.081C65.081 35.336 70.3583 30.0587 76.8682 30.0587V26.0743V22.09C65.9573 22.09 57.1123 30.935 57.1123 41.8458H61.0967ZM76.8682 26.0743V30.0587H87.2119V26.0743V22.09H76.8682V26.0743Z\" fill=\"#00A3FF\" mask=\"url(#path-8-inside-1_769_29740)\"/>\r\n <line x1=\"71.0547\" y1=\"49.7267\" x2=\"71.0547\" y2=\"91.5625\" stroke=\"#99DAFF\" stroke-width=\"3.98436\" stroke-linecap=\"round\"/>\r\n <rect x=\"116.229\" y=\"104.642\" width=\"63.389\" height=\"32.1538\" rx=\"7.34945\" fill=\"#99DAFF\"/>\r\n <rect x=\"116.229\" y=\"66.9762\" width=\"63.389\" height=\"32.1538\" rx=\"7.34945\" fill=\"#99DAFF\"/>\r\n <circle cx=\"212.299\" cy=\"77.2505\" r=\"3.29663\" fill=\"white\"/>\r\n <circle cx=\"105.88\" cy=\"62.2407\" r=\"2.52637\" fill=\"#99DAFF\"/>\r\n <circle cx=\"93.4783\" cy=\"132.06\" r=\"3.44505\" fill=\"white\"/>\r\n <rect x=\"116.229\" y=\"37.5784\" width=\"63.389\" height=\"24.8044\" rx=\"7.34945\" fill=\"#99DAFF\"/>\r\n </svg> \r\n <div class=\"nodatamaintext mt-3\">Planogram Yet to Publish</div>\r\n <div class=\"nodatasubtext\"><a href=\"manage/planogram/manage-planogram?planoId={{planoList?.[0]?.planoId}}&floorId={{planoList?.[0]?._id}}\">{{planoList?.[0]?.storeName}}</a> is still under verification</div>\r\n </div>\r\n\r\n <!-- Manage Planogram list view -->\r\n <section id=\"list-view\" *ngIf=\"!isPageLoading && planogramsList.length !== 0\">\r\n <div class=\"table-responsive\">\r\n <table class=\"w-100 table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th>\r\n <span (click)=\"onSortTable('storeName')\" class=\"cursor-pointer\">\r\n Planogram name\r\n <i class=\"fa ms-1 mt-1\" [ngStyle]=\"{\r\n color: sortedColumn === 'storeName' ? '#009BF3' : ''\r\n }\" [ngClass]=\"\r\n sortOrder === 1 && sortedColumn === 'storeName'\r\n ? 'fa-arrow-up'\r\n : 'fa-arrow-down'\r\n \" aria-hidden=\"true\"></i>\r\n </span>\r\n </th>\r\n <th>\r\n Country\r\n <!-- <span (click)=\"onSortTable('country')\" class=\"cursor-pointer\">\r\n <i class=\"fa ms-1 mt-1\" [ngStyle]=\"{\r\n color: sortedColumn === 'country' ? '#009BF3' : ''\r\n }\" [ngClass]=\"\r\n sortOrder === 1 && sortedColumn === 'country'\r\n ? 'fa-arrow-up'\r\n : 'fa-arrow-down'\r\n \" aria-hidden=\"true\"></i>\r\n </span> -->\r\n </th>\r\n <th>\r\n Region\r\n <!-- <span (click)=\"onSortTable('city')\" class=\"cursor-pointer\">\r\n <i class=\"fa ms-1 mt-1\" [ngStyle]=\"{\r\n color: sortedColumn === 'city' ? '#009BF3' : ''\r\n }\" [ngClass]=\"\r\n sortOrder === 1 && sortedColumn === 'city'\r\n ? 'fa-arrow-up'\r\n : 'fa-arrow-down'\r\n \" aria-hidden=\"true\"></i>\r\n </span> -->\r\n </th>\r\n <th>\r\n <span (click)=\"onSortTable('updatedAt')\" class=\"cursor-pointer\">\r\n Last update\r\n <i class=\"fa ms-1 mt-1\" [ngStyle]=\"{\r\n color: sortedColumn === 'updatedAt' ? '#009BF3' : ''\r\n }\" [ngClass]=\"\r\n sortOrder === 1 && sortedColumn === 'updatedAt'\r\n ? 'fa-arrow-up'\r\n : 'fa-arrow-down'\r\n \" aria-hidden=\"true\"></i>\r\n </span>\r\n </th>\r\n <th>\r\n <span (click)=\"onSortTable('merchCompliance')\" class=\"cursor-pointer\">\r\n Merch Compliance\r\n <i class=\"fa ms-1 mt-1\" [ngStyle]=\"{\r\n color: sortedColumn === 'merchCompliance' ? '#009BF3' : ''\r\n }\" [ngClass]=\"\r\n sortOrder === 1 && sortedColumn === 'merchCompliance'\r\n ? 'fa-arrow-up'\r\n : 'fa-arrow-down'\r\n \" aria-hidden=\"true\"></i>\r\n </span>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let plano of planogramsList\">\r\n <td>\r\n <a [routerLink]=\"['/manage/planogram/store-planogram']\" [queryParams]=\"{\r\n planoId: plano.planoId,\r\n floorId: plano._id\r\n }\" class=\"text-decoration-underline\">\r\n {{plano.storeName}} <span *ngIf=\"plano.multipleFloor\">({{plano.floorName | titlecase}})</span> - Plano\r\n </a>\r\n </td>\r\n <td>\r\n <span>{{plano?.storeInfo?.country}}</span>\r\n </td>\r\n <td>\r\n <span>{{plano?.storeInfo?.city}}</span>\r\n </td>\r\n <td>\r\n <span>{{plano.updatedAt}}</span>\r\n </td>\r\n <td>\r\n <span>{{plano?.merchCompliance ?? 0}}</span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </section>\r\n\r\n <!-- Manage Planogram grid view -->\r\n <!-- <ng-template #gridView>\r\n <section id=\"grid-view\">\r\n <div class=\"row gx-6 gy-4\">\r\n <div class=\"col-md-4\" *ngFor=\"let fixture of fixtureTemplatesList\">\r\n <div class=\"card\">\r\n <div class=\"card-img\">\r\n <div class=\"card-action dropdown\">\r\n <button class=\"btn btn-light px-4 py-3\" type=\"button\" data-bs-toggle=\"dropdown\">\r\n <i class=\"bi bi-three-dots-vertical\"></i>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li><a class=\"dropdown-item cursor-pointer\">Edit</a></li>\r\n <li><a class=\"dropdown-item cursor-pointer\">Duplicate</a></li>\r\n <li><a class=\"dropdown-item cursor-pointer text-danger\">Delete</a></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <h3>{{ fixture.name }}</h3>\r\n <div class=\"badge\" [ngClass]=\"fixture.status\">{{ fixture.status | titlecase }}</div>\r\n </div>\r\n <div class=\"d-flex gap-2\">\r\n <div *ngFor=\"let subBrand of fixture.subBrand; let i = index\">\r\n <span *ngIf=\"i != 0\" class=\"me-2 card-tagline\">&#8226;</span>\r\n <div class=\"badge\">{{ subBrand }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </ng-template> -->\r\n\r\n <!-- Pagination -->\r\n <lib-pagination [itemsPerPage]=\"limit\" [currentPage]=\"offset\" [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"paginationSize()\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\" *ngIf=\"!isPageLoading && planogramsList.length !== 0\">\r\n </lib-pagination>\r\n </div>\r\n</div>", styles: [".header{background:#fff;padding:12px;border-radius:12px;display:flex;align-items:center;justify-content:space-between}.btn{padding:.775rem 1.5rem!important;font-size:1.1rem!important}.badge{font-weight:500;font-size:12px;line-height:18px;text-align:center;padding:2px 8px;border-radius:16px}.badge.inactive{background:#f2f4f7!important;color:#344054!important}.builder{height:75vh}.builder .cols{background:#fff;border-radius:12px;padding:24px 24px 12px;max-height:75vh;overflow-y:auto}.shelf-container{border-radius:8px;background:var(--Gray-50, #f9fafb);padding:8px 16px;margin-bottom:12px}.counter-container{display:flex;align-items:center;justify-content:center;border-radius:8px;background-color:#fff;padding:10px;border:.49px solid #d0d5dd}.counter-container span{margin:0 18px;font-weight:500;font-size:14px;text-align:center;vertical-align:middle;width:18px}.disable-counter{color:var(--bs-gray-500)!important;background-color:var(--bs-gray-200)!important;border-color:var(--bs-gray-300)!important;pointer-events:none;opacity:1}.disabled-click{pointer-events:none;opacity:.85}.wall-viewport{display:flex;align-items:center;justify-content:center;flex-direction:column;margin-bottom:30px;width:345px;text-align:center}.wall-viewport .wrapper{width:100%;max-width:345px}.wall-viewport .header-info,.wall-viewport .footer-info,.wall-viewport .body-info{width:100%;border:2px solid #f2f4f7;border-bottom:4px solid #ffffff;background:#f2f4f7;max-width:230px;display:flex;align-items:center;justify-content:center;justify-content:start;padding:12px;gap:4px}.wall-viewport .header-info p,.wall-viewport .footer-info p,.wall-viewport .body-info p{margin:0}.wall-viewport .header-info{margin-top:40px}.wall-viewport .sub-footer{border:1px solid #98a2b3;height:100%}.wall-viewport .header-block,.wall-viewport .footer-block{border:1px solid #98a2b3;height:95px;padding:8px;background-color:#f2f4f7;width:100%;display:flex;justify-content:center;align-items:center}.wall-viewport .header-block p,.wall-viewport .footer-block p{color:var(--Gray-600, #475467);font-size:18px;font-weight:600;white-space:normal;word-wrap:break-word;margin:0;background-color:#f2f4f7}.wall-viewport .body-block{width:100%}.wall-viewport .body-block .block{border:1px solid #98a2b3;padding:10px;width:100%;max-width:345px;overflow-x:auto;min-height:52px}.wall-viewport .body-block .tray,.wall-viewport .body-block .shelf{display:flex;gap:4px}.wall-viewport .body-block .tray .product,.wall-viewport .body-block .shelf .product{border:1px solid rgba(152,162,179,.2901960784);min-width:50px}.wall-viewport .body-block .tray .product{min-height:20px}.wall-viewport .body-block .shelf .product{min-height:30px}.wall-viewport .body-block .hide-product{border-color:transparent!important}.wall-viewport .body-block .hide-scroll{overflow-x:hidden!important}.horizontal-dimension{display:flex;align-items:center;justify-content:center;height:30px;position:relative}.horizontal-dimension .arrow{width:12px;height:12px;background-size:contain;background-repeat:no-repeat;background-position:center}.horizontal-dimension .arrow.left{transform:rotate(180deg);background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.horizontal-dimension .arrow.right{transform:rotate(0);background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.horizontal-dimension .line{flex:1;background-color:#eaecf0;position:relative;display:flex;align-items:center;justify-content:center;height:1px}.horizontal-dimension .line span{position:absolute;top:-12px;color:#667085;font-weight:500;font-size:14px;background-color:#fff;padding:0 4px}.vertical-dimension{display:flex;flex-direction:column;align-items:center;width:30px;position:relative}.vertical-dimension .arrow{width:12px;height:12px;background-size:contain;background-repeat:no-repeat;background-position:center}.vertical-dimension .arrow.up{transform:rotate(-90deg);margin-top:20px;background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.vertical-dimension .arrow.down{transform:rotate(90deg);margin-bottom:26px;background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.vertical-dimension .line{flex:1;background-color:#eaecf0;position:relative;display:flex;align-items:center;justify-content:center;width:1px}.vertical-dimension .line span{writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);color:#667085;font-weight:500;font-size:14px;background-color:#fff;padding:2px 4px}.info-card{padding:12px;background:#fff;border:1px solid #d0d5dd;border-radius:8px;box-shadow:0 1px 2px #1018280f,0 1px 3px #1018281a}.info-card h3{font-weight:600;font-size:18px;line-height:28px;vertical-align:middle}.info-card p{font-weight:500;font-size:14px;line-height:20px;color:#667085;margin:0}.checkbox input[type=checkbox]{width:16px!important;height:16px!important;margin:5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-600, #d0d5dd)!important;box-shadow:none;font-size:.5em;text-align:center;line-height:1em;background:#fff}.checkbox input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00a3ff)!important;background-color:var(--primary-50, #eaf8ff)}.checkbox input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00a3ff;border-right:2px solid #00a3ff;display:inline-block;width:.5em;padding-left:3px;padding-top:10px;padding-right:0}.nav-pills{display:inline-flex;gap:4px}.nav-pills .nav-item .nav-link{border-radius:0;color:#667085;font-size:14px;font-weight:500;padding:8px 16px;border:none}.nav-pills .nav-item .nav-link:hover{background-color:#00000005}.nav-pills .nav-item .nav-link.active{background-color:#eaf8ff;color:#009bf3;border-bottom:3px solid #009bf3}.content-wrapper{background:#fff;border-radius:12px;min-height:calc(100vh - 400px);height:100%;padding:16px 24px;display:flex;flex-direction:column}.loader .shimmer{height:150px}.filter-tab{border:1px solid rgb(234,236,240);background:#fff;box-shadow:0 1px 2px #1018280d;border-radius:8px;padding:18px;transition:all ease .2s}.filter-tab:hover{cursor:pointer}.filter-tab.selected{background:#f6fcff;border:1px solid rgb(107,202,255);box-shadow:0 1px 2px #1018280d}.filter-tab h3{color:#000;font-size:20px;font-weight:600;line-height:30px;margin:0}.filter-tab p{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px;margin:0}.nodatamaintext{font-family:Inter;font-size:16px;font-weight:600;line-height:24px;text-align:center;color:#101828}.nodatasubtext[_ngcontent-ng-c2141490359]{font-family:Inter;font-size:14px;font-weight:400;line-height:20px;text-align:center;color:#667085}.table-responsive{min-height:calc(100vh - 495px)}.download-link{color:var(--Primary-800, #008edf);font-size:14px;font-weight:500;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:auto;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font;cursor:pointer}h3.card-title{color:#101828;font-size:18px;font-weight:600;line-height:28px}p.card-tagline{color:#101828;font-size:14px;font-weight:500;line-height:20px}p.card-description{color:#344054;font-size:14px;font-weight:400;line-height:20px}#grid-view .card{box-shadow:0 4px 10px #0000000d;border:1px solid rgb(223,225,231);background:#fff;border-radius:12px;padding:12px;height:100%;transition:all .2s ease}#grid-view .card:hover{cursor:pointer;box-shadow:0 10px 10px #0001;transition:all .2s ease}#grid-view .card-img{margin-bottom:12px;background:#d0d5dd;height:200px;border-radius:6px}#grid-view .card-action{position:absolute;top:20px;right:20px}#grid-view .card-tagline{color:#475467;font-weight:500;font-size:14px;line-height:20px}.badge{font-weight:500;font-size:12px;line-height:18px;text-align:center;color:#027a48;background:#ecfdf3}.badge.active{color:#027a48;background:#ecfdf3}.badge.inactive{background:#f2f4f7;color:#344054}.badge.draft{color:#009bf3;background:#eaf8ff}.badge.cluster{background:#f2f4f7;color:#344054}.badge.published{background:#ecfdf3;color:#027a48}.badge.yet-to-publish{background:#f8f9fc;color:#363f72}.indicator{border-radius:16px;padding:2px 8px;display:flex;justify-content:center;align-items:center;white-space:nowrap;width:fit-content;text-align:center;font-size:14px;font-weight:500}.indicator.short{height:14px!important;width:14px!important;border-radius:50%!important;padding:0!important}.indicator.yetToComplete{background:#f2f4f7;color:#667085}.indicator.yetToComplete path{fill:#667085}.indicator.yetToAssign{background:#eaecf5;color:#344054}.indicator.yetToAssign path{fill:#344054}.indicator.taskAssigned{background:#e0eaff;color:#7a5af8}.indicator.taskAssigned path{fill:#7a5af8}.indicator.reviewPending{background:#fef0c7;color:#f79009}.indicator.reviewPending path{fill:#f79009}.indicator.flagged{background:var(--Error-50, #fef3f2);color:var(--Error-700, #b42318)}.indicator.completed{background:#d1fadf;color:#12b76a}.indicator.completed path{fill:#12b76a}.toggle-button{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:8px;background:#fff;border:.89px solid rgb(208,213,221);box-shadow:0 .89px 1.78px #1018280d;transition:all ease .3s}.toggle-button:hover{cursor:pointer}.toggle-button.selected{transition:all ease .3s;background:#eaf8ff;box-shadow:0 0 0 3.56px #d5effe!important;border:.89px solid rgb(234,248,255)}.disabled-click{pointer-events:none;cursor:not-allowed!important;opacity:.6}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);pointer-events:none;color:#888;display:flex;align-items:center;height:1.5rem}.clear-search{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:center;height:1.5rem;width:1.5rem}#list-view .thumbnail{height:40px;width:40px;background:#f2f4f7;margin-right:12px;border-radius:8px}#list-view td{vertical-align:middle}\n"] }]
236
236
  }], ctorParameters: () => [{ type: i1.StoreBuilderService }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i3.GlobalStateService }, { type: i3.PageInfoService }] });
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbm8tdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvcGxhbm9ncmFtL3BsYW5vLXRhYmxlL3BsYW5vLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi9jb21wb25lbnRzL3BsYW5vZ3JhbS9wbGFuby10YWJsZS9wbGFuby10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQ0wsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sT0FBTyxFQUVQLFNBQVMsR0FDVixNQUFNLE1BQU0sQ0FBQztBQUdkLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsbUJBQW1CLEdBQ3BCLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7OztBQVEzQyxNQUFNLE9BQU8sbUJBQW1CO0lBeUJwQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBNUJWLFFBQVEsQ0FBUztJQUVqQixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLE1BQU0sR0FBVyxDQUFDLENBQUM7SUFDbkIsVUFBVSxHQUFXLENBQUMsQ0FBQztJQUN2QixlQUFlLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRS9CLFlBQVksR0FBVyxFQUFFLENBQUM7SUFDMUIsU0FBUyxHQUFXLENBQUMsQ0FBQyxDQUFDO0lBRXZCLFVBQVUsR0FBVyxFQUFFLENBQUM7SUFFeEIsY0FBYyxHQUF5QixFQUFFLENBQUM7SUFFMUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztJQUNwQixlQUFlLEdBQVksS0FBSyxDQUFDO0lBQ2pDLGFBQWEs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SUFBSSxDQUFDLFlBQVk7WUFDakMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3RCLFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUM1QixNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDM0IsTUFBTSxFQUFFLElBQUk7WUFDWix1QkFBdUI7U0FDeEIsQ0FBQztRQUVGLElBQUksQ0FBQyxtQkFBbUI7YUFDckIsc0JBQXNCLENBQUMsT0FBTyxDQUFDO2FBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLEdBQUcsRUFBRTtvQkFDUCxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztpQkFDNUQ7WUFDSCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDMUIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDL0IsQ0FBQzt3R0F2UFUsbUJBQW1COzRGQUFuQixtQkFBbUIsdURDdkJoQyxtOGVBMlBNOzs0RkRwT08sbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBQbGFub2dyYW1UYWJsZUxpc3QgfSBmcm9tIFwiLi4vLi4vLi4vaW50ZXJmYWNlcy9wbGFub2dyYW0uaW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7XHJcbiAgZGVib3VuY2VUaW1lLFxyXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxyXG4gIGZpbHRlcixcclxuICBTdWJqZWN0LFxyXG4gIFN1YnNjcmlwdGlvbixcclxuICB0YWtlVW50aWwsXHJcbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgU3RvcmVCdWlsZGVyU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy9zdG9yZS1idWlsZGVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlLCBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tIFwidGFuZ28tYXBwLXVpLWdsb2JhbFwiO1xyXG5pbXBvcnQge1xyXG4gIGdldFF1ZXJ5UGFyYW1OdW1iZXIsXHJcbiAgZ2V0UXVlcnlQYXJhbVN0cmluZyxcclxufSBmcm9tIFwiLi4vLi4vLi4vZnVuY3Rpb25zL3BsYW5vLmZ1bmN0aW9uXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJsaWItcGxhbm8tdGFibGVcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3BsYW5vLXRhYmxlLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmw6IFwiLi9wbGFuby10YWJsZS5jb21wb25lbnQuc2Nzc1wiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGxhbm9UYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBjbGllbnRJZDogc3RyaW5nO1xyXG5cclxuICBsaW1pdDogbnVtYmVyID0gMTA7XHJcbiAgb2Zmc2V0OiBudW1iZXIgPSAxO1xyXG4gIHRvdGFsSXRlbXM6IG51bWJlciA9IDA7XHJcbiAgcGFnaW5hdGlvblNpemVzID0gWzEwLCAyMCwgMzBdO1xyXG5cclxuICBzb3J0ZWRDb2x1bW46IHN0cmluZyA9IFwiXCI7XHJcbiAgc29ydE9yZGVyOiBudW1iZXIgPSAtMTtcclxuXHJcbiAgc2VhcmNoVGVybTogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgcGxhbm9ncmFtc0xpc3Q6IFBsYW5vZ3JhbVRhYmxlTGlzdFtdID0gW107XHJcblxyXG4gIGFwcGxpZWRGaWx0ZXJzID0ge307XHJcbiAgaXNGaWx0ZXJBcHBsaWVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNQYWdlTG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgaXNFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHBsYW5vTGlzdDphbnk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgcGxhbm9TdWI/OiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzdG9yZUJ1aWxkZXJTZXJ2aWNlOiBTdG9yZUJ1aWxkZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwYWdlSW5mbzogUGFnZUluZm9TZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0UGFnZURhdGEoKTtcclxuXHJcbiAgICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgLy8gU3Vic2NyaXB0aW9uIHdpbGwgYmUgY2FuY2VsbGVkIG9uIGNvbXBvbmVudCBkZXN0cm95LlxyXG4gICAgICAgIGRlYm91bmNlVGltZSgyMDApLCAvLyBUbyBhdm9pZCBpbW1lZGlhdGUgZnJlcXVlbnQgY2FsbHMuXHJcbiAgICAgICAgZmlsdGVyKChkYXRhKSA9PiAhIWRhdGEpLCAvLyBGaWx0ZXJpbmcgbnVsbC91bmRlZmluZWQuXHJcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSAvLyBFbWl0dGluZyBvbmx5IGRpZmZlcmVudCB2YWx1ZXMuIChJZ25vcmVzIHNhbWUgY2xpZW50SWQpLlxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xpZW50SWQgPSBkYXRhLmNsaWVudDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCBkYXRhID0gSlNPTi5wYXJzZShcclxuICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIGFzIHN0cmluZ1xyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLmNsaWVudElkID0gZGF0YT8uY2xpZW50O1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMucm91dGUucXVlcnlQYXJhbU1hcFxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHBhcmFtcykgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VhcmNoVGVybSA9IGdldFF1ZXJ5UGFyYW1TdHJpbmcoe1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgICAgICAgICAga2V5OiBcInNlYXJjaFwiLFxyXG4gICAgICAgICAgICAgICAgZmFsbGJhY2s6IFwiXCIsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5pc0ZpbHRlckFwcGxpZWQgPSB0aGlzLnNlYXJjaFRlcm0gPyB0cnVlIDogZmFsc2U7XHJcblxyXG4gICAgICAgICAgICAgIHRoaXMubGltaXQgPSBnZXRRdWVyeVBhcmFtTnVtYmVyKHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyxcclxuICAgICAgICAgICAgICAgIGtleTogXCJsaW1pdFwiLFxyXG4gICAgICAgICAgICAgICAgZmFsbGJhY2s6IDEwLFxyXG4gICAgICAgICAgICAgICAgbWluOiAxLFxyXG4gICAgICAgICAgICAgICAgbWF4OiAzMCxcclxuICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5vZmZzZXQgPSBnZXRRdWVyeVBhcmFtTnVtYmVyKHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyxcclxuICAgICAgICAgICAgICAgIGtleTogXCJvZmZzZXRcIixcclxuICAgICAgICAgICAgICAgIGZhbGxiYWNrOiAxLFxyXG4gICAgICAgICAgICAgICAgbWluOiAxLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLmdldFBsYW5vZ3JhbVRhYmxlTGlzdCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFBhZ2VEYXRhKCkge1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRUaXRsZShcIlBsYW5vZ3JhbVwiKTtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0QnJlYWRjcnVtYnMoW10pO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGxhbm9ncmFtVGFibGVMaXN0KCkge1xyXG4gICAgdGhpcy5wbGFub1N1Yj8udW5zdWJzY3JpYmUoKTsgLy8gQ2FuY2VsIHByZXZpb3VzIHJlcXVlc3RcclxuXHJcbiAgICB0aGlzLmlzUGFnZUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5wbGFub0xpc3QgPSBudWxsO1xyXG4gICAgdGhpcy5wbGFub2dyYW1zTGlzdCA9IFtdO1xyXG5cclxuICAgIGxldCBwYXlsb2FkID0ge1xyXG4gICAgICBjbGllbnRJZDogdGhpcy5jbGllbnRJZCxcclxuICAgICAgbGltaXQ6IHRoaXMubGltaXQsXHJcbiAgICAgIG9mZnNldDogdGhpcy5vZmZzZXQsXHJcbiAgICAgIHNvcnRDb2x1bW5OYW1lOiB0aGlzLnNvcnRlZENvbHVtbixcclxuICAgICAgc29ydEJ5OiB0aGlzLnNvcnRPcmRlcixcclxuICAgICAgc2VhcmNoVmFsdWU6IHRoaXMuc2VhcmNoVGVybSxcclxuICAgICAgZmlsdGVyOiB0aGlzLmFwcGxpZWRGaWx0ZXJzLFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnBsYW5vU3ViID0gdGhpcy5zdG9yZUJ1aWxkZXJTZXJ2aWNlXHJcbiAgICAgIC5nZXRQbGFub2dyYW1MaXN0KHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcz8uY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5wbGFub0xpc3QgPSByZXM/LmRhdGE/LnBsYW5vRGF0YTtcclxuICAgICAgICAgICAgdGhpcy50b3RhbEl0ZW1zID0gcmVzPy5kYXRhPy5jb3VudDtcclxuICAgICAgICAgICAgdGhpcy5wbGFub2dyYW1zTGlzdCA9IHJlcz8uZGF0YT8uZGF0YSA/PyBbXTtcclxuICAgICAgICAgICAgaWYgKHRoaXMudG90YWxJdGVtcyA8IDEwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZXMgPSBbdGhpcy50b3RhbEl0ZW1zXTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplcyA9IFsxMCwgMjAsIDMwXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGNvbnN0IHN0b3JlQ291bnRNYXAgPSB0aGlzLnBsYW5vZ3JhbXNMaXN0LnJlZHVjZSgoYWNjLCBpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgIGFjY1tpdGVtLnN0b3JlTmFtZV0gPSAoYWNjW2l0ZW0uc3RvcmVOYW1lXSB8fCAwKSArIDE7XHJcbiAgICAgICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgICAgICB9LCB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+KTtcclxuXHJcbiAgICAgICAgICB0aGlzLnBsYW5vZ3JhbXNMaXN0ID0gdGhpcy5wbGFub2dyYW1zTGlzdC5tYXAoKGl0ZW0pID0+ICh7XHJcbiAgICAgICAgICAgIC4uLml0ZW0sXHJcbiAgICAgICAgICAgIG11bHRpcGxlRmxvb3I6IHN0b3JlQ291bnRNYXBbaXRlbS5zdG9yZU5hbWVdID4gMSxcclxuICAgICAgICAgIH0pKTtcclxuXHJcbiAgICAgICAgICB0aGlzLmlzUGFnZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzUGFnZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLnRvdGFsSXRlbXMgPSB0aGlzLnBsYW5vZ3JhbXNMaXN0Lmxlbmd0aDtcclxuICB9XHJcblxyXG4gIG9uU2VhcmNoKCkge1xyXG4gICAgdGhpcy5zb3J0ZWRDb2x1bW4gPSBcIlwiO1xyXG4gICAgdGhpcy5zb3J0T3JkZXIgPSAxO1xyXG4gICAgdGhpcy5vZmZzZXQgPSAxO1xyXG4gICAgdGhpcy5saW1pdCA9IDEwO1xyXG5cclxuICAgIHRoaXMuaXNGaWx0ZXJBcHBsaWVkID0gdGhpcy5zZWFyY2hUZXJtID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgdGhpcy51cGRhdGVRdWVyeVBhcmFtcygpO1xyXG4gIH1cclxuXHJcbiAgb25Tb3J0VGFibGUoY29sdW1uOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLnNvcnRlZENvbHVtbiA9PT0gY29sdW1uKSB7XHJcbiAgICAgIHRoaXMuc29ydE9yZGVyID0gdGhpcy5zb3J0T3JkZXIgPT09IDEgPyAtMSA6IDE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNvcnRlZENvbHVtbiA9IGNvbHVtbjtcclxuICAgICAgdGhpcy5zb3J0T3JkZXIgPSAxO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vZmZzZXQgPSAxO1xyXG4gICAgdGhpcy5saW1pdCA9IDEwO1xyXG4gICAgdGhpcy5nZXRQbGFub2dyYW1UYWJsZUxpc3QoKTtcclxuICB9XHJcblxyXG4gIGFwcGx5RmlsdGVycyhldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBjb3VudHJ5ID0gZXZlbnRbMF0uc2VsZWN0ZWQ7XHJcbiAgICBjb25zdCBjaXR5ID0gZXZlbnRbMV0uc2VsZWN0ZWQ7XHJcbiAgICBjb25zdCBjb21wbGlhbmNlID0gZXZlbnRbMl0uc2VsZWN0ZWQ7XHJcbiAgICAvLyBjb25zdCBtZXRob2QgPSBldmVudFszXS5zZWxlY3RlZDtcclxuXHJcbiAgICBpZiAoY291bnRyeS5sZW5ndGggfHwgY2l0eS5sZW5ndGggfHwgY29tcGxpYW5jZSkge1xyXG4gICAgICB0aGlzLmlzRmlsdGVyQXBwbGllZCA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlzRmlsdGVyQXBwbGllZCA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXBwbGllZEZpbHRlcnMgPSB7XHJcbiAgICAgIGNvdW50cnksXHJcbiAgICAgIGNpdHksXHJcbiAgICAgIC4uLihjb21wbGlhbmNlID8geyBjb21wbGlhbmNlOiBbY29tcGxpYW5jZS5taW4sIGNvbXBsaWFuY2UubWF4XSB9IDoge30pLFxyXG4gICAgICAvLyAuLi4obWV0aG9kID8geyBtZXRob2QgfSA6IHt9KSxcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5vZmZzZXQgPSAxO1xyXG4gICAgdGhpcy5nZXRQbGFub2dyYW1UYWJsZUxpc3QoKTtcclxuICB9XHJcblxyXG4gIHBhZ2luYXRpb25TaXplKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy50b3RhbEl0ZW1zIDwgMTAgPyB0aGlzLnRvdGFsSXRlbXMgOiB0aGlzLmxpbWl0O1xyXG4gIH1cclxuXHJcbiAgb25QYWdlQ2hhbmdlKHBhZ2VPZmZzZXQ6IG51bWJlcikge1xyXG4gICAgdGhpcy5vZmZzZXQgPSBOdW1iZXIocGFnZU9mZnNldCk7XHJcbiAgICB0aGlzLnVwZGF0ZVF1ZXJ5UGFyYW1zKCk7XHJcbiAgfVxyXG5cclxuICBvblBhZ2VTaXplQ2hhbmdlKHBhZ2VTaXplOiBudW1iZXIpIHtcclxuICAgIHRoaXMub2Zmc2V0ID0gMTtcclxuICAgIHRoaXMubGltaXQgPSBOdW1iZXIocGFnZVNpemUpO1xyXG4gICAgdGhpcy51cGRhdGVRdWVyeVBhcmFtcygpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUXVlcnlQYXJhbXMoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xyXG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxyXG4gICAgICBxdWVyeVBhcmFtczoge1xyXG4gICAgICAgIHNlYXJjaDogdGhpcy5zZWFyY2hUZXJtLFxyXG4gICAgICAgIGxpbWl0OiB0aGlzLmxpbWl0LFxyXG4gICAgICAgIG9mZnNldDogdGhpcy5vZmZzZXQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6IFwibWVyZ2VcIixcclxuICAgICAgcmVwbGFjZVVybDogdHJ1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25FeHBvcnQoKSB7XHJcbiAgICBsZXQgcGF5bG9hZCA9IHtcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SWQsXHJcbiAgICAgIGxpbWl0OiB0aGlzLnRvdGFsSXRlbXMsXHJcbiAgICAgIG9mZnNldDogdGhpcy5vZmZzZXQsXHJcbiAgICAgIHNvcnRDb2x1bW5OYW1lOiB0aGlzLnNvcnRlZENvbHVtbixcclxuICAgICAgc29ydEJ5OiB0aGlzLnNvcnRPcmRlcixcclxuICAgICAgc2VhcmNoVmFsdWU6IHRoaXMuc2VhcmNoVGVybSxcclxuICAgICAgZmlsdGVyOiB0aGlzLmFwcGxpZWRGaWx0ZXJzLFxyXG4gICAgICBleHBvcnQ6IHRydWUsXHJcbiAgICAgIC8vIGVtcHR5RG93bmxvYWQ6IGZhbHNlXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuc3RvcmVCdWlsZGVyU2VydmljZVxyXG4gICAgICAuZ2V0UGxhbm9ncmFtTGlzdEV4cG9ydChwYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JlQnVpbGRlclNlcnZpY2Uuc2F2ZUFzRXhjZWxGaWxlKHJlcywgXCJQbGFub2dyYW1cIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyLCBcImVyclwiKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLnBsYW5vU3ViPy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29udGVudC13cmFwcGVyXCI+XHJcbiAgPGRpdj5cclxuICAgIDwhLS0gTWFuYWdlIFBsYW5vZ3JhbSB2aWV3IGhlYWRlciAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG1iLTVcIj5cclxuICAgICAgPGRpdj5cclxuICAgICAgICA8aDQ+QWxsIFBsYW5vZ3JhbXM8L2g0PlxyXG4gICAgICAgIDxzcGFuPnt7IHRvdGFsSXRlbXMgfX0gLSBUb3RhbCBSZWNvcmRzPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXJtXCIgKGNoYW5nZSk9XCJvblNlYXJjaCgpXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDNyZW07IHBhZGRpbmctcmlnaHQ6IDNyZW1cIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIG5hbWU9XCJzZWFyY2hcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaFwiIC8+XHJcblxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZWFyY2gtaWNvblwiPlxyXG4gICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIHZpZXdCb3g9XCIwIDAgMTggMThcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI4XCIgY3k9XCI4XCIgcj1cIjZcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIyXCIgLz5cclxuICAgICAgICAgICAgICA8bGluZSB4MT1cIjEzXCIgeTE9XCIxM1wiIHgyPVwiMTZcIiB5Mj1cIjE2XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwic2VhcmNoVGVybVwiIHR5cGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwiQ2xlYXJcIiAoY2xpY2spPVwic2VhcmNoVGVybSA9ICcnOyBvblNlYXJjaCgpXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJjbGVhci1zZWFyY2hcIj5cclxuICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjY0cHhcIiBoZWlnaHQ9XCI2NHB4XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgIDxnIGlkPVwiU1ZHUmVwb19iZ0NhcnJpZXJcIiBzdHJva2Utd2lkdGg9XCIwXCI+PC9nPlxyXG4gICAgICAgICAgICAgIDxnIGlkPVwiU1ZHUmVwb190cmFjZXJDYXJyaWVyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9nPlxyXG4gICAgICAgICAgICAgIDxnIGlkPVwiU1ZHUmVwb19pY29uQ2FycmllclwiPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk05IDlMMTUgMTVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPlxyXG4gICAgICAgICAgICAgICAgPC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNSA5TDkgMTVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPlxyXG4gICAgICAgICAgICAgICAgPC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjEyXCIgY3k9XCIxMlwiIHI9XCI5XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L2NpcmNsZT5cclxuICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLSBGaWx0ZXIgLS0+XHJcbiAgICAgICAgPHBsYW5vLWZpbHRlciBbY2xpZW50SWRdPVwiY2xpZW50SWRcIiAoYXBwbHlGaWx0ZXJzKT1cImFwcGx5RmlsdGVycygkZXZlbnQpXCJcclxuICAgICAgICAgIChyZXNldEZpbHRlcnMpPVwiYXBwbHlGaWx0ZXJzKCRldmVudClcIj48L3BsYW5vLWZpbHRlcj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25FeHBvcnQoKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuLW91dGxpbmUgYnRuIGFsaWduLWl0ZW1zLWVuZCB0ZXh0LW5vd3JhcCBpbnZoZWFkZXIgbXMtNFwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhcGxhbm9ncmFtc0xpc3QubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgIDwhLS0gRXhwb3J0IEljb24gLS0+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk0xNy41IDEyLjVWMTUuODMzM0MxNy41IDE2LjI3NTQgMTcuMzI0NCAxNi42OTkzIDE3LjAxMTggMTcuMDExOEMxNi42OTkzIDE3LjMyNDQgMTYuMjc1NCAxNy41IDE1LjgzMzMgMTcuNUg0LjE2NjY3QzMuNzI0NjQgMTcuNSAzLjMwMDcyIDE3LjMyNDQgMi45ODgxNiAxNy4wMTE4QzIuNjc1NTkgMTYuNjk5MyAyLjUgMTYuMjc1NCAyLjUgMTUuODMzM1YxMi41TTE0LjE2NjcgNi42NjY2N0wxMCAyLjVNMTAgMi41TDUuODMzMzMgNi42NjY2N00xMCAyLjVWMTIuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMlwiPjwvc3Bhbj4gRXhwb3J0XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cImlzUGFnZUxvYWRpbmdcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBsb2FkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiXHJcbiAgICAgICpuZ0lmPVwiIWlzUGFnZUxvYWRpbmcgJiYgcGxhbm9ncmFtc0xpc3QubGVuZ3RoID09PSAwICYmICFwbGFub0xpc3RcIj5cclxuICAgICAgPGltZyBjbGFzcz1cImltZy1zcmNcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGExLnN2Z1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGFtYWludGV4dCBtdC0zXCI+Tm8gZGF0YSBmb3VuZDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhc3VidGV4dFwiPlRoZXJlIGlzIG5vIHJlc3VsdCBmb3IgcGxhbm9ncmFtIHRhYmxlPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCJcclxuICAgICAgKm5nSWY9XCIhaXNQYWdlTG9hZGluZyAmJiBwbGFub2dyYW1zTGlzdC5sZW5ndGggPT09IDAgJiYgcGxhbm9MaXN0XCI+XHJcbiAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzAyXCIgaGVpZ2h0PVwiMTYwXCIgdmlld0JveD1cIjAgMCAzMDIgMTYwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICA8cGF0aCBkPVwiTTk3LjkwMjMgNTQuMDk0MkM4My42Mzg5IDU0LjA5NDIgNzIuMDc2MiA2NS42NTcgNzIuMDc2MiA3OS45MjA0QzcyLjA3NjIgODUuODM2MyA2OC4wNzIyIDkyLjU4MDYgNjIuMTU2NCA5Mi41ODA2SDM5LjM1MDZDMjUuMDg3MSA5Mi41ODA2IDEzLjUyMzQgMTA0LjE0MyAxMy41MjM0IDExOC40MDdDMTMuNTIzNCAxMzIuNjcgMjUuMDg3MSAxNDQuMjMzIDM5LjM1MDYgMTQ0LjIzM0gxNzcuNDQ5QzE5NC4zMzkgMTQ0LjIzMyAyMTAuNDEyIDEzMS4wNjcgMjI3LjMwMiAxMzEuMDY3SDI5My4zMzdDMjk4LjA5MSAxMzEuMDY3IDMwMS45NDUgMTI3LjIxMyAzMDEuOTQ1IDEyMi40NThDMzAxLjk0NSAxMTcuNzA0IDI5OC4wOTEgMTEzLjg0OSAyOTMuMzM3IDExMy44NDlIMjA1LjcxN0MyMDQuMDcyIDExMy44NDkgMjAyLjY4IDExMi42MjcgMjAyLjIxMiAxMTEuMDUxQzIwMS40NzMgMTA4LjU2MSAyMDMuMTc0IDEwNS43NDcgMjA1Ljc3MSAxMDUuNzQ3SDIzNi4wMDFDMjUwLjI2NCAxMDUuNzQ3IDI2MS44MjcgOTQuMTgzOCAyNjEuODI3IDc5LjkyMDRDMjYxLjgyNyA2NS42NTcgMjUwLjI2NCA1NC4wOTQzIDIzNi4wMDEgNTQuMDk0Mkg5Ny45MDIzWlwiIGZpbGw9XCIjRUFFQ0YwXCIvPlxyXG4gICAgICAgIDxyZWN0IHdpZHRoPVwiMjQwLjY5NFwiIGhlaWdodD1cIjE2Ljk5NTZcIiByeD1cIjguNDk3OFwiIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSAyNDAuNjk0IDU1LjkzMTUpXCIgZmlsbD1cIiNFQUVDRjBcIi8+XHJcbiAgICAgICAgPGNpcmNsZSBjeD1cIjUuNDIxNDdcIiBjeT1cIjUuNDIxNDdcIiByPVwiNS40MjE0N1wiIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSA1MC4zOTA2IDEyMC4zNTcpXCIgZmlsbD1cIiM2QkNBRkZcIi8+XHJcbiAgICAgICAgPGNpcmNsZSBjeD1cIjMuMjUyODhcIiBjeT1cIjMuMjUyODhcIiByPVwiMy4yNTI4OFwiIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSAyMzkuMDU4IDc1LjkwMDQpXCIgZmlsbD1cIiMwMEEzRkZcIi8+XHJcbiAgICAgICAgPGNpcmNsZSBjeD1cIjMuMjUyODhcIiBjeT1cIjMuMjUyODhcIiByPVwiMy4yNTI4OFwiIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSAyMDkuNzgxIDIwLjYwMTQpXCIgZmlsbD1cIiMwMEEzRkZcIi8+XHJcbiAgICAgICAgPGNpcmNsZSBjeD1cIjIuMTY4NTlcIiBjeT1cIjIuMTY4NTlcIiByPVwiMi4xNjg1OVwiIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSA5OC4wOTg2IDE0NS4yOTUpXCIgZmlsbD1cIiMwMEEzRkZcIi8+XHJcbiAgICAgICAgPHJlY3QgeD1cIjYzLjA4NjlcIiB5PVwiNTEuNzE4N1wiIHdpZHRoPVwiMTY2LjAxNVwiIGhlaWdodD1cIjk2Ljk1MjhcIiByeD1cIjE0LjYwOTNcIiBmaWxsPVwiIzZCQ0FGRlwiIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIzLjk4NDM2XCIvPlxyXG4gICAgICAgIDxtYXNrIGlkPVwicGF0aC04LWluc2lkZS0xXzc2OV8yOTc0MFwiIGZpbGw9XCJ3aGl0ZVwiPlxyXG4gICAgICAgIDxwYXRoIGQ9XCJNODcuMjExOSAyNi4wNzQzQzg4LjE1NzEgMjYuMDc0NCA4OS4wODMgMjYuMTU3MSA4OS45ODI0IDI2LjMxNjVWMTIzLjg1OUM4OS4wODMgMTIzLjY5OSA4OC4xNTcxIDEyMy42MTYgODcuMjExOSAxMjMuNjE2SDc2Ljg2ODJDNjguMTU3OSAxMjMuNjE2IDYxLjA5NjggMTMwLjY3OCA2MS4wOTY3IDEzOS4zODhWNDEuODQ1OEM2MS4wOTY3IDMzLjEzNTUgNjguMTU3OCAyNi4wNzQzIDc2Ljg2ODIgMjYuMDc0M0g4Ny4yMTE5WlwiLz5cclxuICAgICAgICA8L21hc2s+XHJcbiAgICAgICAgPHBhdGggZD1cIk04Ny4yMTE5IDI2LjA3NDNDODguMTU3MSAyNi4wNzQ0IDg5LjA4MyAyNi4xNTcxIDg5Ljk4MjQgMjYuMzE2NVYxMjMuODU5Qzg5LjA4MyAxMjMuNjk5IDg4LjE1NzEgMTIzLjYxNiA4Ny4yMTE5IDEyMy42MTZINzYuODY4MkM2OC4xNTc5IDEyMy42MTYgNjEuMDk2OCAxMzAuNjc4IDYxLjA5NjcgMTM5LjM4OFY0MS44NDU4QzYxLjA5NjcgMzMuMTM1NSA2OC4xNTc4IDI2LjA3NDMgNzYuODY4MiAyNi4wNzQzSDg3LjIxMTlaXCIgZmlsbD1cIiM2QkNBRkZcIi8+XHJcbiAgICAgICAgPHBhdGggZD1cIk04Ny4yMTE5IDI2LjA3NDNMODcuMjEyIDIyLjA5SDg3LjIxMTlWMjYuMDc0M1pNODkuOTgyNCAyNi4zMTY1SDkzLjk2NjhWMjIuOTc2Mkw5MC42Nzc3IDIyLjM5MzNMODkuOTgyNCAyNi4zMTY1Wk04OS45ODI0IDEyMy44NTlMODkuMjg3MiAxMjcuNzgyTDkzLjk2NjggMTI4LjYxMVYxMjMuODU5SDg5Ljk4MjRaTTg3LjIxMTkgMTIzLjYxNkw4Ny4yMTIgMTE5LjYzMkg4Ny4yMTE5VjEyMy42MTZaTTYxLjA5NjcgMTM5LjM4OEg1Ny4xMTIzTDY1LjA4MSAxMzkuMzg4TDYxLjA5NjcgMTM5LjM4OFpNODcuMjExOSAyNi4wNzQzTDg3LjIxMTkgMzAuMDU4N0M4Ny45MjQxIDMwLjA1ODcgODguNjE3MyAzMC4xMjEgODkuMjg3MiAzMC4yMzk4TDg5Ljk4MjQgMjYuMzE2NUw5MC42Nzc3IDIyLjM5MzNDODkuNTQ4NyAyMi4xOTMyIDg4LjM5MDIgMjIuMDkgODcuMjEyIDIyLjA5TDg3LjIxMTkgMjYuMDc0M1pNODkuOTgyNCAyNi4zMTY1SDg1Ljk5ODFWMTIzLjg1OUg4OS45ODI0SDkzLjk2NjhWMjYuMzE2NUg4OS45ODI0Wk04OS45ODI0IDEyMy44NTlMOTAuNjc3NyAxMTkuOTM1Qzg5LjU0ODcgMTE5LjczNSA4OC4zOTAyIDExOS42MzIgODcuMjEyIDExOS42MzJMODcuMjExOSAxMjMuNjE2TDg3LjIxMTkgMTI3LjYwMUM4Ny45MjQgMTI3LjYwMSA4OC42MTczIDEyNy42NjMgODkuMjg3MiAxMjcuNzgyTDg5Ljk4MjQgMTIzLjg1OVpNODcuMjExOSAxMjMuNjE2VjExOS42MzJINzYuODY4MlYxMjMuNjE2VjEyNy42MDFIODcuMjExOVYxMjMuNjE2Wk03Ni44NjgyIDEyMy42MTZWMTE5LjYzMkM2NS45NTc0IDExOS42MzIgNTcuMTEyNSAxMjguNDc3IDU3LjExMjMgMTM5LjM4OEw2MS4wOTY3IDEzOS4zODhMNjUuMDgxIDEzOS4zODhDNjUuMDgxMSAxMzIuODc4IDcwLjM1ODUgMTI3LjYwMSA3Ni44NjgyIDEyNy42MDFWMTIzLjYxNlpNNjEuMDk2NyAxMzkuMzg4SDY1LjA4MVY0MS44NDU4SDYxLjA5NjdINTcuMTEyM1YxMzkuMzg4SDYxLjA5NjdaTTYxLjA5NjcgNDEuODQ1OEg2NS4wODFDNjUuMDgxIDM1LjMzNiA3MC4zNTgzIDMwLjA1ODcgNzYuODY4MiAzMC4wNTg3VjI2LjA3NDNWMjIuMDlDNjUuOTU3MyAyMi4wOSA1Ny4xMTIzIDMwLjkzNSA1Ny4xMTIzIDQxLjg0NThINjEuMDk2N1pNNzYuODY4MiAyNi4wNzQzVjMwLjA1ODdIODcuMjExOVYyNi4wNzQzVjIyLjA5SDc2Ljg2ODJWMjYuMDc0M1pcIiBmaWxsPVwiIzAwQTNGRlwiIG1hc2s9XCJ1cmwoI3BhdGgtOC1pbnNpZGUtMV83NjlfMjk3NDApXCIvPlxyXG4gICAgICAgIDxsaW5lIHgxPVwiNzEuMDU0N1wiIHkxPVwiNDkuNzI2N1wiIHgyPVwiNzEuMDU0N1wiIHkyPVwiOTEuNTYyNVwiIHN0cm9rZT1cIiM5OURBRkZcIiBzdHJva2Utd2lkdGg9XCIzLjk4NDM2XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiLz5cclxuICAgICAgICA8cmVjdCB4PVwiMTE2LjIyOVwiIHk9XCIxMDQuNjQyXCIgd2lkdGg9XCI2My4zODlcIiBoZWlnaHQ9XCIzMi4xNTM4XCIgcng9XCI3LjM0OTQ1XCIgZmlsbD1cIiM5OURBRkZcIi8+XHJcbiAgICAgICAgPHJlY3QgeD1cIjExNi4yMjlcIiB5PVwiNjYuOTc2MlwiIHdpZHRoPVwiNjMuMzg5XCIgaGVpZ2h0PVwiMzIuMTUzOFwiIHJ4PVwiNy4zNDk0NVwiIGZpbGw9XCIjOTlEQUZGXCIvPlxyXG4gICAgICAgIDxjaXJjbGUgY3g9XCIyMTIuMjk5XCIgY3k9XCI3Ny4yNTA1XCIgcj1cIjMuMjk2NjNcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgPGNpcmNsZSBjeD1cIjEwNS44OFwiIGN5PVwiNjIuMjQwN1wiIHI9XCIyLjUyNjM3XCIgZmlsbD1cIiM5OURBRkZcIi8+XHJcbiAgICAgICAgPGNpcmNsZSBjeD1cIjkzLjQ3ODNcIiBjeT1cIjEzMi4wNlwiIHI9XCIzLjQ0NTA1XCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgIDxyZWN0IHg9XCIxMTYuMjI5XCIgeT1cIjM3LjU3ODRcIiB3aWR0aD1cIjYzLjM4OVwiIGhlaWdodD1cIjI0LjgwNDRcIiByeD1cIjcuMzQ5NDVcIiBmaWxsPVwiIzk5REFGRlwiLz5cclxuICAgICAgPC9zdmc+ICAgICAgICAgICAgICBcclxuICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YW1haW50ZXh0IG10LTNcIj5QbGFub2dyYW0gWWV0IHRvIFB1Ymxpc2g8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YXN1YnRleHRcIj48YSBocmVmPVwibWFuYWdlL3BsYW5vZ3JhbS9tYW5hZ2UtcGxhbm9ncmFtP3BsYW5vSWQ9e3twbGFub0xpc3Q/LlswXT8ucGxhbm9JZH19JmZsb29ySWQ9e3twbGFub0xpc3Q/LlswXT8uX2lkfX1cIj57e3BsYW5vTGlzdD8uWzBdPy5zdG9yZU5hbWV9fTwvYT4gaXMgc3RpbGwgdW5kZXIgdmVyaWZpY2F0aW9uPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIE1hbmFnZSBQbGFub2dyYW0gbGlzdCB2aWV3IC0tPlxyXG4gICAgPHNlY3Rpb24gaWQ9XCJsaXN0LXZpZXdcIiAqbmdJZj1cIiFpc1BhZ2VMb2FkaW5nICYmIHBsYW5vZ3JhbXNMaXN0Lmxlbmd0aCAhPT0gMFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgIDx0YWJsZSBjbGFzcz1cInctMTAwIHRhYmxlIGJvdHRvbS1ib3JkZXIgdGV4dC1ub3dyYXBcIj5cclxuICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgIDx0aD5cclxuICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJvblNvcnRUYWJsZSgnc3RvcmVOYW1lJylcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIFBsYW5vZ3JhbSBuYW1lXHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgbXMtMSBtdC0xXCIgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHNvcnRlZENvbHVtbiA9PT0gJ3N0b3JlTmFtZScgPyAnIzAwOUJGMycgOiAnJ1xyXG4gICAgICAgICAgICAgICAgICAgIH1cIiBbbmdDbGFzc109XCJcclxuICAgICAgICAgICAgICAgICAgICAgIHNvcnRPcmRlciA9PT0gMSAmJiBzb3J0ZWRDb2x1bW4gPT09ICdzdG9yZU5hbWUnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ2ZhLWFycm93LXVwJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICdmYS1hcnJvdy1kb3duJ1xyXG4gICAgICAgICAgICAgICAgICAgIFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgIDx0aD5cclxuICAgICAgICAgICAgICAgIENvdW50cnlcclxuICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gKGNsaWNrKT1cIm9uU29ydFRhYmxlKCdjb3VudHJ5JylcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgbXMtMSBtdC0xXCIgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHNvcnRlZENvbHVtbiA9PT0gJ2NvdW50cnknID8gJyMwMDlCRjMnIDogJydcclxuICAgICAgICAgICAgICAgICAgICB9XCIgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzb3J0T3JkZXIgPT09IDEgJiYgc29ydGVkQ29sdW1uID09PSAnY291bnRyeSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnZmEtYXJyb3ctdXAnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ2ZhLWFycm93LWRvd24nXHJcbiAgICAgICAgICAgICAgICAgICAgXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgIDx0aD5cclxuICAgICAgICAgICAgICAgIFJlZ2lvblxyXG4gICAgICAgICAgICAgICAgPCEtLSA8c3BhbiAoY2xpY2spPVwib25Tb3J0VGFibGUoJ2NpdHknKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBtcy0xIG10LTFcIiBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogc29ydGVkQ29sdW1uID09PSAnY2l0eScgPyAnIzAwOUJGMycgOiAnJ1xyXG4gICAgICAgICAgICAgICAgICAgIH1cIiBbbmdDbGFzc109XCJcclxuICAgICAgICAgICAgICAgICAgICAgIHNvcnRPcmRlciA9PT0gMSAmJiBzb3J0ZWRDb2x1bW4gPT09ICdjaXR5J1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdmYS1hcnJvdy11cCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiAnZmEtYXJyb3ctZG93bidcclxuICAgICAgICAgICAgICAgICAgICBcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKGNsaWNrKT1cIm9uU29ydFRhYmxlKCd1cGRhdGVkQXQnKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgTGFzdCB1cGRhdGVcclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBtcy0xIG10LTFcIiBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogc29ydGVkQ29sdW1uID09PSAndXBkYXRlZEF0JyA/ICcjMDA5QkYzJyA6ICcnXHJcbiAgICAgICAgICAgICAgICAgICAgfVwiIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc29ydE9yZGVyID09PSAxICYmIHNvcnRlZENvbHVtbiA9PT0gJ3VwZGF0ZWRBdCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnZmEtYXJyb3ctdXAnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ2ZhLWFycm93LWRvd24nXHJcbiAgICAgICAgICAgICAgICAgICAgXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKGNsaWNrKT1cIm9uU29ydFRhYmxlKCdtZXJjaENvbXBsaWFuY2UnKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgTWVyY2ggQ29tcGxpYW5jZVxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIG1zLTEgbXQtMVwiIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBzb3J0ZWRDb2x1bW4gPT09ICdtZXJjaENvbXBsaWFuY2UnID8gJyMwMDlCRjMnIDogJydcclxuICAgICAgICAgICAgICAgICAgICB9XCIgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzb3J0T3JkZXIgPT09IDEgJiYgc29ydGVkQ29sdW1uID09PSAnbWVyY2hDb21wbGlhbmNlJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdmYS1hcnJvdy11cCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiAnZmEtYXJyb3ctZG93bidcclxuICAgICAgICAgICAgICAgICAgICBcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgcGxhbm8gb2YgcGxhbm9ncmFtc0xpc3RcIj5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJbJy9tYW5hZ2UvcGxhbm9ncmFtL3N0b3JlLXBsYW5vZ3JhbSddXCIgW3F1ZXJ5UGFyYW1zXT1cIntcclxuICAgICAgICAgICAgICAgICAgICBwbGFub0lkOiBwbGFuby5wbGFub0lkLFxyXG4gICAgICAgICAgICAgICAgICAgIGZsb29ySWQ6IHBsYW5vLl9pZFxyXG4gICAgICAgICAgICAgICAgICB9XCIgY2xhc3M9XCJ0ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7cGxhbm8uc3RvcmVOYW1lfX0gPHNwYW4gKm5nSWY9XCJwbGFuby5tdWx0aXBsZUZsb29yXCI+KHt7cGxhbm8uZmxvb3JOYW1lIHwgdGl0bGVjYXNlfX0pPC9zcGFuPiAtIFBsYW5vXHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj57e3BsYW5vPy5zdG9yZUluZm8/LmNvdW50cnl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7cGxhbm8/LnN0b3JlSW5mbz8uY2l0eX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+e3twbGFuby51cGRhdGVkQXR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7cGxhbm8/Lm1lcmNoQ29tcGxpYW5jZSA/PyAwfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgPC90YWJsZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgPCEtLSBNYW5hZ2UgUGxhbm9ncmFtIGdyaWQgdmlldyAtLT5cclxuICAgIDwhLS0gPG5nLXRlbXBsYXRlICNncmlkVmlldz5cclxuICAgICAgPHNlY3Rpb24gaWQ9XCJncmlkLXZpZXdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGd4LTYgZ3ktNFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCIgKm5nRm9yPVwibGV0IGZpeHR1cmUgb2YgZml4dHVyZVRlbXBsYXRlc0xpc3RcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1pbWdcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWFjdGlvbiBkcm9wZG93blwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBweC00IHB5LTNcIiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1icy10b2dnbGU9XCJkcm9wZG93blwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktdGhyZWUtZG90cy12ZXJ0aWNhbFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImRyb3Bkb3duLW1lbnVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtIGN1cnNvci1wb2ludGVyXCI+RWRpdDwvYT48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaT48YSBjbGFzcz1cImRyb3Bkb3duLWl0ZW0gY3Vyc29yLXBvaW50ZXJcIj5EdXBsaWNhdGU8L2E+PC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtIGN1cnNvci1wb2ludGVyIHRleHQtZGFuZ2VyXCI+RGVsZXRlPC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGgzPnt7IGZpeHR1cmUubmFtZSB9fTwvaDM+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFkZ2VcIiBbbmdDbGFzc109XCJmaXh0dXJlLnN0YXR1c1wiPnt7IGZpeHR1cmUuc3RhdHVzIHwgdGl0bGVjYXNlIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgc3ViQnJhbmQgb2YgZml4dHVyZS5zdWJCcmFuZDsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImkgIT0gMFwiIGNsYXNzPVwibWUtMiBjYXJkLXRhZ2xpbmVcIj4mIzgyMjY7PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFkZ2VcIj57eyBzdWJCcmFuZCB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvc2VjdGlvbj5cclxuICAgIDwvbmctdGVtcGxhdGU+IC0tPlxyXG5cclxuICAgIDwhLS0gUGFnaW5hdGlvbiAtLT5cclxuICAgIDxsaWItcGFnaW5hdGlvbiBbaXRlbXNQZXJQYWdlXT1cImxpbWl0XCIgW2N1cnJlbnRQYWdlXT1cIm9mZnNldFwiIFt0b3RhbEl0ZW1zXT1cInRvdGFsSXRlbXNcIlxyXG4gICAgICBbcGFnaW5hdGlvblNpemVzXT1cInBhZ2luYXRpb25TaXplc1wiIFtwYWdlU2l6ZV09XCJwYWdpbmF0aW9uU2l6ZSgpXCIgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAocGFnZVNpemVDaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZSgkZXZlbnQpXCIgKm5nSWY9XCIhaXNQYWdlTG9hZGluZyAmJiBwbGFub2dyYW1zTGlzdC5sZW5ndGggIT09IDBcIj5cclxuICAgIDwvbGliLXBhZ2luYXRpb24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbm8tdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvcGxhbm9ncmFtL3BsYW5vLXRhYmxlL3BsYW5vLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi9jb21wb25lbnRzL3BsYW5vZ3JhbS9wbGFuby10YWJsZS9wbGFuby10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQ0wsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sT0FBTyxFQUVQLFNBQVMsR0FDVixNQUFNLE1BQU0sQ0FBQztBQUdkLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsbUJBQW1CLEdBQ3BCLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7OztBQVEzQyxNQUFNLE9BQU8sbUJBQW1CO0lBeUJwQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBNUJWLFFBQVEsQ0FBUztJQUVqQixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLE1BQU0sR0FBVyxDQUFDLENBQUM7SUFDbkIsVUFBVSxHQUFXLENBQUMsQ0FBQztJQUN2QixlQUFlLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRS9CLFlBQVksR0FBVyxFQUFFLENBQUM7SUFDMUIsU0FBUyxHQUFXLENBQUMsQ0FBQyxDQUFDO0lBRXZCLFVBQVUsR0FBVyxFQUFFLENBQUM7SUFFeEIsY0FBYyxHQUF5QixFQUFFLENBQUM7SUFFMUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztJQUNwQixlQUFlLEdBQVksS0FBSyxDQUFDO0lBQ2pDLGFBQWEs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Q29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFBsYW5vZ3JhbVRhYmxlTGlzdCB9IGZyb20gXCIuLi8uLi8uLi9pbnRlcmZhY2VzL3BsYW5vZ3JhbS5pbnRlcmZhY2VcIjtcclxuaW1wb3J0IHtcclxuICBkZWJvdW5jZVRpbWUsXHJcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXHJcbiAgZmlsdGVyLFxyXG4gIFN1YmplY3QsXHJcbiAgU3Vic2NyaXB0aW9uLFxyXG4gIHRha2VVbnRpbCxcclxufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBTdG9yZUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3N0b3JlLWJ1aWxkZXIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UsIFBhZ2VJbmZvU2VydmljZSB9IGZyb20gXCJ0YW5nby1hcHAtdWktZ2xvYmFsXCI7XHJcbmltcG9ydCB7XHJcbiAgZ2V0UXVlcnlQYXJhbU51bWJlcixcclxuICBnZXRRdWVyeVBhcmFtU3RyaW5nLFxyXG59IGZyb20gXCIuLi8uLi8uLi9mdW5jdGlvbnMvcGxhbm8uZnVuY3Rpb25cIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi1wbGFuby10YWJsZVwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vcGxhbm8tdGFibGUuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybDogXCIuL3BsYW5vLXRhYmxlLmNvbXBvbmVudC5zY3NzXCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQbGFub1RhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGNsaWVudElkOiBzdHJpbmc7XHJcblxyXG4gIGxpbWl0OiBudW1iZXIgPSAxMDtcclxuICBvZmZzZXQ6IG51bWJlciA9IDE7XHJcbiAgdG90YWxJdGVtczogbnVtYmVyID0gMDtcclxuICBwYWdpbmF0aW9uU2l6ZXMgPSBbMTAsIDIwLCAzMF07XHJcblxyXG4gIHNvcnRlZENvbHVtbjogc3RyaW5nID0gXCJcIjtcclxuICBzb3J0T3JkZXI6IG51bWJlciA9IC0xO1xyXG5cclxuICBzZWFyY2hUZXJtOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBwbGFub2dyYW1zTGlzdDogUGxhbm9ncmFtVGFibGVMaXN0W10gPSBbXTtcclxuXHJcbiAgYXBwbGllZEZpbHRlcnMgPSB7fTtcclxuICBpc0ZpbHRlckFwcGxpZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1BhZ2VMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBpc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcGxhbm9MaXN0OmFueTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBwbGFub1N1Yj86IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHN0b3JlQnVpbGRlclNlcnZpY2U6IFN0b3JlQnVpbGRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHBhZ2VJbmZvOiBQYWdlSW5mb1NlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRQYWdlRGF0YSgpO1xyXG5cclxuICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWVcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLCAvLyBTdWJzY3JpcHRpb24gd2lsbCBiZSBjYW5jZWxsZWQgb24gY29tcG9uZW50IGRlc3Ryb3kuXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKDIwMCksIC8vIFRvIGF2b2lkIGltbWVkaWF0ZSBmcmVxdWVudCBjYWxscy5cclxuICAgICAgICBmaWx0ZXIoKGRhdGEpID0+ICEhZGF0YSksIC8vIEZpbHRlcmluZyBudWxsL3VuZGVmaW5lZC5cclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpIC8vIEVtaXR0aW5nIG9ubHkgZGlmZmVyZW50IHZhbHVlcy4gKElnbm9yZXMgc2FtZSBjbGllbnRJZCkuXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgICAgdGhpcy5jbGllbnRJZCA9IGRhdGEuY2xpZW50O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IGRhdGEgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgYXMgc3RyaW5nXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuY2xpZW50SWQgPSBkYXRhPy5jbGllbnQ7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtTWFwXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWFyY2hUZXJtID0gZ2V0UXVlcnlQYXJhbVN0cmluZyh7XHJcbiAgICAgICAgICAgICAgICBwYXJhbXMsXHJcbiAgICAgICAgICAgICAgICBrZXk6IFwic2VhcmNoXCIsXHJcbiAgICAgICAgICAgICAgICBmYWxsYmFjazogXCJcIixcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB0aGlzLmlzRmlsdGVyQXBwbGllZCA9IHRoaXMuc2VhcmNoVGVybSA/IHRydWUgOiBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5saW1pdCA9IGdldFF1ZXJ5UGFyYW1OdW1iZXIoe1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgICAgICAgICAga2V5OiBcImxpbWl0XCIsXHJcbiAgICAgICAgICAgICAgICBmYWxsYmFjazogMTAsXHJcbiAgICAgICAgICAgICAgICBtaW46IDEsXHJcbiAgICAgICAgICAgICAgICBtYXg6IDMwLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLm9mZnNldCA9IGdldFF1ZXJ5UGFyYW1OdW1iZXIoe1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgICAgICAgICAga2V5OiBcIm9mZnNldFwiLFxyXG4gICAgICAgICAgICAgICAgZmFsbGJhY2s6IDEsXHJcbiAgICAgICAgICAgICAgICBtaW46IDEsXHJcbiAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0UGxhbm9ncmFtVGFibGVMaXN0KCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0UGFnZURhdGEoKSB7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldFRpdGxlKFwiUGxhbm9ncmFtXCIpO1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRCcmVhZGNydW1icyhbXSk7XHJcbiAgfVxyXG5cclxuICBnZXRQbGFub2dyYW1UYWJsZUxpc3QoKSB7XHJcbiAgICB0aGlzLnBsYW5vU3ViPy51bnN1YnNjcmliZSgpOyAvLyBDYW5jZWwgcHJldmlvdXMgcmVxdWVzdFxyXG5cclxuICAgIHRoaXMuaXNQYWdlTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnBsYW5vTGlzdCA9IG51bGw7XHJcbiAgICB0aGlzLnBsYW5vZ3JhbXNMaXN0ID0gW107XHJcblxyXG4gICAgbGV0IHBheWxvYWQgPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICBsaW1pdDogdGhpcy5saW1pdCxcclxuICAgICAgb2Zmc2V0OiB0aGlzLm9mZnNldCxcclxuICAgICAgc29ydENvbHVtbk5hbWU6IHRoaXMuc29ydGVkQ29sdW1uLFxyXG4gICAgICBzb3J0Qnk6IHRoaXMuc29ydE9yZGVyLFxyXG4gICAgICBzZWFyY2hWYWx1ZTogdGhpcy5zZWFyY2hUZXJtLFxyXG4gICAgICBmaWx0ZXI6IHRoaXMuYXBwbGllZEZpbHRlcnMsXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMucGxhbm9TdWIgPSB0aGlzLnN0b3JlQnVpbGRlclNlcnZpY2VcclxuICAgICAgLmdldFBsYW5vZ3JhbUxpc3QocGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzPy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnBsYW5vTGlzdCA9IHJlcz8uZGF0YT8ucGxhbm9EYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnRvdGFsSXRlbXMgPSByZXM/LmRhdGE/LmNvdW50O1xyXG4gICAgICAgICAgICB0aGlzLnBsYW5vZ3JhbXNMaXN0ID0gcmVzPy5kYXRhPy5kYXRhID8/IFtdO1xyXG4gICAgICAgICAgICBpZiAodGhpcy50b3RhbEl0ZW1zIDwgMTApIHtcclxuICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplcyA9IFt0aGlzLnRvdGFsSXRlbXNdO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gWzEwLCAyMCwgMzBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgY29uc3Qgc3RvcmVDb3VudE1hcCA9IHRoaXMucGxhbm9ncmFtc0xpc3QucmVkdWNlKChhY2MsIGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgYWNjW2l0ZW0uc3RvcmVOYW1lXSA9IChhY2NbaXRlbS5zdG9yZU5hbWVdIHx8IDApICsgMTtcclxuICAgICAgICAgICAgcmV0dXJuIGFjYztcclxuICAgICAgICAgIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIG51bWJlcj4pO1xyXG5cclxuICAgICAgICAgIHRoaXMucGxhbm9ncmFtc0xpc3QgPSB0aGlzLnBsYW5vZ3JhbXNMaXN0Lm1hcCgoaXRlbSkgPT4gKHtcclxuICAgICAgICAgICAgLi4uaXRlbSxcclxuICAgICAgICAgICAgbXVsdGlwbGVGbG9vcjogc3RvcmVDb3VudE1hcFtpdGVtLnN0b3JlTmFtZV0gPiAxLFxyXG4gICAgICAgICAgfSkpO1xyXG5cclxuICAgICAgICAgIHRoaXMuaXNQYWdlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICAgIHRoaXMuaXNQYWdlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMudG90YWxJdGVtcyA9IHRoaXMucGxhbm9ncmFtc0xpc3QubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgb25TZWFyY2goKSB7XHJcbiAgICB0aGlzLnNvcnRlZENvbHVtbiA9IFwiXCI7XHJcbiAgICB0aGlzLnNvcnRPcmRlciA9IDE7XHJcbiAgICB0aGlzLm9mZnNldCA9IDE7XHJcbiAgICB0aGlzLmxpbWl0ID0gMTA7XHJcblxyXG4gICAgdGhpcy5pc0ZpbHRlckFwcGxpZWQgPSB0aGlzLnNlYXJjaFRlcm0gPyB0cnVlIDogZmFsc2U7XHJcbiAgICB0aGlzLnVwZGF0ZVF1ZXJ5UGFyYW1zKCk7XHJcbiAgfVxyXG5cclxuICBvblNvcnRUYWJsZShjb2x1bW46IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuc29ydGVkQ29sdW1uID09PSBjb2x1bW4pIHtcclxuICAgICAgdGhpcy5zb3J0T3JkZXIgPSB0aGlzLnNvcnRPcmRlciA9PT0gMSA/IC0xIDogMTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc29ydGVkQ29sdW1uID0gY29sdW1uO1xyXG4gICAgICB0aGlzLnNvcnRPcmRlciA9IDE7XHJcbiAgICB9XHJcbiAgICB0aGlzLm9mZnNldCA9IDE7XHJcbiAgICB0aGlzLmxpbWl0ID0gMTA7XHJcbiAgICB0aGlzLmdldFBsYW5vZ3JhbVRhYmxlTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgYXBwbHlGaWx0ZXJzKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGNvdW50cnkgPSBldmVudFswXS5zZWxlY3RlZDtcclxuICAgIGNvbnN0IGNpdHkgPSBldmVudFsxXS5zZWxlY3RlZDtcclxuICAgIGNvbnN0IGNvbXBsaWFuY2UgPSBldmVudFsyXS5zZWxlY3RlZDtcclxuICAgIGNvbnN0IHBsYW5vU3RyYXRlZ3kgPSBldmVudFszXS5zZWxlY3RlZDtcclxuXHJcbiAgICBpZiAoY291bnRyeS5sZW5ndGggfHwgY2l0eS5sZW5ndGggfHwgY29tcGxpYW5jZSB8fCBwbGFub1N0cmF0ZWd5KSB7XHJcbiAgICAgIHRoaXMuaXNGaWx0ZXJBcHBsaWVkID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNGaWx0ZXJBcHBsaWVkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hcHBsaWVkRmlsdGVycyA9IHtcclxuICAgICAgY291bnRyeSxcclxuICAgICAgY2l0eSxcclxuICAgICAgLi4uKGNvbXBsaWFuY2UgPyB7IGNvbXBsaWFuY2U6IFtjb21wbGlhbmNlLm1pbiwgY29tcGxpYW5jZS5tYXhdIH0gOiB7fSksXHJcbiAgICAgIC4uLihwbGFub1N0cmF0ZWd5ID8geyBwbGFub1N0cmF0ZWd5IH0gOiB7fSksXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMub2Zmc2V0ID0gMTtcclxuICAgIHRoaXMuZ2V0UGxhbm9ncmFtVGFibGVMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBwYWdpbmF0aW9uU2l6ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudG90YWxJdGVtcyA8IDEwID8gdGhpcy50b3RhbEl0ZW1zIDogdGhpcy5saW1pdDtcclxuICB9XHJcblxyXG4gIG9uUGFnZUNoYW5nZShwYWdlT2Zmc2V0OiBudW1iZXIpIHtcclxuICAgIHRoaXMub2Zmc2V0ID0gTnVtYmVyKHBhZ2VPZmZzZXQpO1xyXG4gICAgdGhpcy51cGRhdGVRdWVyeVBhcmFtcygpO1xyXG4gIH1cclxuXHJcbiAgb25QYWdlU2l6ZUNoYW5nZShwYWdlU2l6ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm9mZnNldCA9IDE7XHJcbiAgICB0aGlzLmxpbWl0ID0gTnVtYmVyKHBhZ2VTaXplKTtcclxuICAgIHRoaXMudXBkYXRlUXVlcnlQYXJhbXMoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVF1ZXJ5UGFyYW1zKCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHtcclxuICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcclxuICAgICAgcXVlcnlQYXJhbXM6IHtcclxuICAgICAgICBzZWFyY2g6IHRoaXMuc2VhcmNoVGVybSxcclxuICAgICAgICBsaW1pdDogdGhpcy5saW1pdCxcclxuICAgICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxyXG4gICAgICB9LFxyXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiBcIm1lcmdlXCIsXHJcbiAgICAgIHJlcGxhY2VVcmw6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uRXhwb3J0KCkge1xyXG4gICAgbGV0IHBheWxvYWQgPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICBsaW1pdDogdGhpcy50b3RhbEl0ZW1zLFxyXG4gICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxyXG4gICAgICBzb3J0Q29sdW1uTmFtZTogdGhpcy5zb3J0ZWRDb2x1bW4sXHJcbiAgICAgIHNvcnRCeTogdGhpcy5zb3J0T3JkZXIsXHJcbiAgICAgIHNlYXJjaFZhbHVlOiB0aGlzLnNlYXJjaFRlcm0sXHJcbiAgICAgIGZpbHRlcjogdGhpcy5hcHBsaWVkRmlsdGVycyxcclxuICAgICAgZXhwb3J0OiB0cnVlLFxyXG4gICAgICAvLyBlbXB0eURvd25sb2FkOiBmYWxzZVxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnN0b3JlQnVpbGRlclNlcnZpY2VcclxuICAgICAgLmdldFBsYW5vZ3JhbUxpc3RFeHBvcnQocGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZUJ1aWxkZXJTZXJ2aWNlLnNhdmVBc0V4Y2VsRmlsZShyZXMsIFwiUGxhbm9ncmFtXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGVyciwgXCJlcnJcIik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5wbGFub1N1Yj8udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRlbnQtd3JhcHBlclwiPlxyXG4gIDxkaXY+XHJcbiAgICA8IS0tIE1hbmFnZSBQbGFub2dyYW0gdmlldyBoZWFkZXIgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtYi01XCI+XHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPGg0PkFsbCBQbGFub2dyYW1zPC9oND5cclxuICAgICAgICA8c3Bhbj57eyB0b3RhbEl0ZW1zIH19IC0gVG90YWwgUmVjb3Jkczwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmVcIj5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwic2VhcmNoVGVybVwiIChjaGFuZ2UpPVwib25TZWFyY2goKVwiXHJcbiAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAzcmVtOyBwYWRkaW5nLXJpZ2h0OiAzcmVtXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBuYW1lPVwic2VhcmNoXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIiAvPlxyXG5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2VhcmNoLWljb25cIj5cclxuICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiB2aWV3Qm94PVwiMCAwIDE4IDE4XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOFwiIGN5PVwiOFwiIHI9XCI2XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIC8+XHJcbiAgICAgICAgICAgICAgPGxpbmUgeDE9XCIxM1wiIHkxPVwiMTNcIiB4Mj1cIjE2XCIgeTI9XCIxNlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNlYXJjaFRlcm1cIiB0eXBlPVwiYnV0dG9uXCIgYXJpYS1sYWJlbD1cIkNsZWFyXCIgKGNsaWNrKT1cInNlYXJjaFRlcm0gPSAnJzsgb25TZWFyY2goKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiY2xlYXItc2VhcmNoXCI+XHJcbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI2NHB4XCIgaGVpZ2h0PVwiNjRweFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICA8ZyBpZD1cIlNWR1JlcG9fYmdDYXJyaWVyXCIgc3Ryb2tlLXdpZHRoPVwiMFwiPjwvZz5cclxuICAgICAgICAgICAgICA8ZyBpZD1cIlNWR1JlcG9fdHJhY2VyQ2FycmllclwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvZz5cclxuICAgICAgICAgICAgICA8ZyBpZD1cIlNWR1JlcG9faWNvbkNhcnJpZXJcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOSA5TDE1IDE1XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cclxuICAgICAgICAgICAgICAgIDwvcGF0aD5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUgOUw5IDE1XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cclxuICAgICAgICAgICAgICAgIDwvcGF0aD5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiMTJcIiByPVwiOVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9jaXJjbGU+XHJcbiAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS0gRmlsdGVyIC0tPlxyXG4gICAgICAgIDxwbGFuby1maWx0ZXIgW2NsaWVudElkXT1cImNsaWVudElkXCIgKGFwcGx5RmlsdGVycyk9XCJhcHBseUZpbHRlcnMoJGV2ZW50KVwiXHJcbiAgICAgICAgICAocmVzZXRGaWx0ZXJzKT1cImFwcGx5RmlsdGVycygkZXZlbnQpXCI+PC9wbGFuby1maWx0ZXI+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uRXhwb3J0KClcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImJ0bi1vdXRsaW5lIGJ0biBhbGlnbi1pdGVtcy1lbmQgdGV4dC1ub3dyYXAgaW52aGVhZGVyIG1zLTRcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXBsYW5vZ3JhbXNMaXN0Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICA8IS0tIEV4cG9ydCBJY29uIC0tPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcclxuICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNMTcuNSAxMi41VjE1LjgzMzNDMTcuNSAxNi4yNzU0IDE3LjMyNDQgMTYuNjk5MyAxNy4wMTE4IDE3LjAxMThDMTYuNjk5MyAxNy4zMjQ0IDE2LjI3NTQgMTcuNSAxNS44MzMzIDE3LjVINC4xNjY2N0MzLjcyNDY0IDE3LjUgMy4zMDA3MiAxNy4zMjQ0IDIuOTg4MTYgMTcuMDExOEMyLjY3NTU5IDE2LjY5OTMgMi41IDE2LjI3NTQgMi41IDE1LjgzMzNWMTIuNU0xNC4xNjY3IDYuNjY2NjdMMTAgMi41TTEwIDIuNUw1LjgzMzMzIDYuNjY2NjdNMTAgMi41VjEyLjVcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTJcIj48L3NwYW4+IEV4cG9ydFxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJpc1BhZ2VMb2FkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbG9hZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIlxyXG4gICAgICAqbmdJZj1cIiFpc1BhZ2VMb2FkaW5nICYmIHBsYW5vZ3JhbXNMaXN0Lmxlbmd0aCA9PT0gMCAmJiAhcGxhbm9MaXN0XCI+XHJcbiAgICAgIDxpbWcgY2xhc3M9XCJpbWctc3JjXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhMS5zdmdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhbWFpbnRleHQgbXQtM1wiPk5vIGRhdGEgZm91bmQ8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YXN1YnRleHRcIj5UaGVyZSBpcyBubyByZXN1bHQgZm9yIHBsYW5vZ3JhbSB0YWJsZTwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiXHJcbiAgICAgICpuZ0lmPVwiIWlzUGFnZUxvYWRpbmcgJiYgcGxhbm9ncmFtc0xpc3QubGVuZ3RoID09PSAwICYmIHBsYW5vTGlzdFwiPlxyXG4gICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjMwMlwiIGhlaWdodD1cIjE2MFwiIHZpZXdCb3g9XCIwIDAgMzAyIDE2MFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgPHBhdGggZD1cIk05Ny45MDIzIDU0LjA5NDJDODMuNjM4OSA1NC4wOTQyIDcyLjA3NjIgNjUuNjU3IDcyLjA3NjIgNzkuOTIwNEM3Mi4wNzYyIDg1LjgzNjMgNjguMDcyMiA5Mi41ODA2IDYyLjE1NjQgOTIuNTgwNkgzOS4zNTA2QzI1LjA4NzEgOTIuNTgwNiAxMy41MjM0IDEwNC4xNDMgMTMuNTIzNCAxMTguNDA3QzEzLjUyMzQgMTMyLjY3IDI1LjA4NzEgMTQ0LjIzMyAzOS4zNTA2IDE0NC4yMzNIMTc3LjQ0OUMxOTQuMzM5IDE0NC4yMzMgMjEwLjQxMiAxMzEuMDY3IDIyNy4zMDIgMTMxLjA2N0gyOTMuMzM3QzI5OC4wOTEgMTMxLjA2NyAzMDEuOTQ1IDEyNy4yMTMgMzAxLjk0NSAxMjIuNDU4QzMwMS45NDUgMTE3LjcwNCAyOTguMDkxIDExMy44NDkgMjkzLjMzNyAxMTMuODQ5SDIwNS43MTdDMjA0LjA3MiAxMTMuODQ5IDIwMi42OCAxMTIuNjI3IDIwMi4yMTIgMTExLjA1MUMyMDEuNDczIDEwOC41NjEgMjAzLjE3NCAxMDUuNzQ3IDIwNS43NzEgMTA1Ljc0N0gyMzYuMDAxQzI1MC4yNjQgMTA1Ljc0NyAyNjEuODI3IDk0LjE4MzggMjYxLjgyNyA3OS45MjA0QzI2MS44MjcgNjUuNjU3IDI1MC4yNjQgNTQuMDk0MyAyMzYuMDAxIDU0LjA5NDJIOTcuOTAyM1pcIiBmaWxsPVwiI0VBRUNGMFwiLz5cclxuICAgICAgICA8cmVjdCB3aWR0aD1cIjI0MC42OTRcIiBoZWlnaHQ9XCIxNi45OTU2XCIgcng9XCI4LjQ5NzhcIiB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgMjQwLjY5NCA1NS45MzE1KVwiIGZpbGw9XCIjRUFFQ0YwXCIvPlxyXG4gICAgICAgIDxjaXJjbGUgY3g9XCI1LjQyMTQ3XCIgY3k9XCI1LjQyMTQ3XCIgcj1cIjUuNDIxNDdcIiB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgNTAuMzkwNiAxMjAuMzU3KVwiIGZpbGw9XCIjNkJDQUZGXCIvPlxyXG4gICAgICAgIDxjaXJjbGUgY3g9XCIzLjI1Mjg4XCIgY3k9XCIzLjI1Mjg4XCIgcj1cIjMuMjUyODhcIiB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgMjM5LjA1OCA3NS45MDA0KVwiIGZpbGw9XCIjMDBBM0ZGXCIvPlxyXG4gICAgICAgIDxjaXJjbGUgY3g9XCIzLjI1Mjg4XCIgY3k9XCIzLjI1Mjg4XCIgcj1cIjMuMjUyODhcIiB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgMjA5Ljc4MSAyMC42MDE0KVwiIGZpbGw9XCIjMDBBM0ZGXCIvPlxyXG4gICAgICAgIDxjaXJjbGUgY3g9XCIyLjE2ODU5XCIgY3k9XCIyLjE2ODU5XCIgcj1cIjIuMTY4NTlcIiB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgOTguMDk4NiAxNDUuMjk1KVwiIGZpbGw9XCIjMDBBM0ZGXCIvPlxyXG4gICAgICAgIDxyZWN0IHg9XCI2My4wODY5XCIgeT1cIjUxLjcxODdcIiB3aWR0aD1cIjE2Ni4wMTVcIiBoZWlnaHQ9XCI5Ni45NTI4XCIgcng9XCIxNC42MDkzXCIgZmlsbD1cIiM2QkNBRkZcIiBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMy45ODQzNlwiLz5cclxuICAgICAgICA8bWFzayBpZD1cInBhdGgtOC1pbnNpZGUtMV83NjlfMjk3NDBcIiBmaWxsPVwid2hpdGVcIj5cclxuICAgICAgICA8cGF0aCBkPVwiTTg3LjIxMTkgMjYuMDc0M0M4OC4xNTcxIDI2LjA3NDQgODkuMDgzIDI2LjE1NzEgODkuOTgyNCAyNi4zMTY1VjEyMy44NTlDODkuMDgzIDEyMy42OTkgODguMTU3MSAxMjMuNjE2IDg3LjIxMTkgMTIzLjYxNkg3Ni44NjgyQzY4LjE1NzkgMTIzLjYxNiA2MS4wOTY4IDEzMC42NzggNjEuMDk2NyAxMzkuMzg4VjQxLjg0NThDNjEuMDk2NyAzMy4xMzU1IDY4LjE1NzggMjYuMDc0MyA3Ni44NjgyIDI2LjA3NDNIODcuMjExOVpcIi8+XHJcbiAgICAgICAgPC9tYXNrPlxyXG4gICAgICAgIDxwYXRoIGQ9XCJNODcuMjExOSAyNi4wNzQzQzg4LjE1NzEgMjYuMDc0NCA4OS4wODMgMjYuMTU3MSA4OS45ODI0IDI2LjMxNjVWMTIzLjg1OUM4OS4wODMgMTIzLjY5OSA4OC4xNTcxIDEyMy42MTYgODcuMjExOSAxMjMuNjE2SDc2Ljg2ODJDNjguMTU3OSAxMjMuNjE2IDYxLjA5NjggMTMwLjY3OCA2MS4wOTY3IDEzOS4zODhWNDEuODQ1OEM2MS4wOTY3IDMzLjEzNTUgNjguMTU3OCAyNi4wNzQzIDc2Ljg2ODIgMjYuMDc0M0g4Ny4yMTE5WlwiIGZpbGw9XCIjNkJDQUZGXCIvPlxyXG4gICAgICAgIDxwYXRoIGQ9XCJNODcuMjExOSAyNi4wNzQzTDg3LjIxMiAyMi4wOUg4Ny4yMTE5VjI2LjA3NDNaTTg5Ljk4MjQgMjYuMzE2NUg5My45NjY4VjIyLjk3NjJMOTAuNjc3NyAyMi4zOTMzTDg5Ljk4MjQgMjYuMzE2NVpNODkuOTgyNCAxMjMuODU5TDg5LjI4NzIgMTI3Ljc4Mkw5My45NjY4IDEyOC42MTFWMTIzLjg1OUg4OS45ODI0Wk04Ny4yMTE5IDEyMy42MTZMODcuMjEyIDExOS42MzJIODcuMjExOVYxMjMuNjE2Wk02MS4wOTY3IDEzOS4zODhINTcuMTEyM0w2NS4wODEgMTM5LjM4OEw2MS4wOTY3IDEzOS4zODhaTTg3LjIxMTkgMjYuMDc0M0w4Ny4yMTE5IDMwLjA1ODdDODcuOTI0MSAzMC4wNTg3IDg4LjYxNzMgMzAuMTIxIDg5LjI4NzIgMzAuMjM5OEw4OS45ODI0IDI2LjMxNjVMOTAuNjc3NyAyMi4zOTMzQzg5LjU0ODcgMjIuMTkzMiA4OC4zOTAyIDIyLjA5IDg3LjIxMiAyMi4wOUw4Ny4yMTE5IDI2LjA3NDNaTTg5Ljk4MjQgMjYuMzE2NUg4NS45OTgxVjEyMy44NTlIODkuOTgyNEg5My45NjY4VjI2LjMxNjVIODkuOTgyNFpNODkuOTgyNCAxMjMuODU5TDkwLjY3NzcgMTE5LjkzNUM4OS41NDg3IDExOS43MzUgODguMzkwMiAxMTkuNjMyIDg3LjIxMiAxMTkuNjMyTDg3LjIxMTkgMTIzLjYxNkw4Ny4yMTE5IDEyNy42MDFDODcuOTI0IDEyNy42MDEgODguNjE3MyAxMjcuNjYzIDg5LjI4NzIgMTI3Ljc4Mkw4OS45ODI0IDEyMy44NTlaTTg3LjIxMTkgMTIzLjYxNlYxMTkuNjMySDc2Ljg2ODJWMTIzLjYxNlYxMjcuNjAxSDg3LjIxMTlWMTIzLjYxNlpNNzYuODY4MiAxMjMuNjE2VjExOS42MzJDNjUuOTU3NCAxMTkuNjMyIDU3LjExMjUgMTI4LjQ3NyA1Ny4xMTIzIDEzOS4zODhMNjEuMDk2NyAxMzkuMzg4TDY1LjA4MSAxMzkuMzg4QzY1LjA4MTEgMTMyLjg3OCA3MC4zNTg1IDEyNy42MDEgNzYuODY4MiAxMjcuNjAxVjEyMy42MTZaTTYxLjA5NjcgMTM5LjM4OEg2NS4wODFWNDEuODQ1OEg2MS4wOTY3SDU3LjExMjNWMTM5LjM4OEg2MS4wOTY3Wk02MS4wOTY3IDQxLjg0NThINjUuMDgxQzY1LjA4MSAzNS4zMzYgNzAuMzU4MyAzMC4wNTg3IDc2Ljg2ODIgMzAuMDU4N1YyNi4wNzQzVjIyLjA5QzY1Ljk1NzMgMjIuMDkgNTcuMTEyMyAzMC45MzUgNTcuMTEyMyA0MS44NDU4SDYxLjA5NjdaTTc2Ljg2ODIgMjYuMDc0M1YzMC4wNTg3SDg3LjIxMTlWMjYuMDc0M1YyMi4wOUg3Ni44NjgyVjI2LjA3NDNaXCIgZmlsbD1cIiMwMEEzRkZcIiBtYXNrPVwidXJsKCNwYXRoLTgtaW5zaWRlLTFfNzY5XzI5NzQwKVwiLz5cclxuICAgICAgICA8bGluZSB4MT1cIjcxLjA1NDdcIiB5MT1cIjQ5LjcyNjdcIiB4Mj1cIjcxLjA1NDdcIiB5Mj1cIjkxLjU2MjVcIiBzdHJva2U9XCIjOTlEQUZGXCIgc3Ryb2tlLXdpZHRoPVwiMy45ODQzNlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIi8+XHJcbiAgICAgICAgPHJlY3QgeD1cIjExNi4yMjlcIiB5PVwiMTA0LjY0MlwiIHdpZHRoPVwiNjMuMzg5XCIgaGVpZ2h0PVwiMzIuMTUzOFwiIHJ4PVwiNy4zNDk0NVwiIGZpbGw9XCIjOTlEQUZGXCIvPlxyXG4gICAgICAgIDxyZWN0IHg9XCIxMTYuMjI5XCIgeT1cIjY2Ljk3NjJcIiB3aWR0aD1cIjYzLjM4OVwiIGhlaWdodD1cIjMyLjE1MzhcIiByeD1cIjcuMzQ5NDVcIiBmaWxsPVwiIzk5REFGRlwiLz5cclxuICAgICAgICA8Y2lyY2xlIGN4PVwiMjEyLjI5OVwiIGN5PVwiNzcuMjUwNVwiIHI9XCIzLjI5NjYzXCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgIDxjaXJjbGUgY3g9XCIxMDUuODhcIiBjeT1cIjYyLjI0MDdcIiByPVwiMi41MjYzN1wiIGZpbGw9XCIjOTlEQUZGXCIvPlxyXG4gICAgICAgIDxjaXJjbGUgY3g9XCI5My40NzgzXCIgY3k9XCIxMzIuMDZcIiByPVwiMy40NDUwNVwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICA8cmVjdCB4PVwiMTE2LjIyOVwiIHk9XCIzNy41Nzg0XCIgd2lkdGg9XCI2My4zODlcIiBoZWlnaHQ9XCIyNC44MDQ0XCIgcng9XCI3LjM0OTQ1XCIgZmlsbD1cIiM5OURBRkZcIi8+XHJcbiAgICAgIDwvc3ZnPiAgICAgICAgICAgICAgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGFtYWludGV4dCBtdC0zXCI+UGxhbm9ncmFtIFlldCB0byBQdWJsaXNoPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGFzdWJ0ZXh0XCI+PGEgaHJlZj1cIm1hbmFnZS9wbGFub2dyYW0vbWFuYWdlLXBsYW5vZ3JhbT9wbGFub0lkPXt7cGxhbm9MaXN0Py5bMF0/LnBsYW5vSWR9fSZmbG9vcklkPXt7cGxhbm9MaXN0Py5bMF0/Ll9pZH19XCI+e3twbGFub0xpc3Q/LlswXT8uc3RvcmVOYW1lfX08L2E+IGlzIHN0aWxsIHVuZGVyIHZlcmlmaWNhdGlvbjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBNYW5hZ2UgUGxhbm9ncmFtIGxpc3QgdmlldyAtLT5cclxuICAgIDxzZWN0aW9uIGlkPVwibGlzdC12aWV3XCIgKm5nSWY9XCIhaXNQYWdlTG9hZGluZyAmJiBwbGFub2dyYW1zTGlzdC5sZW5ndGggIT09IDBcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICA8dGFibGUgY2xhc3M9XCJ3LTEwMCB0YWJsZSBib3R0b20tYm9yZGVyIHRleHQtbm93cmFwXCI+XHJcbiAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICA8dGg+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwib25Tb3J0VGFibGUoJ3N0b3JlTmFtZScpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICBQbGFub2dyYW0gbmFtZVxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIG1zLTEgbXQtMVwiIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBzb3J0ZWRDb2x1bW4gPT09ICdzdG9yZU5hbWUnID8gJyMwMDlCRjMnIDogJydcclxuICAgICAgICAgICAgICAgICAgICB9XCIgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzb3J0T3JkZXIgPT09IDEgJiYgc29ydGVkQ29sdW1uID09PSAnc3RvcmVOYW1lJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdmYS1hcnJvdy11cCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiAnZmEtYXJyb3ctZG93bidcclxuICAgICAgICAgICAgICAgICAgICBcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICA8dGg+XHJcbiAgICAgICAgICAgICAgICBDb3VudHJ5XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxzcGFuIChjbGljayk9XCJvblNvcnRUYWJsZSgnY291bnRyeScpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIG1zLTEgbXQtMVwiIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBzb3J0ZWRDb2x1bW4gPT09ICdjb3VudHJ5JyA/ICcjMDA5QkYzJyA6ICcnXHJcbiAgICAgICAgICAgICAgICAgICAgfVwiIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc29ydE9yZGVyID09PSAxICYmIHNvcnRlZENvbHVtbiA9PT0gJ2NvdW50cnknXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ2ZhLWFycm93LXVwJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICdmYS1hcnJvdy1kb3duJ1xyXG4gICAgICAgICAgICAgICAgICAgIFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICA8dGg+XHJcbiAgICAgICAgICAgICAgICBSZWdpb25cclxuICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gKGNsaWNrKT1cIm9uU29ydFRhYmxlKCdjaXR5JylcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgbXMtMSBtdC0xXCIgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHNvcnRlZENvbHVtbiA9PT0gJ2NpdHknID8gJyMwMDlCRjMnIDogJydcclxuICAgICAgICAgICAgICAgICAgICB9XCIgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzb3J0T3JkZXIgPT09IDEgJiYgc29ydGVkQ29sdW1uID09PSAnY2l0eSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnZmEtYXJyb3ctdXAnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ2ZhLWFycm93LWRvd24nXHJcbiAgICAgICAgICAgICAgICAgICAgXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgIDx0aD5cclxuICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJvblNvcnRUYWJsZSgndXBkYXRlZEF0JylcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIExhc3QgdXBkYXRlXHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgbXMtMSBtdC0xXCIgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHNvcnRlZENvbHVtbiA9PT0gJ3VwZGF0ZWRBdCcgPyAnIzAwOUJGMycgOiAnJ1xyXG4gICAgICAgICAgICAgICAgICAgIH1cIiBbbmdDbGFzc109XCJcclxuICAgICAgICAgICAgICAgICAgICAgIHNvcnRPcmRlciA9PT0gMSAmJiBzb3J0ZWRDb2x1bW4gPT09ICd1cGRhdGVkQXQnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ2ZhLWFycm93LXVwJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICdmYS1hcnJvdy1kb3duJ1xyXG4gICAgICAgICAgICAgICAgICAgIFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgIDx0aD5cclxuICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJvblNvcnRUYWJsZSgnbWVyY2hDb21wbGlhbmNlJylcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIE1lcmNoIENvbXBsaWFuY2VcclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBtcy0xIG10LTFcIiBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogc29ydGVkQ29sdW1uID09PSAnbWVyY2hDb21wbGlhbmNlJyA/ICcjMDA5QkYzJyA6ICcnXHJcbiAgICAgICAgICAgICAgICAgICAgfVwiIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc29ydE9yZGVyID09PSAxICYmIHNvcnRlZENvbHVtbiA9PT0gJ21lcmNoQ29tcGxpYW5jZSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnZmEtYXJyb3ctdXAnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ2ZhLWFycm93LWRvd24nXHJcbiAgICAgICAgICAgICAgICAgICAgXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHBsYW5vIG9mIHBsYW5vZ3JhbXNMaXN0XCI+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiWycvbWFuYWdlL3BsYW5vZ3JhbS9zdG9yZS1wbGFub2dyYW0nXVwiIFtxdWVyeVBhcmFtc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgcGxhbm9JZDogcGxhbm8ucGxhbm9JZCxcclxuICAgICAgICAgICAgICAgICAgICBmbG9vcklkOiBwbGFuby5faWRcclxuICAgICAgICAgICAgICAgICAgfVwiIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZVwiPlxyXG4gICAgICAgICAgICAgICAgICB7e3BsYW5vLnN0b3JlTmFtZX19IDxzcGFuICpuZ0lmPVwicGxhbm8ubXVsdGlwbGVGbG9vclwiPih7e3BsYW5vLmZsb29yTmFtZSB8IHRpdGxlY2FzZX19KTwvc3Bhbj4gLSBQbGFub1xyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+e3twbGFubz8uc3RvcmVJbmZvPy5jb3VudHJ5fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj57e3BsYW5vPy5zdG9yZUluZm8/LmNpdHl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7cGxhbm8udXBkYXRlZEF0fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj57e3BsYW5vPy5tZXJjaENvbXBsaWFuY2UgPz8gMH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgIDwvdGFibGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG5cclxuICAgIDwhLS0gTWFuYWdlIFBsYW5vZ3JhbSBncmlkIHZpZXcgLS0+XHJcbiAgICA8IS0tIDxuZy10ZW1wbGF0ZSAjZ3JpZFZpZXc+XHJcbiAgICAgIDxzZWN0aW9uIGlkPVwiZ3JpZC12aWV3XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBneC02IGd5LTRcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiICpuZ0Zvcj1cImxldCBmaXh0dXJlIG9mIGZpeHR1cmVUZW1wbGF0ZXNMaXN0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1hY3Rpb24gZHJvcGRvd25cIj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbGlnaHQgcHgtNCBweS0zXCIgdHlwZT1cImJ1dHRvblwiIGRhdGEtYnMtdG9nZ2xlPVwiZHJvcGRvd25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXRocmVlLWRvdHMtdmVydGljYWxcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJkcm9wZG93bi1tZW51XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGNsYXNzPVwiZHJvcGRvd24taXRlbSBjdXJzb3ItcG9pbnRlclwiPkVkaXQ8L2E+PC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtIGN1cnNvci1wb2ludGVyXCI+RHVwbGljYXRlPC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGNsYXNzPVwiZHJvcGRvd24taXRlbSBjdXJzb3ItcG9pbnRlciB0ZXh0LWRhbmdlclwiPkRlbGV0ZTwvYT48L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxoMz57eyBmaXh0dXJlLm5hbWUgfX08L2gzPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhZGdlXCIgW25nQ2xhc3NdPVwiZml4dHVyZS5zdGF0dXNcIj57eyBmaXh0dXJlLnN0YXR1cyB8IHRpdGxlY2FzZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHN1YkJyYW5kIG9mIGZpeHR1cmUuc3ViQnJhbmQ7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpICE9IDBcIiBjbGFzcz1cIm1lLTIgY2FyZC10YWdsaW5lXCI+JiM4MjI2Ozwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhZGdlXCI+e3sgc3ViQnJhbmQgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L3NlY3Rpb24+XHJcbiAgICA8L25nLXRlbXBsYXRlPiAtLT5cclxuXHJcbiAgICA8IS0tIFBhZ2luYXRpb24gLS0+XHJcbiAgICA8bGliLXBhZ2luYXRpb24gW2l0ZW1zUGVyUGFnZV09XCJsaW1pdFwiIFtjdXJyZW50UGFnZV09XCJvZmZzZXRcIiBbdG90YWxJdGVtc109XCJ0b3RhbEl0ZW1zXCJcclxuICAgICAgW3BhZ2luYXRpb25TaXplc109XCJwYWdpbmF0aW9uU2l6ZXNcIiBbcGFnZVNpemVdPVwicGFnaW5hdGlvblNpemUoKVwiIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgKHBhZ2VTaXplQ2hhbmdlKT1cIm9uUGFnZVNpemVDaGFuZ2UoJGV2ZW50KVwiICpuZ0lmPVwiIWlzUGFnZUxvYWRpbmcgJiYgcGxhbm9ncmFtc0xpc3QubGVuZ3RoICE9PSAwXCI+XHJcbiAgICA8L2xpYi1wYWdpbmF0aW9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=