tango-app-ui-store-builder 1.0.43 → 1.0.45

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.
@@ -348,7 +348,7 @@ export class PlanoVerificationTableComponent {
348
348
  const taskDetails = data?.planoTask?.[0]?.taskStatus?.find((ele) => ele.type == type);
349
349
  if (type == "fixture") {
350
350
  let taskInfo = data?.planoTask?.[0]?.taskStatus?.filter((ele) => ele.status && ele.type == "fixture");
351
- if (status === "pending" && taskInfo.some((task) => task.status == 'submit'))
351
+ if (status === "pending" && taskInfo?.some((task) => task.status == 'submit'))
352
352
  return "reviewPending";
353
353
  if (taskInfo?.length != data.layoutCount) {
354
354
  return "yetToAssign";
@@ -376,10 +376,10 @@ export class PlanoVerificationTableComponent {
376
376
  }
377
377
  const taskDetails = data?.planoTask?.[0]?.taskStatus?.find((ele) => ele.type == type);
378
378
  const status = statusMap[type];
379
- if (status === "pending")
380
- return "Review Pending";
381
379
  if (type == "fixture") {
382
380
  let taskInfo = data?.planoTask?.[0]?.taskStatus?.filter((ele) => ele.status && ele.type == "fixture");
381
+ if (status === "pending" && taskInfo?.some((task) => task.status == 'submit'))
382
+ return "reviewPending";
383
383
  if (taskInfo?.length != data.layoutCount) {
384
384
  return "Yet to Assign";
385
385
  }
@@ -558,4 +558,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
558
558
  type: Component,
559
559
  args: [{ selector: "lib-plano-verification-table", template: "<div class=\"row mx-0 my-5 gap-2\">\r\n <div class=\"col filter-tab\" [ngClass]=\"{ selected: selectedFilterTab === 'all' }\" (click)=\"filterTable('all')\">\r\n <h3>{{ pendingDetails?.allStores || 0 }}</h3>\r\n <p>Total stores</p>\r\n </div>\r\n <div class=\"col filter-tab\" [ngClass]=\"{ selected: selectedFilterTab === 'layout' }\" (click)=\"filterTable('layout')\">\r\n <h3>{{ pendingDetails?.layoutComplete ?? 0 }}</h3>\r\n <p>Layout verification completed</p>\r\n </div>\r\n <div class=\"col filter-tab\" [ngClass]=\"{ selected: selectedFilterTab === 'fixture' }\" (click)=\"filterTable('fixture')\">\r\n <h3>{{ pendingDetails?.fixturePending ?? 0 }}</h3>\r\n <p>Fixture verification pending</p>\r\n </div>\r\n <div class=\"col filter-tab\" [ngClass]=\"{ selected: selectedFilterTab === 'vm' }\" (click)=\"filterTable('vm')\">\r\n <h3>{{ pendingDetails?.fixturePending ?? 0 }}</h3>\r\n <p>VM verification pending</p>\r\n </div>\r\n</div>\r\n\r\n<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-3\">\r\n <div style=\"position: relative\">\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"searchTerm\"\r\n (change)=\"onSearch()\"\r\n style=\"padding-left: 3rem; padding-right: 3rem\"\r\n class=\"form-control\"\r\n name=\"search\"\r\n autocomplete=\"off\"\r\n placeholder=\"Search\"\r\n />\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()\" 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\"></path>\r\n <path d=\"M15 9L9 15\" stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\r\n <circle\r\n cx=\"12\"\r\n cy=\"12\"\r\n r=\"9\"\r\n stroke=\"#667085\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n ></circle>\r\n </g>\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n <!-- <button type=\"button\" (click)=\"openBulkUploadModal()\" class=\"btn btn-outline text-nowrap\">\r\n <svg class=\"me-2\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\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=\"currentColor\"\r\n stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n Bulk Upload\r\n </button> -->\r\n\r\n <!-- <button type=\"button\" class=\"btn btn-outline d-line-flex align-items-center text-nowrap\">\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M5 10H15M2.5 5H17.5M7.5 15H12.5\"\r\n stroke=\"#344054\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n Filter\r\n </button> -->\r\n\r\n <plano-filter [clientId]=\"clientId\" [data]=\"filterObject\" (applyFilters)=\"applyFilters($event)\"\r\n (resetFilters)=\"applyFilters($event)\"></plano-filter>\r\n\r\n <button type=\"button\" (click)=\"onExport()\"\r\n class=\"btn-outline btn align-items-end text-nowrap invheader\"\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\r\n <button type=\"button\" (click)=\"onClickCreatePlanogram()\" class=\"btn btn-primary d-inline-flex align-items-center\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M10.0001 4.16663V15.8333M4.16675 9.99996H15.8334\"\r\n stroke=\"white\"\r\n stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n <span class=\"ms-2 text-white\">Create </span>\r\n </button>\r\n\r\n <!-- <lib-filters [dataObject]=\"filterObject\" (appliedFilters)=\"applyFilters($event)\"></lib-filters> -->\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\r\n class=\"card-body d-flex justify-content-center align-items-center flex-column\"\r\n *ngIf=\"!isPageLoading && planogramsList.length === 0\"\r\n >\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 manage planogram table</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 Store Name\r\n <i\r\n class=\"fa ms-1 mt-1\"\r\n [ngStyle]=\"{ color: sortedColumn === 'storeName' ? '#009BF3' : '' }\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'storeName' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n </th>\r\n <th>\r\n <span (click)=\"onSortTable('layoutName')\" class=\"cursor-pointer\">\r\n Layout Name\r\n <i\r\n class=\"fa ms-1 mt-1\"\r\n [ngStyle]=\"{ color: sortedColumn === 'layoutName' ? '#009BF3' : '' }\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'layoutName' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n </th>\r\n <th>\r\n Country\r\n </th>\r\n <th>\r\n City\r\n </th>\r\n <th>\r\n <span class=\"cursor-pointer d-flex align-items-center\">\r\n Plano Completion %\r\n <!-- <i\r\n class=\"fa ms-1 mt-1\"\r\n [ngStyle]=\"{ color: sortedColumn === 'planoProgress' ? '#009BF3' : '' }\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'planoProgress' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i> -->\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 16 16\"\r\n fill=\"none\"\r\n ngbTooltip=\"% of overall planogram completion\"\r\n class=\"ms-2\"\r\n >\r\n <g clip-path=\"url(#clip0_844_17538)\">\r\n <path\r\n d=\"M8.00065 10.6663V7.99967M8.00065 5.33301H8.00732M14.6673 7.99967C14.6673 11.6816 11.6826 14.6663 8.00065 14.6663C4.31875 14.6663 1.33398 11.6816 1.33398 7.99967C1.33398 4.31778 4.31875 1.33301 8.00065 1.33301C11.6826 1.33301 14.6673 4.31778 14.6673 7.99967Z\"\r\n stroke=\"#667085\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_844_17538\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </th>\r\n <th>\r\n <span (click)=\"onSortTable('layoutCount')\" class=\"cursor-pointer\">\r\n Layout\r\n <i\r\n class=\"fa ms-1 mt-1\"\r\n [ngStyle]=\"{ color: sortedColumn === 'layoutCount' ? '#009BF3' : '' }\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'layoutCount' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n </th>\r\n <th class=\"text-center\">\r\n <span (click)=\"onSortTable('fixtureCount')\" class=\"cursor-pointer\">\r\n No of Fixtures\r\n <i\r\n class=\"fa ms-1 mt-1\"\r\n [ngStyle]=\"{ color: sortedColumn === 'fixtureCount' ? '#009BF3' : '' }\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'fixtureCount' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n </th>\r\n <th class=\"text-center\">\r\n <span (click)=\"onSortTable('vmCount')\" class=\"cursor-pointer\">\r\n No of VMs\r\n <i\r\n class=\"fa ms-1 mt-1\"\r\n [ngStyle]=\"{ color: sortedColumn === 'vmCount' ? '#009BF3' : '' }\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'vmCount' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n </th>\r\n <th class=\"text-center\">\r\n <ng-template #tooltip>\r\n <div class=\"w-100\">\r\n <h6>Total store capacity</h6>\r\n <span> Combining product capacity of all fixtures </span>\r\n </div>\r\n </ng-template>\r\n <span (click)=\"onSortTable('fixtureCapacity')\" class=\"cursor-pointer d-flex align-items-center\">\r\n Store Capacity\r\n <i\r\n class=\"fa ms-1 mt-1\"\r\n [ngStyle]=\"{ color: sortedColumn === 'fixtureCapacity' ? '#009BF3' : '' }\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'fixtureCapacity' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 16 16\"\r\n fill=\"none\"\r\n [ngbTooltip]=\"tooltip\"\r\n class=\"ms-2\"\r\n >\r\n <g clip-path=\"url(#clip0_844_17538)\">\r\n <path\r\n d=\"M8.00065 10.6663V7.99967M8.00065 5.33301H8.00732M14.6673 7.99967C14.6673 11.6816 11.6826 14.6663 8.00065 14.6663C4.31875 14.6663 1.33398 11.6816 1.33398 7.99967C1.33398 4.31778 4.31875 1.33301 8.00065 1.33301C11.6826 1.33301 14.6673 4.31778 14.6673 7.99967Z\"\r\n stroke=\"#667085\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_844_17538\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </th>\r\n <th class=\"text-center\">\r\n <span (click)=\"onSortTable('lastUpdate')\" class=\"cursor-pointer\">\r\n Last update\r\n <i\r\n class=\"fa ms-1 mt-1\"\r\n [ngStyle]=\"{ color: sortedColumn === 'lastUpdate' ? '#009BF3' : '' }\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'lastUpdate' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </span>\r\n </th>\r\n <th class=\"text-center\">\r\n <span class=\"cursor-pointer\">\r\n Planogram Status\r\n <!-- <i\r\n class=\"fa ms-1 mt-1\"\r\n [ngStyle]=\"{ color: sortedColumn === 'planogramStatus' ? '#009BF3' : '' }\"\r\n [ngClass]=\"sortOrder === 1 && sortedColumn === 'planogramStatus' ? 'fa-arrow-up' : 'fa-arrow-down'\"\r\n aria-hidden=\"true\"\r\n ></i> -->\r\n </span>\r\n </th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let plano of planogramsList\">\r\n <td>\r\n <div class=\"d-flex align-items-center\">\r\n <a (click)=\"redirectStore(plano.storeId)\" class=\"cursor-pointer text-decoration-underline\">\r\n {{ plano.storeName }}</a\r\n >\r\n </div>\r\n </td>\r\n <td>\r\n <a\r\n [routerLink]=\"['/manage/planogram/manage-planogram']\"\r\n [queryParams]=\"{ planoId: plano._id, floorId: plano?.layoutDetails?.[0]?.id }\"\r\n class=\"text-decoration-underline\"\r\n >\r\n {{\r\n plano.layoutName\r\n }}\r\n </a>\r\n </td>\r\n <td>\r\n {{plano?.country}}\r\n </td>\r\n <td>\r\n {{plano?.city}}\r\n </td>\r\n <td>\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-9\">\r\n <div class=\"progress\" style=\"height: 4px\">\r\n <div\r\n class=\"progress-bar\"\r\n [ngClass]=\"\r\n [25, 50].includes(getProgressValue(plano))\r\n ? 'bg-warning'\r\n : 'bg-success'\r\n \"\r\n role=\"progressbar\"\r\n [style]=\"getProgressValue(plano) ? 'width: ' + getProgressValue(plano) + '%' : 'width:25%'\"\r\n [attr.aria-valuenow]=\"getProgressValue(plano)\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div class=\"col-3\">{{ getProgressValue(plano) }}%</div>\r\n </div>\r\n <!-- <div class=\"row align-items-center\">\r\n <div class=\"col-8 progress\" style=\"height: 4px; border-radius: 4px;\">\r\n <div\r\n class=\"progress-bar\"\r\n role=\"progressbar\"\r\n style=\"width: 25%\"\r\n aria-valuenow=\"25\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n ></div>\r\n </div>\r\n <div class=\"col-4\">\r\n {{ plano.planoCompletion }}\r\n </div>\r\n </div> -->\r\n </td>\r\n <td>\r\n <div class=\"d-flex align-items-center justify-content-center gap-2\">\r\n <span>\r\n {{ plano?.layoutCount === 1 ? 1 : updateFloor(plano) }}\r\n </span>\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"14\"\r\n height=\"14\"\r\n viewBox=\"0 0 14 14\"\r\n fill=\"none\"\r\n ngbTooltip=\"Didn\u2019t respond within the due date\"\r\n *ngIf=\"showBreach(plano, 'layout')\"\r\n >\r\n <path\r\n d=\"M2.33398 8.7513C2.33398 8.7513 2.91732 8.16797 4.66732 8.16797C6.41732 8.16797 7.58398 9.33463 9.33398 9.33463C11.084 9.33463 11.6673 8.7513 11.6673 8.7513V1.7513C11.6673 1.7513 11.084 2.33464 9.33398 2.33464C7.58398 2.33464 6.41732 1.16797 4.66732 1.16797C2.91732 1.16797 2.33398 1.7513 2.33398 1.7513V8.7513Z\"\r\n fill=\"#FECDCA\"\r\n />\r\n <path\r\n d=\"M2.33398 8.7513C2.33398 8.7513 2.91732 8.16797 4.66732 8.16797C6.41732 8.16797 7.58398 9.33464 9.33398 9.33464C11.084 9.33464 11.6673 8.7513 11.6673 8.7513V1.7513C11.6673 1.7513 11.084 2.33464 9.33398 2.33464C7.58398 2.33464 6.41732 1.16797 4.66732 1.16797C2.91732 1.16797 2.33398 1.7513 2.33398 1.7513V8.7513ZM2.33398 8.7513V12.8346\"\r\n stroke=\"#D92D20\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n <div\r\n class=\"indicator short\"\r\n [ngClass]=\"getTaskStatus(plano, 'layout') || 'taskAssigned'\"\r\n *ngIf=\"!showBreach(plano, 'layout')\"\r\n >\r\n <svg\r\n width=\"8\"\r\n height=\"7\"\r\n viewBox=\"0 0 8 7\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n ngbTooltip=\"{{ getTaskTooltip(plano, 'layout') || 'Task Assigned' }}\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M6.97284 0.310967L2.79617 4.3418L1.68784 3.15763C1.48367 2.96513 1.16284 2.95347 0.929505 3.1168C0.702005 3.28597 0.637838 3.58347 0.777838 3.82263L2.09034 5.95763C2.21867 6.15597 2.44034 6.27847 2.69117 6.27847C2.93034 6.27847 3.15784 6.15597 3.28617 5.95763C3.49617 5.68347 7.50367 0.905967 7.50367 0.905967C8.02867 0.3693 7.39284 -0.1032 6.97284 0.305134V0.310967Z\"\r\n fill=\"#667085\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"d-flex align-items-center justify-content-center gap-2\">\r\n <span>\r\n {{ plano.fixtureCount }}\r\n </span>\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"14\"\r\n height=\"14\"\r\n viewBox=\"0 0 14 14\"\r\n fill=\"none\"\r\n ngbTooltip=\"Didn\u2019t respond within the due date\"\r\n *ngIf=\"showBreach(plano, 'fixture')\"\r\n >\r\n <path\r\n d=\"M2.33398 8.7513C2.33398 8.7513 2.91732 8.16797 4.66732 8.16797C6.41732 8.16797 7.58398 9.33463 9.33398 9.33463C11.084 9.33463 11.6673 8.7513 11.6673 8.7513V1.7513C11.6673 1.7513 11.084 2.33464 9.33398 2.33464C7.58398 2.33464 6.41732 1.16797 4.66732 1.16797C2.91732 1.16797 2.33398 1.7513 2.33398 1.7513V8.7513Z\"\r\n fill=\"#FECDCA\"\r\n />\r\n <path\r\n d=\"M2.33398 8.7513C2.33398 8.7513 2.91732 8.16797 4.66732 8.16797C6.41732 8.16797 7.58398 9.33464 9.33398 9.33464C11.084 9.33464 11.6673 8.7513 11.6673 8.7513V1.7513C11.6673 1.7513 11.084 2.33464 9.33398 2.33464C7.58398 2.33464 6.41732 1.16797 4.66732 1.16797C2.91732 1.16797 2.33398 1.7513 2.33398 1.7513V8.7513ZM2.33398 8.7513V12.8346\"\r\n stroke=\"#D92D20\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n <div\r\n class=\"indicator short\"\r\n [ngClass]=\"getTaskStatus(plano, 'fixture') || 'taskAssigned'\"\r\n *ngIf=\"!showBreach(plano, 'fixture')\"\r\n >\r\n <svg\r\n width=\"8\"\r\n height=\"7\"\r\n viewBox=\"0 0 8 7\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n ngbTooltip=\"{{ getTaskTooltip(plano, 'fixture') || 'Task Assigned' }}\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M6.97284 0.310967L2.79617 4.3418L1.68784 3.15763C1.48367 2.96513 1.16284 2.95347 0.929505 3.1168C0.702005 3.28597 0.637838 3.58347 0.777838 3.82263L2.09034 5.95763C2.21867 6.15597 2.44034 6.27847 2.69117 6.27847C2.93034 6.27847 3.15784 6.15597 3.28617 5.95763C3.49617 5.68347 7.50367 0.905967 7.50367 0.905967C8.02867 0.3693 7.39284 -0.1032 6.97284 0.305134V0.310967Z\"\r\n fill=\"#667085\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"d-flex align-items-center justify-content-center gap-2\">\r\n <span>\r\n {{ plano.vmCount }}\r\n </span>\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"14\"\r\n height=\"14\"\r\n viewBox=\"0 0 14 14\"\r\n fill=\"none\"\r\n ngbTooltip=\"Didn\u2019t respond within the due date\"\r\n *ngIf=\"showBreach(plano, 'fixture')\"\r\n >\r\n <path\r\n d=\"M2.33398 8.7513C2.33398 8.7513 2.91732 8.16797 4.66732 8.16797C6.41732 8.16797 7.58398 9.33463 9.33398 9.33463C11.084 9.33463 11.6673 8.7513 11.6673 8.7513V1.7513C11.6673 1.7513 11.084 2.33464 9.33398 2.33464C7.58398 2.33464 6.41732 1.16797 4.66732 1.16797C2.91732 1.16797 2.33398 1.7513 2.33398 1.7513V8.7513Z\"\r\n fill=\"#FECDCA\"\r\n />\r\n <path\r\n d=\"M2.33398 8.7513C2.33398 8.7513 2.91732 8.16797 4.66732 8.16797C6.41732 8.16797 7.58398 9.33464 9.33398 9.33464C11.084 9.33464 11.6673 8.7513 11.6673 8.7513V1.7513C11.6673 1.7513 11.084 2.33464 9.33398 2.33464C7.58398 2.33464 6.41732 1.16797 4.66732 1.16797C2.91732 1.16797 2.33398 1.7513 2.33398 1.7513V8.7513ZM2.33398 8.7513V12.8346\"\r\n stroke=\"#D92D20\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n <div\r\n class=\"indicator short\"\r\n [ngClass]=\"getTaskStatus(plano, 'vm') || 'taskAssigned'\"\r\n *ngIf=\"!showBreach(plano, 'fixture')\"\r\n >\r\n <svg\r\n width=\"8\"\r\n height=\"7\"\r\n viewBox=\"0 0 8 7\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n ngbTooltip=\"{{ getTaskTooltip(plano, 'vm') || 'Task Assigned' }}\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M6.97284 0.310967L2.79617 4.3418L1.68784 3.15763C1.48367 2.96513 1.16284 2.95347 0.929505 3.1168C0.702005 3.28597 0.637838 3.58347 0.777838 3.82263L2.09034 5.95763C2.21867 6.15597 2.44034 6.27847 2.69117 6.27847C2.93034 6.27847 3.15784 6.15597 3.28617 5.95763C3.49617 5.68347 7.50367 0.905967 7.50367 0.905967C8.02867 0.3693 7.39284 -0.1032 6.97284 0.305134V0.310967Z\"\r\n fill=\"#667085\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"d-flex align-items-center justify-content-center gap-2\">\r\n <span>\r\n {{ plano?.fixtureCapacity ?? 0 }}\r\n </span>\r\n </div>\r\n </td>\r\n <td class=\"text-center\">\r\n <span [ngbTooltip]=\"plano?.lastUpdate | date : 'medium'\">\r\n {{ plano?.lastUpdate | date }}\r\n </span>\r\n </td>\r\n <td class=\"text-center\">\r\n <div class=\"badge\" [ngClass]=\"getStatusBadge(plano)\">\r\n {{ getStatus(plano) }}\r\n </div>\r\n </td>\r\n <!-- <td>\r\n <div class=\"d-flex align-items-center gap-2 justify-content-center\">\r\n <svg width=\"21\" height=\"22\" viewBox=\"0 0 21 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clip-path=\"url(#clip0_17_71425)\">\r\n <path\r\n d=\"M12.1971 18.7144C12.0464 18.9742 11.8302 19.1898 11.5699 19.3397C11.3097 19.4896 11.0146 19.5685 10.7143 19.5685C10.414 19.5685 10.1189 19.4896 9.85866 19.3397C9.59842 19.1898 9.38212 18.9742 9.23143 18.7144M15.8571 7.57157C15.8571 6.2076 15.3153 4.89949 14.3508 3.93502C13.3864 2.97055 12.0783 2.42871 10.7143 2.42871C9.35032 2.42871 8.04221 2.97055 7.07774 3.93502C6.11326 4.89949 5.57143 6.2076 5.57143 7.57157C5.57143 13.5716 3 15.2859 3 15.2859H18.4286C18.4286 15.2859 15.8571 13.5716 15.8571 7.57157Z\"\r\n stroke=\"#667085\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M2.08574 8.04805C1.55611 8.04805 1.12146 7.61768 1.17082 7.09036C1.286 5.85989 1.627 4.71322 2.19383 3.65034C2.75229 2.60318 3.46062 1.69605 4.31882 0.928939C4.71052 0.578823 5.30965 0.673501 5.62062 1.09695C5.93175 1.52062 5.83525 2.1121 5.45225 2.47212C4.82875 3.05819 4.30987 3.74239 3.89559 4.52471C3.47303 5.32267 3.20776 6.17833 3.0998 7.09169C3.03766 7.61747 2.61518 8.04805 2.08574 8.04805ZM19.3431 8.04805C18.8134 8.04805 18.3908 7.6171 18.3287 7.09105C18.2209 6.17793 17.9556 5.32248 17.5326 4.52471C17.118 3.74258 16.5993 3.05852 15.9765 2.47254C15.5937 2.11226 15.4973 1.5207 15.8085 1.09696C16.1196 0.673433 16.7187 0.578551 17.1107 0.928571C17.9693 1.6954 18.6778 2.60266 19.2363 3.65034C19.8032 4.71381 20.1438 5.86068 20.2581 7.09095C20.3071 7.61809 19.8725 8.04805 19.3431 8.04805Z\"\r\n fill=\"#667085\"\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_17_71425\">\r\n <rect width=\"20.5714\" height=\"20.5714\" fill=\"white\" transform=\"translate(0.428711 0.714355)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n\r\n <svg width=\"23\" height=\"24\" viewBox=\"0 0 23 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clip-path=\"url(#clip0_139_112685)\">\r\n <path\r\n d=\"M12.4843 21.4302C12.3336 21.69 12.1173 21.9057 11.857 22.0556C11.5968 22.2055 11.3017 22.2844 11.0014 22.2844C10.7011 22.2844 10.406 22.2055 10.1458 22.0556C9.88553 21.9057 9.66923 21.69 9.51854 21.4302M16.1443 10.2874C16.1443 8.92342 15.6024 7.61531 14.6379 6.65084C13.6735 5.68637 12.3654 5.14453 11.0014 5.14453C9.63742 5.14453 8.32932 5.68637 7.36485 6.65084C6.40037 7.61531 5.85854 8.92342 5.85854 10.2874C5.85854 16.2874 3.28711 18.0017 3.28711 18.0017H18.7157C18.7157 18.0017 16.1443 16.2874 16.1443 10.2874Z\"\r\n stroke=\"#667085\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M2.37187 10.7634C1.84224 10.7634 1.40759 10.333 1.45695 9.80569C1.57213 8.57522 1.91313 7.42855 2.47997 6.36567C3.03842 5.31851 3.74675 4.41138 4.60496 3.64427C4.99665 3.29415 5.59578 3.38883 5.90675 3.81228C6.21788 4.23595 6.12138 4.82744 5.73838 5.18745C5.11489 5.77352 4.596 6.45772 4.18172 7.24004C3.75916 8.038 3.4939 8.89366 3.38594 9.80702C3.32379 10.3328 2.90131 10.7634 2.37187 10.7634ZM19.6292 10.7634C19.0995 10.7634 18.6769 10.3324 18.6148 9.80638C18.507 8.89326 18.2417 8.03781 17.8188 7.24004C17.4041 6.45791 16.8854 5.77385 16.2627 5.18787C15.8798 4.8276 15.7835 4.23603 16.0947 3.81229C16.4057 3.38876 17.0049 3.29388 17.3968 3.6439C18.2554 4.41073 18.964 5.31799 19.5224 6.36567C20.0893 7.42914 20.4299 8.57601 20.5442 9.80628C20.5932 10.3334 20.1586 10.7634 19.6292 10.7634Z\"\r\n fill=\"#667085\"\r\n />\r\n </g>\r\n <path\r\n d=\"M17 1C19.7614 1 22 3.23858 22 6C22 8.76142 19.7614 11 17 11C14.2386 11 12 8.76142 12 6C12 3.23858 14.2386 1 17 1Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"white\"\r\n stroke-width=\"2\"\r\n />\r\n <defs>\r\n <clipPath id=\"clip0_139_112685\">\r\n <rect width=\"20.5714\" height=\"20.5714\" fill=\"white\" transform=\"translate(0.714844 3.42969)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n\r\n <div class=\"dropdown\">\r\n <button class=\"btn btn-link p-0\" type=\"button\" data-bs-toggle=\"dropdown\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M11 12C11 12.5523 11.4477 13 12 13C12.5523 13 13 12.5523 13 12C13 11.4477 12.5523 11 12 11C11.4477 11 11 11.4477 11 12Z\"\r\n stroke=\"#667085\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M11 19C11 19.5523 11.4477 20 12 20C12.5523 20 13 19.5523 13 19C13 18.4477 12.5523 18 12 18C11.4477 18 11 18.4477 11 19Z\"\r\n stroke=\"#667085\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M11 5C11 5.55228 11.4477 6 12 6C12.5523 6 13 5.55228 13 5C13 4.44772 12.5523 4 12 4C11.4477 4 11 4.44772 11 5Z\"\r\n stroke=\"#667085\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\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 </td> -->\r\n <td>\r\n <a\r\n [routerLink]=\"['/manage/planogram/manage-planogram']\"\r\n [queryParams]=\"{ planoId: plano._id, floorId: plano?.layoutDetails?.id }\"\r\n >\r\n <svg\r\n width=\"23\"\r\n height=\"24\"\r\n viewBox=\"0 0 23 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n *ngIf=\"getSubmit(plano)\"\r\n >\r\n <path\r\n d=\"M10.1395 6.85728H4.13946C3.6848 6.85728 3.24876 7.0379 2.92727 7.35939C2.60578 7.68088 2.42517 8.11691 2.42517 8.57157V20.5716C2.42517 21.0262 2.60578 21.4623 2.92727 21.7838C3.24876 22.1052 3.6848 22.2859 4.13946 22.2859H16.1395C16.5941 22.2859 17.0301 22.1052 17.3516 21.7838C17.6731 21.4623 17.8537 21.0262 17.8537 20.5716V14.5716M16.568 5.57157C16.909 5.23058 17.3715 5.03901 17.8537 5.03901C18.336 5.03901 18.7985 5.23058 19.1395 5.57157C19.4805 5.91256 19.672 6.37505 19.672 6.85728C19.672 7.33952 19.4805 7.80201 19.1395 8.143L10.9966 16.2859L7.56803 17.143L8.42517 13.7144L16.568 5.57157Z\"\r\n stroke=\"#667085\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M17 1C19.7614 1 22 3.23858 22 6C22 8.76142 19.7614 11 17 11C14.2386 11 12 8.76142 12 6C12 3.23858 14.2386 1 17 1Z\"\r\n fill=\"#FF0000\"\r\n stroke=\"white\"\r\n stroke-width=\"2\"\r\n />\r\n </svg>\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"21\"\r\n height=\"22\"\r\n viewBox=\"0 0 21 22\"\r\n fill=\"none\"\r\n *ngIf=\"!getSubmit(plano)\"\r\n >\r\n <g clip-path=\"url(#clip0_844_18318)\">\r\n <path\r\n d=\"M9.85686 4.14249H3.85686C3.40221 4.14249 2.96617 4.32311 2.64468 4.6446C2.32319 4.96609 2.14258 5.40212 2.14258 5.85678V17.8568C2.14258 18.3114 2.32319 18.7475 2.64468 19.069C2.96617 19.3905 3.40221 19.5711 3.85686 19.5711H15.8569C16.3115 19.5711 16.7476 19.3905 17.069 19.069C17.3905 18.7475 17.5712 18.3114 17.5712 17.8568V11.8568M16.2854 2.85678C16.6264 2.51579 17.0889 2.32422 17.5712 2.32422C18.0534 2.32422 18.5159 2.51579 18.8569 2.85678C19.1979 3.19777 19.3894 3.66026 19.3894 4.14249C19.3894 4.62473 19.1979 5.08722 18.8569 5.42821L10.714 13.5711L7.28544 14.4282L8.14258 10.9996L16.2854 2.85678Z\"\r\n stroke=\"#667085\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_844_18318\">\r\n <rect width=\"20.5714\" height=\"20.5714\" fill=\"white\" transform=\"translate(0.427734 0.713867)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </a>\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\r\n [itemsPerPage]=\"limit\"\r\n [currentPage]=\"offset\"\r\n [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\"\r\n [pageSize]=\"paginationSize()\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"\r\n *ngIf=\"!isPageLoading && planogramsList.length !== 0\"\r\n >\r\n </lib-pagination>\r\n </div>\r\n</div>\r\n", 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)}#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}.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}.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}.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}#list-view .thumbnail{height:40px;width:40px;background:#f2f4f7;margin-right:12px;border-radius:8px}#list-view td{vertical-align:middle}#grid-view .card{box-shadow:0 4px 10px #0000000d;border:1px solid rgb(223,225,231);background:#fff;border-radius:12px;padding:12px}#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:#f2f4f7;background:#667085}.badge.yetToComplete{background:#f2f4f7;color:#667085}.badge.yetToAssign{background:#eaecf5;color:#363f72}.badge.taskAssigned{background:#e0eaff;color:#7a5af8}.badge.reviewPending{background:#fef0c7;color:#f79009}.badge.completed{background:#d1fadf;color:#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)}.content-wrapper{background:#fff;border-radius:12px;min-height:calc(100vh - 330px);height:100%;padding:16px 24px}.badgeStyle{color:var(--Gray-700, #344054);text-align:center;font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px;background:#f2f4f7}.primaryBadgeStyle{color:var(--Gray-700, #009BF3);text-align:center;font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px;background:#eaf8ff}\n"] }]
560
560
  }], ctorParameters: () => [{ type: i1.NgbModal }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.StoreBuilderService }, { type: i4.GlobalStateService }, { type: i4.PageInfoService }] });
