master-control 0.4.69 → 0.4.70
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/esm2022/lib/annuity-premium-calculator/annuity-premium-calculator.component.mjs +3 -3
- package/esm2022/lib/in-built-benefit/in-built-benefit.component.mjs +3 -3
- package/esm2022/lib/other-benefits/other-benefits.component.mjs +3 -3
- package/esm2022/lib/pay-get-card/pay-get-card.component.mjs +3 -3
- package/fesm2022/master-control.mjs +8 -8
- package/fesm2022/master-control.mjs.map +1 -1
- package/master-control-0.4.70.tgz +0 -0
- package/package.json +1 -1
- package/master-control-0.4.69.tgz +0 -0
|
@@ -897,7 +897,7 @@ export class AnnuityPremiumCalculatorComponent {
|
|
|
897
897
|
return str ? str + ' Only' : '';
|
|
898
898
|
}
|
|
899
899
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnuityPremiumCalculatorComponent, deps: [{ token: i1.MasterControlService }], target: i0.ɵɵFactoryTarget.Component });
|
|
900
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: AnnuityPremiumCalculatorComponent, isStandalone: true, selector: "lib-annuity-premium-calculator", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, premiumDetails: { classPropertyName: "premiumDetails", publicName: "premiumDetails", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onCalcualteButtonClick: "onCalcualteButtonClick", onGenerateSummaryClick: "onGenerateSummaryClick", onAnnuityPremiumChange: "onAnnuityPremiumChange", onMinimumPremiumValueChange: "onMinimumPremiumValueChange", onAutioDebitValueChange: "onAutioDebitValueChange", onGuranteedAnnuityValueChange: "onGuranteedAnnuityValueChange", onDigitBossSwitchToggle: "onDigitBossSwitchToggle" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"card px-3\" style=\"padding: 16px;\">\n <div class=\"row\">\n <h4 class=\"card-main-title\"><span style=\"margin-right: 12px;\"><img\n src=\"https://cdn.godigit.com/retail-life/calculator.svg\" alt=\"annuity calculator\"></span>Here\u2019s Your Investment to Returns Calculator.</h4>\n </div>\n <!-- <div class=\"row\"> -->\n <div class=\"card pb-4 px-4\" style=\"border-bottom-left-radius: 0px; border-bottom-right-radius: 0px;\">\n <!-- <div class=\"custom-grid-template\">\n\n </div> -->\n\n <div class=\"row mx-auto\" style=\"transform: translate(0px, -58%);\">\n <lib-toggle class=\"col-auto\" [field]=\"annuityPremiumToggleObj\" />\n </div>\n <!-- </div> -->\n <div class=\" col-12\" style=\"\n justify-content: center;\n flex-direction: row;\n display: flex;\n\">\n <div class=\"col-5 col-lg-5 d-flex flex-column p-0\">\n <lib-select-textbox [field]=\"annuityPremiumObj\" [(ngModel)]=\"annuityPremium\"\n (ngModelChange)=\"onAnnuityPremiumValueChange($event)\" />\n <div class=\"error-message\" *ngIf=\"validations.ispremiumEntry\">\n Enter Premium\n </div>\n <div class=\"annuity-mat-hint\" *ngIf=\"annuityPremiumObj?.configData?.numbertoword\">{{annuityPremiumObj?.configData?.numbertoword}}</div>\n <div>\n <lib-toggle [field]=\"enableAutoDebitObj\" [(ngModel)]=\"isEnableAutoDebit\"\n (ngModelChange)=\"onEnableAutoDebitValueChange($event)\" />\n </div>\n </div>\n <div class=\"col-2 col-lg-2 d-flex justify-content-center align-items-center\"\n style=\"display: flex; align-items: flex-end; transform: translate(0px, 6px); position: relative; height: auto; min-height: 100%;\">\n <!-- Top line -->\n <div style=\"position: absolute; left: 50%; transform: translateX(-50%); width: 1px; height: calc(50% + 24px); top: -37px; background: rgba(221, 221, 221, 1); pointer-events: none;\"></div>\n <!-- Bottom line -->\n <div style=\"position: absolute; left: 50%; transform: translateX(-50%); width: 1px; height: calc(50% + 24px); bottom: -37px; background: rgba(221, 221, 221, 1); pointer-events: none;\"></div>\n <lib-icon-button [field]=\"interchangeButtonObj\" />\n </div>\n <div class=\"col-5 col-lg-5 d-flex flex-column p-0\">\n <lib-select-textbox [field]=\"minimumAnnuityPayoutObj\" [(ngModel)]=\"minumumAnnuityPayout\"\n (ngModelChange)=\"onMinPremiumValueChange($event)\" />\n <div class=\"annuity-mat-hint\" *ngIf=\"minimumAnnuityPayoutObj?.configData?.numbertoword\">{{minimumAnnuityPayoutObj?.configData?.numbertoword}}</div>\n <div class=\"minium-annuity mt-3\" *ngIf=\"guranteedannuityObj['isVisible']\">\n <div class=\"annuity-msg w-100 px-2 py-1\">\n Value based on assumed 10% annual growth of Nifty 50 index.\n </div>\n <div class=\"w-100 px-2 py-1\">\n <lib-radio [field]=\"guranteedannuityObj\" [(ngModel)]=\"selectedGuranteedAnnuity\"\n (ngModelChange)=\"onGuranteedAnnuityChange($event)\" />\n </div>\n <div class=\"annuity-msg-1 d-flex align-items-center flex-nowrap w-100 px-2 py-1\">\n <img src=\"https://cdn.godigit.com/digitPlusAssets/streamline_graph-arrow-increase-remix.png\"\n style=\"max-width: 24px;\" />\n <span>Potential for higher returns by lowering the minimum guaranteed annuity rate.</span>\n </div>\n </div>\n\n </div>\n </div>\n <!-- <div class=\"vertical-line\"></div> -->\n <!-- <div class=\"custom-grid-template\">\n <div>\n <lib-toggle [field]=\"enableAutoDebitObj\" [(ngModel)]=\"isEnableAutoDebit\"\n (ngModelChange)=\"onEnableAutoDebitValueChange($event)\" />\n </div>\n </div> -->\n\n </div>\n\n\n <div class=\"card py-3 mb-4 border-top-0\" style=\"border-top-left-radius: 0px; border-top-right-radius: 0px;\">\n <div class=\"mx-4\">\n <div class=\"digit-boss-banner\" *ngIf=\"digitBossSwitch?.isVisible\">\n <lib-toggle [field]=\"digitBossToggleConfig\" [(ngModel)]=\"this.digitBossSwitch.isSwitchOn\" (ngModelChange)=\"onDigitBossSwitchChange($event)\"></lib-toggle>\n <div class=\"digit-boss-text\">\n {{this.digitBossSwitch?.prefixText}}\n <span class=\"highlight\">{{this.digitBossSwitch?.highlightText}}</span>\n {{this.digitBossSwitch?.subText}}\n <span class=\"arrow-icon\">\u2197</span>\n </div>\n </div>\n <lib-button [field]=\"recalculateButton\" (click)=\"calculateButtonClicked()\" />\n <div class=\"card mb-0 mt-2\"\n style=\"align-items: center;border:none;font-size: 8px;font-weight: 400;color:rgba(68, 68, 68, 1) \"\n >\n <div class=\"mx-4\" *ngIf=\"recalculateSubTextObj?.isVisible\"><img src=\"https://cdn.godigit.com/digitPlusAssets/Group+1010106336.png\"\n style=\"margin-left: 3px;\" />\n <span style=\"margin-left: 6px;\">Every time you make a change above, please click recalculate.</span>\n </div>\n </div>\n </div>\n <div\n style=\"display: flex;align-items: center;justify-content: center;border:none;font-size: 10px;font-weight: 700;height:32px;background-color: rgba(255, 250, 235, 1);gap: 8px;margin: 4px;\"\n *ngIf=\"annuityTableCalculator?.isVisible\">\n <img src=\"https://cdn.godigit.com/retail-life/calculator.svg\" />\n Minimum Guaranteed Payout(A) + Variable Payout(B) = Total Payout(C)\n </div>\n <!-- annuity calculator table -->\n <div class=\"annuity-tables-main-container\" *ngIf=\"annuityTableCalculator?.isVisible\">\n <div class=\"d-flex flex-row annuity-tables-container\">\n <!-- Table 1 -->\n <div class=\"annuity-calculator-table1\">\n <div class=\"table-header annuitytable1-header\">Minimum Guaranteed Annuity Payout(A)</div>\n <div class=\"table-body\">\n <div class=\"table-cell\"><span class=\"rupee-icon\">\u20B9</span><span\n style=\"font-size:12px; color: rgba(68, 68, 68, 1);\">\n <{{annuityTableCalculator.annuitycalculatorTable1val1}}>\n </span></div>\n <button class=\"annuitytable-button\">{{annuityTableCalculator.annuitycalculatorTable1val2}}</button>\n </div>\n </div>\n\n <div class=\"operator-symbol\">+</div>\n\n <!-- Table 2 -->\n <div class=\"annuity-calculator-table2\">\n <div class=\"table-header annuitytable1-header\">Assume growth of BenchMark index</div>\n <div class=\"table-body\">\n <div class=\"table-row\">@{{annuityTableCalculator.annuitycalculatorTable2val1}}</div>\n <div class=\"table-row\">@{{annuityTableCalculator.annuitycalculatorTable2val2}}</div>\n <div class=\"table-row\">@{{annuityTableCalculator.annuitycalculatorTable2val3}}</div>\n </div>\n </div>\n\n <!-- Table 3 -->\n <div class=\"annuity-calculator-table3\">\n <div class=\"table-header annuitytable1-header\">1st Variable Annuity Payout(B)</div>\n <div class=\"table-body\">\n <div class=\"table-row\"><span\n class=\"rupee-icon\">\u20B9</span>{{annuityTableCalculator.annuitycalculatorTable3val1}}</div>\n <div class=\"table-row\"><span\n class=\"rupee-icon\">\u20B9</span>{{annuityTableCalculator.annuitycalculatorTable3val2}}</div>\n <div class=\"table-row\"><span\n class=\"rupee-icon\">\u20B9</span>{{annuityTableCalculator.annuitycalculatorTable3val3}}</div>\n </div>\n </div>\n\n <div class=\"operator-symbol\">=</div>\n\n <!-- Table 4 -->\n <div class=\"annuity-calculator-table4\">\n <div class=\"table-header annuitytable4-header\">1st TotalPayout/Frequency(C)</div>\n <div class=\"table-body\">\n <div class=\"table-row annuitytable4-bg\"><span\n class=\"rupee-icon\">\u20B9</span>{{annuityTableCalculator.annuitycalculatorTable4val1}}</div>\n <div class=\"table-row annuitytable4-bg\"><span\n class=\"rupee-icon\">\u20B9</span>{{annuityTableCalculator.annuitycalculatorTable4val2}}</div>\n <div class=\"table-row annuitytable4-bg\"><span\n class=\"rupee-icon\">\u20B9</span>{{annuityTableCalculator.annuitycalculatorTable4val3}}</div>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"annuity-calculator-paragraph\" *ngIf=\"annuityTableCalculator?.isVisible\">\n <span class=\"annuity-calculator-paragraph1\">This is an assumed growth percentage for the index basis which the\n values in columns B and C are calculated.</span> Actual growth will depend on index performance and may affect\n your variable annuity payout and total annuity payout.\n </div>\n\n <div *ngIf=\"generateSummaryObj.isVisible\" class=\"generateSummary\">\n <lib-button [field]=\"generateSummaryObj\" (click)=\"generateSummaryClicked()\" />\n </div>\n </div>\n", styles: [".card-main-title{font-size:16px;font-family:Mulish!important;letter-spacing:0px!important;font-weight:800;line-height:24px;padding-bottom:16px}.col-5-5{flex:0 0 auto;max-width:44.16666667%}.custom-grid-template{display:grid;grid-template-columns:4fr .5fr 4fr;align-items:end}.vertical-line{border-left:2px solid #ccc;height:100px;margin:0 10px}.error-message{font-size:12px;font-weight:500;color:#e00;letter-spacing:0px}.annuity-msg{padding:4px 6px;margin-top:8px;font-size:10px;font-weight:400;color:#444;background-color:#e5f0fa;height:fit-content}.annuity-msg-1{padding:4px 6px;margin-top:8px;font-size:10px;font-weight:400;color:#444;background-color:#e6f7f3;height:fit-content;flex-wrap:nowrap!important}.annuity-tables-main-container{border:2px solid rgba(221,221,221,1);border-radius:8px;display:flex}.annuity-tables-container{display:flex;align-items:stretch;gap:0;width:100%}.annuity-calculator-table1,.annuity-calculator-table2,.annuity-calculator-table3,.annuity-calculator-table4{display:flex;flex-direction:column;height:100%;flex:1;color:#444;font-weight:400;font-size:10px}.annuity-calculator-table1{border-right:1px solid rgba(221,221,221,1)}.annuity-calculator-table2{border-left:1px solid rgba(221,221,221,1);border-right:1px solid rgba(221,221,221,1)}.annuity-calculator-table3{border-right:1px solid rgba(221,221,221,1)}.annuity-calculator-table4{border-left:1px solid rgba(221,221,221,1)}.table-header{padding:12px;font-size:10px;font-weight:700;text-align:center;border-bottom:1px solid rgba(221,221,221,1);height:60px;display:flex;align-items:center;justify-content:center;word-wrap:break-word;word-break:break-word;hyphens:auto}.annuitytable1-header{background-color:#ececec;color:#444}.annuitytable4-header{background-color:#fb03;color:#444}.table-body{display:flex;flex-direction:column;flex:1}.table-cell{padding:12px;text-align:center;font-size:16px;font-weight:600;flex:1;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:4px}.annuity-mat-hint{font-size:8px;text-align:start;font-weight:400;color:#444;letter-spacing:0px}.table-row{padding:12px;text-align:center;font-size:14px;font-weight:500;background-color:#fff;border-bottom:1px solid #999;flex:1;display:flex;align-items:center;justify-content:center}.table-row:last-child{border-bottom:none}.annuitytable4-bg{background-color:#e6f7f3!important;color:#444}.annuitytable-button{background-color:#ececec;border:none;border-radius:4px;padding:2px 8px;font-size:10px;font-weight:700;cursor:pointer;margin-top:0;width:auto;min-width:30%;max-width:90%;height:24px;display:block;margin-left:auto;margin-right:auto;position:relative;bottom:40px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rupee-icon{font-weight:700;margin-right:2px;font-size:12px;color:#444}.operator-symbol{display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;padding:0 16px;color:#f90}.annuity-calculator-paragraph{padding:16px 8px 4px;font-size:10px;margin:0 0 20px auto;width:73%;font-weight:400;color:#444;background-color:#ebf1ff}.annuity-calculator-paragraph1{font-weight:700;font-size:10px}.minium-annuity{display:flex;flex-direction:column}@media (max-width: 991px) and (min-width: 768px){.table-header{padding:8px 4px;font-size:9px;line-height:1.1}}@media (max-width: 767px) and (min-width: 576px){.table-header{padding:10px 6px;font-size:9px}}@media (max-width: 575px){.table-header{padding:8px 4px;font-size:8px}}@media (max-width: 575px){.annuity-msg{font-size:10px;line-height:1;height:fit-content}}@media (max-width: 575px){.annuity-msg-1{font-size:10px;line-height:1;flex-wrap:nowrap!important;height:fit-content}.annuity-msg-1 .img{width:4px;height:4px}}@media (max-width: 991px) and (min-width: 768px){.annuity-msg,.annuity-msg-1{font-size:9px;line-height:1.1;height:fit-content}}@media (max-width: 767px) and (min-width: 576px){.annuity-msg,.annuity-msg-1{font-size:10px;line-height:1.1;height:fit-content}}.digit-boss-banner{background-color:#333;color:#fff;display:flex;align-items:center;padding:8px 16px;border-radius:4px;margin-bottom:16px;gap:8px;font-size:12px;min-height:16px;opacity:1;transform:rotate(0)}.digit-boss-banner ::ng-deep .toggle-background{margin-top:0!important;padding:0!important;background-color:transparent!important;border:none!important}.digit-boss-banner ::ng-deep .toggle_switch{margin-top:0!important;gap:0!important}.digit-boss-text{display:flex;align-items:center;gap:4px;white-space:nowrap}.highlight{color:#fb0;font-weight:700}.arrow-icon{color:#fb0;margin-left:4px;font-size:14px}.generateSummary{margin-right:.4rem;margin-left:.4rem}\n"], dependencies: [{ kind: "component", type: ToggleComponent, selector: "lib-toggle", inputs: ["field", "reactiveFormControlobject"], outputs: ["change"] }, { kind: "component", type: SelectTextboxComponent, selector: "lib-select-textbox", inputs: ["field", "reactiveFormControlobject"], outputs: ["selectionChange"] }, { kind: "component", type: ButtonComponent, selector: "lib-button", inputs: ["field"] }, { kind: "component", type: IconButtonComponent, selector: "lib-icon-button", inputs: ["field"] }, { kind: "component", type: RadioComponent, selector: "lib-radio", inputs: ["reactiveFormControlobject", "field"], outputs: ["change"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
900
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: AnnuityPremiumCalculatorComponent, isStandalone: true, selector: "lib-annuity-premium-calculator", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, premiumDetails: { classPropertyName: "premiumDetails", publicName: "premiumDetails", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onCalcualteButtonClick: "onCalcualteButtonClick", onGenerateSummaryClick: "onGenerateSummaryClick", onAnnuityPremiumChange: "onAnnuityPremiumChange", onMinimumPremiumValueChange: "onMinimumPremiumValueChange", onAutioDebitValueChange: "onAutioDebitValueChange", onGuranteedAnnuityValueChange: "onGuranteedAnnuityValueChange", onDigitBossSwitchToggle: "onDigitBossSwitchToggle" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"card px-3\" style=\"padding: 16px;\">\n <div class=\"row\">\n <h4 class=\"card-main-title\"><span style=\"margin-right: 12px;\"><img\n src=\"https://cdn.godigit.com/retail-life/calculator.svg\" alt=\"annuity calculator\"></span>Here's Your Premium to Annuity Calculator</h4>\n </div>\n <!-- <div class=\"row\"> -->\n <div class=\"card pb-4 px-4\" style=\"border-bottom-left-radius: 0px; border-bottom-right-radius: 0px;\">\n <!-- <div class=\"custom-grid-template\">\n\n </div> -->\n\n <div class=\"row mx-auto\" style=\"transform: translate(0px, -58%);\">\n <lib-toggle class=\"col-auto\" [field]=\"annuityPremiumToggleObj\" />\n </div>\n <!-- </div> -->\n <div class=\" col-12\" style=\"\n justify-content: center;\n flex-direction: row;\n display: flex;\n\">\n <div class=\"col-5 col-lg-5 d-flex flex-column p-0\">\n <lib-select-textbox [field]=\"annuityPremiumObj\" [(ngModel)]=\"annuityPremium\"\n (ngModelChange)=\"onAnnuityPremiumValueChange($event)\" />\n <div class=\"error-message\" *ngIf=\"validations.ispremiumEntry\">\n Enter Premium\n </div>\n <div class=\"annuity-mat-hint\" *ngIf=\"annuityPremiumObj?.configData?.numbertoword\">{{annuityPremiumObj?.configData?.numbertoword}}</div>\n <div>\n <lib-toggle [field]=\"enableAutoDebitObj\" [(ngModel)]=\"isEnableAutoDebit\"\n (ngModelChange)=\"onEnableAutoDebitValueChange($event)\" />\n </div>\n </div>\n <div class=\"col-2 col-lg-2 d-flex justify-content-center align-items-center\"\n style=\"display: flex; align-items: flex-end; transform: translate(0px, 6px); position: relative; height: auto; min-height: 100%;\">\n <!-- Top line -->\n <div style=\"position: absolute; left: 50%; transform: translateX(-50%); width: 1px; height: calc(50% + 24px); top: -37px; background: rgba(221, 221, 221, 1); pointer-events: none;\"></div>\n <!-- Bottom line -->\n <div style=\"position: absolute; left: 50%; transform: translateX(-50%); width: 1px; height: calc(50% + 24px); bottom: -37px; background: rgba(221, 221, 221, 1); pointer-events: none;\"></div>\n <lib-icon-button [field]=\"interchangeButtonObj\" />\n </div>\n <div class=\"col-5 col-lg-5 d-flex flex-column p-0\">\n <lib-select-textbox [field]=\"minimumAnnuityPayoutObj\" [(ngModel)]=\"minumumAnnuityPayout\"\n (ngModelChange)=\"onMinPremiumValueChange($event)\" />\n <div class=\"annuity-mat-hint\" *ngIf=\"minimumAnnuityPayoutObj?.configData?.numbertoword\">{{minimumAnnuityPayoutObj?.configData?.numbertoword}}</div>\n <div class=\"minium-annuity mt-3\" *ngIf=\"guranteedannuityObj['isVisible']\">\n <div class=\"annuity-msg w-100 px-2 py-1\">\n Value based on assumed 10% annual growth of Nifty 50 index.\n </div>\n <div class=\"w-100 px-2 py-1\">\n <lib-radio [field]=\"guranteedannuityObj\" [(ngModel)]=\"selectedGuranteedAnnuity\"\n (ngModelChange)=\"onGuranteedAnnuityChange($event)\" />\n </div>\n <div class=\"annuity-msg-1 d-flex align-items-center flex-nowrap w-100 px-2 py-1\">\n <img src=\"https://cdn.godigit.com/digitPlusAssets/streamline_graph-arrow-increase-remix.png\"\n style=\"max-width: 24px;\" />\n <span>Potential for higher returns by lowering the minimum guaranteed annuity rate.</span>\n </div>\n </div>\n\n </div>\n </div>\n <!-- <div class=\"vertical-line\"></div> -->\n <!-- <div class=\"custom-grid-template\">\n <div>\n <lib-toggle [field]=\"enableAutoDebitObj\" [(ngModel)]=\"isEnableAutoDebit\"\n (ngModelChange)=\"onEnableAutoDebitValueChange($event)\" />\n </div>\n </div> -->\n\n </div>\n\n\n <div class=\"card py-3 mb-4 border-top-0\" style=\"border-top-left-radius: 0px; border-top-right-radius: 0px;\">\n <div class=\"mx-4\">\n <div class=\"digit-boss-banner\" *ngIf=\"digitBossSwitch?.isVisible\">\n <lib-toggle [field]=\"digitBossToggleConfig\" [(ngModel)]=\"this.digitBossSwitch.isSwitchOn\" (ngModelChange)=\"onDigitBossSwitchChange($event)\"></lib-toggle>\n <div class=\"digit-boss-text\">\n {{this.digitBossSwitch?.prefixText}}\n <span class=\"highlight\">{{this.digitBossSwitch?.highlightText}}</span>\n {{this.digitBossSwitch?.subText}}\n <span class=\"arrow-icon\">\u2197</span>\n </div>\n </div>\n <lib-button [field]=\"recalculateButton\" (click)=\"calculateButtonClicked()\" />\n <div class=\"card mb-0 mt-2\"\n style=\"align-items: center;border:none;font-size: 8px;font-weight: 400;color:rgba(68, 68, 68, 1) \"\n >\n <div class=\"mx-4\" *ngIf=\"recalculateSubTextObj?.isVisible\"><img src=\"https://cdn.godigit.com/digitPlusAssets/Group+1010106336.png\"\n style=\"margin-left: 3px;\" />\n <span style=\"margin-left: 6px;\">Every time you make a change above, please click recalculate.</span>\n </div>\n </div>\n </div>\n <div\n style=\"display: flex;align-items: center;justify-content: center;border:none;font-size: 10px;font-weight: 700;height:32px;background-color: rgba(255, 250, 235, 1);gap: 8px;margin: 4px;\"\n *ngIf=\"annuityTableCalculator?.isVisible\">\n <img src=\"https://cdn.godigit.com/retail-life/calculator.svg\" />\n Minimum Guaranteed Payout(A) + Variable Payout(B) = Total Payout(C)\n </div>\n <!-- annuity calculator table -->\n <div class=\"annuity-tables-main-container\" *ngIf=\"annuityTableCalculator?.isVisible\">\n <div class=\"d-flex flex-row annuity-tables-container\">\n <!-- Table 1 -->\n <div class=\"annuity-calculator-table1\">\n <div class=\"table-header annuitytable1-header\">Minimum Guaranteed Annuity Payout(A)</div>\n <div class=\"table-body\">\n <div class=\"table-cell\"><span class=\"rupee-icon\">\u20B9</span><span\n style=\"font-size:12px; color: rgba(68, 68, 68, 1);\">\n <{{annuityTableCalculator.annuitycalculatorTable1val1}}>\n </span></div>\n <button class=\"annuitytable-button\">{{annuityTableCalculator.annuitycalculatorTable1val2}}</button>\n </div>\n </div>\n\n <div class=\"operator-symbol\">+</div>\n\n <!-- Table 2 -->\n <div class=\"annuity-calculator-table2\">\n <div class=\"table-header annuitytable1-header\">Assume growth of BenchMark index</div>\n <div class=\"table-body\">\n <div class=\"table-row\">@{{annuityTableCalculator.annuitycalculatorTable2val1}}</div>\n <div class=\"table-row\">@{{annuityTableCalculator.annuitycalculatorTable2val2}}</div>\n <div class=\"table-row\">@{{annuityTableCalculator.annuitycalculatorTable2val3}}</div>\n </div>\n </div>\n\n <!-- Table 3 -->\n <div class=\"annuity-calculator-table3\">\n <div class=\"table-header annuitytable1-header\">1st Variable Annuity Payout(B)</div>\n <div class=\"table-body\">\n <div class=\"table-row\"><span\n class=\"rupee-icon\">\u20B9</span>{{annuityTableCalculator.annuitycalculatorTable3val1}}</div>\n <div class=\"table-row\"><span\n class=\"rupee-icon\">\u20B9</span>{{annuityTableCalculator.annuitycalculatorTable3val2}}</div>\n <div class=\"table-row\"><span\n class=\"rupee-icon\">\u20B9</span>{{annuityTableCalculator.annuitycalculatorTable3val3}}</div>\n </div>\n </div>\n\n <div class=\"operator-symbol\">=</div>\n\n <!-- Table 4 -->\n <div class=\"annuity-calculator-table4\">\n <div class=\"table-header annuitytable4-header\">1st TotalPayout/Frequency(C)</div>\n <div class=\"table-body\">\n <div class=\"table-row annuitytable4-bg\"><span\n class=\"rupee-icon\">\u20B9</span>{{annuityTableCalculator.annuitycalculatorTable4val1}}</div>\n <div class=\"table-row annuitytable4-bg\"><span\n class=\"rupee-icon\">\u20B9</span>{{annuityTableCalculator.annuitycalculatorTable4val2}}</div>\n <div class=\"table-row annuitytable4-bg\"><span\n class=\"rupee-icon\">\u20B9</span>{{annuityTableCalculator.annuitycalculatorTable4val3}}</div>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"annuity-calculator-paragraph\" *ngIf=\"annuityTableCalculator?.isVisible\">\n <span class=\"annuity-calculator-paragraph1\">This is an assumed growth percentage for the index basis which the\n values in columns B and C are calculated.</span> Actual growth will depend on index performance and may affect\n your variable annuity payout and total annuity payout.\n </div>\n\n <div *ngIf=\"generateSummaryObj.isVisible\" class=\"generateSummary\">\n <lib-button [field]=\"generateSummaryObj\" (click)=\"generateSummaryClicked()\" />\n </div>\n </div>\n", styles: [".card-main-title{font-size:16px;font-family:Mulish!important;letter-spacing:0px!important;font-weight:800;line-height:24px;padding-bottom:16px}.col-5-5{flex:0 0 auto;max-width:44.16666667%}.custom-grid-template{display:grid;grid-template-columns:4fr .5fr 4fr;align-items:end}.vertical-line{border-left:2px solid #ccc;height:100px;margin:0 10px}.error-message{font-size:12px;font-weight:500;color:#e00;letter-spacing:0px}.annuity-msg{padding:4px 6px;margin-top:8px;font-size:10px;font-weight:400;color:#444;background-color:#e5f0fa;height:fit-content}.annuity-msg-1{padding:4px 6px;margin-top:8px;font-size:10px;font-weight:400;color:#444;background-color:#e6f7f3;height:fit-content;flex-wrap:nowrap!important}.annuity-tables-main-container{border:2px solid rgba(221,221,221,1);border-radius:8px;display:flex}.annuity-tables-container{display:flex;align-items:stretch;gap:0;width:100%}.annuity-calculator-table1,.annuity-calculator-table2,.annuity-calculator-table3,.annuity-calculator-table4{display:flex;flex-direction:column;height:100%;flex:1;color:#444;font-weight:400;font-size:10px}.annuity-calculator-table1{border-right:1px solid rgba(221,221,221,1)}.annuity-calculator-table2{border-left:1px solid rgba(221,221,221,1);border-right:1px solid rgba(221,221,221,1)}.annuity-calculator-table3{border-right:1px solid rgba(221,221,221,1)}.annuity-calculator-table4{border-left:1px solid rgba(221,221,221,1)}.table-header{padding:12px;font-size:10px;font-weight:700;text-align:center;border-bottom:1px solid rgba(221,221,221,1);height:60px;display:flex;align-items:center;justify-content:center;word-wrap:break-word;word-break:break-word;hyphens:auto}.annuitytable1-header{background-color:#ececec;color:#444}.annuitytable4-header{background-color:#fb03;color:#444}.table-body{display:flex;flex-direction:column;flex:1}.table-cell{padding:12px;text-align:center;font-size:16px;font-weight:600;flex:1;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:4px}.annuity-mat-hint{font-size:8px;text-align:start;font-weight:400;color:#444;letter-spacing:0px}.table-row{padding:12px;text-align:center;font-size:14px;font-weight:500;background-color:#fff;border-bottom:1px solid #999;flex:1;display:flex;align-items:center;justify-content:center}.table-row:last-child{border-bottom:none}.annuitytable4-bg{background-color:#e6f7f3!important;color:#444}.annuitytable-button{background-color:#ececec;border:none;border-radius:4px;padding:2px 8px;font-size:10px;font-weight:700;cursor:pointer;margin-top:0;width:auto;min-width:30%;max-width:90%;height:24px;display:block;margin-left:auto;margin-right:auto;position:relative;bottom:40px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rupee-icon{font-weight:700;margin-right:2px;font-size:12px;color:#444}.operator-symbol{display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;padding:0 16px;color:#f90}.annuity-calculator-paragraph{padding:16px 8px 4px;font-size:10px;margin:0 0 20px auto;width:73%;font-weight:400;color:#444;background-color:#ebf1ff}.annuity-calculator-paragraph1{font-weight:700;font-size:10px}.minium-annuity{display:flex;flex-direction:column}@media (max-width: 991px) and (min-width: 768px){.table-header{padding:8px 4px;font-size:9px;line-height:1.1}}@media (max-width: 767px) and (min-width: 576px){.table-header{padding:10px 6px;font-size:9px}}@media (max-width: 575px){.table-header{padding:8px 4px;font-size:8px}}@media (max-width: 575px){.annuity-msg{font-size:10px;line-height:1;height:fit-content}}@media (max-width: 575px){.annuity-msg-1{font-size:10px;line-height:1;flex-wrap:nowrap!important;height:fit-content}.annuity-msg-1 .img{width:4px;height:4px}}@media (max-width: 991px) and (min-width: 768px){.annuity-msg,.annuity-msg-1{font-size:9px;line-height:1.1;height:fit-content}}@media (max-width: 767px) and (min-width: 576px){.annuity-msg,.annuity-msg-1{font-size:10px;line-height:1.1;height:fit-content}}.digit-boss-banner{background-color:#333;color:#fff;display:flex;align-items:center;padding:8px 16px;border-radius:4px;margin-bottom:16px;gap:8px;font-size:12px;min-height:16px;opacity:1;transform:rotate(0)}.digit-boss-banner ::ng-deep .toggle-background{margin-top:0!important;padding:0!important;background-color:transparent!important;border:none!important}.digit-boss-banner ::ng-deep .toggle_switch{margin-top:0!important;gap:0!important}.digit-boss-text{display:flex;align-items:center;gap:4px;white-space:nowrap}.highlight{color:#fb0;font-weight:700}.arrow-icon{color:#fb0;margin-left:4px;font-size:14px}.generateSummary{margin-right:.4rem;margin-left:.4rem}\n"], dependencies: [{ kind: "component", type: ToggleComponent, selector: "lib-toggle", inputs: ["field", "reactiveFormControlobject"], outputs: ["change"] }, { kind: "component", type: SelectTextboxComponent, selector: "lib-select-textbox", inputs: ["field", "reactiveFormControlobject"], outputs: ["selectionChange"] }, { kind: "component", type: ButtonComponent, selector: "lib-button", inputs: ["field"] }, { kind: "component", type: IconButtonComponent, selector: "lib-icon-button", inputs: ["field"] }, { kind: "component", type: RadioComponent, selector: "lib-radio", inputs: ["reactiveFormControlobject", "field"], outputs: ["change"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
901
901
|
}
|
|
902
902
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnuityPremiumCalculatorComponent, decorators: [{
|
|
903
903
|
type: Component,
|
|
@@ -909,7 +909,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
909
909
|
RadioComponent,
|
|
910
910
|
CommonModule,
|
|
911
911
|
FormsModule
|
|
912
|
-
], template: "<div class=\"card px-3\" style=\"padding: 16px;\">\n <div class=\"row\">\n <h4 class=\"card-main-title\"><span style=\"margin-right: 12px;\"><img\n src=\"https://cdn.godigit.com/retail-life/calculator.svg\" alt=\"annuity calculator\"></span>Here\u2019s Your Investment to Returns Calculator.</h4>\n </div>\n <!-- <div class=\"row\"> -->\n <div class=\"card pb-4 px-4\" style=\"border-bottom-left-radius: 0px; border-bottom-right-radius: 0px;\">\n <!-- <div class=\"custom-grid-template\">\n\n </div> -->\n\n <div class=\"row mx-auto\" style=\"transform: translate(0px, -58%);\">\n <lib-toggle class=\"col-auto\" [field]=\"annuityPremiumToggleObj\" />\n </div>\n <!-- </div> -->\n <div class=\" col-12\" style=\"\n justify-content: center;\n flex-direction: row;\n display: flex;\n\">\n <div class=\"col-5 col-lg-5 d-flex flex-column p-0\">\n <lib-select-textbox [field]=\"annuityPremiumObj\" [(ngModel)]=\"annuityPremium\"\n (ngModelChange)=\"onAnnuityPremiumValueChange($event)\" />\n <div class=\"error-message\" *ngIf=\"validations.ispremiumEntry\">\n Enter Premium\n </div>\n <div class=\"annuity-mat-hint\" *ngIf=\"annuityPremiumObj?.configData?.numbertoword\">{{annuityPremiumObj?.configData?.numbertoword}}</div>\n <div>\n <lib-toggle [field]=\"enableAutoDebitObj\" [(ngModel)]=\"isEnableAutoDebit\"\n (ngModelChange)=\"onEnableAutoDebitValueChange($event)\" />\n </div>\n </div>\n <div class=\"col-2 col-lg-2 d-flex justify-content-center align-items-center\"\n style=\"display: flex; align-items: flex-end; transform: translate(0px, 6px); position: relative; height: auto; min-height: 100%;\">\n <!-- Top line -->\n <div style=\"position: absolute; left: 50%; transform: translateX(-50%); width: 1px; height: calc(50% + 24px); top: -37px; background: rgba(221, 221, 221, 1); pointer-events: none;\"></div>\n <!-- Bottom line -->\n <div style=\"position: absolute; left: 50%; transform: translateX(-50%); width: 1px; height: calc(50% + 24px); bottom: -37px; background: rgba(221, 221, 221, 1); pointer-events: none;\"></div>\n <lib-icon-button [field]=\"interchangeButtonObj\" />\n </div>\n <div class=\"col-5 col-lg-5 d-flex flex-column p-0\">\n <lib-select-textbox [field]=\"minimumAnnuityPayoutObj\" [(ngModel)]=\"minumumAnnuityPayout\"\n (ngModelChange)=\"onMinPremiumValueChange($event)\" />\n <div class=\"annuity-mat-hint\" *ngIf=\"minimumAnnuityPayoutObj?.configData?.numbertoword\">{{minimumAnnuityPayoutObj?.configData?.numbertoword}}</div>\n <div class=\"minium-annuity mt-3\" *ngIf=\"guranteedannuityObj['isVisible']\">\n <div class=\"annuity-msg w-100 px-2 py-1\">\n Value based on assumed 10% annual growth of Nifty 50 index.\n </div>\n <div class=\"w-100 px-2 py-1\">\n <lib-radio [field]=\"guranteedannuityObj\" [(ngModel)]=\"selectedGuranteedAnnuity\"\n (ngModelChange)=\"onGuranteedAnnuityChange($event)\" />\n </div>\n <div class=\"annuity-msg-1 d-flex align-items-center flex-nowrap w-100 px-2 py-1\">\n <img src=\"https://cdn.godigit.com/digitPlusAssets/streamline_graph-arrow-increase-remix.png\"\n style=\"max-width: 24px;\" />\n <span>Potential for higher returns by lowering the minimum guaranteed annuity rate.</span>\n </div>\n </div>\n\n </div>\n </div>\n <!-- <div class=\"vertical-line\"></div> -->\n <!-- <div class=\"custom-grid-template\">\n <div>\n <lib-toggle [field]=\"enableAutoDebitObj\" [(ngModel)]=\"isEnableAutoDebit\"\n (ngModelChange)=\"onEnableAutoDebitValueChange($event)\" />\n </div>\n </div> -->\n\n </div>\n\n\n <div class=\"card py-3 mb-4 border-top-0\" style=\"border-top-left-radius: 0px; border-top-right-radius: 0px;\">\n <div class=\"mx-4\">\n <div class=\"digit-boss-banner\" *ngIf=\"digitBossSwitch?.isVisible\">\n <lib-toggle [field]=\"digitBossToggleConfig\" [(ngModel)]=\"this.digitBossSwitch.isSwitchOn\" (ngModelChange)=\"onDigitBossSwitchChange($event)\"></lib-toggle>\n <div class=\"digit-boss-text\">\n {{this.digitBossSwitch?.prefixText}}\n <span class=\"highlight\">{{this.digitBossSwitch?.highlightText}}</span>\n {{this.digitBossSwitch?.subText}}\n <span class=\"arrow-icon\">\u2197</span>\n </div>\n </div>\n <lib-button [field]=\"recalculateButton\" (click)=\"calculateButtonClicked()\" />\n <div class=\"card mb-0 mt-2\"\n style=\"align-items: center;border:none;font-size: 8px;font-weight: 400;color:rgba(68, 68, 68, 1) \"\n >\n <div class=\"mx-4\" *ngIf=\"recalculateSubTextObj?.isVisible\"><img src=\"https://cdn.godigit.com/digitPlusAssets/Group+1010106336.png\"\n style=\"margin-left: 3px;\" />\n <span style=\"margin-left: 6px;\">Every time you make a change above, please click recalculate.</span>\n </div>\n </div>\n </div>\n <div\n style=\"display: flex;align-items: center;justify-content: center;border:none;font-size: 10px;font-weight: 700;height:32px;background-color: rgba(255, 250, 235, 1);gap: 8px;margin: 4px;\"\n *ngIf=\"annuityTableCalculator?.isVisible\">\n <img src=\"https://cdn.godigit.com/retail-life/calculator.svg\" />\n Minimum Guaranteed Payout(A) + Variable Payout(B) = Total Payout(C)\n </div>\n <!-- annuity calculator table -->\n <div class=\"annuity-tables-main-container\" *ngIf=\"annuityTableCalculator?.isVisible\">\n <div class=\"d-flex flex-row annuity-tables-container\">\n <!-- Table 1 -->\n <div class=\"annuity-calculator-table1\">\n <div class=\"table-header annuitytable1-header\">Minimum Guaranteed Annuity Payout(A)</div>\n <div class=\"table-body\">\n <div class=\"table-cell\"><span class=\"rupee-icon\">\u20B9</span><span\n style=\"font-size:12px; color: rgba(68, 68, 68, 1);\">\n <{{annuityTableCalculator.annuitycalculatorTable1val1}}>\n </span></div>\n <button class=\"annuitytable-button\">{{annuityTableCalculator.annuitycalculatorTable1val2}}</button>\n </div>\n </div>\n\n <div class=\"operator-symbol\">+</div>\n\n <!-- Table 2 -->\n <div class=\"annuity-calculator-table2\">\n <div class=\"table-header annuitytable1-header\">Assume growth of BenchMark index</div>\n <div class=\"table-body\">\n <div class=\"table-row\">@{{annuityTableCalculator.annuitycalculatorTable2val1}}</div>\n <div class=\"table-row\">@{{annuityTableCalculator.annuitycalculatorTable2val2}}</div>\n <div class=\"table-row\">@{{annuityTableCalculator.annuitycalculatorTable2val3}}</div>\n </div>\n </div>\n\n <!-- Table 3 -->\n <div class=\"annuity-calculator-table3\">\n <div class=\"table-header annuitytable1-header\">1st Variable Annuity Payout(B)</div>\n <div class=\"table-body\">\n <div class=\"table-row\"><span\n class=\"rupee-icon\">\u20B9</span>{{annuityTableCalculator.annuitycalculatorTable3val1}}</div>\n <div class=\"table-row\"><span\n class=\"rupee-icon\">\u20B9</span>{{annuityTableCalculator.annuitycalculatorTable3val2}}</div>\n <div class=\"table-row\"><span\n class=\"rupee-icon\">\u20B9</span>{{annuityTableCalculator.annuitycalculatorTable3val3}}</div>\n </div>\n </div>\n\n <div class=\"operator-symbol\">=</div>\n\n <!-- Table 4 -->\n <div class=\"annuity-calculator-table4\">\n <div class=\"table-header annuitytable4-header\">1st TotalPayout/Frequency(C)</div>\n <div class=\"table-body\">\n <div class=\"table-row annuitytable4-bg\"><span\n class=\"rupee-icon\">\u20B9</span>{{annuityTableCalculator.annuitycalculatorTable4val1}}</div>\n <div class=\"table-row annuitytable4-bg\"><span\n class=\"rupee-icon\">\u20B9</span>{{annuityTableCalculator.annuitycalculatorTable4val2}}</div>\n <div class=\"table-row annuitytable4-bg\"><span\n class=\"rupee-icon\">\u20B9</span>{{annuityTableCalculator.annuitycalculatorTable4val3}}</div>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"annuity-calculator-paragraph\" *ngIf=\"annuityTableCalculator?.isVisible\">\n <span class=\"annuity-calculator-paragraph1\">This is an assumed growth percentage for the index basis which the\n values in columns B and C are calculated.</span> Actual growth will depend on index performance and may affect\n your variable annuity payout and total annuity payout.\n </div>\n\n <div *ngIf=\"generateSummaryObj.isVisible\" class=\"generateSummary\">\n <lib-button [field]=\"generateSummaryObj\" (click)=\"generateSummaryClicked()\" />\n </div>\n </div>\n", styles: [".card-main-title{font-size:16px;font-family:Mulish!important;letter-spacing:0px!important;font-weight:800;line-height:24px;padding-bottom:16px}.col-5-5{flex:0 0 auto;max-width:44.16666667%}.custom-grid-template{display:grid;grid-template-columns:4fr .5fr 4fr;align-items:end}.vertical-line{border-left:2px solid #ccc;height:100px;margin:0 10px}.error-message{font-size:12px;font-weight:500;color:#e00;letter-spacing:0px}.annuity-msg{padding:4px 6px;margin-top:8px;font-size:10px;font-weight:400;color:#444;background-color:#e5f0fa;height:fit-content}.annuity-msg-1{padding:4px 6px;margin-top:8px;font-size:10px;font-weight:400;color:#444;background-color:#e6f7f3;height:fit-content;flex-wrap:nowrap!important}.annuity-tables-main-container{border:2px solid rgba(221,221,221,1);border-radius:8px;display:flex}.annuity-tables-container{display:flex;align-items:stretch;gap:0;width:100%}.annuity-calculator-table1,.annuity-calculator-table2,.annuity-calculator-table3,.annuity-calculator-table4{display:flex;flex-direction:column;height:100%;flex:1;color:#444;font-weight:400;font-size:10px}.annuity-calculator-table1{border-right:1px solid rgba(221,221,221,1)}.annuity-calculator-table2{border-left:1px solid rgba(221,221,221,1);border-right:1px solid rgba(221,221,221,1)}.annuity-calculator-table3{border-right:1px solid rgba(221,221,221,1)}.annuity-calculator-table4{border-left:1px solid rgba(221,221,221,1)}.table-header{padding:12px;font-size:10px;font-weight:700;text-align:center;border-bottom:1px solid rgba(221,221,221,1);height:60px;display:flex;align-items:center;justify-content:center;word-wrap:break-word;word-break:break-word;hyphens:auto}.annuitytable1-header{background-color:#ececec;color:#444}.annuitytable4-header{background-color:#fb03;color:#444}.table-body{display:flex;flex-direction:column;flex:1}.table-cell{padding:12px;text-align:center;font-size:16px;font-weight:600;flex:1;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:4px}.annuity-mat-hint{font-size:8px;text-align:start;font-weight:400;color:#444;letter-spacing:0px}.table-row{padding:12px;text-align:center;font-size:14px;font-weight:500;background-color:#fff;border-bottom:1px solid #999;flex:1;display:flex;align-items:center;justify-content:center}.table-row:last-child{border-bottom:none}.annuitytable4-bg{background-color:#e6f7f3!important;color:#444}.annuitytable-button{background-color:#ececec;border:none;border-radius:4px;padding:2px 8px;font-size:10px;font-weight:700;cursor:pointer;margin-top:0;width:auto;min-width:30%;max-width:90%;height:24px;display:block;margin-left:auto;margin-right:auto;position:relative;bottom:40px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rupee-icon{font-weight:700;margin-right:2px;font-size:12px;color:#444}.operator-symbol{display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;padding:0 16px;color:#f90}.annuity-calculator-paragraph{padding:16px 8px 4px;font-size:10px;margin:0 0 20px auto;width:73%;font-weight:400;color:#444;background-color:#ebf1ff}.annuity-calculator-paragraph1{font-weight:700;font-size:10px}.minium-annuity{display:flex;flex-direction:column}@media (max-width: 991px) and (min-width: 768px){.table-header{padding:8px 4px;font-size:9px;line-height:1.1}}@media (max-width: 767px) and (min-width: 576px){.table-header{padding:10px 6px;font-size:9px}}@media (max-width: 575px){.table-header{padding:8px 4px;font-size:8px}}@media (max-width: 575px){.annuity-msg{font-size:10px;line-height:1;height:fit-content}}@media (max-width: 575px){.annuity-msg-1{font-size:10px;line-height:1;flex-wrap:nowrap!important;height:fit-content}.annuity-msg-1 .img{width:4px;height:4px}}@media (max-width: 991px) and (min-width: 768px){.annuity-msg,.annuity-msg-1{font-size:9px;line-height:1.1;height:fit-content}}@media (max-width: 767px) and (min-width: 576px){.annuity-msg,.annuity-msg-1{font-size:10px;line-height:1.1;height:fit-content}}.digit-boss-banner{background-color:#333;color:#fff;display:flex;align-items:center;padding:8px 16px;border-radius:4px;margin-bottom:16px;gap:8px;font-size:12px;min-height:16px;opacity:1;transform:rotate(0)}.digit-boss-banner ::ng-deep .toggle-background{margin-top:0!important;padding:0!important;background-color:transparent!important;border:none!important}.digit-boss-banner ::ng-deep .toggle_switch{margin-top:0!important;gap:0!important}.digit-boss-text{display:flex;align-items:center;gap:4px;white-space:nowrap}.highlight{color:#fb0;font-weight:700}.arrow-icon{color:#fb0;margin-left:4px;font-size:14px}.generateSummary{margin-right:.4rem;margin-left:.4rem}\n"] }]
|
|
912
|
+
], template: "<div class=\"card px-3\" style=\"padding: 16px;\">\n <div class=\"row\">\n <h4 class=\"card-main-title\"><span style=\"margin-right: 12px;\"><img\n src=\"https://cdn.godigit.com/retail-life/calculator.svg\" alt=\"annuity calculator\"></span>Here's Your Premium to Annuity Calculator</h4>\n </div>\n <!-- <div class=\"row\"> -->\n <div class=\"card pb-4 px-4\" style=\"border-bottom-left-radius: 0px; border-bottom-right-radius: 0px;\">\n <!-- <div class=\"custom-grid-template\">\n\n </div> -->\n\n <div class=\"row mx-auto\" style=\"transform: translate(0px, -58%);\">\n <lib-toggle class=\"col-auto\" [field]=\"annuityPremiumToggleObj\" />\n </div>\n <!-- </div> -->\n <div class=\" col-12\" style=\"\n justify-content: center;\n flex-direction: row;\n display: flex;\n\">\n <div class=\"col-5 col-lg-5 d-flex flex-column p-0\">\n <lib-select-textbox [field]=\"annuityPremiumObj\" [(ngModel)]=\"annuityPremium\"\n (ngModelChange)=\"onAnnuityPremiumValueChange($event)\" />\n <div class=\"error-message\" *ngIf=\"validations.ispremiumEntry\">\n Enter Premium\n </div>\n <div class=\"annuity-mat-hint\" *ngIf=\"annuityPremiumObj?.configData?.numbertoword\">{{annuityPremiumObj?.configData?.numbertoword}}</div>\n <div>\n <lib-toggle [field]=\"enableAutoDebitObj\" [(ngModel)]=\"isEnableAutoDebit\"\n (ngModelChange)=\"onEnableAutoDebitValueChange($event)\" />\n </div>\n </div>\n <div class=\"col-2 col-lg-2 d-flex justify-content-center align-items-center\"\n style=\"display: flex; align-items: flex-end; transform: translate(0px, 6px); position: relative; height: auto; min-height: 100%;\">\n <!-- Top line -->\n <div style=\"position: absolute; left: 50%; transform: translateX(-50%); width: 1px; height: calc(50% + 24px); top: -37px; background: rgba(221, 221, 221, 1); pointer-events: none;\"></div>\n <!-- Bottom line -->\n <div style=\"position: absolute; left: 50%; transform: translateX(-50%); width: 1px; height: calc(50% + 24px); bottom: -37px; background: rgba(221, 221, 221, 1); pointer-events: none;\"></div>\n <lib-icon-button [field]=\"interchangeButtonObj\" />\n </div>\n <div class=\"col-5 col-lg-5 d-flex flex-column p-0\">\n <lib-select-textbox [field]=\"minimumAnnuityPayoutObj\" [(ngModel)]=\"minumumAnnuityPayout\"\n (ngModelChange)=\"onMinPremiumValueChange($event)\" />\n <div class=\"annuity-mat-hint\" *ngIf=\"minimumAnnuityPayoutObj?.configData?.numbertoword\">{{minimumAnnuityPayoutObj?.configData?.numbertoword}}</div>\n <div class=\"minium-annuity mt-3\" *ngIf=\"guranteedannuityObj['isVisible']\">\n <div class=\"annuity-msg w-100 px-2 py-1\">\n Value based on assumed 10% annual growth of Nifty 50 index.\n </div>\n <div class=\"w-100 px-2 py-1\">\n <lib-radio [field]=\"guranteedannuityObj\" [(ngModel)]=\"selectedGuranteedAnnuity\"\n (ngModelChange)=\"onGuranteedAnnuityChange($event)\" />\n </div>\n <div class=\"annuity-msg-1 d-flex align-items-center flex-nowrap w-100 px-2 py-1\">\n <img src=\"https://cdn.godigit.com/digitPlusAssets/streamline_graph-arrow-increase-remix.png\"\n style=\"max-width: 24px;\" />\n <span>Potential for higher returns by lowering the minimum guaranteed annuity rate.</span>\n </div>\n </div>\n\n </div>\n </div>\n <!-- <div class=\"vertical-line\"></div> -->\n <!-- <div class=\"custom-grid-template\">\n <div>\n <lib-toggle [field]=\"enableAutoDebitObj\" [(ngModel)]=\"isEnableAutoDebit\"\n (ngModelChange)=\"onEnableAutoDebitValueChange($event)\" />\n </div>\n </div> -->\n\n </div>\n\n\n <div class=\"card py-3 mb-4 border-top-0\" style=\"border-top-left-radius: 0px; border-top-right-radius: 0px;\">\n <div class=\"mx-4\">\n <div class=\"digit-boss-banner\" *ngIf=\"digitBossSwitch?.isVisible\">\n <lib-toggle [field]=\"digitBossToggleConfig\" [(ngModel)]=\"this.digitBossSwitch.isSwitchOn\" (ngModelChange)=\"onDigitBossSwitchChange($event)\"></lib-toggle>\n <div class=\"digit-boss-text\">\n {{this.digitBossSwitch?.prefixText}}\n <span class=\"highlight\">{{this.digitBossSwitch?.highlightText}}</span>\n {{this.digitBossSwitch?.subText}}\n <span class=\"arrow-icon\">\u2197</span>\n </div>\n </div>\n <lib-button [field]=\"recalculateButton\" (click)=\"calculateButtonClicked()\" />\n <div class=\"card mb-0 mt-2\"\n style=\"align-items: center;border:none;font-size: 8px;font-weight: 400;color:rgba(68, 68, 68, 1) \"\n >\n <div class=\"mx-4\" *ngIf=\"recalculateSubTextObj?.isVisible\"><img src=\"https://cdn.godigit.com/digitPlusAssets/Group+1010106336.png\"\n style=\"margin-left: 3px;\" />\n <span style=\"margin-left: 6px;\">Every time you make a change above, please click recalculate.</span>\n </div>\n </div>\n </div>\n <div\n style=\"display: flex;align-items: center;justify-content: center;border:none;font-size: 10px;font-weight: 700;height:32px;background-color: rgba(255, 250, 235, 1);gap: 8px;margin: 4px;\"\n *ngIf=\"annuityTableCalculator?.isVisible\">\n <img src=\"https://cdn.godigit.com/retail-life/calculator.svg\" />\n Minimum Guaranteed Payout(A) + Variable Payout(B) = Total Payout(C)\n </div>\n <!-- annuity calculator table -->\n <div class=\"annuity-tables-main-container\" *ngIf=\"annuityTableCalculator?.isVisible\">\n <div class=\"d-flex flex-row annuity-tables-container\">\n <!-- Table 1 -->\n <div class=\"annuity-calculator-table1\">\n <div class=\"table-header annuitytable1-header\">Minimum Guaranteed Annuity Payout(A)</div>\n <div class=\"table-body\">\n <div class=\"table-cell\"><span class=\"rupee-icon\">\u20B9</span><span\n style=\"font-size:12px; color: rgba(68, 68, 68, 1);\">\n <{{annuityTableCalculator.annuitycalculatorTable1val1}}>\n </span></div>\n <button class=\"annuitytable-button\">{{annuityTableCalculator.annuitycalculatorTable1val2}}</button>\n </div>\n </div>\n\n <div class=\"operator-symbol\">+</div>\n\n <!-- Table 2 -->\n <div class=\"annuity-calculator-table2\">\n <div class=\"table-header annuitytable1-header\">Assume growth of BenchMark index</div>\n <div class=\"table-body\">\n <div class=\"table-row\">@{{annuityTableCalculator.annuitycalculatorTable2val1}}</div>\n <div class=\"table-row\">@{{annuityTableCalculator.annuitycalculatorTable2val2}}</div>\n <div class=\"table-row\">@{{annuityTableCalculator.annuitycalculatorTable2val3}}</div>\n </div>\n </div>\n\n <!-- Table 3 -->\n <div class=\"annuity-calculator-table3\">\n <div class=\"table-header annuitytable1-header\">1st Variable Annuity Payout(B)</div>\n <div class=\"table-body\">\n <div class=\"table-row\"><span\n class=\"rupee-icon\">\u20B9</span>{{annuityTableCalculator.annuitycalculatorTable3val1}}</div>\n <div class=\"table-row\"><span\n class=\"rupee-icon\">\u20B9</span>{{annuityTableCalculator.annuitycalculatorTable3val2}}</div>\n <div class=\"table-row\"><span\n class=\"rupee-icon\">\u20B9</span>{{annuityTableCalculator.annuitycalculatorTable3val3}}</div>\n </div>\n </div>\n\n <div class=\"operator-symbol\">=</div>\n\n <!-- Table 4 -->\n <div class=\"annuity-calculator-table4\">\n <div class=\"table-header annuitytable4-header\">1st TotalPayout/Frequency(C)</div>\n <div class=\"table-body\">\n <div class=\"table-row annuitytable4-bg\"><span\n class=\"rupee-icon\">\u20B9</span>{{annuityTableCalculator.annuitycalculatorTable4val1}}</div>\n <div class=\"table-row annuitytable4-bg\"><span\n class=\"rupee-icon\">\u20B9</span>{{annuityTableCalculator.annuitycalculatorTable4val2}}</div>\n <div class=\"table-row annuitytable4-bg\"><span\n class=\"rupee-icon\">\u20B9</span>{{annuityTableCalculator.annuitycalculatorTable4val3}}</div>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"annuity-calculator-paragraph\" *ngIf=\"annuityTableCalculator?.isVisible\">\n <span class=\"annuity-calculator-paragraph1\">This is an assumed growth percentage for the index basis which the\n values in columns B and C are calculated.</span> Actual growth will depend on index performance and may affect\n your variable annuity payout and total annuity payout.\n </div>\n\n <div *ngIf=\"generateSummaryObj.isVisible\" class=\"generateSummary\">\n <lib-button [field]=\"generateSummaryObj\" (click)=\"generateSummaryClicked()\" />\n </div>\n </div>\n", styles: [".card-main-title{font-size:16px;font-family:Mulish!important;letter-spacing:0px!important;font-weight:800;line-height:24px;padding-bottom:16px}.col-5-5{flex:0 0 auto;max-width:44.16666667%}.custom-grid-template{display:grid;grid-template-columns:4fr .5fr 4fr;align-items:end}.vertical-line{border-left:2px solid #ccc;height:100px;margin:0 10px}.error-message{font-size:12px;font-weight:500;color:#e00;letter-spacing:0px}.annuity-msg{padding:4px 6px;margin-top:8px;font-size:10px;font-weight:400;color:#444;background-color:#e5f0fa;height:fit-content}.annuity-msg-1{padding:4px 6px;margin-top:8px;font-size:10px;font-weight:400;color:#444;background-color:#e6f7f3;height:fit-content;flex-wrap:nowrap!important}.annuity-tables-main-container{border:2px solid rgba(221,221,221,1);border-radius:8px;display:flex}.annuity-tables-container{display:flex;align-items:stretch;gap:0;width:100%}.annuity-calculator-table1,.annuity-calculator-table2,.annuity-calculator-table3,.annuity-calculator-table4{display:flex;flex-direction:column;height:100%;flex:1;color:#444;font-weight:400;font-size:10px}.annuity-calculator-table1{border-right:1px solid rgba(221,221,221,1)}.annuity-calculator-table2{border-left:1px solid rgba(221,221,221,1);border-right:1px solid rgba(221,221,221,1)}.annuity-calculator-table3{border-right:1px solid rgba(221,221,221,1)}.annuity-calculator-table4{border-left:1px solid rgba(221,221,221,1)}.table-header{padding:12px;font-size:10px;font-weight:700;text-align:center;border-bottom:1px solid rgba(221,221,221,1);height:60px;display:flex;align-items:center;justify-content:center;word-wrap:break-word;word-break:break-word;hyphens:auto}.annuitytable1-header{background-color:#ececec;color:#444}.annuitytable4-header{background-color:#fb03;color:#444}.table-body{display:flex;flex-direction:column;flex:1}.table-cell{padding:12px;text-align:center;font-size:16px;font-weight:600;flex:1;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:4px}.annuity-mat-hint{font-size:8px;text-align:start;font-weight:400;color:#444;letter-spacing:0px}.table-row{padding:12px;text-align:center;font-size:14px;font-weight:500;background-color:#fff;border-bottom:1px solid #999;flex:1;display:flex;align-items:center;justify-content:center}.table-row:last-child{border-bottom:none}.annuitytable4-bg{background-color:#e6f7f3!important;color:#444}.annuitytable-button{background-color:#ececec;border:none;border-radius:4px;padding:2px 8px;font-size:10px;font-weight:700;cursor:pointer;margin-top:0;width:auto;min-width:30%;max-width:90%;height:24px;display:block;margin-left:auto;margin-right:auto;position:relative;bottom:40px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rupee-icon{font-weight:700;margin-right:2px;font-size:12px;color:#444}.operator-symbol{display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;padding:0 16px;color:#f90}.annuity-calculator-paragraph{padding:16px 8px 4px;font-size:10px;margin:0 0 20px auto;width:73%;font-weight:400;color:#444;background-color:#ebf1ff}.annuity-calculator-paragraph1{font-weight:700;font-size:10px}.minium-annuity{display:flex;flex-direction:column}@media (max-width: 991px) and (min-width: 768px){.table-header{padding:8px 4px;font-size:9px;line-height:1.1}}@media (max-width: 767px) and (min-width: 576px){.table-header{padding:10px 6px;font-size:9px}}@media (max-width: 575px){.table-header{padding:8px 4px;font-size:8px}}@media (max-width: 575px){.annuity-msg{font-size:10px;line-height:1;height:fit-content}}@media (max-width: 575px){.annuity-msg-1{font-size:10px;line-height:1;flex-wrap:nowrap!important;height:fit-content}.annuity-msg-1 .img{width:4px;height:4px}}@media (max-width: 991px) and (min-width: 768px){.annuity-msg,.annuity-msg-1{font-size:9px;line-height:1.1;height:fit-content}}@media (max-width: 767px) and (min-width: 576px){.annuity-msg,.annuity-msg-1{font-size:10px;line-height:1.1;height:fit-content}}.digit-boss-banner{background-color:#333;color:#fff;display:flex;align-items:center;padding:8px 16px;border-radius:4px;margin-bottom:16px;gap:8px;font-size:12px;min-height:16px;opacity:1;transform:rotate(0)}.digit-boss-banner ::ng-deep .toggle-background{margin-top:0!important;padding:0!important;background-color:transparent!important;border:none!important}.digit-boss-banner ::ng-deep .toggle_switch{margin-top:0!important;gap:0!important}.digit-boss-text{display:flex;align-items:center;gap:4px;white-space:nowrap}.highlight{color:#fb0;font-weight:700}.arrow-icon{color:#fb0;margin-left:4px;font-size:14px}.generateSummary{margin-right:.4rem;margin-left:.4rem}\n"] }]
|
|
913
913
|
}], ctorParameters: () => [{ type: i1.MasterControlService }], propDecorators: { onCalcualteButtonClick: [{
|
|
914
914
|
type: Output
|
|
915
915
|
}], onGenerateSummaryClick: [{
|
|
@@ -925,4 +925,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
925
925
|
}], onDigitBossSwitchToggle: [{
|
|
926
926
|
type: Output
|
|
927
927
|
}] } });
|
|
928
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5udWl0eS1wcmVtaXVtLWNhbGN1bGF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFzdGVyLWNvbnRyb2wvc3JjL2xpYi9hbm51aXR5LXByZW1pdW0tY2FsY3VsYXRvci9hbm51aXR5LXByZW1pdW0tY2FsY3VsYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL2FubnVpdHktcHJlbWl1bS1jYWxjdWxhdG9yL2FubnVpdHktcHJlbWl1bS1jYWxjdWxhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBa0I3QyxNQUFNLE9BQU8saUNBQWlDO0lBNnRCekI7SUE1dEJqQixxQkFBcUIsR0FBUSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNuRCxLQUFLLEdBQVEsS0FBSyxDQUFDLFFBQVEsRUFBTyxDQUFDO0lBQ25DLGNBQWMsR0FBUSxLQUFLLENBQU0sRUFBRSxDQUFDLENBQUM7SUFDckMsY0FB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QUcsR0FBRyxFQUFFLENBQUM7UUFDYixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2pJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDaEksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNwSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ25JLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3BKLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakIsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNsQyxDQUFDO3dHQXg2QlUsaUNBQWlDOzRGQUFqQyxpQ0FBaUMsNHdCQ3pCOUMsNjhSQXNLQSwrakpEeEpJLGVBQWUsNEhBQ2Ysc0JBQXNCLDZJQUN0QixlQUFlLDBFQUNmLG1CQUFtQiwrRUFDbkIsY0FBYywwSEFDZCxZQUFZLGtJQUNaLFdBQVc7OzRGQUtGLGlDQUFpQztrQkFmN0MsU0FBUzsrQkFDRSxnQ0FBZ0MsY0FDOUIsSUFBSSxXQUNQO3dCQUNQLGVBQWU7d0JBQ2Ysc0JBQXNCO3dCQUN0QixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLFdBQVc7cUJBQ1o7eUZBZ0JTLHNCQUFzQjtzQkFBL0IsTUFBTTtnQkFDRyxzQkFBc0I7c0JBQS9CLE1BQU07Z0JBQ0csc0JBQXNCO3NCQUEvQixNQUFNO2dCQUNHLDJCQUEyQjtzQkFBcEMsTUFBTTtnQkFDRyx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBQ0csNkJBQTZCO3NCQUF0QyxNQUFNO2dCQUNHLHVCQUF1QjtzQkFBaEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbnB1dCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuLi90b2dnbGUvdG9nZ2xlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxlY3RUZXh0Ym94Q29tcG9uZW50IH0gZnJvbSAnLi4vc2VsZWN0LXRleHRib3gvc2VsZWN0LXRleHRib3guY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEljb25CdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9pY29uLWJ1dHRvbi9pY29uLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmFkaW9Db21wb25lbnQgfSBmcm9tICcuLi9yYWRpby9yYWRpby5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWFzdGVyQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuLi9tYXN0ZXItY29udHJvbC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWFubnVpdHktcHJlbWl1bS1jYWxjdWxhdG9yJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIFRvZ2dsZUNvbXBvbmVudCxcbiAgICBTZWxlY3RUZXh0Ym94Q29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBJY29uQnV0dG9uQ29tcG9uZW50LFxuICAgIFJhZGlvQ29tcG9uZW50LFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZVxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vYW5udWl0eS1wcmVtaXVtLWNhbGN1bGF0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYW5udWl0eS1wcmVtaXVtLWNhbGN1bGF0b3IuY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIEFubnVpdHlQcmVtaXVtQ2FsY3VsYXRvckNvbXBvbmVudCB7XG4gICAgcmVjYWxjdWxhdGVTdWJUZXh0T2JqOiBhbnkgPSB7IGlzVmlzaWJsZTogdHJ1ZSB9O1xuICBmaWVsZDogYW55ID0gaW5wdXQucmVxdWlyZWQ8YW55PigpO1xuICBwcmVtaXVtRGV0YWlsczogYW55ID0gaW5wdXQ8YW55Pih7fSk7XG4gIGFubnVpdHlQcmVtaXVtIDogYW55ID0ge1xuICAgIHRleHRWYWx1ZSA6ICcnLFxuICAgIHNlbGVjdFZhbHVlOiAnJ1xuICB9O1xuICBtaW51bXVtQW5udWl0eVBheW91dCA6IGFueSA9IHtcbiAgICB0ZXh0VmFsdWUgOiAnJyxcbiAgICBzZWxlY3RWYWx1ZTogJydcbiAgfTtcbiAgQE91dHB1dCgpIG9uQ2FsY3VhbHRlQnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIG9uR2VuZXJhdGVTdW1tYXJ5Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIG9uQW5udWl0eVByZW1pdW1DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIG9uTWluaW11bVByZW1pdW1WYWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgb25BdXRpb0RlYml0VmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIG9uR3VyYW50ZWVkQW5udWl0eVZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBvbkRpZ2l0Qm9zc1N3aXRjaFRvZ2dsZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICB2YWxpZGF0aW9ucyA6IGFueSA9IHtcbiAgICBpc3ByZW1pdW1FbnRyeSA6IGZhbHNlXG4gIH1cbiAgaXNFbmFibGVBdXRvRGViaXQgOiBhbnkgPSBmYWxzZTtcbiAgc2VsZWN0ZWRHdXJhbnRlZWRBbm51aXR5OiBhbnkgPSBudWxsO1xuICBhbm51aXR5UHJlbWl1bVRvZ2dsZU9iajogYW55ID0ge1xuICAgIGNvbnRyb2xUeXBlOiAndG9nZ2xlJyxcbiAgICBmaWVsZE5hbWU6ICdhbm51aXR5UHJlbWl1bVRvZ2dsZScsXG4gICAgbGFiZWw6ICdFbnRlciBBbm51aXR5JyxcbiAgICBwbGFjZUhvbGRlcjogbnVsbCxcbiAgICBtZXRhSWQ6ICdMSV9EUF9HRU5fQ1RSTF90b2dnbGVfYW5udWl0eVByZW1pdW1Ub2dnbGVfVjEnLFxuICAgIGlzVmlzaWJsZTogdHJ1ZSxcbiAgICBpc0Rpc2FibGU6IHRydWUsXG4gICAgdmFsaWRhdG9yczoge1xuICAgICAgaXNSZXF1aXJlZDogZmFsc2UsXG4gICAgICByZXF1aXJlZE1lc3NhZ2U6ICdUaGlzIGZpZWxkIGNhbm5vdCBiZSBlbXB0eScsXG4gICAgICBtaW5MZW5ndGg6IG51bGwsXG4gICAgICBtaW5MZW5ndGhNZXNzYWdlOiBudWxsLFxuICAgICAgbWF4TGVuZ3RoOiAxNTAsXG4gICAgICBtYXhMZW5ndGhNZXNzYWdlOiBudWxsLFxuICAgICAgcGF0dGVybjogbnVsbCxcbiAgICAgIHBhdHRlcm5NZXNzYWdlOiAnJyxcbiAgICB9LFxuICAgIG9wdGlvbnM6IG51bGwsXG4gICAgY3NzQ2xhc3M6XG4gICAgICAnIGNvbC1zbS0xMiBjb2wtbWQtMTIgY29sLWxnLTEyIGNvbC14bC0xMiBteC1hdXRvIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlcicsXG4gICAgdmFsdWU6IG51bGwsXG4gICAgc3R5bGU6IG51bGwsXG4gICAgaW1hZ2VVcmw6IG51bGwsXG4gICAgaXNTaG93TGFiZWw6IHRydWUsXG4gICAgY29udHJvbFN0eWxlOiB7XG4gICAgICBjb250cm9sVHlwZTogJ3RvZ2dsZScsXG4gICAgICBib3JkZXJDb2xvcjogJyNEQURBREEnLFxuICAgICAgYm9yZGVyV2lkdGg6ICcxcHgnLFxuICAgICAgYm9yZGVyUmFkaXVzOiAnOTk5cHgnLFxuICAgICAgZm9udFNpemU6ICcxMnB4JyxcbiAgICAgIGZvbnRXZWlnaHQ6ICc0MDAnLFxuICAgICAgZm9udEZhbWlseTogJ011bGlzaCcsXG4gICAgICBjb2xvcjogJyM0NDQ0NDQnLFxuICAgICAgYmFja2dyb3VuZDogJyNGRkZGRkYnLFxuICAgICAgY2FyZXRDb2xvcjogbnVsbCxcbiAgICAgIG51ZGdlRGlzcGxheUltYWdlOiBudWxsLFxuICAgICAgZHJvcGRvd25PcHRpb25CZ0NvbG9yOiBudWxsLFxuICAgICAgZHJvcGRvd25PcHRpb25Db2xvcjogbnVsbCxcbiAgICAgIGRyb3Bkb3duT3B0aW9uRm9udFdlaWdodDogbnVsbCxcbiAgICAgIHdpZHRoOiAnZml0LWNvbnRlbnQnLFxuICAgICAgZm9jdXNCb3JkZXJXaWR0aDogJzAuMDk0cmVtJyxcbiAgICAgIGZvY3VzQm9yZGVyQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0JhY2tncm91bmQ6IG51bGwsXG4gICAgICBmb2N1c0NvbG9yOiBudWxsLFxuICAgICAgZm9jdXNEcm9wZG93bk9wdGlvbkJnQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uRm9udFdlaWdodDogbnVsbCxcbiAgICAgIGZvY3VzRHJvcGRvd25PcHRpb25Cb3JkZXJMZWZ0OiBudWxsLFxuICAgICAgZm9jdXNEcm9wZG93bk9wdGlvbkJvcmRlclJhZGl1czogbnVsbCxcbiAgICAgIGhvdmVyQm9yZGVyQ29sb3I6IG51bGwsXG4gICAgICBob3ZlckJvcmRlcldpZHRoOiAnMC4wOTRyZW0nLFxuICAgICAgaG92ZXJDb2xvcjogbnVsbCxcbiAgICAgIGRpc2FibGVDb2xvcjogJyNFQ0VDRUMnLFxuICAgICAgZGlzYWJsZUJhY2tncm91bmQ6ICcjRUNFQ0VDJyxcbiAgICAgIGVycm9yQm9yZGVyQ29sb3I6IG51bGwsXG4gICAgICBlcnJvckJvcmRlcldpZHRoOiAnMC4wOTRyZW0nLFxuICAgICAgZXJyb3JDb2xvcjogbnVsbCxcbiAgICAgIGNyZWF0ZWREYXRlOiBudWxsLFxuICAgICAgcGFkZGluZzogbnVsbCxcbiAgICAgIG1hcmdpbjogbnVsbCxcbiAgICAgIGlzTWFzdGVyQ3NzOiBudWxsLFxuICAgICAgY29udHJvbE1ldGFJZDogJ0xJX0RQX0dFTl9DVFJMX3RvZ2dsZV9hbm51aXR5UHJlbWl1bVRvZ2dsZV9WMScsXG4gICAgICBib3JkZXJTdHlsZTogbnVsbCxcbiAgICAgIGhlaWdodDogbnVsbCxcbiAgICAgIG1pbkhlaWdodDogbnVsbCxcbiAgICAgIG1heEhlaWdodDogbnVsbCxcbiAgICAgIG1pbldpZHRoOiBudWxsLFxuICAgICAgbWF4V2lkdGg6IG51bGwsXG4gICAgICBjc3NDbGFzczogbnVsbCxcbiAgICB9LFxuICAgIGNvbHVtbkluZGV4OiAwLFxuICAgIGNvbmZpZ0RhdGE6IHtcbiAgICAgIGxlZnRMYWJlbDogJ0VudGVyIFByZW1pdW0nLFxuICAgIH0sXG4gICAgY29udHJvbFN0eWxlczogbnVsbCxcbiAgfTtcblxuICBhbm51aXR5VGFibGVDYWxjdWxhdG9yIDphbnkgPSB7XG4gICAgXCJpc1Zpc2libGVcIjogZmFsc2UsXG4gICAgXCJhbm51aXR5Y2FsY3VsYXRvclRhYmxlMXZhbDFcIjogXCJcIixcbiAgICBcImFubnVpdHljYWxjdWxhdG9yVGFibGUxdmFsMlwiOiBcIlwiLFxuICAgIFwiYW5udWl0eWNhbGN1bGF0b3JUYWJsZTJ2YWwxXCI6IFwiXCIsXG4gICAgXCJhbm51aXR5Y2FsY3VsYXRvclRhYmxlMnZhbDJcIjogXCJcIixcbiAgICBcImFubnVpdHljYWxjdWxhdG9yVGFibGUydmFsM1wiOiBcIlwiLFxuICAgIFwiYW5udWl0eWNhbGN1bGF0b3JUYWJsZTN2YWwxXCI6IFwiXCIsXG4gICAgXCJhbm51aXR5Y2FsY3VsYXRvclRhYmxlM3ZhbDJcIjogXCJcIixcbiAgICBcImFubnVpdHljYWxjdWxhdG9yVGFibGUzdmFsM1wiOiBcIlwiLFxuICAgIFwiYW5udWl0eWNhbGN1bGF0b3JUYWJsZTR2YWwxXCI6IFwiXCIsXG4gICAgXCJhbm51aXR5Y2FsY3VsYXRvclRhYmxlNHZhbDJcIjogXCJcIixcbiAgICBcImFubnVpdHljYWxjdWxhdG9yVGFibGU0dmFsM1wiOiBcIlwiXG5cblxuICB9O1xuXG4gIGRpZ2l0Qm9zc1N3aXRjaCA6IGFueSA9IHtcbiAgICBpc1Zpc2libGUgOiBmYWxzZSxcbiAgICBpc1N3aXRjaE9uOiBmYWxzZSxcbiAgICBoaWdobGlnaHRUZXh0OiAnJyxcbiAgICBzdWJUZXh0OiAnJ1xuICB9XG5cbiAgZGlnaXRCb3NzVG9nZ2xlQ29uZmlnOiBhbnkgPSB7XG4gICAgY29udHJvbFR5cGU6ICd0b2dnbGUnLFxuICAgIGZpZWxkTmFtZTogJ2RpZ2l0Qm9zc1RvZ2dsZScsXG4gICAgaXNWaXNpYmxlOiB0cnVlLFxuICAgIGlzRGlzYWJsZTogZmFsc2UsXG4gICAgaXNTaG93TGFiZWw6IHRydWUsXG4gICAgY29uZmlnRGF0YToge1xuICAgICAgbGVmdExhYmVsOiAnJ1xuICAgIH0sXG4gICAgY29udHJvbFN0eWxlOiB7XG4gICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxuICAgICAgYm9yZGVyQ29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgICB3aWR0aDogJ2ZpdC1jb250ZW50JyxcbiAgICAgIGJvcmRlcldpZHRoOiAnMHB4J1xuICAgIH1cbiAgfTtcblxuICBvbkRpZ2l0Qm9zc1N3aXRjaENoYW5nZShldmVudDogYW55KSB7XG4gICAgLy8gaWYodGhpcy5wcmVtaXVtRGV0YWlscygpICYmIHRoaXMucHJlbWl1bURldGFpbHMoKS5kaWdpdEJvc3NTd2l0Y2gpe1xuICAgICAgIHRoaXMuZGlnaXRCb3NzU3dpdGNoLmlzU3dpdGNoT24gPSBldmVudDtcbiAgICAgICB0aGlzLm9uRGlnaXRCb3NzU3dpdGNoVG9nZ2xlLmVtaXQoZXZlbnQpO1xuICAgIC8vIH1cbiAgfVxuXG4gIGFubnVpdHlQcmVtaXVtT2JqOiBhbnkgPSB7XG4gICAgY29udHJvbFN0eWxlOiB7XG4gICAgICBjb250cm9sVHlwZTogJ2Ftb3VudFRleHRib3gnLFxuICAgICAgYm9yZGVyQ29sb3I6ICcjREFEQURBJyxcbiAgICAgIGJvcmRlcldpZHRoOiAnMC4wOTRyZW0nLFxuICAgICAgYm9yZGVyUmFkaXVzOiBudWxsLFxuICAgICAgZm9udFNpemU6ICcxNnB4JyxcbiAgICAgIGZvbnRXZWlnaHQ6ICc0MDAnLFxuICAgICAgZm9udEZhbWlseTogJ011bGlzaCcsXG4gICAgICBjb2xvcjogJyM0NDQ0NDQnLFxuICAgICAgYmFja2dyb3VuZDogJyNGRkZGRkYnLFxuICAgICAgY2FyZXRDb2xvcjogJyNmZmJiMDAnLFxuICAgICAgbnVkZ2VEaXNwbGF5SW1hZ2U6IG51bGwsXG4gICAgICBkcm9wZG93bk9wdGlvbkJnQ29sb3I6IG51bGwsXG4gICAgICBkcm9wZG93bk9wdGlvbkNvbG9yOiBudWxsLFxuICAgICAgZHJvcGRvd25PcHRpb25Gb250V2VpZ2h0OiBudWxsLFxuICAgICAgd2lkdGg6IG51bGwsXG4gICAgICBmb2N1c0JvcmRlcldpZHRoOiAnMC4wOTRyZW0nLFxuICAgICAgZm9jdXNCb3JkZXJDb2xvcjogJyNmZmJiMDAnLFxuICAgICAgZm9jdXNCYWNrZ3JvdW5kOiBudWxsLFxuICAgICAgZm9jdXNDb2xvcjogJyM0NDQ0NDQnLFxuICAgICAgZm9jdXNEcm9wZG93bk9wdGlvbkJnQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uRm9udFdlaWdodDogbnVsbCxcbiAgICAgIGZvY3VzRHJvcGRvd25PcHRpb25Cb3JkZXJMZWZ0OiBudWxsLFxuICAgICAgZm9jdXNEcm9wZG93bk9wdGlvbkJvcmRlclJhZGl1czogbnVsbCxcbiAgICAgIGhvdmVyQm9yZGVyQ29sb3I6ICcjRkZCQjAwJyxcbiAgICAgIGhvdmVyQm9yZGVyV2lkdGg6ICcwLjA5NHJlbScsXG4gICAgICBob3ZlckNvbG9yOiAnIzQ0NDQ0NCcsXG4gICAgICBkaXNhYmxlQ29sb3I6ICcjRUNFQ0VDJyxcbiAgICAgIGRpc2FibGVCYWNrZ3JvdW5kOiAnI0VDRUNFQycsXG4gICAgICBlcnJvckJvcmRlckNvbG9yOiAnI0VFMDAwMCcsXG4gICAgICBlcnJvckJvcmRlcldpZHRoOiAnMC4wOTRyZW0nLFxuICAgICAgZXJyb3JDb2xvcjogJyM0NDQ0NDQnLFxuICAgICAgY3JlYXRlZERhdGU6IG51bGwsXG4gICAgICBwYWRkaW5nOiBudWxsLFxuICAgICAgbWFyZ2luOiBudWxsLFxuICAgICAgaXNNYXN0ZXJDc3M6IG51bGwsXG4gICAgICBjb250cm9sTWV0YUlkOiAnQUxMX0RQX0RQX0NUUkxfYW1vdW50VGV4dGJveF9hbm51aXR5UHJlbWl1bV9WMScsXG4gICAgICBib3JkZXJTdHlsZTogbnVsbCxcbiAgICAgIGhlaWdodDogbnVsbCxcbiAgICAgIG1pbkhlaWdodDogbnVsbCxcbiAgICAgIG1heEhlaWdodDogbnVsbCxcbiAgICAgIG1pbldpZHRoOiBudWxsLFxuICAgICAgbWF4V2lkdGg6IG51bGwsXG4gICAgICBjc3NDbGFzczogbnVsbCxcbiAgICB9LFxuICAgIGZpZWxkTmFtZTogJ2FubnVpdHlQcmVtaXVtJyxcbiAgICBsYWJlbDogJ1ByZW1pdW0nLFxuICAgIHBsYWNlSG9sZGVyOiAnRW50ZXInLFxuICAgIG1ldGFJZDogJ0FMTF9EUF9EUF9DVFJMX2Ftb3VudFRleHRib3hfYW5udWl0eVByZW1pdW1fVjEnLFxuICAgIGlzVmlzaWJsZTogdHJ1ZSxcbiAgICBpc0Rpc2FibGU6IGZhbHNlLFxuICAgIGRlZmF1bHRWYWx1ZTogbnVsbCxcbiAgICB2YWxpZGF0b3JzOiB7XG4gICAgICBpc1JlcXVpcmVkOiBmYWxzZSxcbiAgICAgIHJlcXVpcmVkTWVzc2FnZTogJ0VudGVyIFByZW1pdW0nLFxuICAgICAgbWluTGVuZ3RoOiA0LFxuICAgICAgbWluTGVuZ3RoTWVzc2FnZTogbnVsbCxcbiAgICAgIG1heExlbmd0aDogMTAsXG4gICAgICBtYXhMZW5ndGhNZXNzYWdlOiBudWxsLFxuICAgICAgcGF0dGVybjogbnVsbCxcbiAgICAgIHBhdHRlcm5NZXNzYWdlOiBudWxsLFxuICAgIH0sXG4gICAgb3B0aW9uczogW1xuICAgICAge1xuICAgICAgICB2YWx1ZTogJ01vbnRobHknLFxuICAgICAgICBsYWJlbDogJ01vbnRobHknLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6ICdPbmUgVGltZScsXG4gICAgICAgIGxhYmVsOiAnT25lIFRpbWUnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6ICdRdWFydGVybHknLFxuICAgICAgICBsYWJlbDogJ1F1YXJ0ZXJseScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB2YWx1ZTogJ0hhbGYgWWVhcmx5JyxcbiAgICAgICAgbGFiZWw6ICdIYWxmIFllYXJseScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB2YWx1ZTogJ1llYXJseScsXG4gICAgICAgIGxhYmVsOiAnWWVhcmx5JyxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBjc3NDbGFzczogJyBjb2wtc20tMTIgY29sLW1kLTMgY29sLWxnLTMgY29sLXhsLTMgcHktMCBwbC0zIHByLTAgbXQtNSBwdC0yJyxcbiAgICB2YWx1ZTogbnVsbCxcbiAgICBzdHlsZTogbnVsbCxcbiAgICBpbWFnZVVybDogbnVsbCxcbiAgICBjb25maWdEYXRhOiB7XG4gICAgICBpc0NvbWFTZXBlcmF0ZWQ6IHRydWUsXG4gICAgICBpc0FsbG93TnVtYmVyc0luVGV4dEZpZWxkczogdHJ1ZSxcbiAgICAgIGhlbHBlclRleHQ6ICcnLFxuICAgICAgbnVtYmVydG93b3JkOiAnJ1xuICAgIH0sXG4gICAgbWV0YURhdGFPYmo6IG51bGwsXG4gICAgaXNTaG93TGFiZWw6IHRydWUsXG4gICAgaXNNYXN0ZXJDb250cm9sOiBmYWxzZSxcbiAgICBjb250cm9sVHlwZTogJ2Ftb3VudFRleHRib3gnLFxuICB9O1xuXG4gIG1pbmltdW1Bbm51aXR5UGF5b3V0T2JqOiBhbnkgPSB7XG4gICAgY29udHJvbFN0eWxlOiB7XG4gICAgICBjb250cm9sVHlwZTogJ2Ftb3VudFRleHRib3gnLFxuICAgICAgYm9yZGVyQ29sb3I6ICcjREFEQURBJyxcbiAgICAgIGJvcmRlcldpZHRoOiAnMC4wOTRyZW0nLFxuICAgICAgYm9yZGVyUmFkaXVzOiBudWxsLFxuICAgICAgZm9udFNpemU6ICcxNnB4JyxcbiAgICAgIGZvbnRXZWlnaHQ6ICc0MDAnLFxuICAgICAgZm9udEZhbWlseTogJ011bGlzaCcsXG4gICAgICBjb2xvcjogJyM0NDQ0NDQnLFxuICAgICAgYmFja2dyb3VuZDogJyNGRkZGRkYnLFxuICAgICAgY2FyZXRDb2xvcjogJyNmZmJiMDAnLFxuICAgICAgbnVkZ2VEaXNwbGF5SW1hZ2U6IG51bGwsXG4gICAgICBkcm9wZG93bk9wdGlvbkJnQ29sb3I6IG51bGwsXG4gICAgICBkcm9wZG93bk9wdGlvbkNvbG9yOiBudWxsLFxuICAgICAgZHJvcGRvd25PcHRpb25Gb250V2VpZ2h0OiBudWxsLFxuICAgICAgd2lkdGg6IG51bGwsXG4gICAgICBmb2N1c0JvcmRlcldpZHRoOiAnMC4wOTRyZW0nLFxuICAgICAgZm9jdXNCb3JkZXJDb2xvcjogJyNmZmJiMDAnLFxuICAgICAgZm9jdXNCYWNrZ3JvdW5kOiBudWxsLFxuICAgICAgZm9jdXNDb2xvcjogJyM0NDQ0NDQnLFxuICAgICAgZm9jdXNEcm9wZG93bk9wdGlvbkJnQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uRm9udFdlaWdodDogbnVsbCxcbiAgICAgIGZvY3VzRHJvcGRvd25PcHRpb25Cb3JkZXJMZWZ0OiBudWxsLFxuICAgICAgZm9jdXNEcm9wZG93bk9wdGlvbkJvcmRlclJhZGl1czogbnVsbCxcbiAgICAgIGhvdmVyQm9yZGVyQ29sb3I6ICcjRkZCQjAwJyxcbiAgICAgIGhvdmVyQm9yZGVyV2lkdGg6ICcwLjA5NHJlbScsXG4gICAgICBob3ZlckNvbG9yOiAnIzQ0NDQ0NCcsXG4gICAgICBkaXNhYmxlQ29sb3I6ICcjOTk5OTk5JyxcbiAgICAgIGRpc2FibGVCYWNrZ3JvdW5kOiAnI0VDRUNFQycsXG4gICAgICBlcnJvckJvcmRlckNvbG9yOiAnI0VFMDAwMCcsXG4gICAgICBlcnJvckJvcmRlcldpZHRoOiAnMC4wOTRyZW0nLFxuICAgICAgZXJyb3JDb2xvcjogJyM0NDQ0NDQnLFxuICAgICAgY3JlYXRlZERhdGU6IG51bGwsXG4gICAgICBwYWRkaW5nOiBudWxsLFxuICAgICAgbWFyZ2luOiBudWxsLFxuICAgICAgaXNNYXN0ZXJDc3M6IG51bGwsXG4gICAgICBjb250cm9sTWV0YUlkOlxuICAgICAgICAnQUxMX0RQX0RQX0NUUkxfYW1vdW50VGV4dGJveF9taW5pbXVtR3VhcmFudGVlZEFubnVpdHlQYXlvdXRfVjEnLFxuICAgICAgYm9yZGVyU3R5bGU6IG51bGwsXG4gICAgICBoZWlnaHQ6IG51bGwsXG4gICAgICBtaW5IZWlnaHQ6IG51bGwsXG4gICAgICBtYXhIZWlnaHQ6IG51bGwsXG4gICAgICBtaW5XaWR0aDogbnVsbCxcbiAgICAgIG1heFdpZHRoOiBudWxsLFxuICAgICAgY3NzQ2xhc3M6IG51bGwsXG4gICAgfSxcbiAgICBmaWVsZE5hbWU6ICdtaW5pbXVtR3VhcmFudGVlZEFubnVpdHlQYXlvdXQnLFxuICAgIGxhYmVsOiAnVG90YWwgQW5udWl0eSBQYXlvdXQnLFxuICAgIHBsYWNlSG9sZGVyOiAnJyxcbiAgICBtZXRhSWQ6ICdBTExfRFBfRFBfQ1RSTF9hbW91bnRUZXh0Ym94X21pbmltdW1HdWFyYW50ZWVkQW5udWl0eVBheW91dF9WMScsXG4gICAgaXNWaXNpYmxlOiB0cnVlLFxuICAgIGlzRGlzYWJsZTogdHJ1ZSxcbiAgICBkZWZhdWx0VmFsdWU6IG51bGwsXG4gICAgdmFsaWRhdG9yczoge1xuICAgICAgaXNSZXF1aXJlZDogZmFsc2UsXG4gICAgICByZXF1aXJlZE1lc3NhZ2U6ICdFbnRlciBBbm51aXR5IFBheW91dCcsXG4gICAgICBtaW5MZW5ndGg6IDQsXG4gICAgICBtaW5MZW5ndGhNZXNzYWdlOiBudWxsLFxuICAgICAgbWF4TGVuZ3RoOiAxMCxcbiAgICAgIG1heExlbmd0aE1lc3NhZ2U6IG51bGwsXG4gICAgICBwYXR0ZXJuOiBudWxsLFxuICAgICAgcGF0dGVybk1lc3NhZ2U6IG51bGwsXG4gICAgfSxcbiAgICBvcHRpb25zOiBbXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiAnTW9udGhseScsXG4gICAgICAgIGxhYmVsOiAnTW9udGhseScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB2YWx1ZTogJ09uZSBUaW1lJyxcbiAgICAgICAgbGFiZWw6ICdPbmUgVGltZScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB2YWx1ZTogJ1F1YXJ0ZXJseScsXG4gICAgICAgIGxhYmVsOiAnUXVhcnRlcmx5JyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiAnSGFsZiBZZWFybHknLFxuICAgICAgICBsYWJlbDogJ0hhbGYgWWVhcmx5JyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiAnWWVhcmx5JyxcbiAgICAgICAgbGFiZWw6ICdZZWFybHknLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGNzc0NsYXNzOlxuICAgICAgJyBjb2wtc20tMTIgY29sLW1kLTMgY29sLWxnLTMgY29sLXhsLTMgcHktMCBwbC0zIG10LTEgcHItMCBtaW5pbXVtR3VhcmFudGVlZEFubnVpdHlQYXlvdXQnLFxuICAgIHZhbHVlOiBudWxsLFxuICAgIHN0eWxlOiBudWxsLFxuICAgIGltYWdlVXJsOiBudWxsLFxuICAgIGNvbmZpZ0RhdGE6IHtcbiAgICAgIGlzQ29tYVNlcGVyYXRlZDogdHJ1ZSxcbiAgICAgIGlzQWxsb3dOdW1iZXJzSW5UZXh0RmllbGRzOiB0cnVlLFxuICAgICAgaGVscGVyVGV4dDogJycsXG4gICAgICBudW1iZXJ0b3dvcmQ6ICcnXG4gICAgfSxcbiAgICBtZXRhRGF0YU9iajogbnVsbCxcbiAgICBpc1Nob3dMYWJlbDogdHJ1ZSxcbiAgICBpc01hc3RlckNvbnRyb2w6IGZhbHNlLFxuICAgIGNvbnRyb2xUeXBlOiAnYW1vdW50VGV4dGJveCcsXG4gIH07XG5cbiAgZW5hYmxlQXV0b0RlYml0T2JqOiBhbnkgPSB7XG4gICAgY29udHJvbFR5cGU6ICd0b2dnbGUnLFxuICAgIGZpZWxkTmFtZTogJ2F1dG9EZWJpdCcsXG4gICAgbGFiZWw6ICdFbmFibGUgQXV0by1QYXkgdG8gZ2V0IGFkZGl0aW9uYWwgYmVuZWZpdHMnLFxuICAgIHBsYWNlSG9sZGVyOiAnJyxcbiAgICBtZXRhSWQ6ICdBTExfQ09NX0dFTl9DVFJMX3RvZ2dsZV9hdXRvRGViaXRfVjEnLFxuICAgIGlzVmlzaWJsZTogdHJ1ZSxcbiAgICBpc0Rpc2FibGU6IGZhbHNlLFxuICAgIHZhbGlkYXRvcnM6IHtcbiAgICAgIGlzUmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgcmVxdWlyZWRNZXNzYWdlOiAnVGhpcyBmaWVsZCBjYW5ub3QgYmUgZW1wdHknLFxuICAgICAgbWluTGVuZ3RoOiBudWxsLFxuICAgICAgbWluTGVuZ3RoTWVzc2FnZTogbnVsbCxcbiAgICAgIG1heExlbmd0aDogbnVsbCxcbiAgICAgIG1heExlbmd0aE1lc3NhZ2U6IG51bGwsXG4gICAgICBwYXR0ZXJuOiBudWxsLFxuICAgICAgcGF0dGVybk1lc3NhZ2U6ICcnLFxuICAgIH0sXG4gICAgb3B0aW9uczogbnVsbCxcbiAgICBjc3NDbGFzczogJ2NvbC1zbS0xMiBjb2wtbWQtNSBjb2wtbGctNSBjb2wteGwtNSBtdC00IGF1dG9QYXknLFxuICAgIHZhbHVlOiBmYWxzZSxcbiAgICBzdHlsZTogbnVsbCxcbiAgICBpbWFnZVVybDogbnVsbCxcbiAgICBpc1Nob3dMYWJlbDogdHJ1ZSxcbiAgICBjb250cm9sU3R5bGU6IHtcbiAgICAgIGNvbnRyb2xUeXBlOiAndG9nZ2xlJyxcbiAgICAgIGJvcmRlckNvbG9yOiBudWxsLFxuICAgICAgYm9yZGVyV2lkdGg6ICcwLjA5NHJlbScsXG4gICAgICBib3JkZXJSYWRpdXM6IG51bGwsXG4gICAgICBmb250U2l6ZTogJzEycHgnLFxuICAgICAgZm9udFdlaWdodDogJzQwMCcsXG4gICAgICBmb250RmFtaWx5OiAnTXVsaXNoJyxcbiAgICAgIGNvbG9yOiAnIzQ0NDQ0NCcsXG4gICAgICBiYWNrZ3JvdW5kOiAnI0U2RjdGMycsXG4gICAgICBjYXJldENvbG9yOiBudWxsLFxuICAgICAgbnVkZ2VEaXNwbGF5SW1hZ2U6IG51bGwsXG4gICAgICBkcm9wZG93bk9wdGlvbkJnQ29sb3I6IG51bGwsXG4gICAgICBkcm9wZG93bk9wdGlvbkNvbG9yOiBudWxsLFxuICAgICAgZHJvcGRvd25PcHRpb25Gb250V2VpZ2h0OiBudWxsLFxuICAgICAgd2lkdGg6IG51bGwsXG4gICAgICBmb2N1c0JvcmRlcldpZHRoOiAnMC4wOTRyZW0nLFxuICAgICAgZm9jdXNCb3JkZXJDb2xvcjogbnVsbCxcbiAgICAgIGZvY3VzQmFja2dyb3VuZDogbnVsbCxcbiAgICAgIGZvY3VzQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uQmdDb2xvcjogbnVsbCxcbiAgICAgIGZvY3VzRHJvcGRvd25PcHRpb25Db2xvcjogbnVsbCxcbiAgICAgIGZvY3VzRHJvcGRvd25PcHRpb25Gb250V2VpZ2h0OiBudWxsLFxuICAgICAgZm9jdXNEcm9wZG93bk9wdGlvbkJvcmRlckxlZnQ6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uQm9yZGVyUmFkaXVzOiBudWxsLFxuICAgICAgaG92ZXJCb3JkZXJDb2xvcjogbnVsbCxcbiAgICAgIGhvdmVyQm9yZGVyV2lkdGg6ICcwLjA5NHJlbScsXG4gICAgICBob3ZlckNvbG9yOiBudWxsLFxuICAgICAgZGlzYWJsZUNvbG9yOiAnI0VDRUNFQycsXG4gICAgICBkaXNhYmxlQmFja2dyb3VuZDogJyNFQ0VDRUMnLFxuICAgICAgZXJyb3JCb3JkZXJDb2xvcjogbnVsbCxcbiAgICAgIGVycm9yQm9yZGVyV2lkdGg6ICcwLjA5NHJlbScsXG4gICAgICBlcnJvckNvbG9yOiBudWxsLFxuICAgICAgY3JlYXRlZERhdGU6IG51bGwsXG4gICAgICBwYWRkaW5nOiBudWxsLFxuICAgICAgbWFyZ2luOiBudWxsLFxuICAgICAgaXNNYXN0ZXJDc3M6IG51bGwsXG4gICAgICBjb250cm9sTWV0YUlkOiAnQUxMX0NPTV9HRU5fQ1RSTF90b2dnbGVfbWFpbGluZ0FkZHJlc3NUb2dnbGVfVjEnLFxuICAgICAgYm9yZGVyU3R5bGU6IG51bGwsXG4gICAgICBoZWlnaHQ6IG51bGwsXG4gICAgICBtaW5IZWlnaHQ6IG51bGwsXG4gICAgICBtYXhIZWlnaHQ6IG51bGwsXG4gICAgICBtaW5XaWR0aDogbnVsbCxcbiAgICAgIG1heFdpZHRoOiBudWxsLFxuICAgICAgY3NzQ2xhc3M6IG51bGwsXG4gICAgfSxcbiAgICBjb2x1bW5JbmRleDogMCxcbiAgICBjb25maWdEYXRhOiB7fSxcbiAgICBjb250cm9sU3R5bGVzOiBudWxsLFxuICB9O1xuXG4gIHJlY2FsY3VsYXRlQnV0dG9uOiBhbnkgPSB7XG4gICAgY29udHJvbFR5cGU6ICdidXR0b24nLFxuICAgIGZpZWxkTmFtZTogJ2NhbGN1bGF0ZUFubnVpdHlQYXlvdXQnLFxuICAgIGxhYmVsOiAnQ2FsY3VsYXRlIEFubnVpdHkgUGF5b3V0JyxcbiAgICBwbGFjZUhvbGRlcjogbnVsbCxcbiAgICBtZXRhSWQ6ICdMSV9EUF9HRU5fQ1RSTF9idXR0b25fY2FsY3VsYXRlQW5udWl0eVBheW91dF9WMScsXG4gICAgaXNWaXNpYmxlOiB0cnVlLFxuICAgIGlzRGlzYWJsZTogZmFsc2UsXG4gICAgdmFsaWRhdG9yczoge1xuICAgICAgaXNSZXF1aXJlZDogZmFsc2UsXG4gICAgICByZXF1aXJlZE1lc3NhZ2U6ICdUaGlzIGZpZWxkIGNhbm5vdCBiZSBlbXB0eScsXG4gICAgICBtaW5MZW5ndGg6IG51bGwsXG4gICAgICBtaW5MZW5ndGhNZXNzYWdlOiBudWxsLFxuICAgICAgbWF4TGVuZ3RoOiBudWxsLFxuICAgICAgbWF4TGVuZ3RoTWVzc2FnZTogbnVsbCxcbiAgICAgIHBhdHRlcm46IG51bGwsXG4gICAgICBwYXR0ZXJuTWVzc2FnZTogJycsXG4gICAgfSxcbiAgICBvcHRpb25zOiBudWxsLFxuICAgIGNzc0NsYXNzOiAnIGNvbC1zbS0xMiBjb2wtbWQtMTIgY29sLWxnLTEyIGNvbC14bC0xMiBtdC0zJyxcbiAgICB2YWx1ZTogbnVsbCxcbiAgICBzdHlsZTogbnVsbCxcbiAgICBpbWFnZVVybDogbnVsbCxcbiAgICBpc1Nob3dMYWJlbDogdHJ1ZSxcbiAgICBjb250cm9sU3R5bGU6IHtcbiAgICAgIGNvbnRyb2xUeXBlOiBudWxsLFxuICAgICAgYm9yZGVyQ29sb3I6IG51bGwsXG4gICAgICBib3JkZXJXaWR0aDogbnVsbCxcbiAgICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgICBmb250U2l6ZTogJzEycHgnLFxuICAgICAgZm9udFdlaWdodDogbnVsbCxcbiAgICAgIGZvbnRGYW1pbHk6IG51bGwsXG4gICAgICBjb2xvcjogbnVsbCxcbiAgICAgIGJhY2tncm91bmQ6ICcjRkZCQjAwJyxcbiAgICAgIGNhcmV0Q29sb3I6IG51bGwsXG4gICAgICBudWRnZURpc3BsYXlJbWFnZTogbnVsbCxcbiAgICAgIGRyb3Bkb3duT3B0aW9uQmdDb2xvcjogbnVsbCxcbiAgICAgIGRyb3Bkb3duT3B0aW9uQ29sb3I6IG51bGwsXG4gICAgICBkcm9wZG93bk9wdGlvbkZvbnRXZWlnaHQ6IG51bGwsXG4gICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgZm9jdXNCb3JkZXJXaWR0aDogbnVsbCxcbiAgICAgIGZvY3VzQm9yZGVyQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0JhY2tncm91bmQ6IG51bGwsXG4gICAgICBmb2N1c0NvbG9yOiBudWxsLFxuICAgICAgZm9jdXNEcm9wZG93bk9wdGlvbkJnQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uRm9udFdlaWdodDogbnVsbCxcbiAgICAgIGZvY3VzRHJvcGRvd25PcHRpb25Cb3JkZXJMZWZ0OiBudWxsLFxuICAgICAgZm9jdXNEcm9wZG93bk9wdGlvbkJvcmRlclJhZGl1czogbnVsbCxcbiAgICAgIGhvdmVyQm9yZGVyQ29sb3I6IG51bGwsXG4gICAgICBob3ZlckJvcmRlcldpZHRoOiBudWxsLFxuICAgICAgaG92ZXJDb2xvcjogbnVsbCxcbiAgICAgIGRpc2FibGVDb2xvcjogbnVsbCxcbiAgICAgIGRpc2FibGVCYWNrZ3JvdW5kOiBudWxsLFxuICAgICAgZXJyb3JCb3JkZXJDb2xvcjogbnVsbCxcbiAgICAgIGVycm9yQm9yZGVyV2lkdGg6IG51bGwsXG4gICAgICBlcnJvckNvbG9yOiBudWxsLFxuICAgICAgY3JlYXRlZERhdGU6IG51bGwsXG4gICAgICBwYWRkaW5nOiBudWxsLFxuICAgICAgbWFyZ2luOiBudWxsLFxuICAgICAgaXNNYXN0ZXJDc3M6IG51bGwsXG4gICAgICBjb250cm9sTWV0YUlkOiAnTElfRFBfR0VOX0NUUkxfYnV0dG9uX2NhbGN1bGF0ZUFubnVpdHlQYXlvdXRfVjEnLFxuICAgICAgYm9yZGVyU3R5bGU6IG51bGwsXG4gICAgICBoZWlnaHQ6IG51bGwsXG4gICAgICBtaW5IZWlnaHQ6IG51bGwsXG4gICAgICBtYXhIZWlnaHQ6IG51bGwsXG4gICAgICBtaW5XaWR0aDogbnVsbCxcbiAgICAgIG1heFdpZHRoOiBudWxsLFxuICAgICAgY3NzQ2xhc3M6IG51bGwsXG4gICAgfSxcbiAgICBjb2x1bW5JbmRleDogMCxcbiAgICBjb25maWdEYXRhOiB7fSxcbiAgICBjb250cm9sU3R5bGVzOiBudWxsLFxuICB9O1xuXG4gIGludGVyY2hhbmdlQnV0dG9uT2JqOiBhbnkgPSB7XG4gICAgY29udHJvbFN0eWxlOiB7XG4gICAgICBjb250cm9sVHlwZTogbnVsbCxcbiAgICAgIGJvcmRlckNvbG9yOiAnI0RERERERCcsXG4gICAgICBib3JkZXJXaWR0aDogJzBweCcsXG4gICAgICBib3JkZXJSYWRpdXM6ICc1MCUnLFxuICAgICAgZm9udFNpemU6IG51bGwsXG4gICAgICBmb250V2VpZ2h0OiBudWxsLFxuICAgICAgZm9udEZhbWlseTogbnVsbCxcbiAgICAgIGNvbG9yOiBudWxsLFxuICAgICAgYmFja2dyb3VuZDogbnVsbCxcbiAgICAgIGNhcmV0Q29sb3I6IG51bGwsXG4gICAgICBudWRnZURpc3BsYXlJbWFnZTogbnVsbCxcbiAgICAgIGRyb3Bkb3duT3B0aW9uQmdDb2xvcjogbnVsbCxcbiAgICAgIGRyb3Bkb3duT3B0aW9uQ29sb3I6IG51bGwsXG4gICAgICBkcm9wZG93bk9wdGlvbkZvbnRXZWlnaHQ6IG51bGwsXG4gICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgZm9jdXNCb3JkZXJXaWR0aDogbnVsbCxcbiAgICAgIGZvY3VzQm9yZGVyQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0JhY2tncm91bmQ6IG51bGwsXG4gICAgICBmb2N1c0NvbG9yOiBudWxsLFxuICAgICAgZm9jdXNEcm9wZG93bk9wdGlvbkJnQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uRm9udFdlaWdodDogbnVsbCxcbiAgICAgIGZvY3VzRHJvcGRvd25PcHRpb25Cb3JkZXJMZWZ0OiBudWxsLFxuICAgICAgZm9jdXNEcm9wZG93bk9wdGlvbkJvcmRlclJhZGl1czogbnVsbCxcbiAgICAgIGhvdmVyQm9yZGVyQ29sb3I6IG51bGwsXG4gICAgICBob3ZlckJvcmRlcldpZHRoOiBudWxsLFxuICAgICAgaG92ZXJDb2xvcjogbnVsbCxcbiAgICAgIGRpc2FibGVDb2xvcjogbnVsbCxcbiAgICAgIGRpc2FibGVCYWNrZ3JvdW5kOiBudWxsLFxuICAgICAgZXJyb3JCb3JkZXJDb2xvcjogbnVsbCxcbiAgICAgIGVycm9yQm9yZGVyV2lkdGg6IG51bGwsXG4gICAgICBlcnJvckNvbG9yOiBudWxsLFxuICAgICAgY3JlYXRlZERhdGU6IG51bGwsXG4gICAgICBwYWRkaW5nOiBudWxsLFxuICAgICAgbWFyZ2luOiBudWxsLFxuICAgICAgaXNNYXN0ZXJDc3M6IG51bGwsXG4gICAgICBjb250cm9sTWV0YUlkOiBudWxsLFxuICAgICAgYm9yZGVyU3R5bGU6IG51bGwsXG4gICAgICBoZWlnaHQ6ICcyNnB4JyxcbiAgICAgIG1pbkhlaWdodDogbnVsbCxcbiAgICAgIG1heEhlaWdodDogbnVsbCxcbiAgICAgIG1pbldpZHRoOiBudWxsLFxuICAgICAgbWF4V2lkdGg6IG51bGwsXG4gICAgICBjc3NDbGFzczogbnVsbCxcbiAgICB9LFxuICAgIGZpZWxkTmFtZTogJ2FubnVpdHlJbnRlckNoYW5nZScsXG4gICAgbGFiZWw6ICdBbm51aXR5IEludGVyY2hhbmdlIEJ1dHRvbicsXG4gICAgcGxhY2VIb2xkZXI6IG51bGwsXG4gICAgbWV0YUlkOiAnQUxMX0NPTV9HRU5fTUNUUkxfZG93bmxvYWRJY29uQnV0dG9uX2FubnVpdHlJbnRlckNoYW5nZV9WMScsXG4gICAgaXNWaXNpYmxlOiB0cnVlLFxuICAgIGlzRGlzYWJsZTogZmFsc2UsXG4gICAgZGVmYXVsdFZhbHVlOiBudWxsLFxuICAgIHZhbGlkYXRvcnM6IHtcbiAgICAgIGlzUmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgcmVxdWlyZWRNZXNzYWdlOiAnVGhpcyBmaWVsZCBjYW5ub3QgYmUgZW1wdHknLFxuICAgICAgbWluTGVuZ3RoOiBudWxsLFxuICAgICAgbWluTGVuZ3RoTWVzc2FnZTogbnVsbCxcbiAgICAgIG1heExlbmd0aDogbnVsbCxcbiAgICAgIG1heExlbmd0aE1lc3NhZ2U6IG51bGwsXG4gICAgICBwYXR0ZXJuOiBudWxsLFxuICAgICAgcGF0dGVybk1lc3NhZ2U6ICcnLFxuICAgIH0sXG4gICAgb3B0aW9uczogW10sXG4gICAgY3NzQ2xhc3M6IG51bGwsXG4gICAgdmFsdWU6IG51bGwsXG4gICAgc3R5bGU6IG51bGwsXG4gICAgaW1hZ2VVcmw6XG4gICAgICAnaHR0cHM6Ly9jZG4uZ29kaWdpdC5jb20vZGlnaXRQbHVzQXNzZXRzL1RyYW5zaXRpb24td2l0aC1ib3JkZXItaWNvbi5zdmcnLFxuICAgIGNvbmZpZ0RhdGE6IHt9LFxuICAgIG1ldGFEYXRhT2JqOiBudWxsLFxuICAgIGlzU2hvd0xhYmVsOiB0cnVlLFxuICAgIGlzTWFzdGVyQ29udHJvbDogdHJ1ZSxcbiAgICBjb250cm9sVHlwZTogJ2Rvd25sb2FkSWNvbkJ1dHRvbicsXG4gIH07XG5cbiAgZ2VuZXJhdGVTdW1tYXJ5T2JqOiBhbnkgPSB7XG4gICAgY29udHJvbFR5cGU6ICdidXR0b24nLFxuICAgIGZpZWxkTmFtZTogJ2dlbmVyYXRlU3VtbWFyeScsXG4gICAgbGFiZWw6ICdHZW5lcmF0ZSBTdW1tYXJ5JyxcbiAgICBwbGFjZUhvbGRlcjogbnVsbCxcbiAgICBtZXRhSWQ6ICdMSV9EUF9HRU5fQ1RSTF9idXR0b25fZ2VuZXJhdGVTdW1tYXJ5X1YxJyxcbiAgICBpc1Zpc2libGU6IHRydWUsXG4gICAgaXNEaXNhYmxlOiB0cnVlLFxuICAgIHZhbGlkYXRvcnM6IHtcbiAgICAgIGlzUmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgcmVxdWlyZWRNZXNzYWdlOiAnVGhpcyBmaWVsZCBjYW5ub3QgYmUgZW1wdHknLFxuICAgICAgbWluTGVuZ3RoOiBudWxsLFxuICAgICAgbWluTGVuZ3RoTWVzc2FnZTogbnVsbCxcbiAgICAgIG1heExlbmd0aDogbnVsbCxcbiAgICAgIG1heExlbmd0aE1lc3NhZ2U6IG51bGwsXG4gICAgICBwYXR0ZXJuOiBudWxsLFxuICAgICAgcGF0dGVybk1lc3NhZ2U6ICcnLFxuICAgIH0sXG4gICAgb3B0aW9uczogbnVsbCxcbiAgICBjc3NDbGFzczogJyBjb2wtc20tMTIgY29sLW1kLTEyIGNvbC1sZy0xMiBjb2wteGwtMTIgbXktMSBtdC0zJyxcbiAgICB2YWx1ZTogbnVsbCxcbiAgICBzdHlsZTogbnVsbCxcbiAgICBpbWFnZVVybDogbnVsbCxcbiAgICBpc1Nob3dMYWJlbDogdHJ1ZSxcbiAgICBjb250cm9sU3R5bGU6IHtcbiAgICAgIGNvbnRyb2xUeXBlOiBudWxsLFxuICAgICAgYm9yZGVyQ29sb3I6IG51bGwsXG4gICAgICBib3JkZXJXaWR0aDogbnVsbCxcbiAgICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgICBmb250U2l6ZTogJzEycHgnLFxuICAgICAgZm9udFdlaWdodDogbnVsbCxcbiAgICAgIGZvbnRGYW1pbHk6IG51bGwsXG4gICAgICBjb2xvcjogbnVsbCxcbiAgICAgIGJhY2tncm91bmQ6ICcjRkZCQjAwJyxcbiAgICAgIGNhcmV0Q29sb3I6IG51bGwsXG4gICAgICBudWRnZURpc3BsYXlJbWFnZTogbnVsbCxcbiAgICAgIGRyb3Bkb3duT3B0aW9uQmdDb2xvcjogbnVsbCxcbiAgICAgIGRyb3Bkb3duT3B0aW9uQ29sb3I6IG51bGwsXG4gICAgICBkcm9wZG93bk9wdGlvbkZvbnRXZWlnaHQ6IG51bGwsXG4gICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgZm9jdXNCb3JkZXJXaWR0aDogbnVsbCxcbiAgICAgIGZvY3VzQm9yZGVyQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0JhY2tncm91bmQ6IG51bGwsXG4gICAgICBmb2N1c0NvbG9yOiBudWxsLFxuICAgICAgZm9jdXNEcm9wZG93bk9wdGlvbkJnQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uRm9udFdlaWdodDogbnVsbCxcbiAgICAgIGZvY3VzRHJvcGRvd25PcHRpb25Cb3JkZXJMZWZ0OiBudWxsLFxuICAgICAgZm9jdXNEcm9wZG93bk9wdGlvbkJvcmRlclJhZGl1czogbnVsbCxcbiAgICAgIGhvdmVyQm9yZGVyQ29sb3I6IG51bGwsXG4gICAgICBob3ZlckJvcmRlcldpZHRoOiBudWxsLFxuICAgICAgaG92ZXJDb2xvcjogbnVsbCxcbiAgICAgIGRpc2FibGVDb2xvcjogbnVsbCxcbiAgICAgIGRpc2FibGVCYWNrZ3JvdW5kOiBudWxsLFxuICAgICAgZXJyb3JCb3JkZXJDb2xvcjogbnVsbCxcbiAgICAgIGVycm9yQm9yZGVyV2lkdGg6IG51bGwsXG4gICAgICBlcnJvckNvbG9yOiBudWxsLFxuICAgICAgY3JlYXRlZERhdGU6IG51bGwsXG4gICAgICBwYWRkaW5nOiBudWxsLFxuICAgICAgbWFyZ2luOiBudWxsLFxuICAgICAgaXNNYXN0ZXJDc3M6IG51bGwsXG4gICAgICBjb250cm9sTWV0YUlkOiAnTElfRFBfR0VOX0NUUkxfYnV0dG9uX2dlbmVyYXRlU3VtbWFyeV9WMScsXG4gICAgICBib3JkZXJTdHlsZTogbnVsbCxcbiAgICAgIGhlaWdodDogbnVsbCxcbiAgICAgIG1pbkhlaWdodDogbnVsbCxcbiAgICAgIG1heEhlaWdodDogbnVsbCxcbiAgICAgIG1pbldpZHRoOiBudWxsLFxuICAgICAgbWF4V2lkdGg6IG51bGwsXG4gICAgICBjc3NDbGFzczogbnVsbCxcbiAgICB9LFxuICAgIGNvbHVtbkluZGV4OiAwLFxuICAgIGNvbmZpZ0RhdGE6IHt9LFxuICAgIGNvbnRyb2xTdHlsZXM6IG51bGwsXG4gIH07XG5cbiAgZ3VyYW50ZWVkYW5udWl0eU9iajogYW55PXtcbiAgICAgICAgICAgICAgICBcImNvbnRyb2xUeXBlXCI6IFwicmFkaW9cIixcbiAgICAgICAgICAgICAgICBcImZpZWxkTmFtZVwiOiBcImd1cmFudGVlZEFubnVpdHlhZ2VcIixcbiAgICAgICAgICAgICAgICBcImxhYmVsXCI6IFwiTWluaW11bSBHdWFyYW50ZWVkIEFubnVpdHkgUGF5b3V0ICVcIixcbiAgICAgICAgICAgICAgICBcInBsYWNlSG9sZGVyXCI6IFwiXCIsXG4gICAgICAgICAgICAgICAgXCJtZXRhSWRcIjogXCJMSV9EUF9EUF9DVFJMX3JhZGlvX2FubnVpdHlUeXBlX1YxXCIsXG4gICAgICAgICAgICAgICAgXCJpc1Zpc2libGVcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgXCJpc0Rpc2FibGVcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgXCJ2YWxpZGF0b3JzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiaXNSZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZE1lc3NhZ2VcIjogXCJUaGlzIGZpZWxkIGNhbm5vdCBiZSBlbXB0eVwiLFxuICAgICAgICAgICAgICAgICAgXCJtaW5MZW5ndGhcIjogbnVsbCxcbiAgICAgICAgICAgICAgICAgIFwibWluTGVuZ3RoTWVzc2FnZVwiOiBudWxsLFxuICAgICAgICAgICAgICAgICAgXCJtYXhMZW5ndGhcIjogMTUwLFxuICAgICAgICAgICAgICAgICAgXCJtYXhMZW5ndGhNZXNzYWdlXCI6IG51bGwsXG4gICAgICAgICAgICAgICAgICBcInBhdHRlcm5cIjogbnVsbCxcbiAgICAgICAgICAgICAgICAgIFwicGF0dGVybk1lc3NhZ2VcIjogXCJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJvcHRpb25zXCI6IFtdLFxuICAgICAgICAgICAgICAgIFwiY3NzQ2xhc3NcIjogXCIgY29sLXNtLTEyIGNvbC1tZC0zIGNvbC1sZy0zIGNvbC14bC0zIGFubnVpdHlUeXBlXCIsXG4gICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiBudWxsLFxuICAgICAgICAgICAgICAgIFwic3R5bGVcIjogbnVsbCxcbiAgICAgICAgICAgICAgICBcImltYWdlVXJsXCI6IG51bGwsXG4gICAgICAgICAgICAgICAgXCJpc1Nob3dMYWJlbFwiOiB0cnVlLFxuICAgICAgICAgICAgICAgIFwiY29udHJvbFN0eWxlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiY29udHJvbFR5cGVcIjogXCJyYWRpb1wiLFxuICAgICAgICAgICAgICAgICAgXCJib3JkZXJDb2xvclwiOiBcIiNEQURBREFcIixcbiAgICAgICAgICAgICAgICAgIFwiYm9yZGVyV2lkdGhcIjogXCIxcHhcIixcbiAgICAgICAgICAgICAgICAgIFwiYm9yZGVyUmFkaXVzXCI6IG51bGwsXG4gICAgICAgICAgICAgICAgICBcImZvbnRTaXplXCI6IFwiMTJweFwiLFxuICAgICAgICAgICAgICAgICAgXCJmb250V2VpZ2h0XCI6IFwiNDAwXCIsXG4gICAgICAgICAgICAgICAgICBcImZvbnRGYW1pbHlcIjogXCJNdWxpc2hcIixcbiAgICAgICAgICAgICAgICAgIFwiY29sb3JcIjogXCIjNDQ0NDQ0XCIsXG4gICAgICAgICAgICAgICAgICBcImJhY2tncm91bmRcIjogXCIjRkZGRkZGXCIsXG4gICAgICAgICAgICAgICAgICBcImNhcmV0Q29sb3JcIjogbnVsbCxcbiAgICAgICAgICAgICAgICAgIFwibnVkZ2VEaXNwbGF5SW1hZ2VcIjogbnVsbCxcbiAgICAgICAgICAgICAgICAgIFwiZHJvcGRvd25PcHRpb25CZ0NvbG9yXCI6IG51bGwsXG4gICAgICAgICAgICAgICAgICBcImRyb3Bkb3duT3B0aW9uQ29sb3JcIjogbnVsbCxcbiAgICAgICAgICAgICAgICAgIFwiZHJvcGRvd25PcHRpb25Gb250V2VpZ2h0XCI6IG51bGwsXG4gICAgICAgICAgICAgICAgICBcIndpZHRoXCI6IFwiNDVweFwiLFxuICAgICAgICAgICAgICAgICAgXCJmb2N1c0JvcmRlcldpZHRoXCI6IFwiMXB4XCIsXG4gICAgICAgICAgICAgICAgICBcImZvY3VzQm9yZGVyQ29sb3JcIjogXCIjZmZiYjAwXCIsXG4gICAgICAgICAgICAgICAgICBcImZvY3VzQmFja2dyb3VuZFwiOiBudWxsLFxuICAgICAgICAgICAgICAgICAgXCJmb2N1c0NvbG9yXCI6IFwiIzQ0NDQ0NFwiLFxuICAgICAgICAgICAgICAgICAgXCJmb2N1c0Ryb3Bkb3duT3B0aW9uQmdDb2xvclwiOiBudWxsLFxuICAgICAgICAgICAgICAgICAgXCJmb2N1c0Ryb3Bkb3duT3B0aW9uQ29sb3JcIjogbnVsbCxcbiAgICAgICAgICAgICAgICAgIFwiZm9jdXNEcm9wZG93bk9wdGlvbkZvbnRXZWlnaHRcIjogbnVsbCxcbiAgICAgICAgICAgICAgICAgIFwiZm9jdXNEcm9wZG93bk9wdGlvbkJvcmRlckxlZnRcIjogbnVsbCxcbiAgICAgICAgICAgICAgICAgIFwiZm9jdXNEcm9wZG93bk9wdGlvbkJvcmRlclJhZGl1c1wiOiBudWxsLFxuICAgICAgICAgICAgICAgICAgXCJob3ZlckJvcmRlckNvbG9yXCI6IFwiI0RBREFEQVwiLFxuICAgICAgICAgICAgICAgICAgXCJob3ZlckJvcmRlcldpZHRoXCI6IFwiMXB4XCIsXG4gICAgICAgICAgICAgICAgICBcImhvdmVyQ29sb3JcIjogXCIjNDQ0NDQ0XCIsXG4gICAgICAgICAgICAgICAgICBcImRpc2FibGVDb2xvclwiOiBcIiNFQ0VDRUNcIixcbiAgICAgICAgICAgICAgICAgIFwiZGlzYWJsZUJhY2tncm91bmRcIjogXCIjRUNFQ0VDXCIsXG4gICAgICAgICAgICAgICAgICBcImVycm9yQm9yZGVyQ29sb3JcIjogXCIjREFEQURBXCIsXG4gICAgICAgICAgICAgICAgICBcImVycm9yQm9yZGVyV2lkdGhcIjogXCIxcHhcIixcbiAgICAgICAgICAgICAgICAgIFwiZXJyb3JDb2xvclwiOiBcIiM0NDQ0NDRcIixcbiAgICAgICAgICAgICAgICAgIFwiY3JlYXRlZERhdGVcIjogbnVsbCxcbiAgICAgICAgICAgICAgICAgIFwicGFkZGluZ1wiOiBudWxsLFxuICAgICAgICAgICAgICAgICAgXCJtYXJnaW5cIjogbnVsbCxcbiAgICAgICAgICAgICAgICAgIFwiaXNNYXN0ZXJDc3NcIjogbnVsbCxcbiAgICAgICAgICAgICAgICAgIFwiY29udHJvbE1ldGFJZFwiOiBcIkxJX0RQX0RQX0NUUkxfcmFkaW9fYW5udWl0eVR5cGVfVjFcIixcbiAgICAgICAgICAgICAgICAgIFwiYm9yZGVyU3R5bGVcIjogbnVsbCxcbiAgICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCI6IFwiMzJweFwiLFxuICAgICAgICAgICAgICAgICAgXCJtaW5IZWlnaHRcIjogbnVsbCxcbiAgICAgICAgICAgICAgICAgIFwibWF4SGVpZ2h0XCI6IG51bGwsXG4gICAgICAgICAgICAgICAgICBcIm1pbldpZHRoXCI6IFwiNDVweFwiLFxuICAgICAgICAgICAgICAgICAgXCJtYXhXaWR0aFwiOiBudWxsLFxuICAgICAgICAgICAgICAgICAgXCJjc3NDbGFzc1wiOiBudWxsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImNvbHVtbkluZGV4XCI6IDAsXG4gICAgICAgICAgICAgICAgXCJjb25maWdEYXRhXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiY29udHJvbFN0eWxlc1wiOiBudWxsXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHVibGljIG1hc3RlclNlcnZpY2UgOiBNYXN0ZXJDb250cm9sU2VydmljZSkge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKCAoY2hhbmdlc1sncHJlbWl1bURldGFpbHMnXSkgJiYgIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KGNoYW5nZXNbJ3ByZW1pdW1EZXRhaWxzJ10uY3VycmVudFZhbHVlKSApIHtcblxuICAgICAgaWYoIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KHRoaXMucHJlbWl1bURldGFpbHMoKT8ucmVjYWxjdWxhdGVTdWJUZXh0KSkge1xuICAgICAgICAgICAgICBpZighdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5wcmVtaXVtRGV0YWlscygpPy5yZWNhbGN1bGF0ZVN1YlRleHRbJ2lzVmlzaWJsZSddKSkge1xuXG4gICAgICAgIHRoaXMucmVjYWxjdWxhdGVTdWJUZXh0T2JqWydpc1Zpc2libGUnXSA9dGhpcy5wcmVtaXVtRGV0YWlscygpLnJlY2FsY3VsYXRlU3ViVGV4dFsnaXNWaXNpYmxlJ10gO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgIH1cbiAgICAgIGlmKCF0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLnByZW1pdW1EZXRhaWxzKCk/LlByZW1pdW0pKSB7XG4gICAgICAgIC8vIENyZWF0ZSBuZXcgb2JqZWN0IHRvIHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvblxuICAgICAgICB0aGlzLmFubnVpdHlQcmVtaXVtID0ge1xuICAgICAgICAgIHRleHRWYWx1ZTogdGhpcy5wcmVtaXVtRGV0YWlscygpPy5QcmVtaXVtWyd0ZXh0VmFsdWUnXSxcbiAgICAgICAgICBzZWxlY3RWYWx1ZTogdGhpcy5wcmVtaXVtRGV0YWlscygpPy5QcmVtaXVtWydzZWxlY3RWYWx1ZSddLFxuICAgICAgICB9O1xuICAgICAgICBpZighdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5hbm51aXR5UHJlbWl1bVsndGV4dFZhbHVlJ10pICYmICF0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLmFubnVpdHlQcmVtaXVtWydzZWxlY3RWYWx1ZSddKSkge1xuICAgICAgICBjb25zdCBmcmVxID0gYCBwZXIgJHt0aGlzLmFubnVpdHlQcmVtaXVtWydzZWxlY3RWYWx1ZSddfWA7XG4gICAgICAgIHRoaXMuYW5udWl0eVByZW1pdW1PYmouY29uZmlnRGF0YS5udW1iZXJ0b3dvcmQgPSB0aGlzLnRyYW5zZm9ybSh0aGlzLmFubnVpdHlQcmVtaXVtWyd0ZXh0VmFsdWUnXSkrIGZyZXE7XG4gICAgICAgIH1cblxuICAgICAgICBpZihPYmplY3QuaGFzT3duKHRoaXMucHJlbWl1bURldGFpbHMoKT8uUHJlbWl1bSwgJ2lzRGlzYWJsZScpKSB7XG4gICAgICAgICAgdGhpcy5hbm51aXR5UHJlbWl1bU9ialsnaXNEaXNhYmxlJ10gPSB0aGlzLnByZW1pdW1EZXRhaWxzKCk/LlByZW1pdW1bJ2lzRGlzYWJsZSddO1xuICAgICAgICB9XG4gICAgICAgIGlmKE9iamVjdC5oYXNPd24odGhpcy5wcmVtaXVtRGV0YWlscygpPy5QcmVtaXVtLCAnaXNEaXNhYmxlRHJvcGRvd24nKSkge1xuICAgICAgICAgIHRoaXMuYW5udWl0eVByZW1pdW1PYmpbJ2NvbmZpZ0RhdGEnXVsnaXNEaXNhYmxlRHJvcGRvd24nXSA9IHRoaXMucHJlbWl1bURldGFpbHMoKT8uUHJlbWl1bVsnaXNEaXNhYmxlRHJvcGRvd24nXTtcbiAgICAgICAgfVxuICAgICAgICBpZihPYmplY3QuaGFzT3duKHRoaXMucHJlbWl1bURldGFpbHMoKT8uUHJlbWl1bSwgJ29wdGlvbnMnKSkge1xuICAgICAgICAgIHRoaXMuYW5udWl0eVByZW1pdW1PYmpbJ29wdGlvbnMnXSA9IHRoaXMucHJlbWl1bURldGFpbHMoKT8uUHJlbWl1bVsnb3B0aW9ucyddO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmKCF0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLnByZW1pdW1EZXRhaWxzKCk/LmFubnVpdHkpKSB7XG4gICAgICAgIC8vIENyZWF0ZSBuZXcgb2JqZWN0IHRvIHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvblxuICAgICAgICB0aGlzLm1pbnVtdW1Bbm51aXR5UGF5b3V0ID0ge1xuICAgICAgICAgIHRleHRWYWx1ZTogdGhpcy5wcmVtaXVtRGV0YWlscygpPy5hbm51aXR5Wyd0ZXh0VmFsdWUnXSxcbiAgICAgICAgICBzZWxlY3RWYWx1ZTogdGhpcy5wcmVtaXVtRGV0YWlscygpPy5hbm51aXR5WydzZWxlY3RWYWx1ZSddLFxuICAgICAgICB9O1xuICAgICAgICBpZighdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5taW51bXVtQW5udWl0eVBheW91dFsndGV4dFZhbHVlJ10pICYmICF0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLm1pbnVtdW1Bbm51aXR5UGF5b3V0WydzZWxlY3RWYWx1ZSddKSkge1xuICAgICAgICBjb25zdCBmcmVxID0gYCBwZXIgJHt0aGlzLm1pbnVtdW1Bbm51aXR5UGF5b3V0WydzZWxlY3RWYWx1ZSddfWA7XG4gICAgICAgIHRoaXMubWluaW11bUFubnVpdHlQYXlvdXRPYmouY29uZmlnRGF0YS5udW1iZXJ0b3dvcmQgPSB0aGlzLnRyYW5zZm9ybSh0aGlzLm1pbnVtdW1Bbm51aXR5UGF5b3V0Wyd0ZXh0VmFsdWUnXSkgKyBmcmVxO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYoT2JqZWN0Lmhhc093bih0aGlzLnByZW1pdW1EZXRhaWxzKCk/LmFubnVpdHksICdpc0Rpc2FibGUnKSkge1xuICAgICAgICAgIHRoaXMubWluaW11bUFubnVpdHlQYXlvdXRPYmpbJ2lzRGlzYWJsZSddID0gdGhpcy5wcmVtaXVtRGV0YWlscygpPy5hbm51aXR5Wydpc0Rpc2FibGUnXTtcbiAgICAgICAgfVxuICAgICAgICBpZihPYmplY3QuaGFzT3duKHRoaXMucHJlbWl1bURldGFpbHMoKT8uYW5udWl0eSwgJ2lzRGlzYWJsZURyb3Bkb3duJykpIHtcbiAgICAgICAgICB0aGlzLm1pbmltdW1Bbm51aXR5UGF5b3V0T2JqWydjb25maWdEYXRhJ11bJ2lzRGlzYWJsZURyb3Bkb3duJ10gPSB0aGlzLnByZW1pdW1EZXRhaWxzKCk/LmFubnVpdHlbJ2lzRGlzYWJsZURyb3Bkb3duJ107XG4gICAgICAgIH1cbiAgICAgICAgaWYoT2JqZWN0Lmhhc093bih0aGlzLnByZW1pdW1EZXRhaWxzKCk/LmFubnVpdHksICdvcHRpb25zJykpIHtcbiAgICAgICAgICB0aGlzLm1pbmltdW1Bbm51aXR5UGF5b3V0T2JqWydvcHRpb25zJ10gPSB0aGlzLnByZW1pdW1EZXRhaWxzKCk/LmFubnVpdHlbJ29wdGlvbnMnXTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZighdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5wcmVtaXVtRGV0YWlscygpPy5hbm51aXR5VGFibGVDYWxjdWxhdG9yKSkge1xuICAgICAgICAvLyBDcmVhdGUgbmV3IG9iamVjdCB0byB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb25cbiAgICAgICAgdGhpcy5hbm51aXR5VGFibGVDYWxjdWxhdG9yID0gdGhpcy5wcmVtaXVtRGV0YWlscygpPy5hbm51aXR5VGFibGVDYWxjdWxhdG9yO1xuICAgICAgfVxuXG4gICAgICBpZighdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5wcmVtaXVtRGV0YWlscygpPy5jYWxjdWxhdGVBbm51aXR5KSkge1xuXG4gICAgICAgIGlmKCF0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLnByZW1pdW1EZXRhaWxzKCk/LmNhbGN1bGF0ZUFubnVpdHlbJ2NvbnRyb2xTdHlsZSddKSkge1xuICAgICAgICAgIHRoaXMucmVjYWxjdWxhdGVCdXR0b25bJ2NvbnRyb2xTdHlsZSddID0gdGhpcy5wcmVtaXVtRGV0YWlscygpPy5jYWxjdWxhdGVBbm51aXR5Wydjb250cm9sU3R5bGUnXVxuICAgICAgICB9XG5cbiAgICAgICAgaWYoIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KHRoaXMucHJlbWl1bURldGFpbHMoKT8uY2FsY3VsYXRlQW5udWl0eVsnbGFiZWwnXSkpIHtcbiAgICAgICAgICB0aGlzLnJlY2FsY3VsYXRlQnV0dG9uWydsYWJlbCddID0gdGhpcy5wcmVtaXVtRGV0YWlscygpPy5jYWxjdWxhdGVBbm51aXR5WydsYWJlbCddXG4gICAgICAgIH1cbiAgICAgICAgaWYoIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KHRoaXMucHJlbWl1bURldGFpbHMoKT8uY2FsY3VsYXRlQW5udWl0eVsnaXNEaXNhYmxlJ10pKSB7XG4gICAgICAgICAgdGhpcy5yZWNhbGN1bGF0ZUJ1dHRvblsnaXNEaXNhYmxlJ10gPSB0aGlzLnByZW1pdW1EZXRhaWxzKCk/LmNhbGN1bGF0ZUFubnVpdHlbJ2lzRGlzYWJsZSddXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYoIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KHRoaXMucHJlbWl1bURldGFpbHMoKT8uZGlnaXRCb3NzU3dpdGNoKSkge1xuICAgICAgICB0aGlzLmRpZ2l0Qm9zc1N3aXRjaCA9IHRoaXMucHJlbWl1bURldGFpbHMoKT8uZGlnaXRCb3NzU3dpdGNoO1xuXG4gICAgICB9XG5cbiAgICAgIC8vZ3VyYW50ZWVkIEFubnVpdHkgb3B0aW9uc1xuXG4gICAgICBpZighdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5wcmVtaXVtRGV0YWlscygpPy5ndXJhbnRlZWRBbm51aXR5KSkge1xuICAgICAgICBpZighdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5wcmVtaXVtRGV0YWlscygpPy5ndXJhbnRlZWRBbm51aXR5WydvcHRpb25zJ10pKSB7XG4gICAgICAgICAgdGhpcy5ndXJhbnRlZWRhbm51aXR5T2JqWydvcHRpb25zJ10gPSB0aGlzLnByZW1pdW1EZXRhaWxzKCk/Lmd1cmFudGVlZEFubnVpdHlbJ29wdGlvbnMnXTtcbiAgICAgICAgfVxuICAgICAgICBpZighdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5wcmVtaXVtRGV0YWlscygpPy5ndXJhbnRlZWRBbm51aXR5Wydpc1Zpc2libGUnXSkpIHtcbiAgICAgICAgICB0aGlzLmd1cmFudGVlZGFubnVpdHlPYmpbJ2lzVmlzaWJsZSddID0gdGhpcy5wcmVtaXVtRGV0YWlscygpPy5ndXJhbnRlZWRBbm51aXR5Wydpc1Zpc2libGUnXTtcbiAgICAgICAgfVxuXG5cbiAgICAgIH1cblxuICAgICAgaWYoIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KHRoaXMucHJlbWl1bURldGFpbHMoKT8uZ2VuZXJhdGVTdW1tYXJ5KSkge1xuXG4gICAgICAgIGlmKCF0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLnByZW1pdW1EZXRhaWxzKCk/LmdlbmVyYXRlU3VtbWFyeVsnaXNWaXNpYmxlJ10pKSB7XG4gICAgICAgICAgdGhpcy5nZW5lcmF0ZVN1bW1hcnlPYmpbJ2lzVmlzaWJsZSddID0gdGhpcy5wcmVtaXVtRGV0YWlscygpPy5nZW5lcmF0ZVN1bW1hcnlbJ2lzVmlzaWJsZSddXG4gICAgICAgIH1cblxuICAgICAgICBpZighdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5wcmVtaXVtRGV0YWlscygpPy5nZW5lcmF0ZVN1bW1hcnlbJ2NvbnRyb2xTdHlsZSddKSkge1xuICAgICAgICAgIHRoaXMuZ2VuZXJhdGVTdW1tYXJ5T2JqWydjb250cm9sU3R5bGUnXSA9IHRoaXMucHJlbWl1bURldGFpbHMoKT8uZ2VuZXJhdGVTdW1tYXJ5Wydjb250cm9sU3R5bGUnXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmKCF0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLnByZW1pdW1EZXRhaWxzKCk/LmdlbmVyYXRlU3VtbWFyeVsnbGFiZWwnXSkpIHtcbiAgICAgICAgICB0aGlzLmdlbmVyYXRlU3VtbWFyeU9ialsnbGFiZWwnXSA9IHRoaXMucHJlbWl1bURldGFpbHMoKT8uZ2VuZXJhdGVTdW1tYXJ5WydsYWJlbCddO1xuICAgICAgICB9XG4gICAgICAgIGlmKCF0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLnByZW1pdW1EZXRhaWxzKCk/LmdlbmVyYXRlU3VtbWFyeVsnaXNEaXNhYmxlJ10pKSB7XG4gICAgICAgICAgdGhpcy5nZW5lcmF0ZVN1bW1hcnlPYmpbJ2lzRGlzYWJsZSddID0gdGhpcy5wcmVtaXVtRGV0YWlscygpPy5nZW5lcmF0ZVN1bW1hcnlbJ2lzRGlzYWJsZSddXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYoIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KHRoaXMucHJlbWl1bURldGFpbHMoKT8uYXV0b1BheU9wdGlvbikpIHtcblxuICAgICAgICBpZighdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5wcmVtaXVtRGV0YWlscygpPy5hdXRvUGF5T3B0aW9uWydpc1Zpc2libGUnXSkpIHtcbiAgICAgICAgICB0aGlzLmVuYWJsZUF1dG9EZWJpdE9ialsnaXNWaXNpYmxlJ10gPSB0aGlzLnByZW1pdW1EZXRhaWxzKCk/LmF1dG9QYXlPcHRpb25bJ2lzVmlzaWJsZSddO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYoIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KHRoaXMucHJlbWl1bURldGFpbHMoKT8uYXV0b1BheU9wdGlvblsnaXNWaXNpYmxlJ10pKSB7XG4gICAgICAgICAgdGhpcy5pc0VuYWJsZUF1dG9EZWJpdCA9IHRoaXMucHJlbWl1bURldGFpbHMoKT8uYXV0b1BheU9wdGlvblsnaXNFbmFibGVBdXRvRGViaXQnXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmKCF0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLnByZW1pdW1EZXRhaWxzKCk/LmF1dG9QYXlPcHRpb25bJ2lzRGlzYWJsZSddKSkge1xuICAgICAgICAgIHRoaXMuZW5hYmxlQXV0b0RlYml0T2JqWydpc0Rpc2FibGUnXSA9IHRoaXMucHJlbWl1bURldGFpbHMoKT8uYXV0b1BheU9wdGlvblsnaXNEaXNhYmxlJ107XG4gICAgICAgIH1cblxuICAgICAgfVxuXG5cbiAgICB9XG4gIH1cblxuICBjYWxjdWxhdGVCdXR0b25DbGlja2VkKCkge1xuICAgIHRoaXMudmFsaWRhdGlvbnMuaXNwcmVtaXVtRW50cnkgPSBmYWxzZTtcbiAgICBpZih0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLmFubnVpdHlQcmVtaXVtWyd0ZXh0VmFsdWUnXSkpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvbnMuaXNwcmVtaXVtRW50cnkgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLm9uQ2FsY3VhbHRlQnV0dG9uQ2xpY2suZW1pdCgpO1xuICB9XG5cbiAgZ2VuZXJhdGVTdW1tYXJ5Q2xpY2tlZCgpIHtcbiAgICB0aGlzLm9uR2VuZXJhdGVTdW1tYXJ5Q2xpY2suZW1pdCgpO1xuICB9XG5cbiAgb25Bbm51aXR5UHJlbWl1bVZhbHVlQ2hhbmdlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmFubnVpdHlQcmVtaXVtID0gdmFsdWU7XG4gIHRoaXMudmFsaWRhdGlvbnMuaXNwcmVtaXVtRW50cnkgPSBmYWxzZTtcbiAgICBpZih0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLmFubnVpdHlQcmVtaXVtWyd0ZXh0VmFsdWUnXSkpIHtcbiAgICB0aGlzLnZhbGlkYXRpb25zLmlzcHJlbWl1bUVudHJ5ID0gdHJ1ZTtcbiAgfVxuICAgIHRoaXMub25Bbm51aXR5UHJlbWl1bUNoYW5nZS5lbWl0KHZhbHVlKTtcblxuICAgIC8vY29udmVydCB0byB3b3Jkc1xuICAgIGlmKCF0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLmFubnVpdHlQcmVtaXVtWyd0ZXh0VmFsdWUnXSkgJiYgIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KHRoaXMuYW5udWl0eVByZW1pdW1bJ3NlbGVjdFZhbHVlJ10pKSB7XG4gICAgY29uc3QgZnJlcSA9YCBwZXIgJHt0aGlzLmFubnVpdHlQcmVtaXVtWydzZWxlY3RWYWx1ZSddfWA7XG4gICAgdGhpcy5hbm51aXR5UHJlbWl1bU9iai5jb25maWdEYXRhLm51bWJlcnRvd29yZCA9IHRoaXMudHJhbnNmb3JtKHRoaXMuYW5udWl0eVByZW1pdW1bJ3RleHRWYWx1ZSddKSArIGZyZXE7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgIHRoaXMuYW5udWl0eVByZW1pdW1PYmouY29uZmlnRGF0YS5udW1iZXJ0b3dvcmQgPSAnJztcbiAgICB9XG59XG4gIG9uTWluUHJlbWl1bVZhbHVlQ2hhbmdlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLm1pbnVtdW1Bbm51aXR5UGF5b3V0ID0gdmFsdWU7XG4gICAgdGhpcy5vbk1pbmltdW1QcmVtaXVtVmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgLy9jb252ZXJ0IHRvIHdvcmRzXG4gICAgaWYoIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KHRoaXMubWludW11bUFubnVpdHlQYXlvdXRbJ3RleHRWYWx1ZSddKSAmJiAhdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5taW51bXVtQW5udWl0eVBheW91dFsnc2VsZWN0VmFsdWUnXSkpIHtcbiAgICBjb25zdCBmcmVxID0gYCBwZXIgJHt0aGlzLm1pbnVtdW1Bbm51aXR5UGF5b3V0WydzZWxlY3RWYWx1ZSddfWA7XG4gICAgdGhpcy5taW5pbXVtQW5udWl0eVBheW91dE9iai5jb25maWdEYXRhLm51bWJlcnRvd29yZCA9IHRoaXMudHJhbnNmb3JtKHRoaXMubWludW11bUFubnVpdHlQYXlvdXRbJ3RleHRWYWx1ZSddKSArIGZyZXE7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgIHRoaXMubWluaW11bUFubnVpdHlQYXlvdXRPYmouY29uZmlnRGF0YS5udW1iZXJ0b3dvcmQgPSAnJztcbiAgICB9XG59XG5cbiAgb25FbmFibGVBdXRvRGViaXRWYWx1ZUNoYW5nZShldmVudCA6IGFueSkge1xuICAgIHRoaXMub25BdXRpb0RlYml0VmFsdWVDaGFuZ2UuZW1pdChldmVudCk7XG4gIH1cblxuICBvbkd1cmFudGVlZEFubnVpdHlDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMub25HdXJhbnRlZWRBbm51aXR5VmFsdWVDaGFuZ2UuZW1pdChldmVudCk7XG4gIH1cblxuICBhbm51YWxJbmNvbWVmb2N1c091dCgpIHtcbiAgICB0aGlzLnZhbGlkYXRpb25zLmlzcHJlbWl1bUVudHJ5ID0gZmFsc2U7XG4gICAgaWYodGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5hbm51aXR5UHJlbWl1bVsndGV4dFZhbHVlJ10pKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25zLmlzcHJlbWl1bUVudHJ5ID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBhID0gWycnLCAnT25lICcsICdUd28gJywgJ1RocmVlICcsICdGb3VyICcsICdGaXZlICcsICdTaXggJywgJ1NldmVuICcsICdFaWdodCAnLCAnTmluZSAnLCAnVGVuICcsICdFbGV2ZW4gJywgJ1R3ZWx2ZSAnLCAnVGhpcnRlZW4gJywgJ0ZvdXJ0ZWVuICcsICdGaWZ0ZWVuICcsICdTaXh0ZWVuICcsICdTZXZlbnRlZW4gJywgJ0VpZ2h0ZWVuICcsICdOaW5ldGVlbiAnXTtcbiAgYiA9IFsnJywgJycsICdUd2VudHknLCAnVGhpcnR5JywgJ0ZvdXJ0eScsICdGaWZ0eScsICdTaXh0eScsICdTZXZlbnR5JywgJ0VpZ2h0eScsICdOaW5ldHknXTtcblxuICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdmFsdWUgPSB0aGlzLm1hc3RlclNlcnZpY2UucmVtb3ZlQ29tYXNBbmRDdXJyZW5jeVN5bWJvbEZyb21OdW1iZXJWYWx1ZXModmFsdWUpO1xuICAgIGxldCBuID0gKCcwMDAwMDAwMDAnICsgdmFsdWUpLnN1YnN0cigtOSkubWF0Y2goL14oXFxkezJ9KShcXGR7Mn0pKFxcZHsyfSkoXFxkezF9KShcXGR7Mn0pJC8pO1xuICAgIGlmICghbikgcmV0dXJuICcnO1xuICAgIGxldCBzdHIgPSAnJztcbiAgICBzdHIgKz0gKE51bWJlcihuWzFdKSAhPSAwKSA/ICh0aGlzLmFbTnVtYmVyKG5bMV0pXSB8fCAodGhpcy5iW051bWJlcihuWzFdWzBdKV0gKyAnICcgKyB0aGlzLmFbTnVtYmVyKG5bMV1bMV0pXSkpICsgJ0Nyb3JlICcgOiAnJztcbiAgICBzdHIgKz0gKE51bWJlcihuWzJdKSAhPSAwKSA/ICh0aGlzLmFbTnVtYmVyKG5bMl0pXSB8fCAodGhpcy5iW051bWJlcihuWzJdWzBdKV0gKyAnICcgKyB0aGlzLmFbTnVtYmVyKG5bMl1bMV0pXSkpICsgJ0xha2ggJyA6ICcnO1xuICAgIHN0ciArPSAoTnVtYmVyKG5bM10pICE9IDApID8gKHRoaXMuYVtOdW1iZXIoblszXSldIHx8ICh0aGlzLmJbTnVtYmVyKG5bM11bMF0pXSArICcgJyArIHRoaXMuYVtOdW1iZXIoblszXVsxXSldKSkgKyAnVGhvdXNhbmQgJyA6ICcnO1xuICAgIHN0ciArPSAoTnVtYmVyKG5bNF0pICE9IDApID8gKHRoaXMuYVtOdW1iZXIobls0XSldIHx8ICh0aGlzLmJbTnVtYmVyKG5bNF1bMF0pXSArICcgJyArIHRoaXMuYVtOdW1iZXIobls0XVsxXSldKSkgKyAnSHVuZHJlZCAnIDogJyc7XG4gICAgc3RyICs9IChOdW1iZXIobls1XSkgIT0gMCkgPyAoKHN0ciAhPSAnJykgPyAnQW5kICcgOiAnJykgKyAodGhpcy5hW051bWJlcihuWzVdKV0gfHwgKHRoaXMuYltOdW1iZXIobls1XVswXSldICsgJyAnICsgdGhpcy5hW051bWJlcihuWzVdWzFdKV0pKSA6ICcnO1xuICAgIHN0ciA9IHN0ci50cmltKCk7XG4gICAgcmV0dXJuIHN0ciA/IHN0ciArICcgT25seScgOiAnJztcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNhcmQgcHgtM1wiIHN0eWxlPVwicGFkZGluZzogMTZweDtcIj5cbiAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgIDxoNCBjbGFzcz1cImNhcmQtbWFpbi10aXRsZVwiPjxzcGFuIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxMnB4O1wiPjxpbWdcbiAgICAgICAgICBzcmM9XCJodHRwczovL2Nkbi5nb2RpZ2l0LmNvbS9yZXRhaWwtbGlmZS9jYWxjdWxhdG9yLnN2Z1wiIGFsdD1cImFubnVpdHkgY2FsY3VsYXRvclwiPjwvc3Bhbj5IZXJl4oCZcyBZb3VyIEludmVzdG1lbnQgdG8gUmV0dXJucyBDYWxjdWxhdG9yLjwvaDQ+XG4gIDwvZGl2PlxuICA8IS0tIDxkaXYgY2xhc3M9XCJyb3dcIj4gLS0+XG4gIDxkaXYgY2xhc3M9XCJjYXJkIHBiLTQgcHgtNFwiIHN0eWxlPVwiYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMHB4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4O1wiPlxuICAgIDwhLS0gPGRpdiBjbGFzcz1cImN1c3RvbS1ncmlkLXRlbXBsYXRlXCI+XG5cbiAgICA8L2Rpdj4gLS0+XG5cbiAgICA8ZGl2IGNsYXNzPVwicm93IG14LWF1dG9cIiBzdHlsZT1cInRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTU4JSk7XCI+XG4gICAgICA8bGliLXRvZ2dsZSBjbGFzcz1cImNvbC1hdXRvXCIgW2ZpZWxkXT1cImFubnVpdHlQcmVtaXVtVG9nZ2xlT2JqXCIgLz5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIDwvZGl2PiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiIGNvbC0xMlwiIHN0eWxlPVwiXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBkaXNwbGF5OiBmbGV4O1xuXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTUgY29sLWxnLTUgZC1mbGV4IGZsZXgtY29sdW1uIHAtMFwiPlxuICAgICAgICA8bGliLXNlbGVjdC10ZXh0Ym94IFtmaWVsZF09XCJhbm51aXR5UHJlbWl1bU9ialwiIFsobmdNb2RlbCldPVwiYW5udWl0eVByZW1pdW1cIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQW5udWl0eVByZW1pdW1WYWx1ZUNoYW5nZSgkZXZlbnQpXCIgLz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cInZhbGlkYXRpb25zLmlzcHJlbWl1bUVudHJ5XCI+XG4gICAgICAgICAgRW50ZXIgUHJlbWl1bVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFubnVpdHktbWF0LWhpbnRcIiAqbmdJZj1cImFubnVpdHlQcmVtaXVtT2JqPy5jb25maWdEYXRhPy5udW1iZXJ0b3dvcmRcIj57e2FubnVpdHlQcmVtaXVtT2JqPy5jb25maWdEYXRhPy5udW1iZXJ0b3dvcmR9fTwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxsaWItdG9nZ2xlIFtmaWVsZF09XCJlbmFibGVBdXRvRGViaXRPYmpcIiBbKG5nTW9kZWwpXT1cImlzRW5hYmxlQXV0b0RlYml0XCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uRW5hYmxlQXV0b0RlYml0VmFsdWVDaGFuZ2UoJGV2ZW50KVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTIgY29sLWxnLTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogZmxleC1lbmQ7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgNnB4KTsgcG9zaXRpb246IHJlbGF0aXZlOyBoZWlnaHQ6IGF1dG87IG1pbi1oZWlnaHQ6IDEwMCU7XCI+XG4gICAgICAgIDwhLS0gVG9wIGxpbmUgLS0+XG4gICAgICAgIDxkaXYgc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDUwJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB3aWR0aDogMXB4OyBoZWlnaHQ6IGNhbGMoNTAlICsgMjRweCk7IHRvcDogLTM3cHg7IGJhY2tncm91bmQ6IHJnYmEoMjIxLCAyMjEsIDIyMSwgMSk7IHBvaW50ZXItZXZlbnRzOiBub25lO1wiPjwvZGl2PlxuICAgICAgICA8IS0tIEJvdHRvbSBsaW5lIC0tPlxuICAgICAgICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiA1MCU7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgd2lkdGg6IDFweDsgaGVpZ2h0OiBjYWxjKDUwJSArIDI0cHgpOyBib3R0b206IC0zN3B4OyBiYWNrZ3JvdW5kOiByZ2JhKDIyMSwgMjIxLCAyMjEsIDEpOyBwb2ludGVyLWV2ZW50czogbm9uZTtcIj48L2Rpdj5cbiAgICAgICAgPGxpYi1pY29uLWJ1dHRvbiBbZmllbGRdPVwiaW50ZXJjaGFuZ2VCdXR0b25PYmpcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTUgY29sLWxnLTUgZC1mbGV4IGZsZXgtY29sdW1uIHAtMFwiPlxuICAgICAgICA8bGliLXNlbGVjdC10ZXh0Ym94IFtmaWVsZF09XCJtaW5pbXVtQW5udWl0eVBheW91dE9ialwiIFsobmdNb2RlbCldPVwibWludW11bUFubnVpdHlQYXlvdXRcIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uTWluUHJlbWl1bVZhbHVlQ2hhbmdlKCRldmVudClcIiAvPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYW5udWl0eS1tYXQtaGludFwiICpuZ0lmPVwibWluaW11bUFubnVpdHlQYXlvdXRPYmo/LmNvbmZpZ0RhdGE/Lm51bWJlcnRvd29yZFwiPnt7bWluaW11bUFubnVpdHlQYXlvdXRPYmo/LmNvbmZpZ0RhdGE/Lm51bWJlcnRvd29yZH19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaW5pdW0tYW5udWl0eSBtdC0zXCIgKm5nSWY9XCJndXJhbnRlZWRhbm51aXR5T2JqWydpc1Zpc2libGUnXVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbm51aXR5LW1zZyB3LTEwMCBweC0yIHB5LTFcIj5cbiAgICAgICAgICAgIFZhbHVlIGJhc2VkIG9uIGFzc3VtZWQgMTAlIGFubnVhbCBncm93dGggb2YgTmlmdHkgNTAgaW5kZXguXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIHB4LTIgcHktMVwiPlxuICAgICAgICAgICAgPGxpYi1yYWRpbyBbZmllbGRdPVwiZ3VyYW50ZWVkYW5udWl0eU9ialwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRHdXJhbnRlZWRBbm51aXR5XCJcbiAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25HdXJhbnRlZWRBbm51aXR5Q2hhbmdlKCRldmVudClcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbm51aXR5LW1zZy0xIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1ub3dyYXAgdy0xMDAgcHgtMiBweS0xXCI+XG4gICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vY2RuLmdvZGlnaXQuY29tL2RpZ2l0UGx1c0Fzc2V0cy9zdHJlYW1saW5lX2dyYXBoLWFycm93LWluY3JlYXNlLXJlbWl4LnBuZ1wiXG4gICAgICAgICAgICAgIHN0eWxlPVwibWF4LXdpZHRoOiAyNHB4O1wiIC8+XG4gICAgICAgICAgICA8c3Bhbj5Qb3RlbnRpYWwgZm9yIGhpZ2hlciByZXR1cm5zIGJ5IGxvd2VyaW5nIHRoZSBtaW5pbXVtIGd1YXJhbnRlZWQgYW5udWl0eSByYXRlLjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDwhLS0gPGRpdiBjbGFzcz1cInZlcnRpY2FsLWxpbmVcIj48L2Rpdj4gLS0+XG4gICAgPCEtLSA8ZGl2IGNsYXNzPVwiY3VzdG9tLWdyaWQtdGVtcGxhdGVcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxsaWItdG9nZ2xlIFtmaWVsZF09XCJlbmFibGVBdXRvRGViaXRPYmpcIiBbKG5nTW9kZWwpXT1cImlzRW5hYmxlQXV0b0RlYml0XCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkVuYWJsZUF1dG9EZWJpdFZhbHVlQ2hhbmdlKCRldmVudClcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+IC0tPlxuXG4gIDwvZGl2PlxuXG5cbiAgPGRpdiBjbGFzcz1cImNhcmQgcHktMyBtYi00IGJvcmRlci10b3AtMFwiIHN0eWxlPVwiYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMHB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4O1wiPlxuICAgIDxkaXYgY2xhc3M9XCJteC00XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGlnaXQtYm9zcy1iYW5uZXJcIiAqbmdJZj1cImRpZ2l0Qm9zc1N3aXRjaD8uaXNWaXNpYmxlXCI+XG4gICAgICAgIDxsaWItdG9nZ2xlIFtmaWVsZF09XCJkaWdpdEJvc3NUb2dnbGVDb25maWdcIiBbKG5nTW9kZWwpXT1cInRoaXMuZGlnaXRCb3NzU3dpdGNoLmlzU3dpdGNoT25cIiAobmdNb2RlbENoYW5nZSk9XCJvbkRpZ2l0Qm9zc1N3aXRjaENoYW5nZSgkZXZlbnQpXCI+PC9saWItdG9nZ2xlPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGlnaXQtYm9zcy10ZXh0XCI+XG4gICAgICAgICAge3t0aGlzLmRpZ2l0Qm9zc1N3aXRjaD8ucHJlZml4VGV4dH19XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJoaWdobGlnaHRcIj57e3RoaXMuZGlnaXRCb3NzU3dpdGNoPy5oaWdobGlnaHRUZXh0fX08L3NwYW4+XG4gICAgICAgICAge3t0aGlzLmRpZ2l0Qm9zc1N3aXRjaD8uc3ViVGV4dH19XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcnJvdy1pY29uXCI+4oaXPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGxpYi1idXR0b24gW2ZpZWxkXT1cInJlY2FsY3VsYXRlQnV0dG9uXCIgKGNsaWNrKT1cImNhbGN1bGF0ZUJ1dHRvbkNsaWNrZWQoKVwiIC8+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZCAgbWItMCBtdC0yXCJcbiAgICAgICAgc3R5bGU9XCJhbGlnbi1pdGVtczogY2VudGVyO2JvcmRlcjpub25lO2ZvbnQtc2l6ZTogOHB4O2ZvbnQtd2VpZ2h0OiA0MDA7Y29sb3I6cmdiYSg2OCwgNjgsIDY4LCAxKSBcIlxuICAgICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJteC00XCIgKm5nSWY9XCJyZWNhbGN1bGF0ZVN1YlRleHRPYmo/LmlzVmlzaWJsZVwiPjxpbWcgc3JjPVwiaHR0cHM6Ly9jZG4uZ29kaWdpdC5jb20vZGlnaXRQbHVzQXNzZXRzL0dyb3VwKzEwMTAxMDYzMzYucG5nXCJcbiAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDNweDtcIiAvPlxuICAgICAgICAgIDxzcGFuIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDZweDtcIj5FdmVyeSB0aW1lIHlvdSBtYWtlIGEgY2hhbmdlIGFib3ZlLCBwbGVhc2UgY2xpY2sgcmVjYWxjdWxhdGUuPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIHN0eWxlPVwiZGlzcGxheTogZmxleDthbGlnbi1pdGVtczogY2VudGVyO2p1c3RpZnktY29udGVudDogY2VudGVyO2JvcmRlcjpub25lO2ZvbnQtc2l6ZTogMTBweDtmb250LXdlaWdodDogNzAwO2hlaWdodDozMnB4O2JhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTAsIDIzNSwgMSk7Z2FwOiA4cHg7bWFyZ2luOiA0cHg7XCJcbiAgICAgICpuZ0lmPVwiYW5udWl0eVRhYmxlQ2FsY3VsYXRvcj8uaXNWaXNpYmxlXCI+XG4gICAgICA8aW1nIHNyYz1cImh0dHBzOi8vY2RuLmdvZGlnaXQuY29tL3JldGFpbC1saWZlL2NhbGN1bGF0b3Iuc3ZnXCIgLz5cbiAgICAgIE1pbmltdW0gR3VhcmFudGVlZCBQYXlvdXQoQSkgKyBWYXJpYWJsZSBQYXlvdXQoQikgPSBUb3RhbCBQYXlvdXQoQylcbiAgICA8L2Rpdj5cbiAgICA8IS0tIGFubnVpdHkgY2FsY3VsYXRvciB0YWJsZSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiYW5udWl0eS10YWJsZXMtbWFpbi1jb250YWluZXJcIiAqbmdJZj1cImFubnVpdHlUYWJsZUNhbGN1bGF0b3I/LmlzVmlzaWJsZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXJvdyBhbm51aXR5LXRhYmxlcy1jb250YWluZXJcIj5cbiAgICAgICAgPCEtLSBUYWJsZSAxIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYW5udWl0eS1jYWxjdWxhdG9yLXRhYmxlMVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkZXIgYW5udWl0eXRhYmxlMS1oZWFkZXJcIj5NaW5pbXVtIEd1YXJhbnRlZWQgQW5udWl0eSBQYXlvdXQoQSk8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtYm9keVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNlbGxcIj48c3BhbiBjbGFzcz1cInJ1cGVlLWljb25cIj7igrk8L3NwYW4+PHNwYW5cbiAgICAgICAgICAgICAgICBzdHlsZT1cImZvbnQtc2l6ZToxMnB4OyBjb2xvcjogcmdiYSg2OCwgNjgsIDY4LCAxKTtcIj5cbiAgICAgICAgICAgICAgICA8e3thbm51aXR5VGFibGVDYWxjdWxhdG9yLmFubnVpdHljYWxjdWxhdG9yVGFibGUxdmFsMX19PlxuICAgICAgICAgICAgICA8L3NwYW4+PC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYW5udWl0eXRhYmxlLWJ1dHRvblwiPnt7YW5udWl0eVRhYmxlQ2FsY3VsYXRvci5hbm51aXR5Y2FsY3VsYXRvclRhYmxlMXZhbDJ9fTwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwib3BlcmF0b3Itc3ltYm9sXCI+KzwvZGl2PlxuXG4gICAgICAgIDwhLS0gVGFibGUgMiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFubnVpdHktY2FsY3VsYXRvci10YWJsZTJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtaGVhZGVyIGFubnVpdHl0YWJsZTEtaGVhZGVyXCI+QXNzdW1lIGdyb3d0aCBvZiBCZW5jaE1hcmsgaW5kZXg8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtYm9keVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJvd1wiPiYjNjQ7e3thbm51aXR5VGFibGVDYWxjdWxhdG9yLmFubnVpdHljYWxjdWxhdG9yVGFibGUydmFsMX19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcm93XCI+JiM2NDt7e2FubnVpdHlUYWJsZUNhbGN1bGF0b3IuYW5udWl0eWNhbGN1bGF0b3JUYWJsZTJ2YWwyfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yb3dcIj4mIzY0O3t7YW5udWl0eVRhYmxlQ2FsY3VsYXRvci5hbm51aXR5Y2FsY3VsYXRvclRhYmxlMnZhbDN9fTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIFRhYmxlIDMgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbm51aXR5LWNhbGN1bGF0b3ItdGFibGUzXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRlciBhbm51aXR5dGFibGUxLWhlYWRlclwiPjFzdCBWYXJpYWJsZSBBbm51aXR5IFBheW91dChCKTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1ib2R5XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcm93XCI+PHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cInJ1cGVlLWljb25cIj7igrk8L3NwYW4+e3thbm51aXR5VGFibGVDYWxjdWxhdG9yLmFubnVpdHljYWxjdWxhdG9yVGFibGUzdmFsMX19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcm93XCI+PHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cInJ1cGVlLWljb25cIj7igrk8L3NwYW4+e3thbm51aXR5VGFibGVDYWxjdWxhdG9yLmFubnVpdHljYWxjdWxhdG9yVGFibGUzdmFsMn19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcm93XCI+PHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cInJ1cGVlLWljb25cIj7igrk8L3NwYW4+e3thbm51aXR5VGFibGVDYWxjdWxhdG9yLmFubnVpdHljYWxjdWxhdG9yVGFibGUzdmFsM319PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJvcGVyYXRvci1zeW1ib2xcIj49PC9kaXY+XG5cbiAgICAgICAgPCEtLSBUYWJsZSA0IC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYW5udWl0eS1jYWxjdWxhdG9yLXRhYmxlNFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkZXIgYW5udWl0eXRhYmxlNC1oZWFkZXJcIj4xc3QgVG90YWxQYXlvdXQvRnJlcXVlbmN5KEMpPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWJvZHlcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yb3cgYW5udWl0eXRhYmxlNC1iZ1wiPjxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJydXBlZS1pY29uXCI+4oK5PC9zcGFuPnt7YW5udWl0eVRhYmxlQ2FsY3VsYXRvci5hbm51aXR5Y2FsY3VsYXRvclRhYmxlNHZhbDF9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJvdyBhbm51aXR5dGFibGU0LWJnXCI+PHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cInJ1cGVlLWljb25cIj7igrk8L3NwYW4+e3thbm51aXR5VGFibGVDYWxjdWxhdG9yLmFubnVpdHljYWxjdWxhdG9yVGFibGU0dmFsMn19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcm93IGFubnVpdHl0YWJsZTQtYmdcIj48c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwicnVwZWUtaWNvblwiPuKCuTwvc3Bhbj57e2FubnVpdHlUYWJsZUNhbGN1bGF0b3IuYW5udWl0eWNhbGN1bGF0b3JUYWJsZTR2YWwzfX08L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJhbm51aXR5LWNhbGN1bGF0b3ItcGFyYWdyYXBoXCIgKm5nSWY9XCJhbm51aXR5VGFibGVDYWxjdWxhdG9yPy5pc1Zpc2libGVcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiYW5udWl0eS1jYWxjdWxhdG9yLXBhcmFncmFwaDFcIj5UaGlzIGlzIGFuIGFzc3VtZWQgZ3Jvd3RoIHBlcmNlbnRhZ2UgZm9yIHRoZSBpbmRleCBiYXNpcyB3aGljaCB0aGVcbiAgICAgICAgdmFsdWVzIGluIGNvbHVtbnMgQiBhbmQgQyBhcmUgY2FsY3VsYXRlZC48L3NwYW4+IEFjdHVhbCBncm93dGggd2lsbCBkZXBlbmQgb24gaW5kZXggcGVyZm9ybWFuY2UgYW5kIG1heSBhZmZlY3RcbiAgICAgIHlvdXIgdmFyaWFibGUgYW5udWl0eSBwYXlvdXQgYW5kIHRvdGFsIGFubnVpdHkgcGF5b3V0LlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cImdlbmVyYXRlU3VtbWFyeU9iai5pc1Zpc2libGVcIiBjbGFzcz1cImdlbmVyYXRlU3VtbWFyeVwiPlxuICAgICAgPGxpYi1idXR0b24gW2ZpZWxkXT1cImdlbmVyYXRlU3VtbWFyeU9ialwiIChjbGljayk9XCJnZW5lcmF0ZVN1bW1hcnlDbGlja2VkKClcIiAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiJdfQ==
|
|
928
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5udWl0eS1wcmVtaXVtLWNhbGN1bGF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFzdGVyLWNvbnRyb2wvc3JjL2xpYi9hbm51aXR5LXByZW1pdW0tY2FsY3VsYXRvci9hbm51aXR5LXByZW1pdW0tY2FsY3VsYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL2FubnVpdHktcHJlbWl1bS1jYWxjdWxhdG9yL2FubnVpdHktcHJlbWl1bS1jYWxjdWxhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBa0I3QyxNQUFNLE9BQU8saUNBQWlDO0lBNnRCekI7SUE1dEJqQixxQkFBcUIsR0FBUSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNuRCxLQUFLLEdBQVEsS0FBSyxDQUFDLFFBQVEsRUFBTyxDQUFDO0lBQ25DLGNBQWMsR0FBUSxLQUFLLENBQU0sRUFBRSxDQUFDLENBQUM7SUFDckMsY0FBYyxHQUFTO1FBQ3JCLFNBQVMsRUFBRyxFQUFFO1FBQ2QsV0FBVyxFQUFFLEVBQUU7S0FDaEIsQ0FBQztJQUNGLG9CQUFvQixHQUFTO1FBQzNCLFNBQVMsRUFBRyxFQUFFO1FBQ2QsV0FBVyxFQUFFLEVBQUU7S0FDaEIsQ0FBQztJQUNRLHNCQUFzQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFDakQsc0JBQXNCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUNqRCxzQkFBc0IsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBQ2pELDJCQUEyQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFDdEQsdUJBQXVCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUNsRCw2QkFBNkIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBQ3hELHVCQUF1QixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFDNUQsV0FBVyxHQUFTO1FBQ2xCLGNBQWMsRUFBRyxLQUFLO0tBQ3ZCLENBQUE7SUFDRCxpQkFBaUIsR0FBUyxLQUFLLENBQUM7SUFDaEMsd0JBQXdCLEdBQVEsSUFBSSxDQUFDO0lBQ3JDLHVCQUF1QixHQUFRO1FBQzdCLFdBQVcsRUFBRSxRQUFRO1FBQ3JCLFNBQVMsRUFBRSxzQkFBc0I7UUFDakMsS0FBSyxFQUFFLGVBQWU7UUFDdEIsV0FBVyxFQUFFLElBQUk7UUFDakIsTUFBTSxFQUFFLCtDQUErQztRQUN2RCxTQUFTLEVBQUUsSUFBSTtRQUNmLFNBQVMsRUFBRSxJQUFJO1FBQ2YsVUFBVSxFQUFFO1lBQ1YsVUFBVSxFQUFFLEtBQUs7WUFDakIsZUFBZSxFQUFFLDRCQUE0QjtZQUM3QyxTQUFTLEVBQUUsSUFBSTtZQUNmLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsU0FBUyxFQUFFLEdBQUc7WUFDZCxnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsY0FBYyxFQUFFLEVBQUU7U0FDbkI7UUFDRCxPQUFPLEVBQUUsSUFBSTtRQUNiLFFBQVEsRUFDTixtR0FBbUc7UUFDckcsS0FBSyxFQUFFLElBQUk7UUFDWCxLQUFLLEVBQUUsSUFBSTtRQUNYLFFBQVEsRUFBRSxJQUFJO1FBQ2QsV0FBVyxFQUFFLElBQUk7UUFDakIsWUFBWSxFQUFFO1lBQ1osV0FBVyxFQUFFLFFBQVE7WUFDckIsV0FBVyxFQUFFLFNBQVM7WUFDdEIsV0FBVyxFQUFFLEtBQUs7WUFDbEIsWUFBWSxFQUFFLE9BQU87WUFDckIsUUFBUSxFQUFFLE1BQU07WUFDaEIsVUFBVSxFQUFFLEtBQUs7WUFDakIsVUFBVSxFQUFFLFFBQVE7WUFDcEIsS0FBSyxFQUFFLFNBQVM7WUFDaEIsVUFBVSxFQUFFLFNBQVM7WUFDckIsVUFBVSxFQUFFLElBQUk7WUFDaEIsaUJBQWlCLEVBQUUsSUFBSTtZQUN2QixxQkFBcUIsRUFBRSxJQUFJO1lBQzNCLG1CQUFtQixFQUFFLElBQUk7WUFDekIsd0JBQXdCLEVBQUUsSUFBSTtZQUM5QixLQUFLLEVBQUUsYUFBYTtZQUNwQixnQkFBZ0IsRUFBRSxVQUFVO1lBQzVCLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsZUFBZSxFQUFFLElBQUk7WUFDckIsVUFBVSxFQUFFLElBQUk7WUFDaEIsMEJBQTBCLEVBQUUsSUFBSTtZQUNoQyx3QkFBd0IsRUFBRSxJQUFJO1lBQzlCLDZCQUE2QixFQUFFLElBQUk7WUFDbkMsNkJBQTZCLEVBQUUsSUFBSTtZQUNuQywrQkFBK0IsRUFBRSxJQUFJO1lBQ3JDLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsZ0JBQWdCLEVBQUUsVUFBVTtZQUM1QixVQUFVLEVBQUUsSUFBSTtZQUNoQixZQUFZLEVBQUUsU0FBUztZQUN2QixpQkFBaUIsRUFBRSxTQUFTO1lBQzVCLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsZ0JBQWdCLEVBQUUsVUFBVTtZQUM1QixVQUFVLEVBQUUsSUFBSTtZQUNoQixXQUFXLEVBQUUsSUFBSTtZQUNqQixPQUFPLEVBQUUsSUFBSTtZQUNiLE1BQU0sRUFBRSxJQUFJO1lBQ1osV0FBVyxFQUFFLElBQUk7WUFDakIsYUFBYSxFQUFFLCtDQUErQztZQUM5RCxXQUFXLEVBQUUsSUFBSTtZQUNqQixNQUFNLEVBQUUsSUFBSTtZQUNaLFNBQVMsRUFBRSxJQUFJO1lBQ2YsU0FBUyxFQUFFLElBQUk7WUFDZixRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLElBQUk7U0FDZjtRQUNELFdBQVcsRUFBRSxDQUFDO1FBQ2QsVUFBVSxFQUFFO1lBQ1YsU0FBUyxFQUFFLGVBQWU7U0FDM0I7UUFDRCxhQUFhLEVBQUUsSUFBSTtLQUNwQixDQUFDO0lBRUYsc0JBQXNCLEdBQVE7UUFDNUIsV0FBVyxFQUFFLEtBQUs7UUFDbEIsNkJBQTZCLEVBQUUsRUFBRTtRQUNqQyw2QkFBNkIsRUFBRSxFQUFFO1FBQ2pDLDZCQUE2QixFQUFFLEVBQUU7UUFDakMsNkJBQTZCLEVBQUUsRUFBRTtRQUNqQyw2QkFBNkIsRUFBRSxFQUFFO1FBQ2pDLDZCQUE2QixFQUFFLEVBQUU7UUFDakMsNkJBQTZCLEVBQUUsRUFBRTtRQUNqQyw2QkFBNkIsRUFBRSxFQUFFO1FBQ2pDLDZCQUE2QixFQUFFLEVBQUU7UUFDakMsNkJBQTZCLEVBQUUsRUFBRTtRQUNqQyw2QkFBNkIsRUFBRSxFQUFFO0tBR2xDLENBQUM7SUFFRixlQUFlLEdBQVM7UUFDdEIsU0FBUyxFQUFHLEtBQUs7UUFDakIsVUFBVSxFQUFFLEtBQUs7UUFDakIsYUFBYSxFQUFFLEVBQUU7UUFDakIsT0FBTyxFQUFFLEVBQUU7S0FDWixDQUFBO0lBRUQscUJBQXFCLEdBQVE7UUFDM0IsV0FBVyxFQUFFLFFBQVE7UUFDckIsU0FBUyxFQUFFLGlCQUFpQjtRQUM1QixTQUFTLEVBQUUsSUFBSTtRQUNmLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFVBQVUsRUFBRTtZQUNWLFNBQVMsRUFBRSxFQUFFO1NBQ2Q7UUFDRCxZQUFZLEVBQUU7WUFDWixVQUFVLEVBQUUsYUFBYTtZQUN6QixXQUFXLEVBQUUsYUFBYTtZQUMxQixLQUFLLEVBQUUsYUFBYTtZQUNwQixXQUFXLEVBQUUsS0FBSztTQUNuQjtLQUNGLENBQUM7SUFFRix1QkFBdUIsQ0FBQyxLQUFVO1FBQ2hDLHNFQUFzRTtRQUNuRSxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QyxJQUFJO0lBQ04sQ0FBQztJQUVELGlCQUFpQixHQUFRO1FBQ3ZCLFlBQVksRUFBRTtZQUNaLFdBQVcsRUFBRSxlQUFlO1lBQzVCLFdBQVcsRUFBRSxTQUFTO1lBQ3RCLFdBQVcsRUFBRSxVQUFVO1lBQ3ZCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLEtBQUssRUFBRSxTQUFTO1lBQ2hCLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLGlCQUFpQixFQUFFLElBQUk7WUFDdkIscUJBQXFCLEVBQUUsSUFBSTtZQUMzQixtQkFBbUIsRUFBRSxJQUFJO1lBQ3pCLHdCQUF3QixFQUFFLElBQUk7WUFDOUIsS0FBSyxFQUFFLElBQUk7WUFDWCxnQkFBZ0IsRUFBRSxVQUFVO1lBQzVCLGdCQUFnQixFQUFFLFNBQVM7WUFDM0IsZUFBZSxFQUFFLElBQUk7WUFDckIsVUFBVSxFQUFFLFNBQVM7WUFDckIsMEJBQTBCLEVBQUUsSUFBSTtZQUNoQyx3QkFBd0IsRUFBRSxJQUFJO1lBQzlCLDZCQUE2QixFQUFFLElBQUk7WUFDbkMsNkJBQTZCLEVBQUUsSUFBSTtZQUNuQywrQkFBK0IsRUFBRSxJQUFJO1lBQ3JDLGdCQUFnQixFQUFFLFNBQVM7WUFDM0IsZ0JBQWdCLEVBQUUsVUFBVTtZQUM1QixVQUFVLEVBQUUsU0FBUztZQUNyQixZQUFZLEVBQUUsU0FBUztZQUN2QixpQkFBaUIsRUFBRSxTQUFTO1lBQzVCLGdCQUFnQixFQUFFLFNBQVM7WUFDM0IsZ0JBQWdCLEVBQUUsVUFBVTtZQUM1QixVQUFVLEVBQUUsU0FBUztZQUNyQixXQUFXLEVBQUUsSUFBSTtZQUNqQixPQUFPLEVBQUUsSUFBSTtZQUNiLE1BQU0sRUFBRSxJQUFJO1lBQ1osV0FBVyxFQUFFLElBQUk7WUFDakIsYUFBYSxFQUFFLGdEQUFnRDtZQUMvRCxXQUFXLEVBQUUsSUFBSTtZQUNqQixNQUFNLEVBQUUsSUFBSTtZQUNaLFNBQVMsRUFBRSxJQUFJO1lBQ2YsU0FBUyxFQUFFLElBQUk7WUFDZixRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLElBQUk7U0FDZjtRQUNELFNBQVMsRUFBRSxnQkFBZ0I7UUFDM0IsS0FBSyxFQUFFLFNBQVM7UUFDaEIsV0FBVyxFQUFFLE9BQU87UUFDcEIsTUFBTSxFQUFFLGdEQUFnRDtRQUN4RCxTQUFTLEVBQUUsSUFBSTtRQUNmLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLFlBQVksRUFBRSxJQUFJO1FBQ2xCLFVBQVUsRUFBRTtZQUNWLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLGVBQWUsRUFBRSxlQUFlO1lBQ2hDLFNBQVMsRUFBRSxDQUFDO1lBQ1osZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixTQUFTLEVBQUUsRUFBRTtZQUNiLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsT0FBTyxFQUFFLElBQUk7WUFDYixjQUFjLEVBQUUsSUFBSTtTQUNyQjtRQUNELE9BQU8sRUFBRTtZQUNQO2dCQUNFLEtBQUssRUFBRSxTQUFTO2dCQUNoQixLQUFLLEVBQUUsU0FBUzthQUNqQjtZQUNEO2dCQUNFLEtBQUssRUFBRSxVQUFVO2dCQUNqQixLQUFLLEVBQUUsVUFBVTthQUNsQjtZQUNEO2dCQUNFLEtBQUssRUFBRSxXQUFXO2dCQUNsQixLQUFLLEVBQUUsV0FBVzthQUNuQjtZQUNEO2dCQUNFLEtBQUssRUFBRSxhQUFhO2dCQUNwQixLQUFLLEVBQUUsYUFBYTthQUNyQjtZQUNEO2dCQUNFLEtBQUssRUFBRSxRQUFRO2dCQUNmLEtBQUssRUFBRSxRQUFRO2FBQ2hCO1NBQ0Y7UUFDRCxRQUFRLEVBQUUsZ0VBQWdFO1FBQzFFLEtBQUssRUFBRSxJQUFJO1FBQ1gsS0FBSyxFQUFFLElBQUk7UUFDWCxRQUFRLEVBQUUsSUFBSTtRQUNkLFVBQVUsRUFBRTtZQUNWLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLDBCQUEwQixFQUFFLElBQUk7WUFDaEMsVUFBVSxFQUFFLEVBQUU7WUFDZCxZQUFZLEVBQUUsRUFBRTtTQUNqQjtRQUNELFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLGVBQWUsRUFBRSxLQUFLO1FBQ3RCLFdBQVcsRUFBRSxlQUFlO0tBQzdCLENBQUM7SUFFRix1QkFBdUIsR0FBUTtRQUM3QixZQUFZLEVBQUU7WUFDWixXQUFXLEVBQUUsZUFBZTtZQUM1QixXQUFXLEVBQUUsU0FBUztZQUN0QixXQUFXLEVBQUUsVUFBVTtZQUN2QixZQUFZLEVBQUUsSUFBSTtZQUNsQixRQUFRLEVBQUUsTUFBTTtZQUNoQixVQUFVLEVBQUUsS0FBSztZQUNqQixVQUFVLEVBQUUsUUFBUTtZQUNwQixLQUFLLEVBQUUsU0FBUztZQUNoQixVQUFVLEVBQUUsU0FBUztZQUNyQixVQUFVLEVBQUUsU0FBUztZQUNyQixpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLHFCQUFxQixFQUFFLElBQUk7WUFDM0IsbUJBQW1CLEVBQUUsSUFBSTtZQUN6Qix3QkFBd0IsRUFBRSxJQUFJO1lBQzlCLEtBQUssRUFBRSxJQUFJO1lBQ1gsZ0JBQWdCLEVBQUUsVUFBVTtZQUM1QixnQkFBZ0IsRUFBRSxTQUFTO1lBQzNCLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLDBCQUEwQixFQUFFLElBQUk7WUFDaEMsd0JBQXdCLEVBQUUsSUFBSTtZQUM5Qiw2QkFBNkIsRUFBRSxJQUFJO1lBQ25DLDZCQUE2QixFQUFFLElBQUk7WUFDbkMsK0JBQStCLEVBQUUsSUFBSTtZQUNyQyxnQkFBZ0IsRUFBRSxTQUFTO1lBQzNCLGdCQUFnQixFQUFFLFVBQVU7WUFDNUIsVUFBVSxFQUFFLFNBQVM7WUFDckIsWUFBWSxFQUFFLFNBQVM7WUFDdkIsaUJBQWlCLEVBQUUsU0FBUztZQUM1QixnQkFBZ0IsRUFBRSxTQUFTO1lBQzNCLGdCQUFnQixFQUFFLFVBQVU7WUFDNUIsVUFBVSxFQUFFLFNBQVM7WUFDckIsV0FBVyxFQUFFLElBQUk7WUFDakIsT0FBTyxFQUFFLElBQUk7WUFDYixNQUFNLEVBQUUsSUFBSTtZQUNaLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGFBQWEsRUFDWCxnRUFBZ0U7WUFDbEUsV0FBVyxFQUFFLElBQUk7WUFDakIsTUFBTSxFQUFFLElBQUk7WUFDWixTQUFTLEVBQUUsSUFBSTtZQUNmLFNBQVMsRUFBRSxJQUFJO1lBQ2YsUUFBUSxFQUFFLElBQUk7WUFDZCxRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVEsRUFBRSxJQUFJO1NBQ2Y7UUFDRCxTQUFTLEVBQUUsZ0NBQWdDO1FBQzNDLEtBQUssRUFBRSxzQkFBc0I7UUFDN0IsV0FBVyxFQUFFLEVBQUU7UUFDZixNQUFNLEVBQUUsZ0VBQWdFO1FBQ3hFLFNBQVMsRUFBRSxJQUFJO1FBQ2YsU0FBUyxFQUFFLElBQUk7UUFDZixZQUFZLEVBQUUsSUFBSTtRQUNsQixVQUFVLEVBQUU7WUFDVixVQUFVLEVBQUUsS0FBSztZQUNqQixlQUFlLEVBQUUsc0JBQXNCO1lBQ3ZDLFNBQVMsRUFBRSxDQUFDO1lBQ1osZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixTQUFTLEVBQUUsRUFBRTtZQUNiLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsT0FBTyxFQUFFLElBQUk7WUFDYixjQUFjLEVBQUUsSUFBSTtTQUNyQjtRQUNELE9BQU8sRUFBRTtZQUNQO2dCQUNFLEtBQUssRUFBRSxTQUFTO2dCQUNoQixLQUFLLEVBQUUsU0FBUzthQUNqQjtZQUNEO2dCQUNFLEtBQUssRUFBRSxVQUFVO2dCQUNqQixLQUFLLEVBQUUsVUFBVTthQUNsQjtZQUNEO2dCQUNFLEtBQUssRUFBRSxXQUFXO2dCQUNsQixLQUFLLEVBQUUsV0FBVzthQUNuQjtZQUNEO2dCQUNFLEtBQUssRUFBRSxhQUFhO2dCQUNwQixLQUFLLEVBQUUsYUFBYTthQUNyQjtZQUNEO2dCQUNFLEtBQUssRUFBRSxRQUFRO2dCQUNmLEtBQUssRUFBRSxRQUFRO2FBQ2hCO1NBQ0Y7UUFDRCxRQUFRLEVBQ04sMEZBQTBGO1FBQzVGLEtBQUssRUFBRSxJQUFJO1FBQ1gsS0FBSyxFQUFFLElBQUk7UUFDWCxRQUFRLEVBQUUsSUFBSTtRQUNkLFVBQVUsRUFBRTtZQUNWLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLDBCQUEwQixFQUFFLElBQUk7WUFDaEMsVUFBVSxFQUFFLEVBQUU7WUFDZCxZQUFZLEVBQUUsRUFBRTtTQUNqQjtRQUNELFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLGVBQWUsRUFBRSxLQUFLO1FBQ3RCLFdBQVcsRUFBRSxlQUFlO0tBQzdCLENBQUM7SUFFRixrQkFBa0IsR0FBUTtRQUN4QixXQUFXLEVBQUUsUUFBUTtRQUNyQixTQUFTLEVBQUUsV0FBVztRQUN0QixLQUFLLEVBQUUsNENBQTRDO1FBQ25ELFdBQVcsRUFBRSxFQUFFO1FBQ2YsTUFBTSxFQUFFLHNDQUFzQztRQUM5QyxTQUFTLEVBQUUsSUFBSTtRQUNmLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLFVBQVUsRUFBRTtZQUNWLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLGVBQWUsRUFBRSw0QkFBNEI7WUFDN0MsU0FBUyxFQUFFLElBQUk7WUFDZixnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixPQUFPLEVBQUUsSUFBSTtZQUNiLGNBQWMsRUFBRSxFQUFFO1NBQ25CO1FBQ0QsT0FBTyxFQUFFLElBQUk7UUFDYixRQUFRLEVBQUUsbURBQW1EO1FBQzdELEtBQUssRUFBRSxLQUFLO1FBQ1osS0FBSyxFQUFFLElBQUk7UUFDWCxRQUFRLEVBQUUsSUFBSTtRQUNkLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFlBQVksRUFBRTtZQUNaLFdBQVcsRUFBRSxRQUFRO1lBQ3JCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFdBQVcsRUFBRSxVQUFVO1lBQ3ZCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLEtBQUssRUFBRSxTQUFTO1lBQ2hCLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLGlCQUFpQixFQUFFLElBQUk7WUFDdkIscUJBQXFCLEVBQUUsSUFBSTtZQUMzQixtQkFBbUIsRUFBRSxJQUFJO1lBQ3pCLHdCQUF3QixFQUFFLElBQUk7WUFDOUIsS0FBSyxFQUFFLElBQUk7WUFDWCxnQkFBZ0IsRUFBRSxVQUFVO1lBQzVCLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsZUFBZSxFQUFFLElBQUk7WUFDckIsVUFBVSxFQUFFLElBQUk7WUFDaEIsMEJBQTBCLEVBQUUsSUFBSTtZQUNoQyx3QkFBd0IsRUFBRSxJQUFJO1lBQzlCLDZCQUE2QixFQUFFLElBQUk7WUFDbkMsNkJBQTZCLEVBQUUsSUFBSTtZQUNuQywrQkFBK0IsRUFBRSxJQUFJO1lBQ3JDLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsZ0JBQWdCLEVBQUUsVUFBVTtZQUM1QixVQUFVLEVBQUUsSUFBSTtZQUNoQixZQUFZLEVBQUUsU0FBUztZQUN2QixpQkFBaUIsRUFBRSxTQUFTO1lBQzVCLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsZ0JBQWdCLEVBQUUsVUFBVTtZQUM1QixVQUFVLEVBQUUsSUFBSTtZQUNoQixXQUFXLEVBQUUsSUFBSTtZQUNqQixPQUFPLEVBQUUsSUFBSTtZQUNiLE1BQU0sRUFBRSxJQUFJO1lBQ1osV0FBVyxFQUFFLElBQUk7WUFDakIsYUFBYSxFQUFFLGlEQUFpRDtZQUNoRSxXQUFXLEVBQUUsSUFBSTtZQUNqQixNQUFNLEVBQUUsSUFBSTtZQUNaLFNBQVMsRUFBRSxJQUFJO1lBQ2YsU0FBUyxFQUFFLElBQUk7WUFDZixRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLElBQUk7U0FDZjtRQUNELFdBQVcsRUFBRSxDQUFDO1FBQ2QsVUFBVSxFQUFFLEVBQUU7UUFDZCxhQUFhLEVBQUUsSUFBSTtLQUNwQixDQUFDO0lBRUYsaUJBQWlCLEdBQVE7UUFDdkIsV0FBVyxFQUFFLFFBQVE7UUFDckIsU0FBUyxFQUFFLHdCQUF3QjtRQUNuQyxLQUFLLEVBQUUsMEJBQTBCO1FBQ2pDLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLE1BQU0sRUFBRSxpREFBaUQ7UUFDekQsU0FBUyxFQUFFLElBQUk7UUFDZixTQUFTLEVBQUUsS0FBSztRQUNoQixVQUFVLEVBQUU7WUFDVixVQUFVLEVBQUUsS0FBSztZQUNqQixlQUFlLEVBQUUsNEJBQTRCO1lBQzdDLFNBQVMsRUFBRSxJQUFJO1lBQ2YsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixTQUFTLEVBQUUsSUFBSTtZQUNmLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsT0FBTyxFQUFFLElBQUk7WUFDYixjQUFjLEVBQUUsRUFBRTtTQUNuQjtRQUNELE9BQU8sRUFBRSxJQUFJO1FBQ2IsUUFBUSxFQUFFLCtDQUErQztRQUN6RCxLQUFLLEVBQUUsSUFBSTtRQUNYLEtBQUssRUFBRSxJQUFJO1FBQ1gsUUFBUSxFQUFFLElBQUk7UUFDZCxXQUFXLEVBQUUsSUFBSTtRQUNqQixZQUFZLEVBQUU7WUFDWixXQUFXLEVBQUUsSUFBSTtZQUNqQixXQUFXLEVBQUUsSUFBSTtZQUNqQixXQUFXLEVBQUUsSUFBSTtZQUNqQixZQUFZLEVBQUUsS0FBSztZQUNuQixRQUFRLEVBQUUsTUFBTTtZQUNoQixVQUFVLEVBQUUsSUFBSTtZQUNoQixVQUFVLEVBQUUsSUFBSTtZQUNoQixLQUFLLEVBQUUsSUFBSTtZQUNYLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLGlCQUFpQixFQUFFLElBQUk7WUFDdkIscUJBQXFCLEVBQUUsSUFBSTtZQUMzQixtQkFBbUIsRUFBRSxJQUFJO1lBQ3pCLHdCQUF3QixFQUFFLElBQUk7WUFDOUIsS0FBSyxFQUFFLE1BQU07WUFDYixnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsZUFBZSxFQUFFLElBQUk7WUFDckIsVUFBVSxFQUFFLElBQUk7WUFDaEIsMEJBQTBCLEVBQUUsSUFBSTtZQUNoQyx3QkFBd0IsRUFBRSxJQUFJO1lBQzlCLDZCQUE2QixFQUFFLElBQUk7WUFDbkMsNkJBQTZCLEVBQUUsSUFBSTtZQUNuQywrQkFBK0IsRUFBRSxJQUFJO1lBQ3JDLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixVQUFVLEVBQUUsSUFBSTtZQUNoQixZQUFZLEVBQUUsSUFBSTtZQUNsQixpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixVQUFVLEVBQUUsSUFBSTtZQUNoQixXQUFXLEVBQUUsSUFBSTtZQUNqQixPQUFPLEVBQUUsSUFBSTtZQUNiLE1BQU0sRUFBRSxJQUFJO1lBQ1osV0FBVyxFQUFFLElBQUk7WUFDakIsYUFBYSxFQUFFLGlEQUFpRDtZQUNoRSxXQUFXLEVBQUUsSUFBSTtZQUNqQixNQUFNLEVBQUUsSUFBSTtZQUNaLFNBQVMsRUFBRSxJQUFJO1lBQ2YsU0FBUyxFQUFFLElBQUk7WUFDZixRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLElBQUk7U0FDZjtRQUNELFdBQVcsRUFBRSxDQUFDO1FBQ2QsVUFBVSxFQUFFLEVBQUU7UUFDZCxhQUFhLEVBQUUsSUFBSTtLQUNwQixDQUFDO0lBRUYsb0JBQW9CLEdBQVE7UUFDMUIsWUFBWSxFQUFFO1lBQ1osV0FBVyxFQUFFLElBQUk7WUFDakIsV0FBVyxFQUFFLFNBQVM7WUFDdEIsV0FBVyxFQUFFLEtBQUs7WUFDbEIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsUUFBUSxFQUFFLElBQUk7WUFDZCxVQUFVLEVBQUUsSUFBSTtZQUNoQixVQUFVLEVBQUUsSUFBSTtZQUNoQixLQUFLLEVBQUUsSUFBSTtZQUNYLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLGlCQUFpQixFQUFFLElBQUk7WUFDdkIscUJBQXFCLEVBQUUsSUFBSTtZQUMzQixtQkFBbUIsRUFBRSxJQUFJO1lBQ3pCLHdCQUF3QixFQUFFLElBQUk7WUFDOUIsS0FBSyxFQUFFLE1BQU07WUFDYixnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsZUFBZSxFQUFFLElBQUk7WUFDckIsVUFBVSxFQUFFLElBQUk7WUFDaEIsMEJBQTBCLEVBQUUsSUFBSTtZQUNoQyx3QkFBd0IsRUFBRSxJQUFJO1lBQzlCLDZCQUE2QixFQUFFLElBQUk7WUFDbkMsNkJBQTZCLEVBQUUsSUFBSTtZQUNuQywrQkFBK0IsRUFBRSxJQUFJO1lBQ3JDLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixVQUFVLEVBQUUsSUFBSTtZQUNoQixZQUFZLEVBQUUsSUFBSTtZQUNsQixpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixVQUFVLEVBQUUsSUFBSTtZQUNoQixXQUFXLEVBQUUsSUFBSTtZQUNqQixPQUFPLEVBQUUsSUFBSTtZQUNiLE1BQU0sRUFBRSxJQUFJO1lBQ1osV0FBVyxFQUFFLElBQUk7WUFDakIsYUFBYSxFQUFFLElBQUk7WUFDbkIsV0FBVyxFQUFFLElBQUk7WUFDakIsTUFBTSxFQUFFLE1BQU07WUFDZCxTQUFTLEVBQUUsSUFBSTtZQUNmLFNBQVMsRUFBRSxJQUFJO1lBQ2YsUUFBUSxFQUFFLElBQUk7WUFDZCxRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVEsRUFBRSxJQUFJO1NBQ2Y7UUFDRCxTQUFTLEVBQUUsb0JBQW9CO1FBQy9CLEtBQUssRUFBRSw0QkFBNEI7UUFDbkMsV0FBVyxFQUFFLElBQUk7UUFDakIsTUFBTSxFQUFFLDREQUE0RDtRQUNwRSxTQUFTLEVBQUUsSUFBSTtRQUNmLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLFlBQVksRUFBRSxJQUFJO1FBQ2xCLFVBQVUsRUFBRTtZQUNWLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLGVBQWUsRUFBRSw0QkFBNEI7WUFDN0MsU0FBUyxFQUFFLElBQUk7WUFDZixnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixPQUFPLEVBQUUsSUFBSTtZQUNiLGNBQWMsRUFBRSxFQUFFO1NBQ25CO1FBQ0QsT0FBTyxFQUFFLEVBQUU7UUFDWCxRQUFRLEVBQUUsSUFBSTtRQUNkLEtBQUssRUFBRSxJQUFJO1FBQ1gsS0FBSyxFQUFFLElBQUk7UUFDWCxRQUFRLEVBQ04seUVBQXlFO1FBQzNFLFVBQVUsRUFBRSxFQUFFO1FBQ2QsV0FBVyxFQUFFLElBQUk7UUFDakIsV0FBVyxFQUFFLElBQUk7UUFDakIsZUFBZSxFQUFFLElBQUk7UUFDckIsV0FBVyxFQUFFLG9CQUFvQjtLQUNsQyxDQUFDO0lBRUYsa0JBQWtCLEdBQVE7UUFDeEIsV0FBVyxFQUFFLFFBQVE7UUFDckIsU0FBUyxFQUFFLGlCQUFpQjtRQUM1QixLQUFLLEVBQUUsa0JBQWtCO1FBQ3pCLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLE1BQU0sRUFBRSwwQ0FBMEM7UUFDbEQsU0FBUyxFQUFFLElBQUk7UUFDZixTQUFTLEVBQUUsSUFBSTtRQUNmLFVBQVUsRUFBRTtZQUNWLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLGVBQWUsRUFBRSw0QkFBNEI7WUFDN0MsU0FBUyxFQUFFLElBQUk7WUFDZixnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixPQUFPLEVBQUUsSUFBSTtZQUNiLGNBQWMsRUFBRSxFQUFFO1NBQ25CO1FBQ0QsT0FBTyxFQUFFLElBQUk7UUFDYixRQUFRLEVBQUUsb0RBQW9EO1FBQzlELEtBQUssRUFBRSxJQUFJO1FBQ1gsS0FBSyxFQUFFLElBQUk7UUFDWCxRQUFRLEVBQUUsSUFBSTtRQUNkLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFlBQVksRUFBRTtZQUNaLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFlBQVksRUFBRSxLQUFLO1lBQ25CLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLEtBQUssRUFBRSxJQUFJO1lBQ1gsVUFBVSxFQUFFLFNBQVM7WUFDckIsVUFBVSxFQUFFLElBQUk7WUFDaEIsaUJBQWlCLEVBQUUsSUFBSTtZQUN2QixxQkFBcUIsRUFBRSxJQUFJO1lBQzNCLG1CQUFtQixFQUFFLElBQUk7WUFDekIsd0JBQXdCLEVBQUUsSUFBSTtZQUM5QixLQUFLLEVBQUUsTUFBTTtZQUNiLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixlQUFlLEVBQUUsSUFBSTtZQUNyQixVQUFVLEVBQUUsSUFBSTtZQUNoQiwwQkFBMEIsRUFBRSxJQUFJO1lBQ2hDLHdCQUF3QixFQUFFLElBQUk7WUFDOUIsNkJBQTZCLEVBQUUsSUFBSTtZQUNuQyw2QkFBNkIsRUFBRSxJQUFJO1lBQ25DLCtCQUErQixFQUFFLElBQUk7WUFDckMsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsTUFBTSxFQUFFLElBQUk7WUFDWixXQUFXLEVBQUUsSUFBSTtZQUNqQixhQUFhLEVBQUUsMENBQTBDO1lBQ3pELFdBQVcsRUFBRSxJQUFJO1lBQ2pCLE1BQU0sRUFBRSxJQUFJO1lBQ1osU0FBUyxFQUFFLElBQUk7WUFDZixTQUFTLEVBQUUsSUFBSTtZQUNmLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLElBQUk7WUFDZCxRQUFRLEVBQUUsSUFBSTtTQUNmO1FBQ0QsV0FBVyxFQUFFLENBQUM7UUFDZCxVQUFVLEVBQUUsRUFBRTtRQUNkLGFBQWEsRUFBRSxJQUFJO0tBQ3BCLENBQUM7SUFFRixtQkFBbUIsR0FBTTtRQUNYLGFBQWEsRUFBRSxPQUFPO1FBQ3RCLFdBQVcsRUFBRSxxQkFBcUI7UUFDbEMsT0FBTyxFQUFFLHFDQUFxQztRQUM5QyxhQUFhLEVBQUUsRUFBRTtRQUNqQixRQUFRLEVBQUUsb0NBQW9DO1FBQzlDLFdBQVcsRUFBRSxLQUFLO1FBQ2xCLFdBQVcsRUFBRSxLQUFLO1FBQ2xCLFlBQVksRUFBRTtZQUNaLFlBQVksRUFBRSxJQUFJO1lBQ2xCLGlCQUFpQixFQUFFLDRCQUE0QjtZQUMvQyxXQUFXLEVBQUUsSUFBSTtZQUNqQixrQkFBa0IsRUFBRSxJQUFJO1lBQ3hCLFdBQVcsRUFBRSxHQUFHO1lBQ2hCLGtCQUFrQixFQUFFLElBQUk7WUFDeEIsU0FBUyxFQUFFLElBQUk7WUFDZixnQkFBZ0IsRUFBRSxFQUFFO1NBQ3JCO1FBQ0QsU0FBUyxFQUFFLEVBQUU7UUFDYixVQUFVLEVBQUUsbURBQW1EO1FBQy9ELE9BQU8sRUFBRSxJQUFJO1FBQ2IsT0FBTyxFQUFFLElBQUk7UUFDYixVQUFVLEVBQUUsSUFBSTtRQUNoQixhQUFhLEVBQUUsSUFBSTtRQUNuQixjQUFjLEVBQUU7WUFDZCxhQUFhLEVBQUUsT0FBTztZQUN0QixhQUFhLEVBQUUsU0FBUztZQUN4QixhQUFhLEVBQUUsS0FBSztZQUNwQixjQUFjLEVBQUUsSUFBSTtZQUNwQixVQUFVLEVBQUUsTUFBTTtZQUNsQixZQUFZLEVBQUUsS0FBSztZQUNuQixZQUFZLEVBQUUsUUFBUTtZQUN0QixPQUFPLEVBQUUsU0FBUztZQUNsQixZQUFZLEVBQUUsU0FBUztZQUN2QixZQUFZLEVBQUUsSUFBSTtZQUNsQixtQkFBbUIsRUFBRSxJQUFJO1lBQ3pCLHVCQUF1QixFQUFFLElBQUk7WUFDN0IscUJBQXFCLEVBQUUsSUFBSTtZQUMzQiwwQkFBMEIsRUFBRSxJQUFJO1lBQ2hDLE9BQU8sRUFBRSxNQUFNO1lBQ2Ysa0JBQWtCLEVBQUUsS0FBSztZQUN6QixrQkFBa0IsRUFBRSxTQUFTO1lBQzdCLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsWUFBWSxFQUFFLFNBQVM7WUFDdkIsNEJBQTRCLEVBQUUsSUFBSTtZQUNsQywwQkFBMEIsRUFBRSxJQUFJO1lBQ2hDLCtCQUErQixFQUFFLElBQUk7WUFDckMsK0JBQStCLEVBQUUsSUFBSTtZQUNyQyxpQ0FBaUMsRUFBRSxJQUFJO1lBQ3ZDLGtCQUFrQixFQUFFLFNBQVM7WUFDN0Isa0JBQWtCLEVBQUUsS0FBSztZQUN6QixZQUFZLEVBQUUsU0FBUztZQUN2QixjQUFjLEVBQUUsU0FBUztZQUN6QixtQkFBbUIsRUFBRSxTQUFTO1lBQzlCLGtCQUFrQixFQUFFLFNBQVM7WUFDN0Isa0JBQWtCLEVBQUUsS0FBSztZQUN6QixZQUFZLEVBQUUsU0FBUztZQUN2QixhQUFhLEVBQUUsSUFBSTtZQUNuQixTQUFTLEVBQUUsSUFBSTtZQUNmLFFBQVEsRUFBRSxJQUFJO1lBQ2QsYUFBYSxFQUFFLElBQUk7WUFDbkIsZUFBZSxFQUFFLG9DQUFvQztZQUNyRCxhQUFhLEVBQUUsSUFBSTtZQUNuQixRQUFRLEVBQUUsTUFBTTtZQUNoQixXQUFXLEVBQUUsSUFBSTtZQUNqQixXQUFXLEVBQUUsSUFBSTtZQUNqQixVQUFVLEVBQUUsTUFBTTtZQUNsQixVQUFVLEVBQUUsSUFBSTtZQUNoQixVQUFVLEVBQUUsSUFBSTtTQUNqQjtRQUNELGFBQWEsRUFBRSxDQUFDO1FBQ2hCLFlBQVksRUFBRSxFQUFFO1FBQ2hCLGVBQWUsRUFBRSxJQUFJO0tBQ2xDLENBQUM7SUFFRixZQUFtQixhQUFvQztRQUFwQyxrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7SUFBRyxDQUFDO0lBRTNELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFLLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUcsQ0FBQztZQUVySCxJQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsa0JBQWtCLENBQUMsRUFBRSxDQUFDO2dCQUNoRixJQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUUzRyxJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLEdBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFFO2dCQUMxRixDQUFDO1lBRVQsQ0FBQztZQUNELElBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUMzRSxnREFBZ0Q7Z0JBQ2hELElBQUksQ0FBQyxjQUFjLEdBQUc7b0JBQ3BCLFNBQVMsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQztvQkFDdEQsV0FBVyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDO2lCQUMzRCxDQUFDO2dCQUNGLElBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQzlKLE1BQU0sSUFBSSxHQUFHLFFBQVEsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO29CQUMxRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRSxJQUFJLENBQUM7Z0JBQ3hHLENBQUM7Z0JBRUQsSUFBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQztvQkFDOUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3BGLENBQUM7Z0JBQ0QsSUFBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLENBQUMsRUFBRSxDQUFDO29CQUN0RSxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUMsbUJBQW1CLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7Z0JBQ2xILENBQUM7Z0JBQ0QsSUFBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQztvQkFDNUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ2hGLENBQUM7WUFDSCxDQUFDO1lBRUQsSUFBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQzNFLGdEQUFnRDtnQkFDaEQsSUFBSSxDQUFDLG9CQUFvQixHQUFHO29CQUMxQixTQUFTLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUM7b0JBQ3RELFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQztpQkFDM0QsQ0FBQztnQkFDRixJQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDMUssTUFBTSxJQUFJLEdBQUcsUUFBUSxJQUFJLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztvQkFDaEUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBQ3JILENBQUM7Z0JBRUQsSUFBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQztvQkFDOUQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzFGLENBQUM7Z0JBQ0QsSUFBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLENBQUMsRUFBRSxDQUFDO29CQUN0RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsWUFBWSxDQUFDLENBQUMsbUJBQW1CLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7Z0JBQ3hILENBQUM7Z0JBQ0QsSUFBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQztvQkFDNUQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3RGLENBQUM7WUFDSCxDQUFDO1lBRUQsSUFBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLHNCQUFzQixDQUFDLEVBQUUsQ0FBQztnQkFDMUYsZ0RBQWdEO2dCQUNoRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLHNCQUFzQixDQUFDO1lBQzlFLENBQUM7WUFFRCxJQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO2dCQUVwRixJQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNwRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFBO2dCQUNsRyxDQUFDO2dCQUVELElBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQzdGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUE7Z0JBQ3BGLENBQUM7Z0JBQ0QsSUFBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDakcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQTtnQkFDNUYsQ0FBQztZQUNILENBQUM7WUFFRCxJQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsZUFBZSxDQUFDLEVBQUUsQ0FBQztnQkFDbkYsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsZUFBZSxDQUFDO1lBRWhFLENBQUM7WUFFRCwyQkFBMkI7WUFFM0IsSUFBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztnQkFDcEYsSUFBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDL0YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDM0YsQ0FBQztnQkFDRCxJQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNqRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUMvRixDQUFDO1lBR0gsQ0FBQztZQUVELElBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxlQUFlLENBQUMsRUFBRSxDQUFDO2dCQUVuRixJQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDaEcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUE7Z0JBQzVGLENBQUM7Z0JBRUQsSUFBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ25HLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUNuRyxDQUFDO2dCQUVELElBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUM1RixJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDckYsQ0FBQztnQkFDRCxJQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDaEcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUE7Z0JBQzVGLENBQUM7WUFDSCxDQUFDO1lBRUQsSUFBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUM7Z0JBRWpGLElBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUM5RixJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDM0YsQ0FBQztnQkFFRCxJQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDOUYsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQztnQkFDckYsQ0FBQztnQkFFRCxJQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDOUYsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzNGLENBQUM7WUFFSCxDQUFDO1FBR0gsQ0FBQztJQUNILENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3hDLElBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM1RSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDekMsQ0FBQztRQUNELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsMkJBQTJCLENBQUMsS0FBVTtRQUNwQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDdEMsSUFBRyxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzlFLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUN6QyxDQUFDO1FBQ0MsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV4QyxrQkFBa0I7UUFDbEIsSUFBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM5SixNQUFNLElBQUksR0FBRSxRQUFRLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUN6RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDekcsQ0FBQzthQUNJLENBQUM7WUFDTixJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDcEQsQ0FBQztJQUNMLENBQUM7SUFDQyx1QkFBdUIsQ0FBQyxLQUFVO1FBQ2hDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDbEMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxrQkFBa0I7UUFDbEIsSUFBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDMUssTUFBTSxJQUFJLEdBQUcsUUFBUSxJQUFJLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUNoRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsVUFBVSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNySCxDQUFDO2FBQ0ksQ0FBQztZQUNOLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUMxRCxDQUFDO0lBQ0wsQ0FBQztJQUVDLDRCQUE0QixDQUFDLEtBQVc7UUFDdEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsd0JBQXdCLENBQUMsS0FBVTtRQUNqQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3hDLElBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM1RSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7SUFFRCxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDbE4sQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFFNUYsU0FBUyxDQUFDLEtBQWE7UUFDckIsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsNENBQTRDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLENBQUM7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNsQixJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDYixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2pJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDaEksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNwSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ25JLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3BKLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakIsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNsQyxDQUFDO3dHQXg2QlUsaUNBQWlDOzRGQUFqQyxpQ0FBaUMsNHdCQ3pCOUMsbzhSQXNLQSwrakpEeEpJLGVBQWUsNEhBQ2Ysc0JBQXNCLDZJQUN0QixlQUFlLDBFQUNmLG1CQUFtQiwrRUFDbkIsY0FBYywwSEFDZCxZQUFZLGtJQUNaLFdBQVc7OzRGQUtGLGlDQUFpQztrQkFmN0MsU0FBUzsrQkFDRSxnQ0FBZ0MsY0FDOUIsSUFBSSxXQUNQO3dCQUNQLGVBQWU7d0JBQ2Ysc0JBQXNCO3dCQUN0QixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLFdBQVc7cUJBQ1o7eUZBZ0JTLHNCQUFzQjtzQkFBL0IsTUFBTTtnQkFDRyxzQkFBc0I7c0JBQS9CLE1BQU07Z0JBQ0csc0JBQXNCO3NCQUEvQixNQUFNO2dCQUNHLDJCQUEyQjtzQkFBcEMsTUFBTTtnQkFDRyx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBQ0csNkJBQTZCO3NCQUF0QyxNQUFNO2dCQUNHLHVCQUF1QjtzQkFBaEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbnB1dCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuLi90b2dnbGUvdG9nZ2xlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxlY3RUZXh0Ym94Q29tcG9uZW50IH0gZnJvbSAnLi4vc2VsZWN0LXRleHRib3gvc2VsZWN0LXRleHRib3guY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEljb25CdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9pY29uLWJ1dHRvbi9pY29uLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmFkaW9Db21wb25lbnQgfSBmcm9tICcuLi9yYWRpby9yYWRpby5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWFzdGVyQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuLi9tYXN0ZXItY29udHJvbC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWFubnVpdHktcHJlbWl1bS1jYWxjdWxhdG9yJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIFRvZ2dsZUNvbXBvbmVudCxcbiAgICBTZWxlY3RUZXh0Ym94Q29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBJY29uQnV0dG9uQ29tcG9uZW50LFxuICAgIFJhZGlvQ29tcG9uZW50LFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZVxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vYW5udWl0eS1wcmVtaXVtLWNhbGN1bGF0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYW5udWl0eS1wcmVtaXVtLWNhbGN1bGF0b3IuY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIEFubnVpdHlQcmVtaXVtQ2FsY3VsYXRvckNvbXBvbmVudCB7XG4gICAgcmVjYWxjdWxhdGVTdWJUZXh0T2JqOiBhbnkgPSB7IGlzVmlzaWJsZTogdHJ1ZSB9O1xuICBmaWVsZDogYW55ID0gaW5wdXQucmVxdWlyZWQ8YW55PigpO1xuICBwcmVtaXVtRGV0YWlsczogYW55ID0gaW5wdXQ8YW55Pih7fSk7XG4gIGFubnVpdHlQcmVtaXVtIDogYW55ID0ge1xuICAgIHRleHRWYWx1ZSA6ICcnLFxuICAgIHNlbGVjdFZhbHVlOiAnJ1xuICB9O1xuICBtaW51bXVtQW5udWl0eVBheW91dCA6IGFueSA9IHtcbiAgICB0ZXh0VmFsdWUgOiAnJyxcbiAgICBzZWxlY3RWYWx1ZTogJydcbiAgfTtcbiAgQE91dHB1dCgpIG9uQ2FsY3VhbHRlQnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIG9uR2VuZXJhdGVTdW1tYXJ5Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIG9uQW5udWl0eVByZW1pdW1DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIG9uTWluaW11bVByZW1pdW1WYWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgb25BdXRpb0RlYml0VmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIG9uR3VyYW50ZWVkQW5udWl0eVZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBvbkRpZ2l0Qm9zc1N3aXRjaFRvZ2dsZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICB2YWxpZGF0aW9ucyA6IGFueSA9IHtcbiAgICBpc3ByZW1pdW1FbnRyeSA6IGZhbHNlXG4gIH1cbiAgaXNFbmFibGVBdXRvRGViaXQgOiBhbnkgPSBmYWxzZTtcbiAgc2VsZWN0ZWRHdXJhbnRlZWRBbm51aXR5OiBhbnkgPSBudWxsO1xuICBhbm51aXR5UHJlbWl1bVRvZ2dsZU9iajogYW55ID0ge1xuICAgIGNvbnRyb2xUeXBlOiAndG9nZ2xlJyxcbiAgICBmaWVsZE5hbWU6ICdhbm51aXR5UHJlbWl1bVRvZ2dsZScsXG4gICAgbGFiZWw6ICdFbnRlciBBbm51aXR5JyxcbiAgICBwbGFjZUhvbGRlcjogbnVsbCxcbiAgICBtZXRhSWQ6ICdMSV9EUF9HRU5fQ1RSTF90b2dnbGVfYW5udWl0eVByZW1pdW1Ub2dnbGVfVjEnLFxuICAgIGlzVmlzaWJsZTogdHJ1ZSxcbiAgICBpc0Rpc2FibGU6IHRydWUsXG4gICAgdmFsaWRhdG9yczoge1xuICAgICAgaXNSZXF1aXJlZDogZmFsc2UsXG4gICAgICByZXF1aXJlZE1lc3NhZ2U6ICdUaGlzIGZpZWxkIGNhbm5vdCBiZSBlbXB0eScsXG4gICAgICBtaW5MZW5ndGg6IG51bGwsXG4gICAgICBtaW5MZW5ndGhNZXNzYWdlOiBudWxsLFxuICAgICAgbWF4TGVuZ3RoOiAxNTAsXG4gICAgICBtYXhMZW5ndGhNZXNzYWdlOiBudWxsLFxuICAgICAgcGF0dGVybjogbnVsbCxcbiAgICAgIHBhdHRlcm5NZXNzYWdlOiAnJyxcbiAgICB9LFxuICAgIG9wdGlvbnM6IG51bGwsXG4gICAgY3NzQ2xhc3M6XG4gICAgICAnIGNvbC1zbS0xMiBjb2wtbWQtMTIgY29sLWxnLTEyIGNvbC14bC0xMiBteC1hdXRvIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlcicsXG4gICAgdmFsdWU6IG51bGwsXG4gICAgc3R5bGU6IG51bGwsXG4gICAgaW1hZ2VVcmw6IG51bGwsXG4gICAgaXNTaG93TGFiZWw6IHRydWUsXG4gICAgY29udHJvbFN0eWxlOiB7XG4gICAgICBjb250cm9sVHlwZTogJ3RvZ2dsZScsXG4gICAgICBib3JkZXJDb2xvcjogJyNEQURBREEnLFxuICAgICAgYm9yZGVyV2lkdGg6ICcxcHgnLFxuICAgICAgYm9yZGVyUmFkaXVzOiAnOTk5cHgnLFxuICAgICAgZm9udFNpemU6ICcxMnB4JyxcbiAgICAgIGZvbnRXZWlnaHQ6ICc0MDAnLFxuICAgICAgZm9udEZhbWlseTogJ011bGlzaCcsXG4gICAgICBjb2xvcjogJyM0NDQ0NDQnLFxuICAgICAgYmFja2dyb3VuZDogJyNGRkZGRkYnLFxuICAgICAgY2FyZXRDb2xvcjogbnVsbCxcbiAgICAgIG51ZGdlRGlzcGxheUltYWdlOiBudWxsLFxuICAgICAgZHJvcGRvd25PcHRpb25CZ0NvbG9yOiBudWxsLFxuICAgICAgZHJvcGRvd25PcHRpb25Db2xvcjogbnVsbCxcbiAgICAgIGRyb3Bkb3duT3B0aW9uRm9udFdlaWdodDogbnVsbCxcbiAgICAgIHdpZHRoOiAnZml0LWNvbnRlbnQnLFxuICAgICAgZm9jdXNCb3JkZXJXaWR0aDogJzAuMDk0cmVtJyxcbiAgICAgIGZvY3VzQm9yZGVyQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0JhY2tncm91bmQ6IG51bGwsXG4gICAgICBmb2N1c0NvbG9yOiBudWxsLFxuICAgICAgZm9jdXNEcm9wZG93bk9wdGlvbkJnQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uRm9udFdlaWdodDogbnVsbCxcbiAgICAgIGZvY3VzRHJvcGRvd25PcHRpb25Cb3JkZXJMZWZ0OiBudWxsLFxuICAgICAgZm9jdXNEcm9wZG93bk9wdGlvbkJvcmRlclJhZGl1czogbnVsbCxcbiAgICAgIGhvdmVyQm9yZGVyQ29sb3I6IG51bGwsXG4gICAgICBob3ZlckJvcmRlcldpZHRoOiAnMC4wOTRyZW0nLFxuICAgICAgaG92ZXJDb2xvcjogbnVsbCxcbiAgICAgIGRpc2FibGVDb2xvcjogJyNFQ0VDRUMnLFxuICAgICAgZGlzYWJsZUJhY2tncm91bmQ6ICcjRUNFQ0VDJyxcbiAgICAgIGVycm9yQm9yZGVyQ29sb3I6IG51bGwsXG4gICAgICBlcnJvckJvcmRlcldpZHRoOiAnMC4wOTRyZW0nLFxuICAgICAgZXJyb3JDb2xvcjogbnVsbCxcbiAgICAgIGNyZWF0ZWREYXRlOiBudWxsLFxuICAgICAgcGFkZGluZzogbnVsbCxcbiAgICAgIG1hcmdpbjogbnVsbCxcbiAgICAgIGlzTWFzdGVyQ3NzOiBudWxsLFxuICAgICAgY29udHJvbE1ldGFJZDogJ0xJX0RQX0dFTl9DVFJMX3RvZ2dsZV9hbm51aXR5UHJlbWl1bVRvZ2dsZV9WMScsXG4gICAgICBib3JkZXJTdHlsZTogbnVsbCxcbiAgICAgIGhlaWdodDogbnVsbCxcbiAgICAgIG1pbkhlaWdodDogbnVsbCxcbiAgICAgIG1heEhlaWdodDogbnVsbCxcbiAgICAgIG1pbldpZHRoOiBudWxsLFxuICAgICAgbWF4V2lkdGg6IG51bGwsXG4gICAgICBjc3NDbGFzczogbnVsbCxcbiAgICB9LFxuICAgIGNvbHVtbkluZGV4OiAwLFxuICAgIGNvbmZpZ0RhdGE6IHtcbiAgICAgIGxlZnRMYWJlbDogJ0VudGVyIFByZW1pdW0nLFxuICAgIH0sXG4gICAgY29udHJvbFN0eWxlczogbnVsbCxcbiAgfTtcblxuICBhbm51aXR5VGFibGVDYWxjdWxhdG9yIDphbnkgPSB7XG4gICAgXCJpc1Zpc2libGVcIjogZmFsc2UsXG4gICAgXCJhbm51aXR5Y2FsY3VsYXRvclRhYmxlMXZhbDFcIjogXCJcIixcbiAgICBcImFubnVpdHljYWxjdWxhdG9yVGFibGUxdmFsMlwiOiBcIlwiLFxuICAgIFwiYW5udWl0eWNhbGN1bGF0b3JUYWJsZTJ2YWwxXCI6IFwiXCIsXG4gICAgXCJhbm51aXR5Y2FsY3VsYXRvclRhYmxlMnZhbDJcIjogXCJcIixcbiAgICBcImFubnVpdHljYWxjdWxhdG9yVGFibGUydmFsM1wiOiBcIlwiLFxuICAgIFwiYW5udWl0eWNhbGN1bGF0b3JUYWJsZTN2YWwxXCI6IFwiXCIsXG4gICAgXCJhbm51aXR5Y2FsY3VsYXRvclRhYmxlM3ZhbDJcIjogXCJcIixcbiAgICBcImFubnVpdHljYWxjdWxhdG9yVGFibGUzdmFsM1wiOiBcIlwiLFxuICAgIFwiYW5udWl0eWNhbGN1bGF0b3JUYWJsZTR2YWwxXCI6IFwiXCIsXG4gICAgXCJhbm51aXR5Y2FsY3VsYXRvclRhYmxlNHZhbDJcIjogXCJcIixcbiAgICBcImFubnVpdHljYWxjdWxhdG9yVGFibGU0dmFsM1wiOiBcIlwiXG5cblxuICB9O1xuXG4gIGRpZ2l0Qm9zc1N3aXRjaCA6IGFueSA9IHtcbiAgICBpc1Zpc2libGUgOiBmYWxzZSxcbiAgICBpc1N3aXRjaE9uOiBmYWxzZSxcbiAgICBoaWdobGlnaHRUZXh0OiAnJyxcbiAgICBzdWJUZXh0OiAnJ1xuICB9XG5cbiAgZGlnaXRCb3NzVG9nZ2xlQ29uZmlnOiBhbnkgPSB7XG4gICAgY29udHJvbFR5cGU6ICd0b2dnbGUnLFxuICAgIGZpZWxkTmFtZTogJ2RpZ2l0Qm9zc1RvZ2dsZScsXG4gICAgaXNWaXNpYmxlOiB0cnVlLFxuICAgIGlzRGlzYWJsZTogZmFsc2UsXG4gICAgaXNTaG93TGFiZWw6IHRydWUsXG4gICAgY29uZmlnRGF0YToge1xuICAgICAgbGVmdExhYmVsOiAnJ1xuICAgIH0sXG4gICAgY29udHJvbFN0eWxlOiB7XG4gICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxuICAgICAgYm9yZGVyQ29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgICB3aWR0aDogJ2ZpdC1jb250ZW50JyxcbiAgICAgIGJvcmRlcldpZHRoOiAnMHB4J1xuICAgIH1cbiAgfTtcblxuICBvbkRpZ2l0Qm9zc1N3aXRjaENoYW5nZShldmVudDogYW55KSB7XG4gICAgLy8gaWYodGhpcy5wcmVtaXVtRGV0YWlscygpICYmIHRoaXMucHJlbWl1bURldGFpbHMoKS5kaWdpdEJvc3NTd2l0Y2gpe1xuICAgICAgIHRoaXMuZGlnaXRCb3NzU3dpdGNoLmlzU3dpdGNoT24gPSBldmVudDtcbiAgICAgICB0aGlzLm9uRGlnaXRCb3NzU3dpdGNoVG9nZ2xlLmVtaXQoZXZlbnQpO1xuICAgIC8vIH1cbiAgfVxuXG4gIGFubnVpdHlQcmVtaXVtT2JqOiBhbnkgPSB7XG4gICAgY29udHJvbFN0eWxlOiB7XG4gICAgICBjb250cm9sVHlwZTogJ2Ftb3VudFRleHRib3gnLFxuICAgICAgYm9yZGVyQ29sb3I6ICcjREFEQURBJyxcbiAgICAgIGJvcmRlcldpZHRoOiAnMC4wOTRyZW0nLFxuICAgICAgYm9yZGVyUmFkaXVzOiBudWxsLFxuICAgICAgZm9udFNpemU6ICcxNnB4JyxcbiAgICAgIGZvbnRXZWlnaHQ6ICc0MDAnLFxuICAgICAgZm9udEZhbWlseTogJ011bGlzaCcsXG4gICAgICBjb2xvcjogJyM0NDQ0NDQnLFxuICAgICAgYmFja2dyb3VuZDogJyNGRkZGRkYnLFxuICAgICAgY2FyZXRDb2xvcjogJyNmZmJiMDAnLFxuICAgICAgbnVkZ2VEaXNwbGF5SW1hZ2U6IG51bGwsXG4gICAgICBkcm9wZG93bk9wdGlvbkJnQ29sb3I6IG51bGwsXG4gICAgICBkcm9wZG93bk9wdGlvbkNvbG9yOiBudWxsLFxuICAgICAgZHJvcGRvd25PcHRpb25Gb250V2VpZ2h0OiBudWxsLFxuICAgICAgd2lkdGg6IG51bGwsXG4gICAgICBmb2N1c0JvcmRlcldpZHRoOiAnMC4wOTRyZW0nLFxuICAgICAgZm9jdXNCb3JkZXJDb2xvcjogJyNmZmJiMDAnLFxuICAgICAgZm9jdXNCYWNrZ3JvdW5kOiBudWxsLFxuICAgICAgZm9jdXNDb2xvcjogJyM0NDQ0NDQnLFxuICAgICAgZm9jdXNEcm9wZG93bk9wdGlvbkJnQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uRm9udFdlaWdodDogbnVsbCxcbiAgICAgIGZvY3VzRHJvcGRvd25PcHRpb25Cb3JkZXJMZWZ0OiBudWxsLFxuICAgICAgZm9jdXNEcm9wZG93bk9wdGlvbkJvcmRlclJhZGl1czogbnVsbCxcbiAgICAgIGhvdmVyQm9yZGVyQ29sb3I6ICcjRkZCQjAwJyxcbiAgICAgIGhvdmVyQm9yZGVyV2lkdGg6ICcwLjA5NHJlbScsXG4gICAgICBob3ZlckNvbG9yOiAnIzQ0NDQ0NCcsXG4gICAgICBkaXNhYmxlQ29sb3I6ICcjRUNFQ0VDJyxcbiAgICAgIGRpc2FibGVCYWNrZ3JvdW5kOiAnI0VDRUNFQycsXG4gICAgICBlcnJvckJvcmRlckNvbG9yOiAnI0VFMDAwMCcsXG4gICAgICBlcnJvckJvcmRlcldpZHRoOiAnMC4wOTRyZW0nLFxuICAgICAgZXJyb3JDb2xvcjogJyM0NDQ0NDQnLFxuICAgICAgY3JlYXRlZERhdGU6IG51bGwsXG4gICAgICBwYWRkaW5nOiBudWxsLFxuICAgICAgbWFyZ2luOiBudWxsLFxuICAgICAgaXNNYXN0ZXJDc3M6IG51bGwsXG4gICAgICBjb250cm9sTWV0YUlkOiAnQUxMX0RQX0RQX0NUUkxfYW1vdW50VGV4dGJveF9hbm51aXR5UHJlbWl1bV9WMScsXG4gICAgICBib3JkZXJTdHlsZTogbnVsbCxcbiAgICAgIGhlaWdodDogbnVsbCxcbiAgICAgIG1pbkhlaWdodDogbnVsbCxcbiAgICAgIG1heEhlaWdodDogbnVsbCxcbiAgICAgIG1pbldpZHRoOiBudWxsLFxuICAgICAgbWF4V2lkdGg6IG51bGwsXG4gICAgICBjc3NDbGFzczogbnVsbCxcbiAgICB9LFxuICAgIGZpZWxkTmFtZTogJ2FubnVpdHlQcmVtaXVtJyxcbiAgICBsYWJlbDogJ1ByZW1pdW0nLFxuICAgIHBsYWNlSG9sZGVyOiAnRW50ZXInLFxuICAgIG1ldGFJZDogJ0FMTF9EUF9EUF9DVFJMX2Ftb3VudFRleHRib3hfYW5udWl0eVByZW1pdW1fVjEnLFxuICAgIGlzVmlzaWJsZTogdHJ1ZSxcbiAgICBpc0Rpc2FibGU6IGZhbHNlLFxuICAgIGRlZmF1bHRWYWx1ZTogbnVsbCxcbiAgICB2YWxpZGF0b3JzOiB7XG4gICAgICBpc1JlcXVpcmVkOiBmYWxzZSxcbiAgICAgIHJlcXVpcmVkTWVzc2FnZTogJ0VudGVyIFByZW1pdW0nLFxuICAgICAgbWluTGVuZ3RoOiA0LFxuICAgICAgbWluTGVuZ3RoTWVzc2FnZTogbnVsbCxcbiAgICAgIG1heExlbmd0aDogMTAsXG4gICAgICBtYXhMZW5ndGhNZXNzYWdlOiBudWxsLFxuICAgICAgcGF0dGVybjogbnVsbCxcbiAgICAgIHBhdHRlcm5NZXNzYWdlOiBudWxsLFxuICAgIH0sXG4gICAgb3B0aW9uczogW1xuICAgICAge1xuICAgICAgICB2YWx1ZTogJ01vbnRobHknLFxuICAgICAgICBsYWJlbDogJ01vbnRobHknLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6ICdPbmUgVGltZScsXG4gICAgICAgIGxhYmVsOiAnT25lIFRpbWUnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6ICdRdWFydGVybHknLFxuICAgICAgICBsYWJlbDogJ1F1YXJ0ZXJseScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB2YWx1ZTogJ0hhbGYgWWVhcmx5JyxcbiAgICAgICAgbGFiZWw6ICdIYWxmIFllYXJseScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB2YWx1ZTogJ1llYXJseScsXG4gICAgICAgIGxhYmVsOiAnWWVhcmx5JyxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBjc3NDbGFzczogJyBjb2wtc20tMTIgY29sLW1kLTMgY29sLWxnLTMgY29sLXhsLTMgcHktMCBwbC0zIHByLTAgbXQtNSBwdC0yJyxcbiAgICB2YWx1ZTogbnVsbCxcbiAgICBzdHlsZTogbnVsbCxcbiAgICBpbWFnZVVybDogbnVsbCxcbiAgICBjb25maWdEYXRhOiB7XG4gICAgICBpc0NvbWFTZXBlcmF0ZWQ6IHRydWUsXG4gICAgICBpc0FsbG93TnVtYmVyc0luVGV4dEZpZWxkczogdHJ1ZSxcbiAgICAgIGhlbHBlclRleHQ6ICcnLFxuICAgICAgbnVtYmVydG93b3JkOiAnJ1xuICAgIH0sXG4gICAgbWV0YURhdGFPYmo6IG51bGwsXG4gICAgaXNTaG93TGFiZWw6IHRydWUsXG4gICAgaXNNYXN0ZXJDb250cm9sOiBmYWxzZSxcbiAgICBjb250cm9sVHlwZTogJ2Ftb3VudFRleHRib3gnLFxuICB9O1xuXG4gIG1pbmltdW1Bbm51aXR5UGF5b3V0T2JqOiBhbnkgPSB7XG4gICAgY29udHJvbFN0eWxlOiB7XG4gICAgICBjb250cm9sVHlwZTogJ2Ftb3VudFRleHRib3gnLFxuICAgICAgYm9yZGVyQ29sb3I6ICcjREFEQURBJyxcbiAgICAgIGJvcmRlcldpZHRoOiAnMC4wOTRyZW0nLFxuICAgICAgYm9yZGVyUmFkaXVzOiBudWxsLFxuICAgICAgZm9udFNpemU6ICcxNnB4JyxcbiAgICAgIGZvbnRXZWlnaHQ6ICc0MDAnLFxuICAgICAgZm9udEZhbWlseTogJ011bGlzaCcsXG4gICAgICBjb2xvcjogJyM0NDQ0NDQnLFxuICAgICAgYmFja2dyb3VuZDogJyNGRkZGRkYnLFxuICAgICAgY2FyZXRDb2xvcjogJyNmZmJiMDAnLFxuICAgICAgbnVkZ2VEaXNwbGF5SW1hZ2U6IG51bGwsXG4gICAgICBkcm9wZG93bk9wdGlvbkJnQ29sb3I6IG51bGwsXG4gICAgICBkcm9wZG93bk9wdGlvbkNvbG9yOiBudWxsLFxuICAgICAgZHJvcGRvd25PcHRpb25Gb250V2VpZ2h0OiBudWxsLFxuICAgICAgd2lkdGg6IG51bGwsXG4gICAgICBmb2N1c0JvcmRlcldpZHRoOiAnMC4wOTRyZW0nLFxuICAgICAgZm9jdXNCb3JkZXJDb2xvcjogJyNmZmJiMDAnLFxuICAgICAgZm9jdXNCYWNrZ3JvdW5kOiBudWxsLFxuICAgICAgZm9jdXNDb2xvcjogJyM0NDQ0NDQnLFxuICAgICAgZm9jdXNEcm9wZG93bk9wdGlvbkJnQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uRm9udFdlaWdodDogbnVsbCxcbiAgICAgIGZvY3VzRHJvcGRvd25PcHRpb25Cb3JkZXJMZWZ0OiBudWxsLFxuICAgICAgZm9jdXNEcm9wZG93bk9wdGlvbkJvcmRlclJhZGl1czogbnVsbCxcbiAgICAgIGhvdmVyQm9yZGVyQ29sb3I6ICcjRkZCQjAwJyxcbiAgICAgIGhvdmVyQm9yZGVyV2lkdGg6ICcwLjA5NHJlbScsXG4gICAgICBob3ZlckNvbG9yOiAnIzQ0NDQ0NCcsXG4gICAgICBkaXNhYmxlQ29sb3I6ICcjOTk5OTk5JyxcbiAgICAgIGRpc2FibGVCYWNrZ3JvdW5kOiAnI0VDRUNFQycsXG4gICAgICBlcnJvckJvcmRlckNvbG9yOiAnI0VFMDAwMCcsXG4gICAgICBlcnJvckJvcmRlcldpZHRoOiAnMC4wOTRyZW0nLFxuICAgICAgZXJyb3JDb2xvcjogJyM0NDQ0NDQnLFxuICAgICAgY3JlYXRlZERhdGU6IG51bGwsXG4gICAgICBwYWRkaW5nOiBudWxsLFxuICAgICAgbWFyZ2luOiBudWxsLFxuICAgICAgaXNNYXN0ZXJDc3M6IG51bGwsXG4gICAgICBjb250cm9sTWV0YUlkOlxuICAgICAgICAnQUxMX0RQX0RQX0NUUkxfYW1vdW50VGV4dGJveF9taW5pbXVtR3VhcmFudGVlZEFubnVpdHlQYXlvdXRfVjEnLFxuICAgICAgYm9yZGVyU3R5bGU6IG51bGwsXG4gICAgICBoZWlnaHQ6IG51bGwsXG4gICAgICBtaW5IZWlnaHQ6IG51bGwsXG4gICAgICBtYXhIZWlnaHQ6IG51bGwsXG4gICAgICBtaW5XaWR0aDogbnVsbCxcbiAgICAgIG1heFdpZHRoOiBudWxsLFxuICAgICAgY3NzQ2xhc3M6IG51bGwsXG4gICAgfSxcbiAgICBmaWVsZE5hbWU6ICdtaW5pbXVtR3VhcmFudGVlZEFubnVpdHlQYXlvdXQnLFxuICAgIGxhYmVsOiAnVG90YWwgQW5udWl0eSBQYXlvdXQnLFxuICAgIHBsYWNlSG9sZGVyOiAnJyxcbiAgICBtZXRhSWQ6ICdBTExfRFBfRFBfQ1RSTF9hbW91bnRUZXh0Ym94X21pbmltdW1HdWFyYW50ZWVkQW5udWl0eVBheW91dF9WMScsXG4gICAgaXNWaXNpYmxlOiB0cnVlLFxuICAgIGlzRGlzYWJsZTogdHJ1ZSxcbiAgICBkZWZhdWx0VmFsdWU6IG51bGwsXG4gICAgdmFsaWRhdG9yczoge1xuICAgICAgaXNSZXF1aXJlZDogZmFsc2UsXG4gICAgICByZXF1aXJlZE1lc3NhZ2U6ICdFbnRlciBBbm51aXR5IFBheW91dCcsXG4gICAgICBtaW5MZW5ndGg6IDQsXG4gICAgICBtaW5MZW5ndGhNZXNzYWdlOiBudWxsLFxuICAgICAgbWF4TGVuZ3RoOiAxMCxcbiAgICAgIG1heExlbmd0aE1lc3NhZ2U6IG51bGwsXG4gICAgICBwYXR0ZXJuOiBudWxsLFxuICAgICAgcGF0dGVybk1lc3NhZ2U6IG51bGwsXG4gICAgfSxcbiAgICBvcHRpb25zOiBbXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiAnTW9udGhseScsXG4gICAgICAgIGxhYmVsOiAnTW9udGhseScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB2YWx1ZTogJ09uZSBUaW1lJyxcbiAgICAgICAgbGFiZWw6ICdPbmUgVGltZScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB2YWx1ZTogJ1F1YXJ0ZXJseScsXG4gICAgICAgIGxhYmVsOiAnUXVhcnRlcmx5JyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiAnSGFsZiBZZWFybHknLFxuICAgICAgICBsYWJlbDogJ0hhbGYgWWVhcmx5JyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiAnWWVhcmx5JyxcbiAgICAgICAgbGFiZWw6ICdZZWFybHknLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGNzc0NsYXNzOlxuICAgICAgJyBjb2wtc20tMTIgY29sLW1kLTMgY29sLWxnLTMgY29sLXhsLTMgcHktMCBwbC0zIG10LTEgcHItMCBtaW5pbXVtR3VhcmFudGVlZEFubnVpdHlQYXlvdXQnLFxuICAgIHZhbHVlOiBudWxsLFxuICAgIHN0eWxlOiBudWxsLFxuICAgIGltYWdlVXJsOiBudWxsLFxuICAgIGNvbmZpZ0RhdGE6IHtcbiAgICAgIGlzQ29tYVNlcGVyYXRlZDogdHJ1ZSxcbiAgICAgIGlzQWxsb3dOdW1iZXJzSW5UZXh0RmllbGRzOiB0cnVlLFxuICAgICAgaGVscGVyVGV4dDogJycsXG4gICAgICBudW1iZXJ0b3dvcmQ6ICcnXG4gICAgfSxcbiAgICBtZXRhRGF0YU9iajogbnVsbCxcbiAgICBpc1Nob3dMYWJlbDogdHJ1ZSxcbiAgICBpc01hc3RlckNvbnRyb2w6IGZhbHNlLFxuICAgIGNvbnRyb2xUeXBlOiAnYW1vdW50VGV4dGJveCcsXG4gIH07XG5cbiAgZW5hYmxlQXV0b0RlYml0T2JqOiBhbnkgPSB7XG4gICAgY29udHJvbFR5cGU6ICd0b2dnbGUnLFxuICAgIGZpZWxkTmFtZTogJ2F1dG9EZWJpdCcsXG4gICAgbGFiZWw6ICdFbmFibGUgQXV0by1QYXkgdG8gZ2V0IGFkZGl0aW9uYWwgYmVuZWZpdHMnLFxuICAgIHBsYWNlSG9sZGVyOiAnJyxcbiAgICBtZXRhSWQ6ICdBTExfQ09NX0dFTl9DVFJMX3RvZ2dsZV9hdXRvRGViaXRfVjEnLFxuICAgIGlzVmlzaWJsZTogdHJ1ZSxcbiAgICBpc0Rpc2FibGU6IGZhbHNlLFxuICAgIHZhbGlkYXRvcnM6IHtcbiAgICAgIGlzUmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgcmVxdWlyZWRNZXNzYWdlOiAnVGhpcyBmaWVsZCBjYW5ub3QgYmUgZW1wdHknLFxuICAgICAgbWluTGVuZ3RoOiBudWxsLFxuICAgICAgbWluTGVuZ3RoTWVzc2FnZTogbnVsbCxcbiAgICAgIG1heExlbmd0aDogbnVsbCxcbiAgICAgIG1heExlbmd0aE1lc3NhZ2U6IG51bGwsXG4gICAgICBwYXR0ZXJuOiBudWxsLFxuICAgICAgcGF0dGVybk1lc3NhZ2U6ICcnLFxuICAgIH0sXG4gICAgb3B0aW9uczogbnVsbCxcbiAgICBjc3NDbGFzczogJ2NvbC1zbS0xMiBjb2wtbWQtNSBjb2wtbGctNSBjb2wteGwtNSBtdC00IGF1dG9QYXknLFxuICAgIHZhbHVlOiBmYWxzZSxcbiAgICBzdHlsZTogbnVsbCxcbiAgICBpbWFnZVVybDogbnVsbCxcbiAgICBpc1Nob3dMYWJlbDogdHJ1ZSxcbiAgICBjb250cm9sU3R5bGU6IHtcbiAgICAgIGNvbnRyb2xUeXBlOiAndG9nZ2xlJyxcbiAgICAgIGJvcmRlckNvbG9yOiBudWxsLFxuICAgICAgYm9yZGVyV2lkdGg6ICcwLjA5NHJlbScsXG4gICAgICBib3JkZXJSYWRpdXM6IG51bGwsXG4gICAgICBmb250U2l6ZTogJzEycHgnLFxuICAgICAgZm9udFdlaWdodDogJzQwMCcsXG4gICAgICBmb250RmFtaWx5OiAnTXVsaXNoJyxcbiAgICAgIGNvbG9yOiAnIzQ0NDQ0NCcsXG4gICAgICBiYWNrZ3JvdW5kOiAnI0U2RjdGMycsXG4gICAgICBjYXJldENvbG9yOiBudWxsLFxuICAgICAgbnVkZ2VEaXNwbGF5SW1hZ2U6IG51bGwsXG4gICAgICBkcm9wZG93bk9wdGlvbkJnQ29sb3I6IG51bGwsXG4gICAgICBkcm9wZG93bk9wdGlvbkNvbG9yOiBudWxsLFxuICAgICAgZHJvcGRvd25PcHRpb25Gb250V2VpZ2h0OiBudWxsLFxuICAgICAgd2lkdGg6IG51bGwsXG4gICAgICBmb2N1c0JvcmRlcldpZHRoOiAnMC4wOTRyZW0nLFxuICAgICAgZm9jdXNCb3JkZXJDb2xvcjogbnVsbCxcbiAgICAgIGZvY3VzQmFja2dyb3VuZDogbnVsbCxcbiAgICAgIGZvY3VzQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uQmdDb2xvcjogbnVsbCxcbiAgICAgIGZvY3VzRHJvcGRvd25PcHRpb25Db2xvcjogbnVsbCxcbiAgICAgIGZvY3VzRHJvcGRvd25PcHRpb25Gb250V2VpZ2h0OiBudWxsLFxuICAgICAgZm9jdXNEcm9wZG93bk9wdGlvbkJvcmRlckxlZnQ6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uQm9yZGVyUmFkaXVzOiBudWxsLFxuICAgICAgaG92ZXJCb3JkZXJDb2xvcjogbnVsbCxcbiAgICAgIGhvdmVyQm9yZGVyV2lkdGg6ICcwLjA5NHJlbScsXG4gICAgICBob3ZlckNvbG9yOiBudWxsLFxuICAgICAgZGlzYWJsZUNvbG9yOiAnI0VDRUNFQycsXG4gICAgICBkaXNhYmxlQmFja2dyb3VuZDogJyNFQ0VDRUMnLFxuICAgICAgZXJyb3JCb3JkZXJDb2xvcjogbnVsbCxcbiAgICAgIGVycm9yQm9yZGVyV2lkdGg6ICcwLjA5NHJlbScsXG4gICAgICBlcnJvckNvbG9yOiBudWxsLFxuICAgICAgY3JlYXRlZERhdGU6IG51bGwsXG4gICAgICBwYWRkaW5nOiBudWxsLFxuICAgICAgbWFyZ2luOiBudWxsLFxuICAgICAgaXNNYXN0ZXJDc3M6IG51bGwsXG4gICAgICBjb250cm9sTWV0YUlkOiAnQUxMX0NPTV9HRU5fQ1RSTF90b2dnbGVfbWFpbGluZ0FkZHJlc3NUb2dnbGVfVjEnLFxuICAgICAgYm9yZGVyU3R5bGU6IG51bGwsXG4gICAgICBoZWlnaHQ6IG51bGwsXG4gICAgICBtaW5IZWlnaHQ6IG51bGwsXG4gICAgICBtYXhIZWlnaHQ6IG51bGwsXG4gICAgICBtaW5XaWR0aDogbnVsbCxcbiAgICAgIG1heFdpZHRoOiBudWxsLFxuICAgICAgY3NzQ2xhc3M6IG51bGwsXG4gICAgfSxcbiAgICBjb2x1bW5JbmRleDogMCxcbiAgICBjb25maWdEYXRhOiB7fSxcbiAgICBjb250cm9sU3R5bGVzOiBudWxsLFxuICB9O1xuXG4gIHJlY2FsY3VsYXRlQnV0dG9uOiBhbnkgPSB7XG4gICAgY29udHJvbFR5cGU6ICdidXR0b24nLFxuICAgIGZpZWxkTmFtZTogJ2NhbGN1bGF0ZUFubnVpdHlQYXlvdXQnLFxuICAgIGxhYmVsOiAnQ2FsY3VsYXRlIEFubnVpdHkgUGF5b3V0JyxcbiAgICBwbGFjZUhvbGRlcjogbnVsbCxcbiAgICBtZXRhSWQ6ICdMSV9EUF9HRU5fQ1RSTF9idXR0b25fY2FsY3VsYXRlQW5udWl0eVBheW91dF9WMScsXG4gICAgaXNWaXNpYmxlOiB0cnVlLFxuICAgIGlzRGlzYWJsZTogZmFsc2UsXG4gICAgdmFsaWRhdG9yczoge1xuICAgICAgaXNSZXF1aXJlZDogZmFsc2UsXG4gICAgICByZXF1aXJlZE1lc3NhZ2U6ICdUaGlzIGZpZWxkIGNhbm5vdCBiZSBlbXB0eScsXG4gICAgICBtaW5MZW5ndGg6IG51bGwsXG4gICAgICBtaW5MZW5ndGhNZXNzYWdlOiBudWxsLFxuICAgICAgbWF4TGVuZ3RoOiBudWxsLFxuICAgICAgbWF4TGVuZ3RoTWVzc2FnZTogbnVsbCxcbiAgICAgIHBhdHRlcm46IG51bGwsXG4gICAgICBwYXR0ZXJuTWVzc2FnZTogJycsXG4gICAgfSxcbiAgICBvcHRpb25zOiBudWxsLFxuICAgIGNzc0NsYXNzOiAnIGNvbC1zbS0xMiBjb2wtbWQtMTIgY29sLWxnLTEyIGNvbC14bC0xMiBtdC0zJyxcbiAgICB2YWx1ZTogbnVsbCxcbiAgICBzdHlsZTogbnVsbCxcbiAgICBpbWFnZVVybDogbnVsbCxcbiAgICBpc1Nob3dMYWJlbDogdHJ1ZSxcbiAgICBjb250cm9sU3R5bGU6IHtcbiAgICAgIGNvbnRyb2xUeXBlOiBudWxsLFxuICAgICAgYm9yZGVyQ29sb3I6IG51bGwsXG4gICAgICBib3JkZXJXaWR0aDogbnVsbCxcbiAgICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgICBmb250U2l6ZTogJzEycHgnLFxuICAgICAgZm9udFdlaWdodDogbnVsbCxcbiAgICAgIGZvbnRGYW1pbHk6IG51bGwsXG4gICAgICBjb2xvcjogbnVsbCxcbiAgICAgIGJhY2tncm91bmQ6ICcjRkZCQjAwJyxcbiAgICAgIGNhcmV0Q29sb3I6IG51bGwsXG4gICAgICBudWRnZURpc3BsYXlJbWFnZTogbnVsbCxcbiAgICAgIGRyb3Bkb3duT3B0aW9uQmdDb2xvcjogbnVsbCxcbiAgICAgIGRyb3Bkb3duT3B0aW9uQ29sb3I6IG51bGwsXG4gICAgICBkcm9wZG93bk9wdGlvbkZvbnRXZWlnaHQ6IG51bGwsXG4gICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgZm9jdXNCb3JkZXJXaWR0aDogbnVsbCxcbiAgICAgIGZvY3VzQm9yZGVyQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0JhY2tncm91bmQ6IG51bGwsXG4gICAgICBmb2N1c0NvbG9yOiBudWxsLFxuICAgICAgZm9jdXNEcm9wZG93bk9wdGlvbkJnQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uRm9udFdlaWdodDogbnVsbCxcbiAgICAgIGZvY3VzRHJvcGRvd25PcHRpb25Cb3JkZXJMZWZ0OiBudWxsLFxuICAgICAgZm9jdXNEcm9wZG93bk9wdGlvbkJvcmRlclJhZGl1czogbnVsbCxcbiAgICAgIGhvdmVyQm9yZGVyQ29sb3I6IG51bGwsXG4gICAgICBob3ZlckJvcmRlcldpZHRoOiBudWxsLFxuICAgICAgaG92ZXJDb2xvcjogbnVsbCxcbiAgICAgIGRpc2FibGVDb2xvcjogbnVsbCxcbiAgICAgIGRpc2FibGVCYWNrZ3JvdW5kOiBudWxsLFxuICAgICAgZXJyb3JCb3JkZXJDb2xvcjogbnVsbCxcbiAgICAgIGVycm9yQm9yZGVyV2lkdGg6IG51bGwsXG4gICAgICBlcnJvckNvbG9yOiBudWxsLFxuICAgICAgY3JlYXRlZERhdGU6IG51bGwsXG4gICAgICBwYWRkaW5nOiBudWxsLFxuICAgICAgbWFyZ2luOiBudWxsLFxuICAgICAgaXNNYXN0ZXJDc3M6IG51bGwsXG4gICAgICBjb250cm9sTWV0YUlkOiAnTElfRFBfR0VOX0NUUkxfYnV0dG9uX2NhbGN1bGF0ZUFubnVpdHlQYXlvdXRfVjEnLFxuICAgICAgYm9yZGVyU3R5bGU6IG51bGwsXG4gICAgICBoZWlnaHQ6IG51bGwsXG4gICAgICBtaW5IZWlnaHQ6IG51bGwsXG4gICAgICBtYXhIZWlnaHQ6IG51bGwsXG4gICAgICBtaW5XaWR0aDogbnVsbCxcbiAgICAgIG1heFdpZHRoOiBudWxsLFxuICAgICAgY3NzQ2xhc3M6IG51bGwsXG4gICAgfSxcbiAgICBjb2x1bW5JbmRleDogMCxcbiAgICBjb25maWdEYXRhOiB7fSxcbiAgICBjb250cm9sU3R5bGVzOiBudWxsLFxuICB9O1xuXG4gIGludGVyY2hhbmdlQnV0dG9uT2JqOiBhbnkgPSB7XG4gICAgY29udHJvbFN0eWxlOiB7XG4gICAgICBjb250cm9sVHlwZTogbnVsbCxcbiAgICAgIGJvcmRlckNvbG9yOiAnI0RERERERCcsXG4gICAgICBib3JkZXJXaWR0aDogJzBweCcsXG4gICAgICBib3JkZXJSYWRpdXM6ICc1MCUnLFxuICAgICAgZm9udFNpemU6IG51bGwsXG4gICAgICBmb250V2VpZ2h0OiBudWxsLFxuICAgICAgZm9udEZhbWlseTogbnVsbCxcbiAgICAgIGNvbG9yOiBudWxsLFxuICAgICAgYmFja2dyb3VuZDogbnVsbCxcbiAgICAgIGNhcmV0Q29sb3I6IG51bGwsXG4gICAgICBudWRnZURpc3BsYXlJbWFnZTogbnVsbCxcbiAgICAgIGRyb3Bkb3duT3B0aW9uQmdDb2xvcjogbnVsbCxcbiAgICAgIGRyb3Bkb3duT3B0aW9uQ29sb3I6IG51bGwsXG4gICAgICBkcm9wZG93bk9wdGlvbkZvbnRXZWlnaHQ6IG51bGwsXG4gICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgZm9jdXNCb3JkZXJXaWR0aDogbnVsbCxcbiAgICAgIGZvY3VzQm9yZGVyQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0JhY2tncm91bmQ6IG51bGwsXG4gICAgICBmb2N1c0NvbG9yOiBudWxsLFxuICAgICAgZm9jdXNEcm9wZG93bk9wdGlvbkJnQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uRm9udFdlaWdodDogbnVsbCxcbiAgICAgIGZvY3VzRHJvcGRvd25PcHRpb25Cb3JkZXJMZWZ0OiBudWxsLFxuICAgICAgZm9jdXNEcm9wZG93bk9wdGlvbkJvcmRlclJhZGl1czogbnVsbCxcbiAgICAgIGhvdmVyQm9yZGVyQ29sb3I6IG51bGwsXG4gICAgICBob3ZlckJvcmRlcldpZHRoOiBudWxsLFxuICAgICAgaG92ZXJDb2xvcjogbnVsbCxcbiAgICAgIGRpc2FibGVDb2xvcjogbnVsbCxcbiAgICAgIGRpc2FibGVCYWNrZ3JvdW5kOiBudWxsLFxuICAgICAgZXJyb3JCb3JkZXJDb2xvcjogbnVsbCxcbiAgICAgIGVycm9yQm9yZGVyV2lkdGg6IG51bGwsXG4gICAgICBlcnJvckNvbG9yOiBudWxsLFxuICAgICAgY3JlYXRlZERhdGU6IG51bGwsXG4gICAgICBwYWRkaW5nOiBudWxsLFxuICAgICAgbWFyZ2luOiBudWxsLFxuICAgICAgaXNNYXN0ZXJDc3M6IG51bGwsXG4gICAgICBjb250cm9sTWV0YUlkOiBudWxsLFxuICAgICAgYm9yZGVyU3R5bGU6IG51bGwsXG4gICAgICBoZWlnaHQ6ICcyNnB4JyxcbiAgICAgIG1pbkhlaWdodDogbnVsbCxcbiAgICAgIG1heEhlaWdodDogbnVsbCxcbiAgICAgIG1pbldpZHRoOiBudWxsLFxuICAgICAgbWF4V2lkdGg6IG51bGwsXG4gICAgICBjc3NDbGFzczogbnVsbCxcbiAgICB9LFxuICAgIGZpZWxkTmFtZTogJ2FubnVpdHlJbnRlckNoYW5nZScsXG4gICAgbGFiZWw6ICdBbm51aXR5IEludGVyY2hhbmdlIEJ1dHRvbicsXG4gICAgcGxhY2VIb2xkZXI6IG51bGwsXG4gICAgbWV0YUlkOiAnQUxMX0NPTV9HRU5fTUNUUkxfZG93bmxvYWRJY29uQnV0dG9uX2FubnVpdHlJbnRlckNoYW5nZV9WMScsXG4gICAgaXNWaXNpYmxlOiB0cnVlLFxuICAgIGlzRGlzYWJsZTogZmFsc2UsXG4gICAgZGVmYXVsdFZhbHVlOiBudWxsLFxuICAgIHZhbGlkYXRvcnM6IHtcbiAgICAgIGlzUmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgcmVxdWlyZWRNZXNzYWdlOiAnVGhpcyBmaWVsZCBjYW5ub3QgYmUgZW1wdHknLFxuICAgICAgbWluTGVuZ3RoOiBudWxsLFxuICAgICAgbWluTGVuZ3RoTWVzc2FnZTogbnVsbCxcbiAgICAgIG1heExlbmd0aDogbnVsbCxcbiAgICAgIG1heExlbmd0aE1lc3NhZ2U6IG51bGwsXG4gICAgICBwYXR0ZXJuOiBudWxsLFxuICAgICAgcGF0dGVybk1lc3NhZ2U6ICcnLFxuICAgIH0sXG4gICAgb3B0aW9uczogW10sXG4gICAgY3NzQ2xhc3M6IG51bGwsXG4gICAgdmFsdWU6IG51bGwsXG4gICAgc3R5bGU6IG51bGwsXG4gICAgaW1hZ2VVcmw6XG4gICAgICAnaHR0cHM6Ly9jZG4uZ29kaWdpdC5jb20vZGlnaXRQbHVzQXNzZXRzL1RyYW5zaXRpb24td2l0aC1ib3JkZXItaWNvbi5zdmcnLFxuICAgIGNvbmZpZ0RhdGE6IHt9LFxuICAgIG1ldGFEYXRhT2JqOiBudWxsLFxuICAgIGlzU2hvd0xhYmVsOiB0cnVlLFxuICAgIGlzTWFzdGVyQ29udHJvbDogdHJ1ZSxcbiAgICBjb250cm9sVHlwZTogJ2Rvd25sb2FkSWNvbkJ1dHRvbicsXG4gIH07XG5cbiAgZ2VuZXJhdGVTdW1tYXJ5T2JqOiBhbnkgPSB7XG4gICAgY29udHJvbFR5cGU6ICdidXR0b24nLFxuICAgIGZpZWxkTmFtZTogJ2dlbmVyYXRlU3VtbWFyeScsXG4gICAgbGFiZWw6ICdHZW5lcmF0ZSBTdW1tYXJ5JyxcbiAgICBwbGFjZUhvbGRlcjogbnVsbCxcbiAgICBtZXRhSWQ6ICdMSV9EUF9HRU5fQ1RSTF9idXR0b25fZ2VuZXJhdGVTdW1tYXJ5X1YxJyxcbiAgICBpc1Zpc2libGU6IHRydWUsXG4gICAgaXNEaXNhYmxlOiB0cnVlLFxuICAgIHZhbGlkYXRvcnM6IHtcbiAgICAgIGlzUmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgcmVxdWlyZWRNZXNzYWdlOiAnVGhpcyBmaWVsZCBjYW5ub3QgYmUgZW1wdHknLFxuICAgICAgbWluTGVuZ3RoOiBudWxsLFxuICAgICAgbWluTGVuZ3RoTWVzc2FnZTogbnVsbCxcbiAgICAgIG1heExlbmd0aDogbnVsbCxcbiAgICAgIG1heExlbmd0aE1lc3NhZ2U6IG51bGwsXG4gICAgICBwYXR0ZXJuOiBudWxsLFxuICAgICAgcGF0dGVybk1lc3NhZ2U6ICcnLFxuICAgIH0sXG4gICAgb3B0aW9uczogbnVsbCxcbiAgICBjc3NDbGFzczogJyBjb2wtc20tMTIgY29sLW1kLTEyIGNvbC1sZy0xMiBjb2wteGwtMTIgbXktMSBtdC0zJyxcbiAgICB2YWx1ZTogbnVsbCxcbiAgICBzdHlsZTogbnVsbCxcbiAgICBpbWFnZVVybDogbnVsbCxcbiAgICBpc1Nob3dMYWJlbDogdHJ1ZSxcbiAgICBjb250cm9sU3R5bGU6IHtcbiAgICAgIGNvbnRyb2xUeXBlOiBudWxsLFxuICAgICAgYm9yZGVyQ29sb3I6IG51bGwsXG4gICAgICBib3JkZXJXaWR0aDogbnVsbCxcbiAgICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgICBmb250U2l6ZTogJzEycHgnLFxuICAgICAgZm9udFdlaWdodDogbnVsbCxcbiAgICAgIGZvbnRGYW1pbHk6IG51bGwsXG4gICAgICBjb2xvcjogbnVsbCxcbiAgICAgIGJhY2tncm91bmQ6ICcjRkZCQjAwJyxcbiAgICAgIGNhcmV0Q29sb3I6IG51bGwsXG4gICAgICBudWRnZURpc3BsYXlJbWFnZTogbnVsbCxcbiAgICAgIGRyb3Bkb3duT3B0aW9uQmdDb2xvcjogbnVsbCxcbiAgICAgIGRyb3Bkb3duT3B0aW9uQ29sb3I6IG51bGwsXG4gICAgICBkcm9wZG93bk9wdGlvbkZvbnRXZWlnaHQ6IG51bGwsXG4gICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgZm9jdXNCb3JkZXJXaWR0aDogbnVsbCxcbiAgICAgIGZvY3VzQm9yZGVyQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0JhY2tncm91bmQ6IG51bGwsXG4gICAgICBmb2N1c0NvbG9yOiBudWxsLFxuICAgICAgZm9jdXNEcm9wZG93bk9wdGlvbkJnQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uQ29sb3I6IG51bGwsXG4gICAgICBmb2N1c0Ryb3Bkb3duT3B0aW9uRm9udFdlaWdodDogbnVsbCxcbiAgICAgIGZvY3VzRHJvcGRvd25PcHRpb25Cb3JkZXJMZWZ0OiBudWxsLFxuICAgICAgZm9jdXNEcm9wZG93bk9wdGlvbkJvcmRlclJhZGl1czogbnVsbCxcbiAgICAgIGhvdmVyQm9yZGVyQ29sb3I6IG51bGwsXG4gICAgICBob3ZlckJvcmRlcldpZHRoOiBudWxsLFxuICAgICAgaG92ZXJDb2xvcjogbnVsbCxcbiAgICAgIGRpc2FibGVDb2xvcjogbnVsbCxcbiAgICAgIGRpc2FibGVCYWNrZ3JvdW5kOiBudWxsLFxuICAgICAgZXJyb3JCb3JkZXJDb2xvcjogbnVsbCxcbiAgICAgIGVycm9yQm9yZGVyV2lkdGg6IG51bGwsXG4gICAgICBlcnJvckNvbG9yOiBudWxsLFxuICAgICAgY3JlYXRlZERhdGU6IG51bGwsXG4gICAgICBwYWRkaW5nOiBudWxsLFxuICAgICAgbWFyZ2luOiBudWxsLFxuICAgICAgaXNNYXN0ZXJDc3M6IG51bGwsXG4gICAgICBjb250cm9sTWV0YUlkOiAnTElfRFBfR0VOX0NUUkxfYnV0dG9uX2dlbmVyYXRlU3VtbWFyeV9WMScsXG4gICAgICBib3JkZXJTdHlsZTogbnVsbCxcbiAgICAgIGhlaWdodDogbnVsbCxcbiAgICAgIG1pbkhlaWdodDogbnVsbCxcbiAgICAgIG1heEhlaWdodDogbnVsbCxcbiAgICAgIG1pbldpZHRoOiBudWxsLFxuICAgICAgbWF4V2lkdGg6IG51bGwsXG4gICAgICBjc3NDbGFzczogbnVsbCxcbiAgICB9LFxuICAgIGNvbHVtbkluZGV4OiAwLFxuICAgIGNvbmZpZ0RhdGE6IHt9LFxuICAgIGNvbnRyb2xTdHlsZXM6IG51bGwsXG4gIH07XG5cbiAgZ3VyYW50ZWVkYW5udWl0eU9iajogYW55PXtcbiAgICAgICAgICAgICAgICBcImNvbnRyb2xUeXBlXCI6IFwicmFkaW9cIixcbiAgICAgICAgICAgICAgICBcImZpZWxkTmFtZVwiOiBcImd1cmFudGVlZEFubnVpdHlhZ2VcIixcbiAgICAgICAgICAgICAgICBcImxhYmVsXCI6IFwiTWluaW11bSBHdWFyYW50ZWVkIEFubnVpdHkgUGF5b3V0ICVcIixcbiAgICAgICAgICAgICAgICBcInBsYWNlSG9sZGVyXCI6IFwiXCIsXG4gICAgICAgICAgICAgICAgXCJtZXRhSWRcIjogXCJMSV9EUF9EUF9DVFJMX3JhZGlvX2FubnVpdHlUeXBlX1YxXCIsXG4gICAgICAgICAgICAgICAgXCJpc1Zpc2libGVcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgXCJpc0Rpc2FibGVcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgXCJ2YWxpZGF0b3JzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiaXNSZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZE1lc3NhZ2VcIjogXCJUaGlzIGZpZWxkIGNhbm5vdCBiZSBlbXB0eVwiLFxuICAgICAgICAgICAgICAgICAgXCJtaW5MZW5ndGhcIjogbnVsbCxcbiAgICAgICAgICAgICAgICAgIFwibWluTGVuZ3RoTWVzc2FnZVwiOiBudWxsLFxuICAgICAgICAgICAgICAgICAgXCJtYXhMZW5ndGhcIjogMTUwLFxuICAgICAgICAgICAgICAgICAgXCJtYXhMZW5ndGhNZXNzYWdlXCI6IG51bGwsXG4gICAgICAgICAgICAgICAgICBcInBhdHRlcm5cIjogbnVsbCxcbiAgICAgICAgICAgICAgICAgIFwicGF0dGVybk1lc3NhZ2VcIjogXCJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJvcHRpb25zXCI6IFtdLFxuICAgICAgICAgICAgICAgIFwiY3NzQ2xhc3NcIjogXCIgY29sLXNtLTEyIGNvbC1tZC0zIGNvbC1sZy0zIGNvbC14bC0zIGFubnVpdHlUeXBlXCIsXG4gICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiBudWxsLFxuICAgICAgICAgICAgICAgIFwic3R5bGVcIjogbnVsbCxcbiAgICAgICAgICAgICAgICBcImltYWdlVXJsXCI6IG51bGwsXG4gICAgICAgICAgICAgICAgXCJpc1Nob3dMYWJlbFwiOiB0cnVlLFxuICAgICAgICAgICAgICAgIFwiY29udHJvbFN0eWxlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiY29udHJvbFR5cGVcIjogXCJyYWRpb1wiLFxuICAgICAgICAgICAgICAgICAgXCJib3JkZXJDb2xvclwiOiBcIiNEQURBREFcIixcbiAgICAgICAgICAgICAgICAgIFwiYm9yZGVyV2lkdGhcIjogXCIxcHhcIixcbiAgICAgICAgICAgICAgICAgIFwiYm9yZGVyUmFkaXVzXCI6IG51bGwsXG4gICAgICAgICAgICAgICAgICBcImZvbnRTaXplXCI6IFwiMTJweFwiLFxuICAgICAgICAgICAgICAgICAgXCJmb250V2VpZ2h0XCI6IFwiNDAwXCIsXG4gICAgICAgICAgICAgICAgICBcImZvbnRGYW1pbHlcIjogXCJNdWxpc2hcIixcbiAgICAgICAgICAgICAgICAgIFwiY29sb3JcIjogXCIjNDQ0NDQ0XCIsXG4gICAgICAgICAgICAgICAgICBcImJhY2tncm91bmRcIjogXCIjRkZGRkZGXCIsXG4gICAgICAgICAgICAgICAgICBcImNhcmV0Q29sb3JcIjogbnVsbCxcbiAgICAgICAgICAgICAgICAgIFwibnVkZ2VEaXNwbGF5SW1hZ2VcIjogbnVsbCxcbiAgICAgICAgICAgICAgICAgIFwiZHJvcGRvd25PcHRpb25CZ0NvbG9yXCI6IG51bGwsXG4gICAgICAgICAgICAgICAgICBcImRyb3Bkb3duT3B0aW9uQ29sb3JcIjogbnVsbCxcbiAgICAgICAgICAgICAgICAgIFwiZHJvcGRvd25PcHRpb25Gb250V2VpZ2h0XCI6IG51bGwsXG4gICAgICAgICAgICAgICAgICBcIndpZHRoXCI6IFwiNDVweFwiLFxuICAgICAgICAgICAgICAgICAgXCJmb2N1c0JvcmRlcldpZHRoXCI6IFwiMXB4XCIsXG4gICAgICAgICAgICAgICAgICBcImZvY3VzQm9yZGVyQ29sb3JcIjogXCIjZmZiYjAwXCIsXG4gICAgICAgICAgICAgICAgICBcImZvY3VzQmFja2dyb3VuZFwiOiBudWxsLFxuICAgICAgICAgICAgICAgICAgXCJmb2N1c0NvbG9yXCI6IFwiIzQ0NDQ0NFwiLFxuICAgICAgICAgICAgICAgICAgXCJmb2N1c0Ryb3Bkb3duT3B0aW9uQmdDb2xvclwiOiBudWxsLFxuICAgICAgICAgICAgICAgICAgXCJmb2N1c0Ryb3Bkb3duT3B0aW9uQ29sb3JcIjogbnVsbCxcbiAgICAgICAgICAgICAgICAgIFwiZm9jdXNEcm9wZG93bk9wdGlvbkZvbnRXZWlnaHRcIjogbnVsbCxcbiAgICAgICAgICAgICAgICAgIFwiZm9jdXNEcm9wZG93bk9wdGlvbkJvcmRlckxlZnRcIjogbnVsbCxcbiAgICAgICAgICAgICAgICAgIFwiZm9jdXNEcm9wZG93bk9wdGlvbkJvcmRlclJhZGl1c1wiOiBudWxsLFxuICAgICAgICAgICAgICAgICAgXCJob3ZlckJvcmRlckNvbG9yXCI6IFwiI0RBREFEQVwiLFxuICAgICAgICAgICAgICAgICAgXCJob3ZlckJvcmRlcldpZHRoXCI6IFwiMXB4XCIsXG4gICAgICAgICAgICAgICAgICBcImhvdmVyQ29sb3JcIjogXCIjNDQ0NDQ0XCIsXG4gICAgICAgICAgICAgICAgICBcImRpc2FibGVDb2xvclwiOiBcIiNFQ0VDRUNcIixcbiAgICAgICAgICAgICAgICAgIFwiZGlzYWJsZUJhY2tncm91bmRcIjogXCIjRUNFQ0VDXCIsXG4gICAgICAgICAgICAgICAgICBcImVycm9yQm9yZGVyQ29sb3JcIjogXCIjREFEQURBXCIsXG4gICAgICAgICAgICAgICAgICBcImVycm9yQm9yZGVyV2lkdGhcIjogXCIxcHhcIixcbiAgICAgICAgICAgICAgICAgIFwiZXJyb3JDb2xvclwiOiBcIiM0NDQ0NDRcIixcbiAgICAgICAgICAgICAgICAgIFwiY3JlYXRlZERhdGVcIjogbnVsbCxcbiAgICAgICAgICAgICAgICAgIFwicGFkZGluZ1wiOiBudWxsLFxuICAgICAgICAgICAgICAgICAgXCJtYXJnaW5cIjogbnVsbCxcbiAgICAgICAgICAgICAgICAgIFwiaXNNYXN0ZXJDc3NcIjogbnVsbCxcbiAgICAgICAgICAgICAgICAgIFwiY29udHJvbE1ldGFJZFwiOiBcIkxJX0RQX0RQX0NUUkxfcmFkaW9fYW5udWl0eVR5cGVfVjFcIixcbiAgICAgICAgICAgICAgICAgIFwiYm9yZGVyU3R5bGVcIjogbnVsbCxcbiAgICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCI6IFwiMzJweFwiLFxuICAgICAgICAgICAgICAgICAgXCJtaW5IZWlnaHRcIjogbnVsbCxcbiAgICAgICAgICAgICAgICAgIFwibWF4SGVpZ2h0XCI6IG51bGwsXG4gICAgICAgICAgICAgICAgICBcIm1pbldpZHRoXCI6IFwiNDVweFwiLFxuICAgICAgICAgICAgICAgICAgXCJtYXhXaWR0aFwiOiBudWxsLFxuICAgICAgICAgICAgICAgICAgXCJjc3NDbGFzc1wiOiBudWxsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImNvbHVtbkluZGV4XCI6IDAsXG4gICAgICAgICAgICAgICAgXCJjb25maWdEYXRhXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiY29udHJvbFN0eWxlc1wiOiBudWxsXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHVibGljIG1hc3RlclNlcnZpY2UgOiBNYXN0ZXJDb250cm9sU2VydmljZSkge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKCAoY2hhbmdlc1sncHJlbWl1bURldGFpbHMnXSkgJiYgIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KGNoYW5nZXNbJ3ByZW1pdW1EZXRhaWxzJ10uY3VycmVudFZhbHVlKSApIHtcblxuICAgICAgaWYoIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KHRoaXMucHJlbWl1bURldGFpbHMoKT8ucmVjYWxjdWxhdGVTdWJUZXh0KSkge1xuICAgICAgICAgICAgICBpZighdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5wcmVtaXVtRGV0YWlscygpPy5yZWNhbGN1bGF0ZVN1YlRleHRbJ2lzVmlzaWJsZSddKSkge1xuXG4gICAgICAgIHRoaXMucmVjYWxjdWxhdGVTdWJUZXh0T2JqWydpc1Zpc2libGUnXSA9dGhpcy5wcmVtaXVtRGV0YWlscygpLnJlY2FsY3VsYXRlU3ViVGV4dFsnaXNWaXNpYmxlJ10gO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgIH1cbiAgICAgIGlmKCF0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLnByZW1pdW1EZXRhaWxzKCk/LlByZW1pdW0pKSB7XG4gICAgICAgIC8vIENyZWF0ZSBuZXcgb2JqZWN0IHRvIHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvblxuICAgICAgICB0aGlzLmFubnVpdHlQcmVtaXVtID0ge1xuICAgICAgICAgIHRleHRWYWx1ZTogdGhpcy5wcmVtaXVtRGV0YWlscygpPy5QcmVtaXVtWyd0ZXh0VmFsdWUnXSxcbiAgICAgICAgICBzZWxlY3RWYWx1ZTogdGhpcy5wcmVtaXVtRGV0YWlscygpPy5QcmVtaXVtWydzZWxlY3RWYWx1ZSddLFxuICAgICAgICB9O1xuICAgICAgICBpZighdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5hbm51aXR5UHJlbWl1bVsndGV4dFZhbHVlJ10pICYmICF0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLmFubnVpdHlQcmVtaXVtWydzZWxlY3RWYWx1ZSddKSkge1xuICAgICAgICBjb25zdCBmcmVxID0gYCBwZXIgJHt0aGlzLmFubnVpdHlQcmVtaXVtWydzZWxlY3RWYWx1ZSddfWA7XG4gICAgICAgIHRoaXMuYW5udWl0eVByZW1pdW1PYmouY29uZmlnRGF0YS5udW1iZXJ0b3dvcmQgPSB0aGlzLnRyYW5zZm9ybSh0aGlzLmFubnVpdHlQcmVtaXVtWyd0ZXh0VmFsdWUnXSkrIGZyZXE7XG4gICAgICAgIH1cblxuICAgICAgICBpZihPYmplY3QuaGFzT3duKHRoaXMucHJlbWl1bURldGFpbHMoKT8uUHJlbWl1bSwgJ2lzRGlzYWJsZScpKSB7XG4gICAgICAgICAgdGhpcy5hbm51aXR5UHJlbWl1bU9ialsnaXNEaXNhYmxlJ10gPSB0aGlzLnByZW1pdW1EZXRhaWxzKCk/LlByZW1pdW1bJ2lzRGlzYWJsZSddO1xuICAgICAgICB9XG4gICAgICAgIGlmKE9iamVjdC5oYXNPd24odGhpcy5wcmVtaXVtRGV0YWlscygpPy5QcmVtaXVtLCAnaXNEaXNhYmxlRHJvcGRvd24nKSkge1xuICAgICAgICAgIHRoaXMuYW5udWl0eVByZW1pdW1PYmpbJ2NvbmZpZ0RhdGEnXVsnaXNEaXNhYmxlRHJvcGRvd24nXSA9IHRoaXMucHJlbWl1bURldGFpbHMoKT8uUHJlbWl1bVsnaXNEaXNhYmxlRHJvcGRvd24nXTtcbiAgICAgICAgfVxuICAgICAgICBpZihPYmplY3QuaGFzT3duKHRoaXMucHJlbWl1bURldGFpbHMoKT8uUHJlbWl1bSwgJ29wdGlvbnMnKSkge1xuICAgICAgICAgIHRoaXMuYW5udWl0eVByZW1pdW1PYmpbJ29wdGlvbnMnXSA9IHRoaXMucHJlbWl1bURldGFpbHMoKT8uUHJlbWl1bVsnb3B0aW9ucyddO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmKCF0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLnByZW1pdW1EZXRhaWxzKCk/LmFubnVpdHkpKSB7XG4gICAgICAgIC8vIENyZWF0ZSBuZXcgb2JqZWN0IHRvIHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvblxuICAgICAgICB0aGlzLm1pbnVtdW1Bbm51aXR5UGF5b3V0ID0ge1xuICAgICAgICAgIHRleHRWYWx1ZTogdGhpcy5wcmVtaXVtRGV0YWlscygpPy5hbm51aXR5Wyd0ZXh0VmFsdWUnXSxcbiAgICAgICAgICBzZWxlY3RWYWx1ZTogdGhpcy5wcmVtaXVtRGV0YWlscygpPy5hbm51aXR5WydzZWxlY3RWYWx1ZSddLFxuICAgICAgICB9O1xuICAgICAgICBpZighdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5taW51bXVtQW5udWl0eVBheW91dFsndGV4dFZhbHVlJ10pICYmICF0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLm1pbnVtdW1Bbm51aXR5UGF5b3V0WydzZWxlY3RWYWx1ZSddKSkge1xuICAgICAgICBjb25zdCBmcmVxID0gYCBwZXIgJHt0aGlzLm1pbnVtdW1Bbm51aXR5UGF5b3V0WydzZWxlY3RWYWx1ZSddfWA7XG4gICAgICAgIHRoaXMubWluaW11bUFubnVpdHlQYXlvdXRPYmouY29uZmlnRGF0YS5udW1iZXJ0b3dvcmQgPSB0aGlzLnRyYW5zZm9ybSh0aGlzLm1pbnVtdW1Bbm51aXR5UGF5b3V0Wyd0ZXh0VmFsdWUnXSkgKyBmcmVxO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYoT2JqZWN0Lmhhc093bih0aGlzLnByZW1pdW1EZXRhaWxzKCk/LmFubnVpdHksICdpc0Rpc2FibGUnKSkge1xuICAgICAgICAgIHRoaXMubWluaW11bUFubnVpdHlQYXlvdXRPYmpbJ2lzRGlzYWJsZSddID0gdGhpcy5wcmVtaXVtRGV0YWlscygpPy5hbm51aXR5Wydpc0Rpc2FibGUnXTtcbiAgICAgICAgfVxuICAgICAgICBpZihPYmplY3QuaGFzT3duKHRoaXMucHJlbWl1bURldGFpbHMoKT8uYW5udWl0eSwgJ2lzRGlzYWJsZURyb3Bkb3duJykpIHtcbiAgICAgICAgICB0aGlzLm1pbmltdW1Bbm51aXR5UGF5b3V0T2JqWydjb25maWdEYXRhJ11bJ2lzRGlzYWJsZURyb3Bkb3duJ10gPSB0aGlzLnByZW1pdW1EZXRhaWxzKCk/LmFubnVpdHlbJ2lzRGlzYWJsZURyb3Bkb3duJ107XG4gICAgICAgIH1cbiAgICAgICAgaWYoT2JqZWN0Lmhhc093bih0aGlzLnByZW1pdW1EZXRhaWxzKCk/LmFubnVpdHksICdvcHRpb25zJykpIHtcbiAgICAgICAgICB0aGlzLm1pbmltdW1Bbm51aXR5UGF5b3V0T2JqWydvcHRpb25zJ10gPSB0aGlzLnByZW1pdW1EZXRhaWxzKCk/LmFubnVpdHlbJ29wdGlvbnMnXTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZighdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5wcmVtaXVtRGV0YWlscygpPy5hbm51aXR5VGFibGVDYWxjdWxhdG9yKSkge1xuICAgICAgICAvLyBDcmVhdGUgbmV3IG9iamVjdCB0byB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb25cbiAgICAgICAgdGhpcy5hbm51aXR5VGFibGVDYWxjdWxhdG9yID0gdGhpcy5wcmVtaXVtRGV0YWlscygpPy5hbm51aXR5VGFibGVDYWxjdWxhdG9yO1xuICAgICAgfVxuXG4gICAgICBpZighdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5wcmVtaXVtRGV0YWlscygpPy5jYWxjdWxhdGVBbm51aXR5KSkge1xuXG4gICAgICAgIGlmKCF0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLnByZW1pdW1EZXRhaWxzKCk/LmNhbGN1bGF0ZUFubnVpdHlbJ2NvbnRyb2xTdHlsZSddKSkge1xuICAgICAgICAgIHRoaXMucmVjYWxjdWxhdGVCdXR0b25bJ2NvbnRyb2xTdHlsZSddID0gdGhpcy5wcmVtaXVtRGV0YWlscygpPy5jYWxjdWxhdGVBbm51aXR5Wydjb250cm9sU3R5bGUnXVxuICAgICAgICB9XG5cbiAgICAgICAgaWYoIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KHRoaXMucHJlbWl1bURldGFpbHMoKT8uY2FsY3VsYXRlQW5udWl0eVsnbGFiZWwnXSkpIHtcbiAgICAgICAgICB0aGlzLnJlY2FsY3VsYXRlQnV0dG9uWydsYWJlbCddID0gdGhpcy5wcmVtaXVtRGV0YWlscygpPy5jYWxjdWxhdGVBbm51aXR5WydsYWJlbCddXG4gICAgICAgIH1cbiAgICAgICAgaWYoIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KHRoaXMucHJlbWl1bURldGFpbHMoKT8uY2FsY3VsYXRlQW5udWl0eVsnaXNEaXNhYmxlJ10pKSB7XG4gICAgICAgICAgdGhpcy5yZWNhbGN1bGF0ZUJ1dHRvblsnaXNEaXNhYmxlJ10gPSB0aGlzLnByZW1pdW1EZXRhaWxzKCk/LmNhbGN1bGF0ZUFubnVpdHlbJ2lzRGlzYWJsZSddXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYoIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KHRoaXMucHJlbWl1bURldGFpbHMoKT8uZGlnaXRCb3NzU3dpdGNoKSkge1xuICAgICAgICB0aGlzLmRpZ2l0Qm9zc1N3aXRjaCA9IHRoaXMucHJlbWl1bURldGFpbHMoKT8uZGlnaXRCb3NzU3dpdGNoO1xuXG4gICAgICB9XG5cbiAgICAgIC8vZ3VyYW50ZWVkIEFubnVpdHkgb3B0aW9uc1xuXG4gICAgICBpZighdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5wcmVtaXVtRGV0YWlscygpPy5ndXJhbnRlZWRBbm51aXR5KSkge1xuICAgICAgICBpZighdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5wcmVtaXVtRGV0YWlscygpPy5ndXJhbnRlZWRBbm51aXR5WydvcHRpb25zJ10pKSB7XG4gICAgICAgICAgdGhpcy5ndXJhbnRlZWRhbm51aXR5T2JqWydvcHRpb25zJ10gPSB0aGlzLnByZW1pdW1EZXRhaWxzKCk/Lmd1cmFudGVlZEFubnVpdHlbJ29wdGlvbnMnXTtcbiAgICAgICAgfVxuICAgICAgICBpZighdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5wcmVtaXVtRGV0YWlscygpPy5ndXJhbnRlZWRBbm51aXR5Wydpc1Zpc2libGUnXSkpIHtcbiAgICAgICAgICB0aGlzLmd1cmFudGVlZGFubnVpdHlPYmpbJ2lzVmlzaWJsZSddID0gdGhpcy5wcmVtaXVtRGV0YWlscygpPy5ndXJhbnRlZWRBbm51aXR5Wydpc1Zpc2libGUnXTtcbiAgICAgICAgfVxuXG5cbiAgICAgIH1cblxuICAgICAgaWYoIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KHRoaXMucHJlbWl1bURldGFpbHMoKT8uZ2VuZXJhdGVTdW1tYXJ5KSkge1xuXG4gICAgICAgIGlmKCF0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLnByZW1pdW1EZXRhaWxzKCk/LmdlbmVyYXRlU3VtbWFyeVsnaXNWaXNpYmxlJ10pKSB7XG4gICAgICAgICAgdGhpcy5nZW5lcmF0ZVN1bW1hcnlPYmpbJ2lzVmlzaWJsZSddID0gdGhpcy5wcmVtaXVtRGV0YWlscygpPy5nZW5lcmF0ZVN1bW1hcnlbJ2lzVmlzaWJsZSddXG4gICAgICAgIH1cblxuICAgICAgICBpZighdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5wcmVtaXVtRGV0YWlscygpPy5nZW5lcmF0ZVN1bW1hcnlbJ2NvbnRyb2xTdHlsZSddKSkge1xuICAgICAgICAgIHRoaXMuZ2VuZXJhdGVTdW1tYXJ5T2JqWydjb250cm9sU3R5bGUnXSA9IHRoaXMucHJlbWl1bURldGFpbHMoKT8uZ2VuZXJhdGVTdW1tYXJ5Wydjb250cm9sU3R5bGUnXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmKCF0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLnByZW1pdW1EZXRhaWxzKCk/LmdlbmVyYXRlU3VtbWFyeVsnbGFiZWwnXSkpIHtcbiAgICAgICAgICB0aGlzLmdlbmVyYXRlU3VtbWFyeU9ialsnbGFiZWwnXSA9IHRoaXMucHJlbWl1bURldGFpbHMoKT8uZ2VuZXJhdGVTdW1tYXJ5WydsYWJlbCddO1xuICAgICAgICB9XG4gICAgICAgIGlmKCF0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLnByZW1pdW1EZXRhaWxzKCk/LmdlbmVyYXRlU3VtbWFyeVsnaXNEaXNhYmxlJ10pKSB7XG4gICAgICAgICAgdGhpcy5nZW5lcmF0ZVN1bW1hcnlPYmpbJ2lzRGlzYWJsZSddID0gdGhpcy5wcmVtaXVtRGV0YWlscygpPy5nZW5lcmF0ZVN1bW1hcnlbJ2lzRGlzYWJsZSddXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYoIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KHRoaXMucHJlbWl1bURldGFpbHMoKT8uYXV0b1BheU9wdGlvbikpIHtcblxuICAgICAgICBpZighdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5wcmVtaXVtRGV0YWlscygpPy5hdXRvUGF5T3B0aW9uWydpc1Zpc2libGUnXSkpIHtcbiAgICAgICAgICB0aGlzLmVuYWJsZUF1dG9EZWJpdE9ialsnaXNWaXNpYmxlJ10gPSB0aGlzLnByZW1pdW1EZXRhaWxzKCk/LmF1dG9QYXlPcHRpb25bJ2lzVmlzaWJsZSddO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYoIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KHRoaXMucHJlbWl1bURldGFpbHMoKT8uYXV0b1BheU9wdGlvblsnaXNWaXNpYmxlJ10pKSB7XG4gICAgICAgICAgdGhpcy5pc0VuYWJsZUF1dG9EZWJpdCA9IHRoaXMucHJlbWl1bURldGFpbHMoKT8uYXV0b1BheU9wdGlvblsnaXNFbmFibGVBdXRvRGViaXQnXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmKCF0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLnByZW1pdW1EZXRhaWxzKCk/LmF1dG9QYXlPcHRpb25bJ2lzRGlzYWJsZSddKSkge1xuICAgICAgICAgIHRoaXMuZW5hYmxlQXV0b0RlYml0T2JqWydpc0Rpc2FibGUnXSA9IHRoaXMucHJlbWl1bURldGFpbHMoKT8uYXV0b1BheU9wdGlvblsnaXNEaXNhYmxlJ107XG4gICAgICAgIH1cblxuICAgICAgfVxuXG5cbiAgICB9XG4gIH1cblxuICBjYWxjdWxhdGVCdXR0b25DbGlja2VkKCkge1xuICAgIHRoaXMudmFsaWRhdGlvbnMuaXNwcmVtaXVtRW50cnkgPSBmYWxzZTtcbiAgICBpZih0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLmFubnVpdHlQcmVtaXVtWyd0ZXh0VmFsdWUnXSkpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvbnMuaXNwcmVtaXVtRW50cnkgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLm9uQ2FsY3VhbHRlQnV0dG9uQ2xpY2suZW1pdCgpO1xuICB9XG5cbiAgZ2VuZXJhdGVTdW1tYXJ5Q2xpY2tlZCgpIHtcbiAgICB0aGlzLm9uR2VuZXJhdGVTdW1tYXJ5Q2xpY2suZW1pdCgpO1xuICB9XG5cbiAgb25Bbm51aXR5UHJlbWl1bVZhbHVlQ2hhbmdlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmFubnVpdHlQcmVtaXVtID0gdmFsdWU7XG4gIHRoaXMudmFsaWRhdGlvbnMuaXNwcmVtaXVtRW50cnkgPSBmYWxzZTtcbiAgICBpZih0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLmFubnVpdHlQcmVtaXVtWyd0ZXh0VmFsdWUnXSkpIHtcbiAgICB0aGlzLnZhbGlkYXRpb25zLmlzcHJlbWl1bUVudHJ5ID0gdHJ1ZTtcbiAgfVxuICAgIHRoaXMub25Bbm51aXR5UHJlbWl1bUNoYW5nZS5lbWl0KHZhbHVlKTtcblxuICAgIC8vY29udmVydCB0byB3b3Jkc1xuICAgIGlmKCF0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLmFubnVpdHlQcmVtaXVtWyd0ZXh0VmFsdWUnXSkgJiYgIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KHRoaXMuYW5udWl0eVByZW1pdW1bJ3NlbGVjdFZhbHVlJ10pKSB7XG4gICAgY29uc3QgZnJlcSA9YCBwZXIgJHt0aGlzLmFubnVpdHlQcmVtaXVtWydzZWxlY3RWYWx1ZSddfWA7XG4gICAgdGhpcy5hbm51aXR5UHJlbWl1bU9iai5jb25maWdEYXRhLm51bWJlcnRvd29yZCA9IHRoaXMudHJhbnNmb3JtKHRoaXMuYW5udWl0eVByZW1pdW1bJ3RleHRWYWx1ZSddKSArIGZyZXE7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgIHRoaXMuYW5udWl0eVByZW1pdW1PYmouY29uZmlnRGF0YS5udW1iZXJ0b3dvcmQgPSAnJztcbiAgICB9XG59XG4gIG9uTWluUHJlbWl1bVZhbHVlQ2hhbmdlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLm1pbnVtdW1Bbm51aXR5UGF5b3V0ID0gdmFsdWU7XG4gICAgdGhpcy5vbk1pbmltdW1QcmVtaXVtVmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgLy9jb252ZXJ0IHRvIHdvcmRzXG4gICAgaWYoIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KHRoaXMubWludW11bUFubnVpdHlQYXlvdXRbJ3RleHRWYWx1ZSddKSAmJiAhdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5taW51bXVtQW5udWl0eVBheW91dFsnc2VsZWN0VmFsdWUnXSkpIHtcbiAgICBjb25zdCBmcmVxID0gYCBwZXIgJHt0aGlzLm1pbnVtdW1Bbm51aXR5UGF5b3V0WydzZWxlY3RWYWx1ZSddfWA7XG4gICAgdGhpcy5taW5pbXVtQW5udWl0eVBheW91dE9iai5jb25maWdEYXRhLm51bWJlcnRvd29yZCA9IHRoaXMudHJhbnNmb3JtKHRoaXMubWludW11bUFubnVpdHlQYXlvdXRbJ3RleHRWYWx1ZSddKSArIGZyZXE7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgIHRoaXMubWluaW11bUFubnVpdHlQYXlvdXRPYmouY29uZmlnRGF0YS5udW1iZXJ0b3dvcmQgPSAnJztcbiAgICB9XG59XG5cbiAgb25FbmFibGVBdXRvRGViaXRWYWx1ZUNoYW5nZShldmVudCA6IGFueSkge1xuICAgIHRoaXMub25BdXRpb0RlYml0VmFsdWVDaGFuZ2UuZW1pdChldmVudCk7XG4gIH1cblxuICBvbkd1cmFudGVlZEFubnVpdHlDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMub25HdXJhbnRlZWRBbm51aXR5VmFsdWVDaGFuZ2UuZW1pdChldmVudCk7XG4gIH1cblxuICBhbm51YWxJbmNvbWVmb2N1c091dCgpIHtcbiAgICB0aGlzLnZhbGlkYXRpb25zLmlzcHJlbWl1bUVudHJ5ID0gZmFsc2U7XG4gICAgaWYodGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5hbm51aXR5UHJlbWl1bVsndGV4dFZhbHVlJ10pKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25zLmlzcHJlbWl1bUVudHJ5ID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBhID0gWycnLCAnT25lICcsICdUd28gJywgJ1RocmVlICcsICdGb3VyICcsICdGaXZlICcsICdTaXggJywgJ1NldmVuICcsICdFaWdodCAnLCAnTmluZSAnLCAnVGVuICcsICdFbGV2ZW4gJywgJ1R3ZWx2ZSAnLCAnVGhpcnRlZW4gJywgJ0ZvdXJ0ZWVuICcsICdGaWZ0ZWVuICcsICdTaXh0ZWVuICcsICdTZXZlbnRlZW4gJywgJ0VpZ2h0ZWVuICcsICdOaW5ldGVlbiAnXTtcbiAgYiA9IFsnJywgJycsICdUd2VudHknLCAnVGhpcnR5JywgJ0ZvdXJ0eScsICdGaWZ0eScsICdTaXh0eScsICdTZXZlbnR5JywgJ0VpZ2h0eScsICdOaW5ldHknXTtcblxuICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdmFsdWUgPSB0aGlzLm1hc3RlclNlcnZpY2UucmVtb3ZlQ29tYXNBbmRDdXJyZW5jeVN5bWJvbEZyb21OdW1iZXJWYWx1ZXModmFsdWUpO1xuICAgIGxldCBuID0gKCcwMDAwMDAwMDAnICsgdmFsdWUpLnN1YnN0cigtOSkubWF0Y2goL14oXFxkezJ9KShcXGR7Mn0pKFxcZHsyfSkoXFxkezF9KShcXGR7Mn0pJC8pO1xuICAgIGlmICghbikgcmV0dXJuICcnO1xuICAgIGxldCBzdHIgPSAnJztcbiAgICBzdHIgKz0gKE51bWJlcihuWzFdKSAhPSAwKSA/ICh0aGlzLmFbTnVtYmVyKG5bMV0pXSB8fCAodGhpcy5iW051bWJlcihuWzFdWzBdKV0gKyAnICcgKyB0aGlzLmFbTnVtYmVyKG5bMV1bMV0pXSkpICsgJ0Nyb3JlICcgOiAnJztcbiAgICBzdHIgKz0gKE51bWJlcihuWzJdKSAhPSAwKSA/ICh0aGlzLmFbTnVtYmVyKG5bMl0pXSB8fCAodGhpcy5iW051bWJlcihuWzJdWzBdKV0gKyAnICcgKyB0aGlzLmFbTnVtYmVyKG5bMl1bMV0pXSkpICsgJ0xha2ggJyA6ICcnO1xuICAgIHN0ciArPSAoTnVtYmVyKG5bM10pICE9IDApID8gKHRoaXMuYVtOdW1iZXIoblszXSldIHx8ICh0aGlzLmJbTnVtYmVyKG5bM11bMF0pXSArICcgJyArIHRoaXMuYVtOdW1iZXIoblszXVsxXSldKSkgKyAnVGhvdXNhbmQgJyA6ICcnO1xuICAgIHN0ciArPSAoTnVtYmVyKG5bNF0pICE9IDApID8gKHRoaXMuYVtOdW1iZXIobls0XSldIHx8ICh0aGlzLmJbTnVtYmVyKG5bNF1bMF0pXSArICcgJyArIHRoaXMuYVtOdW1iZXIobls0XVsxXSldKSkgKyAnSHVuZHJlZCAnIDogJyc7XG4gICAgc3RyICs9IChOdW1iZXIobls1XSkgIT0gMCkgPyAoKHN0ciAhPSAnJykgPyAnQW5kICcgOiAnJykgKyAodGhpcy5hW051bWJlcihuWzVdKV0gfHwgKHRoaXMuYltOdW1iZXIobls1XVswXSldICsgJyAnICsgdGhpcy5hW051bWJlcihuWzVdWzFdKV0pKSA6ICcnO1xuICAgIHN0ciA9IHN0ci50cmltKCk7XG4gICAgcmV0dXJuIHN0ciA/IHN0ciArICcgT25seScgOiAnJztcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNhcmQgcHgtM1wiIHN0eWxlPVwicGFkZGluZzogMTZweDtcIj5cbiAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgIDxoNCBjbGFzcz1cImNhcmQtbWFpbi10aXRsZVwiPjxzcGFuIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxMnB4O1wiPjxpbWdcbiAgICAgICAgICBzcmM9XCJodHRwczovL2Nkbi5nb2RpZ2l0LmNvbS9yZXRhaWwtbGlmZS9jYWxjdWxhdG9yLnN2Z1wiIGFsdD1cImFubnVpdHkgY2FsY3VsYXRvclwiPjwvc3Bhbj5IZXJlJ3MgWW91ciBQcmVtaXVtIHRvIEFubnVpdHkgQ2FsY3VsYXRvcjwvaDQ+XG4gIDwvZGl2PlxuICA8IS0tIDxkaXYgY2xhc3M9XCJyb3dcIj4gLS0+XG4gIDxkaXYgY2xhc3M9XCJjYXJkIHBiLTQgcHgtNFwiIHN0eWxlPVwiYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMHB4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4O1wiPlxuICAgIDwhLS0gPGRpdiBjbGFzcz1cImN1c3RvbS1ncmlkLXRlbXBsYXRlXCI+XG5cbiAgICA8L2Rpdj4gLS0+XG5cbiAgICA8ZGl2IGNsYXNzPVwicm93IG14LWF1dG9cIiBzdHlsZT1cInRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTU4JSk7XCI+XG4gICAgICA8bGliLXRvZ2dsZSBjbGFzcz1cImNvbC1hdXRvXCIgW2ZpZWxkXT1cImFubnVpdHlQcmVtaXVtVG9nZ2xlT2JqXCIgLz5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIDwvZGl2PiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiIGNvbC0xMlwiIHN0eWxlPVwiXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBkaXNwbGF5OiBmbGV4O1xuXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTUgY29sLWxnLTUgZC1mbGV4IGZsZXgtY29sdW1uIHAtMFwiPlxuICAgICAgICA8bGliLXNlbGVjdC10ZXh0Ym94IFtmaWVsZF09XCJhbm51aXR5UHJlbWl1bU9ialwiIFsobmdNb2RlbCldPVwiYW5udWl0eVByZW1pdW1cIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQW5udWl0eVByZW1pdW1WYWx1ZUNoYW5nZSgkZXZlbnQpXCIgLz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cInZhbGlkYXRpb25zLmlzcHJlbWl1bUVudHJ5XCI+XG4gICAgICAgICAgRW50ZXIgUHJlbWl1bVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFubnVpdHktbWF0LWhpbnRcIiAqbmdJZj1cImFubnVpdHlQcmVtaXVtT2JqPy5jb25maWdEYXRhPy5udW1iZXJ0b3dvcmRcIj57e2FubnVpdHlQcmVtaXVtT2JqPy5jb25maWdEYXRhPy5udW1iZXJ0b3dvcmR9fTwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxsaWItdG9nZ2xlIFtmaWVsZF09XCJlbmFibGVBdXRvRGViaXRPYmpcIiBbKG5nTW9kZWwpXT1cImlzRW5hYmxlQXV0b0RlYml0XCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uRW5hYmxlQXV0b0RlYml0VmFsdWVDaGFuZ2UoJGV2ZW50KVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTIgY29sLWxnLTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogZmxleC1lbmQ7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgNnB4KTsgcG9zaXRpb246IHJlbGF0aXZlOyBoZWlnaHQ6IGF1dG87IG1pbi1oZWlnaHQ6IDEwMCU7XCI+XG4gICAgICAgIDwhLS0gVG9wIGxpbmUgLS0+XG4gICAgICAgIDxkaXYgc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDUwJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB3aWR0aDogMXB4OyBoZWlnaHQ6IGNhbGMoNTAlICsgMjRweCk7IHRvcDogLTM3cHg7IGJhY2tncm91bmQ6IHJnYmEoMjIxLCAyMjEsIDIyMSwgMSk7IHBvaW50ZXItZXZlbnRzOiBub25lO1wiPjwvZGl2PlxuICAgICAgICA8IS0tIEJvdHRvbSBsaW5lIC0tPlxuICAgICAgICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiA1MCU7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgd2lkdGg6IDFweDsgaGVpZ2h0OiBjYWxjKDUwJSArIDI0cHgpOyBib3R0b206IC0zN3B4OyBiYWNrZ3JvdW5kOiByZ2JhKDIyMSwgMjIxLCAyMjEsIDEpOyBwb2ludGVyLWV2ZW50czogbm9uZTtcIj48L2Rpdj5cbiAgICAgICAgPGxpYi1pY29uLWJ1dHRvbiBbZmllbGRdPVwiaW50ZXJjaGFuZ2VCdXR0b25PYmpcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTUgY29sLWxnLTUgZC1mbGV4IGZsZXgtY29sdW1uIHAtMFwiPlxuICAgICAgICA8bGliLXNlbGVjdC10ZXh0Ym94IFtmaWVsZF09XCJtaW5pbXVtQW5udWl0eVBheW91dE9ialwiIFsobmdNb2RlbCldPVwibWludW11bUFubnVpdHlQYXlvdXRcIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uTWluUHJlbWl1bVZhbHVlQ2hhbmdlKCRldmVudClcIiAvPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYW5udWl0eS1tYXQtaGludFwiICpuZ0lmPVwibWluaW11bUFubnVpdHlQYXlvdXRPYmo/LmNvbmZpZ0RhdGE/Lm51bWJlcnRvd29yZFwiPnt7bWluaW11bUFubnVpdHlQYXlvdXRPYmo/LmNvbmZpZ0RhdGE/Lm51bWJlcnRvd29yZH19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaW5pdW0tYW5udWl0eSBtdC0zXCIgKm5nSWY9XCJndXJhbnRlZWRhbm51aXR5T2JqWydpc1Zpc2libGUnXVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbm51aXR5LW1zZyB3LTEwMCBweC0yIHB5LTFcIj5cbiAgICAgICAgICAgIFZhbHVlIGJhc2VkIG9uIGFzc3VtZWQgMTAlIGFubnVhbCBncm93dGggb2YgTmlmdHkgNTAgaW5kZXguXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIHB4LTIgcHktMVwiPlxuICAgICAgICAgICAgPGxpYi1yYWRpbyBbZmllbGRdPVwiZ3VyYW50ZWVkYW5udWl0eU9ialwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRHdXJhbnRlZWRBbm51aXR5XCJcbiAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25HdXJhbnRlZWRBbm51aXR5Q2hhbmdlKCRldmVudClcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbm51aXR5LW1zZy0xIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1ub3dyYXAgdy0xMDAgcHgtMiBweS0xXCI+XG4gICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vY2RuLmdvZGlnaXQuY29tL2RpZ2l0UGx1c0Fzc2V0cy9zdHJlYW1saW5lX2dyYXBoLWFycm93LWluY3JlYXNlLXJlbWl4LnBuZ1wiXG4gICAgICAgICAgICAgIHN0eWxlPVwibWF4LXdpZHRoOiAyNHB4O1wiIC8+XG4gICAgICAgICAgICA8c3Bhbj5Qb3RlbnRpYWwgZm9yIGhpZ2hlciByZXR1cm5zIGJ5IGxvd2VyaW5nIHRoZSBtaW5pbXVtIGd1YXJhbnRlZWQgYW5udWl0eSByYXRlLjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDwhLS0gPGRpdiBjbGFzcz1cInZlcnRpY2FsLWxpbmVcIj48L2Rpdj4gLS0+XG4gICAgPCEtLSA8ZGl2IGNsYXNzPVwiY3VzdG9tLWdyaWQtdGVtcGxhdGVcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxsaWItdG9nZ2xlIFtmaWVsZF09XCJlbmFibGVBdXRvRGViaXRPYmpcIiBbKG5nTW9kZWwpXT1cImlzRW5hYmxlQXV0b0RlYml0XCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkVuYWJsZUF1dG9EZWJpdFZhbHVlQ2hhbmdlKCRldmVudClcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+IC0tPlxuXG4gIDwvZGl2PlxuXG5cbiAgPGRpdiBjbGFzcz1cImNhcmQgcHktMyBtYi00IGJvcmRlci10b3AtMFwiIHN0eWxlPVwiYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMHB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4O1wiPlxuICAgIDxkaXYgY2xhc3M9XCJteC00XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGlnaXQtYm9zcy1iYW5uZXJcIiAqbmdJZj1cImRpZ2l0Qm9zc1N3aXRjaD8uaXNWaXNpYmxlXCI+XG4gICAgICAgIDxsaWItdG9nZ2xlIFtmaWVsZF09XCJkaWdpdEJvc3NUb2dnbGVDb25maWdcIiBbKG5nTW9kZWwpXT1cInRoaXMuZGlnaXRCb3NzU3dpdGNoLmlzU3dpdGNoT25cIiAobmdNb2RlbENoYW5nZSk9XCJvbkRpZ2l0Qm9zc1N3aXRjaENoYW5nZSgkZXZlbnQpXCI+PC9saWItdG9nZ2xlPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGlnaXQtYm9zcy10ZXh0XCI+XG4gICAgICAgICAge3t0aGlzLmRpZ2l0Qm9zc1N3aXRjaD8ucHJlZml4VGV4dH19XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJoaWdobGlnaHRcIj57e3RoaXMuZGlnaXRCb3NzU3dpdGNoPy5oaWdobGlnaHRUZXh0fX08L3NwYW4+XG4gICAgICAgICAge3t0aGlzLmRpZ2l0Qm9zc1N3aXRjaD8uc3ViVGV4dH19XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcnJvdy1pY29uXCI+4oaXPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGxpYi1idXR0b24gW2ZpZWxkXT1cInJlY2FsY3VsYXRlQnV0dG9uXCIgKGNsaWNrKT1cImNhbGN1bGF0ZUJ1dHRvbkNsaWNrZWQoKVwiIC8+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZCAgbWItMCBtdC0yXCJcbiAgICAgICAgc3R5bGU9XCJhbGlnbi1pdGVtczogY2VudGVyO2JvcmRlcjpub25lO2ZvbnQtc2l6ZTogOHB4O2ZvbnQtd2VpZ2h0OiA0MDA7Y29sb3I6cmdiYSg2OCwgNjgsIDY4LCAxKSBcIlxuICAgICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJteC00XCIgKm5nSWY9XCJyZWNhbGN1bGF0ZVN1YlRleHRPYmo/LmlzVmlzaWJsZVwiPjxpbWcgc3JjPVwiaHR0cHM6Ly9jZG4uZ29kaWdpdC5jb20vZGlnaXRQbHVzQXNzZXRzL0dyb3VwKzEwMTAxMDYzMzYucG5nXCJcbiAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDNweDtcIiAvPlxuICAgICAgICAgIDxzcGFuIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDZweDtcIj5FdmVyeSB0aW1lIHlvdSBtYWtlIGEgY2hhbmdlIGFib3ZlLCBwbGVhc2UgY2xpY2sgcmVjYWxjdWxhdGUuPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIHN0eWxlPVwiZGlzcGxheTogZmxleDthbGlnbi1pdGVtczogY2VudGVyO2p1c3RpZnktY29udGVudDogY2VudGVyO2JvcmRlcjpub25lO2ZvbnQtc2l6ZTogMTBweDtmb250LXdlaWdodDogNzAwO2hlaWdodDozMnB4O2JhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTAsIDIzNSwgMSk7Z2FwOiA4cHg7bWFyZ2luOiA0cHg7XCJcbiAgICAgICpuZ0lmPVwiYW5udWl0eVRhYmxlQ2FsY3VsYXRvcj8uaXNWaXNpYmxlXCI+XG4gICAgICA8aW1nIHNyYz1cImh0dHBzOi8vY2RuLmdvZGlnaXQuY29tL3JldGFpbC1saWZlL2NhbGN1bGF0b3Iuc3ZnXCIgLz5cbiAgICAgIE1pbmltdW0gR3VhcmFudGVlZCBQYXlvdXQoQSkgKyBWYXJpYWJsZSBQYXlvdXQoQikgPSBUb3RhbCBQYXlvdXQoQylcbiAgICA8L2Rpdj5cbiAgICA8IS0tIGFubnVpdHkgY2FsY3VsYXRvciB0YWJsZSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiYW5udWl0eS10YWJsZXMtbWFpbi1jb250YWluZXJcIiAqbmdJZj1cImFubnVpdHlUYWJsZUNhbGN1bGF0b3I/LmlzVmlzaWJsZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXJvdyBhbm51aXR5LXRhYmxlcy1jb250YWluZXJcIj5cbiAgICAgICAgPCEtLSBUYWJsZSAxIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYW5udWl0eS1jYWxjdWxhdG9yLXRhYmxlMVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkZXIgYW5udWl0eXRhYmxlMS1oZWFkZXJcIj5NaW5pbXVtIEd1YXJhbnRlZWQgQW5udWl0eSBQYXlvdXQoQSk8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtYm9keVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNlbGxcIj48c3BhbiBjbGFzcz1cInJ1cGVlLWljb25cIj7igrk8L3NwYW4+PHNwYW5cbiAgICAgICAgICAgICAgICBzdHlsZT1cImZvbnQtc2l6ZToxMnB4OyBjb2xvcjogcmdiYSg2OCwgNjgsIDY4LCAxKTtcIj5cbiAgICAgICAgICAgICAgICA8e3thbm51aXR5VGFibGVDYWxjdWxhdG9yLmFubnVpdHljYWxjdWxhdG9yVGFibGUxdmFsMX19PlxuICAgICAgICAgICAgICA8L3NwYW4+PC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYW5udWl0eXRhYmxlLWJ1dHRvblwiPnt7YW5udWl0eVRhYmxlQ2FsY3VsYXRvci5hbm51aXR5Y2FsY3VsYXRvclRhYmxlMXZhbDJ9fTwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwib3BlcmF0b3Itc3ltYm9sXCI+KzwvZGl2PlxuXG4gICAgICAgIDwhLS0gVGFibGUgMiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFubnVpdHktY2FsY3VsYXRvci10YWJsZTJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtaGVhZGVyIGFubnVpdHl0YWJsZTEtaGVhZGVyXCI+QXNzdW1lIGdyb3d0aCBvZiBCZW5jaE1hcmsgaW5kZXg8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtYm9keVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJvd1wiPiYjNjQ7e3thbm51aXR5VGFibGVDYWxjdWxhdG9yLmFubnVpdHljYWxjdWxhdG9yVGFibGUydmFsMX19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcm93XCI+JiM2NDt7e2FubnVpdHlUYWJsZUNhbGN1bGF0b3IuYW5udWl0eWNhbGN1bGF0b3JUYWJsZTJ2YWwyfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yb3dcIj4mIzY0O3t7YW5udWl0eVRhYmxlQ2FsY3VsYXRvci5hbm51aXR5Y2FsY3VsYXRvclRhYmxlMnZhbDN9fTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIFRhYmxlIDMgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbm51aXR5LWNhbGN1bGF0b3ItdGFibGUzXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRlciBhbm51aXR5dGFibGUxLWhlYWRlclwiPjFzdCBWYXJpYWJsZSBBbm51aXR5IFBheW91dChCKTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1ib2R5XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcm93XCI+PHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cInJ1cGVlLWljb25cIj7igrk8L3NwYW4+e3thbm51aXR5VGFibGVDYWxjdWxhdG9yLmFubnVpdHljYWxjdWxhdG9yVGFibGUzdmFsMX19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcm93XCI+PHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cInJ1cGVlLWljb25cIj7igrk8L3NwYW4+e3thbm51aXR5VGFibGVDYWxjdWxhdG9yLmFubnVpdHljYWxjdWxhdG9yVGFibGUzdmFsMn19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcm93XCI+PHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cInJ1cGVlLWljb25cIj7igrk8L3NwYW4+e3thbm51aXR5VGFibGVDYWxjdWxhdG9yLmFubnVpdHljYWxjdWxhdG9yVGFibGUzdmFsM319PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJvcGVyYXRvci1zeW1ib2xcIj49PC9kaXY+XG5cbiAgICAgICAgPCEtLSBUYWJsZSA0IC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYW5udWl0eS1jYWxjdWxhdG9yLXRhYmxlNFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkZXIgYW5udWl0eXRhYmxlNC1oZWFkZXJcIj4xc3QgVG90YWxQYXlvdXQvRnJlcXVlbmN5KEMpPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWJvZHlcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yb3cgYW5udWl0eXRhYmxlNC1iZ1wiPjxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJydXBlZS1pY29uXCI+4oK5PC9zcGFuPnt7YW5udWl0eVRhYmxlQ2FsY3VsYXRvci5hbm51aXR5Y2FsY3VsYXRvclRhYmxlNHZhbDF9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJvdyBhbm51aXR5dGFibGU0LWJnXCI+PHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cInJ1cGVlLWljb25cIj7igrk8L3NwYW4+e3thbm51aXR5VGFibGVDYWxjdWxhdG9yLmFubnVpdHljYWxjdWxhdG9yVGFibGU0dmFsMn19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcm93IGFubnVpdHl0YWJsZTQtYmdcIj48c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwicnVwZWUtaWNvblwiPuKCuTwvc3Bhbj57e2FubnVpdHlUYWJsZUNhbGN1bGF0b3IuYW5udWl0eWNhbGN1bGF0b3JUYWJsZTR2YWwzfX08L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJhbm51aXR5LWNhbGN1bGF0b3ItcGFyYWdyYXBoXCIgKm5nSWY9XCJhbm51aXR5VGFibGVDYWxjdWxhdG9yPy5pc1Zpc2libGVcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiYW5udWl0eS1jYWxjdWxhdG9yLXBhcmFncmFwaDFcIj5UaGlzIGlzIGFuIGFzc3VtZWQgZ3Jvd3RoIHBlcmNlbnRhZ2UgZm9yIHRoZSBpbmRleCBiYXNpcyB3aGljaCB0aGVcbiAgICAgICAgdmFsdWVzIGluIGNvbHVtbnMgQiBhbmQgQyBhcmUgY2FsY3VsYXRlZC48L3NwYW4+IEFjdHVhbCBncm93dGggd2lsbCBkZXBlbmQgb24gaW5kZXggcGVyZm9ybWFuY2UgYW5kIG1heSBhZmZlY3RcbiAgICAgIHlvdXIgdmFyaWFibGUgYW5udWl0eSBwYXlvdXQgYW5kIHRvdGFsIGFubnVpdHkgcGF5b3V0LlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cImdlbmVyYXRlU3VtbWFyeU9iai5pc1Zpc2libGVcIiBjbGFzcz1cImdlbmVyYXRlU3VtbWFyeVwiPlxuICAgICAgPGxpYi1idXR0b24gW2ZpZWxkXT1cImdlbmVyYXRlU3VtbWFyeU9ialwiIChjbGljayk9XCJnZW5lcmF0ZVN1bW1hcnlDbGlja2VkKClcIiAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiJdfQ==
|