@firestitch/2fa 12.8.4 → 12.9.1
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.
- package/app/enums/index.d.ts +1 -0
- package/app/interfaces/index.d.ts +1 -0
- package/app/modules/manage/components/2fa-manage/2fa-manage.component.d.ts +4 -3
- package/app/modules/manage/components/emails/emails.component.d.ts +2 -0
- package/app/modules/manage/components/numbers/numbers.component.d.ts +2 -0
- package/app/modules/manage/fs-2f-manage.module.d.ts +23 -23
- package/app/modules/manage/services/two-factor-manage.service.d.ts +14 -10
- package/app/modules/{manage → verification-methods}/components/verification-methods/index.d.ts +0 -0
- package/app/modules/verification-methods/components/verification-methods/verification-methods.component.d.ts +10 -5
- package/app/modules/verification-methods/index.d.ts +1 -0
- package/bundles/firestitch-2fa.umd.js +190 -165
- package/bundles/firestitch-2fa.umd.js.map +1 -1
- package/esm2015/app/enums/index.js +2 -0
- package/esm2015/app/interfaces/index.js +2 -0
- package/esm2015/app/modules/manage/components/2fa-manage/2fa-manage.component.js +9 -6
- package/esm2015/app/modules/manage/components/app/app.component.js +3 -3
- package/esm2015/app/modules/manage/components/email/email.component.js +3 -3
- package/esm2015/app/modules/manage/components/emails/emails.component.js +13 -7
- package/esm2015/app/modules/manage/components/manage-methods/manage-methods.component.js +6 -6
- package/esm2015/app/modules/manage/components/number/number.component.js +3 -3
- package/esm2015/app/modules/manage/components/numbers/numbers.component.js +13 -7
- package/esm2015/app/modules/manage/fs-2f-manage.module.js +6 -5
- package/esm2015/app/modules/manage/services/two-factor-manage.service.js +33 -23
- package/esm2015/app/modules/verification-methods/components/verification-methods/index.js +2 -0
- package/esm2015/app/modules/verification-methods/components/verification-methods/verification-methods.component.js +60 -5
- package/esm2015/app/modules/verification-methods/index.js +2 -0
- package/esm2015/public_api.js +2 -2
- package/fesm2015/firestitch-2fa.js +179 -154
- package/fesm2015/firestitch-2fa.js.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +2 -2
- package/app/modules/manage/components/verification-methods/verification-methods.component.d.ts +0 -20
- package/esm2015/app/modules/manage/components/verification-methods/index.js +0 -2
- package/esm2015/app/modules/manage/components/verification-methods/verification-methods.component.js +0 -65
package/app/modules/manage/components/verification-methods/verification-methods.component.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { OnInit, EventEmitter } from '@angular/core';
|
|
2
|
-
import { FsListConfig } from '@firestitch/list';
|
|
3
|
-
import { FsPrompt } from '@firestitch/prompt';
|
|
4
|
-
import { IFsVerificationMethod } from '../../../../interfaces/verification-method.interface';
|
|
5
|
-
import { TwoFactorManageService } from '../../services';
|
|
6
|
-
import { VerificationMethodType } from '../../../../enums/verification-method-type.enum';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export declare class VerificationMethodsComponent implements OnInit {
|
|
9
|
-
private _prompt;
|
|
10
|
-
twoFactorManageService: TwoFactorManageService;
|
|
11
|
-
type: any;
|
|
12
|
-
deleted: EventEmitter<IFsVerificationMethod>;
|
|
13
|
-
listConfig: FsListConfig;
|
|
14
|
-
VerificationMethodType: typeof VerificationMethodType;
|
|
15
|
-
textMessageAdd: () => void;
|
|
16
|
-
constructor(_prompt: FsPrompt);
|
|
17
|
-
ngOnInit(): void;
|
|
18
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<VerificationMethodsComponent, never>;
|
|
19
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<VerificationMethodsComponent, "app-verification-methods", never, { "twoFactorManageService": "twoFactorManageService"; "type": "type"; }, { "deleted": "deleted"; }, never, never>;
|
|
20
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './verification-methods.component';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvbWFuYWdlL2NvbXBvbmVudHMvdmVyaWZpY2F0aW9uLW1ldGhvZHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdmVyaWZpY2F0aW9uLW1ldGhvZHMuY29tcG9uZW50JztcbiJdfQ==
|
package/esm2015/app/modules/manage/components/verification-methods/verification-methods.component.js
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { Component, ChangeDetectionStrategy, Input, Output, EventEmitter, } from '@angular/core';
|
|
2
|
-
import { FsPrompt } from '@firestitch/prompt';
|
|
3
|
-
import { map, switchMap } from 'rxjs/operators';
|
|
4
|
-
import { TwoFactorManageService } from '../../services';
|
|
5
|
-
import { VerificationMethodType } from '../../../../enums/verification-method-type.enum';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@firestitch/prompt";
|
|
8
|
-
import * as i2 from "@firestitch/list";
|
|
9
|
-
import * as i3 from "@firestitch/country";
|
|
10
|
-
import * as i4 from "../../../defaulted/components/defaulted/defaulted.component";
|
|
11
|
-
import * as i5 from "@angular/common";
|
|
12
|
-
import * as i6 from "@firestitch/phone";
|
|
13
|
-
export class VerificationMethodsComponent {
|
|
14
|
-
constructor(_prompt) {
|
|
15
|
-
this._prompt = _prompt;
|
|
16
|
-
this.deleted = new EventEmitter();
|
|
17
|
-
this.VerificationMethodType = VerificationMethodType;
|
|
18
|
-
}
|
|
19
|
-
ngOnInit() {
|
|
20
|
-
this.listConfig = {
|
|
21
|
-
rowActions: [
|
|
22
|
-
{
|
|
23
|
-
click: (verificationMethod) => {
|
|
24
|
-
this._prompt.confirm({
|
|
25
|
-
title: 'Confirm',
|
|
26
|
-
template: 'Would you like to delete this verification method?',
|
|
27
|
-
})
|
|
28
|
-
.pipe(switchMap(() => this.twoFactorManageService.accountVerify()), switchMap(() => this.twoFactorManageService
|
|
29
|
-
.verificationMethodDelete(verificationMethod)))
|
|
30
|
-
.subscribe(() => {
|
|
31
|
-
this.deleted.emit(verificationMethod);
|
|
32
|
-
});
|
|
33
|
-
},
|
|
34
|
-
label: 'Delete',
|
|
35
|
-
},
|
|
36
|
-
],
|
|
37
|
-
fetch: () => {
|
|
38
|
-
return this.twoFactorManageService.verificationMethods$
|
|
39
|
-
.pipe(map((verificationMethods) => ({
|
|
40
|
-
data: verificationMethods.filter((verificationMethod) => {
|
|
41
|
-
return verificationMethod.type === this.type;
|
|
42
|
-
}),
|
|
43
|
-
})));
|
|
44
|
-
},
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
VerificationMethodsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: VerificationMethodsComponent, deps: [{ token: i1.FsPrompt }], target: i0.ɵɵFactoryTarget.Component });
|
|
49
|
-
VerificationMethodsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: VerificationMethodsComponent, selector: "app-verification-methods", inputs: { twoFactorManageService: "twoFactorManageService", type: "type" }, outputs: { deleted: "deleted" }, ngImport: i0, template: "<fs-list [config]=\"listConfig\">\n <fs-list-column class=\"col-name\">\n <ng-template fs-list-cell let-row=\"row\">\n <div class=\"row\">\n <ng-container *ngIf=\"row.type === VerificationMethodType.Sms\">\n <fs-country [code]=\"row.phoneCountry\" [showName]=\"false\"></fs-country> {{row.phoneNumber | fsPhone}}\n </ng-container>\n\n <ng-container *ngIf=\"row.type === VerificationMethodType.Email\">\n {{row.email}}\n </ng-container>\n \n <app-defaulted *ngIf=\"row.default\"></app-defaulted>\n </div>\n </ng-template>\n </fs-list-column>\n</fs-list>", styles: [":host ::ng-deep .col-name .row{display:flex;align-items:center}fs-country{margin-right:5px}app-defaulted{margin-left:5px}\n"], components: [{ type: i2.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i3.FsCountryComponent, selector: "fs-country", inputs: ["code", "showIcon", "showName", "region", "width"] }, { type: i4.DefaultedComponent, selector: "app-defaulted" }], directives: [{ type: i2.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "fsPhone": i6.FsPhonePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: VerificationMethodsComponent, decorators: [{
|
|
51
|
-
type: Component,
|
|
52
|
-
args: [{
|
|
53
|
-
selector: 'app-verification-methods',
|
|
54
|
-
templateUrl: './verification-methods.component.html',
|
|
55
|
-
styleUrls: ['./verification-methods.component.scss'],
|
|
56
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
57
|
-
}]
|
|
58
|
-
}], ctorParameters: function () { return [{ type: i1.FsPrompt }]; }, propDecorators: { twoFactorManageService: [{
|
|
59
|
-
type: Input
|
|
60
|
-
}], type: [{
|
|
61
|
-
type: Input
|
|
62
|
-
}], deleted: [{
|
|
63
|
-
type: Output
|
|
64
|
-
}] } });
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZpY2F0aW9uLW1ldGhvZHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL21hbmFnZS9jb21wb25lbnRzL3ZlcmlmaWNhdGlvbi1tZXRob2RzL3ZlcmlmaWNhdGlvbi1tZXRob2RzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2UvY29tcG9uZW50cy92ZXJpZmljYXRpb24tbWV0aG9kcy92ZXJpZmljYXRpb24tbWV0aG9kcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUFFLHVCQUF1QixFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxHQUN4RSxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHOUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7Ozs7Ozs7QUFTekYsTUFBTSxPQUFPLDRCQUE0QjtJQVd2QyxZQUNVLE9BQWlCO1FBQWpCLFlBQU8sR0FBUCxPQUFPLENBQVU7UUFQVixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQXlCLENBQUM7UUFHOUQsMkJBQXNCLEdBQUcsc0JBQXNCLENBQUM7SUFNdkQsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsVUFBVSxHQUFHO1lBQ2hCLFVBQVUsRUFBRTtnQkFDVjtvQkFDRSxLQUFLLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFO3dCQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQzs0QkFDbkIsS0FBSyxFQUFFLFNBQVM7NEJBQ2hCLFFBQVEsRUFBRSxvREFBb0Q7eUJBQy9ELENBQUM7NkJBQ0MsSUFBSSxDQUNILFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsYUFBYSxFQUFFLENBQUMsRUFDNUQsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0I7NkJBQ3hDLHdCQUF3QixDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FDakQ7NkJBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTs0QkFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO3dCQUN4QyxDQUFDLENBQUMsQ0FBQztvQkFDUCxDQUFDO29CQUNELEtBQUssRUFBRSxRQUFRO2lCQUNoQjthQUNGO1lBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRTtnQkFDVixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxvQkFBb0I7cUJBQ3BELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDNUIsSUFBSSxFQUFFLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLGtCQUFrQixFQUFFLEVBQUU7d0JBQ3RELE9BQU8sa0JBQWtCLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUM7b0JBQy9DLENBQUMsQ0FBQztpQkFDSCxDQUFDLENBQ0QsQ0FDRixDQUFDO1lBQ04sQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDOzswSEFqRFUsNEJBQTRCOzhHQUE1Qiw0QkFBNEIsNktDbkJ6QyxtbkJBZ0JVOzRGREdHLDRCQUE0QjtrQkFOeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxXQUFXLEVBQUUsdUNBQXVDO29CQUNwRCxTQUFTLEVBQUUsQ0FBQyx1Q0FBdUMsQ0FBQztvQkFDcEQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOytGQUdpQixzQkFBc0I7c0JBQXJDLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFFVyxPQUFPO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBGc0xpc3RDb25maWcgfSBmcm9tICdAZmlyZXN0aXRjaC9saXN0JztcbmltcG9ydCB7IEZzUHJvbXB0IH0gZnJvbSAnQGZpcmVzdGl0Y2gvcHJvbXB0JztcbmltcG9ydCB7IElGc1ZlcmlmaWNhdGlvbk1ldGhvZCB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMvdmVyaWZpY2F0aW9uLW1ldGhvZC5pbnRlcmZhY2UnO1xuXG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFR3b0ZhY3Rvck1hbmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBWZXJpZmljYXRpb25NZXRob2RUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZW51bXMvdmVyaWZpY2F0aW9uLW1ldGhvZC10eXBlLmVudW0nO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC12ZXJpZmljYXRpb24tbWV0aG9kcycsXG4gIHRlbXBsYXRlVXJsOiAnLi92ZXJpZmljYXRpb24tbWV0aG9kcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3ZlcmlmaWNhdGlvbi1tZXRob2RzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBWZXJpZmljYXRpb25NZXRob2RzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBwdWJsaWMgdHdvRmFjdG9yTWFuYWdlU2VydmljZTogVHdvRmFjdG9yTWFuYWdlU2VydmljZTtcbiAgQElucHV0KCkgcHVibGljIHR5cGU7XG4gIFxuICBAT3V0cHV0KCkgcHVibGljIGRlbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElGc1ZlcmlmaWNhdGlvbk1ldGhvZD4oKTtcblxuICBwdWJsaWMgbGlzdENvbmZpZzogRnNMaXN0Q29uZmlnO1xuICBwdWJsaWMgVmVyaWZpY2F0aW9uTWV0aG9kVHlwZSA9IFZlcmlmaWNhdGlvbk1ldGhvZFR5cGU7XG4gIHB1YmxpYyB0ZXh0TWVzc2FnZUFkZDogKCkgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9wcm9tcHQ6IEZzUHJvbXB0LFxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RDb25maWcgPSB7XG4gICAgICByb3dBY3Rpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjbGljazogKHZlcmlmaWNhdGlvbk1ldGhvZCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fcHJvbXB0LmNvbmZpcm0oe1xuICAgICAgICAgICAgICB0aXRsZTogJ0NvbmZpcm0nLFxuICAgICAgICAgICAgICB0ZW1wbGF0ZTogJ1dvdWxkIHlvdSBsaWtlIHRvIGRlbGV0ZSB0aGlzIHZlcmlmaWNhdGlvbiBtZXRob2Q/JyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnR3b0ZhY3Rvck1hbmFnZVNlcnZpY2UuYWNjb3VudFZlcmlmeSgpKSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlXG4gICAgICAgICAgICAgICAgICAudmVyaWZpY2F0aW9uTWV0aG9kRGVsZXRlKHZlcmlmaWNhdGlvbk1ldGhvZCkpLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlZC5lbWl0KHZlcmlmaWNhdGlvbk1ldGhvZCk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgbGFiZWw6ICdEZWxldGUnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGZldGNoOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnR3b0ZhY3Rvck1hbmFnZVNlcnZpY2UudmVyaWZpY2F0aW9uTWV0aG9kcyRcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgodmVyaWZpY2F0aW9uTWV0aG9kcykgPT4gKHtcbiAgICAgICAgICAgICAgZGF0YTogdmVyaWZpY2F0aW9uTWV0aG9kcy5maWx0ZXIoKHZlcmlmaWNhdGlvbk1ldGhvZCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB2ZXJpZmljYXRpb25NZXRob2QudHlwZSA9PT0gdGhpcy50eXBlO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG4iLCI8ZnMtbGlzdCBbY29uZmlnXT1cImxpc3RDb25maWdcIj5cbiAgPGZzLWxpc3QtY29sdW1uIGNsYXNzPVwiY29sLW5hbWVcIj5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1jZWxsIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJvdy50eXBlID09PSBWZXJpZmljYXRpb25NZXRob2RUeXBlLlNtc1wiPlxuICAgICAgICAgIDxmcy1jb3VudHJ5IFtjb2RlXT1cInJvdy5waG9uZUNvdW50cnlcIiBbc2hvd05hbWVdPVwiZmFsc2VcIj48L2ZzLWNvdW50cnk+IHt7cm93LnBob25lTnVtYmVyIHwgZnNQaG9uZX19XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyb3cudHlwZSA9PT0gVmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5FbWFpbFwiPlxuICAgICAgICAgIHt7cm93LmVtYWlsfX1cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICBcbiAgICAgICAgPGFwcC1kZWZhdWx0ZWQgKm5nSWY9XCJyb3cuZGVmYXVsdFwiPjwvYXBwLWRlZmF1bHRlZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG48L2ZzLWxpc3Q+Il19
|