novo-elements 10.7.0-next.2 → 10.7.0-next.4
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/elements/query-builder/condition-builder/condition-builder.component.d.ts +5 -2
- package/elements/query-builder/condition-group/condition-group.component.d.ts +8 -2
- package/elements/query-builder/criteria-builder/criteria-builder.component.d.ts +16 -3
- package/elements/query-builder/query-builder.module.d.ts +13 -12
- package/elements/query-builder/query-builder.service.d.ts +2 -0
- package/elements/query-builder/query-builder.types.d.ts +3 -0
- package/elements/tabbed-group-picker/TabbedGroupPicker.d.ts +2 -1
- package/esm2022/elements/form/ControlTemplates.mjs +3 -1
- package/esm2022/elements/query-builder/condition-builder/condition-builder.component.mjs +16 -8
- package/esm2022/elements/query-builder/condition-group/condition-group.component.mjs +36 -5
- package/esm2022/elements/query-builder/criteria-builder/criteria-builder.component.mjs +95 -16
- package/esm2022/elements/query-builder/query-builder.module.mjs +5 -1
- package/esm2022/elements/query-builder/query-builder.service.mjs +4 -2
- package/esm2022/elements/query-builder/query-builder.types.mjs +1 -1
- package/esm2022/elements/tabbed-group-picker/TabbedGroupPicker.mjs +5 -5
- package/esm2022/services/novo-label-service.mjs +2 -1
- package/fesm2022/novo-elements-elements-form.mjs +2 -0
- package/fesm2022/novo-elements-elements-form.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-query-builder.mjs +152 -33
- package/fesm2022/novo-elements-elements-query-builder.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-tabbed-group-picker.mjs +4 -4
- package/fesm2022/novo-elements-elements-tabbed-group-picker.mjs.map +1 -1
- package/fesm2022/novo-elements-services.mjs +1 -0
- package/fesm2022/novo-elements-services.mjs.map +1 -1
- package/package.json +1 -1
- package/services/novo-label-service.d.ts +1 -0
|
@@ -35,10 +35,12 @@ export declare class ConditionBuilderComponent implements OnInit, OnChanges, Aft
|
|
|
35
35
|
_operatorOutlet: ConditionOperatorOutlet;
|
|
36
36
|
_inputOutlet: ConditionInputOutlet;
|
|
37
37
|
label: any;
|
|
38
|
-
|
|
38
|
+
scope: string;
|
|
39
39
|
andIndex: number;
|
|
40
40
|
groupIndex: number;
|
|
41
41
|
addressConfig: AddressCriteriaConfig;
|
|
42
|
+
hideOperator: import("@angular/core").InputSignal<boolean>;
|
|
43
|
+
conditionType: import("@angular/core").InputSignal<unknown>;
|
|
42
44
|
inputConfig: import("@angular/core").InputSignal<QueryBuilderConfig>;
|
|
43
45
|
inputEditTypeFn: import("@angular/core").InputSignal<(field: BaseFieldDef) => string>;
|
|
44
46
|
private config;
|
|
@@ -70,10 +72,11 @@ export declare class ConditionBuilderComponent implements OnInit, OnChanges, Aft
|
|
|
70
72
|
getField(): BaseFieldDef;
|
|
71
73
|
getDefaultField(): string;
|
|
72
74
|
updateFieldSelection(): void;
|
|
75
|
+
updateConditionType(): void;
|
|
73
76
|
private findDefinitionForField;
|
|
74
77
|
private createFieldTemplates;
|
|
75
78
|
private createFieldOperators;
|
|
76
79
|
private createFieldInput;
|
|
77
80
|
static ɵfac: i0.ɵɵFactoryDeclaration<ConditionBuilderComponent, never>;
|
|
78
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ConditionBuilderComponent, "novo-condition-builder", never, { "label": { "alias": "label"; "required": false; }; "
|
|
81
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ConditionBuilderComponent, "novo-condition-builder", never, { "label": { "alias": "label"; "required": false; }; "scope": { "alias": "scope"; "required": false; }; "andIndex": { "alias": "andIndex"; "required": false; }; "groupIndex": { "alias": "groupIndex"; "required": false; }; "addressConfig": { "alias": "addressConfig"; "required": false; }; "hideOperator": { "alias": "hideOperator"; "required": false; "isSignal": true; }; "conditionType": { "alias": "conditionType"; "required": false; "isSignal": true; }; "inputConfig": { "alias": "config"; "required": false; "isSignal": true; }; "inputEditTypeFn": { "alias": "editTypeFn"; "required": false; "isSignal": true; }; }, {}, never, ["*"], false, never>;
|
|
79
82
|
}
|
|
@@ -12,18 +12,24 @@ export declare class ConditionGroupComponent implements OnInit, OnDestroy {
|
|
|
12
12
|
private cdr;
|
|
13
13
|
controlName: string;
|
|
14
14
|
groupIndex: number;
|
|
15
|
+
hideFirstOperator: boolean;
|
|
16
|
+
canBeEmpty: boolean;
|
|
17
|
+
formGroupName: any;
|
|
18
|
+
scope: string;
|
|
15
19
|
parentForm: UntypedFormGroup;
|
|
16
20
|
/** Subject that emits when the component has been destroyed. */
|
|
17
21
|
private readonly _onDestroy;
|
|
18
22
|
constructor(qbs: QueryBuilderService, labels: NovoLabelService, controlContainer: ControlContainer, formBuilder: FormBuilder, cdr: ChangeDetectorRef);
|
|
19
23
|
ngOnInit(): void;
|
|
24
|
+
ngOnChanges(): void;
|
|
20
25
|
ngOnDestroy(): void;
|
|
26
|
+
updateGroupScope(): void;
|
|
21
27
|
updateControlName(value: string): void;
|
|
22
28
|
get root(): FormArray;
|
|
23
29
|
addCondition(data?: any): void;
|
|
24
30
|
removeCondition(index: number): void;
|
|
25
|
-
newCondition({ field, operator, value }?: Condition): UntypedFormGroup;
|
|
31
|
+
newCondition({ field, operator, scope, value }?: Condition): UntypedFormGroup;
|
|
26
32
|
cantRemoveRow(): boolean;
|
|
27
33
|
static ɵfac: i0.ɵɵFactoryDeclaration<ConditionGroupComponent, never>;
|
|
28
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ConditionGroupComponent, "novo-condition-group", never, { "controlName": { "alias": "controlName"; "required": false; }; "groupIndex": { "alias": "groupIndex"; "required": false; }; }, {}, never, never, false, never>;
|
|
34
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ConditionGroupComponent, "novo-condition-group", never, { "controlName": { "alias": "controlName"; "required": false; }; "groupIndex": { "alias": "groupIndex"; "required": false; }; "hideFirstOperator": { "alias": "hideFirstOperator"; "required": false; }; "canBeEmpty": { "alias": "canBeEmpty"; "required": false; }; "formGroupName": { "alias": "formGroupName"; "required": false; }; }, {}, never, never, false, never>;
|
|
29
35
|
}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { AfterContentChecked, AfterViewInit, ChangeDetectorRef, OnDestroy, OnInit, QueryList } from '@angular/core';
|
|
2
2
|
import { ControlContainer, FormArray, FormBuilder, UntypedFormGroup } from '@angular/forms';
|
|
3
|
+
import { NovoTabbedGroupPickerElement, TabbedGroupPickerButtonConfig, TabbedGroupPickerTab } from 'novo-elements/elements/tabbed-group-picker';
|
|
4
|
+
import { NovoLabelService } from 'novo-elements/services';
|
|
5
|
+
import { ConditionGroupComponent } from '../condition-group/condition-group.component';
|
|
3
6
|
import { NovoConditionFieldDef } from '../query-builder.directives';
|
|
4
7
|
import { QueryBuilderService } from '../query-builder.service';
|
|
5
8
|
import { BaseFieldDef, Condition, ConditionGroup, Conjunction, AddressCriteriaConfig } from '../query-builder.types';
|
|
@@ -9,17 +12,26 @@ export declare class CriteriaBuilderComponent implements OnInit, OnDestroy, Afte
|
|
|
9
12
|
private formBuilder;
|
|
10
13
|
private cdr;
|
|
11
14
|
qbs: QueryBuilderService;
|
|
15
|
+
labels: NovoLabelService;
|
|
12
16
|
config: any;
|
|
13
17
|
controlName: string;
|
|
14
18
|
allowedGroupings: Conjunction[];
|
|
15
19
|
editTypeFn: (field: BaseFieldDef) => string;
|
|
16
20
|
addressConfig: AddressCriteriaConfig;
|
|
21
|
+
canBeEmpty: boolean;
|
|
22
|
+
set HideFirstOperator(hide: boolean);
|
|
23
|
+
get hideFirstOperator(): boolean;
|
|
24
|
+
private _hideFirstOperator;
|
|
17
25
|
_contentFieldDefs: QueryList<NovoConditionFieldDef>;
|
|
26
|
+
scopedFieldPicker: import("@angular/core").Signal<NovoTabbedGroupPickerElement>;
|
|
27
|
+
conditionGroups: import("@angular/core").Signal<readonly ConditionGroupComponent[]>;
|
|
18
28
|
parentForm: UntypedFormGroup;
|
|
19
29
|
innerForm: UntypedFormGroup;
|
|
30
|
+
tabbedGroupPickerTabs: import("@angular/core").Signal<TabbedGroupPickerTab[]>;
|
|
31
|
+
addButtonConfig: TabbedGroupPickerButtonConfig;
|
|
20
32
|
/** Subject that emits when the component has been destroyed. */
|
|
21
33
|
private readonly _onDestroy;
|
|
22
|
-
constructor(controlContainer: ControlContainer, formBuilder: FormBuilder, cdr: ChangeDetectorRef, qbs: QueryBuilderService);
|
|
34
|
+
constructor(controlContainer: ControlContainer, formBuilder: FormBuilder, cdr: ChangeDetectorRef, qbs: QueryBuilderService, labels: NovoLabelService);
|
|
23
35
|
ngOnInit(): void;
|
|
24
36
|
ngAfterContentChecked(): void;
|
|
25
37
|
ngAfterViewInit(): void;
|
|
@@ -29,11 +41,12 @@ export declare class CriteriaBuilderComponent implements OnInit, OnDestroy, Afte
|
|
|
29
41
|
get root(): FormArray;
|
|
30
42
|
addConditionGroup(data?: any): void;
|
|
31
43
|
newConditionGroup(data: ConditionGroup): UntypedFormGroup;
|
|
32
|
-
newCondition({ field, operator, value }?: Condition): UntypedFormGroup;
|
|
44
|
+
newCondition({ field, operator, scope, value }?: Condition): UntypedFormGroup;
|
|
33
45
|
removeConditionGroupAt(index: number): void;
|
|
34
46
|
clearAllConditions(): void;
|
|
47
|
+
onFieldSelect(field: any): void;
|
|
35
48
|
private _configureQueryBuilderService;
|
|
36
49
|
private _registerFieldDefs;
|
|
37
50
|
static ɵfac: i0.ɵɵFactoryDeclaration<CriteriaBuilderComponent, never>;
|
|
38
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CriteriaBuilderComponent, "novo-criteria-builder", never, { "config": { "alias": "config"; "required": false; }; "controlName": { "alias": "controlName"; "required": false; }; "allowedGroupings": { "alias": "allowedGroupings"; "required": false; }; "editTypeFn": { "alias": "editTypeFn"; "required": false; }; "addressConfig": { "alias": "addressConfig"; "required": false; }; }, {}, ["_contentFieldDefs"], never, false, never>;
|
|
51
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CriteriaBuilderComponent, "novo-criteria-builder", never, { "config": { "alias": "config"; "required": false; }; "controlName": { "alias": "controlName"; "required": false; }; "allowedGroupings": { "alias": "allowedGroupings"; "required": false; }; "editTypeFn": { "alias": "editTypeFn"; "required": false; }; "addressConfig": { "alias": "addressConfig"; "required": false; }; "canBeEmpty": { "alias": "canBeEmpty"; "required": false; }; "HideFirstOperator": { "alias": "hideFirstOperator"; "required": false; }; }, {}, ["_contentFieldDefs"], never, false, never>;
|
|
39
52
|
}
|
|
@@ -26,19 +26,20 @@ import * as i24 from "novo-elements/elements/non-ideal-state";
|
|
|
26
26
|
import * as i25 from "novo-elements/elements/field";
|
|
27
27
|
import * as i26 from "novo-elements/elements/flex";
|
|
28
28
|
import * as i27 from "novo-elements/elements/tabs";
|
|
29
|
-
import * as i28 from "novo-elements/elements/
|
|
30
|
-
import * as i29 from "novo-elements/elements/
|
|
31
|
-
import * as i30 from "novo-elements/elements/
|
|
32
|
-
import * as i31 from "novo-elements/elements/date-
|
|
33
|
-
import * as i32 from "novo-elements/elements/
|
|
34
|
-
import * as i33 from "novo-elements/elements/
|
|
35
|
-
import * as i34 from "novo-elements/elements/
|
|
36
|
-
import * as i35 from "novo-elements/elements/
|
|
37
|
-
import * as i36 from "novo-elements/elements/
|
|
38
|
-
import * as i37 from "novo-elements/elements/
|
|
39
|
-
import * as i38 from "novo-elements/elements/
|
|
29
|
+
import * as i28 from "novo-elements/elements/tabbed-group-picker";
|
|
30
|
+
import * as i29 from "novo-elements/elements/loading";
|
|
31
|
+
import * as i30 from "novo-elements/elements/card";
|
|
32
|
+
import * as i31 from "novo-elements/elements/date-picker";
|
|
33
|
+
import * as i32 from "novo-elements/elements/date-time-picker";
|
|
34
|
+
import * as i33 from "novo-elements/elements/icon";
|
|
35
|
+
import * as i34 from "novo-elements/elements/radio";
|
|
36
|
+
import * as i35 from "novo-elements/elements/search";
|
|
37
|
+
import * as i36 from "novo-elements/elements/switch";
|
|
38
|
+
import * as i37 from "novo-elements/elements/chips";
|
|
39
|
+
import * as i38 from "novo-elements/elements/select-search";
|
|
40
|
+
import * as i39 from "novo-elements/elements/dropdown";
|
|
40
41
|
export declare class NovoQueryBuilderModule {
|
|
41
42
|
static ɵfac: i0.ɵɵFactoryDeclaration<NovoQueryBuilderModule, never>;
|
|
42
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<NovoQueryBuilderModule, [typeof i1.CriteriaBuilderComponent, typeof i2.ConditionBuilderComponent, typeof i2.ConditionInputOutlet, typeof i2.ConditionOperatorOutlet, typeof i3.ConditionGroupComponent, typeof i4.NovoDefaultAddressConditionDef, typeof i5.NovoDefaultBooleanConditionDef, typeof i6.NovoDefaultDateConditionDef, typeof i7.NovoDefaultDateTimeConditionDef, typeof i8.NovoConditionOperatorsDef, typeof i8.NovoConditionInputDef, typeof i8.NovoConditionFieldDef, typeof i9.NovoDefaultStringConditionDef, typeof i10.NovoDefaultNumberConditionDef, typeof i11.NovoDefaultIdConditionDef, typeof i12.NovoDefaultPickerConditionDef, typeof i13.NovoConditionTemplatesComponent], [typeof i14.CommonModule, typeof i15.FormsModule, typeof i15.ReactiveFormsModule, typeof i16.DragDropModule, typeof i17.CdkTableModule, typeof i18.GooglePlacesModule, typeof i19.NovoAutoCompleteModule, typeof i20.NovoButtonModule, typeof i21.NovoCommonModule, typeof i22.NovoFormModule, typeof i23.NovoSelectModule, typeof i24.NovoNonIdealStateModule, typeof i25.NovoFieldModule, typeof i21.NovoOptionModule, typeof i26.NovoFlexModule, typeof i27.NovoTabModule, typeof i28.
|
|
43
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<NovoQueryBuilderModule, [typeof i1.CriteriaBuilderComponent, typeof i2.ConditionBuilderComponent, typeof i2.ConditionInputOutlet, typeof i2.ConditionOperatorOutlet, typeof i3.ConditionGroupComponent, typeof i4.NovoDefaultAddressConditionDef, typeof i5.NovoDefaultBooleanConditionDef, typeof i6.NovoDefaultDateConditionDef, typeof i7.NovoDefaultDateTimeConditionDef, typeof i8.NovoConditionOperatorsDef, typeof i8.NovoConditionInputDef, typeof i8.NovoConditionFieldDef, typeof i9.NovoDefaultStringConditionDef, typeof i10.NovoDefaultNumberConditionDef, typeof i11.NovoDefaultIdConditionDef, typeof i12.NovoDefaultPickerConditionDef, typeof i13.NovoConditionTemplatesComponent], [typeof i14.CommonModule, typeof i15.FormsModule, typeof i15.ReactiveFormsModule, typeof i16.DragDropModule, typeof i17.CdkTableModule, typeof i18.GooglePlacesModule, typeof i19.NovoAutoCompleteModule, typeof i20.NovoButtonModule, typeof i21.NovoCommonModule, typeof i22.NovoFormModule, typeof i23.NovoSelectModule, typeof i24.NovoNonIdealStateModule, typeof i25.NovoFieldModule, typeof i21.NovoOptionModule, typeof i26.NovoFlexModule, typeof i27.NovoTabModule, typeof i28.NovoTabbedGroupPickerModule, typeof i29.NovoLoadingModule, typeof i30.NovoCardModule, typeof i31.NovoDatePickerModule, typeof i32.NovoDateTimePickerModule, typeof i33.NovoIconModule, typeof i21.NovoOverlayModule, typeof i34.NovoRadioModule, typeof i35.NovoSearchBoxModule, typeof i36.NovoSwitchModule, typeof i37.NovoChipsModule, typeof i38.NovoSelectSearchModule, typeof i39.NovoDropdownModule], [typeof i1.CriteriaBuilderComponent, typeof i2.ConditionBuilderComponent, typeof i4.NovoDefaultAddressConditionDef, typeof i5.NovoDefaultBooleanConditionDef, typeof i6.NovoDefaultDateConditionDef, typeof i7.NovoDefaultDateTimeConditionDef, typeof i8.NovoConditionOperatorsDef, typeof i8.NovoConditionInputDef, typeof i8.NovoConditionFieldDef, typeof i9.NovoDefaultStringConditionDef, typeof i10.NovoDefaultNumberConditionDef, typeof i11.NovoDefaultIdConditionDef, typeof i12.NovoDefaultPickerConditionDef, typeof i13.NovoConditionTemplatesComponent]>;
|
|
43
44
|
static ɵinj: i0.ɵɵInjectorDeclaration<NovoQueryBuilderModule>;
|
|
44
45
|
}
|
|
@@ -12,6 +12,8 @@ export declare class QueryBuilderService {
|
|
|
12
12
|
private labels;
|
|
13
13
|
private _customFieldDefs;
|
|
14
14
|
private _fieldDefsByName;
|
|
15
|
+
scopes: import("@angular/core").WritableSignal<any[]>;
|
|
16
|
+
hasMultipleScopes: import("@angular/core").Signal<boolean>;
|
|
15
17
|
/**
|
|
16
18
|
* Will dispatch when properties changes, subscribe to this if component should
|
|
17
19
|
* re-render when props are updated
|
|
@@ -4,6 +4,7 @@ export declare enum Conjunction {
|
|
|
4
4
|
OR = "or",
|
|
5
5
|
NOT = "not"
|
|
6
6
|
}
|
|
7
|
+
export type ConditionType = '$and' | '$or' | '$not';
|
|
7
8
|
export type ConditionGroup = {
|
|
8
9
|
[K in Conjunction as `$${K}`]?: Condition[];
|
|
9
10
|
};
|
|
@@ -30,8 +31,10 @@ export declare enum Operator {
|
|
|
30
31
|
}
|
|
31
32
|
export type OperatorName = keyof typeof Operator;
|
|
32
33
|
export interface Condition {
|
|
34
|
+
conditionType?: ConditionType;
|
|
33
35
|
field: string;
|
|
34
36
|
operator: OperatorName | string;
|
|
37
|
+
scope?: string;
|
|
35
38
|
value: any;
|
|
36
39
|
}
|
|
37
40
|
export interface Criteria {
|
|
@@ -52,6 +52,7 @@ export type TabbedGroupPickerButtonConfig = {
|
|
|
52
52
|
side: string;
|
|
53
53
|
icon: string;
|
|
54
54
|
label: string;
|
|
55
|
+
size?: string;
|
|
55
56
|
};
|
|
56
57
|
export declare class NovoTabbedGroupPickerElement implements OnDestroy, OnInit {
|
|
57
58
|
labelService: NovoLabelService;
|
|
@@ -99,7 +100,7 @@ export declare class NovoTabbedGroupPickerElement implements OnDestroy, OnInit {
|
|
|
99
100
|
}, sortedData: ChildTab['data'], compareFunction: (a: any, b: any) => 1 | -1 | 0, warnFunction: (child: any) => void): void;
|
|
100
101
|
makeWarningFunction(parentLabel: string, childLabel: string, childValueField: any): (child: any) => void;
|
|
101
102
|
onDropdownToggle(event: any): void;
|
|
102
|
-
activateItem(item: any): void;
|
|
103
|
+
activateItem(item: any, tab?: TabbedGroupPickerTab): void;
|
|
103
104
|
onItemToggled(item: Option): void;
|
|
104
105
|
initializeDescendantSelection(): void;
|
|
105
106
|
updateDescendants(parentIsSelected: boolean, children: Option[]): void;
|
|
@@ -680,6 +680,7 @@ export class NovoControlTemplates {
|
|
|
680
680
|
[popoverDisabled]="control.popoverDisabled"
|
|
681
681
|
[popoverAnimation]="control.popoverAnimation"
|
|
682
682
|
[popoverDismissTimeout]="control.popoverDismissTimeout"
|
|
683
|
+
(onChange)="methods.modelChange($event)"
|
|
683
684
|
></novo-switch>
|
|
684
685
|
</div>
|
|
685
686
|
</ng-template>
|
|
@@ -1386,6 +1387,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
1386
1387
|
[popoverDisabled]="control.popoverDisabled"
|
|
1387
1388
|
[popoverAnimation]="control.popoverAnimation"
|
|
1388
1389
|
[popoverDismissTimeout]="control.popoverDismissTimeout"
|
|
1390
|
+
(onChange)="methods.modelChange($event)"
|
|
1389
1391
|
></novo-switch>
|
|
1390
1392
|
</div>
|
|
1391
1393
|
</ng-template>
|
|
@@ -1450,4 +1452,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
1450
1452
|
type: ViewChildren,
|
|
1451
1453
|
args: [NovoTemplate]
|
|
1452
1454
|
}] } });
|
|
1453
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJvbFRlbXBsYXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25vdm8tZWxlbWVudHMvc3JjL2VsZW1lbnRzL2Zvcm0vQ29udHJvbFRlbXBsYXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFpc0I3RCxNQUFNLE9BQU8sb0JBQW9CO0lBRy9CLFlBQW9CLFNBQThCO1FBQTlCLGNBQVMsR0FBVCxTQUFTLENBQXFCO0lBQUcsQ0FBQztJQUV0RCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzFELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtnQkFDOUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUQsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzs4R0FYVSxvQkFBb0I7a0dBQXBCLG9CQUFvQixtR0FDakIsWUFBWSxnREEvckJoQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRyQlQ7OzJGQUVVLG9CQUFvQjtrQkFoc0JoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRyQlQ7aUJBQ0Y7d0ZBR0MsZ0JBQWdCO3NCQURmLFlBQVk7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vdm9UZW1wbGF0ZSB9IGZyb20gJ25vdm8tZWxlbWVudHMvZWxlbWVudHMvY29tbW9uJztcbmltcG9ydCB7IE5vdm9UZW1wbGF0ZVNlcnZpY2UgfSBmcm9tICdub3ZvLWVsZW1lbnRzL3NlcnZpY2VzJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25vdm8tY29udHJvbC10ZW1wbGF0ZXMnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDwhLS0tUmVhZG9ubHktLS0+XG4gICAgPG5nLXRlbXBsYXRlIG5vdm9UZW1wbGF0ZT1cInJlYWQtb25seVwiIGxldC1mb3JtPVwiZm9ybVwiIGxldC1jb250cm9sPlxuICAgICAgPGRpdj57eyBmb3JtLmdldFJhd1ZhbHVlKClbY29udHJvbC5rZXldIH19PC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8IS0tVGV4dGJveC0tLT5cbiAgICA8bmctdGVtcGxhdGUgbm92b1RlbXBsYXRlPVwidGV4dGJveFwiIGxldC1jb250cm9sIGxldC1mb3JtPVwiZm9ybVwiIGxldC1lcnJvcnM9XCJlcnJvcnNcIiBsZXQtbWV0aG9kcz1cIm1ldGhvZHNcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAgICAgY2xhc3M9XCJub3ZvLWNvbnRyb2wtaW5wdXQtY29udGFpbmVyIG5vdm8tY29udHJvbC1pbnB1dC13aXRoLWxhYmVsXCJcbiAgICAgICAgW3Rvb2x0aXBdPVwiY29udHJvbD8udG9vbHRpcFwiXG4gICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiY29udHJvbD8udG9vbHRpcFBvc2l0aW9uXCJcbiAgICAgICAgW3Rvb2x0aXBTaXplXT1cImNvbnRyb2w/LnRvb2x0aXBTaXplXCJcbiAgICAgICAgW3Rvb2x0aXBQcmVsaW5lXT1cImNvbnRyb2w/LnRvb2x0aXBQcmVsaW5lXCJcbiAgICAgICAgW3JlbW92ZVRvb2x0aXBBcnJvd109XCJjb250cm9sPy5yZW1vdmVUb29sdGlwQXJyb3dcIlxuICAgICAgICBbdG9vbHRpcEF1dG9Qb3NpdGlvbl09XCJjb250cm9sPy50b29sdGlwQXV0b1Bvc2l0aW9uXCJcbiAgICAgICAgW25vdm9Qb3BvdmVyXT1cImNvbnRyb2wucG9wb3ZlckNvbnRlbnRcIlxuICAgICAgICBbcG9wb3Zlckh0bWxDb250ZW50XT1cImNvbnRyb2wucG9wb3Zlckh0bWxDb250ZW50XCJcbiAgICAgICAgW3BvcG92ZXJUaXRsZV09XCJjb250cm9sLnBvcG92ZXJUaXRsZVwiXG4gICAgICAgIFtwb3BvdmVyUGxhY2VtZW50XT1cImNvbnRyb2wucG9wb3ZlclBsYWNlbWVudFwiXG4gICAgICAgIFtwb3BvdmVyT25Ib3Zlcl09XCJjb250cm9sLnBvcG92ZXJPbkhvdmVyXCJcbiAgICAgICAgW3BvcG92ZXJBbHdheXNdPVwiY29udHJvbC5wb3BvdmVyQWx3YXlzXCJcbiAgICAgICAgW3BvcG92ZXJEaXNhYmxlZF09XCJjb250cm9sLnBvcG92ZXJEaXNhYmxlZFwiXG4gICAgICAgIFtwb3BvdmVyQW5pbWF0aW9uXT1cImNvbnRyb2wucG9wb3ZlckFuaW1hdGlvblwiXG4gICAgICAgIFtwb3BvdmVyRGlzbWlzc1RpbWVvdXRdPVwiY29udHJvbC5wb3BvdmVyRGlzbWlzc1RpbWVvdXRcIlxuICAgICAgPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAqbmdJZj1cImNvbnRyb2w/LnR5cGUgIT09ICdudW1iZXInICYmIGNvbnRyb2w/LnRleHRNYXNrRW5hYmxlZFwiXG4gICAgICAgICAgW2ltYXNrXT1cImNvbnRyb2wubWFza09wdGlvbnNcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5rZXlcIlxuICAgICAgICAgIFtpZF09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgW3R5cGVdPVwiY29udHJvbD8udHlwZVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbnRyb2w/LnBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAoYWNjZXB0KT1cIm1ldGhvZHMuaGFuZGxlQWNjZXB0KCRldmVudClcIlxuICAgICAgICAgIChmb2N1cyk9XCJtZXRob2RzLmhhbmRsZUZvY3VzKCRldmVudClcIlxuICAgICAgICAgIChibHVyKT1cIm1ldGhvZHMuaGFuZGxlQmx1cigkZXZlbnQpXCJcbiAgICAgICAgICBhdXRvY29tcGxldGVcbiAgICAgICAgLz5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgKm5nSWY9XCJjb250cm9sPy50eXBlICE9PSAnbnVtYmVyJyAmJiAhY29udHJvbD8udGV4dE1hc2tFbmFibGVkXCJcbiAgICAgICAgICBbY2xhc3MubWF4bGVuZ3RoLWVycm9yXT1cImVycm9ycz8ubWF4bGVuZ3RoXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICBbaWRdPVwiY29udHJvbC5rZXlcIlxuICAgICAgICAgIFt0eXBlXT1cImNvbnRyb2w/LnR5cGVcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb250cm9sPy5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgKGlucHV0KT1cIm1ldGhvZHMuZW1pdENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICBbbWF4bGVuZ3RoXT1cImNvbnRyb2w/Lm1heGxlbmd0aFwiXG4gICAgICAgICAgKGZvY3VzKT1cIm1ldGhvZHMuaGFuZGxlRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgICAgKGJsdXIpPVwibWV0aG9kcy5oYW5kbGVCbHVyKCRldmVudClcIlxuICAgICAgICAgIGF1dG9jb21wbGV0ZVxuICAgICAgICAvPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAqbmdJZj1cImNvbnRyb2w/LnR5cGUgPT09ICdudW1iZXInICYmIGNvbnRyb2w/LnN1YlR5cGUgIT09ICdwZXJjZW50YWdlJ1wiXG4gICAgICAgICAgW2NsYXNzLm1heGxlbmd0aC1lcnJvcl09XCJlcnJvcnM/Lm1heGxlbmd0aFwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgW2lkXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICBbdHlwZV09XCJjb250cm9sPy50eXBlXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29udHJvbD8ucGxhY2Vob2xkZXJcIlxuICAgICAgICAgIChrZXlkb3duKT1cIm1ldGhvZHMucmVzdHJpY3RLZXlzKCRldmVudClcIlxuICAgICAgICAgIChpbnB1dCk9XCJtZXRob2RzLmVtaXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgW21heGxlbmd0aF09XCJjb250cm9sPy5tYXhsZW5ndGhcIlxuICAgICAgICAgIChmb2N1cyk9XCJtZXRob2RzLmhhbmRsZUZvY3VzKCRldmVudClcIlxuICAgICAgICAgIChibHVyKT1cIm1ldGhvZHMuaGFuZGxlQmx1cigkZXZlbnQpXCJcbiAgICAgICAgICBzdGVwPVwiYW55XCJcbiAgICAgICAgICAobW91c2V3aGVlbCk9XCJudW1iZXJJbnB1dC5ibHVyKClcIlxuICAgICAgICAgICNudW1iZXJJbnB1dFxuICAgICAgICAvPlxuICAgICAgICA8IS0tIHRoZSBwZXJjZW50YWdlIGlucHV0IGRvZXMgbm90IHVzZSBmb3JtQ29udHJvbE5hbWUgbGlrZSBhIG5vcm1hbCByZWFjdGl2ZSBpbnB1dCBiZWNhdXNlIGluc3RlYWQgb2ZcbiAgICAgICAgICBzZXR0aW5nIHRoZSBmbG9hdGluZyBwb2ludCB2YWx1ZSBkaXJlY3RseSwgaXQgaXMgbXVsdGlwbGllZCBieSAxMDAgaW50byBhIHBlcmNlbnRhZ2UgdmFsdWUgLS0+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICpuZ0lmPVwiY29udHJvbD8udHlwZSA9PT0gJ251bWJlcicgJiYgY29udHJvbD8uc3ViVHlwZSA9PT0gJ3BlcmNlbnRhZ2UnXCJcbiAgICAgICAgICBbaWRdPVwiY29udHJvbC5rZXlcIlxuICAgICAgICAgIFt0eXBlXT1cImNvbnRyb2w/LnR5cGVcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb250cm9sPy5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgKGtleWRvd24pPVwibWV0aG9kcy5yZXN0cmljdEtleXMoJGV2ZW50KVwiXG4gICAgICAgICAgW3ZhbHVlXT1cImNvbnRyb2w/LnBlcmNlbnRWYWx1ZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImNvbnRyb2w/LnJlYWRPbmx5XCJcbiAgICAgICAgICAoaW5wdXQpPVwibWV0aG9kcy5oYW5kbGVQZXJjZW50Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgIChmb2N1cyk9XCJtZXRob2RzLmhhbmRsZUZvY3VzKCRldmVudClcIlxuICAgICAgICAgIChibHVyKT1cIm1ldGhvZHMuaGFuZGxlQmx1cigkZXZlbnQpXCJcbiAgICAgICAgICBzdGVwPVwiYW55XCJcbiAgICAgICAgICAobW91c2V3aGVlbCk9XCJwZXJjZW50SW5wdXQuYmx1cigpXCJcbiAgICAgICAgICAjcGVyY2VudElucHV0XG4gICAgICAgIC8+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImlucHV0LWxhYmVsXCIgKm5nSWY9XCJjb250cm9sPy5zdWJUeXBlID09PSAnY3VycmVuY3knXCI+e3sgY29udHJvbC5jdXJyZW5jeUZvcm1hdCB9fTwvbGFiZWw+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImlucHV0LWxhYmVsXCIgKm5nSWY9XCJjb250cm9sPy5zdWJUeXBlID09PSAncGVyY2VudGFnZSdcIj4lPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8IS0tVGV4dGFyZWEtLS0+XG4gICAgPG5nLXRlbXBsYXRlIG5vdm9UZW1wbGF0ZT1cInRleHQtYXJlYVwiIGxldC1jb250cm9sIGxldC1mb3JtPVwiZm9ybVwiIGxldC1lcnJvcnM9XCJlcnJvcnNcIiBsZXQtbWV0aG9kcz1cIm1ldGhvZHNcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0ZXh0YXJlYS1jb250YWluZXJcIlxuICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgICAgICBbdG9vbHRpcF09XCJjb250cm9sPy50b29sdGlwXCJcbiAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJjb250cm9sPy50b29sdGlwUG9zaXRpb25cIlxuICAgICAgICBbdG9vbHRpcFNpemVdPVwiY29udHJvbD8udG9vbHRpcFNpemVcIlxuICAgICAgICBbdG9vbHRpcFByZWxpbmVdPVwiY29udHJvbD8udG9vbHRpcFByZWxpbmVcIlxuICAgICAgICBbcmVtb3ZlVG9vbHRpcEFycm93XT1cImNvbnRyb2w/LnJlbW92ZVRvb2x0aXBBcnJvd1wiXG4gICAgICAgIFt0b29sdGlwQXV0b1Bvc2l0aW9uXT1cImNvbnRyb2w/LnRvb2x0aXBBdXRvUG9zaXRpb25cIlxuICAgICAgICBbbm92b1BvcG92ZXJdPVwiY29udHJvbC5wb3BvdmVyQ29udGVudFwiXG4gICAgICAgIFtwb3BvdmVySHRtbENvbnRlbnRdPVwiY29udHJvbC5wb3BvdmVySHRtbENvbnRlbnRcIlxuICAgICAgICBbcG9wb3ZlclRpdGxlXT1cImNvbnRyb2wucG9wb3ZlclRpdGxlXCJcbiAgICAgICAgW3BvcG92ZXJQbGFjZW1lbnRdPVwiY29udHJvbC5wb3BvdmVyUGxhY2VtZW50XCJcbiAgICAgICAgW3BvcG92ZXJPbkhvdmVyXT1cImNvbnRyb2wucG9wb3Zlck9uSG92ZXJcIlxuICAgICAgICBbcG9wb3ZlckFsd2F5c109XCJjb250cm9sLnBvcG92ZXJBbHdheXNcIlxuICAgICAgICBbcG9wb3ZlckRpc2FibGVkXT1cImNvbnRyb2wucG9wb3ZlckRpc2FibGVkXCJcbiAgICAgICAgW3BvcG92ZXJBbmltYXRpb25dPVwiY29udHJvbC5wb3BvdmVyQW5pbWF0aW9uXCJcbiAgICAgICAgW3BvcG92ZXJEaXNtaXNzVGltZW91dF09XCJjb250cm9sLnBvcG92ZXJEaXNtaXNzVGltZW91dFwiXG4gICAgICA+XG4gICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgIFtjbGFzcy5tYXhsZW5ndGgtZXJyb3JdPVwiZXJyb3JzPy5tYXhsZW5ndGhcIlxuICAgICAgICAgIFtuYW1lXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICBbYXR0ci5pZF09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbnRyb2wucGxhY2Vob2xkZXJcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5rZXlcIlxuICAgICAgICAgIGF1dG9zaXplXG4gICAgICAgICAgKGlucHV0KT1cIm1ldGhvZHMuaGFuZGxlVGV4dEFyZWFJbnB1dCgkZXZlbnQpXCJcbiAgICAgICAgICAoZm9jdXMpPVwibWV0aG9kcy5oYW5kbGVGb2N1cygkZXZlbnQpXCJcbiAgICAgICAgICAoYmx1cik9XCJtZXRob2RzLmhhbmRsZUJsdXIoJGV2ZW50KVwiXG4gICAgICAgICAgW21heGxlbmd0aF09XCJjb250cm9sPy5tYXhsZW5ndGhcIlxuICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8IS0tRWRpdG9yLS0+XG4gICAgPG5nLXRlbXBsYXRlIG5vdm9UZW1wbGF0ZT1cImVkaXRvclwiIGxldC1jb250cm9sIGxldC1mb3JtPVwiZm9ybVwiIGxldC1lcnJvcnM9XCJlcnJvcnNcIiBsZXQtbWV0aG9kcz1cIm1ldGhvZHNcIj5cbiAgICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICAgIDxub3ZvLWVkaXRvclxuICAgICAgICAgIFtuYW1lXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICBbc3RhcnR1cEZvY3VzXT1cImNvbnRyb2wuc3RhcnR1cEZvY3VzXCJcbiAgICAgICAgICBbbWluaW1hbF09XCJjb250cm9sLm1pbmltYWxcIlxuICAgICAgICAgIFtmaWxlQnJvd3NlckltYWdlVXBsb2FkVXJsXT1cImNvbnRyb2wuZmlsZUJyb3dzZXJJbWFnZVVwbG9hZFVybFwiXG4gICAgICAgICAgKGZvY3VzKT1cIm1ldGhvZHMuaGFuZGxlRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgICAgKGJsdXIpPVwibWV0aG9kcy5oYW5kbGVCbHVyKCRldmVudClcIlxuICAgICAgICAgIFtjb25maWddPVwiY29udHJvbC5jb25maWdcIlxuICAgICAgICA+PC9ub3ZvLWVkaXRvcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8IS0tQWNlRWRpdG9yLS0+XG4gICAgPG5nLXRlbXBsYXRlIG5vdm9UZW1wbGF0ZT1cImFjZS1lZGl0b3JcIiBsZXQtY29udHJvbCBsZXQtZm9ybT1cImZvcm1cIiBsZXQtZXJyb3JzPVwiZXJyb3JzXCIgbGV0LW1ldGhvZHM9XCJtZXRob2RzXCI+XG4gICAgICA8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgICAgICA8bm92by1hY2UtZWRpdG9yXG4gICAgICAgICAgW25hbWVdPVwiY29udHJvbC5rZXlcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5rZXlcIlxuICAgICAgICAgIChmb2N1cyk9XCJtZXRob2RzLmhhbmRsZUZvY3VzKCRldmVudClcIlxuICAgICAgICAgIChibHVyKT1cIm1ldGhvZHMuaGFuZGxlQmx1cigkZXZlbnQpXCJcbiAgICAgICAgPjwvbm92by1hY2UtZWRpdG9yPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwhLS1Db2RlRWRpdG9yLS0+XG4gICAgPG5nLXRlbXBsYXRlIG5vdm9UZW1wbGF0ZT1cImNvZGUtZWRpdG9yXCIgbGV0LWNvbnRyb2wgbGV0LWZvcm09XCJmb3JtXCIgbGV0LWVycm9ycz1cImVycm9yc1wiIGxldC1tZXRob2RzPVwibWV0aG9kc1wiPlxuICAgICAgPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgICAgICAgPG5vdm8tY29kZS1lZGl0b3JcbiAgICAgICAgICBbbmFtZV09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgKGZvY3VzKT1cIm1ldGhvZHMuaGFuZGxlRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgICAgKGJsdXIpPVwibWV0aG9kcy5oYW5kbGVCbHVyKCRldmVudClcIlxuICAgICAgICA+PC9ub3ZvLWNvZGUtZWRpdG9yPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwhLS1IVE1MNSBTZWxlY3QtLT5cbiAgICA8bmctdGVtcGxhdGUgbm92b1RlbXBsYXRlPVwibmF0aXZlLXNlbGVjdFwiIGxldC1jb250cm9sIGxldC1mb3JtPVwiZm9ybVwiIGxldC1lcnJvcnM9XCJlcnJvcnNcIiBsZXQtbWV0aG9kcz1cIm1ldGhvZHNcIj5cbiAgICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICAgIDxzZWxlY3RcbiAgICAgICAgICBbaWRdPVwiY29udHJvbC5rZXlcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5rZXlcIlxuICAgICAgICAgIFt0b29sdGlwXT1cImNvbnRyb2wudG9vbHRpcFwiXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJjb250cm9sLnRvb2x0aXBQb3NpdGlvblwiXG4gICAgICAgICAgW3Rvb2x0aXBTaXplXT1cImNvbnRyb2w/LnRvb2x0aXBTaXplXCJcbiAgICAgICAgICBbdG9vbHRpcFByZWxpbmVdPVwiY29udHJvbD8udG9vbHRpcFByZWxpbmVcIlxuICAgICAgICAgIFtyZW1vdmVUb29sdGlwQXJyb3ddPVwiY29udHJvbD8ucmVtb3ZlVG9vbHRpcEFycm93XCJcbiAgICAgICAgICBbdG9vbHRpcEF1dG9Qb3NpdGlvbl09XCJjb250cm9sPy50b29sdGlwQXV0b1Bvc2l0aW9uXCJcbiAgICAgICAgICBbbm92b1BvcG92ZXJdPVwiY29udHJvbC5wb3BvdmVyQ29udGVudFwiXG4gICAgICAgICAgW3BvcG92ZXJIdG1sQ29udGVudF09XCJjb250cm9sLnBvcG92ZXJIdG1sQ29udGVudFwiXG4gICAgICAgICAgW3BvcG92ZXJUaXRsZV09XCJjb250cm9sLnBvcG92ZXJUaXRsZVwiXG4gICAgICAgICAgW3BvcG92ZXJQbGFjZW1lbnRdPVwiY29udHJvbC5wb3BvdmVyUGxhY2VtZW50XCJcbiAgICAgICAgICBbcG9wb3Zlck9uSG92ZXJdPVwiY29udHJvbC5wb3BvdmVyT25Ib3ZlclwiXG4gICAgICAgICAgW3BvcG92ZXJBbHdheXNdPVwiY29udHJvbC5wb3BvdmVyQWx3YXlzXCJcbiAgICAgICAgICBbcG9wb3ZlckRpc2FibGVkXT1cImNvbnRyb2wucG9wb3ZlckRpc2FibGVkXCJcbiAgICAgICAgICBbcG9wb3ZlckFuaW1hdGlvbl09XCJjb250cm9sLnBvcG92ZXJBbmltYXRpb25cIlxuICAgICAgICAgIFtwb3BvdmVyRGlzbWlzc1RpbWVvdXRdPVwiY29udHJvbC5wb3BvdmVyRGlzbWlzc1RpbWVvdXRcIlxuICAgICAgICA+XG4gICAgICAgICAgPG9wdGlvbiAqbmdJZj1cImNvbnRyb2wucGxhY2Vob2xkZXJcIiB2YWx1ZT1cIlwiIGRpc2FibGVkIHNlbGVjdGVkIGhpZGRlbj57eyBjb250cm9sLnBsYWNlaG9sZGVyIH19PC9vcHRpb24+XG4gICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0IG9mIGNvbnRyb2wub3B0aW9uc1wiIFt2YWx1ZV09XCJvcHQua2V5XCI+e3sgb3B0LnZhbHVlIH19PC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwhLS1GaWxlLS0+XG4gICAgPG5nLXRlbXBsYXRlIG5vdm9UZW1wbGF0ZT1cImZpbGVcIiBsZXQtY29udHJvbCBsZXQtZm9ybT1cImZvcm1cIiBsZXQtZXJyb3JzPVwiZXJyb3JzXCIgbGV0LW1ldGhvZHM9XCJtZXRob2RzXCI+XG4gICAgICA8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgICAgICA8bm92by1maWxlLWlucHV0XG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgW2lkXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICBbbmFtZV09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbnRyb2wucGxhY2Vob2xkZXJcIlxuICAgICAgICAgIFt2YWx1ZV09XCJjb250cm9sLnZhbHVlXCJcbiAgICAgICAgICBbbXVsdGlwbGVdPVwiY29udHJvbC5tdWx0aXBsZVwiXG4gICAgICAgICAgW2xheW91dE9wdGlvbnNdPVwiY29udHJvbC5sYXlvdXRPcHRpb25zXCJcbiAgICAgICAgICBbdG9vbHRpcF09XCJjb250cm9sLnRvb2x0aXBcIlxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiY29udHJvbC50b29sdGlwUG9zaXRpb25cIlxuICAgICAgICAgIFt0b29sdGlwU2l6ZV09XCJjb250cm9sPy50b29sdGlwU2l6ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBQcmVsaW5lXT1cImNvbnRyb2w/LnRvb2x0aXBQcmVsaW5lXCJcbiAgICAgICAgICBbcmVtb3ZlVG9vbHRpcEFycm93XT1cImNvbnRyb2w/LnJlbW92ZVRvb2x0aXBBcnJvd1wiXG4gICAgICAgICAgW3Rvb2x0aXBBdXRvUG9zaXRpb25dPVwiY29udHJvbD8udG9vbHRpcEF1dG9Qb3NpdGlvblwiXG4gICAgICAgICAgW25vdm9Qb3BvdmVyXT1cImNvbnRyb2wucG9wb3ZlckNvbnRlbnRcIlxuICAgICAgICAgIFtwb3BvdmVySHRtbENvbnRlbnRdPVwiY29udHJvbC5wb3BvdmVySHRtbENvbnRlbnRcIlxuICAgICAgICAgIFtwb3BvdmVyVGl0bGVdPVwiY29udHJvbC5wb3BvdmVyVGl0bGVcIlxuICAgICAgICAgIFtwb3BvdmVyUGxhY2VtZW50XT1cImNvbnRyb2wucG9wb3ZlclBsYWNlbWVudFwiXG4gICAgICAgICAgW3BvcG92ZXJPbkhvdmVyXT1cImNvbnRyb2wucG9wb3Zlck9uSG92ZXJcIlxuICAgICAgICAgIFtwb3BvdmVyQWx3YXlzXT1cImNvbnRyb2wucG9wb3ZlckFsd2F5c1wiXG4gICAgICAgICAgW3BvcG92ZXJEaXNhYmxlZF09XCJjb250cm9sLnBvcG92ZXJEaXNhYmxlZFwiXG4gICAgICAgICAgW3BvcG92ZXJBbmltYXRpb25dPVwiY29udHJvbC5wb3BvdmVyQW5pbWF0aW9uXCJcbiAgICAgICAgICBbcG9wb3ZlckRpc21pc3NUaW1lb3V0XT1cImNvbnRyb2wucG9wb3ZlckRpc21pc3NUaW1lb3V0XCJcbiAgICAgICAgICAoZWRpdCk9XCJtZXRob2RzLmhhbmRsZUVkaXQoJGV2ZW50KVwiXG4gICAgICAgICAgKHNhdmUpPVwibWV0aG9kcy5oYW5kbGVTYXZlKCRldmVudClcIlxuICAgICAgICAgIChkZWxldGUpPVwibWV0aG9kcy5oYW5kbGVEZWxldGUoJGV2ZW50KVwiXG4gICAgICAgICAgKHVwbG9hZCk9XCJtZXRob2RzLmhhbmRsZVVwbG9hZCgkZXZlbnQpXCJcbiAgICAgICAgPjwvbm92by1maWxlLWlucHV0PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwhLS1UaWxlcy0tPlxuICAgIDxuZy10ZW1wbGF0ZSBub3ZvVGVtcGxhdGU9XCJ0aWxlc1wiIGxldC1jb250cm9sIGxldC1mb3JtPVwiZm9ybVwiIGxldC1lcnJvcnM9XCJlcnJvcnNcIiBsZXQtbWV0aG9kcz1cIm1ldGhvZHNcIj5cbiAgICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICAgIDxub3ZvLXRpbGVzXG4gICAgICAgICAgW29wdGlvbnNdPVwiY29udHJvbC5vcHRpb25zXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICAob25DaGFuZ2UpPVwibWV0aG9kcy5tb2RlbENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICBbdG9vbHRpcF09XCJjb250cm9sLnRvb2x0aXBcIlxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiY29udHJvbC50b29sdGlwUG9zaXRpb25cIlxuICAgICAgICAgIFt0b29sdGlwU2l6ZV09XCJjb250cm9sPy50b29sdGlwU2l6ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBQcmVsaW5lXT1cImNvbnRyb2w/LnRvb2x0aXBQcmVsaW5lXCJcbiAgICAgICAgICBbcmVtb3ZlVG9vbHRpcEFycm93XT1cImNvbnRyb2w/LnJlbW92ZVRvb2x0aXBBcnJvd1wiXG4gICAgICAgICAgW3Rvb2x0aXBBdXRvUG9zaXRpb25dPVwiY29udHJvbD8udG9vbHRpcEF1dG9Qb3NpdGlvblwiXG4gICAgICAgICAgW25vdm9Qb3BvdmVyXT1cImNvbnRyb2wucG9wb3ZlckNvbnRlbnRcIlxuICAgICAgICAgIFtwb3BvdmVySHRtbENvbnRlbnRdPVwiY29udHJvbC5wb3BvdmVySHRtbENvbnRlbnRcIlxuICAgICAgICAgIFtwb3BvdmVyVGl0bGVdPVwiY29udHJvbC5wb3BvdmVyVGl0bGVcIlxuICAgICAgICAgIFtwb3BvdmVyUGxhY2VtZW50XT1cImNvbnRyb2wucG9wb3ZlclBsYWNlbWVudFwiXG4gICAgICAgICAgW3BvcG92ZXJPbkhvdmVyXT1cImNvbnRyb2wucG9wb3Zlck9uSG92ZXJcIlxuICAgICAgICAgIFtwb3BvdmVyQWx3YXlzXT1cImNvbnRyb2wucG9wb3ZlckFsd2F5c1wiXG4gICAgICAgICAgW3BvcG92ZXJEaXNhYmxlZF09XCJjb250cm9sLnBvcG92ZXJEaXNhYmxlZFwiXG4gICAgICAgICAgW3BvcG92ZXJBbmltYXRpb25dPVwiY29udHJvbC5wb3BvdmVyQW5pbWF0aW9uXCJcbiAgICAgICAgICBbcG9wb3ZlckRpc21pc3NUaW1lb3V0XT1cImNvbnRyb2wucG9wb3ZlckRpc21pc3NUaW1lb3V0XCJcbiAgICAgICAgICBbY29udHJvbERpc2FibGVkXT1cImNvbnRyb2wuZGlzYWJsZWRcIlxuICAgICAgICA+PC9ub3ZvLXRpbGVzPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwhLS1QaWNrZXItLT5cbiAgICA8bmctdGVtcGxhdGUgbm92b1RlbXBsYXRlPVwicGlja2VyXCIgbGV0LWNvbnRyb2wgbGV0LWZvcm09XCJmb3JtXCIgbGV0LWVycm9ycz1cImVycm9yc1wiIGxldC1tZXRob2RzPVwibWV0aG9kc1wiPlxuICAgICAgPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cIm5vdm8tY29udHJvbC1pbnB1dC1jb250YWluZXJcIj5cbiAgICAgICAgPG5vdm8tcGlja2VyXG4gICAgICAgICAgW2NvbmZpZ109XCJjb250cm9sLmNvbmZpZ1wiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbnRyb2wucGxhY2Vob2xkZXJcIlxuICAgICAgICAgIFtwYXJlbnRTY3JvbGxTZWxlY3Rvcl09XCJjb250cm9sLnBhcmVudFNjcm9sbFNlbGVjdG9yXCJcbiAgICAgICAgICBbYWxsb3dDdXN0b21WYWx1ZXNdPVwiY29udHJvbC5jb25maWcuYWxsb3dDdXN0b21WYWx1ZXNcIlxuICAgICAgICAgICpuZ0lmPVwiIWNvbnRyb2wubXVsdGlwbGVcIlxuICAgICAgICAgIChzZWxlY3QpPVwibWV0aG9kcy5tb2RlbENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAoY2hhbmdlZCk9XCJtZXRob2RzLm1vZGVsQ2hhbmdlV2l0aFJhdygkZXZlbnQpXCJcbiAgICAgICAgICAodHlwaW5nKT1cIm1ldGhvZHMuaGFuZGxlVHlwaW5nKCRldmVudClcIlxuICAgICAgICAgIChmb2N1cyk9XCJtZXRob2RzLmhhbmRsZUZvY3VzKCRldmVudClcIlxuICAgICAgICAgIChibHVyKT1cIm1ldGhvZHMuaGFuZGxlQmx1cigkZXZlbnQpXCJcbiAgICAgICAgICBbdG9vbHRpcF09XCJjb250cm9sLnRvb2x0aXBcIlxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiY29udHJvbC50b29sdGlwUG9zaXRpb25cIlxuICAgICAgICAgIFt0b29sdGlwU2l6ZV09XCJjb250cm9sPy50b29sdGlwU2l6ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBQcmVsaW5lXT1cImNvbnRyb2w/LnRvb2x0aXBQcmVsaW5lXCJcbiAgICAgICAgICBbcmVtb3ZlVG9vbHRpcEFycm93XT1cImNvbnRyb2w/LnJlbW92ZVRvb2x0aXBBcnJvd1wiXG4gICAgICAgICAgW3Rvb2x0aXBBdXRvUG9zaXRpb25dPVwiY29udHJvbD8udG9vbHRpcEF1dG9Qb3NpdGlvblwiXG4gICAgICAgICAgW25vdm9Qb3BvdmVyXT1cImNvbnRyb2wucG9wb3ZlckNvbnRlbnRcIlxuICAgICAgICAgIFtwb3BvdmVySHRtbENvbnRlbnRdPVwiY29udHJvbC5wb3BvdmVySHRtbENvbnRlbnRcIlxuICAgICAgICAgIFtwb3BvdmVyVGl0bGVdPVwiY29udHJvbC5wb3BvdmVyVGl0bGVcIlxuICAgICAgICAgIFtwb3BvdmVyUGxhY2VtZW50XT1cImNvbnRyb2wucG9wb3ZlclBsYWNlbWVudFwiXG4gICAgICAgICAgW3BvcG92ZXJPbkhvdmVyXT1cImNvbnRyb2wucG9wb3Zlck9uSG92ZXJcIlxuICAgICAgICAgIFtwb3BvdmVyQWx3YXlzXT1cImNvbnRyb2wucG9wb3ZlckFsd2F5c1wiXG4gICAgICAgICAgW3BvcG92ZXJEaXNhYmxlZF09XCJjb250cm9sLnBvcG92ZXJEaXNhYmxlZFwiXG4gICAgICAgICAgW3BvcG92ZXJBbmltYXRpb25dPVwiY29udHJvbC5wb3BvdmVyQW5pbWF0aW9uXCJcbiAgICAgICAgICBbcG9wb3ZlckRpc21pc3NUaW1lb3V0XT1cImNvbnRyb2wucG9wb3ZlckRpc21pc3NUaW1lb3V0XCJcbiAgICAgICAgPjwvbm92by1waWNrZXI+XG4gICAgICAgIDxub3ZvLWNoaXBzXG4gICAgICAgICAgW3NvdXJjZV09XCJjb250cm9sLmNvbmZpZ1wiXG4gICAgICAgICAgW3R5cGVdPVwiY29udHJvbC5jb25maWcudHlwZVwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbnRyb2wucGxhY2Vob2xkZXJcIlxuICAgICAgICAgIFttYXhsZW5ndGhdPVwiY29udHJvbD8ubWF4bGVuZ3RoXCJcbiAgICAgICAgICBbYWxsb3dDdXN0b21WYWx1ZXNdPVwiY29udHJvbC5jb25maWcuYWxsb3dDdXN0b21WYWx1ZXNcIlxuICAgICAgICAgICpuZ0lmPVwiY29udHJvbC5tdWx0aXBsZSAmJiAhY29udHJvbC5jb25maWcuY29sdW1uc1wiXG4gICAgICAgICAgW2Nsb3NlT25TZWxlY3RdPVwiY29udHJvbC5jbG9zZU9uU2VsZWN0XCJcbiAgICAgICAgICAoY2hhbmdlZCk9XCJtZXRob2RzLm1vZGVsQ2hhbmdlV2l0aFJhdygkZXZlbnQpXCJcbiAgICAgICAgICAodHlwaW5nKT1cIm1ldGhvZHMuaGFuZGxlVHlwaW5nKCRldmVudClcIlxuICAgICAgICAgIChmb2N1cyk9XCJtZXRob2RzLmhhbmRsZUZvY3VzKCRldmVudClcIlxuICAgICAgICAgIChibHVyKT1cIm1ldGhvZHMuaGFuZGxlQmx1cigkZXZlbnQpXCJcbiAgICAgICAgICBbdG9vbHRpcF09XCJjb250cm9sLnRvb2x0aXBcIlxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiY29udHJvbC50b29sdGlwUG9zaXRpb25cIlxuICAgICAgICAgIFt0b29sdGlwU2l6ZV09XCJjb250cm9sPy50b29sdGlwU2l6ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBQcmVsaW5lXT1cImNvbnRyb2w/LnRvb2x0aXBQcmVsaW5lXCJcbiAgICAgICAgICBbcmVtb3ZlVG9vbHRpcEFycm93XT1cImNvbnRyb2w/LnJlbW92ZVRvb2x0aXBBcnJvd1wiXG4gICAgICAgICAgW3Rvb2x0aXBBdXRvUG9zaXRpb25dPVwiY29udHJvbD8udG9vbHRpcEF1dG9Qb3NpdGlvblwiXG4gICAgICAgICAgW25vdm9Qb3BvdmVyXT1cImNvbnRyb2wucG9wb3ZlckNvbnRlbnRcIlxuICAgICAgICAgIFtwb3BvdmVySHRtbENvbnRlbnRdPVwiY29udHJvbC5wb3BvdmVySHRtbENvbnRlbnRcIlxuICAgICAgICAgIFtwb3BvdmVyVGl0bGVdPVwiY29udHJvbC5wb3BvdmVyVGl0bGVcIlxuICAgICAgICAgIFtwb3BvdmVyUGxhY2VtZW50XT1cImNvbnRyb2wucG9wb3ZlclBsYWNlbWVudFwiXG4gICAgICAgICAgW3BvcG92ZXJPbkhvdmVyXT1cImNvbnRyb2wucG9wb3Zlck9uSG92ZXJcIlxuICAgICAgICAgIFtwb3BvdmVyQWx3YXlzXT1cImNvbnRyb2wucG9wb3ZlckFsd2F5c1wiXG4gICAgICAgICAgW3BvcG92ZXJEaXNhYmxlZF09XCJjb250cm9sLnBvcG92ZXJEaXNhYmxlZFwiXG4gICAgICAgICAgW3BvcG92ZXJBbmltYXRpb25dPVwiY29udHJvbC5wb3BvdmVyQW5pbWF0aW9uXCJcbiAgICAgICAgICBbcG9wb3ZlckRpc21pc3NUaW1lb3V0XT1cImNvbnRyb2wucG9wb3ZlckRpc21pc3NUaW1lb3V0XCJcbiAgICAgICAgPjwvbm92by1jaGlwcz5cbiAgICAgICAgPG5vdm8tcm93LWNoaXBzXG4gICAgICAgICAgW3NvdXJjZV09XCJjb250cm9sLmNvbmZpZ1wiXG4gICAgICAgICAgW3R5cGVdPVwiY29udHJvbC5jb25maWcudHlwZVwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbnRyb2wucGxhY2Vob2xkZXJcIlxuICAgICAgICAgIFttYXhsZW5ndGhdPVwiY29udHJvbD8ubWF4bGVuZ3RoXCJcbiAgICAgICAgICAqbmdJZj1cImNvbnRyb2wubXVsdGlwbGUgJiYgY29udHJvbC5jb25maWcuY29sdW1uc1wiXG4gICAgICAgICAgW2Nsb3NlT25TZWxlY3RdPVwiY29udHJvbC5jbG9zZU9uU2VsZWN0XCJcbiAgICAgICAgICAoY2hhbmdlZCk9XCJtZXRob2RzLm1vZGVsQ2hhbmdlV2l0aFJhdygkZXZlbnQpXCJcbiAgICAgICAgICAodHlwaW5nKT1cIm1ldGhvZHMuaGFuZGxlVHlwaW5nKCRldmVudClcIlxuICAgICAgICAgIChmb2N1cyk9XCJtZXRob2RzLmhhbmRsZUZvY3VzKCRldmVudClcIlxuICAgICAgICAgIChibHVyKT1cIm1ldGhvZHMuaGFuZGxlQmx1cigkZXZlbnQpXCJcbiAgICAgICAgICBbdG9vbHRpcF09XCJjb250cm9sLnRvb2x0aXBcIlxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiY29udHJvbC50b29sdGlwUG9zaXRpb25cIlxuICAgICAgICAgIFt0b29sdGlwU2l6ZV09XCJjb250cm9sPy50b29sdGlwU2l6ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBQcmVsaW5lXT1cImNvbnRyb2w/LnRvb2x0aXBQcmVsaW5lXCJcbiAgICAgICAgICBbcmVtb3ZlVG9vbHRpcEFycm93XT1cImNvbnRyb2w/LnJlbW92ZVRvb2x0aXBBcnJvd1wiXG4gICAgICAgICAgW3Rvb2x0aXBBdXRvUG9zaXRpb25dPVwiY29udHJvbD8udG9vbHRpcEF1dG9Qb3NpdGlvblwiXG4gICAgICAgICAgW25vdm9Qb3BvdmVyXT1cImNvbnRyb2wucG9wb3ZlckNvbnRlbnRcIlxuICAgICAgICAgIFtwb3BvdmVySHRtbENvbnRlbnRdPVwiY29udHJvbC5wb3BvdmVySHRtbENvbnRlbnRcIlxuICAgICAgICAgIFtwb3BvdmVyVGl0bGVdPVwiY29udHJvbC5wb3BvdmVyVGl0bGVcIlxuICAgICAgICAgIFtwb3BvdmVyUGxhY2VtZW50XT1cImNvbnRyb2wucG9wb3ZlclBsYWNlbWVudFwiXG4gICAgICAgICAgW3BvcG92ZXJPbkhvdmVyXT1cImNvbnRyb2wucG9wb3Zlck9uSG92ZXJcIlxuICAgICAgICAgIFtwb3BvdmVyQWx3YXlzXT1cImNvbnRyb2wucG9wb3ZlckFsd2F5c1wiXG4gICAgICAgICAgW3BvcG92ZXJEaXNhYmxlZF09XCJjb250cm9sLnBvcG92ZXJEaXNhYmxlZFwiXG4gICAgICAgICAgW3BvcG92ZXJBbmltYXRpb25dPVwiY29udHJvbC5wb3BvdmVyQW5pbWF0aW9uXCJcbiAgICAgICAgICBbcG9wb3ZlckRpc21pc3NUaW1lb3V0XT1cImNvbnRyb2wucG9wb3ZlckRpc21pc3NUaW1lb3V0XCJcbiAgICAgICAgPjwvbm92by1yb3ctY2hpcHM+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPCEtLU5vdm8gU2VsZWN0LS0+XG4gICAgPG5nLXRlbXBsYXRlIG5vdm9UZW1wbGF0ZT1cInNlbGVjdFwiIGxldC1jb250cm9sIGxldC1mb3JtPVwiZm9ybVwiIGxldC1lcnJvcnM9XCJlcnJvcnNcIiBsZXQtbWV0aG9kcz1cIm1ldGhvZHNcIj5cbiAgICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICAgIDxub3ZvLXNlbGVjdFxuICAgICAgICAgIFtvcHRpb25zXT1cImNvbnRyb2wub3B0aW9uc1wiXG4gICAgICAgICAgW2hlYWRlckNvbmZpZ109XCJjb250cm9sLmhlYWRlckNvbmZpZ1wiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbnRyb2wucGxhY2Vob2xkZXJcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5rZXlcIlxuICAgICAgICAgIFt0b29sdGlwXT1cImNvbnRyb2wudG9vbHRpcFwiXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJjb250cm9sLnRvb2x0aXBQb3NpdGlvblwiXG4gICAgICAgICAgW3Rvb2x0aXBTaXplXT1cImNvbnRyb2w/LnRvb2x0aXBTaXplXCJcbiAgICAgICAgICBbdG9vbHRpcFByZWxpbmVdPVwiY29udHJvbD8udG9vbHRpcFByZWxpbmVcIlxuICAgICAgICAgIFtyZW1vdmVUb29sdGlwQXJyb3ddPVwiY29udHJvbD8ucmVtb3ZlVG9vbHRpcEFycm93XCJcbiAgICAgICAgICBbdG9vbHRpcEF1dG9Qb3NpdGlvbl09XCJjb250cm9sPy50b29sdGlwQXV0b1Bvc2l0aW9uXCJcbiAgICAgICAgICBbbm92b1BvcG92ZXJdPVwiY29udHJvbC5wb3BvdmVyQ29udGVudFwiXG4gICAgICAgICAgW3BvcG92ZXJIdG1sQ29udGVudF09XCJjb250cm9sLnBvcG92ZXJIdG1sQ29udGVudFwiXG4gICAgICAgICAgW3BvcG92ZXJUaXRsZV09XCJjb250cm9sLnBvcG92ZXJUaXRsZVwiXG4gICAgICAgICAgW3BvcG92ZXJQbGFjZW1lbnRdPVwiY29udHJvbC5wb3BvdmVyUGxhY2VtZW50XCJcbiAgICAgICAgICBbcG9wb3Zlck9uSG92ZXJdPVwiY29udHJvbC5wb3BvdmVyT25Ib3ZlclwiXG4gICAgICAgICAgW3BvcG92ZXJBbHdheXNdPVwiY29udHJvbC5wb3BvdmVyQWx3YXlzXCJcbiAgICAgICAgICBbcG9wb3ZlckRpc2FibGVkXT1cImNvbnRyb2wucG9wb3ZlckRpc2FibGVkXCJcbiAgICAgICAgICBbcG9wb3ZlckFuaW1hdGlvbl09XCJjb250cm9sLnBvcG92ZXJBbmltYXRpb25cIlxuICAgICAgICAgIFtwb3BvdmVyRGlzbWlzc1RpbWVvdXRdPVwiY29udHJvbC5wb3BvdmVyRGlzbWlzc1RpbWVvdXRcIlxuICAgICAgICAgIChvblNlbGVjdCk9XCJtZXRob2RzLm1vZGVsQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+PC9ub3ZvLXNlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8IS0tVGltZXpvbmUgLS0+XG4gICAgPG5nLXRlbXBsYXRlIG5vdm9UZW1wbGF0ZT1cInRpbWV6b25lXCIgbGV0LWNvbnRyb2wgbGV0LWZvcm09XCJmb3JtXCIgbGV0LWVycm9ycz1cImVycm9yc1wiIGxldC1tZXRob2RzPVwibWV0aG9kc1wiPlxuICAgICAgPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgICAgICAgPG5vdm8tc2VsZWN0XG4gICAgICAgICAgW29wdGlvbnNdPVwiY29udHJvbC5vcHRpb25zXCJcbiAgICAgICAgICBbaGVhZGVyQ29uZmlnXT1cImNvbnRyb2wuaGVhZGVyQ29uZmlnXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29udHJvbC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiY29udHJvbC50b29sdGlwXCJcbiAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cImNvbnRyb2wudG9vbHRpcFBvc2l0aW9uXCJcbiAgICAgICAgICBbdG9vbHRpcFNpemVdPVwiY29udHJvbD8udG9vbHRpcFNpemVcIlxuICAgICAgICAgIFt0b29sdGlwUHJlbGluZV09XCJjb250cm9sPy50b29sdGlwUHJlbGluZVwiXG4gICAgICAgICAgW3JlbW92ZVRvb2x0aXBBcnJvd109XCJjb250cm9sPy5yZW1vdmVUb29sdGlwQXJyb3dcIlxuICAgICAgICAgIFt0b29sdGlwQXV0b1Bvc2l0aW9uXT1cImNvbnRyb2w/LnRvb2x0aXBBdXRvUG9zaXRpb25cIlxuICAgICAgICAgIFtub3ZvUG9wb3Zlcl09XCJjb250cm9sLnBvcG92ZXJDb250ZW50XCJcbiAgICAgICAgICBbcG9wb3Zlckh0bWxDb250ZW50XT1cImNvbnRyb2wucG9wb3Zlckh0bWxDb250ZW50XCJcbiAgICAgICAgICBbcG9wb3ZlclRpdGxlXT1cImNvbnRyb2wucG9wb3ZlclRpdGxlXCJcbiAgICAgICAgICBbcG9wb3ZlclBsYWNlbWVudF09XCJjb250cm9sLnBvcG92ZXJQbGFjZW1lbnRcIlxuICAgICAgICAgIFtwb3BvdmVyT25Ib3Zlcl09XCJjb250cm9sLnBvcG92ZXJPbkhvdmVyXCJcbiAgICAgICAgICBbcG9wb3ZlckFsd2F5c109XCJjb250cm9sLnBvcG92ZXJBbHdheXNcIlxuICAgICAgICAgIFtwb3BvdmVyRGlzYWJsZWRdPVwiY29udHJvbC5wb3BvdmVyRGlzYWJsZWRcIlxuICAgICAgICAgIFtwb3BvdmVyQW5pbWF0aW9uXT1cImNvbnRyb2wucG9wb3ZlckFuaW1hdGlvblwiXG4gICAgICAgICAgW3BvcG92ZXJEaXNtaXNzVGltZW91dF09XCJjb250cm9sLnBvcG92ZXJEaXNtaXNzVGltZW91dFwiXG4gICAgICAgICAgcG9zaXRpb249XCJib3R0b21cIlxuICAgICAgICAgIChvblNlbGVjdCk9XCJtZXRob2RzLm1vZGVsQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+PC9ub3ZvLXNlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8IS0tUmFkaW8tLT5cbiAgICA8bmctdGVtcGxhdGUgbm92b1RlbXBsYXRlPVwicmFkaW9cIiBsZXQtY29udHJvbCBsZXQtZm9ybT1cImZvcm1cIiBsZXQtZXJyb3JzPVwiZXJyb3JzXCIgbGV0LW1ldGhvZHM9XCJtZXRob2RzXCI+XG4gICAgICA8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwibm92by1jb250cm9sLWlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgICA8bm92by1yYWRpby1ncm91cCBbbmFtZV09XCJjb250cm9sLmtleVwiIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5rZXlcIiBbZGlzYWJsZWRdPVwiY29udHJvbC5kaXNhYmxlZFwiPlxuICAgICAgICAgIDxub3ZvLXJhZGlvXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGNvbnRyb2wub3B0aW9uc1wiXG4gICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJvcHRpb24ubGFiZWxcIlxuICAgICAgICAgICAgW2NoZWNrZWRdPVwiXG4gICAgICAgICAgICAgIG9wdGlvbi52YWx1ZSA9PT0gZm9ybS5nZXRSYXdWYWx1ZSgpW2NvbnRyb2wua2V5XSB8fFxuICAgICAgICAgICAgICAoZm9ybS5nZXRSYXdWYWx1ZSgpW2NvbnRyb2wua2V5XSAmJiBvcHRpb24udmFsdWUgPT09IGZvcm0uZ2V0UmF3VmFsdWUoKVtjb250cm9sLmtleV0uaWQpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3Rvb2x0aXBdPVwiY29udHJvbC50b29sdGlwXCJcbiAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiY29udHJvbC50b29sdGlwUG9zaXRpb25cIlxuICAgICAgICAgICAgW3Rvb2x0aXBTaXplXT1cImNvbnRyb2w/LnRvb2x0aXBTaXplXCJcbiAgICAgICAgICAgIFt0b29sdGlwUHJlbGluZV09XCJjb250cm9sPy50b29sdGlwUHJlbGluZVwiXG4gICAgICAgICAgICBbcmVtb3ZlVG9vbHRpcEFycm93XT1cImNvbnRyb2w/LnJlbW92ZVRvb2x0aXBBcnJvd1wiXG4gICAgICAgICAgICBbdG9vbHRpcEF1dG9Qb3NpdGlvbl09XCJjb250cm9sPy50b29sdGlwQXV0b1Bvc2l0aW9uXCJcbiAgICAgICAgICAgIFtub3ZvUG9wb3Zlcl09XCJjb250cm9sLnBvcG92ZXJDb250ZW50XCJcbiAgICAgICAgICAgIFtwb3BvdmVySHRtbENvbnRlbnRdPVwiY29udHJvbC5wb3BvdmVySHRtbENvbnRlbnRcIlxuICAgICAgICAgICAgW3BvcG92ZXJUaXRsZV09XCJjb250cm9sLnBvcG92ZXJUaXRsZVwiXG4gICAgICAgICAgICBbcG9wb3ZlclBsYWNlbWVudF09XCJjb250cm9sLnBvcG92ZXJQbGFjZW1lbnRcIlxuICAgICAgICAgICAgW3BvcG92ZXJPbkhvdmVyXT1cImNvbnRyb2wucG9wb3Zlck9uSG92ZXJcIlxuICAgICAgICAgICAgW3BvcG92ZXJBbHdheXNdPVwiY29udHJvbC5wb3BvdmVyQWx3YXlzXCJcbiAgICAgICAgICAgIFtwb3BvdmVyRGlzYWJsZWRdPVwiY29udHJvbC5wb3BvdmVyRGlzYWJsZWRcIlxuICAgICAgICAgICAgW3BvcG92ZXJBbmltYXRpb25dPVwiY29udHJvbC5wb3BvdmVyQW5pbWF0aW9uXCJcbiAgICAgICAgICAgIFtwb3BvdmVyRGlzbWlzc1RpbWVvdXRdPVwiY29udHJvbC5wb3BvdmVyRGlzbWlzc1RpbWVvdXRcIlxuICAgICAgICAgICAgW2J1dHRvbl09XCIhIW9wdGlvbi5pY29uXCJcbiAgICAgICAgICAgIFtpY29uXT1cIm9wdGlvbi5pY29uXCJcbiAgICAgICAgICAgIFtjb2xvcl09XCJvcHRpb24uY29sb3JcIlxuICAgICAgICAgICAgW3RoZW1lXT1cIiEhb3B0aW9uLmljb24gJiYgIW9wdGlvbi5sYWJlbCA/ICdpY29uJyA6ICdzZWNvbmRhcnknXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCJjb250cm9sLmtleSArICctJyArIChvcHRpb24/LmxhYmVsIHx8IG9wdGlvbj8udmFsdWUpXCJcbiAgICAgICAgICA+PC9ub3ZvLXJhZGlvPlxuICAgICAgICA8L25vdm8tcmFkaW8tZ3JvdXA+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPCEtLVRpbWUtLT5cbiAgICA8bmctdGVtcGxhdGUgbm92b1RlbXBsYXRlPVwidGltZVwiIGxldC1jb250cm9sIGxldC1mb3JtPVwiZm9ybVwiIGxldC1lcnJvcnM9XCJlcnJvcnNcIiBsZXQtbWV0aG9kcz1cIm1ldGhvZHNcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAgICAgY2xhc3M9XCJub3ZvLWNvbnRyb2wtaW5wdXQtY29udGFpbmVyXCJcbiAgICAgICAgW3Rvb2x0aXBdPVwiY29udHJvbD8udG9vbHRpcFwiXG4gICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiY29udHJvbD8udG9vbHRpcFBvc2l0aW9uXCJcbiAgICAgICAgW3Rvb2x0aXBTaXplXT1cImNvbnRyb2w/LnRvb2x0aXBTaXplXCJcbiAgICAgICAgW3Rvb2x0aXBQcmVsaW5lXT1cImNvbnRyb2w/LnRvb2x0aXBQcmVsaW5lXCJcbiAgICAgICAgW3JlbW92ZVRvb2x0aXBBcnJvd109XCJjb250cm9sPy5yZW1vdmVUb29sdGlwQXJyb3dcIlxuICAgICAgICBbdG9vbHRpcEF1dG9Qb3NpdGlvbl09XCJjb250cm9sPy50b29sdGlwQXV0b1Bvc2l0aW9uXCJcbiAgICAgICAgW25vdm9Qb3BvdmVyXT1cImNvbnRyb2wucG9wb3ZlckNvbnRlbnRcIlxuICAgICAgICBbcG9wb3Zlckh0bWxDb250ZW50XT1cImNvbnRyb2wucG9wb3Zlckh0bWxDb250ZW50XCJcbiAgICAgICAgW3BvcG92ZXJUaXRsZV09XCJjb250cm9sLnBvcG92ZXJUaXRsZVwiXG4gICAgICAgIFtwb3BvdmVyUGxhY2VtZW50XT1cImNvbnRyb2wucG9wb3ZlclBsYWNlbWVudFwiXG4gICAgICAgIFtwb3BvdmVyT25Ib3Zlcl09XCJjb250cm9sLnBvcG92ZXJPbkhvdmVyXCJcbiAgICAgICAgW3BvcG92ZXJBbHdheXNdPVwiY29udHJvbC5wb3BvdmVyQWx3YXlzXCJcbiAgICAgICAgW3BvcG92ZXJEaXNhYmxlZF09XCJjb250cm9sLnBvcG92ZXJEaXNhYmxlZFwiXG4gICAgICAgIFtwb3BvdmVyQW5pbWF0aW9uXT1cImNvbnRyb2wucG9wb3ZlckFuaW1hdGlvblwiXG4gICAgICAgIFtwb3BvdmVyRGlzbWlzc1RpbWVvdXRdPVwiY29udHJvbC5wb3BvdmVyRGlzbWlzc1RpbWVvdXRcIlxuICAgICAgPlxuICAgICAgICA8bm92by10aW1lLXBpY2tlci1pbnB1dFxuICAgICAgICAgIFthdHRyLmlkXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICBbbmFtZV09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbnRyb2wucGxhY2Vob2xkZXJcIlxuICAgICAgICAgIFttaWxpdGFyeV09XCJjb250cm9sLm1pbGl0YXJ5XCJcbiAgICAgICAgPjwvbm92by10aW1lLXBpY2tlci1pbnB1dD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8IS0tTmF0aXZlIElucHV0LS0tPlxuICAgIDxuZy10ZW1wbGF0ZSBub3ZvVGVtcGxhdGU9XCJuYXRpdmUtaW5wdXRcIiBsZXQtY29udHJvbCBsZXQtZm9ybT1cImZvcm1cIiBsZXQtZXJyb3JzPVwiZXJyb3JzXCIgbGV0LW1ldGhvZHM9XCJtZXRob2RzXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgICAgIGNsYXNzPVwibm92by1jb250cm9sLWlucHV0LWNvbnRhaW5lciBub3ZvLWNvbnRyb2wtaW5wdXQtd2l0aC1sYWJlbFwiXG4gICAgICAgIFt0b29sdGlwXT1cImNvbnRyb2w/LnRvb2x0aXBcIlxuICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cImNvbnRyb2w/LnRvb2x0aXBQb3NpdGlvblwiXG4gICAgICAgIFt0b29sdGlwU2l6ZV09XCJjb250cm9sPy50b29sdGlwU2l6ZVwiXG4gICAgICAgIFt0b29sdGlwUHJlbGluZV09XCJjb250cm9sPy50b29sdGlwUHJlbGluZVwiXG4gICAgICAgIFtyZW1vdmVUb29sdGlwQXJyb3ddPVwiY29udHJvbD8ucmVtb3ZlVG9vbHRpcEFycm93XCJcbiAgICAgICAgW3Rvb2x0aXBBdXRvUG9zaXRpb25dPVwiY29udHJvbD8udG9vbHRpcEF1dG9Qb3NpdGlvblwiXG4gICAgICAgIFtub3ZvUG9wb3Zlcl09XCJjb250cm9sLnBvcG92ZXJDb250ZW50XCJcbiAgICAgICAgW3BvcG92ZXJIdG1sQ29udGVudF09XCJjb250cm9sLnBvcG92ZXJIdG1sQ29udGVudFwiXG4gICAgICAgIFtwb3BvdmVyVGl0bGVdPVwiY29udHJvbC5wb3BvdmVyVGl0bGVcIlxuICAgICAgICBbcG9wb3ZlclBsYWNlbWVudF09XCJjb250cm9sLnBvcG92ZXJQbGFjZW1lbnRcIlxuICAgICAgICBbcG9wb3Zlck9uSG92ZXJdPVwiY29udHJvbC5wb3BvdmVyT25Ib3ZlclwiXG4gICAgICAgIFtwb3BvdmVyQWx3YXlzXT1cImNvbnRyb2wucG9wb3ZlckFsd2F5c1wiXG4gICAgICAgIFtwb3BvdmVyRGlzYWJsZWRdPVwiY29udHJvbC5wb3BvdmVyRGlzYWJsZWRcIlxuICAgICAgICBbcG9wb3ZlckFuaW1hdGlvbl09XCJjb250cm9sLnBvcG92ZXJBbmltYXRpb25cIlxuICAgICAgICBbcG9wb3ZlckRpc21pc3NUaW1lb3V0XT1cImNvbnRyb2wucG9wb3ZlckRpc21pc3NUaW1lb3V0XCJcbiAgICAgID5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgW2lkXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICBbdHlwZV09XCJjb250cm9sLnR5cGVcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb250cm9sPy5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgKGlucHV0KT1cIm1ldGhvZHMuZW1pdENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAoZm9jdXMpPVwibWV0aG9kcy5oYW5kbGVGb2N1cygkZXZlbnQpXCJcbiAgICAgICAgICAoYmx1cik9XCJtZXRob2RzLmhhbmRsZUJsdXIoJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPCEtLURhdGUtLT5cbiAgICA8bmctdGVtcGxhdGUgbm92b1RlbXBsYXRlPVwiZGF0ZVwiIGxldC1jb250cm9sIGxldC1mb3JtPVwiZm9ybVwiIGxldC1lcnJvcnM9XCJlcnJvcnNcIiBsZXQtbWV0aG9kcz1cIm1ldGhvZHNcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAgICAgY2xhc3M9XCJub3ZvLWNvbnRyb2wtaW5wdXQtY29udGFpbmVyXCJcbiAgICAgICAgW3Rvb2x0aXBdPVwiY29udHJvbC50b29sdGlwXCJcbiAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJjb250cm9sLnRvb2x0aXBQb3NpdGlvblwiXG4gICAgICAgIFt0b29sdGlwU2l6ZV09XCJjb250cm9sPy50b29sdGlwU2l6ZVwiXG4gICAgICAgIFt0b29sdGlwUHJlbGluZV09XCJjb250cm9sPy50b29sdGlwUHJlbGluZVwiXG4gICAgICAgIFtyZW1vdmVUb29sdGlwQXJyb3ddPVwiY29udHJvbD8ucmVtb3ZlVG9vbHRpcEFycm93XCJcbiAgICAgICAgW3Rvb2x0aXBBdXRvUG9zaXRpb25dPVwiY29udHJvbD8udG9vbHRpcEF1dG9Qb3NpdGlvblwiXG4gICAgICAgIFtub3ZvUG9wb3Zlcl09XCJjb250cm9sLnBvcG92ZXJDb250ZW50XCJcbiAgICAgICAgW3BvcG92ZXJIdG1sQ29udGVudF09XCJjb250cm9sLnBvcG92ZXJIdG1sQ29udGVudFwiXG4gICAgICAgIFtwb3BvdmVyVGl0bGVdPVwiY29udHJvbC5wb3BvdmVyVGl0bGVcIlxuICAgICAgICBbcG9wb3ZlclBsYWNlbWVudF09XCJjb250cm9sLnBvcG92ZXJQbGFjZW1lbnRcIlxuICAgICAgICBbcG9wb3Zlck9uSG92ZXJdPVwiY29udHJvbC5wb3BvdmVyT25Ib3ZlclwiXG4gICAgICAgIFtwb3BvdmVyQWx3YXlzXT1cImNvbnRyb2wucG9wb3ZlckFsd2F5c1wiXG4gICAgICAgIFtwb3BvdmVyRGlzYWJsZWRdPVwiY29udHJvbC5wb3BvdmVyRGlzYWJsZWRcIlxuICAgICAgICBbcG9wb3ZlckFuaW1hdGlvbl09XCJjb250cm9sLnBvcG92ZXJBbmltYXRpb25cIlxuICAgICAgICBbcG9wb3ZlckRpc21pc3NUaW1lb3V0XT1cImNvbnRyb2wucG9wb3ZlckRpc21pc3NUaW1lb3V0XCJcbiAgICAgID5cbiAgICAgICAgPG5vdm8tZGF0ZS1waWNrZXItaW5wdXRcbiAgICAgICAgICBbYXR0ci5pZF09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgW25hbWVdPVwiY29udHJvbC5rZXlcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5rZXlcIlxuICAgICAgICAgIFtzdGFydF09XCJjb250cm9sLnN0YXJ0RGF0ZVwiXG4gICAgICAgICAgW2VuZF09XCJjb250cm9sLmVuZERhdGVcIlxuICAgICAgICAgIFtmb3JtYXRdPVwiY29udHJvbC5kYXRlRm9ybWF0XCJcbiAgICAgICAgICBbYWxsb3dJbnZhbGlkRGF0ZV09XCJjb250cm9sLmFsbG93SW52YWxpZERhdGVcIlxuICAgICAgICAgIFt0ZXh0TWFza0VuYWJsZWRdPVwiY29udHJvbC50ZXh0TWFza0VuYWJsZWRcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb250cm9sLnBsYWNlaG9sZGVyXCJcbiAgICAgICAgICBbd2Vla1N0YXJ0XT1cImNvbnRyb2wud2Vla1N0YXJ0XCJcbiAgICAgICAgICBbZGlzYWJsZWREYXRlTWVzc2FnZV09XCJjb250cm9sLmRpc2FibGVkRGF0ZU1lc3NhZ2VcIlxuICAgICAgICAgIChmb2N1c0V2ZW50KT1cIm1ldGhvZHMuaGFuZGxlRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgICAgKGJsdXJFdmVudCk9XCJtZXRob2RzLmhhbmRsZUJsdXIoJGV2ZW50KVwiXG4gICAgICAgICAgKGNoYW5nZUV2ZW50KT1cIm1ldGhvZHMuZW1pdENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgPjwvbm92by1kYXRlLXBpY2tlci1pbnB1dD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8IS0tRGF0ZSBhbmQgVGltZS0tPlxuICAgIDxuZy10ZW1wbGF0ZSBub3ZvVGVtcGxhdGU9XCJkYXRlLXRpbWVcIiBsZXQtY29udHJvbCBsZXQtZm9ybT1cImZvcm1cIiBsZXQtZXJyb3JzPVwiZXJyb3JzXCIgbGV0LW1ldGhvZHM9XCJtZXRob2RzXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgICAgIGNsYXNzPVwibm92by1jb250cm9sLWlucHV0LWNvbnRhaW5lclwiXG4gICAgICAgIFt0b29sdGlwXT1cImNvbnRyb2wudG9vbHRpcFwiXG4gICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiY29udHJvbC50b29sdGlwUG9zaXRpb25cIlxuICAgICAgICBbdG9vbHRpcFNpemVdPVwiY29udHJvbD8udG9vbHRpcFNpemVcIlxuICAgICAgICBbdG9vbHRpcFByZWxpbmVdPVwiY29udHJvbD8udG9vbHRpcFByZWxpbmVcIlxuICAgICAgICBbcmVtb3ZlVG9vbHRpcEFycm93XT1cImNvbnRyb2w/LnJlbW92ZVRvb2x0aXBBcnJvd1wiXG4gICAgICAgIFt0b29sdGlwQXV0b1Bvc2l0aW9uXT1cImNvbnRyb2w/LnRvb2x0aXBBdXRvUG9zaXRpb25cIlxuICAgICAgICBbbm92b1BvcG92ZXJdPVwiY29udHJvbC5wb3BvdmVyQ29udGVudFwiXG4gICAgICAgIFtwb3BvdmVySHRtbENvbnRlbnRdPVwiY29udHJvbC5wb3BvdmVySHRtbENvbnRlbnRcIlxuICAgICAgICBbcG9wb3ZlclRpdGxlXT1cImNvbnRyb2wucG9wb3ZlclRpdGxlXCJcbiAgICAgICAgW3BvcG92ZXJQbGFjZW1lbnRdPVwiY29udHJvbC5wb3BvdmVyUGxhY2VtZW50XCJcbiAgICAgICAgW3BvcG92ZXJPbkhvdmVyXT1cImNvbnRyb2wucG9wb3Zlck9uSG92ZXJcIlxuICAgICAgICBbcG9wb3ZlckFsd2F5c109XCJjb250cm9sLnBvcG92ZXJBbHdheXNcIlxuICAgICAgICBbcG9wb3ZlckRpc2FibGVkXT1cImNvbnRyb2wucG9wb3ZlckRpc2FibGVkXCJcbiAgICAgICAgW3BvcG92ZXJBbmltYXRpb25dPVwiY29udHJvbC5wb3BvdmVyQW5pbWF0aW9uXCJcbiAgICAgICAgW3BvcG92ZXJEaXNtaXNzVGltZW91dF09XCJjb250cm9sLnBvcG92ZXJEaXNtaXNzVGltZW91dFwiXG4gICAgICA+XG4gICAgICAgIDxub3ZvLWRhdGUtdGltZS1waWNrZXItaW5wdXRcbiAgICAgICAgICBbYXR0ci5pZF09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgW25hbWVdPVwiY29udHJvbC5rZXlcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5rZXlcIlxuICAgICAgICAgIFtzdGFydF09XCJjb250cm9sLnN0YXJ0RGF0ZVwiXG4gICAgICAgICAgW2VuZF09XCJjb250cm9sLmVuZERhdGVcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb250cm9sLnBsYWNlaG9sZGVyXCJcbiAgICAgICAgICBbbWlsaXRhcnldPVwiY29udHJvbC5taWxpdGFyeVwiXG4gICAgICAgICAgW3dlZWtTdGFydF09XCJjb250cm9sLndlZWtTdGFydFwiXG4gICAgICAgICAgKGZvY3VzRXZlbnQpPVwibWV0aG9kcy5oYW5kbGVGb2N1cygkZXZlbnQpXCJcbiAgICAgICAgICAoYmx1ckV2ZW50KT1cIm1ldGhvZHMuaGFuZGxlQmx1cigkZXZlbnQpXCJcbiAgICAgICAgICAoY2hhbmdlRXZlbnQpPVwibWV0aG9kcy5lbWl0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICA+PC9ub3ZvLWRhdGUtdGltZS1waWNrZXItaW5wdXQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPCEtLUFkZHJlc3MtLT5cbiAgICA8bmctdGVtcGxhdGUgbm92b1RlbXBsYXRlPVwiYWRkcmVzc1wiIGxldC1jb250cm9sIGxldC1mb3JtPVwiZm9ybVwiIGxldC1lcnJvcnM9XCJlcnJvcnNcIiBsZXQtbWV0aG9kcz1cIm1ldGhvZHNcIj5cbiAgICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICAgIDxub3ZvLWFkZHJlc3NcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICBbY29uZmlnXT1cImNvbnRyb2w/LmNvbmZpZ1wiXG4gICAgICAgICAgW3JlYWRPbmx5XT1cImNvbnRyb2w/LnJlYWRPbmx5XCJcbiAgICAgICAgICAoY2hhbmdlKT1cIm1ldGhvZHMuaGFuZGxlQWRkcmVzc0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAoZm9jdXMpPVwibWV0aG9kcy5oYW5kbGVGb2N1cygkZXZlbnQuZXZlbnQsICRldmVudC5maWVsZClcIlxuICAgICAgICAgIChibHVyKT1cIm1ldGhvZHMuaGFuZGxlQmx1cigkZXZlbnQuZXZlbnQsICRldmVudC5maWVsZClcIlxuICAgICAgICAgICh2YWxpZGl0eUNoYW5nZSk9XCJtZXRob2RzLnVwZGF0ZVZhbGlkaXR5KClcIlxuICAgICAgICA+PC9ub3ZvLWFkZHJlc3M+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPCEtLUNoZWNrYm94LS0+XG4gICAgPG5nLXRlbXBsYXRlIG5vdm9UZW1wbGF0ZT1cImNoZWNrYm94XCIgbGV0LWNvbnRyb2wgbGV0LWZvcm09XCJmb3JtXCIgbGV0LWVycm9ycz1cImVycm9yc1wiIGxldC1tZXRob2RzPVwibWV0aG9kc1wiPlxuICAgICAgPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgICAgICAgPG5vdm8tY2hlY2tib3hcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2w/LmtleVwiXG4gICAgICAgICAgW25hbWVdPVwiY29udHJvbD8ua2V5XCJcbiAgICAgICAgICBbbGFiZWxdPVwiY29udHJvbD8uY2hlY2tib3hMYWJlbFwiXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiY29udHJvbD8udG9vbHRpcFwiXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJjb250cm9sPy50b29sdGlwUG9zaXRpb25cIlxuICAgICAgICAgIFt0b29sdGlwU2l6ZV09XCJjb250cm9sPy50b29sdGlwU2l6ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBQcmVsaW5lXT1cImNvbnRyb2w/LnRvb2x0aXBQcmVsaW5lXCJcbiAgICAgICAgICBbcmVtb3ZlVG9vbHRpcEFycm93XT1cImNvbnRyb2w/LnJlbW92ZVRvb2x0aXBBcnJvd1wiXG4gICAgICAgICAgW3Rvb2x0aXBBdXRvUG9zaXRpb25dPVwiY29udHJvbD8udG9vbHRpcEF1dG9Qb3NpdGlvblwiXG4gICAgICAgICAgW25vdm9Qb3BvdmVyXT1cImNvbnRyb2wucG9wb3ZlckNvbnRlbnRcIlxuICAgICAgICAgIFtwb3BvdmVySHRtbENvbnRlbnRdPVwiY29udHJvbC5wb3BvdmVySHRtbENvbnRlbnRcIlxuICAgICAgICAgIFtwb3BvdmVyVGl0bGVdPVwiY29udHJvbC5wb3BvdmVyVGl0bGVcIlxuICAgICAgICAgIFtwb3BvdmVyUGxhY2VtZW50XT1cImNvbnRyb2wucG9wb3ZlclBsYWNlbWVudFwiXG4gICAgICAgICAgW3BvcG92ZXJPbkhvdmVyXT1cImNvbnRyb2wucG9wb3Zlck9uSG92ZXJcIlxuICAgICAgICAgIFtwb3BvdmVyQWx3YXlzXT1cImNvbnRyb2wucG9wb3ZlckFsd2F5c1wiXG4gICAgICAgICAgW3BvcG92ZXJEaXNhYmxlZF09XCJjb250cm9sLnBvcG92ZXJEaXNhYmxlZFwiXG4gICAgICAgICAgW3BvcG92ZXJBbmltYXRpb25dPVwiY29udHJvbC5wb3BvdmVyQW5pbWF0aW9uXCJcbiAgICAgICAgICBbcG9wb3ZlckRpc21pc3NUaW1lb3V0XT1cImNvbnRyb2wucG9wb3ZlckRpc21pc3NUaW1lb3V0XCJcbiAgICAgICAgICBbbGF5b3V0T3B0aW9uc109XCJjb250cm9sPy5sYXlvdXRPcHRpb25zXCJcbiAgICAgICAgPjwvbm92by1jaGVja2JveD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8IS0tU3dpdGNoLS0+XG4gICAgPG5nLXRlbXBsYXRlIG5vdm9UZW1wbGF0ZT1cInN3aXRjaFwiIGxldC1jb250cm9sIGxldC1mb3JtPVwiZm9ybVwiIGxldC1lcnJvcnM9XCJlcnJvcnNcIiBsZXQtbWV0aG9kcz1cIm1ldGhvZHNcIj5cbiAgICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICAgIDxub3ZvLXN3aXRjaFxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbD8ua2V5XCJcbiAgICAgICAgICBbdG9vbHRpcF09XCJjb250cm9sPy50b29sdGlwXCJcbiAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cImNvbnRyb2w/LnRvb2x0aXBQb3NpdGlvblwiXG4gICAgICAgICAgW3Rvb2x0aXBTaXplXT1cImNvbnRyb2w/LnRvb2x0aXBTaXplXCJcbiAgICAgICAgICBbdG9vbHRpcFByZWxpbmVdPVwiY29udHJvbD8udG9vbHRpcFByZWxpbmVcIlxuICAgICAgICAgIFtyZW1vdmVUb29sdGlwQXJyb3ddPVwiY29udHJvbD8ucmVtb3ZlVG9vbHRpcEFycm93XCJcbiAgICAgICAgICBbdG9vbHRpcEF1dG9Qb3NpdGlvbl09XCJjb250cm9sPy50b29sdGlwQXV0b1Bvc2l0aW9uXCJcbiAgICAgICAgICBbbm92b1BvcG92ZXJdPVwiY29udHJvbC5wb3BvdmVyQ29udGVudFwiXG4gICAgICAgICAgW3BvcG92ZXJIdG1sQ29udGVudF09XCJjb250cm9sLnBvcG92ZXJIdG1sQ29udGVudFwiXG4gICAgICAgICAgW3BvcG92ZXJUaXRsZV09XCJjb250cm9sLnBvcG92ZXJUaXRsZVwiXG4gICAgICAgICAgW3BvcG92ZXJQbGFjZW1lbnRdPVwiY29udHJvbC5wb3BvdmVyUGxhY2VtZW50XCJcbiAgICAgICAgICBbcG9wb3Zlck9uSG92ZXJdPVwiY29udHJvbC5wb3BvdmVyT25Ib3ZlclwiXG4gICAgICAgICAgW3BvcG92ZXJBbHdheXNdPVwiY29udHJvbC5wb3BvdmVyQWx3YXlzXCJcbiAgICAgICAgICBbcG9wb3ZlckRpc2FibGVkXT1cImNvbnRyb2wucG9wb3ZlckRpc2FibGVkXCJcbiAgICAgICAgICBbcG9wb3ZlckFuaW1hdGlvbl09XCJjb250cm9sLnBvcG92ZXJBbmltYXRpb25cIlxuICAgICAgICAgIFtwb3BvdmVyRGlzbWlzc1RpbWVvdXRdPVwiY29udHJvbC5wb3BvdmVyRGlzbWlzc1RpbWVvdXRcIlxuICAgICAgICA+PC9ub3ZvLXN3aXRjaD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8IS0tQ2hlY2tsaXN0LS0+XG4gICAgPG5nLXRlbXBsYXRlIG5vdm9UZW1wbGF0ZT1cImNoZWNrbGlzdFwiIGxldC1jb250cm9sIGxldC1mb3JtPVwiZm9ybVwiIGxldC1lcnJvcnM9XCJlcnJvcnNcIiBsZXQtbWV0aG9kcz1cIm1ldGhvZHNcIj5cbiAgICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICAgIDxub3ZvLWNoZWNrLWxpc3RcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICBbbmFtZV09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgW29wdGlvbnNdPVwiY29udHJvbD8ub3B0aW9uc1wiXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiY29udHJvbD8udG9vbHRpcFwiXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJjb250cm9sPy50b29sdGlwUG9zaXRpb25cIlxuICAgICAgICAgIFt0b29sdGlwU2l6ZV09XCJjb250cm9sPy50b29sdGlwU2l6ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBQcmVsaW5lXT1cImNvbnRyb2w/LnRvb2x0aXBQcmVsaW5lXCJcbiAgICAgICAgICBbcmVtb3ZlVG9vbHRpcEFycm93XT1cImNvbnRyb2w/LnJlbW92ZVRvb2x0aXBBcnJvd1wiXG4gICAgICAgICAgW3Rvb2x0aXBBdXRvUG9zaXRpb25dPVwiY29udHJvbD8udG9vbHRpcEF1dG9Qb3NpdGlvblwiXG4gICAgICAgICAgW25vdm9Qb3BvdmVyXT1cImNvbnRyb2wucG9wb3ZlckNvbnRlbnRcIlxuICAgICAgICAgIFtwb3BvdmVySHRtbENvbnRlbnRdPVwiY29udHJvbC5wb3BvdmVySHRtbENvbnRlbnRcIlxuICAgICAgICAgIFtwb3BvdmVyVGl0bGVdPVwiY29udHJvbC5wb3BvdmVyVGl0bGVcIlxuICAgICAgICAgIFtwb3BvdmVyUGxhY2VtZW50XT1cImNvbnRyb2wucG9wb3ZlclBsYWNlbWVudFwiXG4gICAgICAgICAgW3BvcG92ZXJPbkhvdmVyXT1cImNvbnRyb2wucG9wb3Zlck9uSG92ZXJcIlxuICAgICAgICAgIFtwb3BvdmVyQWx3YXlzXT1cImNvbnRyb2wucG9wb3ZlckFsd2F5c1wiXG4gICAgICAgICAgW3BvcG92ZXJEaXNhYmxlZF09XCJjb250cm9sLnBvcG92ZXJEaXNhYmxlZFwiXG4gICAgICAgICAgW3BvcG92ZXJBbmltYXRpb25dPVwiY29udHJvbC5wb3BvdmVyQW5pbWF0aW9uXCJcbiAgICAgICAgICBbcG9wb3ZlckRpc21pc3NUaW1lb3V0XT1cImNvbnRyb2wucG9wb3ZlckRpc21pc3NUaW1lb3V0XCJcbiAgICAgICAgICAob25TZWxlY3QpPVwibWV0aG9kcy5tb2RlbENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgPjwvbm92by1jaGVjay1saXN0PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwhLS1RdWlja05vdGUtLT5cbiAgICA8bmctdGVtcGxhdGUgbm92b1RlbXBsYXRlPVwicXVpY2stbm90ZVwiIGxldC1jb250cm9sIGxldC1mb3JtPVwiZm9ybVwiIGxldC1lcnJvcnM9XCJlcnJvcnNcIiBsZXQtbWV0aG9kcz1cIm1ldGhvZHNcIj5cbiAgICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICAgIDxub3ZvLXF1aWNrLW5vdGVcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICBbc3RhcnR1cEZvY3VzXT1cImNvbnRyb2w/LnN0YXJ0dXBGb2N1c1wiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbnRyb2w/LnBsYWNlaG9sZGVyXCJcbiAgICAgICAgICBbY29uZmlnXT1cImNvbnRyb2w/LmNvbmZpZ1wiXG4gICAgICAgICAgKGNoYW5nZSk9XCJtZXRob2RzLm1vZGVsQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgIFt0b29sdGlwXT1cImNvbnRyb2w/LnRvb2x0aXBcIlxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiY29udHJvbD8udG9vbHRpcFBvc2l0aW9uXCJcbiAgICAgICAgICBbdG9vbHRpcFNpemVdPVwiY29udHJvbD8udG9vbHRpcFNpemVcIlxuICAgICAgICAgIFt0b29sdGlwUHJlbGluZV09XCJjb250cm9sPy50b29sdGlwUHJlbGluZVwiXG4gICAgICAgICAgW3JlbW92ZVRvb2x0aXBBcnJvd109XCJjb250cm9sPy5yZW1vdmVUb29sdGlwQXJyb3dcIlxuICAgICAgICAgIFt0b29sdGlwQXV0b1Bvc2l0aW9uXT1cImNvbnRyb2w/LnRvb2x0aXBBdXRvUG9zaXRpb25cIlxuICAgICAgICAgIFtub3ZvUG9wb3Zlcl09XCJjb250cm9sLnBvcG92ZXJDb250ZW50XCJcbiAgICAgICAgICBbcG9wb3Zlckh0bWxDb250ZW50XT1cImNvbnRyb2wucG9wb3Zlckh0bWxDb250ZW50XCJcbiAgICAgICAgICBbcG9wb3ZlclRpdGxlXT1cImNvbnRyb2wucG9wb3ZlclRpdGxlXCJcbiAgICAgICAgICBbcG9wb3ZlclBsYWNlbWVudF09XCJjb250cm9sLnBvcG92ZXJQbGFjZW1lbnRcIlxuICAgICAgICAgIFtwb3BvdmVyT25Ib3Zlcl09XCJjb250cm9sLnBvcG92ZXJPbkhvdmVyXCJcbiAgICAgICAgICBbcG9wb3ZlckFsd2F5c109XCJjb250cm9sLnBvcG92ZXJBbHdheXNcIlxuICAgICAgICAgIFtwb3BvdmVyRGlzYWJsZWRdPVwiY29udHJvbC5wb3BvdmVyRGlzYWJsZWRcIlxuICAgICAgICAgIFtwb3BvdmVyQW5pbWF0aW9uXT1cImNvbnRyb2wucG9wb3ZlckFuaW1hdGlvblwiXG4gICAgICAgICAgW3BvcG92ZXJEaXNtaXNzVGltZW91dF09XCJjb250cm9sLnBvcG92ZXJEaXNtaXNzVGltZW91dFwiXG4gICAgICAgID48L25vdm8tcXVpY2stbm90ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIE5vdm9Db250cm9sVGVtcGxhdGVzIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBWaWV3Q2hpbGRyZW4oTm92b1RlbXBsYXRlKVxuICBkZWZhdWx0VGVtcGxhdGVzOiBRdWVyeUxpc3Q8Tm92b1RlbXBsYXRlPjtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0ZW1wbGF0ZXM6IE5vdm9UZW1wbGF0ZVNlcnZpY2UpIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRlZmF1bHRUZW1wbGF0ZXMgJiYgdGhpcy5kZWZhdWx0VGVtcGxhdGVzLmxlbmd0aCkge1xuICAgICAgdGhpcy5kZWZhdWx0VGVtcGxhdGVzLmZvckVhY2goKHRlbXBsYXRlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXMuYWRkRGVmYXVsdCh0ZW1wbGF0ZS5uYW1lLCB0ZW1wbGF0ZS50ZW1wbGF0ZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
1455
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJvbFRlbXBsYXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25vdm8tZWxlbWVudHMvc3JjL2VsZW1lbnRzL2Zvcm0vQ29udHJvbFRlbXBsYXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrc0I3RCxNQUFNLE9BQU8sb0JBQW9CO0lBRy9CLFlBQW9CLFNBQThCO1FBQTlCLGNBQVMsR0FBVCxTQUFTLENBQXFCO0lBQUcsQ0FBQztJQUV0RCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzFELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtnQkFDOUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUQsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzs4R0FYVSxvQkFBb0I7a0dBQXBCLG9CQUFvQixtR0FDakIsWUFBWSxnREFoc0JoQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2ckJUOzsyRkFFVSxvQkFBb0I7a0JBanNCaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNnJCVDtpQkFDRjt3RkFHQyxnQkFBZ0I7c0JBRGYsWUFBWTt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm92b1RlbXBsYXRlIH0gZnJvbSAnbm92by1lbGVtZW50cy9lbGVtZW50cy9jb21tb24nO1xuaW1wb3J0IHsgTm92b1RlbXBsYXRlU2VydmljZSB9IGZyb20gJ25vdm8tZWxlbWVudHMvc2VydmljZXMnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbm92by1jb250cm9sLXRlbXBsYXRlcycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPCEtLS1SZWFkb25seS0tLT5cbiAgICA8bmctdGVtcGxhdGUgbm92b1RlbXBsYXRlPVwicmVhZC1vbmx5XCIgbGV0LWZvcm09XCJmb3JtXCIgbGV0LWNvbnRyb2w+XG4gICAgICA8ZGl2Pnt7IGZvcm0uZ2V0UmF3VmFsdWUoKVtjb250cm9sLmtleV0gfX08L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwhLS1UZXh0Ym94LS0tPlxuICAgIDxuZy10ZW1wbGF0ZSBub3ZvVGVtcGxhdGU9XCJ0ZXh0Ym94XCIgbGV0LWNvbnRyb2wgbGV0LWZvcm09XCJmb3JtXCIgbGV0LWVycm9ycz1cImVycm9yc1wiIGxldC1tZXRob2RzPVwibWV0aG9kc1wiPlxuICAgICAgPGRpdlxuICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgICAgICBjbGFzcz1cIm5vdm8tY29udHJvbC1pbnB1dC1jb250YWluZXIgbm92by1jb250cm9sLWlucHV0LXdpdGgtbGFiZWxcIlxuICAgICAgICBbdG9vbHRpcF09XCJjb250cm9sPy50b29sdGlwXCJcbiAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJjb250cm9sPy50b29sdGlwUG9zaXRpb25cIlxuICAgICAgICBbdG9vbHRpcFNpemVdPVwiY29udHJvbD8udG9vbHRpcFNpemVcIlxuICAgICAgICBbdG9vbHRpcFByZWxpbmVdPVwiY29udHJvbD8udG9vbHRpcFByZWxpbmVcIlxuICAgICAgICBbcmVtb3ZlVG9vbHRpcEFycm93XT1cImNvbnRyb2w/LnJlbW92ZVRvb2x0aXBBcnJvd1wiXG4gICAgICAgIFt0b29sdGlwQXV0b1Bvc2l0aW9uXT1cImNvbnRyb2w/LnRvb2x0aXBBdXRvUG9zaXRpb25cIlxuICAgICAgICBbbm92b1BvcG92ZXJdPVwiY29udHJvbC5wb3BvdmVyQ29udGVudFwiXG4gICAgICAgIFtwb3BvdmVySHRtbENvbnRlbnRdPVwiY29udHJvbC5wb3BvdmVySHRtbENvbnRlbnRcIlxuICAgICAgICBbcG9wb3ZlclRpdGxlXT1cImNvbnRyb2wucG9wb3ZlclRpdGxlXCJcbiAgICAgICAgW3BvcG92ZXJQbGFjZW1lbnRdPVwiY29udHJvbC5wb3BvdmVyUGxhY2VtZW50XCJcbiAgICAgICAgW3BvcG92ZXJPbkhvdmVyXT1cImNvbnRyb2wucG9wb3Zlck9uSG92ZXJcIlxuICAgICAgICBbcG9wb3ZlckFsd2F5c109XCJjb250cm9sLnBvcG92ZXJBbHdheXNcIlxuICAgICAgICBbcG9wb3ZlckRpc2FibGVkXT1cImNvbnRyb2wucG9wb3ZlckRpc2FibGVkXCJcbiAgICAgICAgW3BvcG92ZXJBbmltYXRpb25dPVwiY29udHJvbC5wb3BvdmVyQW5pbWF0aW9uXCJcbiAgICAgICAgW3BvcG92ZXJEaXNtaXNzVGltZW91dF09XCJjb250cm9sLnBvcG92ZXJEaXNtaXNzVGltZW91dFwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICpuZ0lmPVwiY29udHJvbD8udHlwZSAhPT0gJ251bWJlcicgJiYgY29udHJvbD8udGV4dE1hc2tFbmFibGVkXCJcbiAgICAgICAgICBbaW1hc2tdPVwiY29udHJvbC5tYXNrT3B0aW9uc1wiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgW2lkXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICBbdHlwZV09XCJjb250cm9sPy50eXBlXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29udHJvbD8ucGxhY2Vob2xkZXJcIlxuICAgICAgICAgIChhY2NlcHQpPVwibWV0aG9kcy5oYW5kbGVBY2NlcHQoJGV2ZW50KVwiXG4gICAgICAgICAgKGZvY3VzKT1cIm1ldGhvZHMuaGFuZGxlRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgICAgKGJsdXIpPVwibWV0aG9kcy5oYW5kbGVCbHVyKCRldmVudClcIlxuICAgICAgICAgIGF1dG9jb21wbGV0ZVxuICAgICAgICAvPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAqbmdJZj1cImNvbnRyb2w/LnR5cGUgIT09ICdudW1iZXInICYmICFjb250cm9sPy50ZXh0TWFza0VuYWJsZWRcIlxuICAgICAgICAgIFtjbGFzcy5tYXhsZW5ndGgtZXJyb3JdPVwiZXJyb3JzPy5tYXhsZW5ndGhcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5rZXlcIlxuICAgICAgICAgIFtpZF09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgW3R5cGVdPVwiY29udHJvbD8udHlwZVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbnRyb2w/LnBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAoaW5wdXQpPVwibWV0aG9kcy5lbWl0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgIFttYXhsZW5ndGhdPVwiY29udHJvbD8ubWF4bGVuZ3RoXCJcbiAgICAgICAgICAoZm9jdXMpPVwibWV0aG9kcy5oYW5kbGVGb2N1cygkZXZlbnQpXCJcbiAgICAgICAgICAoYmx1cik9XCJtZXRob2RzLmhhbmRsZUJsdXIoJGV2ZW50KVwiXG4gICAgICAgICAgYXV0b2NvbXBsZXRlXG4gICAgICAgIC8+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICpuZ0lmPVwiY29udHJvbD8udHlwZSA9PT0gJ251bWJlcicgJiYgY29udHJvbD8uc3ViVHlwZSAhPT0gJ3BlcmNlbnRhZ2UnXCJcbiAgICAgICAgICBbY2xhc3MubWF4bGVuZ3RoLWVycm9yXT1cImVycm9ycz8ubWF4bGVuZ3RoXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICBbaWRdPVwiY29udHJvbC5rZXlcIlxuICAgICAgICAgIFt0eXBlXT1cImNvbnRyb2w/LnR5cGVcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb250cm9sPy5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgKGtleWRvd24pPVwibWV0aG9kcy5yZXN0cmljdEtleXMoJGV2ZW50KVwiXG4gICAgICAgICAgKGlucHV0KT1cIm1ldGhvZHMuZW1pdENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICBbbWF4bGVuZ3RoXT1cImNvbnRyb2w/Lm1heGxlbmd0aFwiXG4gICAgICAgICAgKGZvY3VzKT1cIm1ldGhvZHMuaGFuZGxlRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgICAgKGJsdXIpPVwibWV0aG9kcy5oYW5kbGVCbHVyKCRldmVudClcIlxuICAgICAgICAgIHN0ZXA9XCJhbnlcIlxuICAgICAgICAgIChtb3VzZXdoZWVsKT1cIm51bWJlcklucHV0LmJsdXIoKVwiXG4gICAgICAgICAgI251bWJlcklucHV0XG4gICAgICAgIC8+XG4gICAgICAgIDwhLS0gdGhlIHBlcmNlbnRhZ2UgaW5wdXQgZG9lcyBub3QgdXNlIGZvcm1Db250cm9sTmFtZSBsaWtlIGEgbm9ybWFsIHJlYWN0aXZlIGlucHV0IGJlY2F1c2UgaW5zdGVhZCBvZlxuICAgICAgICAgIHNldHRpbmcgdGhlIGZsb2F0aW5nIHBvaW50IHZhbHVlIGRpcmVjdGx5LCBpdCBpcyBtdWx0aXBsaWVkIGJ5IDEwMCBpbnRvIGEgcGVyY2VudGFnZSB2YWx1ZSAtLT5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgKm5nSWY9XCJjb250cm9sPy50eXBlID09PSAnbnVtYmVyJyAmJiBjb250cm9sPy5zdWJUeXBlID09PSAncGVyY2VudGFnZSdcIlxuICAgICAgICAgIFtpZF09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgW3R5cGVdPVwiY29udHJvbD8udHlwZVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbnRyb2w/LnBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAoa2V5ZG93bik9XCJtZXRob2RzLnJlc3RyaWN0S2V5cygkZXZlbnQpXCJcbiAgICAgICAgICBbdmFsdWVdPVwiY29udHJvbD8ucGVyY2VudFZhbHVlXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiY29udHJvbD8ucmVhZE9ubHlcIlxuICAgICAgICAgIChpbnB1dCk9XCJtZXRob2RzLmhhbmRsZVBlcmNlbnRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgKGZvY3VzKT1cIm1ldGhvZHMuaGFuZGxlRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgICAgKGJsdXIpPVwibWV0aG9kcy5oYW5kbGVCbHVyKCRldmVudClcIlxuICAgICAgICAgIHN0ZXA9XCJhbnlcIlxuICAgICAgICAgIChtb3VzZXdoZWVsKT1cInBlcmNlbnRJbnB1dC5ibHVyKClcIlxuICAgICAgICAgICNwZXJjZW50SW5wdXRcbiAgICAgICAgLz5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiaW5wdXQtbGFiZWxcIiAqbmdJZj1cImNvbnRyb2w/LnN1YlR5cGUgPT09ICdjdXJyZW5jeSdcIj57eyBjb250cm9sLmN1cnJlbmN5Rm9ybWF0IH19PC9sYWJlbD5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiaW5wdXQtbGFiZWxcIiAqbmdJZj1cImNvbnRyb2w/LnN1YlR5cGUgPT09ICdwZXJjZW50YWdlJ1wiPiU8L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwhLS1UZXh0YXJlYS0tLT5cbiAgICA8bmctdGVtcGxhdGUgbm92b1RlbXBsYXRlPVwidGV4dC1hcmVhXCIgbGV0LWNvbnRyb2wgbGV0LWZvcm09XCJmb3JtXCIgbGV0LWVycm9ycz1cImVycm9yc1wiIGxldC1tZXRob2RzPVwibWV0aG9kc1wiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInRleHRhcmVhLWNvbnRhaW5lclwiXG4gICAgICAgIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgICAgIFt0b29sdGlwXT1cImNvbnRyb2w/LnRvb2x0aXBcIlxuICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cImNvbnRyb2w/LnRvb2x0aXBQb3NpdGlvblwiXG4gICAgICAgIFt0b29sdGlwU2l6ZV09XCJjb250cm9sPy50b29sdGlwU2l6ZVwiXG4gICAgICAgIFt0b29sdGlwUHJlbGluZV09XCJjb250cm9sPy50b29sdGlwUHJlbGluZVwiXG4gICAgICAgIFtyZW1vdmVUb29sdGlwQXJyb3ddPVwiY29udHJvbD8ucmVtb3ZlVG9vbHRpcEFycm93XCJcbiAgICAgICAgW3Rvb2x0aXBBdXRvUG9zaXRpb25dPVwiY29udHJvbD8udG9vbHRpcEF1dG9Qb3NpdGlvblwiXG4gICAgICAgIFtub3ZvUG9wb3Zlcl09XCJjb250cm9sLnBvcG92ZXJDb250ZW50XCJcbiAgICAgICAgW3BvcG92ZXJIdG1sQ29udGVudF09XCJjb250cm9sLnBvcG92ZXJIdG1sQ29udGVudFwiXG4gICAgICAgIFtwb3BvdmVyVGl0bGVdPVwiY29udHJvbC5wb3BvdmVyVGl0bGVcIlxuICAgICAgICBbcG9wb3ZlclBsYWNlbWVudF09XCJjb250cm9sLnBvcG92ZXJQbGFjZW1lbnRcIlxuICAgICAgICBbcG9wb3Zlck9uSG92ZXJdPVwiY29udHJvbC5wb3BvdmVyT25Ib3ZlclwiXG4gICAgICAgIFtwb3BvdmVyQWx3YXlzXT1cImNvbnRyb2wucG9wb3ZlckFsd2F5c1wiXG4gICAgICAgIFtwb3BvdmVyRGlzYWJsZWRdPVwiY29udHJvbC5wb3BvdmVyRGlzYWJsZWRcIlxuICAgICAgICBbcG9wb3ZlckFuaW1hdGlvbl09XCJjb250cm9sLnBvcG92ZXJBbmltYXRpb25cIlxuICAgICAgICBbcG9wb3ZlckRpc21pc3NUaW1lb3V0XT1cImNvbnRyb2wucG9wb3ZlckRpc21pc3NUaW1lb3V0XCJcbiAgICAgID5cbiAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgW2NsYXNzLm1heGxlbmd0aC1lcnJvcl09XCJlcnJvcnM/Lm1heGxlbmd0aFwiXG4gICAgICAgICAgW25hbWVdPVwiY29udHJvbC5rZXlcIlxuICAgICAgICAgIFthdHRyLmlkXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29udHJvbC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgYXV0b3NpemVcbiAgICAgICAgICAoaW5wdXQpPVwibWV0aG9kcy5oYW5kbGVUZXh0QXJlYUlucHV0KCRldmVudClcIlxuICAgICAgICAgIChmb2N1cyk9XCJtZXRob2RzLmhhbmRsZUZvY3VzKCRldmVudClcIlxuICAgICAgICAgIChibHVyKT1cIm1ldGhvZHMuaGFuZGxlQmx1cigkZXZlbnQpXCJcbiAgICAgICAgICBbbWF4bGVuZ3RoXT1cImNvbnRyb2w/Lm1heGxlbmd0aFwiXG4gICAgICAgID48L3RleHRhcmVhPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwhLS1FZGl0b3ItLT5cbiAgICA8bmctdGVtcGxhdGUgbm92b1RlbXBsYXRlPVwiZWRpdG9yXCIgbGV0LWNvbnRyb2wgbGV0LWZvcm09XCJmb3JtXCIgbGV0LWVycm9ycz1cImVycm9yc1wiIGxldC1tZXRob2RzPVwibWV0aG9kc1wiPlxuICAgICAgPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgICAgICAgPG5vdm8tZWRpdG9yXG4gICAgICAgICAgW25hbWVdPVwiY29udHJvbC5rZXlcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5rZXlcIlxuICAgICAgICAgIFtzdGFydHVwRm9jdXNdPVwiY29udHJvbC5zdGFydHVwRm9jdXNcIlxuICAgICAgICAgIFttaW5pbWFsXT1cImNvbnRyb2wubWluaW1hbFwiXG4gICAgICAgICAgW2ZpbGVCcm93c2VySW1hZ2VVcGxvYWRVcmxdPVwiY29udHJvbC5maWxlQnJvd3NlckltYWdlVXBsb2FkVXJsXCJcbiAgICAgICAgICAoZm9jdXMpPVwibWV0aG9kcy5oYW5kbGVGb2N1cygkZXZlbnQpXCJcbiAgICAgICAgICAoYmx1cik9XCJtZXRob2RzLmhhbmRsZUJsdXIoJGV2ZW50KVwiXG4gICAgICAgICAgW2NvbmZpZ109XCJjb250cm9sLmNvbmZpZ1wiXG4gICAgICAgID48L25vdm8tZWRpdG9yPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwhLS1BY2VFZGl0b3ItLT5cbiAgICA8bmctdGVtcGxhdGUgbm92b1RlbXBsYXRlPVwiYWNlLWVkaXRvclwiIGxldC1jb250cm9sIGxldC1mb3JtPVwiZm9ybVwiIGxldC1lcnJvcnM9XCJlcnJvcnNcIiBsZXQtbWV0aG9kcz1cIm1ldGhvZHNcIj5cbiAgICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICAgIDxub3ZvLWFjZS1lZGl0b3JcbiAgICAgICAgICBbbmFtZV09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgKGZvY3VzKT1cIm1ldGhvZHMuaGFuZGxlRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgICAgKGJsdXIpPVwibWV0aG9kcy5oYW5kbGVCbHVyKCRldmVudClcIlxuICAgICAgICA+PC9ub3ZvLWFjZS1lZGl0b3I+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPCEtLUNvZGVFZGl0b3ItLT5cbiAgICA8bmctdGVtcGxhdGUgbm92b1RlbXBsYXRlPVwiY29kZS1lZGl0b3JcIiBsZXQtY29udHJvbCBsZXQtZm9ybT1cImZvcm1cIiBsZXQtZXJyb3JzPVwiZXJyb3JzXCIgbGV0LW1ldGhvZHM9XCJtZXRob2RzXCI+XG4gICAgICA8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgICAgICA8bm92by1jb2RlLWVkaXRvclxuICAgICAgICAgIFtuYW1lXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICAoZm9jdXMpPVwibWV0aG9kcy5oYW5kbGVGb2N1cygkZXZlbnQpXCJcbiAgICAgICAgICAoYmx1cik9XCJtZXRob2RzLmhhbmRsZUJsdXIoJGV2ZW50KVwiXG4gICAgICAgID48L25vdm8tY29kZS1lZGl0b3I+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPCEtLUhUTUw1IFNlbGVjdC0tPlxuICAgIDxuZy10ZW1wbGF0ZSBub3ZvVGVtcGxhdGU9XCJuYXRpdmUtc2VsZWN0XCIgbGV0LWNvbnRyb2wgbGV0LWZvcm09XCJmb3JtXCIgbGV0LWVycm9ycz1cImVycm9yc1wiIGxldC1tZXRob2RzPVwibWV0aG9kc1wiPlxuICAgICAgPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgICAgICAgPHNlbGVjdFxuICAgICAgICAgIFtpZF09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiY29udHJvbC50b29sdGlwXCJcbiAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cImNvbnRyb2wudG9vbHRpcFBvc2l0aW9uXCJcbiAgICAgICAgICBbdG9vbHRpcFNpemVdPVwiY29udHJvbD8udG9vbHRpcFNpemVcIlxuICAgICAgICAgIFt0b29sdGlwUHJlbGluZV09XCJjb250cm9sPy50b29sdGlwUHJlbGluZVwiXG4gICAgICAgICAgW3JlbW92ZVRvb2x0aXBBcnJvd109XCJjb250cm9sPy5yZW1vdmVUb29sdGlwQXJyb3dcIlxuICAgICAgICAgIFt0b29sdGlwQXV0b1Bvc2l0aW9uXT1cImNvbnRyb2w/LnRvb2x0aXBBdXRvUG9zaXRpb25cIlxuICAgICAgICAgIFtub3ZvUG9wb3Zlcl09XCJjb250cm9sLnBvcG92ZXJDb250ZW50XCJcbiAgICAgICAgICBbcG9wb3Zlckh0bWxDb250ZW50XT1cImNvbnRyb2wucG9wb3Zlckh0bWxDb250ZW50XCJcbiAgICAgICAgICBbcG9wb3ZlclRpdGxlXT1cImNvbnRyb2wucG9wb3ZlclRpdGxlXCJcbiAgICAgICAgICBbcG9wb3ZlclBsYWNlbWVudF09XCJjb250cm9sLnBvcG92ZXJQbGFjZW1lbnRcIlxuICAgICAgICAgIFtwb3BvdmVyT25Ib3Zlcl09XCJjb250cm9sLnBvcG92ZXJPbkhvdmVyXCJcbiAgICAgICAgICBbcG9wb3ZlckFsd2F5c109XCJjb250cm9sLnBvcG92ZXJBbHdheXNcIlxuICAgICAgICAgIFtwb3BvdmVyRGlzYWJsZWRdPVwiY29udHJvbC5wb3BvdmVyRGlzYWJsZWRcIlxuICAgICAgICAgIFtwb3BvdmVyQW5pbWF0aW9uXT1cImNvbnRyb2wucG9wb3ZlckFuaW1hdGlvblwiXG4gICAgICAgICAgW3BvcG92ZXJEaXNtaXNzVGltZW91dF09XCJjb250cm9sLnBvcG92ZXJEaXNtaXNzVGltZW91dFwiXG4gICAgICAgID5cbiAgICAgICAgICA8b3B0aW9uICpuZ0lmPVwiY29udHJvbC5wbGFjZWhvbGRlclwiIHZhbHVlPVwiXCIgZGlzYWJsZWQgc2VsZWN0ZWQgaGlkZGVuPnt7IGNvbnRyb2wucGxhY2Vob2xkZXIgfX08L29wdGlvbj5cbiAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBvcHQgb2YgY29udHJvbC5vcHRpb25zXCIgW3ZhbHVlXT1cIm9wdC5rZXlcIj57eyBvcHQudmFsdWUgfX08L29wdGlvbj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPCEtLUZpbGUtLT5cbiAgICA8bmctdGVtcGxhdGUgbm92b1RlbXBsYXRlPVwiZmlsZVwiIGxldC1jb250cm9sIGxldC1mb3JtPVwiZm9ybVwiIGxldC1lcnJvcnM9XCJlcnJvcnNcIiBsZXQtbWV0aG9kcz1cIm1ldGhvZHNcIj5cbiAgICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICAgIDxub3ZvLWZpbGUtaW5wdXRcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICBbaWRdPVwiY29udHJvbC5rZXlcIlxuICAgICAgICAgIFtuYW1lXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29udHJvbC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgW3ZhbHVlXT1cImNvbnRyb2wudmFsdWVcIlxuICAgICAgICAgIFttdWx0aXBsZV09XCJjb250cm9sLm11bHRpcGxlXCJcbiAgICAgICAgICBbbGF5b3V0T3B0aW9uc109XCJjb250cm9sLmxheW91dE9wdGlvbnNcIlxuICAgICAgICAgIFt0b29sdGlwXT1cImNvbnRyb2wudG9vbHRpcFwiXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJjb250cm9sLnRvb2x0aXBQb3NpdGlvblwiXG4gICAgICAgICAgW3Rvb2x0aXBTaXplXT1cImNvbnRyb2w/LnRvb2x0aXBTaXplXCJcbiAgICAgICAgICBbdG9vbHRpcFByZWxpbmVdPVwiY29udHJvbD8udG9vbHRpcFByZWxpbmVcIlxuICAgICAgICAgIFtyZW1vdmVUb29sdGlwQXJyb3ddPVwiY29udHJvbD8ucmVtb3ZlVG9vbHRpcEFycm93XCJcbiAgICAgICAgICBbdG9vbHRpcEF1dG9Qb3NpdGlvbl09XCJjb250cm9sPy50b29sdGlwQXV0b1Bvc2l0aW9uXCJcbiAgICAgICAgICBbbm92b1BvcG92ZXJdPVwiY29udHJvbC5wb3BvdmVyQ29udGVudFwiXG4gICAgICAgICAgW3BvcG92ZXJIdG1sQ29udGVudF09XCJjb250cm9sLnBvcG92ZXJIdG1sQ29udGVudFwiXG4gICAgICAgICAgW3BvcG92ZXJUaXRsZV09XCJjb250cm9sLnBvcG92ZXJUaXRsZVwiXG4gICAgICAgICAgW3BvcG92ZXJQbGFjZW1lbnRdPVwiY29udHJvbC5wb3BvdmVyUGxhY2VtZW50XCJcbiAgICAgICAgICBbcG9wb3Zlck9uSG92ZXJdPVwiY29udHJvbC5wb3BvdmVyT25Ib3ZlclwiXG4gICAgICAgICAgW3BvcG92ZXJBbHdheXNdPVwiY29udHJvbC5wb3BvdmVyQWx3YXlzXCJcbiAgICAgICAgICBbcG9wb3ZlckRpc2FibGVkXT1cImNvbnRyb2wucG9wb3ZlckRpc2FibGVkXCJcbiAgICAgICAgICBbcG9wb3ZlckFuaW1hdGlvbl09XCJjb250cm9sLnBvcG92ZXJBbmltYXRpb25cIlxuICAgICAgICAgIFtwb3BvdmVyRGlzbWlzc1RpbWVvdXRdPVwiY29udHJvbC5wb3BvdmVyRGlzbWlzc1RpbWVvdXRcIlxuICAgICAgICAgIChlZGl0KT1cIm1ldGhvZHMuaGFuZGxlRWRpdCgkZXZlbnQpXCJcbiAgICAgICAgICAoc2F2ZSk9XCJtZXRob2RzLmhhbmRsZVNhdmUoJGV2ZW50KVwiXG4gICAgICAgICAgKGRlbGV0ZSk9XCJtZXRob2RzLmhhbmRsZURlbGV0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAodXBsb2FkKT1cIm1ldGhvZHMuaGFuZGxlVXBsb2FkKCRldmVudClcIlxuICAgICAgICA+PC9ub3ZvLWZpbGUtaW5wdXQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPCEtLVRpbGVzLS0+XG4gICAgPG5nLXRlbXBsYXRlIG5vdm9UZW1wbGF0ZT1cInRpbGVzXCIgbGV0LWNvbnRyb2wgbGV0LWZvcm09XCJmb3JtXCIgbGV0LWVycm9ycz1cImVycm9yc1wiIGxldC1tZXRob2RzPVwibWV0aG9kc1wiPlxuICAgICAgPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgICAgICAgPG5vdm8tdGlsZXNcbiAgICAgICAgICBbb3B0aW9uc109XCJjb250cm9sLm9wdGlvbnNcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5rZXlcIlxuICAgICAgICAgIChvbkNoYW5nZSk9XCJtZXRob2RzLm1vZGVsQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgIFt0b29sdGlwXT1cImNvbnRyb2wudG9vbHRpcFwiXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJjb250cm9sLnRvb2x0aXBQb3NpdGlvblwiXG4gICAgICAgICAgW3Rvb2x0aXBTaXplXT1cImNvbnRyb2w/LnRvb2x0aXBTaXplXCJcbiAgICAgICAgICBbdG9vbHRpcFByZWxpbmVdPVwiY29udHJvbD8udG9vbHRpcFByZWxpbmVcIlxuICAgICAgICAgIFtyZW1vdmVUb29sdGlwQXJyb3ddPVwiY29udHJvbD8ucmVtb3ZlVG9vbHRpcEFycm93XCJcbiAgICAgICAgICBbdG9vbHRpcEF1dG9Qb3NpdGlvbl09XCJjb250cm9sPy50b29sdGlwQXV0b1Bvc2l0aW9uXCJcbiAgICAgICAgICBbbm92b1BvcG92ZXJdPVwiY29udHJvbC5wb3BvdmVyQ29udGVudFwiXG4gICAgICAgICAgW3BvcG92ZXJIdG1sQ29udGVudF09XCJjb250cm9sLnBvcG92ZXJIdG1sQ29udGVudFwiXG4gICAgICAgICAgW3BvcG92ZXJUaXRsZV09XCJjb250cm9sLnBvcG92ZXJUaXRsZVwiXG4gICAgICAgICAgW3BvcG92ZXJQbGFjZW1lbnRdPVwiY29udHJvbC5wb3BvdmVyUGxhY2VtZW50XCJcbiAgICAgICAgICBbcG9wb3Zlck9uSG92ZXJdPVwiY29udHJvbC5wb3BvdmVyT25Ib3ZlclwiXG4gICAgICAgICAgW3BvcG92ZXJBbHdheXNdPVwiY29udHJvbC5wb3BvdmVyQWx3YXlzXCJcbiAgICAgICAgICBbcG9wb3ZlckRpc2FibGVkXT1cImNvbnRyb2wucG9wb3ZlckRpc2FibGVkXCJcbiAgICAgICAgICBbcG9wb3ZlckFuaW1hdGlvbl09XCJjb250cm9sLnBvcG92ZXJBbmltYXRpb25cIlxuICAgICAgICAgIFtwb3BvdmVyRGlzbWlzc1RpbWVvdXRdPVwiY29udHJvbC5wb3BvdmVyRGlzbWlzc1RpbWVvdXRcIlxuICAgICAgICAgIFtjb250cm9sRGlzYWJsZWRdPVwiY29udHJvbC5kaXNhYmxlZFwiXG4gICAgICAgID48L25vdm8tdGlsZXM+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPCEtLVBpY2tlci0tPlxuICAgIDxuZy10ZW1wbGF0ZSBub3ZvVGVtcGxhdGU9XCJwaWNrZXJcIiBsZXQtY29udHJvbCBsZXQtZm9ybT1cImZvcm1cIiBsZXQtZXJyb3JzPVwiZXJyb3JzXCIgbGV0LW1ldGhvZHM9XCJtZXRob2RzXCI+XG4gICAgICA8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwibm92by1jb250cm9sLWlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgICA8bm92by1waWNrZXJcbiAgICAgICAgICBbY29uZmlnXT1cImNvbnRyb2wuY29uZmlnXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29udHJvbC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgW3BhcmVudFNjcm9sbFNlbGVjdG9yXT1cImNvbnRyb2wucGFyZW50U2Nyb2xsU2VsZWN0b3JcIlxuICAgICAgICAgIFthbGxvd0N1c3RvbVZhbHVlc109XCJjb250cm9sLmNvbmZpZy5hbGxvd0N1c3RvbVZhbHVlc1wiXG4gICAgICAgICAgKm5nSWY9XCIhY29udHJvbC5tdWx0aXBsZVwiXG4gICAgICAgICAgKHNlbGVjdCk9XCJtZXRob2RzLm1vZGVsQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgIChjaGFuZ2VkKT1cIm1ldGhvZHMubW9kZWxDaGFuZ2VXaXRoUmF3KCRldmVudClcIlxuICAgICAgICAgICh0eXBpbmcpPVwibWV0aG9kcy5oYW5kbGVUeXBpbmcoJGV2ZW50KVwiXG4gICAgICAgICAgKGZvY3VzKT1cIm1ldGhvZHMuaGFuZGxlRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgICAgKGJsdXIpPVwibWV0aG9kcy5oYW5kbGVCbHVyKCRldmVudClcIlxuICAgICAgICAgIFt0b29sdGlwXT1cImNvbnRyb2wudG9vbHRpcFwiXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJjb250cm9sLnRvb2x0aXBQb3NpdGlvblwiXG4gICAgICAgICAgW3Rvb2x0aXBTaXplXT1cImNvbnRyb2w/LnRvb2x0aXBTaXplXCJcbiAgICAgICAgICBbdG9vbHRpcFByZWxpbmVdPVwiY29udHJvbD8udG9vbHRpcFByZWxpbmVcIlxuICAgICAgICAgIFtyZW1vdmVUb29sdGlwQXJyb3ddPVwiY29udHJvbD8ucmVtb3ZlVG9vbHRpcEFycm93XCJcbiAgICAgICAgICBbdG9vbHRpcEF1dG9Qb3NpdGlvbl09XCJjb250cm9sPy50b29sdGlwQXV0b1Bvc2l0aW9uXCJcbiAgICAgICAgICBbbm92b1BvcG92ZXJdPVwiY29udHJvbC5wb3BvdmVyQ29udGVudFwiXG4gICAgICAgICAgW3BvcG92ZXJIdG1sQ29udGVudF09XCJjb250cm9sLnBvcG92ZXJIdG1sQ29udGVudFwiXG4gICAgICAgICAgW3BvcG92ZXJUaXRsZV09XCJjb250cm9sLnBvcG92ZXJUaXRsZVwiXG4gICAgICAgICAgW3BvcG92ZXJQbGFjZW1lbnRdPVwiY29udHJvbC5wb3BvdmVyUGxhY2VtZW50XCJcbiAgICAgICAgICBbcG9wb3Zlck9uSG92ZXJdPVwiY29udHJvbC5wb3BvdmVyT25Ib3ZlclwiXG4gICAgICAgICAgW3BvcG92ZXJBbHdheXNdPVwiY29udHJvbC5wb3BvdmVyQWx3YXlzXCJcbiAgICAgICAgICBbcG9wb3ZlckRpc2FibGVkXT1cImNvbnRyb2wucG9wb3ZlckRpc2FibGVkXCJcbiAgICAgICAgICBbcG9wb3ZlckFuaW1hdGlvbl09XCJjb250cm9sLnBvcG92ZXJBbmltYXRpb25cIlxuICAgICAgICAgIFtwb3BvdmVyRGlzbWlzc1RpbWVvdXRdPVwiY29udHJvbC5wb3BvdmVyRGlzbWlzc1RpbWVvdXRcIlxuICAgICAgICA+PC9ub3ZvLXBpY2tlcj5cbiAgICAgICAgPG5vdm8tY2hpcHNcbiAgICAgICAgICBbc291cmNlXT1cImNvbnRyb2wuY29uZmlnXCJcbiAgICAgICAgICBbdHlwZV09XCJjb250cm9sLmNvbmZpZy50eXBlXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29udHJvbC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgW21heGxlbmd0aF09XCJjb250cm9sPy5tYXhsZW5ndGhcIlxuICAgICAgICAgIFthbGxvd0N1c3RvbVZhbHVlc109XCJjb250cm9sLmNvbmZpZy5hbGxvd0N1c3RvbVZhbHVlc1wiXG4gICAgICAgICAgKm5nSWY9XCJjb250cm9sLm11bHRpcGxlICYmICFjb250cm9sLmNvbmZpZy5jb2x1bW5zXCJcbiAgICAgICAgICBbY2xvc2VPblNlbGVjdF09XCJjb250cm9sLmNsb3NlT25TZWxlY3RcIlxuICAgICAgICAgIChjaGFuZ2VkKT1cIm1ldGhvZHMubW9kZWxDaGFuZ2VXaXRoUmF3KCRldmVudClcIlxuICAgICAgICAgICh0eXBpbmcpPVwibWV0aG9kcy5oYW5kbGVUeXBpbmcoJGV2ZW50KVwiXG4gICAgICAgICAgKGZvY3VzKT1cIm1ldGhvZHMuaGFuZGxlRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgICAgKGJsdXIpPVwibWV0aG9kcy5oYW5kbGVCbHVyKCRldmVudClcIlxuICAgICAgICAgIFt0b29sdGlwXT1cImNvbnRyb2wudG9vbHRpcFwiXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJjb250cm9sLnRvb2x0aXBQb3NpdGlvblwiXG4gICAgICAgICAgW3Rvb2x0aXBTaXplXT1cImNvbnRyb2w/LnRvb2x0aXBTaXplXCJcbiAgICAgICAgICBbdG9vbHRpcFByZWxpbmVdPVwiY29udHJvbD8udG9vbHRpcFByZWxpbmVcIlxuICAgICAgICAgIFtyZW1vdmVUb29sdGlwQXJyb3ddPVwiY29udHJvbD8ucmVtb3ZlVG9vbHRpcEFycm93XCJcbiAgICAgICAgICBbdG9vbHRpcEF1dG9Qb3NpdGlvbl09XCJjb250cm9sPy50b29sdGlwQXV0b1Bvc2l0aW9uXCJcbiAgICAgICAgICBbbm92b1BvcG92ZXJdPVwiY29udHJvbC5wb3BvdmVyQ29udGVudFwiXG4gICAgICAgICAgW3BvcG92ZXJIdG1sQ29udGVudF09XCJjb250cm9sLnBvcG92ZXJIdG1sQ29udGVudFwiXG4gICAgICAgICAgW3BvcG92ZXJUaXRsZV09XCJjb250cm9sLnBvcG92ZXJUaXRsZVwiXG4gICAgICAgICAgW3BvcG92ZXJQbGFjZW1lbnRdPVwiY29udHJvbC5wb3BvdmVyUGxhY2VtZW50XCJcbiAgICAgICAgICBbcG9wb3Zlck9uSG92ZXJdPVwiY29udHJvbC5wb3BvdmVyT25Ib3ZlclwiXG4gICAgICAgICAgW3BvcG92ZXJBbHdheXNdPVwiY29udHJvbC5wb3BvdmVyQWx3YXlzXCJcbiAgICAgICAgICBbcG9wb3ZlckRpc2FibGVkXT1cImNvbnRyb2wucG9wb3ZlckRpc2FibGVkXCJcbiAgICAgICAgICBbcG9wb3ZlckFuaW1hdGlvbl09XCJjb250cm9sLnBvcG92ZXJBbmltYXRpb25cIlxuICAgICAgICAgIFtwb3BvdmVyRGlzbWlzc1RpbWVvdXRdPVwiY29udHJvbC5wb3BvdmVyRGlzbWlzc1RpbWVvdXRcIlxuICAgICAgICA+PC9ub3ZvLWNoaXBzPlxuICAgICAgICA8bm92by1yb3ctY2hpcHNcbiAgICAgICAgICBbc291cmNlXT1cImNvbnRyb2wuY29uZmlnXCJcbiAgICAgICAgICBbdHlwZV09XCJjb250cm9sLmNvbmZpZy50eXBlXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29udHJvbC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgW21heGxlbmd0aF09XCJjb250cm9sPy5tYXhsZW5ndGhcIlxuICAgICAgICAgICpuZ0lmPVwiY29udHJvbC5tdWx0aXBsZSAmJiBjb250cm9sLmNvbmZpZy5jb2x1bW5zXCJcbiAgICAgICAgICBbY2xvc2VPblNlbGVjdF09XCJjb250cm9sLmNsb3NlT25TZWxlY3RcIlxuICAgICAgICAgIChjaGFuZ2VkKT1cIm1ldGhvZHMubW9kZWxDaGFuZ2VXaXRoUmF3KCRldmVudClcIlxuICAgICAgICAgICh0eXBpbmcpPVwibWV0aG9kcy5oYW5kbGVUeXBpbmcoJGV2ZW50KVwiXG4gICAgICAgICAgKGZvY3VzKT1cIm1ldGhvZHMuaGFuZGxlRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgICAgKGJsdXIpPVwibWV0aG9kcy5oYW5kbGVCbHVyKCRldmVudClcIlxuICAgICAgICAgIFt0b29sdGlwXT1cImNvbnRyb2wudG9vbHRpcFwiXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJjb250cm9sLnRvb2x0aXBQb3NpdGlvblwiXG4gICAgICAgICAgW3Rvb2x0aXBTaXplXT1cImNvbnRyb2w/LnRvb2x0aXBTaXplXCJcbiAgICAgICAgICBbdG9vbHRpcFByZWxpbmVdPVwiY29udHJvbD8udG9vbHRpcFByZWxpbmVcIlxuICAgICAgICAgIFtyZW1vdmVUb29sdGlwQXJyb3ddPVwiY29udHJvbD8ucmVtb3ZlVG9vbHRpcEFycm93XCJcbiAgICAgICAgICBbdG9vbHRpcEF1dG9Qb3NpdGlvbl09XCJjb250cm9sPy50b29sdGlwQXV0b1Bvc2l0aW9uXCJcbiAgICAgICAgICBbbm92b1BvcG92ZXJdPVwiY29udHJvbC5wb3BvdmVyQ29udGVudFwiXG4gICAgICAgICAgW3BvcG92ZXJIdG1sQ29udGVudF09XCJjb250cm9sLnBvcG92ZXJIdG1sQ29udGVudFwiXG4gICAgICAgICAgW3BvcG92ZXJUaXRsZV09XCJjb250cm9sLnBvcG92ZXJUaXRsZVwiXG4gICAgICAgICAgW3BvcG92ZXJQbGFjZW1lbnRdPVwiY29udHJvbC5wb3BvdmVyUGxhY2VtZW50XCJcbiAgICAgICAgICBbcG9wb3Zlck9uSG92ZXJdPVwiY29udHJvbC5wb3BvdmVyT25Ib3ZlclwiXG4gICAgICAgICAgW3BvcG92ZXJBbHdheXNdPVwiY29udHJvbC5wb3BvdmVyQWx3YXlzXCJcbiAgICAgICAgICBbcG9wb3ZlckRpc2FibGVkXT1cImNvbnRyb2wucG9wb3ZlckRpc2FibGVkXCJcbiAgICAgICAgICBbcG9wb3ZlckFuaW1hdGlvbl09XCJjb250cm9sLnBvcG92ZXJBbmltYXRpb25cIlxuICAgICAgICAgIFtwb3BvdmVyRGlzbWlzc1RpbWVvdXRdPVwiY29udHJvbC5wb3BvdmVyRGlzbWlzc1RpbWVvdXRcIlxuICAgICAgICA+PC9ub3ZvLXJvdy1jaGlwcz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8IS0tTm92byBTZWxlY3QtLT5cbiAgICA8bmctdGVtcGxhdGUgbm92b1RlbXBsYXRlPVwic2VsZWN0XCIgbGV0LWNvbnRyb2wgbGV0LWZvcm09XCJmb3JtXCIgbGV0LWVycm9ycz1cImVycm9yc1wiIGxldC1tZXRob2RzPVwibWV0aG9kc1wiPlxuICAgICAgPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgICAgICAgPG5vdm8tc2VsZWN0XG4gICAgICAgICAgW29wdGlvbnNdPVwiY29udHJvbC5vcHRpb25zXCJcbiAgICAgICAgICBbaGVhZGVyQ29uZmlnXT1cImNvbnRyb2wuaGVhZGVyQ29uZmlnXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29udHJvbC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiY29udHJvbC50b29sdGlwXCJcbiAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cImNvbnRyb2wudG9vbHRpcFBvc2l0aW9uXCJcbiAgICAgICAgICBbdG9vbHRpcFNpemVdPVwiY29udHJvbD8udG9vbHRpcFNpemVcIlxuICAgICAgICAgIFt0b29sdGlwUHJlbGluZV09XCJjb250cm9sPy50b29sdGlwUHJlbGluZVwiXG4gICAgICAgICAgW3JlbW92ZVRvb2x0aXBBcnJvd109XCJjb250cm9sPy5yZW1vdmVUb29sdGlwQXJyb3dcIlxuICAgICAgICAgIFt0b29sdGlwQXV0b1Bvc2l0aW9uXT1cImNvbnRyb2w/LnRvb2x0aXBBdXRvUG9zaXRpb25cIlxuICAgICAgICAgIFtub3ZvUG9wb3Zlcl09XCJjb250cm9sLnBvcG92ZXJDb250ZW50XCJcbiAgICAgICAgICBbcG9wb3Zlckh0bWxDb250ZW50XT1cImNvbnRyb2wucG9wb3Zlckh0bWxDb250ZW50XCJcbiAgICAgICAgICBbcG9wb3ZlclRpdGxlXT1cImNvbnRyb2wucG9wb3ZlclRpdGxlXCJcbiAgICAgICAgICBbcG9wb3ZlclBsYWNlbWVudF09XCJjb250cm9sLnBvcG92ZXJQbGFjZW1lbnRcIlxuICAgICAgICAgIFtwb3BvdmVyT25Ib3Zlcl09XCJjb250cm9sLnBvcG92ZXJPbkhvdmVyXCJcbiAgICAgICAgICBbcG9wb3ZlckFsd2F5c109XCJjb250cm9sLnBvcG92ZXJBbHdheXNcIlxuICAgICAgICAgIFtwb3BvdmVyRGlzYWJsZWRdPVwiY29udHJvbC5wb3BvdmVyRGlzYWJsZWRcIlxuICAgICAgICAgIFtwb3BvdmVyQW5pbWF0aW9uXT1cImNvbnRyb2wucG9wb3ZlckFuaW1hdGlvblwiXG4gICAgICAgICAgW3BvcG92ZXJEaXNtaXNzVGltZW91dF09XCJjb250cm9sLnBvcG92ZXJEaXNtaXNzVGltZW91dFwiXG4gICAgICAgICAgKG9uU2VsZWN0KT1cIm1ldGhvZHMubW9kZWxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgID48L25vdm8tc2VsZWN0PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwhLS1UaW1lem9uZSAtLT5cbiAgICA8bmctdGVtcGxhdGUgbm92b1RlbXBsYXRlPVwidGltZXpvbmVcIiBsZXQtY29udHJvbCBsZXQtZm9ybT1cImZvcm1cIiBsZXQtZXJyb3JzPVwiZXJyb3JzXCIgbGV0LW1ldGhvZHM9XCJtZXRob2RzXCI+XG4gICAgICA8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgICAgICA8bm92by1zZWxlY3RcbiAgICAgICAgICBbb3B0aW9uc109XCJjb250cm9sLm9wdGlvbnNcIlxuICAgICAgICAgIFtoZWFkZXJDb25maWddPVwiY29udHJvbC5oZWFkZXJDb25maWdcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb250cm9sLnBsYWNlaG9sZGVyXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICBbdG9vbHRpcF09XCJjb250cm9sLnRvb2x0aXBcIlxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiY29udHJvbC50b29sdGlwUG9zaXRpb25cIlxuICAgICAgICAgIFt0b29sdGlwU2l6ZV09XCJjb250cm9sPy50b29sdGlwU2l6ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBQcmVsaW5lXT1cImNvbnRyb2w/LnRvb2x0aXBQcmVsaW5lXCJcbiAgICAgICAgICBbcmVtb3ZlVG9vbHRpcEFycm93XT1cImNvbnRyb2w/LnJlbW92ZVRvb2x0aXBBcnJvd1wiXG4gICAgICAgICAgW3Rvb2x0aXBBdXRvUG9zaXRpb25dPVwiY29udHJvbD8udG9vbHRpcEF1dG9Qb3NpdGlvblwiXG4gICAgICAgICAgW25vdm9Qb3BvdmVyXT1cImNvbnRyb2wucG9wb3ZlckNvbnRlbnRcIlxuICAgICAgICAgIFtwb3BvdmVySHRtbENvbnRlbnRdPVwiY29udHJvbC5wb3BvdmVySHRtbENvbnRlbnRcIlxuICAgICAgICAgIFtwb3BvdmVyVGl0bGVdPVwiY29udHJvbC5wb3BvdmVyVGl0bGVcIlxuICAgICAgICAgIFtwb3BvdmVyUGxhY2VtZW50XT1cImNvbnRyb2wucG9wb3ZlclBsYWNlbWVudFwiXG4gICAgICAgICAgW3BvcG92ZXJPbkhvdmVyXT1cImNvbnRyb2wucG9wb3Zlck9uSG92ZXJcIlxuICAgICAgICAgIFtwb3BvdmVyQWx3YXlzXT1cImNvbnRyb2wucG9wb3ZlckFsd2F5c1wiXG4gICAgICAgICAgW3BvcG92ZXJEaXNhYmxlZF09XCJjb250cm9sLnBvcG92ZXJEaXNhYmxlZFwiXG4gICAgICAgICAgW3BvcG92ZXJBbmltYXRpb25dPVwiY29udHJvbC5wb3BvdmVyQW5pbWF0aW9uXCJcbiAgICAgICAgICBbcG9wb3ZlckRpc21pc3NUaW1lb3V0XT1cImNvbnRyb2wucG9wb3ZlckRpc21pc3NUaW1lb3V0XCJcbiAgICAgICAgICBwb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgICAgICAgKG9uU2VsZWN0KT1cIm1ldGhvZHMubW9kZWxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgID48L25vdm8tc2VsZWN0PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwhLS1SYWRpby0tPlxuICAgIDxuZy10ZW1wbGF0ZSBub3ZvVGVtcGxhdGU9XCJyYWRpb1wiIGxldC1jb250cm9sIGxldC1mb3JtPVwiZm9ybVwiIGxldC1lcnJvcnM9XCJlcnJvcnNcIiBsZXQtbWV0aG9kcz1cIm1ldGhvZHNcIj5cbiAgICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJub3ZvLWNvbnRyb2wtaW5wdXQtY29udGFpbmVyXCI+XG4gICAgICAgIDxub3ZvLXJhZGlvLWdyb3VwIFtuYW1lXT1cImNvbnRyb2wua2V5XCIgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmtleVwiIFtkaXNhYmxlZF09XCJjb250cm9sLmRpc2FibGVkXCI+XG4gICAgICAgICAgPG5vdm8tcmFkaW9cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgY29udHJvbC5vcHRpb25zXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIlxuICAgICAgICAgICAgW2xhYmVsXT1cIm9wdGlvbi5sYWJlbFwiXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJcbiAgICAgICAgICAgICAgb3B0aW9uLnZhbHVlID09PSBmb3JtLmdldFJhd1ZhbHVlKClbY29udHJvbC5rZXldIHx8XG4gICAgICAgICAgICAgIChmb3JtLmdldFJhd1ZhbHVlKClbY29udHJvbC5rZXldICYmIG9wdGlvbi52YWx1ZSA9PT0gZm9ybS5nZXRSYXdWYWx1ZSgpW2NvbnRyb2wua2V5XS5pZClcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbdG9vbHRpcF09XCJjb250cm9sLnRvb2x0aXBcIlxuICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJjb250cm9sLnRvb2x0aXBQb3NpdGlvblwiXG4gICAgICAgICAgICBbdG9vbHRpcFNpemVdPVwiY29udHJvbD8udG9vbHRpcFNpemVcIlxuICAgICAgICAgICAgW3Rvb2x0aXBQcmVsaW5lXT1cImNvbnRyb2w/LnRvb2x0aXBQcmVsaW5lXCJcbiAgICAgICAgICAgIFtyZW1vdmVUb29sdGlwQXJyb3ddPVwiY29udHJvbD8ucmVtb3ZlVG9vbHRpcEFycm93XCJcbiAgICAgICAgICAgIFt0b29sdGlwQXV0b1Bvc2l0aW9uXT1cImNvbnRyb2w/LnRvb2x0aXBBdXRvUG9zaXRpb25cIlxuICAgICAgICAgICAgW25vdm9Qb3BvdmVyXT1cImNvbnRyb2wucG9wb3ZlckNvbnRlbnRcIlxuICAgICAgICAgICAgW3BvcG92ZXJIdG1sQ29udGVudF09XCJjb250cm9sLnBvcG92ZXJIdG1sQ29udGVudFwiXG4gICAgICAgICAgICBbcG9wb3ZlclRpdGxlXT1cImNvbnRyb2wucG9wb3ZlclRpdGxlXCJcbiAgICAgICAgICAgIFtwb3BvdmVyUGxhY2VtZW50XT1cImNvbnRyb2wucG9wb3ZlclBsYWNlbWVudFwiXG4gICAgICAgICAgICBbcG9wb3Zlck9uSG92ZXJdPVwiY29udHJvbC5wb3BvdmVyT25Ib3ZlclwiXG4gICAgICAgICAgICBbcG9wb3ZlckFsd2F5c109XCJjb250cm9sLnBvcG92ZXJBbHdheXNcIlxuICAgICAgICAgICAgW3BvcG92ZXJEaXNhYmxlZF09XCJjb250cm9sLnBvcG92ZXJEaXNhYmxlZFwiXG4gICAgICAgICAgICBbcG9wb3ZlckFuaW1hdGlvbl09XCJjb250cm9sLnBvcG92ZXJBbmltYXRpb25cIlxuICAgICAgICAgICAgW3BvcG92ZXJEaXNtaXNzVGltZW91dF09XCJjb250cm9sLnBvcG92ZXJEaXNtaXNzVGltZW91dFwiXG4gICAgICAgICAgICBbYnV0dG9uXT1cIiEhb3B0aW9uLmljb25cIlxuICAgICAgICAgICAgW2ljb25dPVwib3B0aW9uLmljb25cIlxuICAgICAgICAgICAgW2NvbG9yXT1cIm9wdGlvbi5jb2xvclwiXG4gICAgICAgICAgICBbdGhlbWVdPVwiISFvcHRpb24uaWNvbiAmJiAhb3B0aW9uLmxhYmVsID8gJ2ljb24nIDogJ3NlY29uZGFyeSdcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cImNvbnRyb2wua2V5ICsgJy0nICsgKG9wdGlvbj8ubGFiZWwgfHwgb3B0aW9uPy52YWx1ZSlcIlxuICAgICAgICAgID48L25vdm8tcmFkaW8+XG4gICAgICAgIDwvbm92by1yYWRpby1ncm91cD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8IS0tVGltZS0tPlxuICAgIDxuZy10ZW1wbGF0ZSBub3ZvVGVtcGxhdGU9XCJ0aW1lXCIgbGV0LWNvbnRyb2wgbGV0LWZvcm09XCJmb3JtXCIgbGV0LWVycm9ycz1cImVycm9yc1wiIGxldC1tZXRob2RzPVwibWV0aG9kc1wiPlxuICAgICAgPGRpdlxuICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgICAgICBjbGFzcz1cIm5vdm8tY29udHJvbC1pbnB1dC1jb250YWluZXJcIlxuICAgICAgICBbdG9vbHRpcF09XCJjb250cm9sPy50b29sdGlwXCJcbiAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJjb250cm9sPy50b29sdGlwUG9zaXRpb25cIlxuICAgICAgICBbdG9vbHRpcFNpemVdPVwiY29udHJvbD8udG9vbHRpcFNpemVcIlxuICAgICAgICBbdG9vbHRpcFByZWxpbmVdPVwiY29udHJvbD8udG9vbHRpcFByZWxpbmVcIlxuICAgICAgICBbcmVtb3ZlVG9vbHRpcEFycm93XT1cImNvbnRyb2w/LnJlbW92ZVRvb2x0aXBBcnJvd1wiXG4gICAgICAgIFt0b29sdGlwQXV0b1Bvc2l0aW9uXT1cImNvbnRyb2w/LnRvb2x0aXBBdXRvUG9zaXRpb25cIlxuICAgICAgICBbbm92b1BvcG92ZXJdPVwiY29udHJvbC5wb3BvdmVyQ29udGVudFwiXG4gICAgICAgIFtwb3BvdmVySHRtbENvbnRlbnRdPVwiY29udHJvbC5wb3BvdmVySHRtbENvbnRlbnRcIlxuICAgICAgICBbcG9wb3ZlclRpdGxlXT1cImNvbnRyb2wucG9wb3ZlclRpdGxlXCJcbiAgICAgICAgW3BvcG92ZXJQbGFjZW1lbnRdPVwiY29udHJvbC5wb3BvdmVyUGxhY2VtZW50XCJcbiAgICAgICAgW3BvcG92ZXJPbkhvdmVyXT1cImNvbnRyb2wucG9wb3Zlck9uSG92ZXJcIlxuICAgICAgICBbcG9wb3ZlckFsd2F5c109XCJjb250cm9sLnBvcG92ZXJBbHdheXNcIlxuICAgICAgICBbcG9wb3ZlckRpc2FibGVkXT1cImNvbnRyb2wucG9wb3ZlckRpc2FibGVkXCJcbiAgICAgICAgW3BvcG92ZXJBbmltYXRpb25dPVwiY29udHJvbC5wb3BvdmVyQW5pbWF0aW9uXCJcbiAgICAgICAgW3BvcG92ZXJEaXNtaXNzVGltZW91dF09XCJjb250cm9sLnBvcG92ZXJEaXNtaXNzVGltZW91dFwiXG4gICAgICA+XG4gICAgICAgIDxub3ZvLXRpbWUtcGlja2VyLWlucHV0XG4gICAgICAgICAgW2F0dHIuaWRdPVwiY29udHJvbC5rZXlcIlxuICAgICAgICAgIFtuYW1lXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29udHJvbC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgW21pbGl0YXJ5XT1cImNvbnRyb2wubWlsaXRhcnlcIlxuICAgICAgICA+PC9ub3ZvLXRpbWUtcGlja2VyLWlucHV0PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwhLS1OYXRpdmUgSW5wdXQtLS0+XG4gICAgPG5nLXRlbXBsYXRlIG5vdm9UZW1wbGF0ZT1cIm5hdGl2ZS1pbnB1dFwiIGxldC1jb250cm9sIGxldC1mb3JtPVwiZm9ybVwiIGxldC1lcnJvcnM9XCJlcnJvcnNcIiBsZXQtbWV0aG9kcz1cIm1ldGhvZHNcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAgICAgY2xhc3M9XCJub3ZvLWNvbnRyb2wtaW5wdXQtY29udGFpbmVyIG5vdm8tY29udHJvbC1pbnB1dC13aXRoLWxhYmVsXCJcbiAgICAgICAgW3Rvb2x0aXBdPVwiY29udHJvbD8udG9vbHRpcFwiXG4gICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiY29udHJvbD8udG9vbHRpcFBvc2l0aW9uXCJcbiAgICAgICAgW3Rvb2x0aXBTaXplXT1cImNvbnRyb2w/LnRvb2x0aXBTaXplXCJcbiAgICAgICAgW3Rvb2x0aXBQcmVsaW5lXT1cImNvbnRyb2w/LnRvb2x0aXBQcmVsaW5lXCJcbiAgICAgICAgW3JlbW92ZVRvb2x0aXBBcnJvd109XCJjb250cm9sPy5yZW1vdmVUb29sdGlwQXJyb3dcIlxuICAgICAgICBbdG9vbHRpcEF1dG9Qb3NpdGlvbl09XCJjb250cm9sPy50b29sdGlwQXV0b1Bvc2l0aW9uXCJcbiAgICAgICAgW25vdm9Qb3BvdmVyXT1cImNvbnRyb2wucG9wb3ZlckNvbnRlbnRcIlxuICAgICAgICBbcG9wb3Zlckh0bWxDb250ZW50XT1cImNvbnRyb2wucG9wb3Zlckh0bWxDb250ZW50XCJcbiAgICAgICAgW3BvcG92ZXJUaXRsZV09XCJjb250cm9sLnBvcG92ZXJUaXRsZVwiXG4gICAgICAgIFtwb3BvdmVyUGxhY2VtZW50XT1cImNvbnRyb2wucG9wb3ZlclBsYWNlbWVudFwiXG4gICAgICAgIFtwb3BvdmVyT25Ib3Zlcl09XCJjb250cm9sLnBvcG92ZXJPbkhvdmVyXCJcbiAgICAgICAgW3BvcG92ZXJBbHdheXNdPVwiY29udHJvbC5wb3BvdmVyQWx3YXlzXCJcbiAgICAgICAgW3BvcG92ZXJEaXNhYmxlZF09XCJjb250cm9sLnBvcG92ZXJEaXNhYmxlZFwiXG4gICAgICAgIFtwb3BvdmVyQW5pbWF0aW9uXT1cImNvbnRyb2wucG9wb3ZlckFuaW1hdGlvblwiXG4gICAgICAgIFtwb3BvdmVyRGlzbWlzc1RpbWVvdXRdPVwiY29udHJvbC5wb3BvdmVyRGlzbWlzc1RpbWVvdXRcIlxuICAgICAgPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICBbaWRdPVwiY29udHJvbC5rZXlcIlxuICAgICAgICAgIFt0eXBlXT1cImNvbnRyb2wudHlwZVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbnRyb2w/LnBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAoaW5wdXQpPVwibWV0aG9kcy5lbWl0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgIChmb2N1cyk9XCJtZXRob2RzLmhhbmRsZUZvY3VzKCRldmVudClcIlxuICAgICAgICAgIChibHVyKT1cIm1ldGhvZHMuaGFuZGxlQmx1cigkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8IS0tRGF0ZS0tPlxuICAgIDxuZy10ZW1wbGF0ZSBub3ZvVGVtcGxhdGU9XCJkYXRlXCIgbGV0LWNvbnRyb2wgbGV0LWZvcm09XCJmb3JtXCIgbGV0LWVycm9ycz1cImVycm9yc1wiIGxldC1tZXRob2RzPVwibWV0aG9kc1wiPlxuICAgICAgPGRpdlxuICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgICAgICBjbGFzcz1cIm5vdm8tY29udHJvbC1pbnB1dC1jb250YWluZXJcIlxuICAgICAgICBbdG9vbHRpcF09XCJjb250cm9sLnRvb2x0aXBcIlxuICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cImNvbnRyb2wudG9vbHRpcFBvc2l0aW9uXCJcbiAgICAgICAgW3Rvb2x0aXBTaXplXT1cImNvbnRyb2w/LnRvb2x0aXBTaXplXCJcbiAgICAgICAgW3Rvb2x0aXBQcmVsaW5lXT1cImNvbnRyb2w/LnRvb2x0aXBQcmVsaW5lXCJcbiAgICAgICAgW3JlbW92ZVRvb2x0aXBBcnJvd109XCJjb250cm9sPy5yZW1vdmVUb29sdGlwQXJyb3dcIlxuICAgICAgICBbdG9vbHRpcEF1dG9Qb3NpdGlvbl09XCJjb250cm9sPy50b29sdGlwQXV0b1Bvc2l0aW9uXCJcbiAgICAgICAgW25vdm9Qb3BvdmVyXT1cImNvbnRyb2wucG9wb3ZlckNvbnRlbnRcIlxuICAgICAgICBbcG9wb3Zlckh0bWxDb250ZW50XT1cImNvbnRyb2wucG9wb3Zlckh0bWxDb250ZW50XCJcbiAgICAgICAgW3BvcG92ZXJUaXRsZV09XCJjb250cm9sLnBvcG92ZXJUaXRsZVwiXG4gICAgICAgIFtwb3BvdmVyUGxhY2VtZW50XT1cImNvbnRyb2wucG9wb3ZlclBsYWNlbWVudFwiXG4gICAgICAgIFtwb3BvdmVyT25Ib3Zlcl09XCJjb250cm9sLnBvcG92ZXJPbkhvdmVyXCJcbiAgICAgICAgW3BvcG92ZXJBbHdheXNdPVwiY29udHJvbC5wb3BvdmVyQWx3YXlzXCJcbiAgICAgICAgW3BvcG92ZXJEaXNhYmxlZF09XCJjb250cm9sLnBvcG92ZXJEaXNhYmxlZFwiXG4gICAgICAgIFtwb3BvdmVyQW5pbWF0aW9uXT1cImNvbnRyb2wucG9wb3ZlckFuaW1hdGlvblwiXG4gICAgICAgIFtwb3BvdmVyRGlzbWlzc1RpbWVvdXRdPVwiY29udHJvbC5wb3BvdmVyRGlzbWlzc1RpbWVvdXRcIlxuICAgICAgPlxuICAgICAgICA8bm92by1kYXRlLXBpY2tlci1pbnB1dFxuICAgICAgICAgIFthdHRyLmlkXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICBbbmFtZV09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgW3N0YXJ0XT1cImNvbnRyb2wuc3RhcnREYXRlXCJcbiAgICAgICAgICBbZW5kXT1cImNvbnRyb2wuZW5kRGF0ZVwiXG4gICAgICAgICAgW2Zvcm1hdF09XCJjb250cm9sLmRhdGVGb3JtYXRcIlxuICAgICAgICAgIFthbGxvd0ludmFsaWREYXRlXT1cImNvbnRyb2wuYWxsb3dJbnZhbGlkRGF0ZVwiXG4gICAgICAgICAgW3RleHRNYXNrRW5hYmxlZF09XCJjb250cm9sLnRleHRNYXNrRW5hYmxlZFwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbnRyb2wucGxhY2Vob2xkZXJcIlxuICAgICAgICAgIFt3ZWVrU3RhcnRdPVwiY29udHJvbC53ZWVrU3RhcnRcIlxuICAgICAgICAgIFtkaXNhYmxlZERhdGVNZXNzYWdlXT1cImNvbnRyb2wuZGlzYWJsZWREYXRlTWVzc2FnZVwiXG4gICAgICAgICAgKGZvY3VzRXZlbnQpPVwibWV0aG9kcy5oYW5kbGVGb2N1cygkZXZlbnQpXCJcbiAgICAgICAgICAoYmx1ckV2ZW50KT1cIm1ldGhvZHMuaGFuZGxlQmx1cigkZXZlbnQpXCJcbiAgICAgICAgICAoY2hhbmdlRXZlbnQpPVwibWV0aG9kcy5lbWl0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICA+PC9ub3ZvLWRhdGUtcGlja2VyLWlucHV0PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwhLS1EYXRlIGFuZCBUaW1lLS0+XG4gICAgPG5nLXRlbXBsYXRlIG5vdm9UZW1wbGF0ZT1cImRhdGUtdGltZVwiIGxldC1jb250cm9sIGxldC1mb3JtPVwiZm9ybVwiIGxldC1lcnJvcnM9XCJlcnJvcnNcIiBsZXQtbWV0aG9kcz1cIm1ldGhvZHNcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAgICAgY2xhc3M9XCJub3ZvLWNvbnRyb2wtaW5wdXQtY29udGFpbmVyXCJcbiAgICAgICAgW3Rvb2x0aXBdPVwiY29udHJvbC50b29sdGlwXCJcbiAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJjb250cm9sLnRvb2x0aXBQb3NpdGlvblwiXG4gICAgICAgIFt0b29sdGlwU2l6ZV09XCJjb250cm9sPy50b29sdGlwU2l6ZVwiXG4gICAgICAgIFt0b29sdGlwUHJlbGluZV09XCJjb250cm9sPy50b29sdGlwUHJlbGluZVwiXG4gICAgICAgIFtyZW1vdmVUb29sdGlwQXJyb3ddPVwiY29udHJvbD8ucmVtb3ZlVG9vbHRpcEFycm93XCJcbiAgICAgICAgW3Rvb2x0aXBBdXRvUG9zaXRpb25dPVwiY29udHJvbD8udG9vbHRpcEF1dG9Qb3NpdGlvblwiXG4gICAgICAgIFtub3ZvUG9wb3Zlcl09XCJjb250cm9sLnBvcG92ZXJDb250ZW50XCJcbiAgICAgICAgW3BvcG92ZXJIdG1sQ29udGVudF09XCJjb250cm9sLnBvcG92ZXJIdG1sQ29udGVudFwiXG4gICAgICAgIFtwb3BvdmVyVGl0bGVdPVwiY29udHJvbC5wb3BvdmVyVGl0bGVcIlxuICAgICAgICBbcG9wb3ZlclBsYWNlbWVudF09XCJjb250cm9sLnBvcG92ZXJQbGFjZW1lbnRcIlxuICAgICAgICBbcG9wb3Zlck9uSG92ZXJdPVwiY29udHJvbC5wb3BvdmVyT25Ib3ZlclwiXG4gICAgICAgIFtwb3BvdmVyQWx3YXlzXT1cImNvbnRyb2wucG9wb3ZlckFsd2F5c1wiXG4gICAgICAgIFtwb3BvdmVyRGlzYWJsZWRdPVwiY29udHJvbC5wb3BvdmVyRGlzYWJsZWRcIlxuICAgICAgICBbcG9wb3ZlckFuaW1hdGlvbl09XCJjb250cm9sLnBvcG92ZXJBbmltYXRpb25cIlxuICAgICAgICBbcG9wb3ZlckRpc21pc3NUaW1lb3V0XT1cImNvbnRyb2wucG9wb3ZlckRpc21pc3NUaW1lb3V0XCJcbiAgICAgID5cbiAgICAgICAgPG5vdm8tZGF0ZS10aW1lLXBpY2tlci1pbnB1dFxuICAgICAgICAgIFthdHRyLmlkXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICBbbmFtZV09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmtleVwiXG4gICAgICAgICAgW3N0YXJ0XT1cImNvbnRyb2wuc3RhcnREYXRlXCJcbiAgICAgICAgICBbZW5kXT1cImNvbnRyb2wuZW5kRGF0ZVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbnRyb2wucGxhY2Vob2xkZXJcIlxuICAgICAgICAgIFttaWxpdGFyeV09XCJjb250cm9sLm1pbGl0YXJ5XCJcbiAgICAgICAgICBbd2Vla1N0YXJ0XT1cImNvbnRyb2wud2Vla1N0YXJ0XCJcbiAgICAgICAgICAoZm9jdXNFdmVudCk9XCJtZXRob2RzLmhhbmRsZUZvY3VzKCRldmVudClcIlxuICAgICAgICAgIChibHVyRXZlbnQpPVwibWV0aG9kcy5oYW5kbGVCbHVyKCRldmVudClcIlxuICAgICAgICAgIChjaGFuZ2VFdmVudCk9XCJtZXRob2RzLmVtaXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgID48L25vdm8tZGF0ZS10aW1lLXBpY2tlci1pbnB1dD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8IS0tQWRkcmVzcy0tPlxuICAgIDxuZy10ZW1wbGF0ZSBub3ZvVGVtcGxhdGU9XCJhZGRyZXNzXCIgbGV0LWNvbnRyb2wgbGV0LWZvcm09XCJmb3JtXCIgbGV0LWVycm9ycz1cImVycm9yc1wiIGxldC1tZXRob2RzPVwibWV0aG9kc1wiPlxuICAgICAgPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgICAgICAgPG5vdm8tYWRkcmVzc1xuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5rZXlcIlxuICAgICAgICAgIFtjb25maWddPVwiY29udHJvbD8uY29uZmlnXCJcbiAgICAgICAgICBbcmVhZE9ubHldPVwiY29udHJvbD8ucmVhZE9ubHlcIlxuICAgICAgICAgIChjaGFuZ2UpPVwibWV0aG9kcy5oYW5kbGVBZGRyZXNzQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgIChmb2N1cyk9XCJtZXRob2RzLmhhbmRsZUZvY3VzKCRldmVudC5ldmVudCwgJGV2ZW50LmZpZWxkKVwiXG4gICAgICAgICAgKGJsdXIpPVwibWV0aG9kcy5oYW5kbGVCbHVyKCRldmVudC5ldmVudCwgJGV2ZW50LmZpZWxkKVwiXG4gICAgICAgICAgKHZhbGlkaXR5Q2hhbmdlKT1cIm1ldGhvZHMudXBkYXRlVmFsaWRpdHkoKVwiXG4gICAgICAgID48L25vdm8tYWRkcmVzcz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8IS0tQ2hlY2tib3gtLT5cbiAgICA8bmctdGVtcGxhdGUgbm92b1RlbXBsYXRlPVwiY2hlY2tib3hcIiBsZXQtY29udHJvbCBsZXQtZm9ybT1cImZvcm1cIiBsZXQtZXJyb3JzPVwiZXJyb3JzXCIgbGV0LW1ldGhvZHM9XCJtZXRob2RzXCI+XG4gICAgICA8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgICAgICA8bm92by1jaGVja2JveFxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbD8ua2V5XCJcbiAgICAgICAgICBbbmFtZV09XCJjb250cm9sPy5rZXlcIlxuICAgICAgICAgIFtsYWJlbF09XCJjb250cm9sPy5jaGVja2JveExhYmVsXCJcbiAgICAgICAgICBbdG9vbHRpcF09XCJjb250cm9sPy50b29sdGlwXCJcbiAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cImNvbnRyb2w/LnRvb2x0aXBQb3NpdGlvblwiXG4gICAgICAgICAgW3Rvb2x0aXBTaXplXT1cImNvbnRyb2w/LnRvb2x0aXBTaXplXCJcbiAgICAgICAgICBbdG9vbHRpcFByZWxpbmVdPVwiY29udHJvbD8udG9vbHRpcFByZWxpbmVcIlxuICAgICAgICAgIFtyZW1vdmVUb29sdGlwQXJyb3ddPVwiY29udHJvbD8ucmVtb3ZlVG9vbHRpcEFycm93XCJcbiAgICAgICAgICBbdG9vbHRpcEF1dG9Qb3NpdGlvbl09XCJjb250cm9sPy50b29sdGlwQXV0b1Bvc2l0aW9uXCJcbiAgICAgICAgICBbbm92b1BvcG92ZXJdPVwiY29udHJvbC5wb3BvdmVyQ29udGVudFwiXG4gICAgICAgICAgW3BvcG92ZXJIdG1sQ29udGVudF09XCJjb250cm9sLnBvcG92ZXJIdG1sQ29udGVudFwiXG4gICAgICAgICAgW3BvcG92ZXJUaXRsZV09XCJjb250cm9sLnBvcG92ZXJUaXRsZVwiXG4gICAgICAgICAgW3BvcG92ZXJQbGFjZW1lbnRdPVwiY29udHJvbC5wb3BvdmVyUGxhY2VtZW50XCJcbiAgICAgICAgICBbcG9wb3Zlck9uSG92ZXJdPVwiY29udHJvbC5wb3BvdmVyT25Ib3ZlclwiXG4gICAgICAgICAgW3BvcG92ZXJBbHdheXNdPVwiY29udHJvbC5wb3BvdmVyQWx3YXlzXCJcbiAgICAgICAgICBbcG9wb3ZlckRpc2FibGVkXT1cImNvbnRyb2wucG9wb3ZlckRpc2FibGVkXCJcbiAgICAgICAgICBbcG9wb3ZlckFuaW1hdGlvbl09XCJjb250cm9sLnBvcG92ZXJBbmltYXRpb25cIlxuICAgICAgICAgIFtwb3BvdmVyRGlzbWlzc1RpbWVvdXRdPVwiY29udHJvbC5wb3BvdmVyRGlzbWlzc1RpbWVvdXRcIlxuICAgICAgICAgIFtsYXlvdXRPcHRpb25zXT1cImNvbnRyb2w/LmxheW91dE9wdGlvbnNcIlxuICAgICAgICA+PC9ub3ZvLWNoZWNrYm94PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwhLS1Td2l0Y2gtLT5cbiAgICA8bmctdGVtcGxhdGUgbm92b1RlbXBsYXRlPVwic3dpdGNoXCIgbGV0LWNvbnRyb2wgbGV0LWZvcm09XCJmb3JtXCIgbGV0LWVycm9ycz1cImVycm9yc1wiIGxldC1tZXRob2RzPVwibWV0aG9kc1wiPlxuICAgICAgPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgICAgICAgPG5vdm8tc3dpdGNoXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sPy5rZXlcIlxuICAgICAgICAgIFt0b29sdGlwXT1cImNvbnRyb2w/LnRvb2x0aXBcIlxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiY29udHJvbD8udG9vbHRpcFBvc2l0aW9uXCJcbiAgICAgICAgICBbdG9vbHRpcFNpemVdPVwiY29udHJvbD8udG9vbHRpcFNpemVcIlxuICAgICAgICAgIFt0b29sdGlwUHJlbGluZV09XCJjb250cm9sPy50b29sdGlwUHJlbGluZVwiXG4gICAgICAgICAgW3JlbW92ZVRvb2x0aXBBcnJvd109XCJjb250cm9sPy5yZW1vdmVUb29sdGlwQXJyb3dcIlxuICAgICAgICAgIFt0b29sdGlwQXV0b1Bvc2l0aW9uXT1cImNvbnRyb2w/LnRvb2x0aXBBdXRvUG9zaXRpb25cIlxuICAgICAgICAgIFtub3ZvUG9wb3Zlcl09XCJjb250cm9sLnBvcG92ZXJDb250ZW50XCJcbiAgICAgICAgICBbcG9wb3Zlckh0bWxDb250ZW50XT1cImNvbnRyb2wucG9wb3Zlckh0bWxDb250ZW50XCJcbiAgICAgICAgICBbcG9wb3ZlclRpdGxlXT1cImNvbnRyb2wucG9wb3ZlclRpdGxlXCJcbiAgICAgICAgICBbcG9wb3ZlclBsYWNlbWVudF09XCJjb250cm9sLnBvcG92ZXJQbGFjZW1lbnRcIlxuICAgICAgICAgIFtwb3BvdmVyT25Ib3Zlcl09XCJjb250cm9sLnBvcG92ZXJPbkhvdmVyXCJcbiAgICAgICAgICBbcG9wb3ZlckFsd2F5c109XCJjb250cm9sLnBvcG92ZXJBbHdheXNcIlxuICAgICAgICAgIFtwb3BvdmVyRGlzYWJsZWRdPVwiY29udHJvbC5wb3BvdmVyRGlzYWJsZWRcIlxuICAgICAgICAgIFtwb3BvdmVyQW5pbWF0aW9uXT1cImNvbnRyb2wucG9wb3ZlckFuaW1hdGlvblwiXG4gICAgICAgICAgW3BvcG92ZXJEaXNtaXNzVGltZW91dF09XCJjb250cm9sLnBvcG92ZXJEaXNtaXNzVGltZW91dFwiXG4gICAgICAgICAgKG9uQ2hhbmdlKT1cIm1ldGhvZHMubW9kZWxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgID48L25vdm8tc3dpdGNoPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwhLS1DaGVja2xpc3QtLT5cbiAgICA8bmctdGVtcGxhdGUgbm92b1RlbXBsYXRlPVwiY2hlY2tsaXN0XCIgbGV0LWNvbnRyb2wgbGV0LWZvcm09XCJmb3JtXCIgbGV0LWVycm9ycz1cImVycm9yc1wiIGxldC1tZXRob2RzPVwibWV0aG9kc1wiPlxuICAgICAgPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgICAgICAgPG5vdm8tY2hlY2stbGlzdFxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5rZXlcIlxuICAgICAgICAgIFtuYW1lXT1cImNvbnRyb2wua2V5XCJcbiAgICAgICAgICBbb3B0aW9uc109XCJjb250cm9sPy5vcHRpb25zXCJcbiAgICAgICAgICBbdG9vbHRpcF09XCJjb250cm9sPy50b29sdGlwXCJcbiAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cImNvbnRyb2w/LnRvb2x0aXBQb3NpdGlvblwiXG4gICAgICAgICAgW3Rvb2x0aXBTaXplXT1cImNvbnRyb2w/LnRvb2x0aXBTaXplXCJcbiAgICAgICAgICBbdG9vbHRpcFByZWxpbmVdPVwiY29udHJvbD8udG9vbHRpcFByZWxpbmVcIlxuICAgICAgICAgIFtyZW1vdmVUb29sdGlwQXJyb3ddPVwiY29udHJvbD8ucmVtb3ZlVG9vbHRpcEFycm93XCJcbiAgICAgICAgICBbdG9vbHRpcEF1dG9Qb3NpdGlvbl09XCJjb250cm9sPy50b29sdGlwQXV0b1Bvc2l0aW9uXCJcbiAgICAgICAgICBbbm92b1BvcG92ZXJdPVwiY29udHJvbC5wb3BvdmVyQ29udGVudFwiXG4gICAgICAgICAgW3BvcG92ZXJIdG1sQ29udGVudF09XCJjb250cm9sLnBvcG92ZXJIdG1sQ29udGVudFwiXG4gICAgICAgICAgW3BvcG92ZXJUaXRsZV09XCJjb250cm9sLnBvcG92ZXJUaXRsZVwiXG4gICAgICAgICAgW3BvcG92ZXJQbGFjZW1lbnRdPVwiY29udHJvbC5wb3BvdmVyUGxhY2VtZW50XCJcbiAgICAgICAgICBbcG9wb3Zlck9uSG92ZXJdPVwiY29udHJvbC5wb3BvdmVyT25Ib3ZlclwiXG4gICAgICAgICAgW3BvcG92ZXJBbHdheXNdPVwiY29udHJvbC5wb3BvdmVyQWx3YXlzXCJcbiAgICAgICAgICBbcG9wb3ZlckRpc2FibGVkXT1cImNvbnRyb2wucG9wb3ZlckRpc2FibGVkXCJcbiAgICAgICAgICBbcG9wb3ZlckFuaW1hdGlvbl09XCJjb250cm9sLnBvcG92ZXJBbmltYXRpb25cIlxuICAgICAgICAgIFtwb3BvdmVyRGlzbWlzc1RpbWVvdXRdPVwiY29udHJvbC5wb3BvdmVyRGlzbWlzc1RpbWVvdXRcIlxuICAgICAgICAgIChvblNlbGVjdCk9XCJtZXRob2RzLm1vZGVsQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+PC9ub3ZvLWNoZWNrLWxpc3Q+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPCEtLVF1aWNrTm90ZS0tPlxuICAgIDxuZy10ZW1wbGF0ZSBub3ZvVGVtcGxhdGU9XCJxdWljay1ub3RlXCIgbGV0LWNvbnRyb2wgbGV0LWZvcm09XCJmb3JtXCIgbGV0LWVycm9ycz1cImVycm9yc1wiIGxldC1tZXRob2RzPVwibWV0aG9kc1wiPlxuICAgICAgPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgICAgICAgPG5vdm8tcXVpY2stbm90ZVxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5rZXlcIlxuICAgICAgICAgIFtzdGFydHVwRm9jdXNdPVwiY29udHJvbD8uc3RhcnR1cEZvY3VzXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29udHJvbD8ucGxhY2Vob2xkZXJcIlxuICAgICAgICAgIFtjb25maWddPVwiY29udHJvbD8uY29uZmlnXCJcbiAgICAgICAgICAoY2hhbmdlKT1cIm1ldGhvZHMubW9kZWxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiY29udHJvbD8udG9vbHRpcFwiXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJjb250cm9sPy50b29sdGlwUG9zaXRpb25cIlxuICAgICAgICAgIFt0b29sdGlwU2l6ZV09XCJjb250cm9sPy50b29sdGlwU2l6ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBQcmVsaW5lXT1cImNvbnRyb2w/LnRvb2x0aXBQcmVsaW5lXCJcbiAgICAgICAgICBbcmVtb3ZlVG9vbHRpcEFycm93XT1cImNvbnRyb2w/LnJlbW92ZVRvb2x0aXBBcnJvd1wiXG4gICAgICAgICAgW3Rvb2x0aXBBdXRvUG9zaXRpb25dPVwiY29udHJvbD8udG9vbHRpcEF1dG9Qb3NpdGlvblwiXG4gICAgICAgICAgW25vdm9Qb3BvdmVyXT1cImNvbnRyb2wucG9wb3ZlckNvbnRlbnRcIlxuICAgICAgICAgIFtwb3BvdmVySHRtbENvbnRlbnRdPVwiY29udHJvbC5wb3BvdmVySHRtbENvbnRlbnRcIlxuICAgICAgICAgIFtwb3BvdmVyVGl0bGVdPVwiY29udHJvbC5wb3BvdmVyVGl0bGVcIlxuICAgICAgICAgIFtwb3BvdmVyUGxhY2VtZW50XT1cImNvbnRyb2wucG9wb3ZlclBsYWNlbWVudFwiXG4gICAgICAgICAgW3BvcG92ZXJPbkhvdmVyXT1cImNvbnRyb2wucG9wb3Zlck9uSG92ZXJcIlxuICAgICAgICAgIFtwb3BvdmVyQWx3YXlzXT1cImNvbnRyb2wucG9wb3ZlckFsd2F5c1wiXG4gICAgICAgICAgW3BvcG92ZXJEaXNhYmxlZF09XCJjb250cm9sLnBvcG92ZXJEaXNhYmxlZFwiXG4gICAgICAgICAgW3BvcG92ZXJBbmltYXRpb25dPVwiY29udHJvbC5wb3BvdmVyQW5pbWF0aW9uXCJcbiAgICAgICAgICBbcG9wb3ZlckRpc21pc3NUaW1lb3V0XT1cImNvbnRyb2wucG9wb3ZlckRpc21pc3NUaW1lb3V0XCJcbiAgICAgICAgPjwvbm92by1xdWljay1ub3RlPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgTm92b0NvbnRyb2xUZW1wbGF0ZXMgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQFZpZXdDaGlsZHJlbihOb3ZvVGVtcGxhdGUpXG4gIGRlZmF1bHRUZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxOb3ZvVGVtcGxhdGU+O1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRlbXBsYXRlczogTm92b1RlbXBsYXRlU2VydmljZSkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGVmYXVsdFRlbXBsYXRlcyAmJiB0aGlzLmRlZmF1bHRUZW1wbGF0ZXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmRlZmF1bHRUZW1wbGF0ZXMuZm9yRWFjaCgodGVtcGxhdGU6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnRlbXBsYXRlcy5hZGREZWZhdWx0KHRlbXBsYXRlLm5hbWUsIHRlbXBsYXRlLnRlbXBsYXRlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
|