@firestitch/2fa 12.6.1 → 12.7.0
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.
|
@@ -9,8 +9,8 @@ import * as i1 from "@angular/material/dialog";
|
|
|
9
9
|
import * as i2 from "@firestitch/message";
|
|
10
10
|
import * as i3 from "@firestitch/dialog";
|
|
11
11
|
import * as i4 from "ng-qrcode";
|
|
12
|
-
import * as i5 from "
|
|
13
|
-
import * as i6 from "
|
|
12
|
+
import * as i5 from "../../../code-input/components/code-input/code-input.component";
|
|
13
|
+
import * as i6 from "@angular/material/checkbox";
|
|
14
14
|
import * as i7 from "@angular/material/button";
|
|
15
15
|
import * as i8 from "@angular/forms";
|
|
16
16
|
import * as i9 from "@firestitch/form";
|
|
@@ -65,7 +65,7 @@ export class AppComponent {
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
AppComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: AppComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i0.ChangeDetectorRef }, { token: i2.FsMessage }], target: i0.ɵɵFactoryTarget.Component });
|
|
68
|
-
AppComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: AppComponent, selector: "ng-component", viewQueries: [{ propertyName: "form", first: true, predicate: FsFormDirective, descendants: true }], ngImport: i0, template: "<form fsForm [submit]=\"verify\">\n <fs-dialog>\n <h1 mat-dialog-title>Authenticator App Setup</h1>\n <mat-dialog-content>\n\n <div *ngIf=\"mode === 'qr-code'\" class=\"qr-code\">\n <ng-container *ngIf=\"appType\">\n <ol>\n <li>\n <ng-container *ngIf=\"appType === 'authy'\">\n Install the Authy Authenticator App from the <a href=\"https://apps.apple.com/us/app/authy/id494168017\" target=\"_blank\">App Store</a> or\n the <a href=\"https://play.google.com/store/apps/details?id=com.authy.authy\" target=\"_blank\">Google Play Store</a>.\n </ng-container>\n\n <ng-container *ngIf=\"appType === 'google'\">\n Install the Google Authenticator App from the <a href=\"https://apps.apple.com/us/app/google-authenticator/id388497605\" target=\"_blank\">App Store</a> or\n the <a href=\"https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=en_US&gl=US\" target=\"_blank\">Google Play Store</a>.\n </ng-container>\n </li>\n <ng-container *ngIf=\"appType === 'authy'\">\n <li>\n Open the Authy app and select <b>Add Account</b>.\n </li>\n <li>\n Select <b>Scan QR Code</b> and scan the QR code below.\n </li>\n </ng-container> \n <ng-container *ngIf=\"appType === 'google'\">\n <li>\n Open the Google Authentictor app and click the <b>Plus icon</b> in the lower right corner.\n </li>\n <li>\n Select <b>Scan a QR code</b> and scan the QR code below.\n </li>\n </ng-container>\n </ol>\n\n <qr-code \n *fsSkeleton=\"qrCodeUrl\"\n [value]=\"qrCodeUrl\"\n size=\"200\"\n errorCorrectionLevel=\"H\"\n [margin]=\"0\">\n </qr-code> \n </ng-container>\n\n <div class=\"app-types\" *ngIf=\"!appType\">\n <p>Select the Authenticator App you prefer</p>\n\n <div class=\"row\">\n <span>\n <a (click)=\"appTypeAuthy()\">\n <svg width=\"50\" height=\"50\" viewBox=\"0 0 256 256\" xmlns=\"http://www.w3.org/2000/svg\" preserveAspectRatio=\"xMidYMid\"><path d=\"M256 127.998C256 198.696 198.694 256 127.997 256 57.304 256 0 198.696 0 127.998 0 57.305 57.304 0 127.997 0 198.694 0 256 57.305 256 127.998z\" fill=\"#EC1C24\"/><path d=\"M117.024 100.89l30.691 30.68c4.43 4.436 11.623 4.436 16.064 0 4.431-4.435 4.441-11.622 0-16.058L133.086 84.82C111.125 62.854 75.631 62.5 53.204 83.704a9.536 9.536 0 0 0-.605.548c-.098.098-.178.202-.275.29-.1.096-.202.182-.297.278-.194.193-.371.396-.54.597-21.215 22.437-20.85 57.932 1.113 79.897L83.292 196c4.44 4.433 11.623 4.433 16.062 0 4.442-4.437 4.442-11.633.011-16.06l-30.693-30.691c-13.398-13.393-13.488-35.129-.278-48.637 13.506-13.21 35.23-13.114 48.63.279zm39.612-40.873c-4.435 4.437-4.435 11.623.012 16.059l30.681 30.693c13.39 13.392 13.477 35.125.268 48.636-13.51 13.2-35.227 13.112-48.623-.282l-30.692-30.689c-4.438-4.437-11.633-4.437-16.066 0-4.443 4.433-4.443 11.642 0 16.065l30.682 30.694c21.968 21.965 57.458 22.322 79.889 1.116.208-.184.404-.355.61-.549.094-.095.182-.192.273-.29.1-.095.197-.183.29-.289.197-.183.365-.384.54-.594 21.215-22.428 20.86-57.911-1.102-79.889l-30.692-30.682c-4.436-4.443-11.638-4.443-16.07.001z\" fill=\"#FFF\"/></svg>\n </a>\n Authy\n </span>\n \n <span>\n <a (click)=\"appTypeGoogle()\"> \n <svg width=\"50\" height=\"50\" viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"m457.07 45.92c73.67-8.62 149.41.22 218.93 26.24 62.75 23.47 120.59 60.41 167.72 108.09-40.31 39.97-80.25 80.31-120.51 120.33-25.95-25.45-56.19-46.65-89.47-61.37-44.22-19.82-93.39-28.54-141.72-25.2-54.6 3.52-108.11 22.49-152.63 54.3-55.24 38.95-96.61 97.22-114.8 162.35-13.64 47.78-14.77 98.97-3.76 147.4 8.85 39.61 26.09 77.29 50.05 110.03 22.24 30.45 50.3 56.64 82.22 76.71 36.79 23.24 78.76 38.22 121.96 43.48 37.02 4.65 74.9 2.23 111.05-7 3.97-1.91 6.24 2.61 8.73 4.86 40.74 40.95 81.68 81.7 122.43 122.63-73.31 35.6-155.99 51.86-237.3 46.12-68.05-4.51-135.07-24.08-194.71-57.18-24.87-13.6-48.23-29.82-70.33-47.54-17.46-14.81-34.71-30.01-49.72-47.35-25.41-27.39-47.21-58.11-65.17-90.87-4-7.72-8.64-15.12-11.9-23.2-4.47-9.05-8.37-18.36-12.25-27.67-4.96-13.27-10.26-26.44-13.88-40.15-.43-1.81-1.53-3.33-2.52-4.85-8.3-28.66-12.95-58.33-15.44-88.04-2.62-37.36-1.33-75.05 4.78-112.03 12.18-75.48 43.41-147.74 89.86-208.44 30.12-39.5 66.53-74.21 107.46-102.35 62.44-43.11 135.53-70.69 210.92-79.3m49.18 50.48c-5.7.99-10.96 3.76-15.38 7.43-10.4 8.93-14.14 24.81-8.17 37.28 6.33 15.02 25.16 23.1 40.36 17 15.43-5.24 24.78-23.51 19.74-39.06-4.1-15.43-20.92-25.79-36.55-22.65m-267.96 111.99c-5.33.28-10.59 1.92-15.16 4.68-11.47 7.03-17.88 21.74-14.36 34.86 3.09 14.08 16.78 25.06 31.26 24.61 15.03.41 29.08-11.39 31.54-26.17 2.24-10.33-1.61-21.55-9.14-28.85-6.24-6.33-15.3-9.62-24.14-9.13m-115.96 272c-6.62 1.23-12.84 4.58-17.54 9.4-9.45 9.72-11.72 25.57-5.02 37.42 7.16 13.96 25.48 20.86 39.98 14.62 15.02-5.51 23.99-23.42 19.06-38.71-4.04-15.41-20.86-25.96-36.48-22.73m111.98 272.05c-11.49 1.95-21.48 10.72-24.84 21.88-3.87 11.63-.13 25.16 8.9 33.36 6.15 5.48 14.4 8.7 22.67 8.32 11.16-.25 21.98-6.87 27.12-16.8 4.93-8.83 5.15-20.02.71-29.1-5.82-12.78-20.81-20.33-34.56-17.66m272.06 112.03c-11.76 2.02-21.92 11.07-25.09 22.6-3.87 12.57 1.13 27.25 11.91 34.79 7.86 5.79 18.42 7.67 27.77 4.86 9.61-2.77 17.7-10.24 21.07-19.68 4.97-12.74.36-28.32-10.58-36.46-7.02-5.45-16.35-7.67-25.08-6.11z\" fill=\"#a0a0a0\"/>\n <g fill=\"#c1c1c1\">\n <path d=\"m506.25 96.4c15.63-3.14 32.45 7.22 36.55 22.65 5.04 15.55-4.31 33.82-19.74 39.06-15.2 6.1-34.03-1.98-40.36-17-5.97-12.47-2.23-28.35 8.17-37.28 4.42-3.67 9.68-6.44 15.38-7.43z\"/>\n <path d=\"m122.33 480.39c15.62-3.23 32.44 7.32 36.48 22.73 4.93 15.29-4.04 33.2-19.06 38.71-14.5 6.24-32.82-.66-39.98-14.62-6.7-11.85-4.43-27.7 5.02-37.42 4.7-4.82 10.92-8.17 17.54-9.4z\"/>\n </g>\n <path d=\"m843.72 180.25.11-.11c24.64 25.12 46.96 52.6 65.61 82.47 36.01 57.16 59.38 122.22 67.87 189.25 5.67 44.88 5.27 90.6-2.05 135.27-12.7 80.01-46.94 156.41-97.9 219.36-42.3 52.48-95.87 96.04-156.41 125.76l-.63-.26c-1.01-1.1-2.03-2.16-3.05-3.22-40.75-40.93-81.69-81.68-122.43-122.63-2.49-2.25-4.76-6.77-8.73-4.86-36.15 9.23-74.03 11.65-111.05 7-43.2-5.26-85.17-20.24-121.96-43.48-31.92-20.07-59.98-46.26-82.22-76.71-23.96-32.74-41.2-70.42-50.05-110.03-11.01-48.43-9.88-99.62 3.76-147.4 18.19-65.13 59.56-123.4 114.8-162.35 44.52-31.81 98.03-50.78 152.63-54.3 48.33-3.34 97.5 5.38 141.72 25.2 33.28 14.72 63.52 35.92 89.47 61.37 40.26-40.02 80.2-80.36 120.51-120.33m-351.75 183.97c-21.23 2.85-41.89 10.28-59.88 21.94-23.08 14.45-41.76 35.58-53.9 59.91-14.58 29.2-18.64 63.21-12.5 95.17 3.93 19.85 12.03 38.88 23.56 55.51 7.93 11.52 17.65 21.66 27.65 31.38 57.33 57.41 114.61 114.86 171.99 172.21 49.09-13.07 94.67-38.94 131.05-74.4 45.11-43.34 75.66-101.44 86.31-163.06.24-1.04.22-2.91 1.85-2.6 29.63.04 59.26-.01 88.9.05 19.04-.3 36.87-14.77 40.76-33.46.22-1.21 0-2.32-.67-3.35 1.22-5.71 2.08-11.58 1.38-17.43l-.24.4c-2.05-20.34-20.84-37.12-41.25-37.17-80.64-.07-161.28-.01-241.93-.07-6.44-22.08-18.5-42.33-34.03-59.23-25.8-27.5-62.26-45.01-100.02-46.82-9.68.02-19.44-.54-29.03 1.02m286.37 388.31c-12.64 2.06-23.37 12.59-25.7 25.18-1.48 8.14-.14 17.02 4.73 23.85 5.76 9.2 16.8 14.76 27.61 14.25 8.32.03 16.28-3.95 22.16-9.66 4.87-5.6 8.45-12.67 8.67-20.2.86-11.37-5.06-23.1-14.87-28.96-6.52-4.46-14.89-5.75-22.6-4.46z\" fill=\"#686868\"/>\n <path d=\"m238.29 208.39c8.84-.49 17.9 2.8 24.14 9.13 7.53 7.3 11.38 18.52 9.14 28.85-2.46 14.78-16.51 26.58-31.54 26.17-14.48.45-28.17-10.53-31.26-24.61-3.52-13.12 2.89-27.83 14.36-34.86 4.57-2.76 9.83-4.4 15.16-4.68z\" fill=\"#c3c3c3\"/>\n <path d=\"m491.97 364.22c9.59-1.56 19.35-1 29.03-1.02 37.76 1.81 74.22 19.32 100.02 46.82 15.53 16.9 27.59 37.15 34.03 59.23-47.67-.01-95.35-.01-143.03-.01-12.19-.11-24.23 5.42-32.21 14.61-6.01 6.85-9.74 15.65-10.44 24.74-1.19 14.17 5.36 28.7 16.69 37.28 7.62 5.91 17.28 9 26.92 8.8 126.69-.04 253.39-.06 380.08.03 4.76.04 9.59-.15 14.2-1.48 14.21-3.82 26.02-15.47 29.83-29.7.67 1.03.89 2.14.67 3.35-3.89 18.69-21.72 33.16-40.76 33.46-29.64-.06-59.27-.01-88.9-.05-1.63-.31-1.61 1.56-1.85 2.6-10.65 61.62-41.2 119.72-86.31 163.06-36.38 35.46-81.96 61.33-131.05 74.4-57.38-57.35-114.66-114.8-171.99-172.21-10-9.72-19.72-19.86-27.65-31.38-11.53-16.63-19.63-35.66-23.56-55.51-6.14-31.96-2.08-65.97 12.5-95.17 12.14-24.33 30.82-45.46 53.9-59.91 17.99-11.66 38.65-19.09 59.88-21.94z\" fill=\"#474747\"/>\n <g fill=\"#bfbfbf\">\n <path d=\"m479.81 483.85c7.98-9.19 20.02-14.72 32.21-14.61 47.68 0 95.36 0 143.03.01 80.65.06 161.29 0 241.93.07 20.41.05 39.2 16.83 41.25 37.17-.19.33-.58.97-.78 1.29-3.68-18.51-21.57-33.16-40.47-33.05-124.97.1-249.94.12-374.91.17-7.73.13-15.74-.8-23.15 1.96-9.06 2.84-16.73 9.1-22.27 16.7-3.34 4.55-4.39 10.24-7.28 15.03.7-9.09 4.43-17.89 10.44-24.74z\"/>\n <path d=\"m234.31 752.44c13.75-2.67 28.74 4.88 34.56 17.66 4.44 9.08 4.22 20.27-.71 29.1-5.14 9.93-15.96 16.55-27.12 16.8-8.27.38-16.52-2.84-22.67-8.32-9.03-8.2-12.77-21.73-8.9-33.36 3.36-11.16 13.35-19.93 24.84-21.88z\"/>\n </g>\n <path d=\"m498.92 476.86c7.41-2.76 15.42-1.83 23.15-1.96 124.97-.05 249.94-.07 374.91-.17 18.9-.11 36.79 14.54 40.47 33.05.2-.32.59-.96.78-1.29l.24-.4c.7 5.85-.16 11.72-1.38 17.43-3.81 14.23-15.62 25.88-29.83 29.7-4.61 1.33-9.44 1.52-14.2 1.48-126.69-.09-253.39-.07-380.08-.03-9.64.2-19.3-2.89-26.92-8.8-11.33-8.58-17.88-23.11-16.69-37.28 2.89-4.79 3.94-10.48 7.28-15.03 5.54-7.6 13.21-13.86 22.27-16.7z\" fill=\"#b0b0b0\"/>\n <path d=\"m59.49 636.08c.99 1.52 2.09 3.04 2.52 4.85 3.62 13.71 8.92 26.88 13.88 40.15 3.88 9.31 7.78 18.62 12.25 27.67 3.26 8.08 7.9 15.48 11.9 23.2 17.96 32.76 39.76 63.48 65.17 90.87 15.01 17.34 32.26 32.54 49.72 47.35 22.1 17.72 45.46 33.94 70.33 47.54 59.64 33.1 126.66 52.67 194.71 57.18 81.31 5.74 163.99-10.52 237.3-46.12 1.02 1.06 2.04 2.12 3.05 3.22l.03.61c-42.32 21.03-87.88 35.53-134.56 42.91-56.91 8.9-115.46 7.49-171.82-4.5-67.89-14.35-132.42-44.21-187.42-86.51-63.52-48.63-114.32-113.73-145.86-187.27-8.42-19.87-15.93-40.22-21.2-61.15z\" fill=\"#939393\"/>\n <path d=\"m778.34 752.53c7.71-1.29 16.08 0 22.6 4.46 9.81 5.86 15.73 17.59 14.87 28.96-.22 7.53-3.8 14.6-8.67 20.2-5.88 5.71-13.84 9.69-22.16 9.66-10.81.51-21.85-5.05-27.61-14.25-4.87-6.83-6.21-15.71-4.73-23.85 2.33-12.59 13.06-23.12 25.7-25.18z\" fill=\"#767676\"/>\n <path d=\"m506.37 864.47c8.73-1.56 18.06.66 25.08 6.11 10.94 8.14 15.55 23.72 10.58 36.46-3.37 9.44-11.46 16.91-21.07 19.68-9.35 2.81-19.91.93-27.77-4.86-10.78-7.54-15.78-22.22-11.91-34.79 3.17-11.53 13.33-20.58 25.09-22.6z\" fill=\"#bebebe\"/>\n </svg>\n </a>\n Google Authenticator\n </span>\n </div>\n\n <mat-checkbox \n name=\"default\"\n [(ngModel)]=\"default\"\n [disableRipple]=\"true\">\n Make this the default 2-step verification method\n </mat-checkbox>\n </div>\n \n </div>\n\n <div *ngIf=\"mode === 'code-input'\" class=\"code-input\">\n <div>\n Enter the 6-digit code you see in the App.\n </div>\n\n <app-code-input\n [codeLength]=\"6\"\n (codeChanged)=\"codeChanged($event)\"\n (codeCompleted)=\"codeCompleted()\">\n </app-code-input>\n </div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <ng-container *ngIf=\"appType\">\n <button\n *ngIf=\"mode === 'qr-code'\"\n type=\"button\"\n mat-button\n color=\"primary\"\n (click)=\"next()\">\n Next\n </button>\n <button\n *ngIf=\"mode === 'code-input'\"\n type=\"submit\"\n mat-button\n color=\"primary\"\n (click)=\"next()\">\n Verify\n </button> \n </ng-container>\n <button\n type=\"button\"\n mat-button\n [mat-dialog-close]=\"null\">\n Cancel\n </button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n", styles: ["ul{margin:0;padding-left:24px}qr-code{display:flex;justify-content:center;margin:30px}app-code-input{margin-top:10px}.code-input{width:400px}.app-types{text-align:center;padding:0 40px}.app-types .row{display:flex;justify-content:center}.app-types .row span{display:flex;flex-direction:column;text-align:center;max-width:100px}.app-types .row span+span{margin-left:40px}.app-types mat-checkbox{margin-top:20px}.app-types mat-checkbox ::ng-deep .mat-ripple{display:none}\n"], components: [{ type: i3.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i4.QrCodeComponent, selector: "qr-code", inputs: ["value", "size", "darkColor", "lightColor", "errorCorrectionLevel", "centerImageSrc", "centerImageSize", "margin"] }, { type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i6.CodeInputComponent, selector: "app-code-input", inputs: ["codeLength", "code"], outputs: ["codeCompleted", "codeChanged"] }, { type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i8.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"] }, { type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i9.FsSubmitButtonDirective, selector: "button[type=\"submit\"]", inputs: ["name", "dirtySubmit"] }, { type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
68
|
+
AppComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: AppComponent, selector: "ng-component", viewQueries: [{ propertyName: "form", first: true, predicate: FsFormDirective, descendants: true }], ngImport: i0, template: "<form fsForm [submit]=\"verify\">\n <fs-dialog>\n <h1 mat-dialog-title>Authenticator App Setup</h1>\n <mat-dialog-content>\n\n <div *ngIf=\"mode === 'qr-code'\" class=\"qr-code\">\n <ng-container *ngIf=\"appType\">\n <ol>\n <li>\n <ng-container *ngIf=\"appType === 'authy'\">\n Install the Authy Authenticator App from the <a href=\"https://apps.apple.com/us/app/authy/id494168017\" target=\"_blank\">App Store</a> or\n the <a href=\"https://play.google.com/store/apps/details?id=com.authy.authy\" target=\"_blank\">Google Play Store</a>.\n </ng-container>\n\n <ng-container *ngIf=\"appType === 'google'\">\n Install the Google Authenticator App from the <a href=\"https://apps.apple.com/us/app/google-authenticator/id388497605\" target=\"_blank\">App Store</a> or\n the <a href=\"https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=en_US&gl=US\" target=\"_blank\">Google Play Store</a>.\n </ng-container>\n </li>\n <ng-container *ngIf=\"appType === 'authy'\">\n <li>\n Open the Authy app and select <b>Add Account</b>.\n </li>\n <li>\n Select <b>Scan QR Code</b> and scan the QR code below.\n </li>\n </ng-container> \n <ng-container *ngIf=\"appType === 'google'\">\n <li>\n Open the Google Authentictor app and click the <b>Plus icon</b> in the lower right corner.\n </li>\n <li>\n Select <b>Scan a QR code</b> and scan the QR code below.\n </li>\n </ng-container>\n </ol>\n\n <qr-code \n *fsSkeleton=\"qrCodeUrl\"\n [value]=\"qrCodeUrl\"\n size=\"200\"\n errorCorrectionLevel=\"H\"\n [margin]=\"0\">\n </qr-code> \n </ng-container>\n\n <div class=\"app-types\" *ngIf=\"!appType\">\n <p>Select the Authenticator App you prefer</p>\n\n <div class=\"row\">\n <span>\n <a (click)=\"appTypeAuthy()\">\n <svg width=\"50\" height=\"50\" viewBox=\"0 0 256 256\" xmlns=\"http://www.w3.org/2000/svg\" preserveAspectRatio=\"xMidYMid\"><path d=\"M256 127.998C256 198.696 198.694 256 127.997 256 57.304 256 0 198.696 0 127.998 0 57.305 57.304 0 127.997 0 198.694 0 256 57.305 256 127.998z\" fill=\"#EC1C24\"/><path d=\"M117.024 100.89l30.691 30.68c4.43 4.436 11.623 4.436 16.064 0 4.431-4.435 4.441-11.622 0-16.058L133.086 84.82C111.125 62.854 75.631 62.5 53.204 83.704a9.536 9.536 0 0 0-.605.548c-.098.098-.178.202-.275.29-.1.096-.202.182-.297.278-.194.193-.371.396-.54.597-21.215 22.437-20.85 57.932 1.113 79.897L83.292 196c4.44 4.433 11.623 4.433 16.062 0 4.442-4.437 4.442-11.633.011-16.06l-30.693-30.691c-13.398-13.393-13.488-35.129-.278-48.637 13.506-13.21 35.23-13.114 48.63.279zm39.612-40.873c-4.435 4.437-4.435 11.623.012 16.059l30.681 30.693c13.39 13.392 13.477 35.125.268 48.636-13.51 13.2-35.227 13.112-48.623-.282l-30.692-30.689c-4.438-4.437-11.633-4.437-16.066 0-4.443 4.433-4.443 11.642 0 16.065l30.682 30.694c21.968 21.965 57.458 22.322 79.889 1.116.208-.184.404-.355.61-.549.094-.095.182-.192.273-.29.1-.095.197-.183.29-.289.197-.183.365-.384.54-.594 21.215-22.428 20.86-57.911-1.102-79.889l-30.692-30.682c-4.436-4.443-11.638-4.443-16.07.001z\" fill=\"#FFF\"/></svg>\n </a>\n Authy\n </span>\n \n <span>\n <a (click)=\"appTypeGoogle()\"> \n <svg width=\"50\" height=\"50\" viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"m457.07 45.92c73.67-8.62 149.41.22 218.93 26.24 62.75 23.47 120.59 60.41 167.72 108.09-40.31 39.97-80.25 80.31-120.51 120.33-25.95-25.45-56.19-46.65-89.47-61.37-44.22-19.82-93.39-28.54-141.72-25.2-54.6 3.52-108.11 22.49-152.63 54.3-55.24 38.95-96.61 97.22-114.8 162.35-13.64 47.78-14.77 98.97-3.76 147.4 8.85 39.61 26.09 77.29 50.05 110.03 22.24 30.45 50.3 56.64 82.22 76.71 36.79 23.24 78.76 38.22 121.96 43.48 37.02 4.65 74.9 2.23 111.05-7 3.97-1.91 6.24 2.61 8.73 4.86 40.74 40.95 81.68 81.7 122.43 122.63-73.31 35.6-155.99 51.86-237.3 46.12-68.05-4.51-135.07-24.08-194.71-57.18-24.87-13.6-48.23-29.82-70.33-47.54-17.46-14.81-34.71-30.01-49.72-47.35-25.41-27.39-47.21-58.11-65.17-90.87-4-7.72-8.64-15.12-11.9-23.2-4.47-9.05-8.37-18.36-12.25-27.67-4.96-13.27-10.26-26.44-13.88-40.15-.43-1.81-1.53-3.33-2.52-4.85-8.3-28.66-12.95-58.33-15.44-88.04-2.62-37.36-1.33-75.05 4.78-112.03 12.18-75.48 43.41-147.74 89.86-208.44 30.12-39.5 66.53-74.21 107.46-102.35 62.44-43.11 135.53-70.69 210.92-79.3m49.18 50.48c-5.7.99-10.96 3.76-15.38 7.43-10.4 8.93-14.14 24.81-8.17 37.28 6.33 15.02 25.16 23.1 40.36 17 15.43-5.24 24.78-23.51 19.74-39.06-4.1-15.43-20.92-25.79-36.55-22.65m-267.96 111.99c-5.33.28-10.59 1.92-15.16 4.68-11.47 7.03-17.88 21.74-14.36 34.86 3.09 14.08 16.78 25.06 31.26 24.61 15.03.41 29.08-11.39 31.54-26.17 2.24-10.33-1.61-21.55-9.14-28.85-6.24-6.33-15.3-9.62-24.14-9.13m-115.96 272c-6.62 1.23-12.84 4.58-17.54 9.4-9.45 9.72-11.72 25.57-5.02 37.42 7.16 13.96 25.48 20.86 39.98 14.62 15.02-5.51 23.99-23.42 19.06-38.71-4.04-15.41-20.86-25.96-36.48-22.73m111.98 272.05c-11.49 1.95-21.48 10.72-24.84 21.88-3.87 11.63-.13 25.16 8.9 33.36 6.15 5.48 14.4 8.7 22.67 8.32 11.16-.25 21.98-6.87 27.12-16.8 4.93-8.83 5.15-20.02.71-29.1-5.82-12.78-20.81-20.33-34.56-17.66m272.06 112.03c-11.76 2.02-21.92 11.07-25.09 22.6-3.87 12.57 1.13 27.25 11.91 34.79 7.86 5.79 18.42 7.67 27.77 4.86 9.61-2.77 17.7-10.24 21.07-19.68 4.97-12.74.36-28.32-10.58-36.46-7.02-5.45-16.35-7.67-25.08-6.11z\" fill=\"#a0a0a0\"/>\n <g fill=\"#c1c1c1\">\n <path d=\"m506.25 96.4c15.63-3.14 32.45 7.22 36.55 22.65 5.04 15.55-4.31 33.82-19.74 39.06-15.2 6.1-34.03-1.98-40.36-17-5.97-12.47-2.23-28.35 8.17-37.28 4.42-3.67 9.68-6.44 15.38-7.43z\"/>\n <path d=\"m122.33 480.39c15.62-3.23 32.44 7.32 36.48 22.73 4.93 15.29-4.04 33.2-19.06 38.71-14.5 6.24-32.82-.66-39.98-14.62-6.7-11.85-4.43-27.7 5.02-37.42 4.7-4.82 10.92-8.17 17.54-9.4z\"/>\n </g>\n <path d=\"m843.72 180.25.11-.11c24.64 25.12 46.96 52.6 65.61 82.47 36.01 57.16 59.38 122.22 67.87 189.25 5.67 44.88 5.27 90.6-2.05 135.27-12.7 80.01-46.94 156.41-97.9 219.36-42.3 52.48-95.87 96.04-156.41 125.76l-.63-.26c-1.01-1.1-2.03-2.16-3.05-3.22-40.75-40.93-81.69-81.68-122.43-122.63-2.49-2.25-4.76-6.77-8.73-4.86-36.15 9.23-74.03 11.65-111.05 7-43.2-5.26-85.17-20.24-121.96-43.48-31.92-20.07-59.98-46.26-82.22-76.71-23.96-32.74-41.2-70.42-50.05-110.03-11.01-48.43-9.88-99.62 3.76-147.4 18.19-65.13 59.56-123.4 114.8-162.35 44.52-31.81 98.03-50.78 152.63-54.3 48.33-3.34 97.5 5.38 141.72 25.2 33.28 14.72 63.52 35.92 89.47 61.37 40.26-40.02 80.2-80.36 120.51-120.33m-351.75 183.97c-21.23 2.85-41.89 10.28-59.88 21.94-23.08 14.45-41.76 35.58-53.9 59.91-14.58 29.2-18.64 63.21-12.5 95.17 3.93 19.85 12.03 38.88 23.56 55.51 7.93 11.52 17.65 21.66 27.65 31.38 57.33 57.41 114.61 114.86 171.99 172.21 49.09-13.07 94.67-38.94 131.05-74.4 45.11-43.34 75.66-101.44 86.31-163.06.24-1.04.22-2.91 1.85-2.6 29.63.04 59.26-.01 88.9.05 19.04-.3 36.87-14.77 40.76-33.46.22-1.21 0-2.32-.67-3.35 1.22-5.71 2.08-11.58 1.38-17.43l-.24.4c-2.05-20.34-20.84-37.12-41.25-37.17-80.64-.07-161.28-.01-241.93-.07-6.44-22.08-18.5-42.33-34.03-59.23-25.8-27.5-62.26-45.01-100.02-46.82-9.68.02-19.44-.54-29.03 1.02m286.37 388.31c-12.64 2.06-23.37 12.59-25.7 25.18-1.48 8.14-.14 17.02 4.73 23.85 5.76 9.2 16.8 14.76 27.61 14.25 8.32.03 16.28-3.95 22.16-9.66 4.87-5.6 8.45-12.67 8.67-20.2.86-11.37-5.06-23.1-14.87-28.96-6.52-4.46-14.89-5.75-22.6-4.46z\" fill=\"#686868\"/>\n <path d=\"m238.29 208.39c8.84-.49 17.9 2.8 24.14 9.13 7.53 7.3 11.38 18.52 9.14 28.85-2.46 14.78-16.51 26.58-31.54 26.17-14.48.45-28.17-10.53-31.26-24.61-3.52-13.12 2.89-27.83 14.36-34.86 4.57-2.76 9.83-4.4 15.16-4.68z\" fill=\"#c3c3c3\"/>\n <path d=\"m491.97 364.22c9.59-1.56 19.35-1 29.03-1.02 37.76 1.81 74.22 19.32 100.02 46.82 15.53 16.9 27.59 37.15 34.03 59.23-47.67-.01-95.35-.01-143.03-.01-12.19-.11-24.23 5.42-32.21 14.61-6.01 6.85-9.74 15.65-10.44 24.74-1.19 14.17 5.36 28.7 16.69 37.28 7.62 5.91 17.28 9 26.92 8.8 126.69-.04 253.39-.06 380.08.03 4.76.04 9.59-.15 14.2-1.48 14.21-3.82 26.02-15.47 29.83-29.7.67 1.03.89 2.14.67 3.35-3.89 18.69-21.72 33.16-40.76 33.46-29.64-.06-59.27-.01-88.9-.05-1.63-.31-1.61 1.56-1.85 2.6-10.65 61.62-41.2 119.72-86.31 163.06-36.38 35.46-81.96 61.33-131.05 74.4-57.38-57.35-114.66-114.8-171.99-172.21-10-9.72-19.72-19.86-27.65-31.38-11.53-16.63-19.63-35.66-23.56-55.51-6.14-31.96-2.08-65.97 12.5-95.17 12.14-24.33 30.82-45.46 53.9-59.91 17.99-11.66 38.65-19.09 59.88-21.94z\" fill=\"#474747\"/>\n <g fill=\"#bfbfbf\">\n <path d=\"m479.81 483.85c7.98-9.19 20.02-14.72 32.21-14.61 47.68 0 95.36 0 143.03.01 80.65.06 161.29 0 241.93.07 20.41.05 39.2 16.83 41.25 37.17-.19.33-.58.97-.78 1.29-3.68-18.51-21.57-33.16-40.47-33.05-124.97.1-249.94.12-374.91.17-7.73.13-15.74-.8-23.15 1.96-9.06 2.84-16.73 9.1-22.27 16.7-3.34 4.55-4.39 10.24-7.28 15.03.7-9.09 4.43-17.89 10.44-24.74z\"/>\n <path d=\"m234.31 752.44c13.75-2.67 28.74 4.88 34.56 17.66 4.44 9.08 4.22 20.27-.71 29.1-5.14 9.93-15.96 16.55-27.12 16.8-8.27.38-16.52-2.84-22.67-8.32-9.03-8.2-12.77-21.73-8.9-33.36 3.36-11.16 13.35-19.93 24.84-21.88z\"/>\n </g>\n <path d=\"m498.92 476.86c7.41-2.76 15.42-1.83 23.15-1.96 124.97-.05 249.94-.07 374.91-.17 18.9-.11 36.79 14.54 40.47 33.05.2-.32.59-.96.78-1.29l.24-.4c.7 5.85-.16 11.72-1.38 17.43-3.81 14.23-15.62 25.88-29.83 29.7-4.61 1.33-9.44 1.52-14.2 1.48-126.69-.09-253.39-.07-380.08-.03-9.64.2-19.3-2.89-26.92-8.8-11.33-8.58-17.88-23.11-16.69-37.28 2.89-4.79 3.94-10.48 7.28-15.03 5.54-7.6 13.21-13.86 22.27-16.7z\" fill=\"#b0b0b0\"/>\n <path d=\"m59.49 636.08c.99 1.52 2.09 3.04 2.52 4.85 3.62 13.71 8.92 26.88 13.88 40.15 3.88 9.31 7.78 18.62 12.25 27.67 3.26 8.08 7.9 15.48 11.9 23.2 17.96 32.76 39.76 63.48 65.17 90.87 15.01 17.34 32.26 32.54 49.72 47.35 22.1 17.72 45.46 33.94 70.33 47.54 59.64 33.1 126.66 52.67 194.71 57.18 81.31 5.74 163.99-10.52 237.3-46.12 1.02 1.06 2.04 2.12 3.05 3.22l.03.61c-42.32 21.03-87.88 35.53-134.56 42.91-56.91 8.9-115.46 7.49-171.82-4.5-67.89-14.35-132.42-44.21-187.42-86.51-63.52-48.63-114.32-113.73-145.86-187.27-8.42-19.87-15.93-40.22-21.2-61.15z\" fill=\"#939393\"/>\n <path d=\"m778.34 752.53c7.71-1.29 16.08 0 22.6 4.46 9.81 5.86 15.73 17.59 14.87 28.96-.22 7.53-3.8 14.6-8.67 20.2-5.88 5.71-13.84 9.69-22.16 9.66-10.81.51-21.85-5.05-27.61-14.25-4.87-6.83-6.21-15.71-4.73-23.85 2.33-12.59 13.06-23.12 25.7-25.18z\" fill=\"#767676\"/>\n <path d=\"m506.37 864.47c8.73-1.56 18.06.66 25.08 6.11 10.94 8.14 15.55 23.72 10.58 36.46-3.37 9.44-11.46 16.91-21.07 19.68-9.35 2.81-19.91.93-27.77-4.86-10.78-7.54-15.78-22.22-11.91-34.79 3.17-11.53 13.33-20.58 25.09-22.6z\" fill=\"#bebebe\"/>\n </svg>\n </a>\n Google Authenticator\n </span>\n </div>\n </div>\n \n </div>\n\n <div *ngIf=\"mode === 'code-input'\" class=\"code-input\">\n <div>\n Enter the 6-digit code you see in the App.\n </div>\n\n <app-code-input\n [codeLength]=\"6\"\n (codeChanged)=\"codeChanged($event)\">\n </app-code-input>\n\n <mat-checkbox name=\"default\" [(ngModel)]=\"default\" [disableRipple]=\"true\">\n Make this the default 2-step verification method\n </mat-checkbox>\n </div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <ng-container *ngIf=\"appType\">\n <button\n *ngIf=\"mode === 'qr-code'\"\n type=\"button\"\n mat-button\n color=\"primary\"\n (click)=\"next()\">\n Next\n </button>\n <button\n *ngIf=\"mode === 'code-input'\"\n type=\"submit\"\n mat-button\n color=\"primary\"\n (click)=\"next()\">\n Verify\n </button> \n </ng-container>\n <button\n type=\"button\"\n mat-button\n [mat-dialog-close]=\"null\">\n Cancel\n </button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n", styles: ["ul{margin:0;padding-left:24px}qr-code{display:flex;justify-content:center;margin:30px}app-code-input{margin-top:10px}.code-input{width:400px}.app-types{text-align:center;padding:0 40px}.app-types .row{display:flex;justify-content:center}.app-types .row span{display:flex;flex-direction:column;text-align:center;max-width:100px}.app-types .row span+span{margin-left:40px}mat-checkbox{margin:8px 0}\n"], components: [{ type: i3.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i4.QrCodeComponent, selector: "qr-code", inputs: ["value", "size", "darkColor", "lightColor", "errorCorrectionLevel", "centerImageSrc", "centerImageSize", "margin"] }, { type: i5.CodeInputComponent, selector: "app-code-input", inputs: ["codeLength", "code"], outputs: ["codeCompleted", "codeChanged"] }, { type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i8.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"] }, { type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i9.FsSubmitButtonDirective, selector: "button[type=\"submit\"]", inputs: ["name", "dirtySubmit"] }, { type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
69
69
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: AppComponent, decorators: [{
|
|
70
70
|
type: Component,
|
|
71
71
|
args: [{
|
|
@@ -80,4 +80,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
80
80
|
type: ViewChild,
|
|
81
81
|
args: [FsFormDirective]
|
|
82
82
|
}] } });
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2UvY29tcG9uZW50cy9hcHAvYXBwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2UvY29tcG9uZW50cy9hcHAvYXBwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQUUsTUFBTSxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFVLFNBQVMsR0FDakYsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRXpGLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVNyQyxNQUFNLE9BQU8sWUFBWTtJQWF2QixZQUNtQyxLQUFVLEVBQ25DLFVBQXNDLEVBQ3RDLE1BQXlCLEVBQ3pCLFFBQW1CO1FBSE0sVUFBSyxHQUFMLEtBQUssQ0FBSztRQUNuQyxlQUFVLEdBQVYsVUFBVSxDQUE0QjtRQUN0QyxXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUN6QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBWHRCLFNBQUksR0FBNkIsU0FBUyxDQUFDO1FBcUQzQyxXQUFNLEdBQUcsR0FBRyxFQUFFO1lBQ25CLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7aUJBQ25FLElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLCtDQUErQyxDQUFDLENBQUM7Z0JBQ3ZFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlCLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDTixDQUFDLENBQUM7SUFqREMsQ0FBQztJQUVHLFFBQVE7UUFDYixJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQztRQUNoRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCLENBQUM7SUFDckUsQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTSxhQUFhLENBQUMsT0FBTztRQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsc0JBQXNCLENBQUMsd0JBQXdCLENBQUM7WUFDbkQsSUFBSSxFQUFFLHNCQUFzQixDQUFDLEdBQUc7WUFDaEMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3RCLENBQUM7YUFDQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7WUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxhQUFhO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxJQUFJO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVNLElBQUk7UUFDVCxJQUFJLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztJQUMzQixDQUFDOzswR0F6RFUsWUFBWSxrQkFjYixlQUFlOzhGQWRkLFlBQVksMEZBRVosZUFBZSxnRENyQjVCLHc2WUFvSUE7NEZEakhhLFlBQVk7a0JBTHhCLFNBQVM7bUJBQUM7b0JBQ1QsV0FBVyxFQUFFLHNCQUFzQjtvQkFDbkMsU0FBUyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ25DLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs7MEJBZUksTUFBTTsyQkFBQyxlQUFlOytIQVhsQixJQUFJO3NCQURWLFNBQVM7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCwgSW5qZWN0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uSW5pdCwgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5pbXBvcnQgeyBGc0Zvcm1EaXJlY3RpdmUgfSBmcm9tICdAZmlyZXN0aXRjaC9mb3JtJztcbmltcG9ydCB7IEZzTWVzc2FnZSB9IGZyb20gJ0BmaXJlc3RpdGNoL21lc3NhZ2UnO1xuaW1wb3J0IHsgVmVyaWZpY2F0aW9uTWV0aG9kVHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL2VudW1zL3ZlcmlmaWNhdGlvbi1tZXRob2QtdHlwZS5lbnVtJztcblxuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVHdvRmFjdG9yTWFuYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FwcC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQXBwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBAVmlld0NoaWxkKEZzRm9ybURpcmVjdGl2ZSlcbiAgcHVibGljIGZvcm06IEZzRm9ybURpcmVjdGl2ZTtcblxuICBwdWJsaWMgdHdvRmFjdG9yTWFuYWdlU2VydmljZTogVHdvRmFjdG9yTWFuYWdlU2VydmljZTtcbiAgcHVibGljIG1vZGU6ICdxci1jb2RlJyB8ICdjb2RlLWlucHV0JyA9ICdxci1jb2RlJztcbiAgcHVibGljIGFjY291bnRJZDtcbiAgcHVibGljIHFyQ29kZVVybDtcbiAgcHVibGljIGNvZGU7XG4gIHB1YmxpYyBkZWZhdWx0O1xuICBwdWJsaWMgYXBwVHlwZTogJ2dvb2dsZScgfCAnYXV0aHknO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwcml2YXRlIF9kYXRhOiBhbnksXG4gICAgcHJpdmF0ZSBfZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8QXBwQ29tcG9uZW50PixcbiAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBfbWVzc2FnZTogRnNNZXNzYWdlLFxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudHdvRmFjdG9yTWFuYWdlU2VydmljZSA9IHRoaXMuX2RhdGEudHdvRmFjdG9yTWFuYWdlU2VydmljZTtcbiAgICB0aGlzLmFjY291bnRJZCA9IHRoaXMuX2RhdGEuYWNjb3VudElkO1xuICAgIHRoaXMuZGVmYXVsdCA9ICF0aGlzLnR3b0ZhY3Rvck1hbmFnZVNlcnZpY2UuaGFzVmVyaWZpY2F0aW9uTWV0aG9kcztcbiAgfVxuXG4gIHB1YmxpYyBhcHBUeXBlR29vZ2xlKCk6IHZvaWQge1xuICAgIHRoaXMuYXBwVHlwZVNlbGVjdCgnZ29vZ2xlJyk7XG4gIH1cblxuICBwdWJsaWMgYXBwVHlwZUF1dGh5KCk6IHZvaWQge1xuICAgIHRoaXMuYXBwVHlwZVNlbGVjdCgnYXV0aHknKTtcbiAgfVxuXG4gIHB1YmxpYyBhcHBUeXBlU2VsZWN0KGFwcFR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLmFwcFR5cGUgPSBhcHBUeXBlO1xuICAgIHRoaXMudHdvRmFjdG9yTWFuYWdlU2VydmljZS52ZXJpZmljYXRpb25NZXRob2RDcmVhdGUoe1xuICAgICAgdHlwZTogVmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5BcHAsXG4gICAgICBkZWZhdWx0OiB0aGlzLmRlZmF1bHQsXG4gICAgfSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMucXJDb2RlVXJsID0gcmVzcG9uc2UucXJDb2RlVXJsO1xuICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNvZGVDb21wbGV0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtLnRyaWdnZXJTdWJtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBjb2RlQ2hhbmdlZChjb2RlKTogdm9pZCB7XG4gICAgdGhpcy5jb2RlID0gY29kZTtcbiAgICB0aGlzLmZvcm0uZGlydHkoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZXh0KCk6IHZvaWQge1xuICAgIHRoaXMubW9kZSA9ICdjb2RlLWlucHV0JztcbiAgfVxuXG4gIHB1YmxpYyB2ZXJpZnkgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMudHdvRmFjdG9yTWFuYWdlU2VydmljZS52ZXJpZmljYXRpb25NZXRob2RWZXJpZnkodGhpcy5jb2RlKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdDcmVhdGVkIGFwcCBhdXRoZW50aWNhdG9yIHZlcmlmaWNhdGlvbiBtZXRob2QnKTtcbiAgICAgICAgICB0aGlzLl9kaWFsb2dSZWYuY2xvc2UodHJ1ZSk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfTtcblxufVxuIiwiPGZvcm0gZnNGb3JtIFtzdWJtaXRdPVwidmVyaWZ5XCI+XG4gIDxmcy1kaWFsb2c+XG4gICAgPGgxIG1hdC1kaWFsb2ctdGl0bGU+QXV0aGVudGljYXRvciBBcHAgU2V0dXA8L2gxPlxuICAgIDxtYXQtZGlhbG9nLWNvbnRlbnQ+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCJtb2RlID09PSAncXItY29kZSdcIiBjbGFzcz1cInFyLWNvZGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFwcFR5cGVcIj5cbiAgICAgICAgICA8b2w+XG4gICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcHBUeXBlID09PSAnYXV0aHknXCI+XG4gICAgICAgICAgICAgICAgSW5zdGFsbCB0aGUgQXV0aHkgQXV0aGVudGljYXRvciBBcHAgZnJvbSB0aGUgPGEgaHJlZj1cImh0dHBzOi8vYXBwcy5hcHBsZS5jb20vdXMvYXBwL2F1dGh5L2lkNDk0MTY4MDE3XCIgdGFyZ2V0PVwiX2JsYW5rXCI+QXBwIFN0b3JlPC9hPiBvclxuICAgICAgICAgICAgICAgIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly9wbGF5Lmdvb2dsZS5jb20vc3RvcmUvYXBwcy9kZXRhaWxzP2lkPWNvbS5hdXRoeS5hdXRoeVwiIHRhcmdldD1cIl9ibGFua1wiPkdvb2dsZSBQbGF5IFN0b3JlPC9hPi5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFwcFR5cGUgPT09ICdnb29nbGUnXCI+XG4gICAgICAgICAgICAgICAgSW5zdGFsbCB0aGUgR29vZ2xlIEF1dGhlbnRpY2F0b3IgQXBwIGZyb20gdGhlIDxhIGhyZWY9XCJodHRwczovL2FwcHMuYXBwbGUuY29tL3VzL2FwcC9nb29nbGUtYXV0aGVudGljYXRvci9pZDM4ODQ5NzYwNVwiIHRhcmdldD1cIl9ibGFua1wiPkFwcCBTdG9yZTwvYT4gb3JcbiAgICAgICAgICAgICAgICB0aGUgPGEgaHJlZj1cImh0dHBzOi8vcGxheS5nb29nbGUuY29tL3N0b3JlL2FwcHMvZGV0YWlscz9pZD1jb20uZ29vZ2xlLmFuZHJvaWQuYXBwcy5hdXRoZW50aWNhdG9yMiZobD1lbl9VUyZnbD1VU1wiIHRhcmdldD1cIl9ibGFua1wiPkdvb2dsZSBQbGF5IFN0b3JlPC9hPi5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFwcFR5cGUgPT09ICdhdXRoeSdcIj5cbiAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIE9wZW4gdGhlIEF1dGh5IGFwcCBhbmQgc2VsZWN0IDxiPkFkZCBBY2NvdW50PC9iPi5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIFNlbGVjdCA8Yj5TY2FuIFFSIENvZGU8L2I+IGFuZCBzY2FuIHRoZSBRUiBjb2RlIGJlbG93LlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+ICAgICAgICAgXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXBwVHlwZSA9PT0gJ2dvb2dsZSdcIj5cbiAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIE9wZW4gdGhlIEdvb2dsZSBBdXRoZW50aWN0b3IgYXBwIGFuZCBjbGljayB0aGUgPGI+UGx1cyBpY29uPC9iPiBpbiB0aGUgbG93ZXIgcmlnaHQgY29ybmVyLlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgU2VsZWN0IDxiPlNjYW4gYSBRUiBjb2RlPC9iPiBhbmQgc2NhbiB0aGUgUVIgY29kZSBiZWxvdy5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvb2w+XG5cbiAgICAgICAgICA8cXItY29kZSBcbiAgICAgICAgICAgICpmc1NrZWxldG9uPVwicXJDb2RlVXJsXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJxckNvZGVVcmxcIlxuICAgICAgICAgICAgc2l6ZT1cIjIwMFwiXG4gICAgICAgICAgICBlcnJvckNvcnJlY3Rpb25MZXZlbD1cIkhcIlxuICAgICAgICAgICAgW21hcmdpbl09XCIwXCI+XG4gICAgICAgICAgPC9xci1jb2RlPiBcbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFwcC10eXBlc1wiICpuZ0lmPVwiIWFwcFR5cGVcIj5cbiAgICAgICAgICA8cD5TZWxlY3QgdGhlIEF1dGhlbnRpY2F0b3IgQXBwIHlvdSBwcmVmZXI8L3A+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cImFwcFR5cGVBdXRoeSgpXCI+XG4gICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjUwXCIgaGVpZ2h0PVwiNTBcIiB2aWV3Qm94PVwiMCAwIDI1NiAyNTZcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgcHJlc2VydmVBc3BlY3RSYXRpbz1cInhNaWRZTWlkXCI+PHBhdGggZD1cIk0yNTYgMTI3Ljk5OEMyNTYgMTk4LjY5NiAxOTguNjk0IDI1NiAxMjcuOTk3IDI1NiA1Ny4zMDQgMjU2IDAgMTk4LjY5NiAwIDEyNy45OTggMCA1Ny4zMDUgNTcuMzA0IDAgMTI3Ljk5NyAwIDE5OC42OTQgMCAyNTYgNTcuMzA1IDI1NiAxMjcuOTk4elwiIGZpbGw9XCIjRUMxQzI0XCIvPjxwYXRoIGQ9XCJNMTE3LjAyNCAxMDAuODlsMzAuNjkxIDMwLjY4YzQuNDMgNC40MzYgMTEuNjIzIDQuNDM2IDE2LjA2NCAwIDQuNDMxLTQuNDM1IDQuNDQxLTExLjYyMiAwLTE2LjA1OEwxMzMuMDg2IDg0LjgyQzExMS4xMjUgNjIuODU0IDc1LjYzMSA2Mi41IDUzLjIwNCA4My43MDRhOS41MzYgOS41MzYgMCAwIDAtLjYwNS41NDhjLS4wOTguMDk4LS4xNzguMjAyLS4yNzUuMjktLjEuMDk2LS4yMDIuMTgyLS4yOTcuMjc4LS4xOTQuMTkzLS4zNzEuMzk2LS41NC41OTctMjEuMjE1IDIyLjQzNy0yMC44NSA1Ny45MzIgMS4xMTMgNzkuODk3TDgzLjI5MiAxOTZjNC40NCA0LjQzMyAxMS42MjMgNC40MzMgMTYuMDYyIDAgNC40NDItNC40MzcgNC40NDItMTEuNjMzLjAxMS0xNi4wNmwtMzAuNjkzLTMwLjY5MWMtMTMuMzk4LTEzLjM5My0xMy40ODgtMzUuMTI5LS4yNzgtNDguNjM3IDEzLjUwNi0xMy4yMSAzNS4yMy0xMy4xMTQgNDguNjMuMjc5em0zOS42MTItNDAuODczYy00LjQzNSA0LjQzNy00LjQzNSAxMS42MjMuMDEyIDE2LjA1OWwzMC42ODEgMzAuNjkzYzEzLjM5IDEzLjM5MiAxMy40NzcgMzUuMTI1LjI2OCA0OC42MzYtMTMuNTEgMTMuMi0zNS4yMjcgMTMuMTEyLTQ4LjYyMy0uMjgybC0zMC42OTItMzAuNjg5Yy00LjQzOC00LjQzNy0xMS42MzMtNC40MzctMTYuMDY2IDAtNC40NDMgNC40MzMtNC40NDMgMTEuNjQyIDAgMTYuMDY1bDMwLjY4MiAzMC42OTRjMjEuOTY4IDIxLjk2NSA1Ny40NTggMjIuMzIyIDc5Ljg4OSAxLjExNi4yMDgtLjE4NC40MDQtLjM1NS42MS0uNTQ5LjA5NC0uMDk1LjE4Mi0uMTkyLjI3My0uMjkuMS0uMDk1LjE5Ny0uMTgzLjI5LS4yODkuMTk3LS4xODMuMzY1LS4zODQuNTQtLjU5NCAyMS4yMTUtMjIuNDI4IDIwLjg2LTU3LjkxMS0xLjEwMi03OS44ODlsLTMwLjY5Mi0zMC42ODJjLTQuNDM2LTQuNDQzLTExLjYzOC00LjQ0My0xNi4wNy4wMDF6XCIgZmlsbD1cIiNGRkZcIi8+PC9zdmc+XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgQXV0aHlcbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgIDxhIChjbGljayk9XCJhcHBUeXBlR29vZ2xlKClcIj4gICAgICAgICAgXG4gICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjUwXCIgIGhlaWdodD1cIjUwXCIgdmlld0JveD1cIjAgMCAxMDI0IDEwMjRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwibTQ1Ny4wNyA0NS45MmM3My42Ny04LjYyIDE0OS40MS4yMiAyMTguOTMgMjYuMjQgNjIuNzUgMjMuNDcgMTIwLjU5IDYwLjQxIDE2Ny43MiAxMDguMDktNDAuMzEgMzkuOTctODAuMjUgODAuMzEtMTIwLjUxIDEyMC4zMy0yNS45NS0yNS40NS01Ni4xOS00Ni42NS04OS40Ny02MS4zNy00NC4yMi0xOS44Mi05My4zOS0yOC41NC0xNDEuNzItMjUuMi01NC42IDMuNTItMTA4LjExIDIyLjQ5LTE1Mi42MyA1NC4zLTU1LjI0IDM4Ljk1LTk2LjYxIDk3LjIyLTExNC44IDE2Mi4zNS0xMy42NCA0Ny43OC0xNC43NyA5OC45Ny0zLjc2IDE0Ny40IDguODUgMzkuNjEgMjYuMDkgNzcuMjkgNTAuMDUgMTEwLjAzIDIyLjI0IDMwLjQ1IDUwLjMgNTYuNjQgODIuMjIgNzYuNzEgMzYuNzkgMjMuMjQgNzguNzYgMzguMjIgMTIxLjk2IDQzLjQ4IDM3LjAyIDQuNjUgNzQuOSAyLjIzIDExMS4wNS03IDMuOTctMS45MSA2LjI0IDIuNjEgOC43MyA0Ljg2IDQwLjc0IDQwLjk1IDgxLjY4IDgxLjcgMTIyLjQzIDEyMi42My03My4zMSAzNS42LTE1NS45OSA1MS44Ni0yMzcuMyA0Ni4xMi02OC4wNS00LjUxLTEzNS4wNy0yNC4wOC0xOTQuNzEtNTcuMTgtMjQuODctMTMuNi00OC4yMy0yOS44Mi03MC4zMy00Ny41NC0xNy40Ni0xNC44MS0zNC43MS0zMC4wMS00OS43Mi00Ny4zNS0yNS40MS0yNy4zOS00Ny4yMS01OC4xMS02NS4xNy05MC44Ny00LTcuNzItOC42NC0xNS4xMi0xMS45LTIzLjItNC40Ny05LjA1LTguMzctMTguMzYtMTIuMjUtMjcuNjctNC45Ni0xMy4yNy0xMC4yNi0yNi40NC0xMy44OC00MC4xNS0uNDMtMS44MS0xLjUzLTMuMzMtMi41Mi00Ljg1LTguMy0yOC42Ni0xMi45NS01OC4zMy0xNS40NC04OC4wNC0yLjYyLTM3LjM2LTEuMzMtNzUuMDUgNC43OC0xMTIuMDMgMTIuMTgtNzUuNDggNDMuNDEtMTQ3Ljc0IDg5Ljg2LTIwOC40NCAzMC4xMi0zOS41IDY2LjUzLTc0LjIxIDEwNy40Ni0xMDIuMzUgNjIuNDQtNDMuMTEgMTM1LjUzLTcwLjY5IDIxMC45Mi03OS4zbTQ5LjE4IDUwLjQ4Yy01LjcuOTktMTAuOTYgMy43Ni0xNS4zOCA3LjQzLTEwLjQgOC45My0xNC4xNCAyNC44MS04LjE3IDM3LjI4IDYuMzMgMTUuMDIgMjUuMTYgMjMuMSA0MC4zNiAxNyAxNS40My01LjI0IDI0Ljc4LTIzLjUxIDE5Ljc0LTM5LjA2LTQuMS0xNS40My0yMC45Mi0yNS43OS0zNi41NS0yMi42NW0tMjY3Ljk2IDExMS45OWMtNS4zMy4yOC0xMC41OSAxLjkyLTE1LjE2IDQuNjgtMTEuNDcgNy4wMy0xNy44OCAyMS43NC0xNC4zNiAzNC44NiAzLjA5IDE0LjA4IDE2Ljc4IDI1LjA2IDMxLjI2IDI0LjYxIDE1LjAzLjQxIDI5LjA4LTExLjM5IDMxLjU0LTI2LjE3IDIuMjQtMTAuMzMtMS42MS0yMS41NS05LjE0LTI4Ljg1LTYuMjQtNi4zMy0xNS4zLTkuNjItMjQuMTQtOS4xM20tMTE1Ljk2IDI3MmMtNi42MiAxLjIzLTEyLjg0IDQuNTgtMTcuNTQgOS40LTkuNDUgOS43Mi0xMS43MiAyNS41Ny01LjAyIDM3LjQyIDcuMTYgMTMuOTYgMjUuNDggMjAuODYgMzkuOTggMTQuNjIgMTUuMDItNS41MSAyMy45OS0yMy40MiAxOS4wNi0zOC43MS00LjA0LTE1LjQxLTIwLjg2LTI1Ljk2LTM2LjQ4LTIyLjczbTExMS45OCAyNzIuMDVjLTExLjQ5IDEuOTUtMjEuNDggMTAuNzItMjQuODQgMjEuODgtMy44NyAxMS42My0uMTMgMjUuMTYgOC45IDMzLjM2IDYuMTUgNS40OCAxNC40IDguNyAyMi42NyA4LjMyIDExLjE2LS4yNSAyMS45OC02Ljg3IDI3LjEyLTE2LjggNC45My04LjgzIDUuMTUtMjAuMDIuNzEtMjkuMS01LjgyLTEyLjc4LTIwLjgxLTIwLjMzLTM0LjU2LTE3LjY2bTI3Mi4wNiAxMTIuMDNjLTExLjc2IDIuMDItMjEuOTIgMTEuMDctMjUuMDkgMjIuNi0zLjg3IDEyLjU3IDEuMTMgMjcuMjUgMTEuOTEgMzQuNzkgNy44NiA1Ljc5IDE4LjQyIDcuNjcgMjcuNzcgNC44NiA5LjYxLTIuNzcgMTcuNy0xMC4yNCAyMS4wNy0xOS42OCA0Ljk3LTEyLjc0LjM2LTI4LjMyLTEwLjU4LTM2LjQ2LTcuMDItNS40NS0xNi4zNS03LjY3LTI1LjA4LTYuMTF6XCIgZmlsbD1cIiNhMGEwYTBcIi8+XG4gICAgICAgICAgICAgICAgICA8ZyBmaWxsPVwiI2MxYzFjMVwiPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwibTUwNi4yNSA5Ni40YzE1LjYzLTMuMTQgMzIuNDUgNy4yMiAzNi41NSAyMi42NSA1LjA0IDE1LjU1LTQuMzEgMzMuODItMTkuNzQgMzkuMDYtMTUuMiA2LjEtMzQuMDMtMS45OC00MC4zNi0xNy01Ljk3LTEyLjQ3LTIuMjMtMjguMzUgOC4xNy0zNy4yOCA0LjQyLTMuNjcgOS42OC02LjQ0IDE1LjM4LTcuNDN6XCIvPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwibTEyMi4zMyA0ODAuMzljMTUuNjItMy4yMyAzMi40NCA3LjMyIDM2LjQ4IDIyLjczIDQuOTMgMTUuMjktNC4wNCAzMy4yLTE5LjA2IDM4LjcxLTE0LjUgNi4yNC0zMi44Mi0uNjYtMzkuOTgtMTQuNjItNi43LTExLjg1LTQuNDMtMjcuNyA1LjAyLTM3LjQyIDQuNy00LjgyIDEwLjkyLTguMTcgMTcuNTQtOS40elwiLz5cbiAgICAgICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJtODQzLjcyIDE4MC4yNS4xMS0uMTFjMjQuNjQgMjUuMTIgNDYuOTYgNTIuNiA2NS42MSA4Mi40NyAzNi4wMSA1Ny4xNiA1OS4zOCAxMjIuMjIgNjcuODcgMTg5LjI1IDUuNjcgNDQuODggNS4yNyA5MC42LTIuMDUgMTM1LjI3LTEyLjcgODAuMDEtNDYuOTQgMTU2LjQxLTk3LjkgMjE5LjM2LTQyLjMgNTIuNDgtOTUuODcgOTYuMDQtMTU2LjQxIDEyNS43NmwtLjYzLS4yNmMtMS4wMS0xLjEtMi4wMy0yLjE2LTMuMDUtMy4yMi00MC43NS00MC45My04MS42OS04MS42OC0xMjIuNDMtMTIyLjYzLTIuNDktMi4yNS00Ljc2LTYuNzctOC43My00Ljg2LTM2LjE1IDkuMjMtNzQuMDMgMTEuNjUtMTExLjA1IDctNDMuMi01LjI2LTg1LjE3LTIwLjI0LTEyMS45Ni00My40OC0zMS45Mi0yMC4wNy01OS45OC00Ni4yNi04Mi4yMi03Ni43MS0yMy45Ni0zMi43NC00MS4yLTcwLjQyLTUwLjA1LTExMC4wMy0xMS4wMS00OC40My05Ljg4LTk5LjYyIDMuNzYtMTQ3LjQgMTguMTktNjUuMTMgNTkuNTYtMTIzLjQgMTE0LjgtMTYyLjM1IDQ0LjUyLTMxLjgxIDk4LjAzLTUwLjc4IDE1Mi42My01NC4zIDQ4LjMzLTMuMzQgOTcuNSA1LjM4IDE0MS43MiAyNS4yIDMzLjI4IDE0LjcyIDYzLjUyIDM1LjkyIDg5LjQ3IDYxLjM3IDQwLjI2LTQwLjAyIDgwLjItODAuMzYgMTIwLjUxLTEyMC4zM20tMzUxLjc1IDE4My45N2MtMjEuMjMgMi44NS00MS44OSAxMC4yOC01OS44OCAyMS45NC0yMy4wOCAxNC40NS00MS43NiAzNS41OC01My45IDU5LjkxLTE0LjU4IDI5LjItMTguNjQgNjMuMjEtMTIuNSA5NS4xNyAzLjkzIDE5Ljg1IDEyLjAzIDM4Ljg4IDIzLjU2IDU1LjUxIDcuOTMgMTEuNTIgMTcuNjUgMjEuNjYgMjcuNjUgMzEuMzggNTcuMzMgNTcuNDEgMTE0LjYxIDExNC44NiAxNzEuOTkgMTcyLjIxIDQ5LjA5LTEzLjA3IDk0LjY3LTM4Ljk0IDEzMS4wNS03NC40IDQ1LjExLTQzLjM0IDc1LjY2LTEwMS40NCA4Ni4zMS0xNjMuMDYuMjQtMS4wNC4yMi0yLjkxIDEuODUtMi42IDI5LjYzLjA0IDU5LjI2LS4wMSA4OC45LjA1IDE5LjA0LS4zIDM2Ljg3LTE0Ljc3IDQwLjc2LTMzLjQ2LjIyLTEuMjEgMC0yLjMyLS42Ny0zLjM1IDEuMjItNS43MSAyLjA4LTExLjU4IDEuMzgtMTcuNDNsLS4yNC40Yy0yLjA1LTIwLjM0LTIwLjg0LTM3LjEyLTQxLjI1LTM3LjE3LTgwLjY0LS4wNy0xNjEuMjgtLjAxLTI0MS45My0uMDctNi40NC0yMi4wOC0xOC41LTQyLjMzLTM0LjAzLTU5LjIzLTI1LjgtMjcuNS02Mi4yNi00NS4wMS0xMDAuMDItNDYuODItOS42OC4wMi0xOS40NC0uNTQtMjkuMDMgMS4wMm0yODYuMzcgMzg4LjMxYy0xMi42NCAyLjA2LTIzLjM3IDEyLjU5LTI1LjcgMjUuMTgtMS40OCA4LjE0LS4xNCAxNy4wMiA0LjczIDIzLjg1IDUuNzYgOS4yIDE2LjggMTQuNzYgMjcuNjEgMTQuMjUgOC4zMi4wMyAxNi4yOC0zLjk1IDIyLjE2LTkuNjYgNC44Ny01LjYgOC40NS0xMi42NyA4LjY3LTIwLjIuODYtMTEuMzctNS4wNi0yMy4xLTE0Ljg3LTI4Ljk2LTYuNTItNC40Ni0xNC44OS01Ljc1LTIyLjYtNC40NnpcIiBmaWxsPVwiIzY4Njg2OFwiLz5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJtMjM4LjI5IDIwOC4zOWM4Ljg0LS40OSAxNy45IDIuOCAyNC4xNCA5LjEzIDcuNTMgNy4zIDExLjM4IDE4LjUyIDkuMTQgMjguODUtMi40NiAxNC43OC0xNi41MSAyNi41OC0zMS41NCAyNi4xNy0xNC40OC40NS0yOC4xNy0xMC41My0zMS4yNi0yNC42MS0zLjUyLTEzLjEyIDIuODktMjcuODMgMTQuMzYtMzQuODYgNC41Ny0yLjc2IDkuODMtNC40IDE1LjE2LTQuNjh6XCIgZmlsbD1cIiNjM2MzYzNcIi8+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwibTQ5MS45NyAzNjQuMjJjOS41OS0xLjU2IDE5LjM1LTEgMjkuMDMtMS4wMiAzNy43NiAxLjgxIDc0LjIyIDE5LjMyIDEwMC4wMiA0Ni44MiAxNS41MyAxNi45IDI3LjU5IDM3LjE1IDM0LjAzIDU5LjIzLTQ3LjY3LS4wMS05NS4zNS0uMDEtMTQzLjAzLS4wMS0xMi4xOS0uMTEtMjQuMjMgNS40Mi0zMi4yMSAxNC42MS02LjAxIDYuODUtOS43NCAxNS42NS0xMC40NCAyNC43NC0xLjE5IDE0LjE3IDUuMzYgMjguNyAxNi42OSAzNy4yOCA3LjYyIDUuOTEgMTcuMjggOSAyNi45MiA4LjggMTI2LjY5LS4wNCAyNTMuMzktLjA2IDM4MC4wOC4wMyA0Ljc2LjA0IDkuNTktLjE1IDE0LjItMS40OCAxNC4yMS0zLjgyIDI2LjAyLTE1LjQ3IDI5LjgzLTI5LjcuNjcgMS4wMy44OSAyLjE0LjY3IDMuMzUtMy44OSAxOC42OS0yMS43MiAzMy4xNi00MC43NiAzMy40Ni0yOS42NC0uMDYtNTkuMjctLjAxLTg4LjktLjA1LTEuNjMtLjMxLTEuNjEgMS41Ni0xLjg1IDIuNi0xMC42NSA2MS42Mi00MS4yIDExOS43Mi04Ni4zMSAxNjMuMDYtMzYuMzggMzUuNDYtODEuOTYgNjEuMzMtMTMxLjA1IDc0LjQtNTcuMzgtNTcuMzUtMTE0LjY2LTExNC44LTE3MS45OS0xNzIuMjEtMTAtOS43Mi0xOS43Mi0xOS44Ni0yNy42NS0zMS4zOC0xMS41My0xNi42My0xOS42My0zNS42Ni0yMy41Ni01NS41MS02LjE0LTMxLjk2LTIuMDgtNjUuOTcgMTIuNS05NS4xNyAxMi4xNC0yNC4zMyAzMC44Mi00NS40NiA1My45LTU5LjkxIDE3Ljk5LTExLjY2IDM4LjY1LTE5LjA5IDU5Ljg4LTIxLjk0elwiIGZpbGw9XCIjNDc0NzQ3XCIvPlxuICAgICAgICAgICAgICAgICAgPGcgZmlsbD1cIiNiZmJmYmZcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIm00NzkuODEgNDgzLjg1YzcuOTgtOS4xOSAyMC4wMi0xNC43MiAzMi4yMS0xNC42MSA0Ny42OCAwIDk1LjM2IDAgMTQzLjAzLjAxIDgwLjY1LjA2IDE2MS4yOSAwIDI0MS45My4wNyAyMC40MS4wNSAzOS4yIDE2LjgzIDQxLjI1IDM3LjE3LS4xOS4zMy0uNTguOTctLjc4IDEuMjktMy42OC0xOC41MS0yMS41Ny0zMy4xNi00MC40Ny0zMy4wNS0xMjQuOTcuMS0yNDkuOTQuMTItMzc0LjkxLjE3LTcuNzMuMTMtMTUuNzQtLjgtMjMuMTUgMS45Ni05LjA2IDIuODQtMTYuNzMgOS4xLTIyLjI3IDE2LjctMy4zNCA0LjU1LTQuMzkgMTAuMjQtNy4yOCAxNS4wMy43LTkuMDkgNC40My0xNy44OSAxMC40NC0yNC43NHpcIi8+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJtMjM0LjMxIDc1Mi40NGMxMy43NS0yLjY3IDI4Ljc0IDQuODggMzQuNTYgMTcuNjYgNC40NCA5LjA4IDQuMjIgMjAuMjctLjcxIDI5LjEtNS4xNCA5LjkzLTE1Ljk2IDE2LjU1LTI3LjEyIDE2LjgtOC4yNy4zOC0xNi41Mi0yLjg0LTIyLjY3LTguMzItOS4wMy04LjItMTIuNzctMjEuNzMtOC45LTMzLjM2IDMuMzYtMTEuMTYgMTMuMzUtMTkuOTMgMjQuODQtMjEuODh6XCIvPlxuICAgICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIm00OTguOTIgNDc2Ljg2YzcuNDEtMi43NiAxNS40Mi0xLjgzIDIzLjE1LTEuOTYgMTI0Ljk3LS4wNSAyNDkuOTQtLjA3IDM3NC45MS0uMTcgMTguOS0uMTEgMzYuNzkgMTQuNTQgNDAuNDcgMzMuMDUuMi0uMzIuNTktLjk2Ljc4LTEuMjlsLjI0LS40Yy43IDUuODUtLjE2IDExLjcyLTEuMzggMTcuNDMtMy44MSAxNC4yMy0xNS42MiAyNS44OC0yOS44MyAyOS43LTQuNjEgMS4zMy05LjQ0IDEuNTItMTQuMiAxLjQ4LTEyNi42OS0uMDktMjUzLjM5LS4wNy0zODAuMDgtLjAzLTkuNjQuMi0xOS4zLTIuODktMjYuOTItOC44LTExLjMzLTguNTgtMTcuODgtMjMuMTEtMTYuNjktMzcuMjggMi44OS00Ljc5IDMuOTQtMTAuNDggNy4yOC0xNS4wMyA1LjU0LTcuNiAxMy4yMS0xMy44NiAyMi4yNy0xNi43elwiIGZpbGw9XCIjYjBiMGIwXCIvPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIm01OS40OSA2MzYuMDhjLjk5IDEuNTIgMi4wOSAzLjA0IDIuNTIgNC44NSAzLjYyIDEzLjcxIDguOTIgMjYuODggMTMuODggNDAuMTUgMy44OCA5LjMxIDcuNzggMTguNjIgMTIuMjUgMjcuNjcgMy4yNiA4LjA4IDcuOSAxNS40OCAxMS45IDIzLjIgMTcuOTYgMzIuNzYgMzkuNzYgNjMuNDggNjUuMTcgOTAuODcgMTUuMDEgMTcuMzQgMzIuMjYgMzIuNTQgNDkuNzIgNDcuMzUgMjIuMSAxNy43MiA0NS40NiAzMy45NCA3MC4zMyA0Ny41NCA1OS42NCAzMy4xIDEyNi42NiA1Mi42NyAxOTQuNzEgNTcuMTggODEuMzEgNS43NCAxNjMuOTktMTAuNTIgMjM3LjMtNDYuMTIgMS4wMiAxLjA2IDIuMDQgMi4xMiAzLjA1IDMuMjJsLjAzLjYxYy00Mi4zMiAyMS4wMy04Ny44OCAzNS41My0xMzQuNTYgNDIuOTEtNTYuOTEgOC45LTExNS40NiA3LjQ5LTE3MS44Mi00LjUtNjcuODktMTQuMzUtMTMyLjQyLTQ0LjIxLTE4Ny40Mi04Ni41MS02My41Mi00OC42My0xMTQuMzItMTEzLjczLTE0NS44Ni0xODcuMjctOC40Mi0xOS44Ny0xNS45My00MC4yMi0yMS4yLTYxLjE1elwiIGZpbGw9XCIjOTM5MzkzXCIvPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIm03NzguMzQgNzUyLjUzYzcuNzEtMS4yOSAxNi4wOCAwIDIyLjYgNC40NiA5LjgxIDUuODYgMTUuNzMgMTcuNTkgMTQuODcgMjguOTYtLjIyIDcuNTMtMy44IDE0LjYtOC42NyAyMC4yLTUuODggNS43MS0xMy44NCA5LjY5LTIyLjE2IDkuNjYtMTAuODEuNTEtMjEuODUtNS4wNS0yNy42MS0xNC4yNS00Ljg3LTYuODMtNi4yMS0xNS43MS00LjczLTIzLjg1IDIuMzMtMTIuNTkgMTMuMDYtMjMuMTIgMjUuNy0yNS4xOHpcIiBmaWxsPVwiIzc2NzY3NlwiLz5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJtNTA2LjM3IDg2NC40N2M4LjczLTEuNTYgMTguMDYuNjYgMjUuMDggNi4xMSAxMC45NCA4LjE0IDE1LjU1IDIzLjcyIDEwLjU4IDM2LjQ2LTMuMzcgOS40NC0xMS40NiAxNi45MS0yMS4wNyAxOS42OC05LjM1IDIuODEtMTkuOTEuOTMtMjcuNzctNC44Ni0xMC43OC03LjU0LTE1Ljc4LTIyLjIyLTExLjkxLTM0Ljc5IDMuMTctMTEuNTMgMTMuMzMtMjAuNTggMjUuMDktMjIuNnpcIiBmaWxsPVwiI2JlYmViZVwiLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICBHb29nbGUgQXV0aGVudGljYXRvclxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPG1hdC1jaGVja2JveCBcbiAgICAgICAgICAgICAgbmFtZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICBbZGlzYWJsZVJpcHBsZV09XCJ0cnVlXCI+XG4gICAgICAgICAgICBNYWtlIHRoaXMgdGhlIGRlZmF1bHQgMi1zdGVwIHZlcmlmaWNhdGlvbiBtZXRob2RcbiAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgPC9kaXY+XG4gICAgIFxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCJtb2RlID09PSAnY29kZS1pbnB1dCdcIiBjbGFzcz1cImNvZGUtaW5wdXRcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICBFbnRlciB0aGUgNi1kaWdpdCBjb2RlIHlvdSBzZWUgaW4gdGhlIEFwcC5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGFwcC1jb2RlLWlucHV0XG4gICAgICAgICAgW2NvZGVMZW5ndGhdPVwiNlwiXG4gICAgICAgICAgKGNvZGVDaGFuZ2VkKT1cImNvZGVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgIChjb2RlQ29tcGxldGVkKT1cImNvZGVDb21wbGV0ZWQoKVwiPlxuICAgICAgICA8L2FwcC1jb2RlLWlucHV0PlxuICAgICAgPC9kaXY+XG4gICAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgPG1hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcHBUeXBlXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwibW9kZSA9PT0gJ3FyLWNvZGUnXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIChjbGljayk9XCJuZXh0KClcIj5cbiAgICAgICAgICBOZXh0XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cIm1vZGUgPT09ICdjb2RlLWlucHV0J1wiXG4gICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAoY2xpY2spPVwibmV4dCgpXCI+XG4gICAgICAgICAgVmVyaWZ5XG4gICAgICAgIDwvYnV0dG9uPiAgICAgIFxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgIFttYXQtZGlhbG9nLWNsb3NlXT1cIm51bGxcIj5cbiAgICAgICAgQ2FuY2VsXG4gICAgICA8L2J1dHRvbj5cbiAgICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cbiAgPC9mcy1kaWFsb2c+XG48L2Zvcm0+XG4iXX0=
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2UvY29tcG9uZW50cy9hcHAvYXBwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2UvY29tcG9uZW50cy9hcHAvYXBwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQUUsTUFBTSxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFVLFNBQVMsR0FDakYsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRXpGLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVNyQyxNQUFNLE9BQU8sWUFBWTtJQWF2QixZQUNtQyxLQUFVLEVBQ25DLFVBQXNDLEVBQ3RDLE1BQXlCLEVBQ3pCLFFBQW1CO1FBSE0sVUFBSyxHQUFMLEtBQUssQ0FBSztRQUNuQyxlQUFVLEdBQVYsVUFBVSxDQUE0QjtRQUN0QyxXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUN6QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBWHRCLFNBQUksR0FBNkIsU0FBUyxDQUFDO1FBcUQzQyxXQUFNLEdBQUcsR0FBRyxFQUFFO1lBQ25CLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7aUJBQ25FLElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLCtDQUErQyxDQUFDLENBQUM7Z0JBQ3ZFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlCLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDTixDQUFDLENBQUM7SUFqREMsQ0FBQztJQUVHLFFBQVE7UUFDYixJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQztRQUNoRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCLENBQUM7SUFDckUsQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTSxhQUFhLENBQUMsT0FBTztRQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsc0JBQXNCLENBQUMsd0JBQXdCLENBQUM7WUFDbkQsSUFBSSxFQUFFLHNCQUFzQixDQUFDLEdBQUc7WUFDaEMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3RCLENBQUM7YUFDQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7WUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxhQUFhO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxJQUFJO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVNLElBQUk7UUFDVCxJQUFJLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztJQUMzQixDQUFDOzswR0F6RFUsWUFBWSxrQkFjYixlQUFlOzhGQWRkLFlBQVksMEZBRVosZUFBZSxnRENyQjVCLHEwWUFnSUE7NEZEN0dhLFlBQVk7a0JBTHhCLFNBQVM7bUJBQUM7b0JBQ1QsV0FBVyxFQUFFLHNCQUFzQjtvQkFDbkMsU0FBUyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ25DLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs7MEJBZUksTUFBTTsyQkFBQyxlQUFlOytIQVhsQixJQUFJO3NCQURWLFNBQVM7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCwgSW5qZWN0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uSW5pdCwgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5pbXBvcnQgeyBGc0Zvcm1EaXJlY3RpdmUgfSBmcm9tICdAZmlyZXN0aXRjaC9mb3JtJztcbmltcG9ydCB7IEZzTWVzc2FnZSB9IGZyb20gJ0BmaXJlc3RpdGNoL21lc3NhZ2UnO1xuaW1wb3J0IHsgVmVyaWZpY2F0aW9uTWV0aG9kVHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL2VudW1zL3ZlcmlmaWNhdGlvbi1tZXRob2QtdHlwZS5lbnVtJztcblxuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVHdvRmFjdG9yTWFuYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FwcC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQXBwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBAVmlld0NoaWxkKEZzRm9ybURpcmVjdGl2ZSlcbiAgcHVibGljIGZvcm06IEZzRm9ybURpcmVjdGl2ZTtcblxuICBwdWJsaWMgdHdvRmFjdG9yTWFuYWdlU2VydmljZTogVHdvRmFjdG9yTWFuYWdlU2VydmljZTtcbiAgcHVibGljIG1vZGU6ICdxci1jb2RlJyB8ICdjb2RlLWlucHV0JyA9ICdxci1jb2RlJztcbiAgcHVibGljIGFjY291bnRJZDtcbiAgcHVibGljIHFyQ29kZVVybDtcbiAgcHVibGljIGNvZGU7XG4gIHB1YmxpYyBkZWZhdWx0O1xuICBwdWJsaWMgYXBwVHlwZTogJ2dvb2dsZScgfCAnYXV0aHknO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwcml2YXRlIF9kYXRhOiBhbnksXG4gICAgcHJpdmF0ZSBfZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8QXBwQ29tcG9uZW50PixcbiAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBfbWVzc2FnZTogRnNNZXNzYWdlLFxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudHdvRmFjdG9yTWFuYWdlU2VydmljZSA9IHRoaXMuX2RhdGEudHdvRmFjdG9yTWFuYWdlU2VydmljZTtcbiAgICB0aGlzLmFjY291bnRJZCA9IHRoaXMuX2RhdGEuYWNjb3VudElkO1xuICAgIHRoaXMuZGVmYXVsdCA9ICF0aGlzLnR3b0ZhY3Rvck1hbmFnZVNlcnZpY2UuaGFzVmVyaWZpY2F0aW9uTWV0aG9kcztcbiAgfVxuXG4gIHB1YmxpYyBhcHBUeXBlR29vZ2xlKCk6IHZvaWQge1xuICAgIHRoaXMuYXBwVHlwZVNlbGVjdCgnZ29vZ2xlJyk7XG4gIH1cblxuICBwdWJsaWMgYXBwVHlwZUF1dGh5KCk6IHZvaWQge1xuICAgIHRoaXMuYXBwVHlwZVNlbGVjdCgnYXV0aHknKTtcbiAgfVxuXG4gIHB1YmxpYyBhcHBUeXBlU2VsZWN0KGFwcFR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLmFwcFR5cGUgPSBhcHBUeXBlO1xuICAgIHRoaXMudHdvRmFjdG9yTWFuYWdlU2VydmljZS52ZXJpZmljYXRpb25NZXRob2RDcmVhdGUoe1xuICAgICAgdHlwZTogVmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5BcHAsXG4gICAgICBkZWZhdWx0OiB0aGlzLmRlZmF1bHQsXG4gICAgfSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMucXJDb2RlVXJsID0gcmVzcG9uc2UucXJDb2RlVXJsO1xuICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNvZGVDb21wbGV0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtLnRyaWdnZXJTdWJtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBjb2RlQ2hhbmdlZChjb2RlKTogdm9pZCB7XG4gICAgdGhpcy5jb2RlID0gY29kZTtcbiAgICB0aGlzLmZvcm0uZGlydHkoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZXh0KCk6IHZvaWQge1xuICAgIHRoaXMubW9kZSA9ICdjb2RlLWlucHV0JztcbiAgfVxuXG4gIHB1YmxpYyB2ZXJpZnkgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMudHdvRmFjdG9yTWFuYWdlU2VydmljZS52ZXJpZmljYXRpb25NZXRob2RWZXJpZnkodGhpcy5jb2RlKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdDcmVhdGVkIGFwcCBhdXRoZW50aWNhdG9yIHZlcmlmaWNhdGlvbiBtZXRob2QnKTtcbiAgICAgICAgICB0aGlzLl9kaWFsb2dSZWYuY2xvc2UodHJ1ZSk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfTtcblxufVxuIiwiPGZvcm0gZnNGb3JtIFtzdWJtaXRdPVwidmVyaWZ5XCI+XG4gIDxmcy1kaWFsb2c+XG4gICAgPGgxIG1hdC1kaWFsb2ctdGl0bGU+QXV0aGVudGljYXRvciBBcHAgU2V0dXA8L2gxPlxuICAgIDxtYXQtZGlhbG9nLWNvbnRlbnQ+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCJtb2RlID09PSAncXItY29kZSdcIiBjbGFzcz1cInFyLWNvZGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFwcFR5cGVcIj5cbiAgICAgICAgICA8b2w+XG4gICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcHBUeXBlID09PSAnYXV0aHknXCI+XG4gICAgICAgICAgICAgICAgSW5zdGFsbCB0aGUgQXV0aHkgQXV0aGVudGljYXRvciBBcHAgZnJvbSB0aGUgPGEgaHJlZj1cImh0dHBzOi8vYXBwcy5hcHBsZS5jb20vdXMvYXBwL2F1dGh5L2lkNDk0MTY4MDE3XCIgdGFyZ2V0PVwiX2JsYW5rXCI+QXBwIFN0b3JlPC9hPiBvclxuICAgICAgICAgICAgICAgIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly9wbGF5Lmdvb2dsZS5jb20vc3RvcmUvYXBwcy9kZXRhaWxzP2lkPWNvbS5hdXRoeS5hdXRoeVwiIHRhcmdldD1cIl9ibGFua1wiPkdvb2dsZSBQbGF5IFN0b3JlPC9hPi5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFwcFR5cGUgPT09ICdnb29nbGUnXCI+XG4gICAgICAgICAgICAgICAgSW5zdGFsbCB0aGUgR29vZ2xlIEF1dGhlbnRpY2F0b3IgQXBwIGZyb20gdGhlIDxhIGhyZWY9XCJodHRwczovL2FwcHMuYXBwbGUuY29tL3VzL2FwcC9nb29nbGUtYXV0aGVudGljYXRvci9pZDM4ODQ5NzYwNVwiIHRhcmdldD1cIl9ibGFua1wiPkFwcCBTdG9yZTwvYT4gb3JcbiAgICAgICAgICAgICAgICB0aGUgPGEgaHJlZj1cImh0dHBzOi8vcGxheS5nb29nbGUuY29tL3N0b3JlL2FwcHMvZGV0YWlscz9pZD1jb20uZ29vZ2xlLmFuZHJvaWQuYXBwcy5hdXRoZW50aWNhdG9yMiZobD1lbl9VUyZnbD1VU1wiIHRhcmdldD1cIl9ibGFua1wiPkdvb2dsZSBQbGF5IFN0b3JlPC9hPi5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFwcFR5cGUgPT09ICdhdXRoeSdcIj5cbiAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIE9wZW4gdGhlIEF1dGh5IGFwcCBhbmQgc2VsZWN0IDxiPkFkZCBBY2NvdW50PC9iPi5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIFNlbGVjdCA8Yj5TY2FuIFFSIENvZGU8L2I+IGFuZCBzY2FuIHRoZSBRUiBjb2RlIGJlbG93LlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+ICAgICAgICAgXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXBwVHlwZSA9PT0gJ2dvb2dsZSdcIj5cbiAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIE9wZW4gdGhlIEdvb2dsZSBBdXRoZW50aWN0b3IgYXBwIGFuZCBjbGljayB0aGUgPGI+UGx1cyBpY29uPC9iPiBpbiB0aGUgbG93ZXIgcmlnaHQgY29ybmVyLlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgU2VsZWN0IDxiPlNjYW4gYSBRUiBjb2RlPC9iPiBhbmQgc2NhbiB0aGUgUVIgY29kZSBiZWxvdy5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvb2w+XG5cbiAgICAgICAgICA8cXItY29kZSBcbiAgICAgICAgICAgICpmc1NrZWxldG9uPVwicXJDb2RlVXJsXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJxckNvZGVVcmxcIlxuICAgICAgICAgICAgc2l6ZT1cIjIwMFwiXG4gICAgICAgICAgICBlcnJvckNvcnJlY3Rpb25MZXZlbD1cIkhcIlxuICAgICAgICAgICAgW21hcmdpbl09XCIwXCI+XG4gICAgICAgICAgPC9xci1jb2RlPiBcbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFwcC10eXBlc1wiICpuZ0lmPVwiIWFwcFR5cGVcIj5cbiAgICAgICAgICA8cD5TZWxlY3QgdGhlIEF1dGhlbnRpY2F0b3IgQXBwIHlvdSBwcmVmZXI8L3A+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cImFwcFR5cGVBdXRoeSgpXCI+XG4gICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjUwXCIgaGVpZ2h0PVwiNTBcIiB2aWV3Qm94PVwiMCAwIDI1NiAyNTZcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgcHJlc2VydmVBc3BlY3RSYXRpbz1cInhNaWRZTWlkXCI+PHBhdGggZD1cIk0yNTYgMTI3Ljk5OEMyNTYgMTk4LjY5NiAxOTguNjk0IDI1NiAxMjcuOTk3IDI1NiA1Ny4zMDQgMjU2IDAgMTk4LjY5NiAwIDEyNy45OTggMCA1Ny4zMDUgNTcuMzA0IDAgMTI3Ljk5NyAwIDE5OC42OTQgMCAyNTYgNTcuMzA1IDI1NiAxMjcuOTk4elwiIGZpbGw9XCIjRUMxQzI0XCIvPjxwYXRoIGQ9XCJNMTE3LjAyNCAxMDAuODlsMzAuNjkxIDMwLjY4YzQuNDMgNC40MzYgMTEuNjIzIDQuNDM2IDE2LjA2NCAwIDQuNDMxLTQuNDM1IDQuNDQxLTExLjYyMiAwLTE2LjA1OEwxMzMuMDg2IDg0LjgyQzExMS4xMjUgNjIuODU0IDc1LjYzMSA2Mi41IDUzLjIwNCA4My43MDRhOS41MzYgOS41MzYgMCAwIDAtLjYwNS41NDhjLS4wOTguMDk4LS4xNzguMjAyLS4yNzUuMjktLjEuMDk2LS4yMDIuMTgyLS4yOTcuMjc4LS4xOTQuMTkzLS4zNzEuMzk2LS41NC41OTctMjEuMjE1IDIyLjQzNy0yMC44NSA1Ny45MzIgMS4xMTMgNzkuODk3TDgzLjI5MiAxOTZjNC40NCA0LjQzMyAxMS42MjMgNC40MzMgMTYuMDYyIDAgNC40NDItNC40MzcgNC40NDItMTEuNjMzLjAxMS0xNi4wNmwtMzAuNjkzLTMwLjY5MWMtMTMuMzk4LTEzLjM5My0xMy40ODgtMzUuMTI5LS4yNzgtNDguNjM3IDEzLjUwNi0xMy4yMSAzNS4yMy0xMy4xMTQgNDguNjMuMjc5em0zOS42MTItNDAuODczYy00LjQzNSA0LjQzNy00LjQzNSAxMS42MjMuMDEyIDE2LjA1OWwzMC42ODEgMzAuNjkzYzEzLjM5IDEzLjM5MiAxMy40NzcgMzUuMTI1LjI2OCA0OC42MzYtMTMuNTEgMTMuMi0zNS4yMjcgMTMuMTEyLTQ4LjYyMy0uMjgybC0zMC42OTItMzAuNjg5Yy00LjQzOC00LjQzNy0xMS42MzMtNC40MzctMTYuMDY2IDAtNC40NDMgNC40MzMtNC40NDMgMTEuNjQyIDAgMTYuMDY1bDMwLjY4MiAzMC42OTRjMjEuOTY4IDIxLjk2NSA1Ny40NTggMjIuMzIyIDc5Ljg4OSAxLjExNi4yMDgtLjE4NC40MDQtLjM1NS42MS0uNTQ5LjA5NC0uMDk1LjE4Mi0uMTkyLjI3My0uMjkuMS0uMDk1LjE5Ny0uMTgzLjI5LS4yODkuMTk3LS4xODMuMzY1LS4zODQuNTQtLjU5NCAyMS4yMTUtMjIuNDI4IDIwLjg2LTU3LjkxMS0xLjEwMi03OS44ODlsLTMwLjY5Mi0zMC42ODJjLTQuNDM2LTQuNDQzLTExLjYzOC00LjQ0My0xNi4wNy4wMDF6XCIgZmlsbD1cIiNGRkZcIi8+PC9zdmc+XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgQXV0aHlcbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgIDxhIChjbGljayk9XCJhcHBUeXBlR29vZ2xlKClcIj4gICAgICAgICAgXG4gICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjUwXCIgIGhlaWdodD1cIjUwXCIgdmlld0JveD1cIjAgMCAxMDI0IDEwMjRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwibTQ1Ny4wNyA0NS45MmM3My42Ny04LjYyIDE0OS40MS4yMiAyMTguOTMgMjYuMjQgNjIuNzUgMjMuNDcgMTIwLjU5IDYwLjQxIDE2Ny43MiAxMDguMDktNDAuMzEgMzkuOTctODAuMjUgODAuMzEtMTIwLjUxIDEyMC4zMy0yNS45NS0yNS40NS01Ni4xOS00Ni42NS04OS40Ny02MS4zNy00NC4yMi0xOS44Mi05My4zOS0yOC41NC0xNDEuNzItMjUuMi01NC42IDMuNTItMTA4LjExIDIyLjQ5LTE1Mi42MyA1NC4zLTU1LjI0IDM4Ljk1LTk2LjYxIDk3LjIyLTExNC44IDE2Mi4zNS0xMy42NCA0Ny43OC0xNC43NyA5OC45Ny0zLjc2IDE0Ny40IDguODUgMzkuNjEgMjYuMDkgNzcuMjkgNTAuMDUgMTEwLjAzIDIyLjI0IDMwLjQ1IDUwLjMgNTYuNjQgODIuMjIgNzYuNzEgMzYuNzkgMjMuMjQgNzguNzYgMzguMjIgMTIxLjk2IDQzLjQ4IDM3LjAyIDQuNjUgNzQuOSAyLjIzIDExMS4wNS03IDMuOTctMS45MSA2LjI0IDIuNjEgOC43MyA0Ljg2IDQwLjc0IDQwLjk1IDgxLjY4IDgxLjcgMTIyLjQzIDEyMi42My03My4zMSAzNS42LTE1NS45OSA1MS44Ni0yMzcuMyA0Ni4xMi02OC4wNS00LjUxLTEzNS4wNy0yNC4wOC0xOTQuNzEtNTcuMTgtMjQuODctMTMuNi00OC4yMy0yOS44Mi03MC4zMy00Ny41NC0xNy40Ni0xNC44MS0zNC43MS0zMC4wMS00OS43Mi00Ny4zNS0yNS40MS0yNy4zOS00Ny4yMS01OC4xMS02NS4xNy05MC44Ny00LTcuNzItOC42NC0xNS4xMi0xMS45LTIzLjItNC40Ny05LjA1LTguMzctMTguMzYtMTIuMjUtMjcuNjctNC45Ni0xMy4yNy0xMC4yNi0yNi40NC0xMy44OC00MC4xNS0uNDMtMS44MS0xLjUzLTMuMzMtMi41Mi00Ljg1LTguMy0yOC42Ni0xMi45NS01OC4zMy0xNS40NC04OC4wNC0yLjYyLTM3LjM2LTEuMzMtNzUuMDUgNC43OC0xMTIuMDMgMTIuMTgtNzUuNDggNDMuNDEtMTQ3Ljc0IDg5Ljg2LTIwOC40NCAzMC4xMi0zOS41IDY2LjUzLTc0LjIxIDEwNy40Ni0xMDIuMzUgNjIuNDQtNDMuMTEgMTM1LjUzLTcwLjY5IDIxMC45Mi03OS4zbTQ5LjE4IDUwLjQ4Yy01LjcuOTktMTAuOTYgMy43Ni0xNS4zOCA3LjQzLTEwLjQgOC45My0xNC4xNCAyNC44MS04LjE3IDM3LjI4IDYuMzMgMTUuMDIgMjUuMTYgMjMuMSA0MC4zNiAxNyAxNS40My01LjI0IDI0Ljc4LTIzLjUxIDE5Ljc0LTM5LjA2LTQuMS0xNS40My0yMC45Mi0yNS43OS0zNi41NS0yMi42NW0tMjY3Ljk2IDExMS45OWMtNS4zMy4yOC0xMC41OSAxLjkyLTE1LjE2IDQuNjgtMTEuNDcgNy4wMy0xNy44OCAyMS43NC0xNC4zNiAzNC44NiAzLjA5IDE0LjA4IDE2Ljc4IDI1LjA2IDMxLjI2IDI0LjYxIDE1LjAzLjQxIDI5LjA4LTExLjM5IDMxLjU0LTI2LjE3IDIuMjQtMTAuMzMtMS42MS0yMS41NS05LjE0LTI4Ljg1LTYuMjQtNi4zMy0xNS4zLTkuNjItMjQuMTQtOS4xM20tMTE1Ljk2IDI3MmMtNi42MiAxLjIzLTEyLjg0IDQuNTgtMTcuNTQgOS40LTkuNDUgOS43Mi0xMS43MiAyNS41Ny01LjAyIDM3LjQyIDcuMTYgMTMuOTYgMjUuNDggMjAuODYgMzkuOTggMTQuNjIgMTUuMDItNS41MSAyMy45OS0yMy40MiAxOS4wNi0zOC43MS00LjA0LTE1LjQxLTIwLjg2LTI1Ljk2LTM2LjQ4LTIyLjczbTExMS45OCAyNzIuMDVjLTExLjQ5IDEuOTUtMjEuNDggMTAuNzItMjQuODQgMjEuODgtMy44NyAxMS42My0uMTMgMjUuMTYgOC45IDMzLjM2IDYuMTUgNS40OCAxNC40IDguNyAyMi42NyA4LjMyIDExLjE2LS4yNSAyMS45OC02Ljg3IDI3LjEyLTE2LjggNC45My04LjgzIDUuMTUtMjAuMDIuNzEtMjkuMS01LjgyLTEyLjc4LTIwLjgxLTIwLjMzLTM0LjU2LTE3LjY2bTI3Mi4wNiAxMTIuMDNjLTExLjc2IDIuMDItMjEuOTIgMTEuMDctMjUuMDkgMjIuNi0zLjg3IDEyLjU3IDEuMTMgMjcuMjUgMTEuOTEgMzQuNzkgNy44NiA1Ljc5IDE4LjQyIDcuNjcgMjcuNzcgNC44NiA5LjYxLTIuNzcgMTcuNy0xMC4yNCAyMS4wNy0xOS42OCA0Ljk3LTEyLjc0LjM2LTI4LjMyLTEwLjU4LTM2LjQ2LTcuMDItNS40NS0xNi4zNS03LjY3LTI1LjA4LTYuMTF6XCIgZmlsbD1cIiNhMGEwYTBcIi8+XG4gICAgICAgICAgICAgICAgICA8ZyBmaWxsPVwiI2MxYzFjMVwiPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwibTUwNi4yNSA5Ni40YzE1LjYzLTMuMTQgMzIuNDUgNy4yMiAzNi41NSAyMi42NSA1LjA0IDE1LjU1LTQuMzEgMzMuODItMTkuNzQgMzkuMDYtMTUuMiA2LjEtMzQuMDMtMS45OC00MC4zNi0xNy01Ljk3LTEyLjQ3LTIuMjMtMjguMzUgOC4xNy0zNy4yOCA0LjQyLTMuNjcgOS42OC02LjQ0IDE1LjM4LTcuNDN6XCIvPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwibTEyMi4zMyA0ODAuMzljMTUuNjItMy4yMyAzMi40NCA3LjMyIDM2LjQ4IDIyLjczIDQuOTMgMTUuMjktNC4wNCAzMy4yLTE5LjA2IDM4LjcxLTE0LjUgNi4yNC0zMi44Mi0uNjYtMzkuOTgtMTQuNjItNi43LTExLjg1LTQuNDMtMjcuNyA1LjAyLTM3LjQyIDQuNy00LjgyIDEwLjkyLTguMTcgMTcuNTQtOS40elwiLz5cbiAgICAgICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJtODQzLjcyIDE4MC4yNS4xMS0uMTFjMjQuNjQgMjUuMTIgNDYuOTYgNTIuNiA2NS42MSA4Mi40NyAzNi4wMSA1Ny4xNiA1OS4zOCAxMjIuMjIgNjcuODcgMTg5LjI1IDUuNjcgNDQuODggNS4yNyA5MC42LTIuMDUgMTM1LjI3LTEyLjcgODAuMDEtNDYuOTQgMTU2LjQxLTk3LjkgMjE5LjM2LTQyLjMgNTIuNDgtOTUuODcgOTYuMDQtMTU2LjQxIDEyNS43NmwtLjYzLS4yNmMtMS4wMS0xLjEtMi4wMy0yLjE2LTMuMDUtMy4yMi00MC43NS00MC45My04MS42OS04MS42OC0xMjIuNDMtMTIyLjYzLTIuNDktMi4yNS00Ljc2LTYuNzctOC43My00Ljg2LTM2LjE1IDkuMjMtNzQuMDMgMTEuNjUtMTExLjA1IDctNDMuMi01LjI2LTg1LjE3LTIwLjI0LTEyMS45Ni00My40OC0zMS45Mi0yMC4wNy01OS45OC00Ni4yNi04Mi4yMi03Ni43MS0yMy45Ni0zMi43NC00MS4yLTcwLjQyLTUwLjA1LTExMC4wMy0xMS4wMS00OC40My05Ljg4LTk5LjYyIDMuNzYtMTQ3LjQgMTguMTktNjUuMTMgNTkuNTYtMTIzLjQgMTE0LjgtMTYyLjM1IDQ0LjUyLTMxLjgxIDk4LjAzLTUwLjc4IDE1Mi42My01NC4zIDQ4LjMzLTMuMzQgOTcuNSA1LjM4IDE0MS43MiAyNS4yIDMzLjI4IDE0LjcyIDYzLjUyIDM1LjkyIDg5LjQ3IDYxLjM3IDQwLjI2LTQwLjAyIDgwLjItODAuMzYgMTIwLjUxLTEyMC4zM20tMzUxLjc1IDE4My45N2MtMjEuMjMgMi44NS00MS44OSAxMC4yOC01OS44OCAyMS45NC0yMy4wOCAxNC40NS00MS43NiAzNS41OC01My45IDU5LjkxLTE0LjU4IDI5LjItMTguNjQgNjMuMjEtMTIuNSA5NS4xNyAzLjkzIDE5Ljg1IDEyLjAzIDM4Ljg4IDIzLjU2IDU1LjUxIDcuOTMgMTEuNTIgMTcuNjUgMjEuNjYgMjcuNjUgMzEuMzggNTcuMzMgNTcuNDEgMTE0LjYxIDExNC44NiAxNzEuOTkgMTcyLjIxIDQ5LjA5LTEzLjA3IDk0LjY3LTM4Ljk0IDEzMS4wNS03NC40IDQ1LjExLTQzLjM0IDc1LjY2LTEwMS40NCA4Ni4zMS0xNjMuMDYuMjQtMS4wNC4yMi0yLjkxIDEuODUtMi42IDI5LjYzLjA0IDU5LjI2LS4wMSA4OC45LjA1IDE5LjA0LS4zIDM2Ljg3LTE0Ljc3IDQwLjc2LTMzLjQ2LjIyLTEuMjEgMC0yLjMyLS42Ny0zLjM1IDEuMjItNS43MSAyLjA4LTExLjU4IDEuMzgtMTcuNDNsLS4yNC40Yy0yLjA1LTIwLjM0LTIwLjg0LTM3LjEyLTQxLjI1LTM3LjE3LTgwLjY0LS4wNy0xNjEuMjgtLjAxLTI0MS45My0uMDctNi40NC0yMi4wOC0xOC41LTQyLjMzLTM0LjAzLTU5LjIzLTI1LjgtMjcuNS02Mi4yNi00NS4wMS0xMDAuMDItNDYuODItOS42OC4wMi0xOS40NC0uNTQtMjkuMDMgMS4wMm0yODYuMzcgMzg4LjMxYy0xMi42NCAyLjA2LTIzLjM3IDEyLjU5LTI1LjcgMjUuMTgtMS40OCA4LjE0LS4xNCAxNy4wMiA0LjczIDIzLjg1IDUuNzYgOS4yIDE2LjggMTQuNzYgMjcuNjEgMTQuMjUgOC4zMi4wMyAxNi4yOC0zLjk1IDIyLjE2LTkuNjYgNC44Ny01LjYgOC40NS0xMi42NyA4LjY3LTIwLjIuODYtMTEuMzctNS4wNi0yMy4xLTE0Ljg3LTI4Ljk2LTYuNTItNC40Ni0xNC44OS01Ljc1LTIyLjYtNC40NnpcIiBmaWxsPVwiIzY4Njg2OFwiLz5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJtMjM4LjI5IDIwOC4zOWM4Ljg0LS40OSAxNy45IDIuOCAyNC4xNCA5LjEzIDcuNTMgNy4zIDExLjM4IDE4LjUyIDkuMTQgMjguODUtMi40NiAxNC43OC0xNi41MSAyNi41OC0zMS41NCAyNi4xNy0xNC40OC40NS0yOC4xNy0xMC41My0zMS4yNi0yNC42MS0zLjUyLTEzLjEyIDIuODktMjcuODMgMTQuMzYtMzQuODYgNC41Ny0yLjc2IDkuODMtNC40IDE1LjE2LTQuNjh6XCIgZmlsbD1cIiNjM2MzYzNcIi8+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwibTQ5MS45NyAzNjQuMjJjOS41OS0xLjU2IDE5LjM1LTEgMjkuMDMtMS4wMiAzNy43NiAxLjgxIDc0LjIyIDE5LjMyIDEwMC4wMiA0Ni44MiAxNS41MyAxNi45IDI3LjU5IDM3LjE1IDM0LjAzIDU5LjIzLTQ3LjY3LS4wMS05NS4zNS0uMDEtMTQzLjAzLS4wMS0xMi4xOS0uMTEtMjQuMjMgNS40Mi0zMi4yMSAxNC42MS02LjAxIDYuODUtOS43NCAxNS42NS0xMC40NCAyNC43NC0xLjE5IDE0LjE3IDUuMzYgMjguNyAxNi42OSAzNy4yOCA3LjYyIDUuOTEgMTcuMjggOSAyNi45MiA4LjggMTI2LjY5LS4wNCAyNTMuMzktLjA2IDM4MC4wOC4wMyA0Ljc2LjA0IDkuNTktLjE1IDE0LjItMS40OCAxNC4yMS0zLjgyIDI2LjAyLTE1LjQ3IDI5LjgzLTI5LjcuNjcgMS4wMy44OSAyLjE0LjY3IDMuMzUtMy44OSAxOC42OS0yMS43MiAzMy4xNi00MC43NiAzMy40Ni0yOS42NC0uMDYtNTkuMjctLjAxLTg4LjktLjA1LTEuNjMtLjMxLTEuNjEgMS41Ni0xLjg1IDIuNi0xMC42NSA2MS42Mi00MS4yIDExOS43Mi04Ni4zMSAxNjMuMDYtMzYuMzggMzUuNDYtODEuOTYgNjEuMzMtMTMxLjA1IDc0LjQtNTcuMzgtNTcuMzUtMTE0LjY2LTExNC44LTE3MS45OS0xNzIuMjEtMTAtOS43Mi0xOS43Mi0xOS44Ni0yNy42NS0zMS4zOC0xMS41My0xNi42My0xOS42My0zNS42Ni0yMy41Ni01NS41MS02LjE0LTMxLjk2LTIuMDgtNjUuOTcgMTIuNS05NS4xNyAxMi4xNC0yNC4zMyAzMC44Mi00NS40NiA1My45LTU5LjkxIDE3Ljk5LTExLjY2IDM4LjY1LTE5LjA5IDU5Ljg4LTIxLjk0elwiIGZpbGw9XCIjNDc0NzQ3XCIvPlxuICAgICAgICAgICAgICAgICAgPGcgZmlsbD1cIiNiZmJmYmZcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIm00NzkuODEgNDgzLjg1YzcuOTgtOS4xOSAyMC4wMi0xNC43MiAzMi4yMS0xNC42MSA0Ny42OCAwIDk1LjM2IDAgMTQzLjAzLjAxIDgwLjY1LjA2IDE2MS4yOSAwIDI0MS45My4wNyAyMC40MS4wNSAzOS4yIDE2LjgzIDQxLjI1IDM3LjE3LS4xOS4zMy0uNTguOTctLjc4IDEuMjktMy42OC0xOC41MS0yMS41Ny0zMy4xNi00MC40Ny0zMy4wNS0xMjQuOTcuMS0yNDkuOTQuMTItMzc0LjkxLjE3LTcuNzMuMTMtMTUuNzQtLjgtMjMuMTUgMS45Ni05LjA2IDIuODQtMTYuNzMgOS4xLTIyLjI3IDE2LjctMy4zNCA0LjU1LTQuMzkgMTAuMjQtNy4yOCAxNS4wMy43LTkuMDkgNC40My0xNy44OSAxMC40NC0yNC43NHpcIi8+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJtMjM0LjMxIDc1Mi40NGMxMy43NS0yLjY3IDI4Ljc0IDQuODggMzQuNTYgMTcuNjYgNC40NCA5LjA4IDQuMjIgMjAuMjctLjcxIDI5LjEtNS4xNCA5LjkzLTE1Ljk2IDE2LjU1LTI3LjEyIDE2LjgtOC4yNy4zOC0xNi41Mi0yLjg0LTIyLjY3LTguMzItOS4wMy04LjItMTIuNzctMjEuNzMtOC45LTMzLjM2IDMuMzYtMTEuMTYgMTMuMzUtMTkuOTMgMjQuODQtMjEuODh6XCIvPlxuICAgICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIm00OTguOTIgNDc2Ljg2YzcuNDEtMi43NiAxNS40Mi0xLjgzIDIzLjE1LTEuOTYgMTI0Ljk3LS4wNSAyNDkuOTQtLjA3IDM3NC45MS0uMTcgMTguOS0uMTEgMzYuNzkgMTQuNTQgNDAuNDcgMzMuMDUuMi0uMzIuNTktLjk2Ljc4LTEuMjlsLjI0LS40Yy43IDUuODUtLjE2IDExLjcyLTEuMzggMTcuNDMtMy44MSAxNC4yMy0xNS42MiAyNS44OC0yOS44MyAyOS43LTQuNjEgMS4zMy05LjQ0IDEuNTItMTQuMiAxLjQ4LTEyNi42OS0uMDktMjUzLjM5LS4wNy0zODAuMDgtLjAzLTkuNjQuMi0xOS4zLTIuODktMjYuOTItOC44LTExLjMzLTguNTgtMTcuODgtMjMuMTEtMTYuNjktMzcuMjggMi44OS00Ljc5IDMuOTQtMTAuNDggNy4yOC0xNS4wMyA1LjU0LTcuNiAxMy4yMS0xMy44NiAyMi4yNy0xNi43elwiIGZpbGw9XCIjYjBiMGIwXCIvPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIm01OS40OSA2MzYuMDhjLjk5IDEuNTIgMi4wOSAzLjA0IDIuNTIgNC44NSAzLjYyIDEzLjcxIDguOTIgMjYuODggMTMuODggNDAuMTUgMy44OCA5LjMxIDcuNzggMTguNjIgMTIuMjUgMjcuNjcgMy4yNiA4LjA4IDcuOSAxNS40OCAxMS45IDIzLjIgMTcuOTYgMzIuNzYgMzkuNzYgNjMuNDggNjUuMTcgOTAuODcgMTUuMDEgMTcuMzQgMzIuMjYgMzIuNTQgNDkuNzIgNDcuMzUgMjIuMSAxNy43MiA0NS40NiAzMy45NCA3MC4zMyA0Ny41NCA1OS42NCAzMy4xIDEyNi42NiA1Mi42NyAxOTQuNzEgNTcuMTggODEuMzEgNS43NCAxNjMuOTktMTAuNTIgMjM3LjMtNDYuMTIgMS4wMiAxLjA2IDIuMDQgMi4xMiAzLjA1IDMuMjJsLjAzLjYxYy00Mi4zMiAyMS4wMy04Ny44OCAzNS41My0xMzQuNTYgNDIuOTEtNTYuOTEgOC45LTExNS40NiA3LjQ5LTE3MS44Mi00LjUtNjcuODktMTQuMzUtMTMyLjQyLTQ0LjIxLTE4Ny40Mi04Ni41MS02My41Mi00OC42My0xMTQuMzItMTEzLjczLTE0NS44Ni0xODcuMjctOC40Mi0xOS44Ny0xNS45My00MC4yMi0yMS4yLTYxLjE1elwiIGZpbGw9XCIjOTM5MzkzXCIvPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIm03NzguMzQgNzUyLjUzYzcuNzEtMS4yOSAxNi4wOCAwIDIyLjYgNC40NiA5LjgxIDUuODYgMTUuNzMgMTcuNTkgMTQuODcgMjguOTYtLjIyIDcuNTMtMy44IDE0LjYtOC42NyAyMC4yLTUuODggNS43MS0xMy44NCA5LjY5LTIyLjE2IDkuNjYtMTAuODEuNTEtMjEuODUtNS4wNS0yNy42MS0xNC4yNS00Ljg3LTYuODMtNi4yMS0xNS43MS00LjczLTIzLjg1IDIuMzMtMTIuNTkgMTMuMDYtMjMuMTIgMjUuNy0yNS4xOHpcIiBmaWxsPVwiIzc2NzY3NlwiLz5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJtNTA2LjM3IDg2NC40N2M4LjczLTEuNTYgMTguMDYuNjYgMjUuMDggNi4xMSAxMC45NCA4LjE0IDE1LjU1IDIzLjcyIDEwLjU4IDM2LjQ2LTMuMzcgOS40NC0xMS40NiAxNi45MS0yMS4wNyAxOS42OC05LjM1IDIuODEtMTkuOTEuOTMtMjcuNzctNC44Ni0xMC43OC03LjU0LTE1Ljc4LTIyLjIyLTExLjkxLTM0Ljc5IDMuMTctMTEuNTMgMTMuMzMtMjAuNTggMjUuMDktMjIuNnpcIiBmaWxsPVwiI2JlYmViZVwiLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICBHb29nbGUgQXV0aGVudGljYXRvclxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgXG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdJZj1cIm1vZGUgPT09ICdjb2RlLWlucHV0J1wiIGNsYXNzPVwiY29kZS1pbnB1dFwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIEVudGVyIHRoZSA2LWRpZ2l0IGNvZGUgeW91IHNlZSBpbiB0aGUgQXBwLlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8YXBwLWNvZGUtaW5wdXRcbiAgICAgICAgICBbY29kZUxlbmd0aF09XCI2XCJcbiAgICAgICAgICAoY29kZUNoYW5nZWQpPVwiY29kZUNoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgICA8L2FwcC1jb2RlLWlucHV0PlxuXG4gICAgICAgIDxtYXQtY2hlY2tib3ggbmFtZT1cImRlZmF1bHRcIiBbKG5nTW9kZWwpXT1cImRlZmF1bHRcIiBbZGlzYWJsZVJpcHBsZV09XCJ0cnVlXCI+XG4gICAgICAgICAgTWFrZSB0aGlzIHRoZSBkZWZhdWx0IDItc3RlcCB2ZXJpZmljYXRpb24gbWV0aG9kXG4gICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgPC9kaXY+XG4gICAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgPG1hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcHBUeXBlXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwibW9kZSA9PT0gJ3FyLWNvZGUnXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIChjbGljayk9XCJuZXh0KClcIj5cbiAgICAgICAgICBOZXh0XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cIm1vZGUgPT09ICdjb2RlLWlucHV0J1wiXG4gICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAoY2xpY2spPVwibmV4dCgpXCI+XG4gICAgICAgICAgVmVyaWZ5XG4gICAgICAgIDwvYnV0dG9uPiAgICAgIFxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgIFttYXQtZGlhbG9nLWNsb3NlXT1cIm51bGxcIj5cbiAgICAgICAgQ2FuY2VsXG4gICAgICA8L2J1dHRvbj5cbiAgICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cbiAgPC9mcy1kaWFsb2c+XG48L2Zvcm0+XG4iXX0=
|
|
@@ -483,7 +483,7 @@ class AppComponent {
|
|
|
483
483
|
}
|
|
484
484
|
}
|
|
485
485
|
AppComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: AppComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i0.ChangeDetectorRef }, { token: i2.FsMessage }], target: i0.ɵɵFactoryTarget.Component });
|
|
486
|
-
AppComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: AppComponent, selector: "ng-component", viewQueries: [{ propertyName: "form", first: true, predicate: FsFormDirective, descendants: true }], ngImport: i0, template: "<form fsForm [submit]=\"verify\">\n <fs-dialog>\n <h1 mat-dialog-title>Authenticator App Setup</h1>\n <mat-dialog-content>\n\n <div *ngIf=\"mode === 'qr-code'\" class=\"qr-code\">\n <ng-container *ngIf=\"appType\">\n <ol>\n <li>\n <ng-container *ngIf=\"appType === 'authy'\">\n Install the Authy Authenticator App from the <a href=\"https://apps.apple.com/us/app/authy/id494168017\" target=\"_blank\">App Store</a> or\n the <a href=\"https://play.google.com/store/apps/details?id=com.authy.authy\" target=\"_blank\">Google Play Store</a>.\n </ng-container>\n\n <ng-container *ngIf=\"appType === 'google'\">\n Install the Google Authenticator App from the <a href=\"https://apps.apple.com/us/app/google-authenticator/id388497605\" target=\"_blank\">App Store</a> or\n the <a href=\"https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=en_US&gl=US\" target=\"_blank\">Google Play Store</a>.\n </ng-container>\n </li>\n <ng-container *ngIf=\"appType === 'authy'\">\n <li>\n Open the Authy app and select <b>Add Account</b>.\n </li>\n <li>\n Select <b>Scan QR Code</b> and scan the QR code below.\n </li>\n </ng-container> \n <ng-container *ngIf=\"appType === 'google'\">\n <li>\n Open the Google Authentictor app and click the <b>Plus icon</b> in the lower right corner.\n </li>\n <li>\n Select <b>Scan a QR code</b> and scan the QR code below.\n </li>\n </ng-container>\n </ol>\n\n <qr-code \n *fsSkeleton=\"qrCodeUrl\"\n [value]=\"qrCodeUrl\"\n size=\"200\"\n errorCorrectionLevel=\"H\"\n [margin]=\"0\">\n </qr-code> \n </ng-container>\n\n <div class=\"app-types\" *ngIf=\"!appType\">\n <p>Select the Authenticator App you prefer</p>\n\n <div class=\"row\">\n <span>\n <a (click)=\"appTypeAuthy()\">\n <svg width=\"50\" height=\"50\" viewBox=\"0 0 256 256\" xmlns=\"http://www.w3.org/2000/svg\" preserveAspectRatio=\"xMidYMid\"><path d=\"M256 127.998C256 198.696 198.694 256 127.997 256 57.304 256 0 198.696 0 127.998 0 57.305 57.304 0 127.997 0 198.694 0 256 57.305 256 127.998z\" fill=\"#EC1C24\"/><path d=\"M117.024 100.89l30.691 30.68c4.43 4.436 11.623 4.436 16.064 0 4.431-4.435 4.441-11.622 0-16.058L133.086 84.82C111.125 62.854 75.631 62.5 53.204 83.704a9.536 9.536 0 0 0-.605.548c-.098.098-.178.202-.275.29-.1.096-.202.182-.297.278-.194.193-.371.396-.54.597-21.215 22.437-20.85 57.932 1.113 79.897L83.292 196c4.44 4.433 11.623 4.433 16.062 0 4.442-4.437 4.442-11.633.011-16.06l-30.693-30.691c-13.398-13.393-13.488-35.129-.278-48.637 13.506-13.21 35.23-13.114 48.63.279zm39.612-40.873c-4.435 4.437-4.435 11.623.012 16.059l30.681 30.693c13.39 13.392 13.477 35.125.268 48.636-13.51 13.2-35.227 13.112-48.623-.282l-30.692-30.689c-4.438-4.437-11.633-4.437-16.066 0-4.443 4.433-4.443 11.642 0 16.065l30.682 30.694c21.968 21.965 57.458 22.322 79.889 1.116.208-.184.404-.355.61-.549.094-.095.182-.192.273-.29.1-.095.197-.183.29-.289.197-.183.365-.384.54-.594 21.215-22.428 20.86-57.911-1.102-79.889l-30.692-30.682c-4.436-4.443-11.638-4.443-16.07.001z\" fill=\"#FFF\"/></svg>\n </a>\n Authy\n </span>\n \n <span>\n <a (click)=\"appTypeGoogle()\"> \n <svg width=\"50\" height=\"50\" viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"m457.07 45.92c73.67-8.62 149.41.22 218.93 26.24 62.75 23.47 120.59 60.41 167.72 108.09-40.31 39.97-80.25 80.31-120.51 120.33-25.95-25.45-56.19-46.65-89.47-61.37-44.22-19.82-93.39-28.54-141.72-25.2-54.6 3.52-108.11 22.49-152.63 54.3-55.24 38.95-96.61 97.22-114.8 162.35-13.64 47.78-14.77 98.97-3.76 147.4 8.85 39.61 26.09 77.29 50.05 110.03 22.24 30.45 50.3 56.64 82.22 76.71 36.79 23.24 78.76 38.22 121.96 43.48 37.02 4.65 74.9 2.23 111.05-7 3.97-1.91 6.24 2.61 8.73 4.86 40.74 40.95 81.68 81.7 122.43 122.63-73.31 35.6-155.99 51.86-237.3 46.12-68.05-4.51-135.07-24.08-194.71-57.18-24.87-13.6-48.23-29.82-70.33-47.54-17.46-14.81-34.71-30.01-49.72-47.35-25.41-27.39-47.21-58.11-65.17-90.87-4-7.72-8.64-15.12-11.9-23.2-4.47-9.05-8.37-18.36-12.25-27.67-4.96-13.27-10.26-26.44-13.88-40.15-.43-1.81-1.53-3.33-2.52-4.85-8.3-28.66-12.95-58.33-15.44-88.04-2.62-37.36-1.33-75.05 4.78-112.03 12.18-75.48 43.41-147.74 89.86-208.44 30.12-39.5 66.53-74.21 107.46-102.35 62.44-43.11 135.53-70.69 210.92-79.3m49.18 50.48c-5.7.99-10.96 3.76-15.38 7.43-10.4 8.93-14.14 24.81-8.17 37.28 6.33 15.02 25.16 23.1 40.36 17 15.43-5.24 24.78-23.51 19.74-39.06-4.1-15.43-20.92-25.79-36.55-22.65m-267.96 111.99c-5.33.28-10.59 1.92-15.16 4.68-11.47 7.03-17.88 21.74-14.36 34.86 3.09 14.08 16.78 25.06 31.26 24.61 15.03.41 29.08-11.39 31.54-26.17 2.24-10.33-1.61-21.55-9.14-28.85-6.24-6.33-15.3-9.62-24.14-9.13m-115.96 272c-6.62 1.23-12.84 4.58-17.54 9.4-9.45 9.72-11.72 25.57-5.02 37.42 7.16 13.96 25.48 20.86 39.98 14.62 15.02-5.51 23.99-23.42 19.06-38.71-4.04-15.41-20.86-25.96-36.48-22.73m111.98 272.05c-11.49 1.95-21.48 10.72-24.84 21.88-3.87 11.63-.13 25.16 8.9 33.36 6.15 5.48 14.4 8.7 22.67 8.32 11.16-.25 21.98-6.87 27.12-16.8 4.93-8.83 5.15-20.02.71-29.1-5.82-12.78-20.81-20.33-34.56-17.66m272.06 112.03c-11.76 2.02-21.92 11.07-25.09 22.6-3.87 12.57 1.13 27.25 11.91 34.79 7.86 5.79 18.42 7.67 27.77 4.86 9.61-2.77 17.7-10.24 21.07-19.68 4.97-12.74.36-28.32-10.58-36.46-7.02-5.45-16.35-7.67-25.08-6.11z\" fill=\"#a0a0a0\"/>\n <g fill=\"#c1c1c1\">\n <path d=\"m506.25 96.4c15.63-3.14 32.45 7.22 36.55 22.65 5.04 15.55-4.31 33.82-19.74 39.06-15.2 6.1-34.03-1.98-40.36-17-5.97-12.47-2.23-28.35 8.17-37.28 4.42-3.67 9.68-6.44 15.38-7.43z\"/>\n <path d=\"m122.33 480.39c15.62-3.23 32.44 7.32 36.48 22.73 4.93 15.29-4.04 33.2-19.06 38.71-14.5 6.24-32.82-.66-39.98-14.62-6.7-11.85-4.43-27.7 5.02-37.42 4.7-4.82 10.92-8.17 17.54-9.4z\"/>\n </g>\n <path d=\"m843.72 180.25.11-.11c24.64 25.12 46.96 52.6 65.61 82.47 36.01 57.16 59.38 122.22 67.87 189.25 5.67 44.88 5.27 90.6-2.05 135.27-12.7 80.01-46.94 156.41-97.9 219.36-42.3 52.48-95.87 96.04-156.41 125.76l-.63-.26c-1.01-1.1-2.03-2.16-3.05-3.22-40.75-40.93-81.69-81.68-122.43-122.63-2.49-2.25-4.76-6.77-8.73-4.86-36.15 9.23-74.03 11.65-111.05 7-43.2-5.26-85.17-20.24-121.96-43.48-31.92-20.07-59.98-46.26-82.22-76.71-23.96-32.74-41.2-70.42-50.05-110.03-11.01-48.43-9.88-99.62 3.76-147.4 18.19-65.13 59.56-123.4 114.8-162.35 44.52-31.81 98.03-50.78 152.63-54.3 48.33-3.34 97.5 5.38 141.72 25.2 33.28 14.72 63.52 35.92 89.47 61.37 40.26-40.02 80.2-80.36 120.51-120.33m-351.75 183.97c-21.23 2.85-41.89 10.28-59.88 21.94-23.08 14.45-41.76 35.58-53.9 59.91-14.58 29.2-18.64 63.21-12.5 95.17 3.93 19.85 12.03 38.88 23.56 55.51 7.93 11.52 17.65 21.66 27.65 31.38 57.33 57.41 114.61 114.86 171.99 172.21 49.09-13.07 94.67-38.94 131.05-74.4 45.11-43.34 75.66-101.44 86.31-163.06.24-1.04.22-2.91 1.85-2.6 29.63.04 59.26-.01 88.9.05 19.04-.3 36.87-14.77 40.76-33.46.22-1.21 0-2.32-.67-3.35 1.22-5.71 2.08-11.58 1.38-17.43l-.24.4c-2.05-20.34-20.84-37.12-41.25-37.17-80.64-.07-161.28-.01-241.93-.07-6.44-22.08-18.5-42.33-34.03-59.23-25.8-27.5-62.26-45.01-100.02-46.82-9.68.02-19.44-.54-29.03 1.02m286.37 388.31c-12.64 2.06-23.37 12.59-25.7 25.18-1.48 8.14-.14 17.02 4.73 23.85 5.76 9.2 16.8 14.76 27.61 14.25 8.32.03 16.28-3.95 22.16-9.66 4.87-5.6 8.45-12.67 8.67-20.2.86-11.37-5.06-23.1-14.87-28.96-6.52-4.46-14.89-5.75-22.6-4.46z\" fill=\"#686868\"/>\n <path d=\"m238.29 208.39c8.84-.49 17.9 2.8 24.14 9.13 7.53 7.3 11.38 18.52 9.14 28.85-2.46 14.78-16.51 26.58-31.54 26.17-14.48.45-28.17-10.53-31.26-24.61-3.52-13.12 2.89-27.83 14.36-34.86 4.57-2.76 9.83-4.4 15.16-4.68z\" fill=\"#c3c3c3\"/>\n <path d=\"m491.97 364.22c9.59-1.56 19.35-1 29.03-1.02 37.76 1.81 74.22 19.32 100.02 46.82 15.53 16.9 27.59 37.15 34.03 59.23-47.67-.01-95.35-.01-143.03-.01-12.19-.11-24.23 5.42-32.21 14.61-6.01 6.85-9.74 15.65-10.44 24.74-1.19 14.17 5.36 28.7 16.69 37.28 7.62 5.91 17.28 9 26.92 8.8 126.69-.04 253.39-.06 380.08.03 4.76.04 9.59-.15 14.2-1.48 14.21-3.82 26.02-15.47 29.83-29.7.67 1.03.89 2.14.67 3.35-3.89 18.69-21.72 33.16-40.76 33.46-29.64-.06-59.27-.01-88.9-.05-1.63-.31-1.61 1.56-1.85 2.6-10.65 61.62-41.2 119.72-86.31 163.06-36.38 35.46-81.96 61.33-131.05 74.4-57.38-57.35-114.66-114.8-171.99-172.21-10-9.72-19.72-19.86-27.65-31.38-11.53-16.63-19.63-35.66-23.56-55.51-6.14-31.96-2.08-65.97 12.5-95.17 12.14-24.33 30.82-45.46 53.9-59.91 17.99-11.66 38.65-19.09 59.88-21.94z\" fill=\"#474747\"/>\n <g fill=\"#bfbfbf\">\n <path d=\"m479.81 483.85c7.98-9.19 20.02-14.72 32.21-14.61 47.68 0 95.36 0 143.03.01 80.65.06 161.29 0 241.93.07 20.41.05 39.2 16.83 41.25 37.17-.19.33-.58.97-.78 1.29-3.68-18.51-21.57-33.16-40.47-33.05-124.97.1-249.94.12-374.91.17-7.73.13-15.74-.8-23.15 1.96-9.06 2.84-16.73 9.1-22.27 16.7-3.34 4.55-4.39 10.24-7.28 15.03.7-9.09 4.43-17.89 10.44-24.74z\"/>\n <path d=\"m234.31 752.44c13.75-2.67 28.74 4.88 34.56 17.66 4.44 9.08 4.22 20.27-.71 29.1-5.14 9.93-15.96 16.55-27.12 16.8-8.27.38-16.52-2.84-22.67-8.32-9.03-8.2-12.77-21.73-8.9-33.36 3.36-11.16 13.35-19.93 24.84-21.88z\"/>\n </g>\n <path d=\"m498.92 476.86c7.41-2.76 15.42-1.83 23.15-1.96 124.97-.05 249.94-.07 374.91-.17 18.9-.11 36.79 14.54 40.47 33.05.2-.32.59-.96.78-1.29l.24-.4c.7 5.85-.16 11.72-1.38 17.43-3.81 14.23-15.62 25.88-29.83 29.7-4.61 1.33-9.44 1.52-14.2 1.48-126.69-.09-253.39-.07-380.08-.03-9.64.2-19.3-2.89-26.92-8.8-11.33-8.58-17.88-23.11-16.69-37.28 2.89-4.79 3.94-10.48 7.28-15.03 5.54-7.6 13.21-13.86 22.27-16.7z\" fill=\"#b0b0b0\"/>\n <path d=\"m59.49 636.08c.99 1.52 2.09 3.04 2.52 4.85 3.62 13.71 8.92 26.88 13.88 40.15 3.88 9.31 7.78 18.62 12.25 27.67 3.26 8.08 7.9 15.48 11.9 23.2 17.96 32.76 39.76 63.48 65.17 90.87 15.01 17.34 32.26 32.54 49.72 47.35 22.1 17.72 45.46 33.94 70.33 47.54 59.64 33.1 126.66 52.67 194.71 57.18 81.31 5.74 163.99-10.52 237.3-46.12 1.02 1.06 2.04 2.12 3.05 3.22l.03.61c-42.32 21.03-87.88 35.53-134.56 42.91-56.91 8.9-115.46 7.49-171.82-4.5-67.89-14.35-132.42-44.21-187.42-86.51-63.52-48.63-114.32-113.73-145.86-187.27-8.42-19.87-15.93-40.22-21.2-61.15z\" fill=\"#939393\"/>\n <path d=\"m778.34 752.53c7.71-1.29 16.08 0 22.6 4.46 9.81 5.86 15.73 17.59 14.87 28.96-.22 7.53-3.8 14.6-8.67 20.2-5.88 5.71-13.84 9.69-22.16 9.66-10.81.51-21.85-5.05-27.61-14.25-4.87-6.83-6.21-15.71-4.73-23.85 2.33-12.59 13.06-23.12 25.7-25.18z\" fill=\"#767676\"/>\n <path d=\"m506.37 864.47c8.73-1.56 18.06.66 25.08 6.11 10.94 8.14 15.55 23.72 10.58 36.46-3.37 9.44-11.46 16.91-21.07 19.68-9.35 2.81-19.91.93-27.77-4.86-10.78-7.54-15.78-22.22-11.91-34.79 3.17-11.53 13.33-20.58 25.09-22.6z\" fill=\"#bebebe\"/>\n </svg>\n </a>\n Google Authenticator\n </span>\n </div>\n\n <mat-checkbox \n name=\"default\"\n [(ngModel)]=\"default\"\n [disableRipple]=\"true\">\n Make this the default 2-step verification method\n </mat-checkbox>\n </div>\n \n </div>\n\n <div *ngIf=\"mode === 'code-input'\" class=\"code-input\">\n <div>\n Enter the 6-digit code you see in the App.\n </div>\n\n <app-code-input\n [codeLength]=\"6\"\n (codeChanged)=\"codeChanged($event)\"\n (codeCompleted)=\"codeCompleted()\">\n </app-code-input>\n </div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <ng-container *ngIf=\"appType\">\n <button\n *ngIf=\"mode === 'qr-code'\"\n type=\"button\"\n mat-button\n color=\"primary\"\n (click)=\"next()\">\n Next\n </button>\n <button\n *ngIf=\"mode === 'code-input'\"\n type=\"submit\"\n mat-button\n color=\"primary\"\n (click)=\"next()\">\n Verify\n </button> \n </ng-container>\n <button\n type=\"button\"\n mat-button\n [mat-dialog-close]=\"null\">\n Cancel\n </button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n", styles: ["ul{margin:0;padding-left:24px}qr-code{display:flex;justify-content:center;margin:30px}app-code-input{margin-top:10px}.code-input{width:400px}.app-types{text-align:center;padding:0 40px}.app-types .row{display:flex;justify-content:center}.app-types .row span{display:flex;flex-direction:column;text-align:center;max-width:100px}.app-types .row span+span{margin-left:40px}.app-types mat-checkbox{margin-top:20px}.app-types mat-checkbox ::ng-deep .mat-ripple{display:none}\n"], components: [{ type: i3.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i4$1.QrCodeComponent, selector: "qr-code", inputs: ["value", "size", "darkColor", "lightColor", "errorCorrectionLevel", "centerImageSrc", "centerImageSize", "margin"] }, { type: i3$2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: CodeInputComponent, selector: "app-code-input", inputs: ["codeLength", "code"], outputs: ["codeCompleted", "codeChanged"] }, { type: i5$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i9.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i9.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i10.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"] }, { type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i9$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i10.FsSubmitButtonDirective, selector: "button[type=\"submit\"]", inputs: ["name", "dirtySubmit"] }, { type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
486
|
+
AppComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: AppComponent, selector: "ng-component", viewQueries: [{ propertyName: "form", first: true, predicate: FsFormDirective, descendants: true }], ngImport: i0, template: "<form fsForm [submit]=\"verify\">\n <fs-dialog>\n <h1 mat-dialog-title>Authenticator App Setup</h1>\n <mat-dialog-content>\n\n <div *ngIf=\"mode === 'qr-code'\" class=\"qr-code\">\n <ng-container *ngIf=\"appType\">\n <ol>\n <li>\n <ng-container *ngIf=\"appType === 'authy'\">\n Install the Authy Authenticator App from the <a href=\"https://apps.apple.com/us/app/authy/id494168017\" target=\"_blank\">App Store</a> or\n the <a href=\"https://play.google.com/store/apps/details?id=com.authy.authy\" target=\"_blank\">Google Play Store</a>.\n </ng-container>\n\n <ng-container *ngIf=\"appType === 'google'\">\n Install the Google Authenticator App from the <a href=\"https://apps.apple.com/us/app/google-authenticator/id388497605\" target=\"_blank\">App Store</a> or\n the <a href=\"https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=en_US&gl=US\" target=\"_blank\">Google Play Store</a>.\n </ng-container>\n </li>\n <ng-container *ngIf=\"appType === 'authy'\">\n <li>\n Open the Authy app and select <b>Add Account</b>.\n </li>\n <li>\n Select <b>Scan QR Code</b> and scan the QR code below.\n </li>\n </ng-container> \n <ng-container *ngIf=\"appType === 'google'\">\n <li>\n Open the Google Authentictor app and click the <b>Plus icon</b> in the lower right corner.\n </li>\n <li>\n Select <b>Scan a QR code</b> and scan the QR code below.\n </li>\n </ng-container>\n </ol>\n\n <qr-code \n *fsSkeleton=\"qrCodeUrl\"\n [value]=\"qrCodeUrl\"\n size=\"200\"\n errorCorrectionLevel=\"H\"\n [margin]=\"0\">\n </qr-code> \n </ng-container>\n\n <div class=\"app-types\" *ngIf=\"!appType\">\n <p>Select the Authenticator App you prefer</p>\n\n <div class=\"row\">\n <span>\n <a (click)=\"appTypeAuthy()\">\n <svg width=\"50\" height=\"50\" viewBox=\"0 0 256 256\" xmlns=\"http://www.w3.org/2000/svg\" preserveAspectRatio=\"xMidYMid\"><path d=\"M256 127.998C256 198.696 198.694 256 127.997 256 57.304 256 0 198.696 0 127.998 0 57.305 57.304 0 127.997 0 198.694 0 256 57.305 256 127.998z\" fill=\"#EC1C24\"/><path d=\"M117.024 100.89l30.691 30.68c4.43 4.436 11.623 4.436 16.064 0 4.431-4.435 4.441-11.622 0-16.058L133.086 84.82C111.125 62.854 75.631 62.5 53.204 83.704a9.536 9.536 0 0 0-.605.548c-.098.098-.178.202-.275.29-.1.096-.202.182-.297.278-.194.193-.371.396-.54.597-21.215 22.437-20.85 57.932 1.113 79.897L83.292 196c4.44 4.433 11.623 4.433 16.062 0 4.442-4.437 4.442-11.633.011-16.06l-30.693-30.691c-13.398-13.393-13.488-35.129-.278-48.637 13.506-13.21 35.23-13.114 48.63.279zm39.612-40.873c-4.435 4.437-4.435 11.623.012 16.059l30.681 30.693c13.39 13.392 13.477 35.125.268 48.636-13.51 13.2-35.227 13.112-48.623-.282l-30.692-30.689c-4.438-4.437-11.633-4.437-16.066 0-4.443 4.433-4.443 11.642 0 16.065l30.682 30.694c21.968 21.965 57.458 22.322 79.889 1.116.208-.184.404-.355.61-.549.094-.095.182-.192.273-.29.1-.095.197-.183.29-.289.197-.183.365-.384.54-.594 21.215-22.428 20.86-57.911-1.102-79.889l-30.692-30.682c-4.436-4.443-11.638-4.443-16.07.001z\" fill=\"#FFF\"/></svg>\n </a>\n Authy\n </span>\n \n <span>\n <a (click)=\"appTypeGoogle()\"> \n <svg width=\"50\" height=\"50\" viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"m457.07 45.92c73.67-8.62 149.41.22 218.93 26.24 62.75 23.47 120.59 60.41 167.72 108.09-40.31 39.97-80.25 80.31-120.51 120.33-25.95-25.45-56.19-46.65-89.47-61.37-44.22-19.82-93.39-28.54-141.72-25.2-54.6 3.52-108.11 22.49-152.63 54.3-55.24 38.95-96.61 97.22-114.8 162.35-13.64 47.78-14.77 98.97-3.76 147.4 8.85 39.61 26.09 77.29 50.05 110.03 22.24 30.45 50.3 56.64 82.22 76.71 36.79 23.24 78.76 38.22 121.96 43.48 37.02 4.65 74.9 2.23 111.05-7 3.97-1.91 6.24 2.61 8.73 4.86 40.74 40.95 81.68 81.7 122.43 122.63-73.31 35.6-155.99 51.86-237.3 46.12-68.05-4.51-135.07-24.08-194.71-57.18-24.87-13.6-48.23-29.82-70.33-47.54-17.46-14.81-34.71-30.01-49.72-47.35-25.41-27.39-47.21-58.11-65.17-90.87-4-7.72-8.64-15.12-11.9-23.2-4.47-9.05-8.37-18.36-12.25-27.67-4.96-13.27-10.26-26.44-13.88-40.15-.43-1.81-1.53-3.33-2.52-4.85-8.3-28.66-12.95-58.33-15.44-88.04-2.62-37.36-1.33-75.05 4.78-112.03 12.18-75.48 43.41-147.74 89.86-208.44 30.12-39.5 66.53-74.21 107.46-102.35 62.44-43.11 135.53-70.69 210.92-79.3m49.18 50.48c-5.7.99-10.96 3.76-15.38 7.43-10.4 8.93-14.14 24.81-8.17 37.28 6.33 15.02 25.16 23.1 40.36 17 15.43-5.24 24.78-23.51 19.74-39.06-4.1-15.43-20.92-25.79-36.55-22.65m-267.96 111.99c-5.33.28-10.59 1.92-15.16 4.68-11.47 7.03-17.88 21.74-14.36 34.86 3.09 14.08 16.78 25.06 31.26 24.61 15.03.41 29.08-11.39 31.54-26.17 2.24-10.33-1.61-21.55-9.14-28.85-6.24-6.33-15.3-9.62-24.14-9.13m-115.96 272c-6.62 1.23-12.84 4.58-17.54 9.4-9.45 9.72-11.72 25.57-5.02 37.42 7.16 13.96 25.48 20.86 39.98 14.62 15.02-5.51 23.99-23.42 19.06-38.71-4.04-15.41-20.86-25.96-36.48-22.73m111.98 272.05c-11.49 1.95-21.48 10.72-24.84 21.88-3.87 11.63-.13 25.16 8.9 33.36 6.15 5.48 14.4 8.7 22.67 8.32 11.16-.25 21.98-6.87 27.12-16.8 4.93-8.83 5.15-20.02.71-29.1-5.82-12.78-20.81-20.33-34.56-17.66m272.06 112.03c-11.76 2.02-21.92 11.07-25.09 22.6-3.87 12.57 1.13 27.25 11.91 34.79 7.86 5.79 18.42 7.67 27.77 4.86 9.61-2.77 17.7-10.24 21.07-19.68 4.97-12.74.36-28.32-10.58-36.46-7.02-5.45-16.35-7.67-25.08-6.11z\" fill=\"#a0a0a0\"/>\n <g fill=\"#c1c1c1\">\n <path d=\"m506.25 96.4c15.63-3.14 32.45 7.22 36.55 22.65 5.04 15.55-4.31 33.82-19.74 39.06-15.2 6.1-34.03-1.98-40.36-17-5.97-12.47-2.23-28.35 8.17-37.28 4.42-3.67 9.68-6.44 15.38-7.43z\"/>\n <path d=\"m122.33 480.39c15.62-3.23 32.44 7.32 36.48 22.73 4.93 15.29-4.04 33.2-19.06 38.71-14.5 6.24-32.82-.66-39.98-14.62-6.7-11.85-4.43-27.7 5.02-37.42 4.7-4.82 10.92-8.17 17.54-9.4z\"/>\n </g>\n <path d=\"m843.72 180.25.11-.11c24.64 25.12 46.96 52.6 65.61 82.47 36.01 57.16 59.38 122.22 67.87 189.25 5.67 44.88 5.27 90.6-2.05 135.27-12.7 80.01-46.94 156.41-97.9 219.36-42.3 52.48-95.87 96.04-156.41 125.76l-.63-.26c-1.01-1.1-2.03-2.16-3.05-3.22-40.75-40.93-81.69-81.68-122.43-122.63-2.49-2.25-4.76-6.77-8.73-4.86-36.15 9.23-74.03 11.65-111.05 7-43.2-5.26-85.17-20.24-121.96-43.48-31.92-20.07-59.98-46.26-82.22-76.71-23.96-32.74-41.2-70.42-50.05-110.03-11.01-48.43-9.88-99.62 3.76-147.4 18.19-65.13 59.56-123.4 114.8-162.35 44.52-31.81 98.03-50.78 152.63-54.3 48.33-3.34 97.5 5.38 141.72 25.2 33.28 14.72 63.52 35.92 89.47 61.37 40.26-40.02 80.2-80.36 120.51-120.33m-351.75 183.97c-21.23 2.85-41.89 10.28-59.88 21.94-23.08 14.45-41.76 35.58-53.9 59.91-14.58 29.2-18.64 63.21-12.5 95.17 3.93 19.85 12.03 38.88 23.56 55.51 7.93 11.52 17.65 21.66 27.65 31.38 57.33 57.41 114.61 114.86 171.99 172.21 49.09-13.07 94.67-38.94 131.05-74.4 45.11-43.34 75.66-101.44 86.31-163.06.24-1.04.22-2.91 1.85-2.6 29.63.04 59.26-.01 88.9.05 19.04-.3 36.87-14.77 40.76-33.46.22-1.21 0-2.32-.67-3.35 1.22-5.71 2.08-11.58 1.38-17.43l-.24.4c-2.05-20.34-20.84-37.12-41.25-37.17-80.64-.07-161.28-.01-241.93-.07-6.44-22.08-18.5-42.33-34.03-59.23-25.8-27.5-62.26-45.01-100.02-46.82-9.68.02-19.44-.54-29.03 1.02m286.37 388.31c-12.64 2.06-23.37 12.59-25.7 25.18-1.48 8.14-.14 17.02 4.73 23.85 5.76 9.2 16.8 14.76 27.61 14.25 8.32.03 16.28-3.95 22.16-9.66 4.87-5.6 8.45-12.67 8.67-20.2.86-11.37-5.06-23.1-14.87-28.96-6.52-4.46-14.89-5.75-22.6-4.46z\" fill=\"#686868\"/>\n <path d=\"m238.29 208.39c8.84-.49 17.9 2.8 24.14 9.13 7.53 7.3 11.38 18.52 9.14 28.85-2.46 14.78-16.51 26.58-31.54 26.17-14.48.45-28.17-10.53-31.26-24.61-3.52-13.12 2.89-27.83 14.36-34.86 4.57-2.76 9.83-4.4 15.16-4.68z\" fill=\"#c3c3c3\"/>\n <path d=\"m491.97 364.22c9.59-1.56 19.35-1 29.03-1.02 37.76 1.81 74.22 19.32 100.02 46.82 15.53 16.9 27.59 37.15 34.03 59.23-47.67-.01-95.35-.01-143.03-.01-12.19-.11-24.23 5.42-32.21 14.61-6.01 6.85-9.74 15.65-10.44 24.74-1.19 14.17 5.36 28.7 16.69 37.28 7.62 5.91 17.28 9 26.92 8.8 126.69-.04 253.39-.06 380.08.03 4.76.04 9.59-.15 14.2-1.48 14.21-3.82 26.02-15.47 29.83-29.7.67 1.03.89 2.14.67 3.35-3.89 18.69-21.72 33.16-40.76 33.46-29.64-.06-59.27-.01-88.9-.05-1.63-.31-1.61 1.56-1.85 2.6-10.65 61.62-41.2 119.72-86.31 163.06-36.38 35.46-81.96 61.33-131.05 74.4-57.38-57.35-114.66-114.8-171.99-172.21-10-9.72-19.72-19.86-27.65-31.38-11.53-16.63-19.63-35.66-23.56-55.51-6.14-31.96-2.08-65.97 12.5-95.17 12.14-24.33 30.82-45.46 53.9-59.91 17.99-11.66 38.65-19.09 59.88-21.94z\" fill=\"#474747\"/>\n <g fill=\"#bfbfbf\">\n <path d=\"m479.81 483.85c7.98-9.19 20.02-14.72 32.21-14.61 47.68 0 95.36 0 143.03.01 80.65.06 161.29 0 241.93.07 20.41.05 39.2 16.83 41.25 37.17-.19.33-.58.97-.78 1.29-3.68-18.51-21.57-33.16-40.47-33.05-124.97.1-249.94.12-374.91.17-7.73.13-15.74-.8-23.15 1.96-9.06 2.84-16.73 9.1-22.27 16.7-3.34 4.55-4.39 10.24-7.28 15.03.7-9.09 4.43-17.89 10.44-24.74z\"/>\n <path d=\"m234.31 752.44c13.75-2.67 28.74 4.88 34.56 17.66 4.44 9.08 4.22 20.27-.71 29.1-5.14 9.93-15.96 16.55-27.12 16.8-8.27.38-16.52-2.84-22.67-8.32-9.03-8.2-12.77-21.73-8.9-33.36 3.36-11.16 13.35-19.93 24.84-21.88z\"/>\n </g>\n <path d=\"m498.92 476.86c7.41-2.76 15.42-1.83 23.15-1.96 124.97-.05 249.94-.07 374.91-.17 18.9-.11 36.79 14.54 40.47 33.05.2-.32.59-.96.78-1.29l.24-.4c.7 5.85-.16 11.72-1.38 17.43-3.81 14.23-15.62 25.88-29.83 29.7-4.61 1.33-9.44 1.52-14.2 1.48-126.69-.09-253.39-.07-380.08-.03-9.64.2-19.3-2.89-26.92-8.8-11.33-8.58-17.88-23.11-16.69-37.28 2.89-4.79 3.94-10.48 7.28-15.03 5.54-7.6 13.21-13.86 22.27-16.7z\" fill=\"#b0b0b0\"/>\n <path d=\"m59.49 636.08c.99 1.52 2.09 3.04 2.52 4.85 3.62 13.71 8.92 26.88 13.88 40.15 3.88 9.31 7.78 18.62 12.25 27.67 3.26 8.08 7.9 15.48 11.9 23.2 17.96 32.76 39.76 63.48 65.17 90.87 15.01 17.34 32.26 32.54 49.72 47.35 22.1 17.72 45.46 33.94 70.33 47.54 59.64 33.1 126.66 52.67 194.71 57.18 81.31 5.74 163.99-10.52 237.3-46.12 1.02 1.06 2.04 2.12 3.05 3.22l.03.61c-42.32 21.03-87.88 35.53-134.56 42.91-56.91 8.9-115.46 7.49-171.82-4.5-67.89-14.35-132.42-44.21-187.42-86.51-63.52-48.63-114.32-113.73-145.86-187.27-8.42-19.87-15.93-40.22-21.2-61.15z\" fill=\"#939393\"/>\n <path d=\"m778.34 752.53c7.71-1.29 16.08 0 22.6 4.46 9.81 5.86 15.73 17.59 14.87 28.96-.22 7.53-3.8 14.6-8.67 20.2-5.88 5.71-13.84 9.69-22.16 9.66-10.81.51-21.85-5.05-27.61-14.25-4.87-6.83-6.21-15.71-4.73-23.85 2.33-12.59 13.06-23.12 25.7-25.18z\" fill=\"#767676\"/>\n <path d=\"m506.37 864.47c8.73-1.56 18.06.66 25.08 6.11 10.94 8.14 15.55 23.72 10.58 36.46-3.37 9.44-11.46 16.91-21.07 19.68-9.35 2.81-19.91.93-27.77-4.86-10.78-7.54-15.78-22.22-11.91-34.79 3.17-11.53 13.33-20.58 25.09-22.6z\" fill=\"#bebebe\"/>\n </svg>\n </a>\n Google Authenticator\n </span>\n </div>\n </div>\n \n </div>\n\n <div *ngIf=\"mode === 'code-input'\" class=\"code-input\">\n <div>\n Enter the 6-digit code you see in the App.\n </div>\n\n <app-code-input\n [codeLength]=\"6\"\n (codeChanged)=\"codeChanged($event)\">\n </app-code-input>\n\n <mat-checkbox name=\"default\" [(ngModel)]=\"default\" [disableRipple]=\"true\">\n Make this the default 2-step verification method\n </mat-checkbox>\n </div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <ng-container *ngIf=\"appType\">\n <button\n *ngIf=\"mode === 'qr-code'\"\n type=\"button\"\n mat-button\n color=\"primary\"\n (click)=\"next()\">\n Next\n </button>\n <button\n *ngIf=\"mode === 'code-input'\"\n type=\"submit\"\n mat-button\n color=\"primary\"\n (click)=\"next()\">\n Verify\n </button> \n </ng-container>\n <button\n type=\"button\"\n mat-button\n [mat-dialog-close]=\"null\">\n Cancel\n </button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n", styles: ["ul{margin:0;padding-left:24px}qr-code{display:flex;justify-content:center;margin:30px}app-code-input{margin-top:10px}.code-input{width:400px}.app-types{text-align:center;padding:0 40px}.app-types .row{display:flex;justify-content:center}.app-types .row span{display:flex;flex-direction:column;text-align:center;max-width:100px}.app-types .row span+span{margin-left:40px}mat-checkbox{margin:8px 0}\n"], components: [{ type: i3.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i4$1.QrCodeComponent, selector: "qr-code", inputs: ["value", "size", "darkColor", "lightColor", "errorCorrectionLevel", "centerImageSrc", "centerImageSize", "margin"] }, { type: CodeInputComponent, selector: "app-code-input", inputs: ["codeLength", "code"], outputs: ["codeCompleted", "codeChanged"] }, { type: i3$2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i5$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i9.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i9.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i10.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"] }, { type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i9$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i10.FsSubmitButtonDirective, selector: "button[type=\"submit\"]", inputs: ["name", "dirtySubmit"] }, { type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
487
487
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: AppComponent, decorators: [{
|
|
488
488
|
type: Component,
|
|
489
489
|
args: [{
|