561
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZpY2F0aW9uLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi9jb21wb25lbnRzL21hbmFnZS1wbGFuby92ZXJpZmljYXRpb24tdGFibGUvdmVyaWZpY2F0aW9uLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi9jb21wb25lbnRzL21hbmFnZS1wbGFuby92ZXJpZmljYXRpb24tdGFibGUvdmVyaWZpY2F0aW9uLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRzdELE9BQU8sRUFDTCxZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixPQUFPLEVBRVAsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBSWQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDL0csT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDakcsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixtQkFBbUIsR0FDcEIsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7OztBQU8zQyxNQUFNLE9BQU8sK0JBQStCO0lBa0hoQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUF0SFYsUUFBUSxDQUFTO0lBRWpCLGNBQWMsQ0FBTTtJQUNwQixjQUFjLEdBQWdCLEVBQUUsQ0FBQztJQUVqQyxpQkFBaUIsR0FBVyxLQUFLLENBQUM7SUFFbEMsWUFBWSxHQUFXLEVBQUUsQ0FBQztJQUMxQixTQUFTLEdBQVcsQ0FBQyxDQUFDO0lBRXRCLFVBQVUsR0FBVyxFQUFFLENBQUM7SUFFeEIsS0FBSyxHQUFXLEVBQUUs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LGtCQUFrQixDQUFDLE9BQU8sQ0FBQzthQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxHQUFHLEVBQUU7b0JBQ1AsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUM7aUJBQy9EO1lBQ0gsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNiLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzFCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDO3dHQTNtQlUsK0JBQStCOzRGQUEvQiwrQkFBK0Isb0VDMUI1QyxzdHhDQTR1QkE7OzRGRGx0QmEsK0JBQStCO2tCQUwzQyxTQUFTOytCQUNFLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBSb3V0ZXIsIEFjdGl2YXRlZFJvdXRlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBOZ2JNb2RhbCB9IGZyb20gXCJAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcFwiO1xyXG5pbXBvcnQge1xyXG4gIGRlYm91bmNlVGltZSxcclxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcclxuICBmaWx0ZXIsXHJcbiAgU3ViamVjdCxcclxuICBTdWJzY3JpcHRpb24sXHJcbiAgdGFrZVVudGlsLFxyXG59IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSwgUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSBcInRhbmdvLWFwcC11aS1nbG9iYWxcIjtcclxuaW1wb3J0IHsgUGxhbm9MaXN0IH0gZnJvbSBcIi4uLy4uLy4uL2ludGVyZmFjZXMvcGxhbm9ncmFtLmludGVyZmFjZVwiO1xyXG5pbXBvcnQgeyBTdG9yZUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3N0b3JlLWJ1aWxkZXIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBCdWxrVXBsb2FkUGxhbm9ncmFtQ29tcG9uZW50IH0gZnJvbSBcIi4uL3BvcHVwcy9idWxrLXVwbG9hZC1wbGFub2dyYW0vYnVsay11cGxvYWQtcGxhbm9ncmFtLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBDcmVhdGVQbGFub2dyYW1Db21wb25lbnQgfSBmcm9tIFwiLi4vcG9wdXBzL2NyZWF0ZS1wbGFub2dyYW0vY3JlYXRlLXBsYW5vZ3JhbS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtcclxuICBnZXRRdWVyeVBhcmFtTnVtYmVyLFxyXG4gIGdldFF1ZXJ5UGFyYW1TdHJpbmcsXHJcbn0gZnJvbSBcIi4uLy4uLy4uL2Z1bmN0aW9ucy9wbGFuby5mdW5jdGlvblwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwibGliLXBsYW5vLXZlcmlmaWNhdGlvbi10YWJsZVwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vdmVyaWZpY2F0aW9uLXRhYmxlLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmw6IFwiLi92ZXJpZmljYXRpb24tdGFibGUuY29tcG9uZW50LnNjc3NcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFBsYW5vVmVyaWZpY2F0aW9uVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgY2xpZW50SWQ6IHN0cmluZztcclxuXHJcbiAgcGVuZGluZ0RldGFpbHM6IGFueTtcclxuICBwbGFub2dyYW1zTGlzdDogUGxhbm9MaXN0W10gPSBbXTtcclxuXHJcbiAgc2VsZWN0ZWRGaWx0ZXJUYWI6IHN0cmluZyA9IFwiYWxsXCI7XHJcblxyXG4gIHNvcnRlZENvbHVtbjogc3RyaW5nID0gXCJcIjtcclxuICBzb3J0T3JkZXI6IG51bWJlciA9IDE7XHJcblxyXG4gIHNlYXJjaFRlcm06IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIGxpbWl0OiBudW1iZXIgPSAxMDtcclxuICBvZmZzZXQ6IG51bWJlciA9IDE7XHJcbiAgdG90YWxJdGVtczogbnVtYmVyID0gMDtcclxuICBwYWdpbmF0aW9uU2l6ZXMgPSBbMTAsIDIwLCAzMF07XHJcblxyXG4gIC8vIGZpbHRlck9iamVjdCA9IFtcclxuICAvLyAgIHtcclxuICAvLyAgICAgRGVzY3JpcHRpb246IFwiTGF5b3V0XCIsXHJcbiAgLy8gICAgIElzc3VlczogW1xyXG4gIC8vICAgICAgIHsgdGV4dDogXCJUYXNrIEFzc2lnbmVkXCIsIGlkOiBcInRhc2tBc3NpZ25lZFwiIH0sXHJcbiAgLy8gICAgICAgeyB0ZXh0OiBcIlJldmlldyBQZW5kaW5nXCIsIGlkOiBcInJldmlld1BlbmRpbmdcIiB9LFxyXG4gIC8vICAgICAgIC8vIHsgdGV4dDogXCJZZXQgVG8gQ29tcGxldGVcIiwgaWQ6IFwieWV0VG9Db21wbGV0ZVwiIH0sXHJcbiAgLy8gICAgICAgeyB0ZXh0OiBcIllldCBUbyBBc3NpZ25cIiwgaWQ6IFwieWV0VG9Bc3NpZ25cIiB9LFxyXG4gIC8vICAgICAgIC8vIHsgdGV4dDogXCJSb2xsIG91dFwiLCBpZDogXCJyb2xsb3V0XCIgfSxcclxuICAvLyAgICAgICB7IHRleHQ6IFwiQ29tcGxldGVkXCIsIGlkOiBcImNvbXBsZXRlZFwiIH0sXHJcbiAgLy8gICAgICAgeyB0ZXh0OiBcIkZsYWdcIiwgaWQ6IFwiZmxhZ1wiIH0sXHJcbiAgLy8gICAgIF0sXHJcbiAgLy8gICB9LFxyXG4gIC8vICAge1xyXG4gIC8vICAgICBEZXNjcmlwdGlvbjogXCJGaXh0dXJlXCIsXHJcbiAgLy8gICAgIElzc3VlczogW1xyXG4gIC8vICAgICAgIHsgdGV4dDogXCJUYXNrIEFzc2lnbmVkXCIsIGlkOiBcInRhc2tBc3NpZ25lZFwiIH0sXHJcbiAgLy8gICAgICAgeyB0ZXh0OiBcIlJldmlldyBQZW5kaW5nXCIsIGlkOiBcInJldmlld1BlbmRpbmdcIiB9LFxyXG4gIC8vICAgICAgIC8vIHsgdGV4dDogXCJZZXQgVG8gQ29tcGxldGVcIiwgaWQ6IFwieWV0VG9Db21wbGV0ZVwiIH0sXHJcbiAgLy8gICAgICAgeyB0ZXh0OiBcIllldCBUbyBBc3NpZ25cIiwgaWQ6IFwieWV0VG9Bc3NpZ25cIiB9LFxyXG4gIC8vICAgICAgIC8vIHsgdGV4dDogXCJSb2xsIG91dFwiLCBpZDogXCJyb2xsb3V0XCIgfSxcclxuICAvLyAgICAgICB7IHRleHQ6IFwiQ29tcGxldGVkXCIsIGlkOiBcImNvbXBsZXRlZFwiIH0sXHJcbiAgLy8gICAgICAgeyB0ZXh0OiBcIkZsYWdcIiwgaWQ6IFwiZmxhZ1wiIH0sXHJcbiAgLy8gICAgIF0sXHJcbiAgLy8gICB9LFxyXG4gIC8vICAge1xyXG4gIC8vICAgICBEZXNjcmlwdGlvbjogXCJQbGFub2dyYW0gU3RhdHVzXCIsXHJcbiAgLy8gICAgIElzc3VlczogW1xyXG4gIC8vICAgICAgIHsgdGV4dDogXCJJbi1Qcm9ncmVzc1wiLCBpZDogXCJpbnByb2dyZXNzXCIgfSxcclxuICAvLyAgICAgICB7IHRleHQ6IFwiUmVhZHkgdG8gUHVibGlzaFwiLCBpZDogXCJub3RQdWJsaXNoZWRcIiB9LFxyXG4gIC8vICAgICAgIHsgdGV4dDogXCJQdWJsaXNoZWRcIiwgaWQ6IFwicHVibGlzaFwiIH0sXHJcbiAgLy8gICAgIF0sXHJcbiAgLy8gICB9LFxyXG4gIC8vIF07XHJcblxyXG4gIGZpbHRlck9iamVjdCA9IFtcclxuICAgIHtcclxuICAgICAgdGl0bGU6IFwiTGF5b3V0XCIsXHJcbiAgICAgIHR5cGU6IFwibXVsdGlcIixcclxuICAgICAgaXNPcGVuZWQ6IGZhbHNlLFxyXG4gICAgICBvcHRpb25zOiBbXHJcbiAgICAgICAgeyBuYW1lOiBcIlRhc2sgQXNzaWduZWRcIiwgdmFsdWU6IFwidGFza0Fzc2lnbmVkXCIsIGNoZWNrZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgeyBuYW1lOiBcIlJldmlldyBQZW5kaW5nXCIsIHZhbHVlOiBcInJldmlld1BlbmRpbmdcIiwgY2hlY2tlZDogZmFsc2UgfSxcclxuICAgICAgICAvLyB7IG5hbWU6IFwiWWV0IFRvIENvbXBsZXRlXCIsIHZhbHVlOiBcInlldFRvQ29tcGxldGVcIiB9LFxyXG4gICAgICAgIHsgbmFtZTogXCJZZXQgVG8gQXNzaWduXCIsIHZhbHVlOiBcInlldFRvQXNzaWduXCIsIGNoZWNrZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgLy8geyBuYW1lOiBcIlJvbGwgb3V0XCIsIHZhbHVlOiBcInJvbGxvdXRcIiB9LFxyXG4gICAgICAgIHsgbmFtZTogXCJDb21wbGV0ZWRcIiwgdmFsdWU6IFwiY29tcGxldGVkXCIsIGNoZWNrZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgeyBuYW1lOiBcIkZsYWdcIiwgdmFsdWU6IFwiZmxhZ1wiLCBjaGVja2VkOiBmYWxzZSB9LFxyXG4gICAgICBdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGl0bGU6IFwiRml4dHVyZVwiLFxyXG4gICAgICB0eXBlOiBcIm11bHRpXCIsXHJcbiAgICAgIGlzT3BlbmVkOiBmYWxzZSxcclxuICAgICAgb3B0aW9uczogW1xyXG4gICAgICAgIHsgbmFtZTogXCJUYXNrIEFzc2lnbmVkXCIsIHZhbHVlOiBcInRhc2tBc3NpZ25lZFwiLCBjaGVja2VkOiBmYWxzZSB9LFxyXG4gICAgICAgIHsgbmFtZTogXCJSZXZpZXcgUGVuZGluZ1wiLCB2YWx1ZTogXCJyZXZpZXdQZW5kaW5nXCIsIGNoZWNrZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgLy8geyBuYW1lOiBcIllldCBUbyBDb21wbGV0ZVwiLCB2YWx1ZTogXCJ5ZXRUb0NvbXBsZXRlXCIgfSxcclxuICAgICAgICB7IG5hbWU6IFwiWWV0IFRvIEFzc2lnblwiLCB2YWx1ZTogXCJ5ZXRUb0Fzc2lnblwiLCBjaGVja2VkOiBmYWxzZSB9LFxyXG4gICAgICAgIC8vIHsgbmFtZTogXCJSb2xsIG91dFwiLCB2YWx1ZTogXCJyb2xsb3V0XCIgfSxcclxuICAgICAgICB7IG5hbWU6IFwiQ29tcGxldGVkXCIsIHZhbHVlOiBcImNvbXBsZXRlZFwiLCBjaGVja2VkOiBmYWxzZSB9LFxyXG4gICAgICAgIHsgbmFtZTogXCJGbGFnXCIsIHZhbHVlOiBcImZsYWdcIiwgY2hlY2tlZDogZmFsc2UgfSxcclxuICAgICAgXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHRpdGxlOiBcIlBsYW5vZ3JhbSBTdGF0dXNcIixcclxuICAgICAgdHlwZTogXCJtdWx0aVwiLFxyXG4gICAgICBpc09wZW5lZDogZmFsc2UsXHJcbiAgICAgIG9wdGlvbnM6IFtcclxuICAgICAgICB7IG5hbWU6IFwiVGFzayBBc3NpZ25lZFwiLCB2YWx1ZTogXCJ0YXNrQXNzaWduZWRcIiwgY2hlY2tlZDogZmFsc2UgfSxcclxuICAgICAgICB7IG5hbWU6IFwiUmV2aWV3IFBlbmRpbmdcIiwgdmFsdWU6IFwicmV2aWV3UGVuZGluZ1wiLCBjaGVja2VkOiBmYWxzZSB9LFxyXG4gICAgICAgIHsgbmFtZTogXCJZZXQgVG8gQXNzaWduXCIsIHZhbHVlOiBcInlldFRvQXNzaWduXCIsIGNoZWNrZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgeyBuYW1lOiBcIlJlYWR5IHRvIFB1Ymxpc2hcIiwgdmFsdWU6IFwibm90UHVibGlzaGVkXCIsIGNoZWNrZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgeyBuYW1lOiBcIlB1Ymxpc2hlZFwiLCB2YWx1ZTogXCJwdWJsaXNoXCIsIGNoZWNrZWQ6IGZhbHNlIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9LFxyXG4gIF07XHJcblxyXG4gIGFwcGxpZWRGaWx0ZXJzOiBhbnkgPSB7XHJcbiAgICBjb3VudHJ5OiBbXSxcclxuICAgIGNpdHk6IFtdLFxyXG4gICAgbGF5b3V0OiBbXSxcclxuICAgIGZpeHR1cmU6IFtdLFxyXG4gICAgdGFza1BlbmRpbmc6IFwiYWxsXCIsXHJcbiAgICBzdGF0dXM6IFtdLFxyXG4gIH07XHJcblxyXG4gIGlzRmlsdGVyQXBwbGllZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBpc1BhZ2VMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBpc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgcGxhbm9TdWI/OiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBuZ2JNb2RhbDogTmdiTW9kYWwsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHN0b3JlQnVpbGRlclNlcnZpY2U6IFN0b3JlQnVpbGRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHBhZ2VJbmZvOiBQYWdlSW5mb1NlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRQYWdlRGF0YSgpO1xyXG5cclxuICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWVcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLCAvLyBTdWJzY3JpcHRpb24gd2lsbCBiZSBjYW5jZWxsZWQgb24gY29tcG9uZW50IGRlc3Ryb3kuXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKDIwMCksIC8vIFRvIGF2b2lkIGltbWVkaWF0ZSBmcmVxdWVudCBjYWxscy5cclxuICAgICAgICBmaWx0ZXIoKGRhdGEpID0+ICEhZGF0YSksIC8vIEZpbHRlcmluZyBudWxsL3VuZGVmaW5lZC5cclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpIC8vIEVtaXR0aW5nIG9ubHkgZGlmZmVyZW50IHZhbHVlcy4gKElnbm9yZXMgc2FtZSBjbGllbnRJZCkuXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgICAgdGhpcy5jbGllbnRJZCA9IGRhdGEuY2xpZW50O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IGRhdGEgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgYXMgc3RyaW5nXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuY2xpZW50SWQgPSBkYXRhPy5jbGllbnQ7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtTWFwXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWFyY2hUZXJtID0gZ2V0UXVlcnlQYXJhbVN0cmluZyh7XHJcbiAgICAgICAgICAgICAgICBwYXJhbXMsXHJcbiAgICAgICAgICAgICAgICBrZXk6IFwic2VhcmNoXCIsXHJcbiAgICAgICAgICAgICAgICBmYWxsYmFjazogXCJcIixcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB0aGlzLmlzRmlsdGVyQXBwbGllZCA9IHRoaXMuc2VhcmNoVGVybSA/IHRydWUgOiBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlclRhYiA9IGdldFF1ZXJ5UGFyYW1TdHJpbmcoe1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgICAgICAgICAga2V5OiBcInRhYlwiLFxyXG4gICAgICAgICAgICAgICAgZmFsbGJhY2s6IFwiYWxsXCIsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5hcHBsaWVkRmlsdGVycy50YXNrUGVuZGluZyA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVyVGFiID09IFwidm1cIlxyXG4gICAgICAgICAgICAgICAgICA/IFwiZml4dHVyZVwiXHJcbiAgICAgICAgICAgICAgICAgIDogdGhpcy5zZWxlY3RlZEZpbHRlclRhYjtcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5saW1pdCA9IGdldFF1ZXJ5UGFyYW1OdW1iZXIoe1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgICAgICAgICAga2V5OiBcImxpbWl0XCIsXHJcbiAgICAgICAgICAgICAgICBmYWxsYmFjazogMTAsXHJcbiAgICAgICAgICAgICAgICBtaW46IDEsXHJcbiAgICAgICAgICAgICAgICBtYXg6IDMwLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLm9mZnNldCA9IGdldFF1ZXJ5UGFyYW1OdW1iZXIoe1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgICAgICAgICAga2V5OiBcIm9mZnNldFwiLFxyXG4gICAgICAgICAgICAgICAgZmFsbGJhY2s6IDEsXHJcbiAgICAgICAgICAgICAgICBtaW46IDEsXHJcbiAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0UGxhbm9UYWJsZUxpc3QoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRQYWdlRGF0YSgpIHtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0VGl0bGUoXCJNYW5hZ2UgUGxhbm9ncmFtXCIpO1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRCcmVhZGNydW1icyhbXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogXCJQbGFub2dyYW1cIixcclxuICAgICAgICBwYXRoOiBcIi9tYW5hZ2UvcGxhbm9ncmFtL21hbmFnZS1wbGFub2dyYW1zXCIsXHJcbiAgICAgICAgaXNBY3RpdmU6IGZhbHNlLFxyXG4gICAgICAgIGlzU2VwYXJhdG9yOiBmYWxzZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiBcIlwiLFxyXG4gICAgICAgIHBhdGg6IFwiXCIsXHJcbiAgICAgICAgaXNBY3RpdmU6IGZhbHNlLFxyXG4gICAgICAgIGlzU2VwYXJhdG9yOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgXSk7XHJcbiAgfVxyXG5cclxuICBnZXRQbGFub1RhYmxlTGlzdCgpIHtcclxuICAgIHRoaXMucGxhbm9TdWI/LnVuc3Vic2NyaWJlKCk7IC8vIENhbmNlbCBwcmV2aW91cyByZXF1ZXN0XHJcblxyXG4gICAgdGhpcy5pc1BhZ2VMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMucGxhbm9ncmFtc0xpc3QgPSBbXTtcclxuICAgIGxldCBwYXlsb2FkID0ge1xyXG4gICAgICBjbGllbnRJZDogdGhpcy5jbGllbnRJZCxcclxuICAgICAgbGltaXQ6IHRoaXMubGltaXQsXHJcbiAgICAgIG9mZnNldDogdGhpcy5vZmZzZXQsXHJcbiAgICAgIHNvcnRDb2x1bW5OYW1lOiB0aGlzLnNvcnRlZENvbHVtbixcclxuICAgICAgc29ydEJ5OiB0aGlzLnNvcnRPcmRlcixcclxuICAgICAgZmlsdGVyOiB0aGlzLmFwcGxpZWRGaWx0ZXJzLFxyXG4gICAgICBzZWFyY2hWYWx1ZTogdGhpcy5zZWFyY2hUZXJtLFxyXG4gICAgICAvLyBleHBvcnQ6IGZhbHNlLFxyXG4gICAgICAvLyBlbXB0eURvd25sb2FkOiBmYWxzZVxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnBsYW5vU3ViID0gdGhpcy5zdG9yZUJ1aWxkZXJTZXJ2aWNlXHJcbiAgICAgIC5nZXRQbGFub0xpc3QocGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzPy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnRvdGFsSXRlbXMgPSByZXM/LmRhdGE/LmNvdW50O1xyXG4gICAgICAgICAgICB0aGlzLnBsYW5vZ3JhbXNMaXN0ID0gcmVzPy5kYXRhPy5kYXRhID8/IFtdO1xyXG4gICAgICAgICAgICB0aGlzLnBlbmRpbmdEZXRhaWxzID0gcmVzPy5kYXRhPy5wZW5kaW5nRGV0YWlscz8uWzBdIHx8IFtdO1xyXG4gICAgICAgICAgICBpZiAodGhpcy50b3RhbEl0ZW1zIDwgMTApIHtcclxuICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplcyA9IFt0aGlzLnRvdGFsSXRlbXNdO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gWzEwLCAyMCwgMzBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmlzUGFnZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzUGFnZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLnRvdGFsSXRlbXMgPSB0aGlzLnBsYW5vZ3JhbXNMaXN0Lmxlbmd0aDtcclxuICB9XHJcblxyXG4gIG9wZW5CdWxrVXBsb2FkTW9kYWwoKSB7XHJcbiAgICBjb25zdCBtb2RlbFJlZiA9IHRoaXMubmdiTW9kYWwub3BlbihCdWxrVXBsb2FkUGxhbm9ncmFtQ29tcG9uZW50KTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tDcmVhdGVQbGFub2dyYW0oKSB7XHJcbiAgICBjb25zdCBtb2RlbFJlZiA9IHRoaXMubmdiTW9kYWwub3BlbihDcmVhdGVQbGFub2dyYW1Db21wb25lbnQsIHtcclxuICAgICAgc2l6ZTogXCJtZFwiLFxyXG4gICAgICB3aW5kb3dDbGFzczogXCJjcmVhdGUtcGxhbm9ncmFtLW1vZGFsXCIsXHJcbiAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgfSk7XHJcblxyXG4gICAgbW9kZWxSZWYuY29tcG9uZW50SW5zdGFuY2UuY2xpZW50SWQgPSB0aGlzLmNsaWVudElkO1xyXG4gICAgbW9kZWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiL21hbmFnZS9wbGFub2dyYW0vbWFuYWdlLXBsYW5vZ3JhbVwiXSwge1xyXG4gICAgICAgICAgcXVlcnlQYXJhbXM6IHsgcGxhbm9JZDogcmVzdWx0Py5wbGFub0lkLCBmbG9vcklkOiByZXN1bHQ/LmZsb29ySWQgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblNlYXJjaCgpIHtcclxuICAgIHRoaXMuc29ydGVkQ29sdW1uID0gXCJcIjtcclxuICAgIHRoaXMuc29ydE9yZGVyID0gMTtcclxuICAgIHRoaXMub2Zmc2V0ID0gMTtcclxuICAgIHRoaXMubGltaXQgPSAxMDtcclxuXHJcbiAgICB0aGlzLmlzRmlsdGVyQXBwbGllZCA9IHRoaXMuc2VhcmNoVGVybSA/IHRydWUgOiBmYWxzZTtcclxuICAgIHRoaXMudXBkYXRlUXVlcnlQYXJhbXMoKTtcclxuICB9XHJcblxyXG4gIG9uU29ydFRhYmxlKGNvbHVtbjogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5zb3J0ZWRDb2x1bW4gPT09IGNvbHVtbikge1xyXG4gICAgICB0aGlzLnNvcnRPcmRlciA9IHRoaXMuc29ydE9yZGVyID09PSAxID8gLTEgOiAxO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zb3J0ZWRDb2x1bW4gPSBjb2x1bW47XHJcbiAgICAgIHRoaXMuc29ydE9yZGVyID0gMTtcclxuICAgIH1cclxuICAgIHRoaXMub2Zmc2V0ID0gMTtcclxuICAgIHRoaXMubGltaXQgPSAxMDtcclxuICAgIHRoaXMuZ2V0UGxhbm9UYWJsZUxpc3QoKTtcclxuICB9XHJcblxyXG4gIGZpbHRlclRhYmxlKGRhdGE6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRGaWx0ZXJUYWIgIT09IGRhdGEpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlclRhYiA9IGRhdGE7XHJcbiAgICAgIHRoaXMuYXBwbGllZEZpbHRlcnMudGFza1BlbmRpbmcgPSB0aGlzLnNlbGVjdGVkRmlsdGVyVGFiO1xyXG4gICAgICB0aGlzLm9mZnNldCA9IDE7XHJcbiAgICAgIHRoaXMubGltaXQgPSAxMDtcclxuICAgICAgdGhpcy5zZWFyY2hUZXJtID0gXCJcIjtcclxuICAgICAgdGhpcy51cGRhdGVRdWVyeVBhcmFtcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXBwbHlGaWx0ZXJzKGV2ZW50OiBhbnkpIHtcclxuICAgIGV2ZW50LmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgIC8vIGlmIChlbGUudGl0bGUgPT0gXCJQbGFub2dyYW0gU3RhdHVzXCIpIHtcclxuICAgICAgLy8gICBlbGUudGl0bGUgPSBcInN0YXR1c1wiO1xyXG4gICAgICAvLyB9XHJcbiAgICAgIGxldCBrZXkgPSBlbGUudGl0bGUudG9Mb3dlckNhc2UoKTtcclxuICAgICAgaWYoa2V5ID09PSAnc3RvcmUgY2F0ZWdvcnknKXtcclxuICAgICAgICB0aGlzLmFwcGxpZWRGaWx0ZXJzWydwbGFub1N0cmF0ZWd5J10gPSBlbGUuc2VsZWN0ZWQ7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuYXBwbGllZEZpbHRlcnNbZWxlLnRpdGxlLnRvTG93ZXJDYXNlKCldID0gZWxlLnNlbGVjdGVkO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgbGV0IHRhc2sgPSB0aGlzLnNlbGVjdGVkRmlsdGVyVGFiO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRGaWx0ZXJUYWIgPT0gXCJ2bVwiKSB7XHJcbiAgICAgIHRhc2sgPSBcImZpeHR1cmVcIjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmFwcGxpZWRGaWx0ZXJzW1wicGxhbm9ncmFtIHN0YXR1c1wiXT8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuYXBwbGllZEZpbHRlcnNbXCJmaXh0dXJlXCJdLnB1c2goLi4udGhpcy5hcHBsaWVkRmlsdGVyc1tcInBsYW5vZ3JhbSBzdGF0dXNcIl0pXHJcbiAgICAgIHRoaXMuYXBwbGllZEZpbHRlcnNbXCJmaXh0dXJlXCJdID0gWy4uLm5ldyBTZXQodGhpcy5hcHBsaWVkRmlsdGVyc1tcImZpeHR1cmVcIl0ubWFwKChlbGU6YW55KSA9PiBlbGUpKV07XHJcblxyXG4gICAgfVxyXG4gICAgLy8gdGhpcy5hcHBsaWVkRmlsdGVyc1tcIlN0YXR1c1wiXSA9IHRoaXMuYXBwbGllZEZpbHRlcnNbXCJQbGFub2dyYW0gU3RhdHVzXCJdO1xyXG4gICAgZGVsZXRlIHRoaXMuYXBwbGllZEZpbHRlcnNbXCJwbGFub2dyYW0gc3RhdHVzXCJdO1xyXG4gICAgLy8gY29uc3QgdHlwZSA9IGV2ZW50WzFdLklzc3Vlcy5tYXAoKGk6IGFueSkgPT4gaS5pZCk7XHJcbiAgICAvLyBjb25zdCBzaXplID0gZXZlbnRbMl0uSXNzdWVzLm1hcCgoaTogYW55KSA9PiBpLmlkKTtcclxuXHJcbiAgICAvLyB0aGlzLmlzRmlsdGVyQXBwbGllZCA9IHN0YXR1cztcclxuICAgIHRoaXMuYXBwbGllZEZpbHRlcnNbXCJ0YXNrUGVuZGluZ1wiXSA9IHRhc2s7XHJcbiAgICB0aGlzLm9mZnNldCA9IDE7XHJcbiAgICB0aGlzLmdldFBsYW5vVGFibGVMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBwYWdpbmF0aW9uU2l6ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudG90YWxJdGVtcyA8IDEwID8gdGhpcy50b3RhbEl0ZW1zIDogdGhpcy5saW1pdDtcclxuICB9XHJcblxyXG4gIG9uUGFnZUNoYW5nZShwYWdlT2Zmc2V0OiBudW1iZXIpIHtcclxuICAgIHRoaXMub2Zmc2V0ID0gTnVtYmVyKHBhZ2VPZmZzZXQpO1xyXG4gICAgdGhpcy51cGRhdGVRdWVyeVBhcmFtcygpO1xyXG4gIH1cclxuXHJcbiAgb25QYWdlU2l6ZUNoYW5nZShwYWdlU2l6ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm9mZnNldCA9IDE7XHJcbiAgICB0aGlzLmxpbWl0ID0gTnVtYmVyKHBhZ2VTaXplKTtcclxuICAgIHRoaXMudXBkYXRlUXVlcnlQYXJhbXMoKTtcclxuICB9XHJcblxyXG4gIHBsYW5vRmxvb3JEZXRhaWxzKGRhdGE6IGFueSkge1xyXG4gICAgaWYgKGRhdGEubGF5b3V0RGV0YWlscy5sZW5ndGggPiAxKSB7XHJcbiAgICAgIGxldCBjb21wbGV0ZUNvdW50ID0gZGF0YT8udGFza0RldGFpbHM/LmNvbXBsZXRlTGF5b3V0IHx8IDA7XHJcbiAgICAgIHJldHVybiBjb21wbGV0ZUNvdW50ICsgXCIvXCIgKyBkYXRhLmxheW91dERldGFpbHMubGVuZ3RoO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIDE7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRUYXNrU3RhdHVzKGRhdGE6IGFueSwgdHlwZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBzdGF0dXNNYXA6IGFueSA9IHtcclxuICAgICAgbGF5b3V0OiBkYXRhLnRhc2tEZXRhaWxzPy5sYXlvdXRTdGF0dXMsXHJcbiAgICAgIGZpeHR1cmU6IGRhdGEudGFza0RldGFpbHM/LmZpeHR1cmVTdGF0dXMsXHJcbiAgICAgIHZtOiBkYXRhLnRhc2tEZXRhaWxzPy5maXh0dXJlU3RhdHVzLFxyXG4gICAgfTtcclxuICAgIGlmICh0eXBlID09IFwidm1cIikge1xyXG4gICAgICB0eXBlID0gXCJmaXh0dXJlXCI7XHJcbiAgICB9XHJcbiAgICBjb25zdCBzdGF0dXMgPSBzdGF0dXNNYXBbdHlwZV07XHJcbiAgICBcclxuICAgIGNvbnN0IHRhc2tEZXRhaWxzID0gZGF0YT8ucGxhbm9UYXNrPy5bMF0/LnRhc2tTdGF0dXM/LmZpbmQoXHJcbiAgICAgIChlbGU6IGFueSkgPT4gZWxlLnR5cGUgPT0gdHlwZVxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAodHlwZSA9PSBcImZpeHR1cmVcIikge1xyXG4gICAgICBsZXQgdGFza0luZm8gPSBkYXRhPy5wbGFub1Rhc2s/LlswXT8udGFza1N0YXR1cz8uZmlsdGVyKFxyXG4gICAgICAgIChlbGU6IGFueSkgPT4gZWxlLnN0YXR1cyAmJiBlbGUudHlwZSA9PSBcImZpeHR1cmVcIlxyXG4gICAgICApO1xyXG4gICAgICBpZiAoc3RhdHVzID09PSBcInBlbmRpbmdcIiAmJiB0YXNrSW5mby5zb21lKCh0YXNrOmFueSkgPT4gdGFzay5zdGF0dXMgPT0gJ3N1Ym1pdCcpKSByZXR1cm4gXCJyZXZpZXdQZW5kaW5nXCI7XHJcbiAgICAgIGlmICh0YXNrSW5mbz8ubGVuZ3RoICE9IGRhdGEubGF5b3V0Q291bnQpIHtcclxuICAgICAgICByZXR1cm4gXCJ5ZXRUb0Fzc2lnblwiO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0YXNrSW5mby5pbmNsdWRlcyhcIm9wZW5cIikgfHwgdGFza0luZm8uaW5jbHVkZXMoXCJpbnByb2dyZXNzXCIpKSB7XHJcbiAgICAgICAgcmV0dXJuIFwidGFza0Fzc2lnbmVkXCI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgICF0YXNrRGV0YWlscyB8fFxyXG4gICAgICAodGFza0RldGFpbHMuc3RhdHVzID09IFwic3VibWl0XCIgJiYgc3RhdHVzID09PSBcImRpc2FncmVlXCIpXHJcbiAgICApXHJcbiAgICAgIHJldHVybiBcInlldFRvQXNzaWduXCI7XHJcblxyXG4gICAgaWYgKHRhc2tEZXRhaWxzLnN0YXR1cyAhPT0gXCJzdWJtaXRcIikgcmV0dXJuIFwidGFza0Fzc2lnbmVkXCI7XHJcblxyXG4gICAgaWYgKHN0YXR1cyA9PT0gXCJjb21wbGV0ZVwiKSByZXR1cm4gXCJjb21wbGV0ZWRcIjtcclxuICB9XHJcblxyXG4gIGdldFRhc2tUb29sdGlwKGRhdGE6IGFueSwgdHlwZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBzdGF0dXNNYXA6IGFueSA9IHtcclxuICAgICAgbGF5b3V0OiBkYXRhLnRhc2tEZXRhaWxzPy5sYXlvdXRTdGF0dXMsXHJcbiAgICAgIGZpeHR1cmU6IGRhdGEudGFza0RldGFpbHM/LmZpeHR1cmVTdGF0dXMsXHJcbiAgICAgIHZtOiBkYXRhLnRhc2tEZXRhaWxzPy5maXh0dXJlU3RhdHVzLFxyXG4gICAgfTtcclxuICAgIGlmICh0eXBlID09IFwidm1cIikge1xyXG4gICAgICB0eXBlID0gXCJmaXh0dXJlXCI7XHJcbiAgICB9XHJcbiAgICBjb25zdCB0YXNrRGV0YWlscyA9IGRhdGE/LnBsYW5vVGFzaz8uWzBdPy50YXNrU3RhdHVzPy5maW5kKFxyXG4gICAgICAoZWxlOiBhbnkpID0+IGVsZS50eXBlID09IHR5cGVcclxuICAgICk7XHJcblxyXG4gICAgY29uc3Qgc3RhdHVzID0gc3RhdHVzTWFwW3R5cGVdO1xyXG5cclxuICAgIGlmIChzdGF0dXMgPT09IFwicGVuZGluZ1wiKSByZXR1cm4gXCJSZXZpZXcgUGVuZGluZ1wiO1xyXG5cclxuICAgIGlmICh0eXBlID09IFwiZml4dHVyZVwiKSB7XHJcbiAgICAgIGxldCB0YXNrSW5mbyA9IGRhdGE/LnBsYW5vVGFzaz8uWzBdPy50YXNrU3RhdHVzPy5maWx0ZXIoXHJcbiAgICAgICAgKGVsZTogYW55KSA9PiBlbGUuc3RhdHVzICYmIGVsZS50eXBlID09IFwiZml4dHVyZVwiXHJcbiAgICAgICk7XHJcbiAgICAgIGlmICh0YXNrSW5mbz8ubGVuZ3RoICE9IGRhdGEubGF5b3V0Q291bnQpIHtcclxuICAgICAgICByZXR1cm4gXCJZZXQgdG8gQXNzaWduXCI7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRhc2tJbmZvLmluY2x1ZGVzKFwib3BlblwiKSB8fCB0YXNrSW5mby5pbmNsdWRlcyhcImlucHJvZ3Jlc3NcIikpIHtcclxuICAgICAgICByZXR1cm4gXCJUYXNrIEFzc2lnbmVkXCI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgICF0YXNrRGV0YWlscyB8fFxyXG4gICAgICAodGFza0RldGFpbHMuc3RhdHVzID09IFwic3VibWl0XCIgJiYgc3RhdHVzID09PSBcImRpc2FncmVlXCIpXHJcbiAgICApXHJcbiAgICAgIHJldHVybiBcIllldCB0byBBc3NpZ25cIjtcclxuXHJcbiAgICBpZiAodGFza0RldGFpbHMuc3RhdHVzICE9PSBcInN1Ym1pdFwiKSByZXR1cm4gXCJUYXNrIEFzc2lnbmVkXCI7XHJcblxyXG4gICAgaWYgKHN0YXR1cyA9PT0gXCJjb21wbGV0ZVwiKSByZXR1cm4gXCJDb21wbGV0ZWRcIjtcclxuICB9XHJcblxyXG4gIGdldFByb2dyZXNzVmFsdWUoZGF0YTogYW55KSB7XHJcbiAgICBjb25zdCBzdGF0dXNNYXA6IGFueSA9IHtcclxuICAgICAgbGF5b3V0OiBkYXRhLnRhc2tEZXRhaWxzPy5sYXlvdXRTdGF0dXMsXHJcbiAgICAgIGZpeHR1cmU6IGRhdGEudGFza0RldGFpbHM/LmZpeHR1cmVTdGF0dXMsXHJcbiAgICAgIHZtOiBkYXRhLnRhc2tEZXRhaWxzPy5maXh0dXJlU3RhdHVzLFxyXG4gICAgfTtcclxuICAgIGxldCB0YXNrRGV0YWlscyA9IGRhdGE/LnBsYW5vVGFzaz8uWzBdPy50YXNrU3RhdHVzPy5maW5kKFxyXG4gICAgICAoZWxlOiBhbnkpID0+IGVsZS50eXBlID09IFwiZml4dHVyZVwiXHJcbiAgICApO1xyXG5cclxuICAgIGlmICh0YXNrRGV0YWlscykge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGFza0RldGFpbHMuc3RhdHVzID09IFwic3VibWl0XCIgJiZcclxuICAgICAgICBzdGF0dXNNYXBbXCJmaXh0dXJlXCJdID09IFwiY29tcGxldGVcIlxyXG4gICAgICApIHtcclxuICAgICAgICAvLyB0YXNrRGV0YWlscyA9IGRhdGE/LnBsYW5vVGFzaz8uWzBdPy50YXNrU3RhdHVzPy5maW5kKFxyXG4gICAgICAgIC8vICAgKGVsZTogYW55KSA9PiBlbGUudHlwZSA9PSBcImZpeHR1cmVcIlxyXG4gICAgICAgIC8vICk7XHJcbiAgICAgICAgLy8gaWYgKFxyXG4gICAgICAgIC8vICAgdGFza0RldGFpbHMgJiZcclxuICAgICAgICAvLyAgIHRhc2tEZXRhaWxzPy5zdGF0dXMgPT0gXCJzdWJtaXRcIiAmJlxyXG4gICAgICAgIC8vICAgc3RhdHVzTWFwW1wiZml4dHVyZVwiXSA9PSBcIlwiXHJcbiAgICAgICAgLy8gKSB7XHJcbiAgICAgICAgLy8gICB0YXNrRGV0YWlscyA9IGRhdGE/LnBsYW5vVGFzaz8uWzBdPy50YXNrU3RhdHVzPy5maW5kKFxyXG4gICAgICAgIC8vICAgICAoZWxlOiBhbnkpID0+IGVsZS50eXBlID09IFwidm1cIlxyXG4gICAgICAgIC8vICAgKTtcclxuICAgICAgICAvLyAgIGlmIChcclxuICAgICAgICAvLyAgICAgdGFza0RldGFpbHMgJiZcclxuICAgICAgICAvLyAgICAgdGFza0RldGFpbHM/LnN0YXR1cyA9PSBcInN1Ym1pdFwiICYmXHJcbiAgICAgICAgLy8gICAgIHN0YXR1c01hcFtcInZtXCJdID09IFwiXCJcclxuICAgICAgICAvLyAgICkge1xyXG4gICAgICAgIHJldHVybiAxMDA7XHJcbiAgICAgICAgLy8gICB9IGVsc2Uge1xyXG4gICAgICAgIC8vICAgICByZXR1cm4gNzU7XHJcbiAgICAgICAgLy8gICB9XHJcbiAgICAgICAgLy8gfSBlbHNlIHtcclxuICAgICAgICAvLyAgIHJldHVybiA1MDtcclxuICAgICAgICAvLyB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChkYXRhLnRhc2tEZXRhaWxzPy5sYXlvdXRTdGF0dXMgPT0gXCJjb21wbGV0ZVwiKSByZXR1cm4gNTA7XHJcblxyXG4gICAgcmV0dXJuIDI1O1xyXG4gIH1cclxuXHJcbiAgc2hvd0JyZWFjaChkYXRhOiBhbnksIHR5cGU6IHN0cmluZykge1xyXG4gICAgbGV0IHRhc2tEZXRhaWxzID0gZGF0YT8ucGxhbm9UYXNrPy5bMF0/LnRhc2tTdGF0dXM/LmZpbmQoXHJcbiAgICAgIChlbGU6IGFueSkgPT4gZWxlLnR5cGUgPT0gdHlwZVxyXG4gICAgKTtcclxuICAgIGlmICh0YXNrRGV0YWlscyAmJiB0YXNrRGV0YWlscz8uc3RhdHVzICE9IFwic3VibWl0XCIgJiYgdGFza0RldGFpbHM/LmJyZWFjaCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGdldFN0YXR1cyhkYXRhOiBhbnkpIHtcclxuICAgIGxldCB0YXNrRGV0YWlscyA9IGRhdGE/LnBsYW5vVGFzaz8uWzBdPy50YXNrU3RhdHVzPy5maW5kKFxyXG4gICAgICAoZWxlOiBhbnkpID0+IGVsZT8uc3RhdHVzICE9IFwic3VibWl0XCJcclxuICAgICk7XHJcbiAgICBpZiAoXHJcbiAgICAgICF0YXNrRGV0YWlscyAmJlxyXG4gICAgICBkYXRhLnRhc2tEZXRhaWxzLmZpeHR1cmVTdGF0dXMgPT0gXCJjb21wbGV0ZVwiICYmXHJcbiAgICAgIGRhdGEudGFza0RldGFpbHMubGF5b3V0U3RhdHVzID09IFwiY29tcGxldGVcIiAmJlxyXG4gICAgICBkYXRhLmxheW91dFN0YXR1cy5pbmNsdWRlcyhmYWxzZSlcclxuICAgICkge1xyXG4gICAgICByZXR1cm4gXCJSZWFkeSB0byBQdWJsaXNoXCI7XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAhdGFza0RldGFpbHMgJiZcclxuICAgICAgZGF0YS50YXNrRGV0YWlscy5maXh0dXJlU3RhdHVzID09IFwiY29tcGxldGVcIiAmJlxyXG4gICAgICBkYXRhLnRhc2tEZXRhaWxzLmxheW91dFN0YXR1cyA9PSBcImNvbXBsZXRlXCIgJiZcclxuICAgICAgIWRhdGEubGF5b3V0U3RhdHVzLmluY2x1ZGVzKGZhbHNlKVxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiBcIlB1Ymxpc2hlZFwiO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IGJyZWFjaCA9IHRoaXMuc2hvd0JyZWFjaChkYXRhLCBcImZpeHR1cmVcIik7XHJcblxyXG4gICAgICBpZihicmVhY2gpIHtcclxuICAgICAgICByZXR1cm4gJ1lldCB0byBBc3NpZ24nO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLmdldFRhc2tUb29sdGlwKGRhdGEsJ2ZpeHR1cmUnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFN0YXR1c0JhZGdlKGRhdGE6IGFueSkge1xyXG4gICAgbGV0IHRhc2tEZXRhaWxzID0gZGF0YT8ucGxhbm9UYXNrPy5bMF0/LnRhc2tTdGF0dXM/LmZpbmQoXHJcbiAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5zdGF0dXMgIT0gXCJzdWJtaXRcIlxyXG4gICAgKTtcclxuICAgIGlmIChcclxuICAgICAgIXRhc2tEZXRhaWxzICYmXHJcbiAgICAgIGRhdGEudGFza0RldGFpbHMuZml4dHVyZVN0YXR1cyA9PSBcImNvbXBsZXRlXCIgJiZcclxuICAgICAgZGF0YS50YXNrRGV0YWlscy5sYXlvdXRTdGF0dXMgPT0gXCJjb21wbGV0ZVwiICYmXHJcbiAgICAgIGRhdGEubGF5b3V0U3RhdHVzLmluY2x1ZGVzKGZhbHNlKVxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiBcInByaW1hcnlCYWRnZVN0eWxlXCI7XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAhdGFza0RldGFpbHMgJiZcclxuICAgICAgZGF0YS50YXNrRGV0YWlscy5maXh0dXJlU3RhdHVzID09IFwiY29tcGxldGVcIiAmJlxyXG4gICAgICBkYXRhLnRhc2tEZXRhaWxzLmxheW91dFN0YXR1cyA9PSBcImNvbXBsZXRlXCIgJiZcclxuICAgICAgIWRhdGEubGF5b3V0U3RhdHVzLmluY2x1ZGVzKGZhbHNlKVxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiBcImJnLXN1Y2Nlc3NcIjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBicmVhY2ggPSB0aGlzLnNob3dCcmVhY2goZGF0YSwgXCJmaXh0dXJlXCIpO1xyXG4gICAgICBpZiAoYnJlYWNoKSB7XHJcbiAgICAgICAgcmV0dXJuIFwieWV0VG9Bc3NpZ25cIjtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdGhpcy5nZXRUYXNrU3RhdHVzKGRhdGEsIFwiZml4dHVyZVwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFN1Ym1pdChkYXRhOiBhbnkpIHtcclxuICAgIGNvbnN0IHN0YXR1c01hcDogYW55ID0ge1xyXG4gICAgICBsYXlvdXQ6IGRhdGEudGFza0RldGFpbHM/LmxheW91dFN0YXR1cyxcclxuICAgICAgZml4dHVyZTogZGF0YS50YXNrRGV0YWlscz8uZml4dHVyZVN0YXR1cyxcclxuICAgICAgdm06IGRhdGEudGFza0RldGFpbHM/LnZtU3RhdHVzLFxyXG4gICAgfTtcclxuICAgIGxldCBzdWJtaXRUYXNrID0gZGF0YT8ucGxhbm9UYXNrPy5bMF0/LnRhc2tTdGF0dXMuZmluZChcclxuICAgICAgKGVsZTogYW55KSA9PiBlbGUuc3RhdHVzID09IFwic3VibWl0XCIgJiYgc3RhdHVzTWFwW2VsZS50eXBlXSA9PSBcInBlbmRpbmdcIlxyXG4gICAgKTtcclxuICAgIGlmIChzdWJtaXRUYXNrKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUXVlcnlQYXJhbXMoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xyXG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxyXG4gICAgICBxdWVyeVBhcmFtczoge1xyXG4gICAgICAgIHRhYjogdGhpcy5zZWxlY3RlZEZpbHRlclRhYixcclxuICAgICAgICBzZWFyY2g6IHRoaXMuc2VhcmNoVGVybSxcclxuICAgICAgICBsaW1pdDogdGhpcy5saW1pdCxcclxuICAgICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxyXG4gICAgICB9LFxyXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiBcIm1lcmdlXCIsXHJcbiAgICAgIHJlcGxhY2VVcmw6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLnBsYW5vU3ViPy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcmVkaXJlY3RTdG9yZShzdG9yZUlkOiBhbnkpIHtcclxuICAgIGxldCBkYXRhOiBhbnkgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgfHwgXCJcIik7XHJcbiAgICBkYXRhLnN0b3JlID0gc3RvcmVJZDtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIiwgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChgbWFuYWdlL3N0b3Jlcy9wbGFubz9zdG9yZUlkPSR7c3RvcmVJZH1gKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUZsb29yKGRhdGE6IGFueSkge1xyXG4gICAgbGV0IHRhc2tEZXRhaWxzID0gZGF0YT8ucGxhbm9UYXNrPy5bMF0/LnRhc2tTdGF0dXM/LmZpbHRlcihcclxuICAgICAgKGVsZTogYW55KSA9PiBlbGU/LnN0YXR1cyA9PSBcInN1Ym1pdFwiICYmIGVsZS50eXBlID09IFwibGF5b3V0XCJcclxuICAgICk7XHJcbiAgICByZXR1cm4gYCR7dGFza0RldGFpbHM/Lmxlbmd0aCA/PyAwfS8ke2RhdGE/LmxheW91dENvdW50fWA7XHJcbiAgfVxyXG5cclxuICBvbkV4cG9ydCgpIHtcclxuICAgIGxldCBwYXlsb2FkID0ge1xyXG4gICAgICBjbGllbnRJZDogdGhpcy5jbGllbnRJZCxcclxuICAgICAgbGltaXQ6IHRoaXMudG90YWxJdGVtcyxcclxuICAgICAgb2Zmc2V0OiAxLFxyXG4gICAgICBzb3J0Q29sdW1uTmFtZTogdGhpcy5zb3J0ZWRDb2x1bW4sXHJcbiAgICAgIHNvcnRCeTogdGhpcy5zb3J0T3JkZXIsXHJcbiAgICAgIGZpbHRlcjogdGhpcy5hcHBsaWVkRmlsdGVycyxcclxuICAgICAgc2VhcmNoVmFsdWU6IHRoaXMuc2VhcmNoVGVybSxcclxuICAgICAgZXhwb3J0OiB0cnVlLFxyXG4gICAgICAvLyBlbXB0eURvd25sb2FkOiBmYWxzZVxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnN0b3JlQnVpbGRlclNlcnZpY2VcclxuICAgICAgLmdldFBsYW5vTGlzdEV4cG9ydChwYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JlQnVpbGRlclNlcnZpY2Uuc2F2ZUFzRXhjZWxGaWxlKHJlcywgXCJWZXJpZmljYXRpb25cIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyLCBcImVyclwiKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJvdyBteC0wIG15LTUgZ2FwLTJcIj5cclxuICA8ZGl2IGNsYXNzPVwiY29sIGZpbHRlci10YWJcIiBbbmdDbGFzc109XCJ7IHNlbGVjdGVkOiBzZWxlY3RlZEZpbHRlclRhYiA9PT0gJ2FsbCcgfVwiIChjbGljayk9XCJmaWx0ZXJUYWJsZSgnYWxsJylcIj5cclxuICAgIDxoMz57eyBwZW5kaW5nRGV0YWlscz8uYWxsU3RvcmVzIHx8IDAgfX08L2gzPlxyXG4gICAgPHA+VG90YWwgc3RvcmVzPC9wPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJjb2wgZmlsdGVyLXRhYlwiIFtuZ0NsYXNzXT1cInsgc2VsZWN0ZWQ6IHNlbGVjdGVkRmlsdGVyVGFiID09PSAnbGF5b3V0JyB9XCIgKGNsaWNrKT1cImZpbHRlclRhYmxlKCdsYXlvdXQnKVwiPlxyXG4gICAgPGgzPnt7IHBlbmRpbmdEZXRhaWxzPy5sYXlvdXRDb21wbGV0ZSA/PyAwIH19PC9oMz5cclxuICAgIDxwPkxheW91dCB2ZXJpZmljYXRpb24gY29tcGxldGVkPC9wPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJjb2wgZmlsdGVyLXRhYlwiIFtuZ0NsYXNzXT1cInsgc2VsZWN0ZWQ6IHNlbGVjdGVkRmlsdGVyVGFiID09PSAnZml4dHVyZScgfVwiIChjbGljayk9XCJmaWx0ZXJUYWJsZSgnZml4dHVyZScpXCI+XHJcbiAgICA8aDM+e3sgcGVuZGluZ0RldGFpbHM/LmZpeHR1cmVQZW5kaW5nID8/IDAgfX08L2gzPlxyXG4gICAgPHA+Rml4dHVyZSB2ZXJpZmljYXRpb24gcGVuZGluZzwvcD5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiY29sIGZpbHRlci10YWJcIiBbbmdDbGFzc109XCJ7IHNlbGVjdGVkOiBzZWxlY3RlZEZpbHRlclRhYiA9PT0gJ3ZtJyB9XCIgKGNsaWNrKT1cImZpbHRlclRhYmxlKCd2bScpXCI+XHJcbiAgICA8aDM+e3sgcGVuZGluZ0RldGFpbHM/LmZpeHR1cmVQZW5kaW5nID8/IDAgfX08L2gzPlxyXG4gICAgPHA+Vk0gdmVyaWZpY2F0aW9uIHBlbmRpbmc8L3A+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cImNvbnRlbnQtd3JhcHBlclwiPlxyXG4gIDxkaXY+XHJcbiAgICA8IS0tIE1hbmFnZSBQbGFub2dyYW0gdmlldyBoZWFkZXIgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtYi01XCI+XHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPGg0PkFsbCBQbGFub2dyYW1zPC9oND5cclxuICAgICAgICA8c3Bhbj57eyB0b3RhbEl0ZW1zIH19IC0gVG90YWwgUmVjb3Jkczwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmVcIj5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVGVybVwiXHJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwib25TZWFyY2goKVwiXHJcbiAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAzcmVtOyBwYWRkaW5nLXJpZ2h0OiAzcmVtXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBuYW1lPVwic2VhcmNoXCJcclxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIlxyXG4gICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlYXJjaC1pY29uXCI+XHJcbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAxOCAxOFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjhcIiBjeT1cIjhcIiByPVwiNlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiAvPlxyXG4gICAgICAgICAgICAgIDxsaW5lIHgxPVwiMTNcIiB5MT1cIjEzXCIgeDI9XCIxNlwiIHkyPVwiMTZcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJzZWFyY2hUZXJtXCIgdHlwZT1cImJ1dHRvblwiIGFyaWEtbGFiZWw9XCJDbGVhclwiIChjbGljayk9XCJzZWFyY2hUZXJtID0gJyc7IG9uU2VhcmNoKClcIiBjbGFzcz1cImNsZWFyLXNlYXJjaFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHdpZHRoPVwiNjRweFwiIGhlaWdodD1cIjY0cHhcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgPGcgaWQ9XCJTVkdSZXBvX2JnQ2FycmllclwiIHN0cm9rZS13aWR0aD1cIjBcIj48L2c+XHJcbiAgICAgICAgICAgICAgPGcgaWQ9XCJTVkdSZXBvX3RyYWNlckNhcnJpZXJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L2c+XHJcbiAgICAgICAgICAgICAgPGcgaWQ9XCJTVkdSZXBvX2ljb25DYXJyaWVyXCI+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTkgOUwxNSAxNVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNSA5TDkgMTVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGVcclxuICAgICAgICAgICAgICAgICAgY3g9XCIxMlwiXHJcbiAgICAgICAgICAgICAgICAgIGN5PVwiMTJcIlxyXG4gICAgICAgICAgICAgICAgICByPVwiOVwiXHJcbiAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIlxyXG4gICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgID48L2NpcmNsZT5cclxuICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9wZW5CdWxrVXBsb2FkTW9kYWwoKVwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHRleHQtbm93cmFwXCI+XHJcbiAgICAgICAgICA8c3ZnIGNsYXNzPVwibWUtMlwiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICBkPVwiTTE3LjUgMTIuNVYxNS44MzMzQzE3LjUgMTYuMjc1NCAxNy4zMjQ0IDE2LjY5OTMgMTcuMDExOCAxNy4wMTE4QzE2LjY5OTMgMTcuMzI0NCAxNi4yNzU0IDE3LjUgMTUuODMzMyAxNy41SDQuMTY2NjdDMy43MjQ2NCAxNy41IDMuMzAwNzIgMTcuMzI0NCAyLjk4ODE2IDE3LjAxMThDMi42NzU1OSAxNi42OTkzIDIuNSAxNi4yNzU0IDIuNSAxNS44MzMzVjEyLjVNMTQuMTY2NyA2LjY2NjY3TDEwIDIuNU0xMCAyLjVMNS44MzMzMyA2LjY2NjY3TTEwIDIuNVYxMi41XCJcclxuICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxyXG4gICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgQnVsayBVcGxvYWRcclxuICAgICAgICA8L2J1dHRvbj4gLS0+XHJcblxyXG4gICAgICAgIDwhLS0gPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgZC1saW5lLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHRleHQtbm93cmFwXCI+XHJcbiAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICBkPVwiTTUgMTBIMTVNMi41IDVIMTcuNU03LjUgMTVIMTIuNVwiXHJcbiAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiXHJcbiAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICBGaWx0ZXJcclxuICAgICAgICA8L2J1dHRvbj4gLS0+XHJcblxyXG4gICAgICAgICA8cGxhbm8tZmlsdGVyIFtjbGllbnRJZF09XCJjbGllbnRJZFwiIFtkYXRhXT1cImZpbHRlck9iamVjdFwiIChhcHBseUZpbHRlcnMpPVwiYXBwbHlGaWx0ZXJzKCRldmVudClcIlxyXG4gICAgICAgICAgKHJlc2V0RmlsdGVycyk9XCJhcHBseUZpbHRlcnMoJGV2ZW50KVwiPjwvcGxhbm8tZmlsdGVyPlxyXG5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25FeHBvcnQoKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuLW91dGxpbmUgYnRuIGFsaWduLWl0ZW1zLWVuZCB0ZXh0LW5vd3JhcCBpbnZoZWFkZXJcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXBsYW5vZ3JhbXNMaXN0Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICA8IS0tIEV4cG9ydCBJY29uIC0tPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcclxuICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNMTcuNSAxMi41VjE1LjgzMzNDMTcuNSAxNi4yNzU0IDE3LjMyNDQgMTYuNjk5MyAxNy4wMTE4IDE3LjAxMThDMTYuNjk5MyAxNy4zMjQ0IDE2LjI3NTQgMTcuNSAxNS44MzMzIDE3LjVINC4xNjY2N0MzLjcyNDY0IDE3LjUgMy4zMDA3MiAxNy4zMjQ0IDIuOTg4MTYgMTcuMDExOEMyLjY3NTU5IDE2LjY5OTMgMi41IDE2LjI3NTQgMi41IDE1LjgzMzNWMTIuNU0xNC4xNjY3IDYuNjY2NjdMMTAgMi41TTEwIDIuNUw1LjgzMzMzIDYuNjY2NjdNMTAgMi41VjEyLjVcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTJcIj48L3NwYW4+IEV4cG9ydFxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25DbGlja0NyZWF0ZVBsYW5vZ3JhbSgpXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgZC1pbmxpbmUtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgIGQ9XCJNMTAuMDAwMSA0LjE2NjYzVjE1LjgzMzNNNC4xNjY3NSA5Ljk5OTk2SDE1LjgzMzRcIlxyXG4gICAgICAgICAgICAgIHN0cm9rZT1cIndoaXRlXCJcclxuICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiB0ZXh0LXdoaXRlXCI+Q3JlYXRlIDwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPCEtLSA8bGliLWZpbHRlcnMgW2RhdGFPYmplY3RdPVwiZmlsdGVyT2JqZWN0XCIgKGFwcGxpZWRGaWx0ZXJzKT1cImFwcGx5RmlsdGVycygkZXZlbnQpXCI+PC9saWItZmlsdGVycz4gLS0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cImlzUGFnZUxvYWRpbmdcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBsb2FkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiXHJcbiAgICAgICpuZ0lmPVwiIWlzUGFnZUxvYWRpbmcgJiYgcGxhbm9ncmFtc0xpc3QubGVuZ3RoID09PSAwXCJcclxuICAgID5cclxuICAgICAgPGltZyBjbGFzcz1cImltZy1zcmNcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGExLnN2Z1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGFtYWludGV4dCBtdC0zXCI+Tm8gZGF0YSBmb3VuZDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhc3VidGV4dFwiPlRoZXJlIGlzIG5vIHJlc3VsdCBmb3IgbWFuYWdlIHBsYW5vZ3JhbSB0YWJsZTwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBNYW5hZ2UgUGxhbm9ncmFtIGxpc3QgdmlldyAtLT5cclxuICAgIDxzZWN0aW9uIGlkPVwibGlzdC12aWV3XCIgKm5nSWY9XCIhaXNQYWdlTG9hZGluZyAmJiBwbGFub2dyYW1zTGlzdC5sZW5ndGggIT09IDBcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICA8dGFibGUgY2xhc3M9XCJ3LTEwMCB0YWJsZSBib3R0b20tYm9yZGVyIHRleHQtbm93cmFwXCI+XHJcbiAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICA8dGg+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwib25Tb3J0VGFibGUoJ3N0b3JlTmFtZScpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICBTdG9yZSBOYW1lXHJcbiAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBtcy0xIG10LTFcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgY29sb3I6IHNvcnRlZENvbHVtbiA9PT0gJ3N0b3JlTmFtZScgPyAnIzAwOUJGMycgOiAnJyB9XCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzb3J0T3JkZXIgPT09IDEgJiYgc29ydGVkQ29sdW1uID09PSAnc3RvcmVOYW1lJyA/ICdmYS1hcnJvdy11cCcgOiAnZmEtYXJyb3ctZG93bidcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICA8dGg+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwib25Tb3J0VGFibGUoJ2xheW91dE5hbWUnKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgTGF5b3V0IE5hbWVcclxuICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIG1zLTEgbXQtMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogc29ydGVkQ29sdW1uID09PSAnbGF5b3V0TmFtZScgPyAnIzAwOUJGMycgOiAnJyB9XCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzb3J0T3JkZXIgPT09IDEgJiYgc29ydGVkQ29sdW1uID09PSAnbGF5b3V0TmFtZScgPyAnZmEtYXJyb3ctdXAnIDogJ2ZhLWFycm93LWRvd24nXCJcclxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoPlxyXG4gICAgICAgICAgICAgICAgQ291bnRyeVxyXG4gICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoPlxyXG4gICAgICAgICAgICAgICAgQ2l0eVxyXG4gICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIFBsYW5vIENvbXBsZXRpb24gJVxyXG4gICAgICAgICAgICAgICAgICA8IS0tIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBtcy0xIG10LTFcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgY29sb3I6IHNvcnRlZENvbHVtbiA9PT0gJ3BsYW5vUHJvZ3Jlc3MnID8gJyMwMDlCRjMnIDogJycgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic29ydE9yZGVyID09PSAxICYmIHNvcnRlZENvbHVtbiA9PT0gJ3BsYW5vUHJvZ3Jlc3MnID8gJ2ZhLWFycm93LXVwJyA6ICdmYS1hcnJvdy1kb3duJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgPjwvaT4gLS0+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCIlIG9mIG92ZXJhbGwgcGxhbm9ncmFtIGNvbXBsZXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXMtMlwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzg0NF8xNzUzOClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4wMDA2NSAxMC42NjYzVjcuOTk5NjdNOC4wMDA2NSA1LjMzMzAxSDguMDA3MzJNMTQuNjY3MyA3Ljk5OTY3QzE0LjY2NzMgMTEuNjgxNiAxMS42ODI2IDE0LjY2NjMgOC4wMDA2NSAxNC42NjYzQzQuMzE4NzUgMTQuNjY2MyAxLjMzMzk4IDExLjY4MTYgMS4zMzM5OCA3Ljk5OTY3QzEuMzMzOTggNC4zMTc3OCA0LjMxODc1IDEuMzMzMDEgOC4wMDA2NSAxLjMzMzAxQzExLjY4MjYgMS4zMzMwMSAxNC42NjczIDQuMzE3NzggMTQuNjY3MyA3Ljk5OTY3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF84NDRfMTc1MzhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgIDx0aD5cclxuICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJvblNvcnRUYWJsZSgnbGF5b3V0Q291bnQnKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgTGF5b3V0XHJcbiAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBtcy0xIG10LTFcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgY29sb3I6IHNvcnRlZENvbHVtbiA9PT0gJ2xheW91dENvdW50JyA/ICcjMDA5QkYzJyA6ICcnIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNvcnRPcmRlciA9PT0gMSAmJiBzb3J0ZWRDb2x1bW4gPT09ICdsYXlvdXRDb3VudCcgPyAnZmEtYXJyb3ctdXAnIDogJ2ZhLWFycm93LWRvd24nXCJcclxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJvblNvcnRUYWJsZSgnZml4dHVyZUNvdW50JylcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIE5vIG9mIEZpeHR1cmVzXHJcbiAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBtcy0xIG10LTFcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgY29sb3I6IHNvcnRlZENvbHVtbiA9PT0gJ2ZpeHR1cmVDb3VudCcgPyAnIzAwOUJGMycgOiAnJyB9XCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzb3J0T3JkZXIgPT09IDEgJiYgc29ydGVkQ29sdW1uID09PSAnZml4dHVyZUNvdW50JyA/ICdmYS1hcnJvdy11cCcgOiAnZmEtYXJyb3ctZG93bidcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKGNsaWNrKT1cIm9uU29ydFRhYmxlKCd2bUNvdW50JylcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIE5vIG9mIFZNc1xyXG4gICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgbXMtMSBtdC0xXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGNvbG9yOiBzb3J0ZWRDb2x1bW4gPT09ICd2bUNvdW50JyA/ICcjMDA5QkYzJyA6ICcnIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNvcnRPcmRlciA9PT0gMSAmJiBzb3J0ZWRDb2x1bW4gPT09ICd2bUNvdW50JyA/ICdmYS1hcnJvdy11cCcgOiAnZmEtYXJyb3ctZG93bidcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN0b29sdGlwPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+VG90YWwgc3RvcmUgY2FwYWNpdHk8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPiBDb21iaW5pbmcgcHJvZHVjdCBjYXBhY2l0eSBvZiBhbGwgZml4dHVyZXMgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwib25Tb3J0VGFibGUoJ2ZpeHR1cmVDYXBhY2l0eScpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIFN0b3JlIENhcGFjaXR5XHJcbiAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBtcy0xIG10LTFcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgY29sb3I6IHNvcnRlZENvbHVtbiA9PT0gJ2ZpeHR1cmVDYXBhY2l0eScgPyAnIzAwOUJGMycgOiAnJyB9XCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzb3J0T3JkZXIgPT09IDEgJiYgc29ydGVkQ29sdW1uID09PSAnZml4dHVyZUNhcGFjaXR5JyA/ICdmYS1hcnJvdy11cCcgOiAnZmEtYXJyb3ctZG93bidcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ2JUb29sdGlwXT1cInRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXMtMlwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzg0NF8xNzUzOClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4wMDA2NSAxMC42NjYzVjcuOTk5NjdNOC4wMDA2NSA1LjMzMzAxSDguMDA3MzJNMTQuNjY3MyA3Ljk5OTY3QzE0LjY2NzMgMTEuNjgxNiAxMS42ODI2IDE0LjY2NjMgOC4wMDA2NSAxNC42NjYzQzQuMzE4NzUgMTQuNjY2MyAxLjMzMzk4IDExLjY4MTYgMS4zMzM5OCA3Ljk5OTY3QzEuMzMzOTggNC4zMTc3OCA0LjMxODc1IDEuMzMzMDEgOC4wMDA2NSAxLjMzMzAxQzExLjY4MjYgMS4zMzMwMSAxNC42NjczIDQuMzE3NzggMTQuNjY3MyA3Ljk5OTY3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF84NDRfMTc1MzhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgIDx0aCBjbGFzcz1cInRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwib25Tb3J0VGFibGUoJ2xhc3RVcGRhdGUnKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgTGFzdCB1cGRhdGVcclxuICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIG1zLTEgbXQtMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogc29ydGVkQ29sdW1uID09PSAnbGFzdFVwZGF0ZScgPyAnIzAwOUJGMycgOiAnJyB9XCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzb3J0T3JkZXIgPT09IDEgJiYgc29ydGVkQ29sdW1uID09PSAnbGFzdFVwZGF0ZScgPyAnZmEtYXJyb3ctdXAnIDogJ2ZhLWFycm93LWRvd24nXCJcclxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgUGxhbm9ncmFtIFN0YXR1c1xyXG4gICAgICAgICAgICAgICAgICA8IS0tIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBtcy0xIG10LTFcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgY29sb3I6IHNvcnRlZENvbHVtbiA9PT0gJ3BsYW5vZ3JhbVN0YXR1cycgPyAnIzAwOUJGMycgOiAnJyB9XCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzb3J0T3JkZXIgPT09IDEgJiYgc29ydGVkQ29sdW1uID09PSAncGxhbm9ncmFtU3RhdHVzJyA/ICdmYS1hcnJvdy11cCcgOiAnZmEtYXJyb3ctZG93bidcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgID48L2k+IC0tPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoPjwvdGg+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHBsYW5vIG9mIHBsYW5vZ3JhbXNMaXN0XCI+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cInJlZGlyZWN0U3RvcmUocGxhbm8uc3RvcmVJZClcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyIHRleHQtZGVjb3JhdGlvbi11bmRlcmxpbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBwbGFuby5zdG9yZU5hbWUgfX08L2FcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9tYW5hZ2UvcGxhbm9ncmFtL21hbmFnZS1wbGFub2dyYW0nXVwiXHJcbiAgICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJ7IHBsYW5vSWQ6IHBsYW5vLl9pZCwgZmxvb3JJZDogcGxhbm8/LmxheW91dERldGFpbHM/LlswXT8uaWQgfVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgcGxhbm8ubGF5b3V0TmFtZVxyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAge3twbGFubz8uY291bnRyeX19XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICB7e3BsYW5vPy5jaXR5fX1cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzc1wiIHN0eWxlPVwiaGVpZ2h0OiA0cHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmVzcy1iYXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbMjUsIDUwXS5pbmNsdWRlcyhnZXRQcm9ncmVzc1ZhbHVlKHBsYW5vKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ2JnLXdhcm5pbmcnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdiZy1zdWNjZXNzJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwicHJvZ3Jlc3NiYXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGVdPVwiZ2V0UHJvZ3Jlc3NWYWx1ZShwbGFubykgPyAnd2lkdGg6ICcgKyBnZXRQcm9ncmVzc1ZhbHVlKHBsYW5vKSArICclJyA6ICd3aWR0aDoyNSUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS12YWx1ZW5vd109XCJnZXRQcm9ncmVzc1ZhbHVlKHBsYW5vKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtdmFsdWVtaW49XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS12YWx1ZW1heD1cIjEwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj57eyBnZXRQcm9ncmVzc1ZhbHVlKHBsYW5vKSB9fSU8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTggcHJvZ3Jlc3NcIiBzdHlsZT1cImhlaWdodDogNHB4OyBib3JkZXItcmFkaXVzOiA0cHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmVzcy1iYXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInByb2dyZXNzYmFyXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDI1JVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLXZhbHVlbm93PVwiMjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS12YWx1ZW1pbj1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS12YWx1ZW1heD1cIjEwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgcGxhbm8ucGxhbm9Db21wbGV0aW9uIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBwbGFubz8ubGF5b3V0Q291bnQgPT09IDEgPyAxIDogdXBkYXRlRmxvb3IocGxhbm8pIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE0XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE0IDE0XCJcclxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIkRpZG7igJl0IHJlc3BvbmQgd2l0aGluIHRoZSBkdWUgZGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93QnJlYWNoKHBsYW5vLCAnbGF5b3V0JylcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMi4zMzM5OCA4Ljc1MTNDMi4zMzM5OCA4Ljc1MTMgMi45MTczMiA4LjE2Nzk3IDQuNjY3MzIgOC4xNjc5N0M2LjQxNzMyIDguMTY3OTcgNy41ODM5OCA5LjMzNDYzIDkuMzMzOTggOS4zMzQ2M0MxMS4wODQgOS4zMzQ2MyAxMS42NjczIDguNzUxMyAxMS42NjczIDguNzUxM1YxLjc1MTNDMTEuNjY3MyAxLjc1MTMgMTEuMDg0IDIuMzM0NjQgOS4zMzM5OCAyLjMzNDY0QzcuNTgzOTggMi4zMzQ2NCA2LjQxNzMyIDEuMTY3OTcgNC42NjczMiAxLjE2Nzk3QzIuOTE3MzIgMS4xNjc5NyAyLjMzMzk4IDEuNzUxMyAyLjMzMzk4IDEuNzUxM1Y4Ljc1MTNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjRkVDRENBXCJcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICBkPVwiTTIuMzMzOTggOC43NTEzQzIuMzMzOTggOC43NTEzIDIuOTE3MzIgOC4xNjc5NyA0LjY2NzMyIDguMTY3OTdDNi40MTczMiA4LjE2Nzk3IDcuNTgzOTggOS4zMzQ2NCA5LjMzMzk4IDkuMzM0NjRDMTEuMDg0IDkuMzM0NjQgMTEuNjY3MyA4Ljc1MTMgMTEuNjY3MyA4Ljc1MTNWMS43NTEzQzExLjY2NzMgMS43NTEzIDExLjA4NCAyLjMzNDY0IDkuMzMzOTggMi4zMzQ2NEM3LjU4Mzk4IDIuMzM0NjQgNi40MTczMiAxLjE2Nzk3IDQuNjY3MzIgMS4xNjc5N0MyLjkxNzMyIDEuMTY3OTcgMi4zMzM5OCAxLjc1MTMgMi4zMzM5OCAxLjc1MTNWOC43NTEzWk0yLjMzMzk4IDguNzUxM1YxMi44MzQ2XCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiNEOTJEMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5kaWNhdG9yIHNob3J0XCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJnZXRUYXNrU3RhdHVzKHBsYW5vLCAnbGF5b3V0JykgfHwgJ3Rhc2tBc3NpZ25lZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXNob3dCcmVhY2gocGxhbm8sICdsYXlvdXQnKVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDggN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJ7eyBnZXRUYXNrVG9vbHRpcChwbGFubywgJ2xheW91dCcpIHx8ICdUYXNrIEFzc2lnbmVkJyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuOTcyODQgMC4zMTA5NjdMMi43OTYxNyA0LjM0MThMMS42ODc4NCAzLjE1NzYzQzEuNDgzNjcgMi45NjUxMyAxLjE2Mjg0IDIuOTUzNDcgMC45Mjk1MDUgMy4xMTY4QzAuNzAyMDA1IDMuMjg1OTcgMC42Mzc4MzggMy41ODM0NyAwLjc3NzgzOCAzLjgyMjYzTDIuMDkwMzQgNS45NTc2M0MyLjIxODY3IDYuMTU1OTcgMi40NDAzNCA2LjI3ODQ3IDIuNjkxMTcgNi4yNzg0N0MyLjkzMDM0IDYuMjc4NDcgMy4xNTc4NCA2LjE1NTk3IDMuMjg2MTcgNS45NTc2M0MzLjQ5NjE3IDUuNjgzNDcgNy41MDM2NyAwLjkwNTk2NyA3LjUwMzY3IDAuOTA1OTY3QzguMDI4NjcgMC4zNjkzIDcuMzkyODQgLTAuMTAzMiA2Ljk3Mjg0IDAuMzA1MTM0VjAuMzEwOTY3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNjY3MDg1XCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IHBsYW5vLmZpeHR1cmVDb3VudCB9fVxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE0XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNCAxNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJEaWRu4oCZdCByZXNwb25kIHdpdGhpbiB0aGUgZHVlIGRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd0JyZWFjaChwbGFubywgJ2ZpeHR1cmUnKVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgZD1cIk0yLjMzMzk4IDguNzUxM0MyLjMzMzk4IDguNzUxMyAyLjkxNzMyIDguMTY3OTcgNC42NjczMiA4LjE2Nzk3QzYuNDE3MzIgOC4xNjc5NyA3LjU4Mzk4IDkuMzM0NjMgOS4zMzM5OCA5LjMzNDYzQzExLjA4NCA5LjMzNDYzIDExLjY2NzMgOC43NTEzIDExLjY2NzMgOC43NTEzVjEuNzUxM0MxMS42NjczIDEuNzUxMyAxMS4wODQgMi4zMzQ2NCA5LjMzMzk4IDIuMzM0NjRDNy41ODM5OCAyLjMzNDY0IDYuNDE3MzIgMS4xNjc5NyA0LjY2NzMyIDEuMTY3OTdDMi45MTczMiAxLjE2Nzk3IDIuMzMzOTggMS43NTEzIDIuMzMzOTggMS43NTEzVjguNzUxM1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNGRUNEQ0FcIlxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMi4zMzM5OCA4Ljc1MTNDMi4zMzM5OCA4Ljc1MTMgMi45MTczMiA4LjE2Nzk3IDQuNjY3MzIgOC4xNjc5N0M2LjQxNzMyIDguMTY3OTcgNy41ODM5OCA5LjMzNDY0IDkuMzMzOTggOS4zMzQ2NEMxMS4wODQgOS4zMzQ2NCAxMS42NjczIDguNzUxMyAxMS42NjczIDguNzUxM1YxLjc1MTNDMTEuNjY3MyAxLjc1MTMgMTEuMDg0IDIuMzM0NjQgOS4zMzM5OCAyLjMzNDY0QzcuNTgzOTggMi4zMzQ2NCA2LjQxNzMyIDEuMTY3OTcgNC42NjczMiAxLjE2Nzk3QzIuOTE3MzIgMS4xNjc5NyAyLjMzMzk4IDEuNzUxMyAyLjMzMzk4IDEuNzUxM1Y4Ljc1MTNaTTIuMzMzOTggOC43NTEzVjEyLjgzNDZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiI0Q5MkQyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbmRpY2F0b3Igc2hvcnRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImdldFRhc2tTdGF0dXMocGxhbm8sICdmaXh0dXJlJykgfHwgJ3Rhc2tBc3NpZ25lZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXNob3dCcmVhY2gocGxhbm8sICdmaXh0dXJlJylcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCI4XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCA4IDdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwie3sgZ2V0VGFza1Rvb2x0aXAocGxhbm8sICdmaXh0dXJlJykgfHwgJ1Rhc2sgQXNzaWduZWQnIH19XCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi45NzI4NCAwLjMxMDk2N0wyLjc5NjE3IDQuMzQxOEwxLjY4Nzg0IDMuMTU3NjNDMS40ODM2NyAyLjk2NTEzIDEuMTYyODQgMi45NTM0NyAwLjkyOTUwNSAzLjExNjhDMC43MDIwMDUgMy4yODU5NyAwLjYzNzgzOCAzLjU4MzQ3IDAuNzc3ODM4IDMuODIyNjNMMi4wOTAzNCA1Ljk1NzYzQzIuMjE4NjcgNi4xNTU5NyAyLjQ0MDM0IDYuMjc4NDcgMi42OTExNyA2LjI3ODQ3QzIuOTMwMzQgNi4yNzg0NyAzLjE1Nzg0IDYuMTU1OTcgMy4yODYxNyA1Ljk1NzYzQzMuNDk2MTcgNS42ODM0NyA3LjUwMzY3IDAuOTA1OTY3IDcuNTAzNjcgMC45MDU5NjdDOC4wMjg2NyAwLjM2OTMgNy4zOTI4NCAtMC4xMDMyIDYuOTcyODQgMC4zMDUxMzRWMC4zMTA5NjdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM2NjcwODVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgcGxhbm8udm1Db3VudCB9fVxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE0XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNCAxNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJEaWRu4oCZdCByZXNwb25kIHdpdGhpbiB0aGUgZHVlIGRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd0JyZWFjaChwbGFubywgJ2ZpeHR1cmUnKVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgZD1cIk0yLjMzMzk4IDguNzUxM0MyLjMzMzk4IDguNzUxMyAyLjkxNzMyIDguMTY3OTcgNC42NjczMiA4LjE2Nzk3QzYuNDE3MzIgOC4xNjc5NyA3LjU4Mzk4IDkuMzM0NjMgOS4zMzM5OCA5LjMzNDYzQzExLjA4NCA5LjMzNDYzIDExLjY2NzMgOC43NTEzIDExLjY2NzMgOC43NTEzVjEuNzUxM0MxMS42NjczIDEuNzUxMyAxMS4wODQgMi4zMzQ2NCA5LjMzMzk4IDIuMzM0NjRDNy41ODM5OCAyLjMzNDY0IDYuNDE3MzIgMS4xNjc5NyA0LjY2NzMyIDEuMTY3OTdDMi45MTczMiAxLjE2Nzk3IDIuMzMzOTggMS43NTEzIDIuMzMzOTggMS43NTEzVjguNzUxM1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNGRUNEQ0FcIlxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMi4zMzM5OCA4Ljc1MTNDMi4zMzM5OCA4Ljc1MTMgMi45MTczMiA4LjE2Nzk3IDQuNjY3MzIgOC4xNjc5N0M2LjQxNzMyIDguMTY3OTcgNy41ODM5OCA5LjMzNDY0IDkuMzMzOTggOS4zMzQ2NEMxMS4wODQgOS4zMzQ2NCAxMS42NjczIDguNzUxMyAxMS42NjczIDguNzUxM1YxLjc1MTNDMTEuNjY3MyAxLjc1MTMgMTEuMDg0IDIuMzM0NjQgOS4zMzM5OCAyLjMzNDY0QzcuNTgzOTggMi4zMzQ2NCA2LjQxNzMyIDEuMTY3OTcgNC42NjczMiAxLjE2Nzk3QzIuOTE3MzIgMS4xNjc5NyAyLjMzMzk4IDEuNzUxMyAyLjMzMzk4IDEuNzUxM1Y4Ljc1MTNaTTIuMzMzOTggOC43NTEzVjEyLjgzNDZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiI0Q5MkQyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbmRpY2F0b3Igc2hvcnRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImdldFRhc2tTdGF0dXMocGxhbm8sICd2bScpIHx8ICd0YXNrQXNzaWduZWQnXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFzaG93QnJlYWNoKHBsYW5vLCAnZml4dHVyZScpXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiOFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCI3XCJcclxuICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgOCA3XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cInt7IGdldFRhc2tUb29sdGlwKHBsYW5vLCAndm0nKSB8fCAnVGFzayBBc3NpZ25lZCcgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02Ljk3Mjg0IDAuMzEwOTY3TDIuNzk2MTcgNC4zNDE4TDEuNjg3ODQgMy4xNTc2M0MxLjQ4MzY3IDIuOTY1MTMgMS4xNjI4NCAyLjk1MzQ3IDAuOTI5NTA1IDMuMTE2OEMwLjcwMjAwNSAzLjI4NTk3IDAuNjM3ODM4IDMuNTgzNDcgMC43Nzc4MzggMy44MjI2M0wyLjA5MDM0IDUuOTU3NjNDMi4yMTg2NyA2LjE1NTk3IDIuNDQwMzQgNi4yNzg0NyAyLjY5MTE3IDYuMjc4NDdDMi45MzAzNCA2LjI3ODQ3IDMuMTU3ODQgNi4xNTU5NyAzLjI4NjE3IDUuOTU3NjNDMy40OTYxNyA1LjY4MzQ3IDcuNTAzNjcgMC45MDU5NjcgNy41MDM2NyAwLjkwNTk2N0M4LjAyODY3IDAuMzY5MyA3LjM5Mjg0IC0wLjEwMzIgNi45NzI4NCAwLjMwNTEzNFYwLjMxMDk2N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzY2NzA4NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBwbGFubz8uZml4dHVyZUNhcGFjaXR5ID8/IDAgfX1cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW25nYlRvb2x0aXBdPVwicGxhbm8/Lmxhc3RVcGRhdGUgfCBkYXRlIDogJ21lZGl1bSdcIj5cclxuICAgICAgICAgICAgICAgICAge3sgcGxhbm8/Lmxhc3RVcGRhdGUgfCBkYXRlIH19XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhZGdlXCIgW25nQ2xhc3NdPVwiZ2V0U3RhdHVzQmFkZ2UocGxhbm8pXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7IGdldFN0YXR1cyhwbGFubykgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPCEtLSA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyMVwiIGhlaWdodD1cIjIyXCIgdmlld0JveD1cIjAgMCAyMSAyMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTdfNzE0MjUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyLjE5NzEgMTguNzE0NEMxMi4wNDY0IDE4Ljk3NDIgMTEuODMwMiAxOS4xODk4IDExLjU2OTkgMTkuMzM5N0MxMS4zMDk3IDE5LjQ4OTYgMTEuMDE0NiAxOS41Njg1IDEwLjcxNDMgMTkuNTY4NUMxMC40MTQgMTkuNTY4NSAxMC4xMTg5IDE5LjQ4OTYgOS44NTg2NiAxOS4zMzk3QzkuNTk4NDIgMTkuMTg5OCA5LjM4MjEyIDE4Ljk3NDIgOS4yMzE0MyAxOC43MTQ0TTE1Ljg1NzEgNy41NzE1N0MxNS44NTcxIDYuMjA3NiAxNS4zMTUzIDQuODk5NDkgMTQuMzUwOCAzLjkzNTAyQzEzLjM4NjQgMi45NzA1NSAxMi4wNzgzIDIuNDI4NzEgMTAuNzE0MyAyLjQyODcxQzkuMzUwMzIgMi40Mjg3MSA4LjA0MjIxIDIuOTcwNTUgNy4wNzc3NCAzLjkzNTAyQzYuMTEzMjYgNC44OTk0OSA1LjU3MTQzIDYuMjA3NiA1LjU3MTQzIDcuNTcxNTdDNS41NzE0MyAxMy41NzE2IDMgMTUuMjg1OSAzIDE1LjI4NTlIMTguNDI4NkMxOC40Mjg2IDE1LjI4NTkgMTUuODU3MSAxMy41NzE2IDE1Ljg1NzEgNy41NzE1N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yLjA4NTc0IDguMDQ4MDVDMS41NTYxMSA4LjA0ODA1IDEuMTIxNDYgNy42MTc2OCAxLjE3MDgyIDcuMDkwMzZDMS4yODYgNS44NTk4OSAxLjYyNyA0LjcxMzIyIDIuMTkzODMgMy42NTAzNEMyLjc1MjI5IDIuNjAzMTggMy40NjA2MiAxLjY5NjA1IDQuMzE4ODIgMC45Mjg5MzlDNC43MTA1MiAwLjU3ODgyMyA1LjMwOTY1IDAuNjczNTAxIDUuNjIwNjIgMS4wOTY5NUM1LjkzMTc1IDEuNTIwNjIgNS44MzUyNSAyLjExMjEgNS40NTIyNSAyLjQ3MjEyQzQuODI4NzUgMy4wNTgxOSA0LjMwOTg3IDMuNzQyMzkgMy44OTU1OSA0LjUyNDcxQzMuNDczMDMgNS4zMjI2NyAzLjIwNzc2IDYuMTc4MzMgMy4wOTk4IDcuMDkxNjlDMy4wMzc2NiA3LjYxNzQ3IDIuNjE1MTggOC4wNDgwNSAyLjA4NTc0IDguMDQ4MDVaTTE5LjM0MzEgOC4wNDgwNUMxOC44MTM0IDguMDQ4MDUgMTguMzkwOCA3LjYxNzEgMTguMzI4NyA3LjA5MTA1QzE4LjIyMDkgNi4xNzc5MyAxNy45NTU2IDUuMzIyNDggMTcuNTMyNiA0LjUyNDcxQzE3LjExOCAzLjc0MjU4IDE2LjU5OTMgMy4wNTg1MiAxNS45NzY1IDIuNDcyNTRDMTUuNTkzNyAyLjExMjI2IDE1LjQ5NzMgMS41MjA3IDE1LjgwODUgMS4wOTY5NkMxNi4xMTk2IDAuNjczNDMzIDE2LjcxODcgMC41Nzg1NTEgMTcuMTEwNyAwLjkyODU3MUMxNy45NjkzIDEuNjk1NCAxOC42Nzc4IDIuNjAyNjYgMTkuMjM2MyAzLjY1MDM0QzE5LjgwMzIgNC43MTM4MSAyMC4xNDM4IDUuODYwNjggMjAuMjU4MSA3LjA5MDk1QzIwLjMwNzEgNy42MTgwOSAxOS44NzI1IDguMDQ4MDUgMTkuMzQzMSA4LjA0ODA1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNjY3MDg1XCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTdfNzE0MjVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMC41NzE0XCIgaGVpZ2h0PVwiMjAuNTcxNFwiIGZpbGw9XCJ3aGl0ZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwLjQyODcxMSAwLjcxNDM1NSlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjIzXCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDIzIDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xMzlfMTEyNjg1KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMi40ODQzIDIxLjQzMDJDMTIuMzMzNiAyMS42OSAxMi4xMTczIDIxLjkwNTcgMTEuODU3IDIyLjA1NTZDMTEuNTk2OCAyMi4yMDU1IDExLjMwMTcgMjIuMjg0NCAxMS4wMDE0IDIyLjI4NDRDMTAuNzAxMSAyMi4yODQ0IDEwLjQwNiAyMi4yMDU1IDEwLjE0NTggMjIuMDU1NkM5Ljg4NTUzIDIxLjkwNTcgOS42NjkyMyAyMS42OSA5LjUxODU0IDIxLjQzMDJNMTYuMTQ0MyAxMC4yODc0QzE2LjE0NDMgOC45MjM0MiAxNS42MDI0IDcuNjE1MzEgMTQuNjM3OSA2LjY1MDg0QzEzLjY3MzUgNS42ODYzNyAxMi4zNjU0IDUuMTQ0NTMgMTEuMDAxNCA1LjE0NDUzQzkuNjM3NDIgNS4xNDQ1MyA4LjMyOTMyIDUuNjg2MzcgNy4zNjQ4NSA2LjY1MDg0QzYuNDAwMzcgNy42MTUzMSA1Ljg1ODU0IDguOTIzNDIgNS44NTg1NCAxMC4yODc0QzUuODU4NTQgMTYuMjg3NCAzLjI4NzExIDE4LjAwMTcgMy4yODcxMSAxOC4wMDE3SDE4LjcxNTdDMTguNzE1NyAxOC4wMDE3IDE2LjE0NDMgMTYuMjg3NCAxNi4xNDQzIDEwLjI4NzRaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMi4zNzE4NyAxMC43NjM0QzEuODQyMjQgMTAuNzYzNCAxLjQwNzU5IDEwLjMzMyAxLjQ1Njk1IDkuODA1NjlDMS41NzIxMyA4LjU3NTIyIDEuOTEzMTMgNy40Mjg1NSAyLjQ3OTk3IDYuMzY1NjdDMy4wMzg0MiA1LjMxODUxIDMuNzQ2NzUgNC40MTEzOCA0LjYwNDk2IDMuNjQ0MjdDNC45OTY2NSAzLjI5NDE1IDUuNTk1NzggMy4zODg4MyA1LjkwNjc1IDMuODEyMjhDNi4yMTc4OCA0LjIzNTk1IDYuMTIxMzggNC44Mjc0NCA1LjczODM4IDUuMTg3NDVDNS4xMTQ4OSA1Ljc3MzUyIDQuNTk2IDYuNDU3NzIgNC4xODE3MiA3LjI0MDA0QzMuNzU5MTYgOC4wMzggMy40OTM5IDguODkzNjYgMy4zODU5NCA5LjgwNzAyQzMuMzIzNzkgMTAuMzMyOCAyLjkwMTMxIDEwLjc2MzQgMi4zNzE4NyAxMC43NjM0Wk0xOS42MjkyIDEwLjc2MzRDMTkuMDk5NSAxMC43NjM0IDE4LjY3NjkgMTAuMzMyNCAxOC42MTQ4IDkuODA2MzhDMTguNTA3IDguODkzMjYgMTguMjQxNyA4LjAzNzgxIDE3LjgxODggNy4yNDAwNEMxNy40MDQxIDYuNDU3OTEgMTYuODg1NCA1Ljc3Mzg1IDE2LjI2MjcgNS4xODc4N0MxNS44Nzk4IDQuODI3NiAxNS43ODM1IDQuMjM2MDMgMTYuMDk0NyAzLjgxMjI5QzE2LjQwNTcgMy4zODg3NiAxNy4wMDQ5IDMuMjkzODggMTcuMzk2OCAzLjY0MzlDMTguMjU1NCA0LjQxMDczIDE4Ljk2NCA1LjMxNzk5IDE5LjUyMjQgNi4zNjU2N0MyMC4wODkzIDcuNDI5MTQgMjAuNDI5OSA4LjU3NjAxIDIwLjU0NDIgOS44MDYyOEMyMC41OTMyIDEwLjMzMzQgMjAuMTU4NiAxMC43NjM0IDE5LjYyOTIgMTAuNzYzNFpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzY2NzA4NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNyAxQzE5Ljc2MTQgMSAyMiAzLjIzODU4IDIyIDZDMjIgOC43NjE0MiAxOS43NjE0IDExIDE3IDExQzE0LjIzODYgMTEgMTIgOC43NjE0MiAxMiA2QzEyIDMuMjM4NTggMTQuMjM4NiAxIDE3IDFaXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjRkYwMDAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIndoaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xMzlfMTEyNjg1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjAuNTcxNFwiIGhlaWdodD1cIjIwLjU3MTRcIiBmaWxsPVwid2hpdGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMC43MTQ4NDQgMy40Mjk2OSlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbGluayBwLTBcIiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1icy10b2dnbGU9XCJkcm9wZG93blwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMSAxMkMxMSAxMi41NTIzIDExLjQ0NzcgMTMgMTIgMTNDMTIuNTUyMyAxMyAxMyAxMi41NTIzIDEzIDEyQzEzIDExLjQ0NzcgMTIuNTUyMyAxMSAxMiAxMUMxMS40NDc3IDExIDExIDExLjQ0NzcgMTEgMTJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMSAxOUMxMSAxOS41NTIzIDExLjQ0NzcgMjAgMTIgMjBDMTIuNTUyMyAyMCAxMyAxOS41NTIzIDEzIDE5QzEzIDE4LjQ0NzcgMTIuNTUyMyAxOCAxMiAxOEMxMS40NDc3IDE4IDExIDE4LjQ0NzcgMTEgMTlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMSA1QzExIDUuNTUyMjggMTEuNDQ3NyA2IDEyIDZDMTIuNTUyMyA2IDEzIDUuNTUyMjggMTMgNUMxMyA0LjQ0NzcyIDEyLjU1MjMgNCAxMiA0QzExLjQ0NzcgNCAxMSA0LjQ0NzcyIDExIDVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJkcm9wZG93bi1tZW51XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtIGN1cnNvci1wb2ludGVyXCI+RWRpdDwvYT48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGNsYXNzPVwiZHJvcGRvd24taXRlbSBjdXJzb3ItcG9pbnRlclwiPkR1cGxpY2F0ZTwvYT48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGNsYXNzPVwiZHJvcGRvd24taXRlbSBjdXJzb3ItcG9pbnRlciB0ZXh0LWRhbmdlclwiPkRlbGV0ZTwvYT48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC90ZD4gLS0+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvbWFuYWdlL3BsYW5vZ3JhbS9tYW5hZ2UtcGxhbm9ncmFtJ11cIlxyXG4gICAgICAgICAgICAgICAgICBbcXVlcnlQYXJhbXNdPVwieyBwbGFub0lkOiBwbGFuby5faWQsIGZsb29ySWQ6IHBsYW5vPy5sYXlvdXREZXRhaWxzPy5pZCB9XCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjNcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIzIDI0XCJcclxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnZXRTdWJtaXQocGxhbm8pXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEwLjEzOTUgNi44NTcyOEg0LjEzOTQ2QzMuNjg0OCA2Ljg1NzI4IDMuMjQ4NzYgNy4wMzc5IDIuOTI3MjcgNy4zNTkzOUMyLjYwNTc4IDcuNjgwODggMi40MjUxNyA4LjExNjkxIDIuNDI1MTcgOC41NzE1N1YyMC41NzE2QzIuNDI1MTcgMjEuMDI2MiAyLjYwNTc4IDIxLjQ2MjMgMi45MjcyNyAyMS43ODM4QzMuMjQ4NzYgMjIuMTA1MiAzLjY4NDggMjIuMjg1OSA0LjEzOTQ2IDIyLjI4NTlIMTYuMTM5NUMxNi41OTQxIDIyLjI4NTkgMTcuMDMwMSAyMi4xMDUyIDE3LjM1MTYgMjEuNzgzOEMxNy42NzMxIDIxLjQ2MjMgMTcuODUzNyAyMS4wMjYyIDE3Ljg1MzcgMjAuNTcxNlYxNC41NzE2TTE2LjU2OCA1LjU3MTU3QzE2LjkwOSA1LjIzMDU4IDE3LjM3MTUgNS4wMzkwMSAxNy44NTM3IDUuMDM5MDFDMTguMzM2IDUuMDM5MDEgMTguNzk4NSA1LjIzMDU4IDE5LjEzOTUgNS41NzE1N0MxOS40ODA1IDUuOTEyNTYgMTkuNjcyIDYuMzc1MDUgMTkuNjcyIDYuODU3MjhDMTkuNjcyIDcuMzM5NTIgMTkuNDgwNSA3LjgwMjAxIDE5LjEzOTUgOC4xNDNMMTAuOTk2NiAxNi4yODU5TDcuNTY4MDMgMTcuMTQzTDguNDI1MTcgMTMuNzE0NEwxNi41NjggNS41NzE1N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTcgMUMxOS43NjE0IDEgMjIgMy4yMzg1OCAyMiA2QzIyIDguNzYxNDIgMTkuNzYxNCAxMSAxNyAxMUMxNC4yMzg2IDExIDEyIDguNzYxNDIgMTIgNkMxMiAzLjIzODU4IDE0LjIzODYgMSAxNyAxWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiI0ZGMDAwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIyXCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIxIDIyXCJcclxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhZ2V0U3VibWl0KHBsYW5vKVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzg0NF8xODMxOClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOS44NTY4NiA0LjE0MjQ5SDMuODU2ODZDMy40MDIyMSA0LjE0MjQ5IDIuOTY2MTcgNC4zMjMxMSAyLjY0NDY4IDQuNjQ0NkMyLjMyMzE5IDQuOTY2MDkgMi4xNDI1OCA1LjQwMjEyIDIuMTQyNTggNS44NTY3OFYxNy44NTY4QzIuMTQyNTggMTguMzExNCAyLjMyMzE5IDE4Ljc0NzUgMi42NDQ2OCAxOS4wNjlDMi45NjYxNyAxOS4zOTA1IDMuNDAyMjEgMTkuNTcxMSAzLjg1Njg2IDE5LjU3MTFIMTUuODU2OUMxNi4zMTE1IDE5LjU3MTEgMTYuNzQ3NiAxOS4zOTA1IDE3LjA2OSAxOS4wNjlDMTcuMzkwNSAxOC43NDc1IDE3LjU3MTIgMTguMzExNCAxNy41NzEyIDE3Ljg1NjhWMTEuODU2OE0xNi4yODU0IDIuODU2NzhDMTYuNjI2NCAyLjUxNTc5IDE3LjA4ODkgMi4zMjQyMiAxNy41NzEyIDIuMzI0MjJDMTguMDUzNCAyLjMyNDIyIDE4LjUxNTkgMi41MTU3OSAxOC44NTY5IDIuODU2NzhDMTkuMTk3OSAzLjE5Nzc3IDE5LjM4OTQgMy42NjAyNiAxOS4zODk0IDQuMTQyNDlDMTkuMzg5NCA0LjYyNDczIDE5LjE5NzkgNS4wODcyMiAxOC44NTY5IDUuNDI4MjFMMTAuNzE0IDEzLjU3MTFMNy4yODU0NCAxNC40MjgyTDguMTQyNTggMTAuOTk5NkwxNi4yODU0IDIuODU2NzhaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF84NDRfMTgzMThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMC41NzE0XCIgaGVpZ2h0PVwiMjAuNTcxNFwiIGZpbGw9XCJ3aGl0ZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwLjQyNzczNCAwLjcxMzg2NylcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgIDwvdGFibGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG5cclxuICAgIDwhLS0gTWFuYWdlIFBsYW5vZ3JhbSBncmlkIHZpZXcgLS0+XHJcbiAgICA8IS0tIDxuZy10ZW1wbGF0ZSAjZ3JpZFZpZXc+XHJcbiAgICAgIDxzZWN0aW9uIGlkPVwiZ3JpZC12aWV3XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBneC02IGd5LTRcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiICpuZ0Zvcj1cImxldCBmaXh0dXJlIG9mIGZpeHR1cmVUZW1wbGF0ZXNMaXN0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1hY3Rpb24gZHJvcGRvd25cIj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbGlnaHQgcHgtNCBweS0zXCIgdHlwZT1cImJ1dHRvblwiIGRhdGEtYnMtdG9nZ2xlPVwiZHJvcGRvd25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXRocmVlLWRvdHMtdmVydGljYWxcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJkcm9wZG93bi1tZW51XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGNsYXNzPVwiZHJvcGRvd24taXRlbSBjdXJzb3ItcG9pbnRlclwiPkVkaXQ8L2E+PC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtIGN1cnNvci1wb2ludGVyXCI+RHVwbGljYXRlPC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGNsYXNzPVwiZHJvcGRvd24taXRlbSBjdXJzb3ItcG9pbnRlciB0ZXh0LWRhbmdlclwiPkRlbGV0ZTwvYT48L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxoMz57eyBmaXh0dXJlLm5hbWUgfX08L2gzPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhZGdlXCIgW25nQ2xhc3NdPVwiZml4dHVyZS5zdGF0dXNcIj57eyBmaXh0dXJlLnN0YXR1cyB8IHRpdGxlY2FzZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHN1YkJyYW5kIG9mIGZpeHR1cmUuc3ViQnJhbmQ7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpICE9IDBcIiBjbGFzcz1cIm1lLTIgY2FyZC10YWdsaW5lXCI+JiM4MjI2Ozwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhZGdlXCI+e3sgc3ViQnJhbmQgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L3NlY3Rpb24+XHJcbiAgICA8L25nLXRlbXBsYXRlPiAtLT5cclxuXHJcbiAgICA8IS0tIFBhZ2luYXRpb24gLS0+XHJcbiAgICA8bGliLXBhZ2luYXRpb25cclxuICAgICAgW2l0ZW1zUGVyUGFnZV09XCJsaW1pdFwiXHJcbiAgICAgIFtjdXJyZW50UGFnZV09XCJvZmZzZXRcIlxyXG4gICAgICBbdG90YWxJdGVtc109XCJ0b3RhbEl0ZW1zXCJcclxuICAgICAgW3BhZ2luYXRpb25TaXplc109XCJwYWdpbmF0aW9uU2l6ZXNcIlxyXG4gICAgICBbcGFnZVNpemVdPVwicGFnaW5hdGlvblNpemUoKVwiXHJcbiAgICAgIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgKHBhZ2VTaXplQ2hhbmdlKT1cIm9uUGFnZVNpemVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICpuZ0lmPVwiIWlzUGFnZUxvYWRpbmcgJiYgcGxhbm9ncmFtc0xpc3QubGVuZ3RoICE9PSAwXCJcclxuICAgID5cclxuICAgIDwvbGliLXBhZ2luYXRpb24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
561
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZpY2F0aW9uLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi9jb21wb25lbnRzL21hbmFnZS1wbGFuby92ZXJpZmljYXRpb24tdGFibGUvdmVyaWZpY2F0aW9uLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi9jb21wb25lbnRzL21hbmFnZS1wbGFuby92ZXJpZmljYXRpb24tdGFibGUvdmVyaWZpY2F0aW9uLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRzdELE9BQU8sRUFDTCxZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixPQUFPLEVBRVAsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBSWQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDL0csT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDakcsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixtQkFBbUIsR0FDcEIsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7OztBQU8zQyxNQUFNLE9BQU8sK0JBQStCO0lBa0hoQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUF0SFYsUUFBUSxDQUFTO0lBRWpCLGNBQWMsQ0FBTTtJQUNwQixjQUFjLEdBQWdCLEVBQUUsQ0FBQztJQUVqQyxpQkFBaUIsR0FBVyxLQUFLLENBQUM7SUFFbEMsWUFBWSxHQUFXLEVBQUUsQ0FBQztJQUMxQixTQUFTLEdBQVcsQ0FBQyxDQUFDO0lBRXRCLFVBQVUsR0FBVyxFQUFFLENBQUM7SUFFeEIsS0FBSyxHQUFXLEVBQUUs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QUMsVUFBVTtZQUM1QixNQUFNLEVBQUUsSUFBSTtZQUNaLHVCQUF1QjtTQUN4QixDQUFDO1FBRUYsSUFBSSxDQUFDLG1CQUFtQjthQUNyQixrQkFBa0IsQ0FBQyxPQUFPLENBQUM7YUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksR0FBRyxFQUFFO29CQUNQLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxDQUFDO2lCQUMvRDtZQUNILENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDYixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMxQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzt3R0ExbUJVLCtCQUErQjs0RkFBL0IsK0JBQStCLG9FQzFCNUMsc3R4Q0E0dUJBOzs0RkRsdEJhLCtCQUErQjtrQkFMM0MsU0FBUzsrQkFDRSw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUm91dGVyLCBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXBcIjtcclxuaW1wb3J0IHtcclxuICBkZWJvdW5jZVRpbWUsXHJcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXHJcbiAgZmlsdGVyLFxyXG4gIFN1YmplY3QsXHJcbiAgU3Vic2NyaXB0aW9uLFxyXG4gIHRha2VVbnRpbCxcclxufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UsIFBhZ2VJbmZvU2VydmljZSB9IGZyb20gXCJ0YW5nby1hcHAtdWktZ2xvYmFsXCI7XHJcbmltcG9ydCB7IFBsYW5vTGlzdCB9IGZyb20gXCIuLi8uLi8uLi9pbnRlcmZhY2VzL3BsYW5vZ3JhbS5pbnRlcmZhY2VcIjtcclxuaW1wb3J0IHsgU3RvcmVCdWlsZGVyU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy9zdG9yZS1idWlsZGVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQnVsa1VwbG9hZFBsYW5vZ3JhbUNvbXBvbmVudCB9IGZyb20gXCIuLi9wb3B1cHMvYnVsay11cGxvYWQtcGxhbm9ncmFtL2J1bGstdXBsb2FkLXBsYW5vZ3JhbS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ3JlYXRlUGxhbm9ncmFtQ29tcG9uZW50IH0gZnJvbSBcIi4uL3BvcHVwcy9jcmVhdGUtcGxhbm9ncmFtL2NyZWF0ZS1wbGFub2dyYW0uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7XHJcbiAgZ2V0UXVlcnlQYXJhbU51bWJlcixcclxuICBnZXRRdWVyeVBhcmFtU3RyaW5nLFxyXG59IGZyb20gXCIuLi8uLi8uLi9mdW5jdGlvbnMvcGxhbm8uZnVuY3Rpb25cIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi1wbGFuby12ZXJpZmljYXRpb24tdGFibGVcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3ZlcmlmaWNhdGlvbi10YWJsZS5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsOiBcIi4vdmVyaWZpY2F0aW9uLXRhYmxlLmNvbXBvbmVudC5zY3NzXCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQbGFub1ZlcmlmaWNhdGlvblRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGNsaWVudElkOiBzdHJpbmc7XHJcblxyXG4gIHBlbmRpbmdEZXRhaWxzOiBhbnk7XHJcbiAgcGxhbm9ncmFtc0xpc3Q6IFBsYW5vTGlzdFtdID0gW107XHJcblxyXG4gIHNlbGVjdGVkRmlsdGVyVGFiOiBzdHJpbmcgPSBcImFsbFwiO1xyXG5cclxuICBzb3J0ZWRDb2x1bW46IHN0cmluZyA9IFwiXCI7XHJcbiAgc29ydE9yZGVyOiBudW1iZXIgPSAxO1xyXG5cclxuICBzZWFyY2hUZXJtOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBsaW1pdDogbnVtYmVyID0gMTA7XHJcbiAgb2Zmc2V0OiBudW1iZXIgPSAxO1xyXG4gIHRvdGFsSXRlbXM6IG51bWJlciA9IDA7XHJcbiAgcGFnaW5hdGlvblNpemVzID0gWzEwLCAyMCwgMzBdO1xyXG5cclxuICAvLyBmaWx0ZXJPYmplY3QgPSBbXHJcbiAgLy8gICB7XHJcbiAgLy8gICAgIERlc2NyaXB0aW9uOiBcIkxheW91dFwiLFxyXG4gIC8vICAgICBJc3N1ZXM6IFtcclxuICAvLyAgICAgICB7IHRleHQ6IFwiVGFzayBBc3NpZ25lZFwiLCBpZDogXCJ0YXNrQXNzaWduZWRcIiB9LFxyXG4gIC8vICAgICAgIHsgdGV4dDogXCJSZXZpZXcgUGVuZGluZ1wiLCBpZDogXCJyZXZpZXdQZW5kaW5nXCIgfSxcclxuICAvLyAgICAgICAvLyB7IHRleHQ6IFwiWWV0IFRvIENvbXBsZXRlXCIsIGlkOiBcInlldFRvQ29tcGxldGVcIiB9LFxyXG4gIC8vICAgICAgIHsgdGV4dDogXCJZZXQgVG8gQXNzaWduXCIsIGlkOiBcInlldFRvQXNzaWduXCIgfSxcclxuICAvLyAgICAgICAvLyB7IHRleHQ6IFwiUm9sbCBvdXRcIiwgaWQ6IFwicm9sbG91dFwiIH0sXHJcbiAgLy8gICAgICAgeyB0ZXh0OiBcIkNvbXBsZXRlZFwiLCBpZDogXCJjb21wbGV0ZWRcIiB9LFxyXG4gIC8vICAgICAgIHsgdGV4dDogXCJGbGFnXCIsIGlkOiBcImZsYWdcIiB9LFxyXG4gIC8vICAgICBdLFxyXG4gIC8vICAgfSxcclxuICAvLyAgIHtcclxuICAvLyAgICAgRGVzY3JpcHRpb246IFwiRml4dHVyZVwiLFxyXG4gIC8vICAgICBJc3N1ZXM6IFtcclxuICAvLyAgICAgICB7IHRleHQ6IFwiVGFzayBBc3NpZ25lZFwiLCBpZDogXCJ0YXNrQXNzaWduZWRcIiB9LFxyXG4gIC8vICAgICAgIHsgdGV4dDogXCJSZXZpZXcgUGVuZGluZ1wiLCBpZDogXCJyZXZpZXdQZW5kaW5nXCIgfSxcclxuICAvLyAgICAgICAvLyB7IHRleHQ6IFwiWWV0IFRvIENvbXBsZXRlXCIsIGlkOiBcInlldFRvQ29tcGxldGVcIiB9LFxyXG4gIC8vICAgICAgIHsgdGV4dDogXCJZZXQgVG8gQXNzaWduXCIsIGlkOiBcInlldFRvQXNzaWduXCIgfSxcclxuICAvLyAgICAgICAvLyB7IHRleHQ6IFwiUm9sbCBvdXRcIiwgaWQ6IFwicm9sbG91dFwiIH0sXHJcbiAgLy8gICAgICAgeyB0ZXh0OiBcIkNvbXBsZXRlZFwiLCBpZDogXCJjb21wbGV0ZWRcIiB9LFxyXG4gIC8vICAgICAgIHsgdGV4dDogXCJGbGFnXCIsIGlkOiBcImZsYWdcIiB9LFxyXG4gIC8vICAgICBdLFxyXG4gIC8vICAgfSxcclxuICAvLyAgIHtcclxuICAvLyAgICAgRGVzY3JpcHRpb246IFwiUGxhbm9ncmFtIFN0YXR1c1wiLFxyXG4gIC8vICAgICBJc3N1ZXM6IFtcclxuICAvLyAgICAgICB7IHRleHQ6IFwiSW4tUHJvZ3Jlc3NcIiwgaWQ6IFwiaW5wcm9ncmVzc1wiIH0sXHJcbiAgLy8gICAgICAgeyB0ZXh0OiBcIlJlYWR5IHRvIFB1Ymxpc2hcIiwgaWQ6IFwibm90UHVibGlzaGVkXCIgfSxcclxuICAvLyAgICAgICB7IHRleHQ6IFwiUHVibGlzaGVkXCIsIGlkOiBcInB1Ymxpc2hcIiB9LFxyXG4gIC8vICAgICBdLFxyXG4gIC8vICAgfSxcclxuICAvLyBdO1xyXG5cclxuICBmaWx0ZXJPYmplY3QgPSBbXHJcbiAgICB7XHJcbiAgICAgIHRpdGxlOiBcIkxheW91dFwiLFxyXG4gICAgICB0eXBlOiBcIm11bHRpXCIsXHJcbiAgICAgIGlzT3BlbmVkOiBmYWxzZSxcclxuICAgICAgb3B0aW9uczogW1xyXG4gICAgICAgIHsgbmFtZTogXCJUYXNrIEFzc2lnbmVkXCIsIHZhbHVlOiBcInRhc2tBc3NpZ25lZFwiLCBjaGVja2VkOiBmYWxzZSB9LFxyXG4gICAgICAgIHsgbmFtZTogXCJSZXZpZXcgUGVuZGluZ1wiLCB2YWx1ZTogXCJyZXZpZXdQZW5kaW5nXCIsIGNoZWNrZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgLy8geyBuYW1lOiBcIllldCBUbyBDb21wbGV0ZVwiLCB2YWx1ZTogXCJ5ZXRUb0NvbXBsZXRlXCIgfSxcclxuICAgICAgICB7IG5hbWU6IFwiWWV0IFRvIEFzc2lnblwiLCB2YWx1ZTogXCJ5ZXRUb0Fzc2lnblwiLCBjaGVja2VkOiBmYWxzZSB9LFxyXG4gICAgICAgIC8vIHsgbmFtZTogXCJSb2xsIG91dFwiLCB2YWx1ZTogXCJyb2xsb3V0XCIgfSxcclxuICAgICAgICB7IG5hbWU6IFwiQ29tcGxldGVkXCIsIHZhbHVlOiBcImNvbXBsZXRlZFwiLCBjaGVja2VkOiBmYWxzZSB9LFxyXG4gICAgICAgIHsgbmFtZTogXCJGbGFnXCIsIHZhbHVlOiBcImZsYWdcIiwgY2hlY2tlZDogZmFsc2UgfSxcclxuICAgICAgXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHRpdGxlOiBcIkZpeHR1cmVcIixcclxuICAgICAgdHlwZTogXCJtdWx0aVwiLFxyXG4gICAgICBpc09wZW5lZDogZmFsc2UsXHJcbiAgICAgIG9wdGlvbnM6IFtcclxuICAgICAgICB7IG5hbWU6IFwiVGFzayBBc3NpZ25lZFwiLCB2YWx1ZTogXCJ0YXNrQXNzaWduZWRcIiwgY2hlY2tlZDogZmFsc2UgfSxcclxuICAgICAgICB7IG5hbWU6IFwiUmV2aWV3IFBlbmRpbmdcIiwgdmFsdWU6IFwicmV2aWV3UGVuZGluZ1wiLCBjaGVja2VkOiBmYWxzZSB9LFxyXG4gICAgICAgIC8vIHsgbmFtZTogXCJZZXQgVG8gQ29tcGxldGVcIiwgdmFsdWU6IFwieWV0VG9Db21wbGV0ZVwiIH0sXHJcbiAgICAgICAgeyBuYW1lOiBcIllldCBUbyBBc3NpZ25cIiwgdmFsdWU6IFwieWV0VG9Bc3NpZ25cIiwgY2hlY2tlZDogZmFsc2UgfSxcclxuICAgICAgICAvLyB7IG5hbWU6IFwiUm9sbCBvdXRcIiwgdmFsdWU6IFwicm9sbG91dFwiIH0sXHJcbiAgICAgICAgeyBuYW1lOiBcIkNvbXBsZXRlZFwiLCB2YWx1ZTogXCJjb21wbGV0ZWRcIiwgY2hlY2tlZDogZmFsc2UgfSxcclxuICAgICAgICB7IG5hbWU6IFwiRmxhZ1wiLCB2YWx1ZTogXCJmbGFnXCIsIGNoZWNrZWQ6IGZhbHNlIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0aXRsZTogXCJQbGFub2dyYW0gU3RhdHVzXCIsXHJcbiAgICAgIHR5cGU6IFwibXVsdGlcIixcclxuICAgICAgaXNPcGVuZWQ6IGZhbHNlLFxyXG4gICAgICBvcHRpb25zOiBbXHJcbiAgICAgICAgeyBuYW1lOiBcIlRhc2sgQXNzaWduZWRcIiwgdmFsdWU6IFwidGFza0Fzc2lnbmVkXCIsIGNoZWNrZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgeyBuYW1lOiBcIlJldmlldyBQZW5kaW5nXCIsIHZhbHVlOiBcInJldmlld1BlbmRpbmdcIiwgY2hlY2tlZDogZmFsc2UgfSxcclxuICAgICAgICB7IG5hbWU6IFwiWWV0IFRvIEFzc2lnblwiLCB2YWx1ZTogXCJ5ZXRUb0Fzc2lnblwiLCBjaGVja2VkOiBmYWxzZSB9LFxyXG4gICAgICAgIHsgbmFtZTogXCJSZWFkeSB0byBQdWJsaXNoXCIsIHZhbHVlOiBcIm5vdFB1Ymxpc2hlZFwiLCBjaGVja2VkOiBmYWxzZSB9LFxyXG4gICAgICAgIHsgbmFtZTogXCJQdWJsaXNoZWRcIiwgdmFsdWU6IFwicHVibGlzaFwiLCBjaGVja2VkOiBmYWxzZSB9LFxyXG4gICAgICBdLFxyXG4gICAgfSxcclxuICBdO1xyXG5cclxuICBhcHBsaWVkRmlsdGVyczogYW55ID0ge1xyXG4gICAgY291bnRyeTogW10sXHJcbiAgICBjaXR5OiBbXSxcclxuICAgIGxheW91dDogW10sXHJcbiAgICBmaXh0dXJlOiBbXSxcclxuICAgIHRhc2tQZW5kaW5nOiBcImFsbFwiLFxyXG4gICAgc3RhdHVzOiBbXSxcclxuICB9O1xyXG5cclxuICBpc0ZpbHRlckFwcGxpZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgaXNQYWdlTG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgaXNFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIHBsYW5vU3ViPzogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbmdiTW9kYWw6IE5nYk1vZGFsLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBzdG9yZUJ1aWxkZXJTZXJ2aWNlOiBTdG9yZUJ1aWxkZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwYWdlSW5mbzogUGFnZUluZm9TZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0UGFnZURhdGEoKTtcclxuXHJcbiAgICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgLy8gU3Vic2NyaXB0aW9uIHdpbGwgYmUgY2FuY2VsbGVkIG9uIGNvbXBvbmVudCBkZXN0cm95LlxyXG4gICAgICAgIGRlYm91bmNlVGltZSgyMDApLCAvLyBUbyBhdm9pZCBpbW1lZGlhdGUgZnJlcXVlbnQgY2FsbHMuXHJcbiAgICAgICAgZmlsdGVyKChkYXRhKSA9PiAhIWRhdGEpLCAvLyBGaWx0ZXJpbmcgbnVsbC91bmRlZmluZWQuXHJcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSAvLyBFbWl0dGluZyBvbmx5IGRpZmZlcmVudCB2YWx1ZXMuIChJZ25vcmVzIHNhbWUgY2xpZW50SWQpLlxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xpZW50SWQgPSBkYXRhLmNsaWVudDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCBkYXRhID0gSlNPTi5wYXJzZShcclxuICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIGFzIHN0cmluZ1xyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLmNsaWVudElkID0gZGF0YT8uY2xpZW50O1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMucm91dGUucXVlcnlQYXJhbU1hcFxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHBhcmFtcykgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VhcmNoVGVybSA9IGdldFF1ZXJ5UGFyYW1TdHJpbmcoe1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgICAgICAgICAga2V5OiBcInNlYXJjaFwiLFxyXG4gICAgICAgICAgICAgICAgZmFsbGJhY2s6IFwiXCIsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5pc0ZpbHRlckFwcGxpZWQgPSB0aGlzLnNlYXJjaFRlcm0gPyB0cnVlIDogZmFsc2U7XHJcblxyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJUYWIgPSBnZXRRdWVyeVBhcmFtU3RyaW5nKHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyxcclxuICAgICAgICAgICAgICAgIGtleTogXCJ0YWJcIixcclxuICAgICAgICAgICAgICAgIGZhbGxiYWNrOiBcImFsbFwiLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIHRoaXMuYXBwbGllZEZpbHRlcnMudGFza1BlbmRpbmcgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlclRhYiA9PSBcInZtXCJcclxuICAgICAgICAgICAgICAgICAgPyBcImZpeHR1cmVcIlxyXG4gICAgICAgICAgICAgICAgICA6IHRoaXMuc2VsZWN0ZWRGaWx0ZXJUYWI7XHJcblxyXG4gICAgICAgICAgICAgIHRoaXMubGltaXQgPSBnZXRRdWVyeVBhcmFtTnVtYmVyKHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyxcclxuICAgICAgICAgICAgICAgIGtleTogXCJsaW1pdFwiLFxyXG4gICAgICAgICAgICAgICAgZmFsbGJhY2s6IDEwLFxyXG4gICAgICAgICAgICAgICAgbWluOiAxLFxyXG4gICAgICAgICAgICAgICAgbWF4OiAzMCxcclxuICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5vZmZzZXQgPSBnZXRRdWVyeVBhcmFtTnVtYmVyKHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyxcclxuICAgICAgICAgICAgICAgIGtleTogXCJvZmZzZXRcIixcclxuICAgICAgICAgICAgICAgIGZhbGxiYWNrOiAxLFxyXG4gICAgICAgICAgICAgICAgbWluOiAxLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLmdldFBsYW5vVGFibGVMaXN0KCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0UGFnZURhdGEoKSB7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldFRpdGxlKFwiTWFuYWdlIFBsYW5vZ3JhbVwiKTtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0QnJlYWRjcnVtYnMoW1xyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6IFwiUGxhbm9ncmFtXCIsXHJcbiAgICAgICAgcGF0aDogXCIvbWFuYWdlL3BsYW5vZ3JhbS9tYW5hZ2UtcGxhbm9ncmFtc1wiLFxyXG4gICAgICAgIGlzQWN0aXZlOiBmYWxzZSxcclxuICAgICAgICBpc1NlcGFyYXRvcjogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogXCJcIixcclxuICAgICAgICBwYXRoOiBcIlwiLFxyXG4gICAgICAgIGlzQWN0aXZlOiBmYWxzZSxcclxuICAgICAgICBpc1NlcGFyYXRvcjogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgIF0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGxhbm9UYWJsZUxpc3QoKSB7XHJcbiAgICB0aGlzLnBsYW5vU3ViPy51bnN1YnNjcmliZSgpOyAvLyBDYW5jZWwgcHJldmlvdXMgcmVxdWVzdFxyXG5cclxuICAgIHRoaXMuaXNQYWdlTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnBsYW5vZ3JhbXNMaXN0ID0gW107XHJcbiAgICBsZXQgcGF5bG9hZCA9IHtcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SWQsXHJcbiAgICAgIGxpbWl0OiB0aGlzLmxpbWl0LFxyXG4gICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxyXG4gICAgICBzb3J0Q29sdW1uTmFtZTogdGhpcy5zb3J0ZWRDb2x1bW4sXHJcbiAgICAgIHNvcnRCeTogdGhpcy5zb3J0T3JkZXIsXHJcbiAgICAgIGZpbHRlcjogdGhpcy5hcHBsaWVkRmlsdGVycyxcclxuICAgICAgc2VhcmNoVmFsdWU6IHRoaXMuc2VhcmNoVGVybSxcclxuICAgICAgLy8gZXhwb3J0OiBmYWxzZSxcclxuICAgICAgLy8gZW1wdHlEb3dubG9hZDogZmFsc2VcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5wbGFub1N1YiA9IHRoaXMuc3RvcmVCdWlsZGVyU2VydmljZVxyXG4gICAgICAuZ2V0UGxhbm9MaXN0KHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcz8uY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy50b3RhbEl0ZW1zID0gcmVzPy5kYXRhPy5jb3VudDtcclxuICAgICAgICAgICAgdGhpcy5wbGFub2dyYW1zTGlzdCA9IHJlcz8uZGF0YT8uZGF0YSA/PyBbXTtcclxuICAgICAgICAgICAgdGhpcy5wZW5kaW5nRGV0YWlscyA9IHJlcz8uZGF0YT8ucGVuZGluZ0RldGFpbHM/LlswXSB8fCBbXTtcclxuICAgICAgICAgICAgaWYgKHRoaXMudG90YWxJdGVtcyA8IDEwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZXMgPSBbdGhpcy50b3RhbEl0ZW1zXTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplcyA9IFsxMCwgMjAsIDMwXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5pc1BhZ2VMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pc1BhZ2VMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcblxyXG4gICAgdGhpcy50b3RhbEl0ZW1zID0gdGhpcy5wbGFub2dyYW1zTGlzdC5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBvcGVuQnVsa1VwbG9hZE1vZGFsKCkge1xyXG4gICAgY29uc3QgbW9kZWxSZWYgPSB0aGlzLm5nYk1vZGFsLm9wZW4oQnVsa1VwbG9hZFBsYW5vZ3JhbUNvbXBvbmVudCk7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrQ3JlYXRlUGxhbm9ncmFtKCkge1xyXG4gICAgY29uc3QgbW9kZWxSZWYgPSB0aGlzLm5nYk1vZGFsLm9wZW4oQ3JlYXRlUGxhbm9ncmFtQ29tcG9uZW50LCB7XHJcbiAgICAgIHNpemU6IFwibWRcIixcclxuICAgICAgd2luZG93Q2xhc3M6IFwiY3JlYXRlLXBsYW5vZ3JhbS1tb2RhbFwiLFxyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgIH0pO1xyXG5cclxuICAgIG1vZGVsUmVmLmNvbXBvbmVudEluc3RhbmNlLmNsaWVudElkID0gdGhpcy5jbGllbnRJZDtcclxuICAgIG1vZGVsUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi9tYW5hZ2UvcGxhbm9ncmFtL21hbmFnZS1wbGFub2dyYW1cIl0sIHtcclxuICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7IHBsYW5vSWQ6IHJlc3VsdD8ucGxhbm9JZCwgZmxvb3JJZDogcmVzdWx0Py5mbG9vcklkIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25TZWFyY2goKSB7XHJcbiAgICB0aGlzLnNvcnRlZENvbHVtbiA9IFwiXCI7XHJcbiAgICB0aGlzLnNvcnRPcmRlciA9IDE7XHJcbiAgICB0aGlzLm9mZnNldCA9IDE7XHJcbiAgICB0aGlzLmxpbWl0ID0gMTA7XHJcblxyXG4gICAgdGhpcy5pc0ZpbHRlckFwcGxpZWQgPSB0aGlzLnNlYXJjaFRlcm0gPyB0cnVlIDogZmFsc2U7XHJcbiAgICB0aGlzLnVwZGF0ZVF1ZXJ5UGFyYW1zKCk7XHJcbiAgfVxyXG5cclxuICBvblNvcnRUYWJsZShjb2x1bW46IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuc29ydGVkQ29sdW1uID09PSBjb2x1bW4pIHtcclxuICAgICAgdGhpcy5zb3J0T3JkZXIgPSB0aGlzLnNvcnRPcmRlciA9PT0gMSA/IC0xIDogMTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc29ydGVkQ29sdW1uID0gY29sdW1uO1xyXG4gICAgICB0aGlzLnNvcnRPcmRlciA9IDE7XHJcbiAgICB9XHJcbiAgICB0aGlzLm9mZnNldCA9IDE7XHJcbiAgICB0aGlzLmxpbWl0ID0gMTA7XHJcbiAgICB0aGlzLmdldFBsYW5vVGFibGVMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJUYWJsZShkYXRhOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkRmlsdGVyVGFiICE9PSBkYXRhKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJUYWIgPSBkYXRhO1xyXG4gICAgICB0aGlzLmFwcGxpZWRGaWx0ZXJzLnRhc2tQZW5kaW5nID0gdGhpcy5zZWxlY3RlZEZpbHRlclRhYjtcclxuICAgICAgdGhpcy5vZmZzZXQgPSAxO1xyXG4gICAgICB0aGlzLmxpbWl0ID0gMTA7XHJcbiAgICAgIHRoaXMuc2VhcmNoVGVybSA9IFwiXCI7XHJcbiAgICAgIHRoaXMudXBkYXRlUXVlcnlQYXJhbXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFwcGx5RmlsdGVycyhldmVudDogYW55KSB7XHJcbiAgICBldmVudC5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICAvLyBpZiAoZWxlLnRpdGxlID09IFwiUGxhbm9ncmFtIFN0YXR1c1wiKSB7XHJcbiAgICAgIC8vICAgZWxlLnRpdGxlID0gXCJzdGF0dXNcIjtcclxuICAgICAgLy8gfVxyXG4gICAgICBsZXQga2V5ID0gZWxlLnRpdGxlLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIGlmKGtleSA9PT0gJ3N0b3JlIGNhdGVnb3J5Jyl7XHJcbiAgICAgICAgdGhpcy5hcHBsaWVkRmlsdGVyc1sncGxhbm9TdHJhdGVneSddID0gZWxlLnNlbGVjdGVkO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLmFwcGxpZWRGaWx0ZXJzW2VsZS50aXRsZS50b0xvd2VyQ2FzZSgpXSA9IGVsZS5zZWxlY3RlZDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBcclxuICAgIGxldCB0YXNrID0gdGhpcy5zZWxlY3RlZEZpbHRlclRhYjtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkRmlsdGVyVGFiID09IFwidm1cIikge1xyXG4gICAgICB0YXNrID0gXCJmaXh0dXJlXCI7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5hcHBsaWVkRmlsdGVyc1tcInBsYW5vZ3JhbSBzdGF0dXNcIl0/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmFwcGxpZWRGaWx0ZXJzW1wiZml4dHVyZVwiXS5wdXNoKC4uLnRoaXMuYXBwbGllZEZpbHRlcnNbXCJwbGFub2dyYW0gc3RhdHVzXCJdKVxyXG4gICAgICB0aGlzLmFwcGxpZWRGaWx0ZXJzW1wiZml4dHVyZVwiXSA9IFsuLi5uZXcgU2V0KHRoaXMuYXBwbGllZEZpbHRlcnNbXCJmaXh0dXJlXCJdLm1hcCgoZWxlOmFueSkgPT4gZWxlKSldO1xyXG5cclxuICAgIH1cclxuICAgIC8vIHRoaXMuYXBwbGllZEZpbHRlcnNbXCJTdGF0dXNcIl0gPSB0aGlzLmFwcGxpZWRGaWx0ZXJzW1wiUGxhbm9ncmFtIFN0YXR1c1wiXTtcclxuICAgIGRlbGV0ZSB0aGlzLmFwcGxpZWRGaWx0ZXJzW1wicGxhbm9ncmFtIHN0YXR1c1wiXTtcclxuICAgIC8vIGNvbnN0IHR5cGUgPSBldmVudFsxXS5Jc3N1ZXMubWFwKChpOiBhbnkpID0+IGkuaWQpO1xyXG4gICAgLy8gY29uc3Qgc2l6ZSA9IGV2ZW50WzJdLklzc3Vlcy5tYXAoKGk6IGFueSkgPT4gaS5pZCk7XHJcblxyXG4gICAgLy8gdGhpcy5pc0ZpbHRlckFwcGxpZWQgPSBzdGF0dXM7XHJcbiAgICB0aGlzLmFwcGxpZWRGaWx0ZXJzW1widGFza1BlbmRpbmdcIl0gPSB0YXNrO1xyXG4gICAgdGhpcy5vZmZzZXQgPSAxO1xyXG4gICAgdGhpcy5nZXRQbGFub1RhYmxlTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgcGFnaW5hdGlvblNpemUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnRvdGFsSXRlbXMgPCAxMCA/IHRoaXMudG90YWxJdGVtcyA6IHRoaXMubGltaXQ7XHJcbiAgfVxyXG5cclxuICBvblBhZ2VDaGFuZ2UocGFnZU9mZnNldDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm9mZnNldCA9IE51bWJlcihwYWdlT2Zmc2V0KTtcclxuICAgIHRoaXMudXBkYXRlUXVlcnlQYXJhbXMoKTtcclxuICB9XHJcblxyXG4gIG9uUGFnZVNpemVDaGFuZ2UocGFnZVNpemU6IG51bWJlcikge1xyXG4gICAgdGhpcy5vZmZzZXQgPSAxO1xyXG4gICAgdGhpcy5saW1pdCA9IE51bWJlcihwYWdlU2l6ZSk7XHJcbiAgICB0aGlzLnVwZGF0ZVF1ZXJ5UGFyYW1zKCk7XHJcbiAgfVxyXG5cclxuICBwbGFub0Zsb29yRGV0YWlscyhkYXRhOiBhbnkpIHtcclxuICAgIGlmIChkYXRhLmxheW91dERldGFpbHMubGVuZ3RoID4gMSkge1xyXG4gICAgICBsZXQgY29tcGxldGVDb3VudCA9IGRhdGE/LnRhc2tEZXRhaWxzPy5jb21wbGV0ZUxheW91dCB8fCAwO1xyXG4gICAgICByZXR1cm4gY29tcGxldGVDb3VudCArIFwiL1wiICsgZGF0YS5sYXlvdXREZXRhaWxzLmxlbmd0aDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAxO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VGFza1N0YXR1cyhkYXRhOiBhbnksIHR5cGU6IHN0cmluZykge1xyXG4gICAgY29uc3Qgc3RhdHVzTWFwOiBhbnkgPSB7XHJcbiAgICAgIGxheW91dDogZGF0YS50YXNrRGV0YWlscz8ubGF5b3V0U3RhdHVzLFxyXG4gICAgICBmaXh0dXJlOiBkYXRhLnRhc2tEZXRhaWxzPy5maXh0dXJlU3RhdHVzLFxyXG4gICAgICB2bTogZGF0YS50YXNrRGV0YWlscz8uZml4dHVyZVN0YXR1cyxcclxuICAgIH07XHJcbiAgICBpZiAodHlwZSA9PSBcInZtXCIpIHtcclxuICAgICAgdHlwZSA9IFwiZml4dHVyZVwiO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgc3RhdHVzID0gc3RhdHVzTWFwW3R5cGVdO1xyXG4gICAgXHJcbiAgICBjb25zdCB0YXNrRGV0YWlscyA9IGRhdGE/LnBsYW5vVGFzaz8uWzBdPy50YXNrU3RhdHVzPy5maW5kKFxyXG4gICAgICAoZWxlOiBhbnkpID0+IGVsZS50eXBlID09IHR5cGVcclxuICAgICk7XHJcblxyXG4gICAgaWYgKHR5cGUgPT0gXCJmaXh0dXJlXCIpIHtcclxuICAgICAgbGV0IHRhc2tJbmZvID0gZGF0YT8ucGxhbm9UYXNrPy5bMF0/LnRhc2tTdGF0dXM/LmZpbHRlcihcclxuICAgICAgICAoZWxlOiBhbnkpID0+IGVsZS5zdGF0dXMgJiYgZWxlLnR5cGUgPT0gXCJmaXh0dXJlXCJcclxuICAgICAgKTtcclxuICAgICAgaWYgKHN0YXR1cyA9PT0gXCJwZW5kaW5nXCIgJiYgdGFza0luZm8/LnNvbWUoKHRhc2s6YW55KSA9PiB0YXNrLnN0YXR1cyA9PSAnc3VibWl0JykpIHJldHVybiBcInJldmlld1BlbmRpbmdcIjtcclxuICAgICAgaWYgKHRhc2tJbmZvPy5sZW5ndGggIT0gZGF0YS5sYXlvdXRDb3VudCkge1xyXG4gICAgICAgIHJldHVybiBcInlldFRvQXNzaWduXCI7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRhc2tJbmZvLmluY2x1ZGVzKFwib3BlblwiKSB8fCB0YXNrSW5mby5pbmNsdWRlcyhcImlucHJvZ3Jlc3NcIikpIHtcclxuICAgICAgICByZXR1cm4gXCJ0YXNrQXNzaWduZWRcIjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgIXRhc2tEZXRhaWxzIHx8XHJcbiAgICAgICh0YXNrRGV0YWlscy5zdGF0dXMgPT0gXCJzdWJtaXRcIiAmJiBzdGF0dXMgPT09IFwiZGlzYWdyZWVcIilcclxuICAgIClcclxuICAgICAgcmV0dXJuIFwieWV0VG9Bc3NpZ25cIjtcclxuXHJcbiAgICBpZiAodGFza0RldGFpbHMuc3RhdHVzICE9PSBcInN1Ym1pdFwiKSByZXR1cm4gXCJ0YXNrQXNzaWduZWRcIjtcclxuXHJcbiAgICBpZiAoc3RhdHVzID09PSBcImNvbXBsZXRlXCIpIHJldHVybiBcImNvbXBsZXRlZFwiO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGFza1Rvb2x0aXAoZGF0YTogYW55LCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHN0YXR1c01hcDogYW55ID0ge1xyXG4gICAgICBsYXlvdXQ6IGRhdGEudGFza0RldGFpbHM/LmxheW91dFN0YXR1cyxcclxuICAgICAgZml4dHVyZTogZGF0YS50YXNrRGV0YWlscz8uZml4dHVyZVN0YXR1cyxcclxuICAgICAgdm06IGRhdGEudGFza0RldGFpbHM/LmZpeHR1cmVTdGF0dXMsXHJcbiAgICB9O1xyXG4gICAgaWYgKHR5cGUgPT0gXCJ2bVwiKSB7XHJcbiAgICAgIHR5cGUgPSBcImZpeHR1cmVcIjtcclxuICAgIH1cclxuICAgIGNvbnN0IHRhc2tEZXRhaWxzID0gZGF0YT8ucGxhbm9UYXNrPy5bMF0/LnRhc2tTdGF0dXM/LmZpbmQoXHJcbiAgICAgIChlbGU6IGFueSkgPT4gZWxlLnR5cGUgPT0gdHlwZVxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCBzdGF0dXMgPSBzdGF0dXNNYXBbdHlwZV07XHJcblxyXG4gICAgaWYgKHR5cGUgPT0gXCJmaXh0dXJlXCIpIHtcclxuICAgICAgbGV0IHRhc2tJbmZvID0gZGF0YT8ucGxhbm9UYXNrPy5bMF0/LnRhc2tTdGF0dXM/LmZpbHRlcihcclxuICAgICAgICAoZWxlOiBhbnkpID0+IGVsZS5zdGF0dXMgJiYgZWxlLnR5cGUgPT0gXCJmaXh0dXJlXCJcclxuICAgICAgKTtcclxuICAgICAgaWYgKHN0YXR1cyA9PT0gXCJwZW5kaW5nXCIgJiYgdGFza0luZm8/LnNvbWUoKHRhc2s6YW55KSA9PiB0YXNrLnN0YXR1cyA9PSAnc3VibWl0JykpIHJldHVybiBcInJldmlld1BlbmRpbmdcIjtcclxuICAgICAgaWYgKHRhc2tJbmZvPy5sZW5ndGggIT0gZGF0YS5sYXlvdXRDb3VudCkge1xyXG4gICAgICAgIHJldHVybiBcIllldCB0byBBc3NpZ25cIjtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGFza0luZm8uaW5jbHVkZXMoXCJvcGVuXCIpIHx8IHRhc2tJbmZvLmluY2x1ZGVzKFwiaW5wcm9ncmVzc1wiKSkge1xyXG4gICAgICAgIHJldHVybiBcIlRhc2sgQXNzaWduZWRcIjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgIXRhc2tEZXRhaWxzIHx8XHJcbiAgICAgICh0YXNrRGV0YWlscy5zdGF0dXMgPT0gXCJzdWJtaXRcIiAmJiBzdGF0dXMgPT09IFwiZGlzYWdyZWVcIilcclxuICAgIClcclxuICAgICAgcmV0dXJuIFwiWWV0IHRvIEFzc2lnblwiO1xyXG5cclxuICAgIGlmICh0YXNrRGV0YWlscy5zdGF0dXMgIT09IFwic3VibWl0XCIpIHJldHVybiBcIlRhc2sgQXNzaWduZWRcIjtcclxuXHJcbiAgICBpZiAoc3RhdHVzID09PSBcImNvbXBsZXRlXCIpIHJldHVybiBcIkNvbXBsZXRlZFwiO1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJvZ3Jlc3NWYWx1ZShkYXRhOiBhbnkpIHtcclxuICAgIGNvbnN0IHN0YXR1c01hcDogYW55ID0ge1xyXG4gICAgICBsYXlvdXQ6IGRhdGEudGFza0RldGFpbHM/LmxheW91dFN0YXR1cyxcclxuICAgICAgZml4dHVyZTogZGF0YS50YXNrRGV0YWlscz8uZml4dHVyZVN0YXR1cyxcclxuICAgICAgdm06IGRhdGEudGFza0RldGFpbHM/LmZpeHR1cmVTdGF0dXMsXHJcbiAgICB9O1xyXG4gICAgbGV0IHRhc2tEZXRhaWxzID0gZGF0YT8ucGxhbm9UYXNrPy5bMF0/LnRhc2tTdGF0dXM/LmZpbmQoXHJcbiAgICAgIChlbGU6IGFueSkgPT4gZWxlLnR5cGUgPT0gXCJmaXh0dXJlXCJcclxuICAgICk7XHJcblxyXG4gICAgaWYgKHRhc2tEZXRhaWxzKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB0YXNrRGV0YWlscy5zdGF0dXMgPT0gXCJzdWJtaXRcIiAmJlxyXG4gICAgICAgIHN0YXR1c01hcFtcImZpeHR1cmVcIl0gPT0gXCJjb21wbGV0ZVwiXHJcbiAgICAgICkge1xyXG4gICAgICAgIC8vIHRhc2tEZXRhaWxzID0gZGF0YT8ucGxhbm9UYXNrPy5bMF0/LnRhc2tTdGF0dXM/LmZpbmQoXHJcbiAgICAgICAgLy8gICAoZWxlOiBhbnkpID0+IGVsZS50eXBlID09IFwiZml4dHVyZVwiXHJcbiAgICAgICAgLy8gKTtcclxuICAgICAgICAvLyBpZiAoXHJcbiAgICAgICAgLy8gICB0YXNrRGV0YWlscyAmJlxyXG4gICAgICAgIC8vICAgdGFza0RldGFpbHM/LnN0YXR1cyA9PSBcInN1Ym1pdFwiICYmXHJcbiAgICAgICAgLy8gICBzdGF0dXNNYXBbXCJmaXh0dXJlXCJdID09IFwiXCJcclxuICAgICAgICAvLyApIHtcclxuICAgICAgICAvLyAgIHRhc2tEZXRhaWxzID0gZGF0YT8ucGxhbm9UYXNrPy5bMF0/LnRhc2tTdGF0dXM/LmZpbmQoXHJcbiAgICAgICAgLy8gICAgIChlbGU6IGFueSkgPT4gZWxlLnR5cGUgPT0gXCJ2bVwiXHJcbiAgICAgICAgLy8gICApO1xyXG4gICAgICAgIC8vICAgaWYgKFxyXG4gICAgICAgIC8vICAgICB0YXNrRGV0YWlscyAmJlxyXG4gICAgICAgIC8vICAgICB0YXNrRGV0YWlscz8uc3RhdHVzID09IFwic3VibWl0XCIgJiZcclxuICAgICAgICAvLyAgICAgc3RhdHVzTWFwW1widm1cIl0gPT0gXCJcIlxyXG4gICAgICAgIC8vICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIDEwMDtcclxuICAgICAgICAvLyAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gICAgIHJldHVybiA3NTtcclxuICAgICAgICAvLyAgIH1cclxuICAgICAgICAvLyB9IGVsc2Uge1xyXG4gICAgICAgIC8vICAgcmV0dXJuIDUwO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGRhdGEudGFza0RldGFpbHM/LmxheW91dFN0YXR1cyA9PSBcImNvbXBsZXRlXCIpIHJldHVybiA1MDtcclxuXHJcbiAgICByZXR1cm4gMjU7XHJcbiAgfVxyXG5cclxuICBzaG93QnJlYWNoKGRhdGE6IGFueSwgdHlwZTogc3RyaW5nKSB7XHJcbiAgICBsZXQgdGFza0RldGFpbHMgPSBkYXRhPy5wbGFub1Rhc2s/LlswXT8udGFza1N0YXR1cz8uZmluZChcclxuICAgICAgKGVsZTogYW55KSA9PiBlbGUudHlwZSA9PSB0eXBlXHJcbiAgICApO1xyXG4gICAgaWYgKHRhc2tEZXRhaWxzICYmIHRhc2tEZXRhaWxzPy5zdGF0dXMgIT0gXCJzdWJtaXRcIiAmJiB0YXNrRGV0YWlscz8uYnJlYWNoKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RhdHVzKGRhdGE6IGFueSkge1xyXG4gICAgbGV0IHRhc2tEZXRhaWxzID0gZGF0YT8ucGxhbm9UYXNrPy5bMF0/LnRhc2tTdGF0dXM/LmZpbmQoXHJcbiAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5zdGF0dXMgIT0gXCJzdWJtaXRcIlxyXG4gICAgKTtcclxuICAgIGlmIChcclxuICAgICAgIXRhc2tEZXRhaWxzICYmXHJcbiAgICAgIGRhdGEudGFza0RldGFpbHMuZml4dHVyZVN0YXR1cyA9PSBcImNvbXBsZXRlXCIgJiZcclxuICAgICAgZGF0YS50YXNrRGV0YWlscy5sYXlvdXRTdGF0dXMgPT0gXCJjb21wbGV0ZVwiICYmXHJcbiAgICAgIGRhdGEubGF5b3V0U3RhdHVzLmluY2x1ZGVzKGZhbHNlKVxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiBcIlJlYWR5IHRvIFB1Ymxpc2hcIjtcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICF0YXNrRGV0YWlscyAmJlxyXG4gICAgICBkYXRhLnRhc2tEZXRhaWxzLmZpeHR1cmVTdGF0dXMgPT0gXCJjb21wbGV0ZVwiICYmXHJcbiAgICAgIGRhdGEudGFza0RldGFpbHMubGF5b3V0U3RhdHVzID09IFwiY29tcGxldGVcIiAmJlxyXG4gICAgICAhZGF0YS5sYXlvdXRTdGF0dXMuaW5jbHVkZXMoZmFsc2UpXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIFwiUHVibGlzaGVkXCI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgYnJlYWNoID0gdGhpcy5zaG93QnJlYWNoKGRhdGEsIFwiZml4dHVyZVwiKTtcclxuXHJcbiAgICAgIGlmKGJyZWFjaCkge1xyXG4gICAgICAgIHJldHVybiAnWWV0IHRvIEFzc2lnbic7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0VGFza1Rvb2x0aXAoZGF0YSwnZml4dHVyZScpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0U3RhdHVzQmFkZ2UoZGF0YTogYW55KSB7XHJcbiAgICBsZXQgdGFza0RldGFpbHMgPSBkYXRhPy5wbGFub1Rhc2s/LlswXT8udGFza1N0YXR1cz8uZmluZChcclxuICAgICAgKGVsZTogYW55KSA9PiBlbGU/LnN0YXR1cyAhPSBcInN1Ym1pdFwiXHJcbiAgICApO1xyXG4gICAgaWYgKFxyXG4gICAgICAhdGFza0RldGFpbHMgJiZcclxuICAgICAgZGF0YS50YXNrRGV0YWlscy5maXh0dXJlU3RhdHVzID09IFwiY29tcGxldGVcIiAmJlxyXG4gICAgICBkYXRhLnRhc2tEZXRhaWxzLmxheW91dFN0YXR1cyA9PSBcImNvbXBsZXRlXCIgJiZcclxuICAgICAgZGF0YS5sYXlvdXRTdGF0dXMuaW5jbHVkZXMoZmFsc2UpXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIFwicHJpbWFyeUJhZGdlU3R5bGVcIjtcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICF0YXNrRGV0YWlscyAmJlxyXG4gICAgICBkYXRhLnRhc2tEZXRhaWxzLmZpeHR1cmVTdGF0dXMgPT0gXCJjb21wbGV0ZVwiICYmXHJcbiAgICAgIGRhdGEudGFza0RldGFpbHMubGF5b3V0U3RhdHVzID09IFwiY29tcGxldGVcIiAmJlxyXG4gICAgICAhZGF0YS5sYXlvdXRTdGF0dXMuaW5jbHVkZXMoZmFsc2UpXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIFwiYmctc3VjY2Vzc1wiO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IGJyZWFjaCA9IHRoaXMuc2hvd0JyZWFjaChkYXRhLCBcImZpeHR1cmVcIik7XHJcbiAgICAgIGlmIChicmVhY2gpIHtcclxuICAgICAgICByZXR1cm4gXCJ5ZXRUb0Fzc2lnblwiO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLmdldFRhc2tTdGF0dXMoZGF0YSwgXCJmaXh0dXJlXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0U3VibWl0KGRhdGE6IGFueSkge1xyXG4gICAgY29uc3Qgc3RhdHVzTWFwOiBhbnkgPSB7XHJcbiAgICAgIGxheW91dDogZGF0YS50YXNrRGV0YWlscz8ubGF5b3V0U3RhdHVzLFxyXG4gICAgICBmaXh0dXJlOiBkYXRhLnRhc2tEZXRhaWxzPy5maXh0dXJlU3RhdHVzLFxyXG4gICAgICB2bTogZGF0YS50YXNrRGV0YWlscz8udm1TdGF0dXMsXHJcbiAgICB9O1xyXG4gICAgbGV0IHN1Ym1pdFRhc2sgPSBkYXRhPy5wbGFub1Rhc2s/LlswXT8udGFza1N0YXR1cy5maW5kKFxyXG4gICAgICAoZWxlOiBhbnkpID0+IGVsZS5zdGF0dXMgPT0gXCJzdWJtaXRcIiAmJiBzdGF0dXNNYXBbZWxlLnR5cGVdID09IFwicGVuZGluZ1wiXHJcbiAgICApO1xyXG4gICAgaWYgKHN1Ym1pdFRhc2spIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVRdWVyeVBhcmFtcygpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XHJcbiAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUsXHJcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7XHJcbiAgICAgICAgdGFiOiB0aGlzLnNlbGVjdGVkRmlsdGVyVGFiLFxyXG4gICAgICAgIHNlYXJjaDogdGhpcy5zZWFyY2hUZXJtLFxyXG4gICAgICAgIGxpbWl0OiB0aGlzLmxpbWl0LFxyXG4gICAgICAgIG9mZnNldDogdGhpcy5vZmZzZXQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6IFwibWVyZ2VcIixcclxuICAgICAgcmVwbGFjZVVybDogdHJ1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgIHRoaXMucGxhbm9TdWI/LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICByZWRpcmVjdFN0b3JlKHN0b3JlSWQ6IGFueSkge1xyXG4gICAgbGV0IGRhdGE6IGFueSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJoZWFkZXItZmlsdGVyc1wiKSB8fCBcIlwiKTtcclxuICAgIGRhdGEuc3RvcmUgPSBzdG9yZUlkO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJoZWFkZXItZmlsdGVyc1wiLCBKU09OLnN0cmluZ2lmeShkYXRhKSk7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGBtYW5hZ2Uvc3RvcmVzL3BsYW5vP3N0b3JlSWQ9JHtzdG9yZUlkfWApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRmxvb3IoZGF0YTogYW55KSB7XHJcbiAgICBsZXQgdGFza0RldGFpbHMgPSBkYXRhPy5wbGFub1Rhc2s/LlswXT8udGFza1N0YXR1cz8uZmlsdGVyKFxyXG4gICAgICAoZWxlOiBhbnkpID0+IGVsZT8uc3RhdHVzID09IFwic3VibWl0XCIgJiYgZWxlLnR5cGUgPT0gXCJsYXlvdXRcIlxyXG4gICAgKTtcclxuICAgIHJldHVybiBgJHt0YXNrRGV0YWlscz8ubGVuZ3RoID8/IDB9LyR7ZGF0YT8ubGF5b3V0Q291bnR9YDtcclxuICB9XHJcblxyXG4gIG9uRXhwb3J0KCkge1xyXG4gICAgbGV0IHBheWxvYWQgPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICBsaW1pdDogdGhpcy50b3RhbEl0ZW1zLFxyXG4gICAgICBvZmZzZXQ6IDEsXHJcbiAgICAgIHNvcnRDb2x1bW5OYW1lOiB0aGlzLnNvcnRlZENvbHVtbixcclxuICAgICAgc29ydEJ5OiB0aGlzLnNvcnRPcmRlcixcclxuICAgICAgZmlsdGVyOiB0aGlzLmFwcGxpZWRGaWx0ZXJzLFxyXG4gICAgICBzZWFyY2hWYWx1ZTogdGhpcy5zZWFyY2hUZXJtLFxyXG4gICAgICBleHBvcnQ6IHRydWUsXHJcbiAgICAgIC8vIGVtcHR5RG93bmxvYWQ6IGZhbHNlXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuc3RvcmVCdWlsZGVyU2VydmljZVxyXG4gICAgICAuZ2V0UGxhbm9MaXN0RXhwb3J0KHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVCdWlsZGVyU2VydmljZS5zYXZlQXNFeGNlbEZpbGUocmVzLCBcIlZlcmlmaWNhdGlvblwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnIsIFwiZXJyXCIpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicm93IG14LTAgbXktNSBnYXAtMlwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjb2wgZmlsdGVyLXRhYlwiIFtuZ0NsYXNzXT1cInsgc2VsZWN0ZWQ6IHNlbGVjdGVkRmlsdGVyVGFiID09PSAnYWxsJyB9XCIgKGNsaWNrKT1cImZpbHRlclRhYmxlKCdhbGwnKVwiPlxyXG4gICAgPGgzPnt7IHBlbmRpbmdEZXRhaWxzPy5hbGxTdG9yZXMgfHwgMCB9fTwvaDM+XHJcbiAgICA8cD5Ub3RhbCBzdG9yZXM8L3A+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImNvbCBmaWx0ZXItdGFiXCIgW25nQ2xhc3NdPVwieyBzZWxlY3RlZDogc2VsZWN0ZWRGaWx0ZXJUYWIgPT09ICdsYXlvdXQnIH1cIiAoY2xpY2spPVwiZmlsdGVyVGFibGUoJ2xheW91dCcpXCI+XHJcbiAgICA8aDM+e3sgcGVuZGluZ0RldGFpbHM/LmxheW91dENvbXBsZXRlID8/IDAgfX08L2gzPlxyXG4gICAgPHA+TGF5b3V0IHZlcmlmaWNhdGlvbiBjb21wbGV0ZWQ8L3A+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImNvbCBmaWx0ZXItdGFiXCIgW25nQ2xhc3NdPVwieyBzZWxlY3RlZDogc2VsZWN0ZWRGaWx0ZXJUYWIgPT09ICdmaXh0dXJlJyB9XCIgKGNsaWNrKT1cImZpbHRlclRhYmxlKCdmaXh0dXJlJylcIj5cclxuICAgIDxoMz57eyBwZW5kaW5nRGV0YWlscz8uZml4dHVyZVBlbmRpbmcgPz8gMCB9fTwvaDM+XHJcbiAgICA8cD5GaXh0dXJlIHZlcmlmaWNhdGlvbiBwZW5kaW5nPC9wPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJjb2wgZmlsdGVyLXRhYlwiIFtuZ0NsYXNzXT1cInsgc2VsZWN0ZWQ6IHNlbGVjdGVkRmlsdGVyVGFiID09PSAndm0nIH1cIiAoY2xpY2spPVwiZmlsdGVyVGFibGUoJ3ZtJylcIj5cclxuICAgIDxoMz57eyBwZW5kaW5nRGV0YWlscz8uZml4dHVyZVBlbmRpbmcgPz8gMCB9fTwvaDM+XHJcbiAgICA8cD5WTSB2ZXJpZmljYXRpb24gcGVuZGluZzwvcD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwiY29udGVudC13cmFwcGVyXCI+XHJcbiAgPGRpdj5cclxuICAgIDwhLS0gTWFuYWdlIFBsYW5vZ3JhbSB2aWV3IGhlYWRlciAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG1iLTVcIj5cclxuICAgICAgPGRpdj5cclxuICAgICAgICA8aDQ+QWxsIFBsYW5vZ3JhbXM8L2g0PlxyXG4gICAgICAgIDxzcGFuPnt7IHRvdGFsSXRlbXMgfX0gLSBUb3RhbCBSZWNvcmRzPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zXCI+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXJtXCJcclxuICAgICAgICAgICAgKGNoYW5nZSk9XCJvblNlYXJjaCgpXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDNyZW07IHBhZGRpbmctcmlnaHQ6IDNyZW1cIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIG5hbWU9XCJzZWFyY2hcIlxyXG4gICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaFwiXHJcbiAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2VhcmNoLWljb25cIj5cclxuICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiB2aWV3Qm94PVwiMCAwIDE4IDE4XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOFwiIGN5PVwiOFwiIHI9XCI2XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIC8+XHJcbiAgICAgICAgICAgICAgPGxpbmUgeDE9XCIxM1wiIHkxPVwiMTNcIiB4Mj1cIjE2XCIgeTI9XCIxNlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNlYXJjaFRlcm1cIiB0eXBlPVwiYnV0dG9uXCIgYXJpYS1sYWJlbD1cIkNsZWFyXCIgKGNsaWNrKT1cInNlYXJjaFRlcm0gPSAnJzsgb25TZWFyY2goKVwiIGNsYXNzPVwiY2xlYXItc2VhcmNoXCI+XHJcbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI2NHB4XCIgaGVpZ2h0PVwiNjRweFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICA8ZyBpZD1cIlNWR1JlcG9fYmdDYXJyaWVyXCIgc3Ryb2tlLXdpZHRoPVwiMFwiPjwvZz5cclxuICAgICAgICAgICAgICA8ZyBpZD1cIlNWR1JlcG9fdHJhY2VyQ2FycmllclwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvZz5cclxuICAgICAgICAgICAgICA8ZyBpZD1cIlNWR1JlcG9faWNvbkNhcnJpZXJcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOSA5TDE1IDE1XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE1IDlMOSAxNVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZVxyXG4gICAgICAgICAgICAgICAgICBjeD1cIjEyXCJcclxuICAgICAgICAgICAgICAgICAgY3k9XCIxMlwiXHJcbiAgICAgICAgICAgICAgICAgIHI9XCI5XCJcclxuICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiXHJcbiAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgPjwvY2lyY2xlPlxyXG4gICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib3BlbkJ1bGtVcGxvYWRNb2RhbCgpXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdGV4dC1ub3dyYXBcIj5cclxuICAgICAgICAgIDxzdmcgY2xhc3M9XCJtZS0yXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgIGQ9XCJNMTcuNSAxMi41VjE1LjgzMzNDMTcuNSAxNi4yNzU0IDE3LjMyNDQgMTYuNjk5MyAxNy4wMTE4IDE3LjAxMThDMTYuNjk5MyAxNy4zMjQ0IDE2LjI3NTQgMTcuNSAxNS44MzMzIDE3LjVINC4xNjY2N0MzLjcyNDY0IDE3LjUgMy4zMDA3MiAxNy4zMjQ0IDIuOTg4MTYgMTcuMDExOEMyLjY3NTU5IDE2LjY5OTMgMi41IDE2LjI3NTQgMi41IDE1LjgzMzNWMTIuNU0xNC4xNjY3IDYuNjY2NjdMMTAgMi41TTEwIDIuNUw1LjgzMzMzIDYuNjY2NjdNMTAgMi41VjEyLjVcIlxyXG4gICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICBCdWxrIFVwbG9hZFxyXG4gICAgICAgIDwvYnV0dG9uPiAtLT5cclxuXHJcbiAgICAgICAgPCEtLSA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSBkLWxpbmUtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgdGV4dC1ub3dyYXBcIj5cclxuICAgICAgICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgIGQ9XCJNNSAxMEgxNU0yLjUgNUgxNy41TTcuNSAxNUgxMi41XCJcclxuICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCJcclxuICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIEZpbHRlclxyXG4gICAgICAgIDwvYnV0dG9uPiAtLT5cclxuXHJcbiAgICAgICAgIDxwbGFuby1maWx0ZXIgW2NsaWVudElkXT1cImNsaWVudElkXCIgW2RhdGFdPVwiZmlsdGVyT2JqZWN0XCIgKGFwcGx5RmlsdGVycyk9XCJhcHBseUZpbHRlcnMoJGV2ZW50KVwiXHJcbiAgICAgICAgICAocmVzZXRGaWx0ZXJzKT1cImFwcGx5RmlsdGVycygkZXZlbnQpXCI+PC9wbGFuby1maWx0ZXI+XHJcblxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbkV4cG9ydCgpXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJidG4tb3V0bGluZSBidG4gYWxpZ24taXRlbXMtZW5kIHRleHQtbm93cmFwIGludmhlYWRlclwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhcGxhbm9ncmFtc0xpc3QubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgIDwhLS0gRXhwb3J0IEljb24gLS0+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk0xNy41IDEyLjVWMTUuODMzM0MxNy41IDE2LjI3NTQgMTcuMzI0NCAxNi42OTkzIDE3LjAxMTggMTcuMDExOEMxNi42OTkzIDE3LjMyNDQgMTYuMjc1NCAxNy41IDE1LjgzMzMgMTcuNUg0LjE2NjY3QzMuNzI0NjQgMTcuNSAzLjMwMDcyIDE3LjMyNDQgMi45ODgxNiAxNy4wMTE4QzIuNjc1NTkgMTYuNjk5MyAyLjUgMTYuMjc1NCAyLjUgMTUuODMzM1YxMi41TTE0LjE2NjcgNi42NjY2N0wxMCAyLjVNMTAgMi41TDUuODMzMzMgNi42NjY2N00xMCAyLjVWMTIuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMlwiPjwvc3Bhbj4gRXhwb3J0XHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbkNsaWNrQ3JlYXRlUGxhbm9ncmFtKClcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBkLWlubGluZS1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgZD1cIk0xMC4wMDAxIDQuMTY2NjNWMTUuODMzM000LjE2Njc1IDkuOTk5OTZIMTUuODMzNFwiXHJcbiAgICAgICAgICAgICAgc3Ryb2tlPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIHRleHQtd2hpdGVcIj5DcmVhdGUgPC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8IS0tIDxsaWItZmlsdGVycyBbZGF0YU9iamVjdF09XCJmaWx0ZXJPYmplY3RcIiAoYXBwbGllZEZpbHRlcnMpPVwiYXBwbHlGaWx0ZXJzKCRldmVudClcIj48L2xpYi1maWx0ZXJzPiAtLT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2ICpuZ0lmPVwiaXNQYWdlTG9hZGluZ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93IGxvYWRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCJcclxuICAgICAgKm5nSWY9XCIhaXNQYWdlTG9hZGluZyAmJiBwbGFub2dyYW1zTGlzdC5sZW5ndGggPT09IDBcIlxyXG4gICAgPlxyXG4gICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyY1wiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YTEuc3ZnXCIgYWx0PVwiXCIgLz5cclxuICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YW1haW50ZXh0IG10LTNcIj5ObyBkYXRhIGZvdW5kPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGFzdWJ0ZXh0XCI+VGhlcmUgaXMgbm8gcmVzdWx0IGZvciBtYW5hZ2UgcGxhbm9ncmFtIHRhYmxlPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIE1hbmFnZSBQbGFub2dyYW0gbGlzdCB2aWV3IC0tPlxyXG4gICAgPHNlY3Rpb24gaWQ9XCJsaXN0LXZpZXdcIiAqbmdJZj1cIiFpc1BhZ2VMb2FkaW5nICYmIHBsYW5vZ3JhbXNMaXN0Lmxlbmd0aCAhPT0gMFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgIDx0YWJsZSBjbGFzcz1cInctMTAwIHRhYmxlIGJvdHRvbS1ib3JkZXIgdGV4dC1ub3dyYXBcIj5cclxuICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgIDx0aD5cclxuICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJvblNvcnRUYWJsZSgnc3RvcmVOYW1lJylcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIFN0b3JlIE5hbWVcclxuICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIG1zLTEgbXQtMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogc29ydGVkQ29sdW1uID09PSAnc3RvcmVOYW1lJyA/ICcjMDA5QkYzJyA6ICcnIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNvcnRPcmRlciA9PT0gMSAmJiBzb3J0ZWRDb2x1bW4gPT09ICdzdG9yZU5hbWUnID8gJ2ZhLWFycm93LXVwJyA6ICdmYS1hcnJvdy1kb3duJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgIDx0aD5cclxuICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJvblNvcnRUYWJsZSgnbGF5b3V0TmFtZScpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICBMYXlvdXQgTmFtZVxyXG4gICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgbXMtMSBtdC0xXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGNvbG9yOiBzb3J0ZWRDb2x1bW4gPT09ICdsYXlvdXROYW1lJyA/ICcjMDA5QkYzJyA6ICcnIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNvcnRPcmRlciA9PT0gMSAmJiBzb3J0ZWRDb2x1bW4gPT09ICdsYXlvdXROYW1lJyA/ICdmYS1hcnJvdy11cCcgOiAnZmEtYXJyb3ctZG93bidcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICA8dGg+XHJcbiAgICAgICAgICAgICAgICBDb3VudHJ5XHJcbiAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICA8dGg+XHJcbiAgICAgICAgICAgICAgICBDaXR5XHJcbiAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICA8dGg+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgUGxhbm8gQ29tcGxldGlvbiAlXHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gPGlcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIG1zLTEgbXQtMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogc29ydGVkQ29sdW1uID09PSAncGxhbm9Qcm9ncmVzcycgPyAnIzAwOUJGMycgOiAnJyB9XCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzb3J0T3JkZXIgPT09IDEgJiYgc29ydGVkQ29sdW1uID09PSAncGxhbm9Qcm9ncmVzcycgPyAnZmEtYXJyb3ctdXAnIDogJ2ZhLWFycm93LWRvd24nXCJcclxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICA+PC9pPiAtLT5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCJcclxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIiUgb2Ygb3ZlcmFsbCBwbGFub2dyYW0gY29tcGxldGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtcy0yXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfODQ0XzE3NTM4KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDY1IDEwLjY2NjNWNy45OTk2N004LjAwMDY1IDUuMzMzMDFIOC4wMDczMk0xNC42NjczIDcuOTk5NjdDMTQuNjY3MyAxMS42ODE2IDExLjY4MjYgMTQuNjY2MyA4LjAwMDY1IDE0LjY2NjNDNC4zMTg3NSAxNC42NjYzIDEuMzMzOTggMTEuNjgxNiAxLjMzMzk4IDcuOTk5NjdDMS4zMzM5OCA0LjMxNzc4IDQuMzE4NzUgMS4zMzMwMSA4LjAwMDY1IDEuMzMzMDFDMTEuNjgyNiAxLjMzMzAxIDE0LjY2NzMgNC4zMTc3OCAxNC42NjczIDcuOTk5NjdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzg0NF8xNzUzOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKGNsaWNrKT1cIm9uU29ydFRhYmxlKCdsYXlvdXRDb3VudCcpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICBMYXlvdXRcclxuICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIG1zLTEgbXQtMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogc29ydGVkQ29sdW1uID09PSAnbGF5b3V0Q291bnQnID8gJyMwMDlCRjMnIDogJycgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic29ydE9yZGVyID09PSAxICYmIHNvcnRlZENvbHVtbiA9PT0gJ2xheW91dENvdW50JyA/ICdmYS1hcnJvdy11cCcgOiAnZmEtYXJyb3ctZG93bidcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKGNsaWNrKT1cIm9uU29ydFRhYmxlKCdmaXh0dXJlQ291bnQnKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgTm8gb2YgRml4dHVyZXNcclxuICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIG1zLTEgbXQtMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogc29ydGVkQ29sdW1uID09PSAnZml4dHVyZUNvdW50JyA/ICcjMDA5QkYzJyA6ICcnIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNvcnRPcmRlciA9PT0gMSAmJiBzb3J0ZWRDb2x1bW4gPT09ICdmaXh0dXJlQ291bnQnID8gJ2ZhLWFycm93LXVwJyA6ICdmYS1hcnJvdy1kb3duJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgIDx0aCBjbGFzcz1cInRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwib25Tb3J0VGFibGUoJ3ZtQ291bnQnKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgTm8gb2YgVk1zXHJcbiAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBtcy0xIG10LTFcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgY29sb3I6IHNvcnRlZENvbHVtbiA9PT0gJ3ZtQ291bnQnID8gJyMwMDlCRjMnIDogJycgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic29ydE9yZGVyID09PSAxICYmIHNvcnRlZENvbHVtbiA9PT0gJ3ZtQ291bnQnID8gJ2ZhLWFycm93LXVwJyA6ICdmYS1hcnJvdy1kb3duJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgIDx0aCBjbGFzcz1cInRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3Rvb2x0aXA+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNj5Ub3RhbCBzdG9yZSBjYXBhY2l0eTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+IENvbWJpbmluZyBwcm9kdWN0IGNhcGFjaXR5IG9mIGFsbCBmaXh0dXJlcyA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJvblNvcnRUYWJsZSgnZml4dHVyZUNhcGFjaXR5JylcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgU3RvcmUgQ2FwYWNpdHlcclxuICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIG1zLTEgbXQtMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogc29ydGVkQ29sdW1uID09PSAnZml4dHVyZUNhcGFjaXR5JyA/ICcjMDA5QkYzJyA6ICcnIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNvcnRPcmRlciA9PT0gMSAmJiBzb3J0ZWRDb2x1bW4gPT09ICdmaXh0dXJlQ2FwYWNpdHknID8gJ2ZhLWFycm93LXVwJyA6ICdmYS1hcnJvdy1kb3duJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCJcclxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwidG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtcy0yXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfODQ0XzE3NTM4KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDY1IDEwLjY2NjNWNy45OTk2N004LjAwMDY1IDUuMzMzMDFIOC4wMDczMk0xNC42NjczIDcuOTk5NjdDMTQuNjY3MyAxMS42ODE2IDExLjY4MjYgMTQuNjY2MyA4LjAwMDY1IDE0LjY2NjNDNC4zMTg3NSAxNC42NjYzIDEuMzMzOTggMTEuNjgxNiAxLjMzMzk4IDcuOTk5NjdDMS4zMzM5OCA0LjMxNzc4IDQuMzE4NzUgMS4zMzMwMSA4LjAwMDY1IDEuMzMzMDFDMTEuNjgyNiAxLjMzMzAxIDE0LjY2NzMgNC4zMTc3OCAxNC42NjczIDcuOTk5NjdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzg0NF8xNzUzOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJvblNvcnRUYWJsZSgnbGFzdFVwZGF0ZScpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICBMYXN0IHVwZGF0ZVxyXG4gICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgbXMtMSBtdC0xXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGNvbG9yOiBzb3J0ZWRDb2x1bW4gPT09ICdsYXN0VXBkYXRlJyA/ICcjMDA5QkYzJyA6ICcnIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNvcnRPcmRlciA9PT0gMSAmJiBzb3J0ZWRDb2x1bW4gPT09ICdsYXN0VXBkYXRlJyA/ICdmYS1hcnJvdy11cCcgOiAnZmEtYXJyb3ctZG93bidcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICBQbGFub2dyYW0gU3RhdHVzXHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gPGlcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIG1zLTEgbXQtMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogc29ydGVkQ29sdW1uID09PSAncGxhbm9ncmFtU3RhdHVzJyA/ICcjMDA5QkYzJyA6ICcnIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNvcnRPcmRlciA9PT0gMSAmJiBzb3J0ZWRDb2x1bW4gPT09ICdwbGFub2dyYW1TdGF0dXMnID8gJ2ZhLWFycm93LXVwJyA6ICdmYS1hcnJvdy1kb3duJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgPjwvaT4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICA8dGg+PC90aD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgcGxhbm8gb2YgcGxhbm9ncmFtc0xpc3RcIj5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwicmVkaXJlY3RTdG9yZShwbGFuby5zdG9yZUlkKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgdGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IHBsYW5vLnN0b3JlTmFtZSB9fTwvYVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnL21hbmFnZS9wbGFub2dyYW0vbWFuYWdlLXBsYW5vZ3JhbSddXCJcclxuICAgICAgICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cInsgcGxhbm9JZDogcGxhbm8uX2lkLCBmbG9vcklkOiBwbGFubz8ubGF5b3V0RGV0YWlscz8uWzBdPy5pZCB9XCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICBwbGFuby5sYXlvdXROYW1lXHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICB7e3BsYW5vPy5jb3VudHJ5fX1cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIHt7cGxhbm8/LmNpdHl9fVxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzXCIgc3R5bGU9XCJoZWlnaHQ6IDRweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzLWJhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFsyNSwgNTBdLmluY2x1ZGVzKGdldFByb2dyZXNzVmFsdWUocGxhbm8pKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnYmctd2FybmluZydcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ2JnLXN1Y2Nlc3MnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJwcm9ncmVzc2JhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJnZXRQcm9ncmVzc1ZhbHVlKHBsYW5vKSA/ICd3aWR0aDogJyArIGdldFByb2dyZXNzVmFsdWUocGxhbm8pICsgJyUnIDogJ3dpZHRoOjI1JSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXZhbHVlbm93XT1cImdldFByb2dyZXNzVmFsdWUocGxhbm8pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS12YWx1ZW1pbj1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLXZhbHVlbWF4PVwiMTAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPnt7IGdldFByb2dyZXNzVmFsdWUocGxhbm8pIH19JTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOCBwcm9ncmVzc1wiIHN0eWxlPVwiaGVpZ2h0OiA0cHg7IGJvcmRlci1yYWRpdXM6IDRweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzLWJhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwicHJvZ3Jlc3NiYXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMjUlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtdmFsdWVub3c9XCIyNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLXZhbHVlbWluPVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLXZhbHVlbWF4PVwiMTAwXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBwbGFuby5wbGFub0NvbXBsZXRpb24gfX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IHBsYW5vPy5sYXlvdXRDb3VudCA9PT0gMSA/IDEgOiB1cGRhdGVGbG9vcihwbGFubykgfX1cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTRcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTQgMTRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiRGlkbuKAmXQgcmVzcG9uZCB3aXRoaW4gdGhlIGR1ZSBkYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dCcmVhY2gocGxhbm8sICdsYXlvdXQnKVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgZD1cIk0yLjMzMzk4IDguNzUxM0MyLjMzMzk4IDguNzUxMyAyLjkxNzMyIDguMTY3OTcgNC42NjczMiA4LjE2Nzk3QzYuNDE3MzIgOC4xNjc5NyA3LjU4Mzk4IDkuMzM0NjMgOS4zMzM5OCA5LjMzNDYzQzExLjA4NCA5LjMzNDYzIDExLjY2NzMgOC43NTEzIDExLjY2NzMgOC43NTEzVjEuNzUxM0MxMS42NjczIDEuNzUxMyAxMS4wODQgMi4zMzQ2NCA5LjMzMzk4IDIuMzM0NjRDNy41ODM5OCAyLjMzNDY0IDYuNDE3MzIgMS4xNjc5NyA0LjY2NzMyIDEuMTY3OTdDMi45MTczMiAxLjE2Nzk3IDIuMzMzOTggMS43NTEzIDIuMzMzOTggMS43NTEzVjguNzUxM1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNGRUNEQ0FcIlxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMi4zMzM5OCA4Ljc1MTNDMi4zMzM5OCA4Ljc1MTMgMi45MTczMiA4LjE2Nzk3IDQuNjY3MzIgOC4xNjc5N0M2LjQxNzMyIDguMTY3OTcgNy41ODM5OCA5LjMzNDY0IDkuMzMzOTggOS4zMzQ2NEMxMS4wODQgOS4zMzQ2NCAxMS42NjczIDguNzUxMyAxMS42NjczIDguNzUxM1YxLjc1MTNDMTEuNjY3MyAxLjc1MTMgMTEuMDg0IDIuMzM0NjQgOS4zMzM5OCAyLjMzNDY0QzcuNTgzOTggMi4zMzQ2NCA2LjQxNzMyIDEuMTY3OTcgNC42NjczMiAxLjE2Nzk3QzIuOTE3MzIgMS4xNjc5NyAyLjMzMzk4IDEuNzUxMyAyLjMzMzk4IDEuNzUxM1Y4Ljc1MTNaTTIuMzMzOTggOC43NTEzVjEyLjgzNDZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiI0Q5MkQyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbmRpY2F0b3Igc2hvcnRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImdldFRhc2tTdGF0dXMocGxhbm8sICdsYXlvdXQnKSB8fCAndGFza0Fzc2lnbmVkJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhc2hvd0JyZWFjaChwbGFubywgJ2xheW91dCcpXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiOFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCI3XCJcclxuICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgOCA3XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cInt7IGdldFRhc2tUb29sdGlwKHBsYW5vLCAnbGF5b3V0JykgfHwgJ1Rhc2sgQXNzaWduZWQnIH19XCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi45NzI4NCAwLjMxMDk2N0wyLjc5NjE3IDQuMzQxOEwxLjY4Nzg0IDMuMTU3NjNDMS40ODM2NyAyLjk2NTEzIDEuMTYyODQgMi45NTM0NyAwLjkyOTUwNSAzLjExNjhDMC43MDIwMDUgMy4yODU5NyAwLjYzNzgzOCAzLjU4MzQ3IDAuNzc3ODM4IDMuODIyNjNMMi4wOTAzNCA1Ljk1NzYzQzIuMjE4NjcgNi4xNTU5NyAyLjQ0MDM0IDYuMjc4NDcgMi42OTExNyA2LjI3ODQ3QzIuOTMwMzQgNi4yNzg0NyAzLjE1Nzg0IDYuMTU1OTcgMy4yODYxNyA1Ljk1NzYzQzMuNDk2MTcgNS42ODM0NyA3LjUwMzY3IDAuOTA1OTY3IDcuNTAzNjcgMC45MDU5NjdDOC4wMjg2NyAwLjM2OTMgNy4zOTI4NCAtMC4xMDMyIDYuOTcyODQgMC4zMDUxMzRWMC4zMTA5NjdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM2NjcwODVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgcGxhbm8uZml4dHVyZUNvdW50IH19XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE0XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE0IDE0XCJcclxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIkRpZG7igJl0IHJlc3BvbmQgd2l0aGluIHRoZSBkdWUgZGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93QnJlYWNoKHBsYW5vLCAnZml4dHVyZScpXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICBkPVwiTTIuMzMzOTggOC43NTEzQzIuMzMzOTggOC43NTEzIDIuOTE3MzIgOC4xNjc5NyA0LjY2NzMyIDguMTY3OTdDNi40MTczMiA4LjE2Nzk3IDcuNTgzOTggOS4zMzQ2MyA5LjMzMzk4IDkuMzM0NjNDMTEuMDg0IDkuMzM0NjMgMTEuNjY3MyA4Ljc1MTMgMTEuNjY3MyA4Ljc1MTNWMS43NTEzQzExLjY2NzMgMS43NTEzIDExLjA4NCAyLjMzNDY0IDkuMzMzOTggMi4zMzQ2NEM3LjU4Mzk4IDIuMzM0NjQgNi40MTczMiAxLjE2Nzk3IDQuNjY3MzIgMS4xNjc5N0MyLjkxNzMyIDEuMTY3OTcgMi4zMzM5OCAxLjc1MTMgMi4zMzM5OCAxLjc1MTNWOC43NTEzWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiI0ZFQ0RDQVwiXHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgZD1cIk0yLjMzMzk4IDguNzUxM0MyLjMzMzk4IDguNzUxMyAyLjkxNzMyIDguMTY3OTcgNC42NjczMiA4LjE2Nzk3QzYuNDE3MzIgOC4xNjc5NyA3LjU4Mzk4IDkuMzM0NjQgOS4zMzM5OCA5LjMzNDY0QzExLjA4NCA5LjMzNDY0IDExLjY2NzMgOC43NTEzIDExLjY2NzMgOC43NTEzVjEuNzUxM0MxMS42NjczIDEuNzUxMyAxMS4wODQgMi4zMzQ2NCA5LjMzMzk4IDIuMzM0NjRDNy41ODM5OCAyLjMzNDY0IDYuNDE3MzIgMS4xNjc5NyA0LjY2NzMyIDEuMTY3OTdDMi45MTczMiAxLjE2Nzk3IDIuMzMzOTggMS43NTEzIDIuMzMzOTggMS43NTEzVjguNzUxM1pNMi4zMzM5OCA4Ljc1MTNWMTIuODM0NlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjRDkyRDIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImluZGljYXRvciBzaG9ydFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZ2V0VGFza1N0YXR1cyhwbGFubywgJ2ZpeHR1cmUnKSB8fCAndGFza0Fzc2lnbmVkJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhc2hvd0JyZWFjaChwbGFubywgJ2ZpeHR1cmUnKVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDggN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJ7eyBnZXRUYXNrVG9vbHRpcChwbGFubywgJ2ZpeHR1cmUnKSB8fCAnVGFzayBBc3NpZ25lZCcgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02Ljk3Mjg0IDAuMzEwOTY3TDIuNzk2MTcgNC4zNDE4TDEuNjg3ODQgMy4xNTc2M0MxLjQ4MzY3IDIuOTY1MTMgMS4xNjI4NCAyLjk1MzQ3IDAuOTI5NTA1IDMuMTE2OEMwLjcwMjAwNSAzLjI4NTk3IDAuNjM3ODM4IDMuNTgzNDcgMC43Nzc4MzggMy44MjI2M0wyLjA5MDM0IDUuOTU3NjNDMi4yMTg2NyA2LjE1NTk3IDIuNDQwMzQgNi4yNzg0NyAyLjY5MTE3IDYuMjc4NDdDMi45MzAzNCA2LjI3ODQ3IDMuMTU3ODQgNi4xNTU5NyAzLjI4NjE3IDUuOTU3NjNDMy40OTYxNyA1LjY4MzQ3IDcuNTAzNjcgMC45MDU5NjcgNy41MDM2NyAwLjkwNTk2N0M4LjAyODY3IDAuMzY5MyA3LjM5Mjg0IC0wLjEwMzIgNi45NzI4NCAwLjMwNTEzNFYwLjMxMDk2N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzY2NzA4NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBwbGFuby52bUNvdW50IH19XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE0XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE0IDE0XCJcclxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIkRpZG7igJl0IHJlc3BvbmQgd2l0aGluIHRoZSBkdWUgZGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93QnJlYWNoKHBsYW5vLCAnZml4dHVyZScpXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICBkPVwiTTIuMzMzOTggOC43NTEzQzIuMzMzOTggOC43NTEzIDIuOTE3MzIgOC4xNjc5NyA0LjY2NzMyIDguMTY3OTdDNi40MTczMiA4LjE2Nzk3IDcuNTgzOTggOS4zMzQ2MyA5LjMzMzk4IDkuMzM0NjNDMTEuMDg0IDkuMzM0NjMgMTEuNjY3MyA4Ljc1MTMgMTEuNjY3MyA4Ljc1MTNWMS43NTEzQzExLjY2NzMgMS43NTEzIDExLjA4NCAyLjMzNDY0IDkuMzMzOTggMi4zMzQ2NEM3LjU4Mzk4IDIuMzM0NjQgNi40MTczMiAxLjE2Nzk3IDQuNjY3MzIgMS4xNjc5N0MyLjkxNzMyIDEuMTY3OTcgMi4zMzM5OCAxLjc1MTMgMi4zMzM5OCAxLjc1MTNWOC43NTEzWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiI0ZFQ0RDQVwiXHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgZD1cIk0yLjMzMzk4IDguNzUxM0MyLjMzMzk4IDguNzUxMyAyLjkxNzMyIDguMTY3OTcgNC42NjczMiA4LjE2Nzk3QzYuNDE3MzIgOC4xNjc5NyA3LjU4Mzk4IDkuMzM0NjQgOS4zMzM5OCA5LjMzNDY0QzExLjA4NCA5LjMzNDY0IDExLjY2NzMgOC43NTEzIDExLjY2NzMgOC43NTEzVjEuNzUxM0MxMS42NjczIDEuNzUxMyAxMS4wODQgMi4zMzQ2NCA5LjMzMzk4IDIuMzM0NjRDNy41ODM5OCAyLjMzNDY0IDYuNDE3MzIgMS4xNjc5NyA0LjY2NzMyIDEuMTY3OTdDMi45MTczMiAxLjE2Nzk3IDIuMzMzOTggMS43NTEzIDIuMzMzOTggMS43NTEzVjguNzUxM1pNMi4zMzM5OCA4Ljc1MTNWMTIuODM0NlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjRDkyRDIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImluZGljYXRvciBzaG9ydFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZ2V0VGFza1N0YXR1cyhwbGFubywgJ3ZtJykgfHwgJ3Rhc2tBc3NpZ25lZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXNob3dCcmVhY2gocGxhbm8sICdmaXh0dXJlJylcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCI4XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCA4IDdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwie3sgZ2V0VGFza1Rvb2x0aXAocGxhbm8sICd2bScpIHx8ICdUYXNrIEFzc2lnbmVkJyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuOTcyODQgMC4zMTA5NjdMMi43OTYxNyA0LjM0MThMMS42ODc4NCAzLjE1NzYzQzEuNDgzNjcgMi45NjUxMyAxLjE2Mjg0IDIuOTUzNDcgMC45Mjk1MDUgMy4xMTY4QzAuNzAyMDA1IDMuMjg1OTcgMC42Mzc4MzggMy41ODM0NyAwLjc3NzgzOCAzLjgyMjYzTDIuMDkwMzQgNS45NTc2M0MyLjIxODY3IDYuMTU1OTcgMi40NDAzNCA2LjI3ODQ3IDIuNjkxMTcgNi4yNzg0N0MyLjkzMDM0IDYuMjc4NDcgMy4xNTc4NCA2LjE1NTk3IDMuMjg2MTcgNS45NTc2M0MzLjQ5NjE3IDUuNjgzNDcgNy41MDM2NyAwLjkwNTk2NyA3LjUwMzY3IDAuOTA1OTY3QzguMDI4NjcgMC4zNjkzIDcuMzkyODQgLTAuMTAzMiA2Ljk3Mjg0IDAuMzA1MTM0VjAuMzEwOTY3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNjY3MDg1XCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IHBsYW5vPy5maXh0dXJlQ2FwYWNpdHkgPz8gMCB9fVxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbbmdiVG9vbHRpcF09XCJwbGFubz8ubGFzdFVwZGF0ZSB8IGRhdGUgOiAnbWVkaXVtJ1wiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBwbGFubz8ubGFzdFVwZGF0ZSB8IGRhdGUgfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFkZ2VcIiBbbmdDbGFzc109XCJnZXRTdGF0dXNCYWRnZShwbGFubylcIj5cclxuICAgICAgICAgICAgICAgICAge3sgZ2V0U3RhdHVzKHBsYW5vKSB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8IS0tIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjIxXCIgaGVpZ2h0PVwiMjJcIiB2aWV3Qm94PVwiMCAwIDIxIDIyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xN183MTQyNSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIuMTk3MSAxOC43MTQ0QzEyLjA0NjQgMTguOTc0MiAxMS44MzAyIDE5LjE4OTggMTEuNTY5OSAxOS4zMzk3QzExLjMwOTcgMTkuNDg5NiAxMS4wMTQ2IDE5LjU2ODUgMTAuNzE0MyAxOS41Njg1QzEwLjQxNCAxOS41Njg1IDEwLjExODkgMTkuNDg5NiA5Ljg1ODY2IDE5LjMzOTdDOS41OTg0MiAxOS4xODk4IDkuMzgyMTIgMTguOTc0MiA5LjIzMTQzIDE4LjcxNDRNMTUuODU3MSA3LjU3MTU3QzE1Ljg1NzEgNi4yMDc2IDE1LjMxNTMgNC44OTk0OSAxNC4zNTA4IDMuOTM1MDJDMTMuMzg2NCAyLjk3MDU1IDEyLjA3ODMgMi40Mjg3MSAxMC43MTQzIDIuNDI4NzFDOS4zNTAzMiAyLjQyODcxIDguMDQyMjEgMi45NzA1NSA3LjA3Nzc0IDMuOTM1MDJDNi4xMTMyNiA0Ljg5OTQ5IDUuNTcxNDMgNi4yMDc2IDUuNTcxNDMgNy41NzE1N0M1LjU3MTQzIDEzLjU3MTYgMyAxNS4yODU5IDMgMTUuMjg1OUgxOC40Mjg2QzE4LjQyODYgMTUuMjg1OSAxNS44NTcxIDEzLjU3MTYgMTUuODU3MSA3LjU3MTU3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTIuMDg1NzQgOC4wNDgwNUMxLjU1NjExIDguMDQ4MDUgMS4xMjE0NiA3LjYxNzY4IDEuMTcwODIgNy4wOTAzNkMxLjI4NiA1Ljg1OTg5IDEuNjI3IDQuNzEzMjIgMi4xOTM4MyAzLjY1MDM0QzIuNzUyMjkgMi42MDMxOCAzLjQ2MDYyIDEuNjk2MDUgNC4zMTg4MiAwLjkyODkzOUM0LjcxMDUyIDAuNTc4ODIzIDUuMzA5NjUgMC42NzM1MDEgNS42MjA2MiAxLjA5Njk1QzUuOTMxNzUgMS41MjA2MiA1LjgzNTI1IDIuMTEyMSA1LjQ1MjI1IDIuNDcyMTJDNC44Mjg3NSAzLjA1ODE5IDQuMzA5ODcgMy43NDIzOSAzLjg5NTU5IDQuNTI0NzFDMy40NzMwMyA1LjMyMjY3IDMuMjA3NzYgNi4xNzgzMyAzLjA5OTggNy4wOTE2OUMzLjAzNzY2IDcuNjE3NDcgMi42MTUxOCA4LjA0ODA1IDIuMDg1NzQgOC4wNDgwNVpNMTkuMzQzMSA4LjA0ODA1QzE4LjgxMzQgOC4wNDgwNSAxOC4zOTA4IDcuNjE3MSAxOC4zMjg3IDcuMDkxMDVDMTguMjIwOSA2LjE3NzkzIDE3Ljk1NTYgNS4zMjI0OCAxNy41MzI2IDQuNTI0NzFDMTcuMTE4IDMuNzQyNTggMTYuNTk5MyAzLjA1ODUyIDE1Ljk3NjUgMi40NzI1NEMxNS41OTM3IDIuMTEyMjYgMTUuNDk3MyAxLjUyMDcgMTUuODA4NSAxLjA5Njk2QzE2LjExOTYgMC42NzM0MzMgMTYuNzE4NyAwLjU3ODU1MSAxNy4xMTA3IDAuOTI4NTcxQzE3Ljk2OTMgMS42OTU0IDE4LjY3NzggMi42MDI2NiAxOS4yMzYzIDMuNjUwMzRDMTkuODAzMiA0LjcxMzgxIDIwLjE0MzggNS44NjA2OCAyMC4yNTgxIDcuMDkwOTVDMjAuMzA3MSA3LjYxODA5IDE5Ljg3MjUgOC4wNDgwNSAxOS4zNDMxIDguMDQ4MDVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM2NjcwODVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xN183MTQyNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwLjU3MTRcIiBoZWlnaHQ9XCIyMC41NzE0XCIgZmlsbD1cIndoaXRlXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAuNDI4NzExIDAuNzE0MzU1KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjNcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjMgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzEzOV8xMTI2ODUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyLjQ4NDMgMjEuNDMwMkMxMi4zMzM2IDIxLjY5IDEyLjExNzMgMjEuOTA1NyAxMS44NTcgMjIuMDU1NkMxMS41OTY4IDIyLjIwNTUgMTEuMzAxNyAyMi4yODQ0IDExLjAwMTQgMjIuMjg0NEMxMC43MDExIDIyLjI4NDQgMTAuNDA2IDIyLjIwNTUgMTAuMTQ1OCAyMi4wNTU2QzkuODg1NTMgMjEuOTA1NyA5LjY2OTIzIDIxLjY5IDkuNTE4NTQgMjEuNDMwMk0xNi4xNDQzIDEwLjI4NzRDMTYuMTQ0MyA4LjkyMzQyIDE1LjYwMjQgNy42MTUzMSAxNC42Mzc5IDYuNjUwODRDMTMuNjczNSA1LjY4NjM3IDEyLjM2NTQgNS4xNDQ1MyAxMS4wMDE0IDUuMTQ0NTNDOS42Mzc0MiA1LjE0NDUzIDguMzI5MzIgNS42ODYzNyA3LjM2NDg1IDYuNjUwODRDNi40MDAzNyA3LjYxNTMxIDUuODU4NTQgOC45MjM0MiA1Ljg1ODU0IDEwLjI4NzRDNS44NTg1NCAxNi4yODc0IDMuMjg3MTEgMTguMDAxNyAzLjI4NzExIDE4LjAwMTdIMTguNzE1N0MxOC43MTU3IDE4LjAwMTcgMTYuMTQ0MyAxNi4yODc0IDE2LjE0NDMgMTAuMjg3NFpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yLjM3MTg3IDEwLjc2MzRDMS44NDIyNCAxMC43NjM0IDEuNDA3NTkgMTAuMzMzIDEuNDU2OTUgOS44MDU2OUMxLjU3MjEzIDguNTc1MjIgMS45MTMxMyA3LjQyODU1IDIuNDc5OTcgNi4zNjU2N0MzLjAzODQyIDUuMzE4NTEgMy43NDY3NSA0LjQxMTM4IDQuNjA0OTYgMy42NDQyN0M0Ljk5NjY1IDMuMjk0MTUgNS41OTU3OCAzLjM4ODgzIDUuOTA2NzUgMy44MTIyOEM2LjIxNzg4IDQuMjM1OTUgNi4xMjEzOCA0LjgyNzQ0IDUuNzM4MzggNS4xODc0NUM1LjExNDg5IDUuNzczNTIgNC41OTYgNi40NTc3MiA0LjE4MTcyIDcuMjQwMDRDMy43NTkxNiA4LjAzOCAzLjQ5MzkgOC44OTM2NiAzLjM4NTk0IDkuODA3MDJDMy4zMjM3OSAxMC4zMzI4IDIuOTAxMzEgMTAuNzYzNCAyLjM3MTg3IDEwLjc2MzRaTTE5LjYyOTIgMTAuNzYzNEMxOS4wOTk1IDEwLjc2MzQgMTguNjc2OSAxMC4zMzI0IDE4LjYxNDggOS44MDYzOEMxOC41MDcgOC44OTMyNiAxOC4yNDE3IDguMDM3ODEgMTcuODE4OCA3LjI0MDA0QzE3LjQwNDEgNi40NTc5MSAxNi44ODU0IDUuNzczODUgMTYuMjYyNyA1LjE4Nzg3QzE1Ljg3OTggNC44Mjc2IDE1Ljc4MzUgNC4yMzYwMyAxNi4wOTQ3IDMuODEyMjlDMTYuNDA1NyAzLjM4ODc2IDE3LjAwNDkgMy4yOTM4OCAxNy4zOTY4IDMuNjQzOUMxOC4yNTU0IDQuNDEwNzMgMTguOTY0IDUuMzE3OTkgMTkuNTIyNCA2LjM2NTY3QzIwLjA4OTMgNy40MjkxNCAyMC40Mjk5IDguNTc2MDEgMjAuNTQ0MiA5LjgwNjI4QzIwLjU5MzIgMTAuMzMzNCAyMC4xNTg2IDEwLjc2MzQgMTkuNjI5MiAxMC43NjM0WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNjY3MDg1XCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE3IDFDMTkuNzYxNCAxIDIyIDMuMjM4NTggMjIgNkMyMiA4Ljc2MTQyIDE5Ljc2MTQgMTEgMTcgMTFDMTQuMjM4NiAxMSAxMiA4Ljc2MTQyIDEyIDZDMTIgMy4yMzg1OCAxNC4yMzg2IDEgMTcgMVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNGRjAwMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzEzOV8xMTI2ODVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMC41NzE0XCIgaGVpZ2h0PVwiMjAuNTcxNFwiIGZpbGw9XCJ3aGl0ZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwLjcxNDg0NCAzLjQyOTY5KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHAtMFwiIHR5cGU9XCJidXR0b25cIiBkYXRhLWJzLXRvZ2dsZT1cImRyb3Bkb3duXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTExIDEyQzExIDEyLjU1MjMgMTEuNDQ3NyAxMyAxMiAxM0MxMi41NTIzIDEzIDEzIDEyLjU1MjMgMTMgMTJDMTMgMTEuNDQ3NyAxMi41NTIzIDExIDEyIDExQzExLjQ0NzcgMTEgMTEgMTEuNDQ3NyAxMSAxMlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTExIDE5QzExIDE5LjU1MjMgMTEuNDQ3NyAyMCAxMiAyMEMxMi41NTIzIDIwIDEzIDE5LjU1MjMgMTMgMTlDMTMgMTguNDQ3NyAxMi41NTIzIDE4IDEyIDE4QzExLjQ0NzcgMTggMTEgMTguNDQ3NyAxMSAxOVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTExIDVDMTEgNS41NTIyOCAxMS40NDc3IDYgMTIgNkMxMi41NTIzIDYgMTMgNS41NTIyOCAxMyA1QzEzIDQuNDQ3NzIgMTIuNTUyMyA0IDEyIDRDMTEuNDQ3NyA0IDExIDQuNDQ3NzIgMTEgNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImRyb3Bkb3duLW1lbnVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBjbGFzcz1cImRyb3Bkb3duLWl0ZW0gY3Vyc29yLXBvaW50ZXJcIj5FZGl0PC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtIGN1cnNvci1wb2ludGVyXCI+RHVwbGljYXRlPC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtIGN1cnNvci1wb2ludGVyIHRleHQtZGFuZ2VyXCI+RGVsZXRlPC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3RkPiAtLT5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9tYW5hZ2UvcGxhbm9ncmFtL21hbmFnZS1wbGFub2dyYW0nXVwiXHJcbiAgICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJ7IHBsYW5vSWQ6IHBsYW5vLl9pZCwgZmxvb3JJZDogcGxhbm8/LmxheW91dERldGFpbHM/LmlkIH1cIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjMgMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdldFN1Ym1pdChwbGFubylcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTAuMTM5NSA2Ljg1NzI4SDQuMTM5NDZDMy42ODQ4IDYuODU3MjggMy4yNDg3NiA3LjAzNzkgMi45MjcyNyA3LjM1OTM5QzIuNjA1NzggNy42ODA4OCAyLjQyNTE3IDguMTE2OTEgMi40MjUxNyA4LjU3MTU3VjIwLjU3MTZDMi40MjUxNyAyMS4wMjYyIDIuNjA1NzggMjEuNDYyMyAyLjkyNzI3IDIxLjc4MzhDMy4yNDg3NiAyMi4xMDUyIDMuNjg0OCAyMi4yODU5IDQuMTM5NDYgMjIuMjg1OUgxNi4xMzk1QzE2LjU5NDEgMjIuMjg1OSAxNy4wMzAxIDIyLjEwNTIgMTcuMzUxNiAyMS43ODM4QzE3LjY3MzEgMjEuNDYyMyAxNy44NTM3IDIxLjAyNjIgMTcuODUzNyAyMC41NzE2VjE0LjU3MTZNMTYuNTY4IDUuNTcxNTdDMTYuOTA5IDUuMjMwNTggMTcuMzcxNSA1LjAzOTAxIDE3Ljg1MzcgNS4wMzkwMUMxOC4zMzYgNS4wMzkwMSAxOC43OTg1IDUuMjMwNTggMTkuMTM5NSA1LjU3MTU3QzE5LjQ4MDUgNS45MTI1NiAxOS42NzIgNi4zNzUwNSAxOS42NzIgNi44NTcyOEMxOS42NzIgNy4zMzk1MiAxOS40ODA1IDcuODAyMDEgMTkuMTM5NSA4LjE0M0wxMC45OTY2IDE2LjI4NTlMNy41NjgwMyAxNy4xNDNMOC40MjUxNyAxMy43MTQ0TDE2LjU2OCA1LjU3MTU3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNyAxQzE5Ljc2MTQgMSAyMiAzLjIzODU4IDIyIDZDMjIgOC43NjE0MiAxOS43NjE0IDExIDE3IDExQzE0LjIzODYgMTEgMTIgOC43NjE0MiAxMiA2QzEyIDMuMjM4NTggMTQuMjM4NiAxIDE3IDFaXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjRkYwMDAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIndoaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjJcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjEgMjJcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFnZXRTdWJtaXQocGxhbm8pXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfODQ0XzE4MzE4KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk05Ljg1Njg2IDQuMTQyNDlIMy44NTY4NkMzLjQwMjIxIDQuMTQyNDkgMi45NjYxNyA0LjMyMzExIDIuNjQ0NjggNC42NDQ2QzIuMzIzMTkgNC45NjYwOSAyLjE0MjU4IDUuNDAyMTIgMi4xNDI1OCA1Ljg1Njc4VjE3Ljg1NjhDMi4xNDI1OCAxOC4zMTE0IDIuMzIzMTkgMTguNzQ3NSAyLjY0NDY4IDE5LjA2OUMyLjk2NjE3IDE5LjM5MDUgMy40MDIyMSAxOS41NzExIDMuODU2ODYgMTkuNTcxMUgxNS44NTY5QzE2LjMxMTUgMTkuNTcxMSAxNi43NDc2IDE5LjM5MDUgMTcuMDY5IDE5LjA2OUMxNy4zOTA1IDE4Ljc0NzUgMTcuNTcxMiAxOC4zMTE0IDE3LjU3MTIgMTcuODU2OFYxMS44NTY4TTE2LjI4NTQgMi44NTY3OEMxNi42MjY0IDIuNTE1NzkgMTcuMDg4OSAyLjMyNDIyIDE3LjU3MTIgMi4zMjQyMkMxOC4wNTM0IDIuMzI0MjIgMTguNTE1OSAyLjUxNTc5IDE4Ljg1NjkgMi44NTY3OEMxOS4xOTc5IDMuMTk3NzcgMTkuMzg5NCAzLjY2MDI2IDE5LjM4OTQgNC4xNDI0OUMxOS4zODk0IDQuNjI0NzMgMTkuMTk3OSA1LjA4NzIyIDE4Ljg1NjkgNS40MjgyMUwxMC43MTQgMTMuNTcxMUw3LjI4NTQ0IDE0LjQyODJMOC4xNDI1OCAxMC45OTk2TDE2LjI4NTQgMi44NTY3OFpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzg0NF8xODMxOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwLjU3MTRcIiBoZWlnaHQ9XCIyMC41NzE0XCIgZmlsbD1cIndoaXRlXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAuNDI3NzM0IDAuNzEzODY3KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgPC90YWJsZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgPCEtLSBNYW5hZ2UgUGxhbm9ncmFtIGdyaWQgdmlldyAtLT5cclxuICAgIDwhLS0gPG5nLXRlbXBsYXRlICNncmlkVmlldz5cclxuICAgICAgPHNlY3Rpb24gaWQ9XCJncmlkLXZpZXdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGd4LTYgZ3ktNFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCIgKm5nRm9yPVwibGV0IGZpeHR1cmUgb2YgZml4dHVyZVRlbXBsYXRlc0xpc3RcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1pbWdcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWFjdGlvbiBkcm9wZG93blwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBweC00IHB5LTNcIiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1icy10b2dnbGU9XCJkcm9wZG93blwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktdGhyZWUtZG90cy12ZXJ0aWNhbFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImRyb3Bkb3duLW1lbnVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtIGN1cnNvci1wb2ludGVyXCI+RWRpdDwvYT48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaT48YSBjbGFzcz1cImRyb3Bkb3duLWl0ZW0gY3Vyc29yLXBvaW50ZXJcIj5EdXBsaWNhdGU8L2E+PC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtIGN1cnNvci1wb2ludGVyIHRleHQtZGFuZ2VyXCI+RGVsZXRlPC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGgzPnt7IGZpeHR1cmUubmFtZSB9fTwvaDM+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFkZ2VcIiBbbmdDbGFzc109XCJmaXh0dXJlLnN0YXR1c1wiPnt7IGZpeHR1cmUuc3RhdHVzIHwgdGl0bGVjYXNlIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgc3ViQnJhbmQgb2YgZml4dHVyZS5zdWJCcmFuZDsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImkgIT0gMFwiIGNsYXNzPVwibWUtMiBjYXJkLXRhZ2xpbmVcIj4mIzgyMjY7PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFkZ2VcIj57eyBzdWJCcmFuZCB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvc2VjdGlvbj5cclxuICAgIDwvbmctdGVtcGxhdGU+IC0tPlxyXG5cclxuICAgIDwhLS0gUGFnaW5hdGlvbiAtLT5cclxuICAgIDxsaWItcGFnaW5hdGlvblxyXG4gICAgICBbaXRlbXNQZXJQYWdlXT1cImxpbWl0XCJcclxuICAgICAgW2N1cnJlbnRQYWdlXT1cIm9mZnNldFwiXHJcbiAgICAgIFt0b3RhbEl0ZW1zXT1cInRvdGFsSXRlbXNcIlxyXG4gICAgICBbcGFnaW5hdGlvblNpemVzXT1cInBhZ2luYXRpb25TaXplc1wiXHJcbiAgICAgIFtwYWdlU2l6ZV09XCJwYWdpbmF0aW9uU2l6ZSgpXCJcclxuICAgICAgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAocGFnZVNpemVDaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgKm5nSWY9XCIhaXNQYWdlTG9hZGluZyAmJiBwbGFub2dyYW1zTGlzdC5sZW5ndGggIT09IDBcIlxyXG4gICAgPlxyXG4gICAgPC9saWItcGFnaW5hdGlvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==