@hitsoft/e-donusum 1.0.61 → 1.0.63
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/config/providers/auto-send-rule-doc-type-route.provider.d.ts +9 -0
- package/config/providers/auto-send-rule-route.provider.d.ts +9 -0
- package/config/providers/auto-send-rule-scenario-route.provider.d.ts +9 -0
- package/esm2020/config/e-donusum-config.module.mjs +8 -2
- package/esm2020/config/providers/auto-send-rule-doc-type-route.provider.mjs +19 -0
- package/esm2020/config/providers/auto-send-rule-route.provider.mjs +19 -0
- package/esm2020/config/providers/auto-send-rule-scenario-route.provider.mjs +19 -0
- package/esm2020/config/providers/hit-providers/route.provider.mjs +2 -1
- package/esm2020/config/providers/hit-providers/wizard-route.provider.mjs +3 -2
- package/esm2020/config/providers/paramse-dispatch-route.provider.mjs +1 -1
- package/esm2020/config/providers/paramse-invoice-route.provider.mjs +1 -1
- package/esm2020/lib/auto-send-rule-doc-types/auto-send-rule-doc-type/auto-send-rule-doc-type-routing.module.mjs +26 -0
- package/esm2020/lib/auto-send-rule-doc-types/auto-send-rule-doc-type/auto-send-rule-doc-type.module.mjs +52 -0
- package/esm2020/lib/auto-send-rule-doc-types/auto-send-rule-doc-type/components/auto-send-rule-doc-type.component.mjs +98 -0
- package/esm2020/lib/auto-send-rule-scenarios/auto-send-rule-scenario/auto-send-rule-scenario-routing.module.mjs +26 -0
- package/esm2020/lib/auto-send-rule-scenarios/auto-send-rule-scenario/auto-send-rule-scenario.module.mjs +52 -0
- package/esm2020/lib/auto-send-rule-scenarios/auto-send-rule-scenario/components/auto-send-rule-scenario.component.mjs +97 -0
- package/esm2020/lib/auto-send-rules/auto-send-rule/auto-send-rule-routing.module.mjs +26 -0
- package/esm2020/lib/auto-send-rules/auto-send-rule/auto-send-rule.module.mjs +52 -0
- package/esm2020/lib/auto-send-rules/auto-send-rule/components/auto-send-rule.component.mjs +106 -0
- package/esm2020/lib/components/hit-document-serial/hit-document-serial.component.mjs +5 -4
- package/esm2020/lib/components/hit-paramas-invoices/hit-params-invoice.component.mjs +6 -4
- package/esm2020/lib/components/hit-params-dispatches/hit-params-dispatch.component.mjs +6 -4
- package/esm2020/lib/document-serials/document-serial/components/document-serial.component.mjs +5 -4
- package/esm2020/lib/e-donusum-routing.module.mjs +11 -2
- package/esm2020/lib/paramse-dispatches/paramse-dispatch/components/paramse-dispatch.component.mjs +6 -4
- package/esm2020/lib/paramse-invoices/paramse-invoice/components/paramse-invoice.component.mjs +6 -4
- package/esm2020/lib/proxy/auto-send-rule-doc-types/auto-send-rule-doc-type.service.mjs +50 -0
- package/esm2020/lib/proxy/auto-send-rule-doc-types/models.mjs +2 -0
- package/esm2020/lib/proxy/auto-send-rule-scenarios/auto-send-rule-scenario.service.mjs +50 -0
- package/esm2020/lib/proxy/auto-send-rule-scenarios/models.mjs +2 -0
- package/esm2020/lib/proxy/auto-send-rules/auto-send-rule.service.mjs +50 -0
- package/esm2020/lib/proxy/auto-send-rules/models.mjs +2 -0
- package/esm2020/lib/proxy/document-serials/document-serial.service.mjs +2 -2
- package/esm2020/lib/proxy/document-serials/models.mjs +1 -1
- package/esm2020/lib/proxy/paramse-dispatches/models.mjs +1 -1
- package/esm2020/lib/proxy/paramse-dispatches/paramse-dispatch.service.mjs +2 -2
- package/esm2020/lib/proxy/paramse-invoices/models.mjs +1 -1
- package/esm2020/lib/proxy/paramse-invoices/paramse-invoice.service.mjs +2 -2
- package/fesm2015/hitsoft-e-donusum-config.mjs +171 -115
- package/fesm2015/hitsoft-e-donusum-config.mjs.map +1 -1
- package/fesm2015/hitsoft-e-donusum.mjs +739 -164
- package/fesm2015/hitsoft-e-donusum.mjs.map +1 -1
- package/fesm2020/hitsoft-e-donusum-config.mjs +171 -115
- package/fesm2020/hitsoft-e-donusum-config.mjs.map +1 -1
- package/fesm2020/hitsoft-e-donusum.mjs +757 -164
- package/fesm2020/hitsoft-e-donusum.mjs.map +1 -1
- package/lib/auto-send-rule-doc-types/auto-send-rule-doc-type/auto-send-rule-doc-type-routing.module.d.ts +7 -0
- package/lib/auto-send-rule-doc-types/auto-send-rule-doc-type/auto-send-rule-doc-type.module.d.ts +15 -0
- package/lib/auto-send-rule-doc-types/auto-send-rule-doc-type/components/auto-send-rule-doc-type.component.d.ts +33 -0
- package/lib/auto-send-rule-scenarios/auto-send-rule-scenario/auto-send-rule-scenario-routing.module.d.ts +7 -0
- package/lib/auto-send-rule-scenarios/auto-send-rule-scenario/auto-send-rule-scenario.module.d.ts +15 -0
- package/lib/auto-send-rule-scenarios/auto-send-rule-scenario/components/auto-send-rule-scenario.component.d.ts +33 -0
- package/lib/auto-send-rules/auto-send-rule/auto-send-rule-routing.module.d.ts +7 -0
- package/lib/auto-send-rules/auto-send-rule/auto-send-rule.module.d.ts +15 -0
- package/lib/auto-send-rules/auto-send-rule/components/auto-send-rule.component.d.ts +33 -0
- package/lib/proxy/auto-send-rule-doc-types/auto-send-rule-doc-type.service.d.ts +19 -0
- package/lib/proxy/auto-send-rule-doc-types/models.d.ts +26 -0
- package/lib/proxy/auto-send-rule-scenarios/auto-send-rule-scenario.service.d.ts +19 -0
- package/lib/proxy/auto-send-rule-scenarios/models.d.ts +26 -0
- package/lib/proxy/auto-send-rules/auto-send-rule.service.d.ts +19 -0
- package/lib/proxy/auto-send-rules/models.d.ts +56 -0
- package/lib/proxy/document-serials/models.d.ts +4 -0
- package/lib/proxy/paramse-dispatches/models.d.ts +8 -0
- package/lib/proxy/paramse-invoices/models.d.ts +8 -0
- package/package.json +1 -1
package/esm2020/lib/paramse-dispatches/paramse-dispatch/components/paramse-dispatch.component.mjs
CHANGED
|
@@ -46,7 +46,7 @@ export class ParamseDispatchComponent {
|
|
|
46
46
|
this.filters = {};
|
|
47
47
|
}
|
|
48
48
|
buildForm() {
|
|
49
|
-
const { defaultScenario, defaultDisType, defaultDisSerial, useDefScenario, useDefDisType, noPrice, inventoryTrAddress, receiverChannel, noRemainOrder, useSouWhoAdr, useCusStockCode, useBarcode, itemTreeOption, orderReferenceField, isShowBatchNSerial, } = this.selected || {};
|
|
49
|
+
const { defaultScenario, defaultDisType, defaultDisSerial, useDefScenario, useDefDisType, noPrice, inventoryTrAddress, receiverChannel, noRemainOrder, useSouWhoAdr, useCusStockCode, useBarcode, itemTreeOption, orderReferenceField, isShowBatchNSerial, isPartnerCatalogDesc, isPartnerCatalogNum, } = this.selected || {};
|
|
50
50
|
this.form = this.fb.group({
|
|
51
51
|
defaultScenario: [defaultScenario ?? null, []],
|
|
52
52
|
defaultDisType: [defaultDisType ?? null, []],
|
|
@@ -63,6 +63,8 @@ export class ParamseDispatchComponent {
|
|
|
63
63
|
itemTreeOption: [itemTreeOption ?? null, []],
|
|
64
64
|
orderReferenceField: [0, []],
|
|
65
65
|
isShowBatchNSerial: [false, []],
|
|
66
|
+
isPartnerCatalogDesc: [false, []],
|
|
67
|
+
isPartnerCatalogNum: [false, []],
|
|
66
68
|
});
|
|
67
69
|
}
|
|
68
70
|
hideForm() {
|
|
@@ -114,9 +116,9 @@ export class ParamseDispatchComponent {
|
|
|
114
116
|
}
|
|
115
117
|
}
|
|
116
118
|
ParamseDispatchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ParamseDispatchComponent, deps: [{ token: i1.ListService }, { token: i1.TrackByService }, { token: i2.ParamseDispatchService }, { token: i3.ConfirmationService }, { token: i4.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
117
|
-
ParamseDispatchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ParamseDispatchComponent, selector: "lib-paramse-dispatch", providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], ngImport: i0, template: "<abp-page [title]=\"'eDonusum::ParamseDispatches' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <button\r\n class=\"btn btn-primary btn-sm mx-2\"\r\n type=\"button\"\r\n [disabled]=\"isExportToExcelBusy\"\r\n (click)=\"exportToExcel()\"\r\n >\r\n {{ 'eDonusum::ExportToExcel' | abpLocalization }}\r\n </button>\r\n\r\n <button\r\n *abpPermission=\"'eDonusum.ParamseDispatches.Create'\"\r\n class=\"btn btn-primary btn-sm\"\r\n type=\"button\"\r\n (click)=\"create()\"\r\n >\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::NewParamseDispatch' | abpLocalization }}\r\n </button>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <abp-advanced-entity-filters localizationSourceName=\"eDonusum\" [list]=\"list\">\r\n <abp-advanced-entity-filters-form>\r\n <form #filterForm (keyup.enter)=\"list.get()\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minDefaultScenario\">\r\n {{ 'eDonusum::MinDefaultScenario' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minDefaultScenario\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultScenarioMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxDefaultScenario\">\r\n {{ 'eDonusum::MaxDefaultScenario' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxDefaultScenario\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultScenarioMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minDefaultDisType\">\r\n {{ 'eDonusum::MinDefaultDisType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minDefaultDisType\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultDisTypeMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxDefaultDisType\">\r\n {{ 'eDonusum::MaxDefaultDisType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxDefaultDisType\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultDisTypeMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"defaultDisSerialFilter\">\r\n {{ 'eDonusum::DefaultDisSerial' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"defaultDisSerialFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultDisSerial\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"useDefScenarioFilter\">\r\n {{ 'eDonusum::UseDefScenario' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"useDefScenario\"\r\n id=\"useDefScenarioFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.useDefScenario\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"useDefDisTypeFilter\">\r\n {{ 'eDonusum::UseDefDisType' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"useDefDisType\"\r\n id=\"useDefDisTypeFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.useDefDisType\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"noPriceFilter\">\r\n {{ 'eDonusum::NoPrice' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"noPrice\"\r\n id=\"noPriceFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.noPrice\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minInventoryTrAddress\">\r\n {{ 'eDonusum::MinInventoryTrAddress' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minInventoryTrAddress\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.inventoryTrAddressMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxInventoryTrAddress\">\r\n {{ 'eDonusum::MaxInventoryTrAddress' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxInventoryTrAddress\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.inventoryTrAddressMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"receiverChannelFilter\">\r\n {{ 'eDonusum::ReceiverChannel' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"receiverChannel\"\r\n id=\"receiverChannelFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.receiverChannel\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"noRemainOrderFilter\">\r\n {{ 'eDonusum::NoRemainOrder' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"noRemainOrder\"\r\n id=\"noRemainOrderFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.noRemainOrder\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"useSouWhoAdrFilter\">\r\n {{ 'eDonusum::UseSouWhoAdr' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"useSouWhoAdr\"\r\n id=\"useSouWhoAdrFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.useSouWhoAdr\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"useCusStockCodeFilter\">\r\n {{ 'eDonusum::UseCusStockCode' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"useCusStockCode\"\r\n id=\"useCusStockCodeFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.useCusStockCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"useBarcodeFilter\">\r\n {{ 'eDonusum::UseBarcode' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"useBarcode\"\r\n id=\"useBarcodeFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.useBarcode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minItemTreeOption\">\r\n {{ 'eDonusum::MinItemTreeOption' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minItemTreeOption\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.itemTreeOptionMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxItemTreeOption\">\r\n {{ 'eDonusum::MaxItemTreeOption' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxItemTreeOption\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.itemTreeOptionMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minOrderReferenceField\">\r\n {{ 'eDonusum::MinOrderReferenceField' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minOrderReferenceField\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.orderReferenceFieldMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxOrderReferenceField\">\r\n {{ 'eDonusum::MaxOrderReferenceField' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxOrderReferenceField\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.orderReferenceFieldMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"isShowBatchNSerialFilter\">\r\n {{ 'eDonusum::IsShowBatchNSerial' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"isShowBatchNSerial\"\r\n id=\"isShowBatchNSerialFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.isShowBatchNSerial\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto align-self-end mb-3\">\r\n <div class=\"row\">\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"clearFilters()\">\r\n <span>{{ 'AbpUi::Clear' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"list.get()\">\r\n <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </abp-advanced-entity-filters-form>\r\n </abp-advanced-entity-filters>\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <ngx-datatable [rows]=\"data.items\" [count]=\"data.totalCount\" [list]=\"list\" default>\r\n <ngx-datatable-column\r\n [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n [maxWidth]=\"150\"\r\n [width]=\"150\"\r\n [sortable]=\"false\"\r\n >\r\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button\r\n class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n ngbDropdownToggle\r\n >\r\n <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n\r\n <div ngbDropdownMenu>\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'eDonusum.ParamseDispatches.Edit'\"\r\n (click)=\"update(row)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'eDonusum.ParamseDispatches.Delete'\"\r\n (click)=\"delete(row)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::DefaultScenario' | abpLocalization }}\"\r\n prop=\"defaultScenario\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.defaultScenario }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::DefaultDisType' | abpLocalization }}\"\r\n prop=\"defaultDisType\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.defaultDisType }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::DefaultDisSerial' | abpLocalization }}\"\r\n prop=\"defaultDisSerial\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.defaultDisSerial }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::UseDefScenario' | abpLocalization }}\"\r\n prop=\"useDefScenario\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.useDefScenario\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::UseDefDisType' | abpLocalization }}\"\r\n prop=\"useDefDisType\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.useDefDisType\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'eDonusum::NoPrice' | abpLocalization }}\" prop=\"noPrice\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.noPrice\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::InventoryTrAddress' | abpLocalization }}\"\r\n prop=\"inventoryTrAddress\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.inventoryTrAddress }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ReceiverChannel' | abpLocalization }}\"\r\n prop=\"receiverChannel\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template\r\n [ngIf]=\"row.receiverChannel\"\r\n [ngIfThen]=\"yes\"\r\n [ngIfElse]=\"no\"\r\n ></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::NoRemainOrder' | abpLocalization }}\"\r\n prop=\"noRemainOrder\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.noRemainOrder\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::UseSouWhoAdr' | abpLocalization }}\"\r\n prop=\"useSouWhoAdr\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.useSouWhoAdr\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::UseCusStockCode' | abpLocalization }}\"\r\n prop=\"useCusStockCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template\r\n [ngIf]=\"row.useCusStockCode\"\r\n [ngIfThen]=\"yes\"\r\n [ngIfElse]=\"no\"\r\n ></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::UseBarcode' | abpLocalization }}\"\r\n prop=\"useBarcode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.useBarcode\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ItemTreeOption' | abpLocalization }}\"\r\n prop=\"itemTreeOption\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.itemTreeOption }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::OrderReferenceField' | abpLocalization }}\"\r\n prop=\"orderReferenceField\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.orderReferenceField }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::IsShowBatchNSerial' | abpLocalization }}\"\r\n prop=\"isShowBatchNSerial\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template\r\n [ngIf]=\"row.isShowBatchNSerial\"\r\n [ngIfThen]=\"yes\"\r\n [ngIfElse]=\"no\"\r\n ></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [busy]=\"isModalBusy\" [(visible)]=\"isModalOpen\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ (selected ? 'AbpUi::Edit' : 'eDonusum::NewParamseDispatch') | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"paramse-dispatch\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paramse-dispatch-default-scenario\">\r\n {{ 'eDonusum::DefaultScenario' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"paramse-dispatch-default-scenario\"\r\n formControlName=\"defaultScenario\"\r\n class=\"form-control\"\r\n autofocus\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paramse-dispatch-default-dis-type\">\r\n {{ 'eDonusum::DefaultDisType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"paramse-dispatch-default-dis-type\"\r\n formControlName=\"defaultDisType\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paramse-dispatch-default-dis-serial\">\r\n {{ 'eDonusum::DefaultDisSerial' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"paramse-dispatch-default-dis-serial\"\r\n formControlName=\"defaultDisSerial\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-use-def-scenario\"\r\n formControlName=\"useDefScenario\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-use-def-scenario\" class=\"form-check-label\">\r\n {{ 'eDonusum::UseDefScenario' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-use-def-dis-type\"\r\n formControlName=\"useDefDisType\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-use-def-dis-type\" class=\"form-check-label\">\r\n {{ 'eDonusum::UseDefDisType' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-no-price\"\r\n formControlName=\"noPrice\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-no-price\" class=\"form-check-label\">\r\n {{ 'eDonusum::NoPrice' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paramse-dispatch-inventory-tr-address\">\r\n {{ 'eDonusum::InventoryTrAddress' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"paramse-dispatch-inventory-tr-address\"\r\n formControlName=\"inventoryTrAddress\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-receiver-channel\"\r\n formControlName=\"receiverChannel\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-receiver-channel\" class=\"form-check-label\">\r\n {{ 'eDonusum::ReceiverChannel' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-no-remain-order\"\r\n formControlName=\"noRemainOrder\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-no-remain-order\" class=\"form-check-label\">\r\n {{ 'eDonusum::NoRemainOrder' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-use-sou-who-adr\"\r\n formControlName=\"useSouWhoAdr\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-use-sou-who-adr\" class=\"form-check-label\">\r\n {{ 'eDonusum::UseSouWhoAdr' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-use-cus-stock-code\"\r\n formControlName=\"useCusStockCode\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-use-cus-stock-code\" class=\"form-check-label\">\r\n {{ 'eDonusum::UseCusStockCode' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-use-barcode\"\r\n formControlName=\"useBarcode\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-use-barcode\" class=\"form-check-label\">\r\n {{ 'eDonusum::UseBarcode' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paramse-dispatch-item-tree-option\">\r\n {{ 'eDonusum::ItemTreeOption' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"paramse-dispatch-item-tree-option\"\r\n formControlName=\"itemTreeOption\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paramse-dispatch-order-reference-field\">\r\n {{ 'eDonusum::OrderReferenceField' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"paramse-dispatch-order-reference-field\"\r\n formControlName=\"orderReferenceField\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-is-show-batch-nserial\"\r\n formControlName=\"isShowBatchNSerial\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-is-show-batch-nserial\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsShowBatchNSerial' | abpLocalization }}\r\n </label>\r\n </div>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"paramse-dispatch\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }, { kind: "directive", type: i1.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i6.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i6.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i6.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "component", type: i3.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i3.NgxDatatableDefaultDirective, selector: "ngx-datatable[default]", inputs: ["class"], exportAs: ["ngxDatatableDefault"] }, { kind: "directive", type: i3.NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { kind: "directive", type: i3.ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: i7.AdvancedEntityFiltersComponent, selector: "abp-advanced-entity-filters", inputs: ["list", "localizationSourceName", "entityFilterPlaceholder"] }, { kind: "component", type: i7.AdvancedEntityFiltersFormComponent, selector: "abp-advanced-entity-filters-form" }, { kind: "directive", type: i8.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i8.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "directive", type: i9.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i9.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i9.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i9.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i10.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i10.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.Default });
|
|
119
|
+
ParamseDispatchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ParamseDispatchComponent, selector: "lib-paramse-dispatch", providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], ngImport: i0, template: "<abp-page [title]=\"'eDonusum::ParamseDispatches' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <button\r\n class=\"btn btn-primary btn-sm mx-2\"\r\n type=\"button\"\r\n [disabled]=\"isExportToExcelBusy\"\r\n (click)=\"exportToExcel()\"\r\n >\r\n {{ 'eDonusum::ExportToExcel' | abpLocalization }}\r\n </button>\r\n\r\n <button\r\n *abpPermission=\"'eDonusum.ParamseDispatches.Create'\"\r\n class=\"btn btn-primary btn-sm\"\r\n type=\"button\"\r\n (click)=\"create()\"\r\n >\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::NewParamseDispatch' | abpLocalization }}\r\n </button>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <abp-advanced-entity-filters localizationSourceName=\"eDonusum\" [list]=\"list\">\r\n <abp-advanced-entity-filters-form>\r\n <form #filterForm (keyup.enter)=\"list.get()\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minDefaultScenario\">\r\n {{ 'eDonusum::MinDefaultScenario' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minDefaultScenario\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultScenarioMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxDefaultScenario\">\r\n {{ 'eDonusum::MaxDefaultScenario' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxDefaultScenario\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultScenarioMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minDefaultDisType\">\r\n {{ 'eDonusum::MinDefaultDisType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minDefaultDisType\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultDisTypeMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxDefaultDisType\">\r\n {{ 'eDonusum::MaxDefaultDisType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxDefaultDisType\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultDisTypeMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"defaultDisSerialFilter\">\r\n {{ 'eDonusum::DefaultDisSerial' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"defaultDisSerialFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultDisSerial\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"useDefScenarioFilter\">\r\n {{ 'eDonusum::UseDefScenario' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"useDefScenario\"\r\n id=\"useDefScenarioFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.useDefScenario\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"useDefDisTypeFilter\">\r\n {{ 'eDonusum::UseDefDisType' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"useDefDisType\"\r\n id=\"useDefDisTypeFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.useDefDisType\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"noPriceFilter\">\r\n {{ 'eDonusum::NoPrice' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"noPrice\"\r\n id=\"noPriceFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.noPrice\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minInventoryTrAddress\">\r\n {{ 'eDonusum::MinInventoryTrAddress' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minInventoryTrAddress\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.inventoryTrAddressMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxInventoryTrAddress\">\r\n {{ 'eDonusum::MaxInventoryTrAddress' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxInventoryTrAddress\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.inventoryTrAddressMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"receiverChannelFilter\">\r\n {{ 'eDonusum::ReceiverChannel' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"receiverChannel\"\r\n id=\"receiverChannelFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.receiverChannel\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"noRemainOrderFilter\">\r\n {{ 'eDonusum::NoRemainOrder' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"noRemainOrder\"\r\n id=\"noRemainOrderFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.noRemainOrder\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"useSouWhoAdrFilter\">\r\n {{ 'eDonusum::UseSouWhoAdr' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"useSouWhoAdr\"\r\n id=\"useSouWhoAdrFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.useSouWhoAdr\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"useCusStockCodeFilter\">\r\n {{ 'eDonusum::UseCusStockCode' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"useCusStockCode\"\r\n id=\"useCusStockCodeFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.useCusStockCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"useBarcodeFilter\">\r\n {{ 'eDonusum::UseBarcode' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"useBarcode\"\r\n id=\"useBarcodeFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.useBarcode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minItemTreeOption\">\r\n {{ 'eDonusum::MinItemTreeOption' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minItemTreeOption\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.itemTreeOptionMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxItemTreeOption\">\r\n {{ 'eDonusum::MaxItemTreeOption' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxItemTreeOption\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.itemTreeOptionMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minOrderReferenceField\">\r\n {{ 'eDonusum::MinOrderReferenceField' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minOrderReferenceField\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.orderReferenceFieldMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxOrderReferenceField\">\r\n {{ 'eDonusum::MaxOrderReferenceField' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxOrderReferenceField\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.orderReferenceFieldMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"isShowBatchNSerialFilter\">\r\n {{ 'eDonusum::IsShowBatchNSerial' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"isShowBatchNSerial\"\r\n id=\"isShowBatchNSerialFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.isShowBatchNSerial\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"isPartnerCatalogDescFilter\">\r\n {{ 'eDonusum::IsPartnerCatalogDesc' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"isPartnerCatalogDesc\"\r\n id=\"isPartnerCatalogDescFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.isPartnerCatalogDesc\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"isPartnerCatalogNumFilter\">\r\n {{ 'eDonusum::IsPartnerCatalogNum' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"isPartnerCatalogNum\"\r\n id=\"isPartnerCatalogNumFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.isPartnerCatalogNum\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto align-self-end mb-3\">\r\n <div class=\"row\">\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"clearFilters()\">\r\n <span>{{ 'AbpUi::Clear' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"list.get()\">\r\n <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </abp-advanced-entity-filters-form>\r\n </abp-advanced-entity-filters>\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <ngx-datatable [rows]=\"data.items\" [count]=\"data.totalCount\" [list]=\"list\" default>\r\n <ngx-datatable-column\r\n [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n [maxWidth]=\"150\"\r\n [width]=\"150\"\r\n [sortable]=\"false\"\r\n >\r\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button\r\n class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n ngbDropdownToggle\r\n >\r\n <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n\r\n <div ngbDropdownMenu>\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'eDonusum.ParamseDispatches.Edit'\"\r\n (click)=\"update(row)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'eDonusum.ParamseDispatches.Delete'\"\r\n (click)=\"delete(row)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::DefaultScenario' | abpLocalization }}\"\r\n prop=\"defaultScenario\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.defaultScenario }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::DefaultDisType' | abpLocalization }}\"\r\n prop=\"defaultDisType\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.defaultDisType }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::DefaultDisSerial' | abpLocalization }}\"\r\n prop=\"defaultDisSerial\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.defaultDisSerial }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::UseDefScenario' | abpLocalization }}\"\r\n prop=\"useDefScenario\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.useDefScenario\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::UseDefDisType' | abpLocalization }}\"\r\n prop=\"useDefDisType\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.useDefDisType\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'eDonusum::NoPrice' | abpLocalization }}\" prop=\"noPrice\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.noPrice\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::InventoryTrAddress' | abpLocalization }}\"\r\n prop=\"inventoryTrAddress\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.inventoryTrAddress }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ReceiverChannel' | abpLocalization }}\"\r\n prop=\"receiverChannel\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template\r\n [ngIf]=\"row.receiverChannel\"\r\n [ngIfThen]=\"yes\"\r\n [ngIfElse]=\"no\"\r\n ></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::NoRemainOrder' | abpLocalization }}\"\r\n prop=\"noRemainOrder\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.noRemainOrder\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::UseSouWhoAdr' | abpLocalization }}\"\r\n prop=\"useSouWhoAdr\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.useSouWhoAdr\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::UseCusStockCode' | abpLocalization }}\"\r\n prop=\"useCusStockCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template\r\n [ngIf]=\"row.useCusStockCode\"\r\n [ngIfThen]=\"yes\"\r\n [ngIfElse]=\"no\"\r\n ></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::UseBarcode' | abpLocalization }}\"\r\n prop=\"useBarcode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.useBarcode\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ItemTreeOption' | abpLocalization }}\"\r\n prop=\"itemTreeOption\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.itemTreeOption }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::OrderReferenceField' | abpLocalization }}\"\r\n prop=\"orderReferenceField\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.orderReferenceField }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::IsShowBatchNSerial' | abpLocalization }}\"\r\n prop=\"isShowBatchNSerial\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template\r\n [ngIf]=\"row.isShowBatchNSerial\"\r\n [ngIfThen]=\"yes\"\r\n [ngIfElse]=\"no\"\r\n ></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::IsPartnerCatalogDesc' | abpLocalization }}\"\r\n prop=\"isPartnerCatalogDesc\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template\r\n [ngIf]=\"row.isPartnerCatalogDesc\"\r\n [ngIfThen]=\"yes\"\r\n [ngIfElse]=\"no\"\r\n ></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::IsPartnerCatalogNum' | abpLocalization }}\"\r\n prop=\"isPartnerCatalogNum\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template\r\n [ngIf]=\"row.isPartnerCatalogNum\"\r\n [ngIfThen]=\"yes\"\r\n [ngIfElse]=\"no\"\r\n ></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [busy]=\"isModalBusy\" [(visible)]=\"isModalOpen\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ (selected ? 'AbpUi::Edit' : 'eDonusum::NewParamseDispatch') | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"paramse-dispatch\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paramse-dispatch-default-scenario\">\r\n {{ 'eDonusum::DefaultScenario' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"paramse-dispatch-default-scenario\"\r\n formControlName=\"defaultScenario\"\r\n class=\"form-control\"\r\n autofocus\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paramse-dispatch-default-dis-type\">\r\n {{ 'eDonusum::DefaultDisType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"paramse-dispatch-default-dis-type\"\r\n formControlName=\"defaultDisType\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paramse-dispatch-default-dis-serial\">\r\n {{ 'eDonusum::DefaultDisSerial' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"paramse-dispatch-default-dis-serial\"\r\n formControlName=\"defaultDisSerial\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-use-def-scenario\"\r\n formControlName=\"useDefScenario\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-use-def-scenario\" class=\"form-check-label\">\r\n {{ 'eDonusum::UseDefScenario' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-use-def-dis-type\"\r\n formControlName=\"useDefDisType\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-use-def-dis-type\" class=\"form-check-label\">\r\n {{ 'eDonusum::UseDefDisType' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-no-price\"\r\n formControlName=\"noPrice\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-no-price\" class=\"form-check-label\">\r\n {{ 'eDonusum::NoPrice' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paramse-dispatch-inventory-tr-address\">\r\n {{ 'eDonusum::InventoryTrAddress' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"paramse-dispatch-inventory-tr-address\"\r\n formControlName=\"inventoryTrAddress\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-receiver-channel\"\r\n formControlName=\"receiverChannel\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-receiver-channel\" class=\"form-check-label\">\r\n {{ 'eDonusum::ReceiverChannel' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-no-remain-order\"\r\n formControlName=\"noRemainOrder\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-no-remain-order\" class=\"form-check-label\">\r\n {{ 'eDonusum::NoRemainOrder' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-use-sou-who-adr\"\r\n formControlName=\"useSouWhoAdr\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-use-sou-who-adr\" class=\"form-check-label\">\r\n {{ 'eDonusum::UseSouWhoAdr' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-use-cus-stock-code\"\r\n formControlName=\"useCusStockCode\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-use-cus-stock-code\" class=\"form-check-label\">\r\n {{ 'eDonusum::UseCusStockCode' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-use-barcode\"\r\n formControlName=\"useBarcode\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-use-barcode\" class=\"form-check-label\">\r\n {{ 'eDonusum::UseBarcode' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paramse-dispatch-item-tree-option\">\r\n {{ 'eDonusum::ItemTreeOption' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"paramse-dispatch-item-tree-option\"\r\n formControlName=\"itemTreeOption\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paramse-dispatch-order-reference-field\">\r\n {{ 'eDonusum::OrderReferenceField' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"paramse-dispatch-order-reference-field\"\r\n formControlName=\"orderReferenceField\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-is-show-batch-nserial\"\r\n formControlName=\"isShowBatchNSerial\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-is-show-batch-nserial\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsShowBatchNSerial' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-is-partner-catalog-desc\"\r\n formControlName=\"isPartnerCatalogDesc\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-is-partner-catalog-desc\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsPartnerCatalogDesc' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-is-partner-catalog-num\"\r\n formControlName=\"isPartnerCatalogNum\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-is-partner-catalog-num\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsPartnerCatalogNum' | abpLocalization }}\r\n </label>\r\n </div>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"paramse-dispatch\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }, { kind: "directive", type: i1.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i6.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i6.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i6.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "component", type: i3.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i3.NgxDatatableDefaultDirective, selector: "ngx-datatable[default]", inputs: ["class"], exportAs: ["ngxDatatableDefault"] }, { kind: "directive", type: i3.NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { kind: "directive", type: i3.ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: i7.AdvancedEntityFiltersComponent, selector: "abp-advanced-entity-filters", inputs: ["list", "localizationSourceName", "entityFilterPlaceholder"] }, { kind: "component", type: i7.AdvancedEntityFiltersFormComponent, selector: "abp-advanced-entity-filters-form" }, { kind: "directive", type: i8.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i8.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "directive", type: i9.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i9.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i9.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i9.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i10.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i10.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.Default });
|
|
118
120
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ParamseDispatchComponent, decorators: [{
|
|
119
121
|
type: Component,
|
|
120
|
-
args: [{ selector: 'lib-paramse-dispatch', changeDetection: ChangeDetectionStrategy.Default, providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], template: "<abp-page [title]=\"'eDonusum::ParamseDispatches' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <button\r\n class=\"btn btn-primary btn-sm mx-2\"\r\n type=\"button\"\r\n [disabled]=\"isExportToExcelBusy\"\r\n (click)=\"exportToExcel()\"\r\n >\r\n {{ 'eDonusum::ExportToExcel' | abpLocalization }}\r\n </button>\r\n\r\n <button\r\n *abpPermission=\"'eDonusum.ParamseDispatches.Create'\"\r\n class=\"btn btn-primary btn-sm\"\r\n type=\"button\"\r\n (click)=\"create()\"\r\n >\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::NewParamseDispatch' | abpLocalization }}\r\n </button>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <abp-advanced-entity-filters localizationSourceName=\"eDonusum\" [list]=\"list\">\r\n <abp-advanced-entity-filters-form>\r\n <form #filterForm (keyup.enter)=\"list.get()\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minDefaultScenario\">\r\n {{ 'eDonusum::MinDefaultScenario' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minDefaultScenario\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultScenarioMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxDefaultScenario\">\r\n {{ 'eDonusum::MaxDefaultScenario' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxDefaultScenario\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultScenarioMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minDefaultDisType\">\r\n {{ 'eDonusum::MinDefaultDisType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minDefaultDisType\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultDisTypeMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxDefaultDisType\">\r\n {{ 'eDonusum::MaxDefaultDisType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxDefaultDisType\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultDisTypeMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"defaultDisSerialFilter\">\r\n {{ 'eDonusum::DefaultDisSerial' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"defaultDisSerialFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultDisSerial\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"useDefScenarioFilter\">\r\n {{ 'eDonusum::UseDefScenario' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"useDefScenario\"\r\n id=\"useDefScenarioFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.useDefScenario\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"useDefDisTypeFilter\">\r\n {{ 'eDonusum::UseDefDisType' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"useDefDisType\"\r\n id=\"useDefDisTypeFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.useDefDisType\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"noPriceFilter\">\r\n {{ 'eDonusum::NoPrice' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"noPrice\"\r\n id=\"noPriceFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.noPrice\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minInventoryTrAddress\">\r\n {{ 'eDonusum::MinInventoryTrAddress' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minInventoryTrAddress\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.inventoryTrAddressMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxInventoryTrAddress\">\r\n {{ 'eDonusum::MaxInventoryTrAddress' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxInventoryTrAddress\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.inventoryTrAddressMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"receiverChannelFilter\">\r\n {{ 'eDonusum::ReceiverChannel' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"receiverChannel\"\r\n id=\"receiverChannelFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.receiverChannel\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"noRemainOrderFilter\">\r\n {{ 'eDonusum::NoRemainOrder' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"noRemainOrder\"\r\n id=\"noRemainOrderFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.noRemainOrder\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"useSouWhoAdrFilter\">\r\n {{ 'eDonusum::UseSouWhoAdr' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"useSouWhoAdr\"\r\n id=\"useSouWhoAdrFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.useSouWhoAdr\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"useCusStockCodeFilter\">\r\n {{ 'eDonusum::UseCusStockCode' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"useCusStockCode\"\r\n id=\"useCusStockCodeFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.useCusStockCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"useBarcodeFilter\">\r\n {{ 'eDonusum::UseBarcode' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"useBarcode\"\r\n id=\"useBarcodeFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.useBarcode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minItemTreeOption\">\r\n {{ 'eDonusum::MinItemTreeOption' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minItemTreeOption\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.itemTreeOptionMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxItemTreeOption\">\r\n {{ 'eDonusum::MaxItemTreeOption' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxItemTreeOption\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.itemTreeOptionMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minOrderReferenceField\">\r\n {{ 'eDonusum::MinOrderReferenceField' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minOrderReferenceField\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.orderReferenceFieldMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxOrderReferenceField\">\r\n {{ 'eDonusum::MaxOrderReferenceField' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxOrderReferenceField\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.orderReferenceFieldMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"isShowBatchNSerialFilter\">\r\n {{ 'eDonusum::IsShowBatchNSerial' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"isShowBatchNSerial\"\r\n id=\"isShowBatchNSerialFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.isShowBatchNSerial\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto align-self-end mb-3\">\r\n <div class=\"row\">\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"clearFilters()\">\r\n <span>{{ 'AbpUi::Clear' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"list.get()\">\r\n <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </abp-advanced-entity-filters-form>\r\n </abp-advanced-entity-filters>\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <ngx-datatable [rows]=\"data.items\" [count]=\"data.totalCount\" [list]=\"list\" default>\r\n <ngx-datatable-column\r\n [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n [maxWidth]=\"150\"\r\n [width]=\"150\"\r\n [sortable]=\"false\"\r\n >\r\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button\r\n class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n ngbDropdownToggle\r\n >\r\n <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n\r\n <div ngbDropdownMenu>\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'eDonusum.ParamseDispatches.Edit'\"\r\n (click)=\"update(row)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'eDonusum.ParamseDispatches.Delete'\"\r\n (click)=\"delete(row)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::DefaultScenario' | abpLocalization }}\"\r\n prop=\"defaultScenario\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.defaultScenario }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::DefaultDisType' | abpLocalization }}\"\r\n prop=\"defaultDisType\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.defaultDisType }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::DefaultDisSerial' | abpLocalization }}\"\r\n prop=\"defaultDisSerial\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.defaultDisSerial }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::UseDefScenario' | abpLocalization }}\"\r\n prop=\"useDefScenario\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.useDefScenario\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::UseDefDisType' | abpLocalization }}\"\r\n prop=\"useDefDisType\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.useDefDisType\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'eDonusum::NoPrice' | abpLocalization }}\" prop=\"noPrice\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.noPrice\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::InventoryTrAddress' | abpLocalization }}\"\r\n prop=\"inventoryTrAddress\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.inventoryTrAddress }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ReceiverChannel' | abpLocalization }}\"\r\n prop=\"receiverChannel\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template\r\n [ngIf]=\"row.receiverChannel\"\r\n [ngIfThen]=\"yes\"\r\n [ngIfElse]=\"no\"\r\n ></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::NoRemainOrder' | abpLocalization }}\"\r\n prop=\"noRemainOrder\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.noRemainOrder\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::UseSouWhoAdr' | abpLocalization }}\"\r\n prop=\"useSouWhoAdr\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.useSouWhoAdr\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::UseCusStockCode' | abpLocalization }}\"\r\n prop=\"useCusStockCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template\r\n [ngIf]=\"row.useCusStockCode\"\r\n [ngIfThen]=\"yes\"\r\n [ngIfElse]=\"no\"\r\n ></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::UseBarcode' | abpLocalization }}\"\r\n prop=\"useBarcode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.useBarcode\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ItemTreeOption' | abpLocalization }}\"\r\n prop=\"itemTreeOption\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.itemTreeOption }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::OrderReferenceField' | abpLocalization }}\"\r\n prop=\"orderReferenceField\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.orderReferenceField }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::IsShowBatchNSerial' | abpLocalization }}\"\r\n prop=\"isShowBatchNSerial\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template\r\n [ngIf]=\"row.isShowBatchNSerial\"\r\n [ngIfThen]=\"yes\"\r\n [ngIfElse]=\"no\"\r\n ></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [busy]=\"isModalBusy\" [(visible)]=\"isModalOpen\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ (selected ? 'AbpUi::Edit' : 'eDonusum::NewParamseDispatch') | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"paramse-dispatch\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paramse-dispatch-default-scenario\">\r\n {{ 'eDonusum::DefaultScenario' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"paramse-dispatch-default-scenario\"\r\n formControlName=\"defaultScenario\"\r\n class=\"form-control\"\r\n autofocus\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paramse-dispatch-default-dis-type\">\r\n {{ 'eDonusum::DefaultDisType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"paramse-dispatch-default-dis-type\"\r\n formControlName=\"defaultDisType\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paramse-dispatch-default-dis-serial\">\r\n {{ 'eDonusum::DefaultDisSerial' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"paramse-dispatch-default-dis-serial\"\r\n formControlName=\"defaultDisSerial\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-use-def-scenario\"\r\n formControlName=\"useDefScenario\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-use-def-scenario\" class=\"form-check-label\">\r\n {{ 'eDonusum::UseDefScenario' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-use-def-dis-type\"\r\n formControlName=\"useDefDisType\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-use-def-dis-type\" class=\"form-check-label\">\r\n {{ 'eDonusum::UseDefDisType' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-no-price\"\r\n formControlName=\"noPrice\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-no-price\" class=\"form-check-label\">\r\n {{ 'eDonusum::NoPrice' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paramse-dispatch-inventory-tr-address\">\r\n {{ 'eDonusum::InventoryTrAddress' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"paramse-dispatch-inventory-tr-address\"\r\n formControlName=\"inventoryTrAddress\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-receiver-channel\"\r\n formControlName=\"receiverChannel\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-receiver-channel\" class=\"form-check-label\">\r\n {{ 'eDonusum::ReceiverChannel' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-no-remain-order\"\r\n formControlName=\"noRemainOrder\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-no-remain-order\" class=\"form-check-label\">\r\n {{ 'eDonusum::NoRemainOrder' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-use-sou-who-adr\"\r\n formControlName=\"useSouWhoAdr\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-use-sou-who-adr\" class=\"form-check-label\">\r\n {{ 'eDonusum::UseSouWhoAdr' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-use-cus-stock-code\"\r\n formControlName=\"useCusStockCode\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-use-cus-stock-code\" class=\"form-check-label\">\r\n {{ 'eDonusum::UseCusStockCode' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-use-barcode\"\r\n formControlName=\"useBarcode\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-use-barcode\" class=\"form-check-label\">\r\n {{ 'eDonusum::UseBarcode' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paramse-dispatch-item-tree-option\">\r\n {{ 'eDonusum::ItemTreeOption' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"paramse-dispatch-item-tree-option\"\r\n formControlName=\"itemTreeOption\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paramse-dispatch-order-reference-field\">\r\n {{ 'eDonusum::OrderReferenceField' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"paramse-dispatch-order-reference-field\"\r\n formControlName=\"orderReferenceField\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-is-show-batch-nserial\"\r\n formControlName=\"isShowBatchNSerial\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-is-show-batch-nserial\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsShowBatchNSerial' | abpLocalization }}\r\n </label>\r\n </div>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"paramse-dispatch\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n" }]
|
|
122
|
+
args: [{ selector: 'lib-paramse-dispatch', changeDetection: ChangeDetectionStrategy.Default, providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], template: "<abp-page [title]=\"'eDonusum::ParamseDispatches' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <button\r\n class=\"btn btn-primary btn-sm mx-2\"\r\n type=\"button\"\r\n [disabled]=\"isExportToExcelBusy\"\r\n (click)=\"exportToExcel()\"\r\n >\r\n {{ 'eDonusum::ExportToExcel' | abpLocalization }}\r\n </button>\r\n\r\n <button\r\n *abpPermission=\"'eDonusum.ParamseDispatches.Create'\"\r\n class=\"btn btn-primary btn-sm\"\r\n type=\"button\"\r\n (click)=\"create()\"\r\n >\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::NewParamseDispatch' | abpLocalization }}\r\n </button>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <abp-advanced-entity-filters localizationSourceName=\"eDonusum\" [list]=\"list\">\r\n <abp-advanced-entity-filters-form>\r\n <form #filterForm (keyup.enter)=\"list.get()\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minDefaultScenario\">\r\n {{ 'eDonusum::MinDefaultScenario' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minDefaultScenario\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultScenarioMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxDefaultScenario\">\r\n {{ 'eDonusum::MaxDefaultScenario' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxDefaultScenario\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultScenarioMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minDefaultDisType\">\r\n {{ 'eDonusum::MinDefaultDisType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minDefaultDisType\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultDisTypeMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxDefaultDisType\">\r\n {{ 'eDonusum::MaxDefaultDisType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxDefaultDisType\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultDisTypeMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"defaultDisSerialFilter\">\r\n {{ 'eDonusum::DefaultDisSerial' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"defaultDisSerialFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultDisSerial\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"useDefScenarioFilter\">\r\n {{ 'eDonusum::UseDefScenario' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"useDefScenario\"\r\n id=\"useDefScenarioFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.useDefScenario\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"useDefDisTypeFilter\">\r\n {{ 'eDonusum::UseDefDisType' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"useDefDisType\"\r\n id=\"useDefDisTypeFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.useDefDisType\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"noPriceFilter\">\r\n {{ 'eDonusum::NoPrice' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"noPrice\"\r\n id=\"noPriceFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.noPrice\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minInventoryTrAddress\">\r\n {{ 'eDonusum::MinInventoryTrAddress' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minInventoryTrAddress\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.inventoryTrAddressMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxInventoryTrAddress\">\r\n {{ 'eDonusum::MaxInventoryTrAddress' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxInventoryTrAddress\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.inventoryTrAddressMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"receiverChannelFilter\">\r\n {{ 'eDonusum::ReceiverChannel' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"receiverChannel\"\r\n id=\"receiverChannelFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.receiverChannel\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"noRemainOrderFilter\">\r\n {{ 'eDonusum::NoRemainOrder' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"noRemainOrder\"\r\n id=\"noRemainOrderFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.noRemainOrder\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"useSouWhoAdrFilter\">\r\n {{ 'eDonusum::UseSouWhoAdr' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"useSouWhoAdr\"\r\n id=\"useSouWhoAdrFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.useSouWhoAdr\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"useCusStockCodeFilter\">\r\n {{ 'eDonusum::UseCusStockCode' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"useCusStockCode\"\r\n id=\"useCusStockCodeFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.useCusStockCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"useBarcodeFilter\">\r\n {{ 'eDonusum::UseBarcode' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"useBarcode\"\r\n id=\"useBarcodeFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.useBarcode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minItemTreeOption\">\r\n {{ 'eDonusum::MinItemTreeOption' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minItemTreeOption\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.itemTreeOptionMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxItemTreeOption\">\r\n {{ 'eDonusum::MaxItemTreeOption' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxItemTreeOption\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.itemTreeOptionMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minOrderReferenceField\">\r\n {{ 'eDonusum::MinOrderReferenceField' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minOrderReferenceField\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.orderReferenceFieldMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxOrderReferenceField\">\r\n {{ 'eDonusum::MaxOrderReferenceField' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxOrderReferenceField\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.orderReferenceFieldMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"isShowBatchNSerialFilter\">\r\n {{ 'eDonusum::IsShowBatchNSerial' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"isShowBatchNSerial\"\r\n id=\"isShowBatchNSerialFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.isShowBatchNSerial\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"isPartnerCatalogDescFilter\">\r\n {{ 'eDonusum::IsPartnerCatalogDesc' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"isPartnerCatalogDesc\"\r\n id=\"isPartnerCatalogDescFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.isPartnerCatalogDesc\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"isPartnerCatalogNumFilter\">\r\n {{ 'eDonusum::IsPartnerCatalogNum' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"isPartnerCatalogNum\"\r\n id=\"isPartnerCatalogNumFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.isPartnerCatalogNum\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto align-self-end mb-3\">\r\n <div class=\"row\">\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"clearFilters()\">\r\n <span>{{ 'AbpUi::Clear' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"list.get()\">\r\n <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </abp-advanced-entity-filters-form>\r\n </abp-advanced-entity-filters>\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <ngx-datatable [rows]=\"data.items\" [count]=\"data.totalCount\" [list]=\"list\" default>\r\n <ngx-datatable-column\r\n [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n [maxWidth]=\"150\"\r\n [width]=\"150\"\r\n [sortable]=\"false\"\r\n >\r\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button\r\n class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n ngbDropdownToggle\r\n >\r\n <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n\r\n <div ngbDropdownMenu>\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'eDonusum.ParamseDispatches.Edit'\"\r\n (click)=\"update(row)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'eDonusum.ParamseDispatches.Delete'\"\r\n (click)=\"delete(row)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::DefaultScenario' | abpLocalization }}\"\r\n prop=\"defaultScenario\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.defaultScenario }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::DefaultDisType' | abpLocalization }}\"\r\n prop=\"defaultDisType\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.defaultDisType }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::DefaultDisSerial' | abpLocalization }}\"\r\n prop=\"defaultDisSerial\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.defaultDisSerial }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::UseDefScenario' | abpLocalization }}\"\r\n prop=\"useDefScenario\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.useDefScenario\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::UseDefDisType' | abpLocalization }}\"\r\n prop=\"useDefDisType\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.useDefDisType\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'eDonusum::NoPrice' | abpLocalization }}\" prop=\"noPrice\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.noPrice\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::InventoryTrAddress' | abpLocalization }}\"\r\n prop=\"inventoryTrAddress\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.inventoryTrAddress }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ReceiverChannel' | abpLocalization }}\"\r\n prop=\"receiverChannel\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template\r\n [ngIf]=\"row.receiverChannel\"\r\n [ngIfThen]=\"yes\"\r\n [ngIfElse]=\"no\"\r\n ></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::NoRemainOrder' | abpLocalization }}\"\r\n prop=\"noRemainOrder\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.noRemainOrder\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::UseSouWhoAdr' | abpLocalization }}\"\r\n prop=\"useSouWhoAdr\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.useSouWhoAdr\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::UseCusStockCode' | abpLocalization }}\"\r\n prop=\"useCusStockCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template\r\n [ngIf]=\"row.useCusStockCode\"\r\n [ngIfThen]=\"yes\"\r\n [ngIfElse]=\"no\"\r\n ></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::UseBarcode' | abpLocalization }}\"\r\n prop=\"useBarcode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.useBarcode\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ItemTreeOption' | abpLocalization }}\"\r\n prop=\"itemTreeOption\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.itemTreeOption }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::OrderReferenceField' | abpLocalization }}\"\r\n prop=\"orderReferenceField\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.orderReferenceField }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::IsShowBatchNSerial' | abpLocalization }}\"\r\n prop=\"isShowBatchNSerial\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template\r\n [ngIf]=\"row.isShowBatchNSerial\"\r\n [ngIfThen]=\"yes\"\r\n [ngIfElse]=\"no\"\r\n ></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::IsPartnerCatalogDesc' | abpLocalization }}\"\r\n prop=\"isPartnerCatalogDesc\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template\r\n [ngIf]=\"row.isPartnerCatalogDesc\"\r\n [ngIfThen]=\"yes\"\r\n [ngIfElse]=\"no\"\r\n ></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::IsPartnerCatalogNum' | abpLocalization }}\"\r\n prop=\"isPartnerCatalogNum\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template\r\n [ngIf]=\"row.isPartnerCatalogNum\"\r\n [ngIfThen]=\"yes\"\r\n [ngIfElse]=\"no\"\r\n ></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [busy]=\"isModalBusy\" [(visible)]=\"isModalOpen\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ (selected ? 'AbpUi::Edit' : 'eDonusum::NewParamseDispatch') | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"paramse-dispatch\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paramse-dispatch-default-scenario\">\r\n {{ 'eDonusum::DefaultScenario' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"paramse-dispatch-default-scenario\"\r\n formControlName=\"defaultScenario\"\r\n class=\"form-control\"\r\n autofocus\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paramse-dispatch-default-dis-type\">\r\n {{ 'eDonusum::DefaultDisType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"paramse-dispatch-default-dis-type\"\r\n formControlName=\"defaultDisType\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paramse-dispatch-default-dis-serial\">\r\n {{ 'eDonusum::DefaultDisSerial' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"paramse-dispatch-default-dis-serial\"\r\n formControlName=\"defaultDisSerial\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-use-def-scenario\"\r\n formControlName=\"useDefScenario\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-use-def-scenario\" class=\"form-check-label\">\r\n {{ 'eDonusum::UseDefScenario' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-use-def-dis-type\"\r\n formControlName=\"useDefDisType\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-use-def-dis-type\" class=\"form-check-label\">\r\n {{ 'eDonusum::UseDefDisType' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-no-price\"\r\n formControlName=\"noPrice\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-no-price\" class=\"form-check-label\">\r\n {{ 'eDonusum::NoPrice' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paramse-dispatch-inventory-tr-address\">\r\n {{ 'eDonusum::InventoryTrAddress' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"paramse-dispatch-inventory-tr-address\"\r\n formControlName=\"inventoryTrAddress\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-receiver-channel\"\r\n formControlName=\"receiverChannel\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-receiver-channel\" class=\"form-check-label\">\r\n {{ 'eDonusum::ReceiverChannel' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-no-remain-order\"\r\n formControlName=\"noRemainOrder\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-no-remain-order\" class=\"form-check-label\">\r\n {{ 'eDonusum::NoRemainOrder' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-use-sou-who-adr\"\r\n formControlName=\"useSouWhoAdr\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-use-sou-who-adr\" class=\"form-check-label\">\r\n {{ 'eDonusum::UseSouWhoAdr' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-use-cus-stock-code\"\r\n formControlName=\"useCusStockCode\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-use-cus-stock-code\" class=\"form-check-label\">\r\n {{ 'eDonusum::UseCusStockCode' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-use-barcode\"\r\n formControlName=\"useBarcode\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-use-barcode\" class=\"form-check-label\">\r\n {{ 'eDonusum::UseBarcode' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paramse-dispatch-item-tree-option\">\r\n {{ 'eDonusum::ItemTreeOption' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"paramse-dispatch-item-tree-option\"\r\n formControlName=\"itemTreeOption\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paramse-dispatch-order-reference-field\">\r\n {{ 'eDonusum::OrderReferenceField' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"paramse-dispatch-order-reference-field\"\r\n formControlName=\"orderReferenceField\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-is-show-batch-nserial\"\r\n formControlName=\"isShowBatchNSerial\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-is-show-batch-nserial\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsShowBatchNSerial' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-is-partner-catalog-desc\"\r\n formControlName=\"isPartnerCatalogDesc\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-is-partner-catalog-desc\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsPartnerCatalogDesc' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"paramse-dispatch-is-partner-catalog-num\"\r\n formControlName=\"isPartnerCatalogNum\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"paramse-dispatch-is-partner-catalog-num\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsPartnerCatalogNum' | abpLocalization }}\r\n </label>\r\n </div>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"paramse-dispatch\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n" }]
|
|
121
123
|
}], ctorParameters: function () { return [{ type: i1.ListService }, { type: i1.TrackByService }, { type: i2.ParamseDispatchService }, { type: i3.ConfirmationService }, { type: i4.FormBuilder }]; } });
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1zZS1kaXNwYXRjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lLWRvbnVzdW0vc3JjL2xpYi9wYXJhbXNlLWRpc3BhdGNoZXMvcGFyYW1zZS1kaXNwYXRjaC9jb21wb25lbnRzL3BhcmFtc2UtZGlzcGF0Y2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZS1kb251c3VtL3NyYy9saWIvcGFyYW1zZS1kaXNwYXRjaGVzL3BhcmFtc2UtZGlzcGF0Y2gvY29tcG9uZW50cy9wYXJhbXNlLWRpc3BhdGNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBTyxZQUFZLEVBQUUsV0FBVyxFQUFrQyxNQUFNLGNBQWMsQ0FBQztBQUM5RixPQUFPLEVBQUUsWUFBWSxFQUF1QixNQUFNLHNCQUFzQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBYWxFLE1BQU0sT0FBTyx3QkFBd0I7SUFvQm5DLFlBQ2tCLElBQWlCLEVBQ2pCLEtBQXFCLEVBQ3JCLE9BQStCLEVBQ3ZDLFlBQWlDLEVBQ2pDLEVBQWU7UUFKUCxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQXdCO1FBQ3ZDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBeEJ6QixTQUFJLEdBQXVDO1lBQ3pDLEtBQUssRUFBRSxFQUFFO1lBQ1QsVUFBVSxFQUFFLENBQUM7U0FDZCxDQUFDO1FBRUYsWUFBTyxHQUFHLEVBQStCLENBQUM7UUFJMUMsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFFdkIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFcEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFcEIsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO0lBVXpCLENBQUM7SUFFSixRQUFRO1FBQ04sTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUEwQixFQUFFLEVBQUUsQ0FDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDbkIsR0FBRyxLQUFLO1lBQ1IsR0FBRyxJQUFJLENBQUMsT0FBTztZQUNmLFVBQVUsRUFBRSxLQUFLLENBQUMsTUFBTTtTQUN6QixDQUFDLENBQUM7UUFFTCxNQUFNLE9BQU8sR0FBRyxDQUFDLElBQXdDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztRQUVqRixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQStCLENBQUM7SUFDakQsQ0FBQztJQUVELFNBQVM7UUFDUCxNQUFNLEVBQ0osZUFBZSxFQUNmLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLGFBQWEsRUFDYixPQUFPLEVBQ1Asa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixhQUFhLEVBQ2IsWUFBWSxFQUNaLGVBQWUsRUFDZixVQUFVLEVBQ1YsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixrQkFBa0IsR0FDbkIsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUV4QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3hCLGVBQWUsRUFBRSxDQUFDLGVBQWUsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQzlDLGNBQWMsRUFBRSxDQUFDLGNBQWMsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQzVDLGdCQUFnQixFQUFFLENBQUMsZ0JBQWdCLElBQUksSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUYsY0FBYyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUMzQixhQUFhLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQzFCLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDcEIsa0JBQWtCLEVBQUUsQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3BELGVBQWUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDNUIsYUFBYSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUMxQixZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3pCLGVBQWUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDNUIsVUFBVSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN2QixjQUFjLEVBQUUsQ0FBQyxjQUFjLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUM1QyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDNUIsa0JBQWtCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1NBQ2hDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTztRQUU5QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUTtZQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3BDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLO2dCQUNsQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQjthQUNqRCxDQUFDO1lBQ0osQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFFeEIsT0FBTzthQUNKLElBQUksQ0FDSCxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQzFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FDM0I7YUFDQSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQTBCO1FBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQTBCO1FBQy9CLElBQUksQ0FBQyxZQUFZO2FBQ2QsSUFBSSxDQUFDLHFDQUFxQyxFQUFFLHNCQUFzQixFQUFFO1lBQ25FLHlCQUF5QixFQUFFLEVBQUU7U0FDOUIsQ0FBQzthQUNELElBQUksQ0FDSCxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssWUFBWSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFDeEQsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUNoRDthQUNBLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTzthQUNULGdCQUFnQixFQUFFO2FBQ2xCLElBQUksQ0FDSCxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FDeEYsRUFDRCxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FDbkQ7YUFDQSxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbEIsWUFBWSxDQUFDLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7cUhBcEpVLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLCtDQUp4QixDQUFDLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDLDBCQ2Y5RSwrNW9DQXc2QkE7MkZEcjVCYSx3QkFBd0I7a0JBUHBDLFNBQVM7K0JBQ0Usc0JBQXNCLG1CQUNmLHVCQUF1QixDQUFDLE9BQU8sYUFDckMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFCUCwgZG93bmxvYWRCbG9iLCBMaXN0U2VydmljZSwgUGFnZWRSZXN1bHREdG8sIFRyYWNrQnlTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uLCBDb25maXJtYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkL2V4dGVuc2lvbnMnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmdiRGF0ZUFkYXB0ZXIgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IGZpbHRlciwgZmluYWxpemUsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgdHlwZSB7XHJcbiAgR2V0UGFyYW1zZURpc3BhdGNoZXNJbnB1dCxcclxuICBQYXJhbXNlRGlzcGF0Y2hEdG8sXHJcbn0gZnJvbSAnLi4vLi4vLi4vcHJveHkvcGFyYW1zZS1kaXNwYXRjaGVzL21vZGVscyc7XHJcbmltcG9ydCB7IFBhcmFtc2VEaXNwYXRjaFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9wYXJhbXNlLWRpc3BhdGNoZXMvcGFyYW1zZS1kaXNwYXRjaC5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItcGFyYW1zZS1kaXNwYXRjaCcsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxyXG4gIHByb3ZpZGVyczogW0xpc3RTZXJ2aWNlLCB7IHByb3ZpZGU6IE5nYkRhdGVBZGFwdGVyLCB1c2VDbGFzczogRGF0ZUFkYXB0ZXIgfV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BhcmFtc2UtZGlzcGF0Y2guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlczogW10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYXJhbXNlRGlzcGF0Y2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGRhdGE6IFBhZ2VkUmVzdWx0RHRvPFBhcmFtc2VEaXNwYXRjaER0bz4gPSB7XHJcbiAgICBpdGVtczogW10sXHJcbiAgICB0b3RhbENvdW50OiAwLFxyXG4gIH07XHJcblxyXG4gIGZpbHRlcnMgPSB7fSBhcyBHZXRQYXJhbXNlRGlzcGF0Y2hlc0lucHV0O1xyXG5cclxuICBmb3JtOiBGb3JtR3JvdXA7XHJcblxyXG4gIGlzRmlsdGVyc0hpZGRlbiA9IHRydWU7XHJcblxyXG4gIGlzTW9kYWxCdXN5ID0gZmFsc2U7XHJcblxyXG4gIGlzTW9kYWxPcGVuID0gZmFsc2U7XHJcblxyXG4gIGlzRXhwb3J0VG9FeGNlbEJ1c3kgPSBmYWxzZTtcclxuXHJcbiAgc2VsZWN0ZWQ/OiBQYXJhbXNlRGlzcGF0Y2hEdG87XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlYWRvbmx5IGxpc3Q6IExpc3RTZXJ2aWNlLFxyXG4gICAgcHVibGljIHJlYWRvbmx5IHRyYWNrOiBUcmFja0J5U2VydmljZSxcclxuICAgIHB1YmxpYyByZWFkb25seSBzZXJ2aWNlOiBQYXJhbXNlRGlzcGF0Y2hTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25maXJtYXRpb246IENvbmZpcm1hdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlclxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBjb25zdCBnZXREYXRhID0gKHF1ZXJ5OiBBQlAuUGFnZVF1ZXJ5UGFyYW1zKSA9PlxyXG4gICAgICB0aGlzLnNlcnZpY2UuZ2V0TGlzdCh7XHJcbiAgICAgICAgLi4ucXVlcnksXHJcbiAgICAgICAgLi4udGhpcy5maWx0ZXJzLFxyXG4gICAgICAgIGZpbHRlclRleHQ6IHF1ZXJ5LmZpbHRlcixcclxuICAgICAgfSk7XHJcblxyXG4gICAgY29uc3Qgc2V0RGF0YSA9IChsaXN0OiBQYWdlZFJlc3VsdER0bzxQYXJhbXNlRGlzcGF0Y2hEdG8+KSA9PiAodGhpcy5kYXRhID0gbGlzdCk7XHJcblxyXG4gICAgdGhpcy5saXN0Lmhvb2tUb1F1ZXJ5KGdldERhdGEpLnN1YnNjcmliZShzZXREYXRhKTtcclxuICB9XHJcblxyXG4gIGNsZWFyRmlsdGVycygpIHtcclxuICAgIHRoaXMuZmlsdGVycyA9IHt9IGFzIEdldFBhcmFtc2VEaXNwYXRjaGVzSW5wdXQ7XHJcbiAgfVxyXG5cclxuICBidWlsZEZvcm0oKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGRlZmF1bHRTY2VuYXJpbyxcclxuICAgICAgZGVmYXVsdERpc1R5cGUsXHJcbiAgICAgIGRlZmF1bHREaXNTZXJpYWwsXHJcbiAgICAgIHVzZURlZlNjZW5hcmlvLFxyXG4gICAgICB1c2VEZWZEaXNUeXBlLFxyXG4gICAgICBub1ByaWNlLFxyXG4gICAgICBpbnZlbnRvcnlUckFkZHJlc3MsXHJcbiAgICAgIHJlY2VpdmVyQ2hhbm5lbCxcclxuICAgICAgbm9SZW1haW5PcmRlcixcclxuICAgICAgdXNlU291V2hvQWRyLFxyXG4gICAgICB1c2VDdXNTdG9ja0NvZGUsXHJcbiAgICAgIHVzZUJhcmNvZGUsXHJcbiAgICAgIGl0ZW1UcmVlT3B0aW9uLFxyXG4gICAgICBvcmRlclJlZmVyZW5jZUZpZWxkLFxyXG4gICAgICBpc1Nob3dCYXRjaE5TZXJpYWwsXHJcbiAgICB9ID0gdGhpcy5zZWxlY3RlZCB8fCB7fTtcclxuXHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgZGVmYXVsdFNjZW5hcmlvOiBbZGVmYXVsdFNjZW5hcmlvID8/IG51bGwsIFtdXSxcclxuICAgICAgZGVmYXVsdERpc1R5cGU6IFtkZWZhdWx0RGlzVHlwZSA/PyBudWxsLCBbXV0sXHJcbiAgICAgIGRlZmF1bHREaXNTZXJpYWw6IFtkZWZhdWx0RGlzU2VyaWFsID8/IG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCg4KV1dLFxyXG4gICAgICB1c2VEZWZTY2VuYXJpbzogW2ZhbHNlLCBbXV0sXHJcbiAgICAgIHVzZURlZkRpc1R5cGU6IFtmYWxzZSwgW11dLFxyXG4gICAgICBub1ByaWNlOiBbZmFsc2UsIFtdXSxcclxuICAgICAgaW52ZW50b3J5VHJBZGRyZXNzOiBbaW52ZW50b3J5VHJBZGRyZXNzID8/IG51bGwsIFtdXSxcclxuICAgICAgcmVjZWl2ZXJDaGFubmVsOiBbZmFsc2UsIFtdXSxcclxuICAgICAgbm9SZW1haW5PcmRlcjogW2ZhbHNlLCBbXV0sXHJcbiAgICAgIHVzZVNvdVdob0FkcjogW2ZhbHNlLCBbXV0sXHJcbiAgICAgIHVzZUN1c1N0b2NrQ29kZTogW2ZhbHNlLCBbXV0sXHJcbiAgICAgIHVzZUJhcmNvZGU6IFtmYWxzZSwgW11dLFxyXG4gICAgICBpdGVtVHJlZU9wdGlvbjogW2l0ZW1UcmVlT3B0aW9uID8/IG51bGwsIFtdXSxcclxuICAgICAgb3JkZXJSZWZlcmVuY2VGaWVsZDogWzAsIFtdXSxcclxuICAgICAgaXNTaG93QmF0Y2hOU2VyaWFsOiBbZmFsc2UsIFtdXSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaGlkZUZvcm0oKSB7XHJcbiAgICB0aGlzLmlzTW9kYWxPcGVuID0gZmFsc2U7XHJcbiAgICB0aGlzLmZvcm0ucmVzZXQoKTtcclxuICB9XHJcblxyXG4gIHNob3dGb3JtKCkge1xyXG4gICAgdGhpcy5idWlsZEZvcm0oKTtcclxuICAgIHRoaXMuaXNNb2RhbE9wZW4gPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgc3VibWl0Rm9ybSgpIHtcclxuICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHJlcXVlc3QgPSB0aGlzLnNlbGVjdGVkXHJcbiAgICAgID8gdGhpcy5zZXJ2aWNlLnVwZGF0ZSh0aGlzLnNlbGVjdGVkLmlkLCB7XHJcbiAgICAgICAgICAuLi50aGlzLmZvcm0udmFsdWUsXHJcbiAgICAgICAgICBjb25jdXJyZW5jeVN0YW1wOiB0aGlzLnNlbGVjdGVkLmNvbmN1cnJlbmN5U3RhbXAsXHJcbiAgICAgICAgfSlcclxuICAgICAgOiB0aGlzLnNlcnZpY2UuY3JlYXRlKHRoaXMuZm9ybS52YWx1ZSk7XHJcblxyXG4gICAgdGhpcy5pc01vZGFsQnVzeSA9IHRydWU7XHJcblxyXG4gICAgcmVxdWVzdFxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiAodGhpcy5pc01vZGFsQnVzeSA9IGZhbHNlKSksXHJcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuaGlkZUZvcm0oKSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHRoaXMubGlzdC5nZXQpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuc2hvd0Zvcm0oKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZShyZWNvcmQ6IFBhcmFtc2VEaXNwYXRjaER0bykge1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IHJlY29yZDtcclxuICAgIHRoaXMuc2hvd0Zvcm0oKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZShyZWNvcmQ6IFBhcmFtc2VEaXNwYXRjaER0bykge1xyXG4gICAgdGhpcy5jb25maXJtYXRpb25cclxuICAgICAgLndhcm4oJ2VEb251c3VtOjpEZWxldGVDb25maXJtYXRpb25NZXNzYWdlJywgJ2VEb251c3VtOjpBcmVZb3VTdXJlJywge1xyXG4gICAgICAgIG1lc3NhZ2VMb2NhbGl6YXRpb25QYXJhbXM6IFtdLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaWx0ZXIoc3RhdHVzID0+IHN0YXR1cyA9PT0gQ29uZmlybWF0aW9uLlN0YXR1cy5jb25maXJtKSxcclxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5zZXJ2aWNlLmRlbGV0ZShyZWNvcmQuaWQpKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5saXN0LmdldCk7XHJcbiAgfVxyXG5cclxuICBleHBvcnRUb0V4Y2VsKCkge1xyXG4gICAgdGhpcy5pc0V4cG9ydFRvRXhjZWxCdXN5ID0gdHJ1ZTtcclxuICAgIHRoaXMuc2VydmljZVxyXG4gICAgICAuZ2V0RG93bmxvYWRUb2tlbigpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHN3aXRjaE1hcCgoeyB0b2tlbiB9KSA9PlxyXG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLmdldExpc3RBc0V4Y2VsRmlsZSh7IGRvd25sb2FkVG9rZW46IHRva2VuLCBmaWx0ZXJUZXh0OiB0aGlzLmxpc3QuZmlsdGVyIH0pXHJcbiAgICAgICAgKSxcclxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiAodGhpcy5pc0V4cG9ydFRvRXhjZWxCdXN5ID0gZmFsc2UpKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICBkb3dubG9hZEJsb2IocmVzdWx0LCAnUGFyYW1zZURpc3BhdGNoLnhsc3gnKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxhYnAtcGFnZSBbdGl0bGVdPVwiJ2VEb251c3VtOjpQYXJhbXNlRGlzcGF0Y2hlcycgfCBhYnBMb2NhbGl6YXRpb25cIj5cclxuICA8YWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXIgY2xhc3M9XCJjb2xcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnLWVuZCBwdC0yXCI+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gbXgtMlwiXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzRXhwb3J0VG9FeGNlbEJ1c3lcIlxyXG4gICAgICAgIChjbGljayk9XCJleHBvcnRUb0V4Y2VsKClcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgJ2VEb251c3VtOjpFeHBvcnRUb0V4Y2VsJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICAqYWJwUGVybWlzc2lvbj1cIidlRG9udXN1bS5QYXJhbXNlRGlzcGF0Y2hlcy5DcmVhdGUnXCJcclxuICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIChjbGljayk9XCJjcmVhdGUoKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXBsdXMgbWUtMVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICB7eyAnZURvbnVzdW06Ok5ld1BhcmFtc2VEaXNwYXRjaCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2FicC1wYWdlLXRvb2xiYXItY29udGFpbmVyPlxyXG5cclxuICA8YWJwLWFkdmFuY2VkLWVudGl0eS1maWx0ZXJzIGxvY2FsaXphdGlvblNvdXJjZU5hbWU9XCJlRG9udXN1bVwiIFtsaXN0XT1cImxpc3RcIj5cclxuICAgIDxhYnAtYWR2YW5jZWQtZW50aXR5LWZpbHRlcnMtZm9ybT5cclxuICAgICAgPGZvcm0gI2ZpbHRlckZvcm0gKGtleXVwLmVudGVyKT1cImxpc3QuZ2V0KClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1pbkRlZmF1bHRTY2VuYXJpb1wiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpNaW5EZWZhdWx0U2NlbmFyaW8nIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cIm1pbkRlZmF1bHRTY2VuYXJpb1wiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5kZWZhdWx0U2NlbmFyaW9NaW5cIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibWF4RGVmYXVsdFNjZW5hcmlvXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1heERlZmF1bHRTY2VuYXJpbycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwibWF4RGVmYXVsdFNjZW5hcmlvXCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmRlZmF1bHRTY2VuYXJpb01heFwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1pbkRlZmF1bHREaXNUeXBlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1pbkRlZmF1bHREaXNUeXBlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJtaW5EZWZhdWx0RGlzVHlwZVwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5kZWZhdWx0RGlzVHlwZU1pblwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhEZWZhdWx0RGlzVHlwZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpNYXhEZWZhdWx0RGlzVHlwZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwibWF4RGVmYXVsdERpc1R5cGVcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuZGVmYXVsdERpc1R5cGVNYXhcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJkZWZhdWx0RGlzU2VyaWFsRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkRlZmF1bHREaXNTZXJpYWwnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cImRlZmF1bHREaXNTZXJpYWxGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmRlZmF1bHREaXNTZXJpYWxcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJ1c2VEZWZTY2VuYXJpb0ZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpVc2VEZWZTY2VuYXJpbycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICBuYW1lPVwidXNlRGVmU2NlbmFyaW9cIlxyXG4gICAgICAgICAgICAgICAgaWQ9XCJ1c2VEZWZTY2VuYXJpb0ZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMudXNlRGVmU2NlbmFyaW9cIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwibGlzdC5nZXQoKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJcIj48L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwidHJ1ZVwiPnt7ICdBYnBVaTo6WWVzJyB8IGFicExvY2FsaXphdGlvbiB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJmYWxzZVwiPnt7ICdBYnBVaTo6Tm8nIHwgYWJwTG9jYWxpemF0aW9uIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInVzZURlZkRpc1R5cGVGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6VXNlRGVmRGlzVHlwZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICBuYW1lPVwidXNlRGVmRGlzVHlwZVwiXHJcbiAgICAgICAgICAgICAgICBpZD1cInVzZURlZkRpc1R5cGVGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXNlbGVjdCBmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnVzZURlZkRpc1R5cGVcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwibGlzdC5nZXQoKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJcIj48L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwidHJ1ZVwiPnt7ICdBYnBVaTo6WWVzJyB8IGFicExvY2FsaXphdGlvbiB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJmYWxzZVwiPnt7ICdBYnBVaTo6Tm8nIHwgYWJwTG9jYWxpemF0aW9uIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm5vUHJpY2VGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6Tm9QcmljZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICBuYW1lPVwibm9QcmljZVwiXHJcbiAgICAgICAgICAgICAgICBpZD1cIm5vUHJpY2VGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXNlbGVjdCBmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLm5vUHJpY2VcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwibGlzdC5nZXQoKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJcIj48L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwidHJ1ZVwiPnt7ICdBYnBVaTo6WWVzJyB8IGFicExvY2FsaXphdGlvbiB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJmYWxzZVwiPnt7ICdBYnBVaTo6Tm8nIHwgYWJwTG9jYWxpemF0aW9uIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1pbkludmVudG9yeVRyQWRkcmVzc1wiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpNaW5JbnZlbnRvcnlUckFkZHJlc3MnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cIm1pbkludmVudG9yeVRyQWRkcmVzc1wiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5pbnZlbnRvcnlUckFkZHJlc3NNaW5cIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibWF4SW52ZW50b3J5VHJBZGRyZXNzXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1heEludmVudG9yeVRyQWRkcmVzcycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwibWF4SW52ZW50b3J5VHJBZGRyZXNzXCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmludmVudG9yeVRyQWRkcmVzc01heFwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInJlY2VpdmVyQ2hhbm5lbEZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpSZWNlaXZlckNoYW5uZWwnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgbmFtZT1cInJlY2VpdmVyQ2hhbm5lbFwiXHJcbiAgICAgICAgICAgICAgICBpZD1cInJlY2VpdmVyQ2hhbm5lbEZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMucmVjZWl2ZXJDaGFubmVsXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImxpc3QuZ2V0KClcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwiXCI+PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cInRydWVcIj57eyAnQWJwVWk6OlllcycgfCBhYnBMb2NhbGl6YXRpb24gfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwiZmFsc2VcIj57eyAnQWJwVWk6Ok5vJyB8IGFicExvY2FsaXphdGlvbiB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJub1JlbWFpbk9yZGVyRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok5vUmVtYWluT3JkZXInIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgbmFtZT1cIm5vUmVtYWluT3JkZXJcIlxyXG4gICAgICAgICAgICAgICAgaWQ9XCJub1JlbWFpbk9yZGVyRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1zZWxlY3QgZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5ub1JlbWFpbk9yZGVyXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImxpc3QuZ2V0KClcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwiXCI+PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cInRydWVcIj57eyAnQWJwVWk6OlllcycgfCBhYnBMb2NhbGl6YXRpb24gfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwiZmFsc2VcIj57eyAnQWJwVWk6Ok5vJyB8IGFicExvY2FsaXphdGlvbiB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJ1c2VTb3VXaG9BZHJGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6VXNlU291V2hvQWRyJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJ1c2VTb3VXaG9BZHJcIlxyXG4gICAgICAgICAgICAgICAgaWQ9XCJ1c2VTb3VXaG9BZHJGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXNlbGVjdCBmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnVzZVNvdVdob0FkclwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJsaXN0LmdldCgpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIlwiPjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJ0cnVlXCI+e3sgJ0FicFVpOjpZZXMnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cImZhbHNlXCI+e3sgJ0FicFVpOjpObycgfCBhYnBMb2NhbGl6YXRpb24gfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwidXNlQ3VzU3RvY2tDb2RlRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlVzZUN1c1N0b2NrQ29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICBuYW1lPVwidXNlQ3VzU3RvY2tDb2RlXCJcclxuICAgICAgICAgICAgICAgIGlkPVwidXNlQ3VzU3RvY2tDb2RlRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1zZWxlY3QgZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy51c2VDdXNTdG9ja0NvZGVcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwibGlzdC5nZXQoKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJcIj48L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwidHJ1ZVwiPnt7ICdBYnBVaTo6WWVzJyB8IGFicExvY2FsaXphdGlvbiB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJmYWxzZVwiPnt7ICdBYnBVaTo6Tm8nIHwgYWJwTG9jYWxpemF0aW9uIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInVzZUJhcmNvZGVGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6VXNlQmFyY29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICBuYW1lPVwidXNlQmFyY29kZVwiXHJcbiAgICAgICAgICAgICAgICBpZD1cInVzZUJhcmNvZGVGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXNlbGVjdCBmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnVzZUJhcmNvZGVcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwibGlzdC5nZXQoKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJcIj48L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwidHJ1ZVwiPnt7ICdBYnBVaTo6WWVzJyB8IGFicExvY2FsaXphdGlvbiB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJmYWxzZVwiPnt7ICdBYnBVaTo6Tm8nIHwgYWJwTG9jYWxpemF0aW9uIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1pbkl0ZW1UcmVlT3B0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1pbkl0ZW1UcmVlT3B0aW9uJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJtaW5JdGVtVHJlZU9wdGlvblwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5pdGVtVHJlZU9wdGlvbk1pblwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhJdGVtVHJlZU9wdGlvblwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpNYXhJdGVtVHJlZU9wdGlvbicgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwibWF4SXRlbVRyZWVPcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuaXRlbVRyZWVPcHRpb25NYXhcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtaW5PcmRlclJlZmVyZW5jZUZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1pbk9yZGVyUmVmZXJlbmNlRmllbGQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cIm1pbk9yZGVyUmVmZXJlbmNlRmllbGRcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMub3JkZXJSZWZlcmVuY2VGaWVsZE1pblwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhPcmRlclJlZmVyZW5jZUZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1heE9yZGVyUmVmZXJlbmNlRmllbGQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cIm1heE9yZGVyUmVmZXJlbmNlRmllbGRcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMub3JkZXJSZWZlcmVuY2VGaWVsZE1heFwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImlzU2hvd0JhdGNoTlNlcmlhbEZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpJc1Nob3dCYXRjaE5TZXJpYWwnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgbmFtZT1cImlzU2hvd0JhdGNoTlNlcmlhbFwiXHJcbiAgICAgICAgICAgICAgICBpZD1cImlzU2hvd0JhdGNoTlNlcmlhbEZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuaXNTaG93QmF0Y2hOU2VyaWFsXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImxpc3QuZ2V0KClcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwiXCI+PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cInRydWVcIj57eyAnQWJwVWk6OlllcycgfCBhYnBMb2NhbGl6YXRpb24gfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwiZmFsc2VcIj57eyAnQWJwVWk6Ok5vJyB8IGFicExvY2FsaXphdGlvbiB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG8gYWxpZ24tc2VsZi1lbmQgbWItM1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02IGNvbC1zbS1hdXRvIGQtZ3JpZFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeVwiIChjbGljayk9XCJjbGVhckZpbHRlcnMoKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyAnQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvbiB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBjb2wtc20tYXV0byBkLWdyaWRcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cImxpc3QuZ2V0KClcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgJ0FicFVpOjpSZWZyZXNoJyB8IGFicExvY2FsaXphdGlvbiB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Zvcm0+XHJcbiAgICA8L2FicC1hZHZhbmNlZC1lbnRpdHktZmlsdGVycy1mb3JtPlxyXG4gIDwvYWJwLWFkdmFuY2VkLWVudGl0eS1maWx0ZXJzPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICA8bmd4LWRhdGF0YWJsZSBbcm93c109XCJkYXRhLml0ZW1zXCIgW2NvdW50XT1cImRhdGEudG90YWxDb3VudFwiIFtsaXN0XT1cImxpc3RcIiBkZWZhdWx0PlxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgW25hbWVdPVwiJ0FicFVpOjpBY3Rpb25zJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICBbbWF4V2lkdGhdPVwiMTUwXCJcclxuICAgICAgICAgIFt3aWR0aF09XCIxNTBcIlxyXG4gICAgICAgICAgW3NvcnRhYmxlXT1cImZhbHNlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC1pPVwicm93SW5kZXhcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd24gY29udGFpbmVyPVwiYm9keVwiIGNsYXNzPVwiZC1pbmxpbmUtYmxvY2tcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gZHJvcGRvd24tdG9nZ2xlXCJcclxuICAgICAgICAgICAgICAgIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIlxyXG4gICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgbmdiRHJvcGRvd25Ub2dnbGVcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNvZyBtZS0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAge3sgJ0FicFVpOjpBY3Rpb25zJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudT5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgbmdiRHJvcGRvd25JdGVtXHJcbiAgICAgICAgICAgICAgICAgICphYnBQZXJtaXNzaW9uPVwiJ2VEb251c3VtLlBhcmFtc2VEaXNwYXRjaGVzLkVkaXQnXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInVwZGF0ZShyb3cpXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge3sgJ0FicFVpOjpFZGl0JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICBuZ2JEcm9wZG93bkl0ZW1cclxuICAgICAgICAgICAgICAgICAgKmFicFBlcm1pc3Npb249XCInZURvbnVzdW0uUGFyYW1zZURpc3BhdGNoZXMuRGVsZXRlJ1wiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGUocm93KVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHt7ICdBYnBVaTo6RGVsZXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OkRlZmF1bHRTY2VuYXJpbycgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cImRlZmF1bHRTY2VuYXJpb1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5kZWZhdWx0U2NlbmFyaW8gfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpEZWZhdWx0RGlzVHlwZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cImRlZmF1bHREaXNUeXBlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LmRlZmF1bHREaXNUeXBlIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6RGVmYXVsdERpc1NlcmlhbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cImRlZmF1bHREaXNTZXJpYWxcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cuZGVmYXVsdERpc1NlcmlhbCB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OlVzZURlZlNjZW5hcmlvJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwidXNlRGVmU2NlbmFyaW9cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwicm93LnVzZURlZlNjZW5hcmlvXCIgW25nSWZUaGVuXT1cInllc1wiIFtuZ0lmRWxzZV09XCJub1wiPjwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3llcz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdWNjZXNzXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbdGl0bGVdPVwiJ0FicFVpOjpZZXMnIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hlY2tcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW3RpdGxlXT1cIidBYnBVaTo6Tm8nIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6VXNlRGVmRGlzVHlwZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cInVzZURlZkRpc1R5cGVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwicm93LnVzZURlZkRpc1R5cGVcIiBbbmdJZlRoZW5dPVwieWVzXCIgW25nSWZFbHNlXT1cIm5vXCI+PC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjeWVzPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN1Y2Nlc3NcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFt0aXRsZV09XCInQWJwVWk6OlllcycgfCBhYnBMb2NhbGl6YXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jaGVja1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm8+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbdGl0bGVdPVwiJ0FicFVpOjpObycgfCBhYnBMb2NhbGl6YXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIG5hbWU9XCJ7eyAnZURvbnVzdW06Ok5vUHJpY2UnIHwgYWJwTG9jYWxpemF0aW9uIH19XCIgcHJvcD1cIm5vUHJpY2VcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwicm93Lm5vUHJpY2VcIiBbbmdJZlRoZW5dPVwieWVzXCIgW25nSWZFbHNlXT1cIm5vXCI+PC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjeWVzPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN1Y2Nlc3NcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFt0aXRsZV09XCInQWJwVWk6OlllcycgfCBhYnBMb2NhbGl6YXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jaGVja1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm8+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbdGl0bGVdPVwiJ0FicFVpOjpObycgfCBhYnBMb2NhbGl6YXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpJbnZlbnRvcnlUckFkZHJlc3MnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJpbnZlbnRvcnlUckFkZHJlc3NcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cuaW52ZW50b3J5VHJBZGRyZXNzIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6UmVjZWl2ZXJDaGFubmVsJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwicmVjZWl2ZXJDaGFubmVsXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAgICAgW25nSWZdPVwicm93LnJlY2VpdmVyQ2hhbm5lbFwiXHJcbiAgICAgICAgICAgICAgW25nSWZUaGVuXT1cInllc1wiXHJcbiAgICAgICAgICAgICAgW25nSWZFbHNlXT1cIm5vXCJcclxuICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3llcz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdWNjZXNzXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbdGl0bGVdPVwiJ0FicFVpOjpZZXMnIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hlY2tcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW3RpdGxlXT1cIidBYnBVaTo6Tm8nIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6Tm9SZW1haW5PcmRlcicgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cIm5vUmVtYWluT3JkZXJcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwicm93Lm5vUmVtYWluT3JkZXJcIiBbbmdJZlRoZW5dPVwieWVzXCIgW25nSWZFbHNlXT1cIm5vXCI+PC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjeWVzPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN1Y2Nlc3NcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFt0aXRsZV09XCInQWJwVWk6OlllcycgfCBhYnBMb2NhbGl6YXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jaGVja1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm8+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbdGl0bGVdPVwiJ0FicFVpOjpObycgfCBhYnBMb2NhbGl6YXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpVc2VTb3VXaG9BZHInIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJ1c2VTb3VXaG9BZHJcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwicm93LnVzZVNvdVdob0FkclwiIFtuZ0lmVGhlbl09XCJ5ZXNcIiBbbmdJZkVsc2VdPVwibm9cIj48L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN5ZXM+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3VjY2Vzc1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW3RpdGxlXT1cIidBYnBVaTo6WWVzJyB8IGFicExvY2FsaXphdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZWNrXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNubz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFt0aXRsZV09XCInQWJwVWk6Ok5vJyB8IGFicExvY2FsaXphdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OlVzZUN1c1N0b2NrQ29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cInVzZUN1c1N0b2NrQ29kZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICAgIFtuZ0lmXT1cInJvdy51c2VDdXNTdG9ja0NvZGVcIlxyXG4gICAgICAgICAgICAgIFtuZ0lmVGhlbl09XCJ5ZXNcIlxyXG4gICAgICAgICAgICAgIFtuZ0lmRWxzZV09XCJub1wiXHJcbiAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN5ZXM+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3VjY2Vzc1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW3RpdGxlXT1cIidBYnBVaTo6WWVzJyB8IGFicExvY2FsaXphdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZWNrXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNubz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFt0aXRsZV09XCInQWJwVWk6Ok5vJyB8IGFicExvY2FsaXphdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OlVzZUJhcmNvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJ1c2VCYXJjb2RlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInJvdy51c2VCYXJjb2RlXCIgW25nSWZUaGVuXT1cInllc1wiIFtuZ0lmRWxzZV09XCJub1wiPjwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3llcz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdWNjZXNzXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbdGl0bGVdPVwiJ0FicFVpOjpZZXMnIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hlY2tcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW3RpdGxlXT1cIidBYnBVaTo6Tm8nIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6SXRlbVRyZWVPcHRpb24nIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJpdGVtVHJlZU9wdGlvblwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5pdGVtVHJlZU9wdGlvbiB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06Ok9yZGVyUmVmZXJlbmNlRmllbGQnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJvcmRlclJlZmVyZW5jZUZpZWxkXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93Lm9yZGVyUmVmZXJlbmNlRmllbGQgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpJc1Nob3dCYXRjaE5TZXJpYWwnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJpc1Nob3dCYXRjaE5TZXJpYWxcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICAgICBbbmdJZl09XCJyb3cuaXNTaG93QmF0Y2hOU2VyaWFsXCJcclxuICAgICAgICAgICAgICBbbmdJZlRoZW5dPVwieWVzXCJcclxuICAgICAgICAgICAgICBbbmdJZkVsc2VdPVwibm9cIlxyXG4gICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjeWVzPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN1Y2Nlc3NcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFt0aXRsZV09XCInQWJwVWk6OlllcycgfCBhYnBMb2NhbGl6YXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jaGVja1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm8+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbdGl0bGVdPVwiJ0FicFVpOjpObycgfCBhYnBMb2NhbGl6YXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuICAgICAgPC9uZ3gtZGF0YXRhYmxlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvYWJwLXBhZ2U+XHJcblxyXG48YWJwLW1vZGFsIFtidXN5XT1cImlzTW9kYWxCdXN5XCIgWyh2aXNpYmxlKV09XCJpc01vZGFsT3BlblwiPlxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxyXG4gICAgPGgzPlxyXG4gICAgICB7eyAoc2VsZWN0ZWQgPyAnQWJwVWk6OkVkaXQnIDogJ2VEb251c3VtOjpOZXdQYXJhbXNlRGlzcGF0Y2gnKSB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgPC9oMz5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2FicEJvZHk+XHJcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBpZD1cInBhcmFtc2UtZGlzcGF0Y2hcIiAobmdTdWJtaXQpPVwic3VibWl0Rm9ybSgpXCIgdmFsaWRhdGVPblN1Ym1pdD5cclxuICAgICAgPGRpdiBjbGFzcz1cIm10LTIgZmFkZS1pbi10b3BcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInBhcmFtc2UtZGlzcGF0Y2gtZGVmYXVsdC1zY2VuYXJpb1wiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OkRlZmF1bHRTY2VuYXJpbycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICBpZD1cInBhcmFtc2UtZGlzcGF0Y2gtZGVmYXVsdC1zY2VuYXJpb1wiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRlZmF1bHRTY2VuYXJpb1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgYXV0b2ZvY3VzXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwicGFyYW1zZS1kaXNwYXRjaC1kZWZhdWx0LWRpcy10eXBlXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6RGVmYXVsdERpc1R5cGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgaWQ9XCJwYXJhbXNlLWRpc3BhdGNoLWRlZmF1bHQtZGlzLXR5cGVcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZWZhdWx0RGlzVHlwZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwYXJhbXNlLWRpc3BhdGNoLWRlZmF1bHQtZGlzLXNlcmlhbFwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OkRlZmF1bHREaXNTZXJpYWwnIHwgYWJwTG9jYWxpemF0aW9uIH19ICpcclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGlkPVwicGFyYW1zZS1kaXNwYXRjaC1kZWZhdWx0LWRpcy1zZXJpYWxcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZWZhdWx0RGlzU2VyaWFsXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCI4XCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgbWItM1wiPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgIGlkPVwicGFyYW1zZS1kaXNwYXRjaC11c2UtZGVmLXNjZW5hcmlvXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidXNlRGVmU2NlbmFyaW9cIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxyXG4gICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwicGFyYW1zZS1kaXNwYXRjaC11c2UtZGVmLXNjZW5hcmlvXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6VXNlRGVmU2NlbmFyaW8nIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIG1iLTNcIj5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICBpZD1cInBhcmFtc2UtZGlzcGF0Y2gtdXNlLWRlZi1kaXMtdHlwZVwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInVzZURlZkRpc1R5cGVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxyXG4gICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwicGFyYW1zZS1kaXNwYXRjaC11c2UtZGVmLWRpcy10eXBlXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6VXNlRGVmRGlzVHlwZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgbWItM1wiPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgIGlkPVwicGFyYW1zZS1kaXNwYXRjaC1uby1wcmljZVwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5vUHJpY2VcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxyXG4gICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwicGFyYW1zZS1kaXNwYXRjaC1uby1wcmljZVwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06Ok5vUHJpY2UnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwicGFyYW1zZS1kaXNwYXRjaC1pbnZlbnRvcnktdHItYWRkcmVzc1wiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OkludmVudG9yeVRyQWRkcmVzcycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICBpZD1cInBhcmFtc2UtZGlzcGF0Y2gtaW52ZW50b3J5LXRyLWFkZHJlc3NcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpbnZlbnRvcnlUckFkZHJlc3NcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIG1iLTNcIj5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICBpZD1cInBhcmFtc2UtZGlzcGF0Y2gtcmVjZWl2ZXItY2hhbm5lbFwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJlY2VpdmVyQ2hhbm5lbFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJwYXJhbXNlLWRpc3BhdGNoLXJlY2VpdmVyLWNoYW5uZWxcIiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpSZWNlaXZlckNoYW5uZWwnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIG1iLTNcIj5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICBpZD1cInBhcmFtc2UtZGlzcGF0Y2gtbm8tcmVtYWluLW9yZGVyXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibm9SZW1haW5PcmRlclwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJwYXJhbXNlLWRpc3BhdGNoLW5vLXJlbWFpbi1vcmRlclwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06Ok5vUmVtYWluT3JkZXInIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIG1iLTNcIj5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICBpZD1cInBhcmFtc2UtZGlzcGF0Y2gtdXNlLXNvdS13aG8tYWRyXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidXNlU291V2hvQWRyXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCJcclxuICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgPGxhYmVsIGZvcj1cInBhcmFtc2UtZGlzcGF0Y2gtdXNlLXNvdS13aG8tYWRyXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6VXNlU291V2hvQWRyJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBtYi0zXCI+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgaWQ9XCJwYXJhbXNlLWRpc3BhdGNoLXVzZS1jdXMtc3RvY2stY29kZVwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInVzZUN1c1N0b2NrQ29kZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJwYXJhbXNlLWRpc3BhdGNoLXVzZS1jdXMtc3RvY2stY29kZVwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OlVzZUN1c1N0b2NrQ29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgbWItM1wiPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgIGlkPVwicGFyYW1zZS1kaXNwYXRjaC11c2UtYmFyY29kZVwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInVzZUJhcmNvZGVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxyXG4gICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwicGFyYW1zZS1kaXNwYXRjaC11c2UtYmFyY29kZVwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OlVzZUJhcmNvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwicGFyYW1zZS1kaXNwYXRjaC1pdGVtLXRyZWUtb3B0aW9uXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6SXRlbVRyZWVPcHRpb24nIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgaWQ9XCJwYXJhbXNlLWRpc3BhdGNoLWl0ZW0tdHJlZS1vcHRpb25cIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpdGVtVHJlZU9wdGlvblwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwYXJhbXNlLWRpc3BhdGNoLW9yZGVyLXJlZmVyZW5jZS1maWVsZFwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06Ok9yZGVyUmVmZXJlbmNlRmllbGQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgaWQ9XCJwYXJhbXNlLWRpc3BhdGNoLW9yZGVyLXJlZmVyZW5jZS1maWVsZFwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm9yZGVyUmVmZXJlbmNlRmllbGRcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIG1iLTNcIj5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICBpZD1cInBhcmFtc2UtZGlzcGF0Y2gtaXMtc2hvdy1iYXRjaC1uc2VyaWFsXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaXNTaG93QmF0Y2hOU2VyaWFsXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCJcclxuICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgPGxhYmVsIGZvcj1cInBhcmFtc2UtZGlzcGF0Y2gtaXMtc2hvdy1iYXRjaC1uc2VyaWFsXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6SXNTaG93QmF0Y2hOU2VyaWFsJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNhYnBGb290ZXI+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgYWJwQ2xvc2U+XHJcbiAgICAgIHt7ICdBYnBVaTo6Q2FuY2VsJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPGFicC1idXR0b24gaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIiBidXR0b25UeXBlPVwic3VibWl0XCIgZm9ybU5hbWU9XCJwYXJhbXNlLWRpc3BhdGNoXCI+XHJcbiAgICAgIHt7ICdBYnBVaTo6U2F2ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvYWJwLWJ1dHRvbj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2FicC1tb2RhbD5cclxuIl19
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1zZS1kaXNwYXRjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lLWRvbnVzdW0vc3JjL2xpYi9wYXJhbXNlLWRpc3BhdGNoZXMvcGFyYW1zZS1kaXNwYXRjaC9jb21wb25lbnRzL3BhcmFtc2UtZGlzcGF0Y2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZS1kb251c3VtL3NyYy9saWIvcGFyYW1zZS1kaXNwYXRjaGVzL3BhcmFtc2UtZGlzcGF0Y2gvY29tcG9uZW50cy9wYXJhbXNlLWRpc3BhdGNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBTyxZQUFZLEVBQUUsV0FBVyxFQUFrQyxNQUFNLGNBQWMsQ0FBQztBQUM5RixPQUFPLEVBQUUsWUFBWSxFQUF1QixNQUFNLHNCQUFzQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBYWxFLE1BQU0sT0FBTyx3QkFBd0I7SUFvQm5DLFlBQ2tCLElBQWlCLEVBQ2pCLEtBQXFCLEVBQ3JCLE9BQStCLEVBQ3ZDLFlBQWlDLEVBQ2pDLEVBQWU7UUFKUCxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQXdCO1FBQ3ZDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBeEJ6QixTQUFJLEdBQXVDO1lBQ3pDLEtBQUssRUFBRSxFQUFFO1lBQ1QsVUFBVSxFQUFFLENBQUM7U0FDZCxDQUFDO1FBRUYsWUFBTyxHQUFHLEVBQStCLENBQUM7UUFJMUMsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFFdkIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFcEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFcEIsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO0lBVXpCLENBQUM7SUFFSixRQUFRO1FBQ04sTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUEwQixFQUFFLEVBQUUsQ0FDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDbkIsR0FBRyxLQUFLO1lBQ1IsR0FBRyxJQUFJLENBQUMsT0FBTztZQUNmLFVBQVUsRUFBRSxLQUFLLENBQUMsTUFBTTtTQUN6QixDQUFDLENBQUM7UUFFTCxNQUFNLE9BQU8sR0FBRyxDQUFDLElBQXdDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztRQUVqRixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQStCLENBQUM7SUFDakQsQ0FBQztJQUVELFNBQVM7UUFDUCxNQUFNLEVBQ0osZUFBZSxFQUNmLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLGFBQWEsRUFDYixPQUFPLEVBQ1Asa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixhQUFhLEVBQ2IsWUFBWSxFQUNaLGVBQWUsRUFDZixVQUFVLEVBQ1YsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3BCLG1CQUFtQixHQUNwQixHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1FBRXhCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDeEIsZUFBZSxFQUFFLENBQUMsZUFBZSxJQUFJLElBQUksRUFBRSxFQUFFLENBQUM7WUFDOUMsY0FBYyxFQUFFLENBQUMsY0FBYyxJQUFJLElBQUksRUFBRSxFQUFFLENBQUM7WUFDNUMsZ0JBQWdCLEVBQUUsQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1RixjQUFjLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQzNCLGFBQWEsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDMUIsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNwQixrQkFBa0IsRUFBRSxDQUFDLGtCQUFrQixJQUFJLElBQUksRUFBRSxFQUFFLENBQUM7WUFDcEQsZUFBZSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUM1QixhQUFhLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQzFCLFlBQVksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDekIsZUFBZSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUM1QixVQUFVLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3ZCLGNBQWMsRUFBRSxDQUFDLGNBQWMsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQzVDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUM1QixrQkFBa0IsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDL0Isb0JBQW9CLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ2pDLG1CQUFtQixFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztTQUNqQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFFOUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVE7WUFDM0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFO2dCQUNwQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztnQkFDbEIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0I7YUFDakQsQ0FBQztZQUNKLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXpDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBRXhCLE9BQU87YUFDSixJQUFJLENBQ0gsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUMxQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQzNCO2FBQ0EsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUEwQjtRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUEwQjtRQUMvQixJQUFJLENBQUMsWUFBWTthQUNkLElBQUksQ0FBQyxxQ0FBcUMsRUFBRSxzQkFBc0IsRUFBRTtZQUNuRSx5QkFBeUIsRUFBRSxFQUFFO1NBQzlCLENBQUM7YUFDRCxJQUFJLENBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLLFlBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQ3hELFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FDaEQ7YUFDQSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDaEMsSUFBSSxDQUFDLE9BQU87YUFDVCxnQkFBZ0IsRUFBRTthQUNsQixJQUFJLENBQ0gsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQ3hGLEVBQ0QsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxDQUFDLENBQ25EO2FBQ0EsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2xCLFlBQVksQ0FBQyxNQUFNLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O3FIQXhKVSx3QkFBd0I7eUdBQXhCLHdCQUF3QiwrQ0FKeEIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQywwQkNmOUUsbTF5Q0FraUNBOzJGRC9nQ2Esd0JBQXdCO2tCQVBwQyxTQUFTOytCQUNFLHNCQUFzQixtQkFDZix1QkFBdUIsQ0FBQyxPQUFPLGFBQ3JDLENBQUMsV0FBVyxFQUFFLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQlAsIGRvd25sb2FkQmxvYiwgTGlzdFNlcnZpY2UsIFBhZ2VkUmVzdWx0RHRvLCBUcmFja0J5U2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvbiwgQ29uZmlybWF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZC9leHRlbnNpb25zJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5nYkRhdGVBZGFwdGVyIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIGZpbmFsaXplLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHR5cGUge1xyXG4gIEdldFBhcmFtc2VEaXNwYXRjaGVzSW5wdXQsXHJcbiAgUGFyYW1zZURpc3BhdGNoRHRvLFxyXG59IGZyb20gJy4uLy4uLy4uL3Byb3h5L3BhcmFtc2UtZGlzcGF0Y2hlcy9tb2RlbHMnO1xyXG5pbXBvcnQgeyBQYXJhbXNlRGlzcGF0Y2hTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvcGFyYW1zZS1kaXNwYXRjaGVzL3BhcmFtc2UtZGlzcGF0Y2guc2VydmljZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXBhcmFtc2UtZGlzcGF0Y2gnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcclxuICBwcm92aWRlcnM6IFtMaXN0U2VydmljZSwgeyBwcm92aWRlOiBOZ2JEYXRlQWRhcHRlciwgdXNlQ2xhc3M6IERhdGVBZGFwdGVyIH1dLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wYXJhbXNlLWRpc3BhdGNoLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZXM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFyYW1zZURpc3BhdGNoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBkYXRhOiBQYWdlZFJlc3VsdER0bzxQYXJhbXNlRGlzcGF0Y2hEdG8+ID0ge1xyXG4gICAgaXRlbXM6IFtdLFxyXG4gICAgdG90YWxDb3VudDogMCxcclxuICB9O1xyXG5cclxuICBmaWx0ZXJzID0ge30gYXMgR2V0UGFyYW1zZURpc3BhdGNoZXNJbnB1dDtcclxuXHJcbiAgZm9ybTogRm9ybUdyb3VwO1xyXG5cclxuICBpc0ZpbHRlcnNIaWRkZW4gPSB0cnVlO1xyXG5cclxuICBpc01vZGFsQnVzeSA9IGZhbHNlO1xyXG5cclxuICBpc01vZGFsT3BlbiA9IGZhbHNlO1xyXG5cclxuICBpc0V4cG9ydFRvRXhjZWxCdXN5ID0gZmFsc2U7XHJcblxyXG4gIHNlbGVjdGVkPzogUGFyYW1zZURpc3BhdGNoRHRvO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZWFkb25seSBsaXN0OiBMaXN0U2VydmljZSxcclxuICAgIHB1YmxpYyByZWFkb25seSB0cmFjazogVHJhY2tCeVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgc2VydmljZTogUGFyYW1zZURpc3BhdGNoU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uZmlybWF0aW9uOiBDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXJcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgY29uc3QgZ2V0RGF0YSA9IChxdWVyeTogQUJQLlBhZ2VRdWVyeVBhcmFtcykgPT5cclxuICAgICAgdGhpcy5zZXJ2aWNlLmdldExpc3Qoe1xyXG4gICAgICAgIC4uLnF1ZXJ5LFxyXG4gICAgICAgIC4uLnRoaXMuZmlsdGVycyxcclxuICAgICAgICBmaWx0ZXJUZXh0OiBxdWVyeS5maWx0ZXIsXHJcbiAgICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IHNldERhdGEgPSAobGlzdDogUGFnZWRSZXN1bHREdG88UGFyYW1zZURpc3BhdGNoRHRvPikgPT4gKHRoaXMuZGF0YSA9IGxpc3QpO1xyXG5cclxuICAgIHRoaXMubGlzdC5ob29rVG9RdWVyeShnZXREYXRhKS5zdWJzY3JpYmUoc2V0RGF0YSk7XHJcbiAgfVxyXG5cclxuICBjbGVhckZpbHRlcnMoKSB7XHJcbiAgICB0aGlzLmZpbHRlcnMgPSB7fSBhcyBHZXRQYXJhbXNlRGlzcGF0Y2hlc0lucHV0O1xyXG4gIH1cclxuXHJcbiAgYnVpbGRGb3JtKCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBkZWZhdWx0U2NlbmFyaW8sXHJcbiAgICAgIGRlZmF1bHREaXNUeXBlLFxyXG4gICAgICBkZWZhdWx0RGlzU2VyaWFsLFxyXG4gICAgICB1c2VEZWZTY2VuYXJpbyxcclxuICAgICAgdXNlRGVmRGlzVHlwZSxcclxuICAgICAgbm9QcmljZSxcclxuICAgICAgaW52ZW50b3J5VHJBZGRyZXNzLFxyXG4gICAgICByZWNlaXZlckNoYW5uZWwsXHJcbiAgICAgIG5vUmVtYWluT3JkZXIsXHJcbiAgICAgIHVzZVNvdVdob0FkcixcclxuICAgICAgdXNlQ3VzU3RvY2tDb2RlLFxyXG4gICAgICB1c2VCYXJjb2RlLFxyXG4gICAgICBpdGVtVHJlZU9wdGlvbixcclxuICAgICAgb3JkZXJSZWZlcmVuY2VGaWVsZCxcclxuICAgICAgaXNTaG93QmF0Y2hOU2VyaWFsLFxyXG4gICAgICBpc1BhcnRuZXJDYXRhbG9nRGVzYyxcclxuICAgICAgaXNQYXJ0bmVyQ2F0YWxvZ051bSxcclxuICAgIH0gPSB0aGlzLnNlbGVjdGVkIHx8IHt9O1xyXG5cclxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBkZWZhdWx0U2NlbmFyaW86IFtkZWZhdWx0U2NlbmFyaW8gPz8gbnVsbCwgW11dLFxyXG4gICAgICBkZWZhdWx0RGlzVHlwZTogW2RlZmF1bHREaXNUeXBlID8/IG51bGwsIFtdXSxcclxuICAgICAgZGVmYXVsdERpc1NlcmlhbDogW2RlZmF1bHREaXNTZXJpYWwgPz8gbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDgpXV0sXHJcbiAgICAgIHVzZURlZlNjZW5hcmlvOiBbZmFsc2UsIFtdXSxcclxuICAgICAgdXNlRGVmRGlzVHlwZTogW2ZhbHNlLCBbXV0sXHJcbiAgICAgIG5vUHJpY2U6IFtmYWxzZSwgW11dLFxyXG4gICAgICBpbnZlbnRvcnlUckFkZHJlc3M6IFtpbnZlbnRvcnlUckFkZHJlc3MgPz8gbnVsbCwgW11dLFxyXG4gICAgICByZWNlaXZlckNoYW5uZWw6IFtmYWxzZSwgW11dLFxyXG4gICAgICBub1JlbWFpbk9yZGVyOiBbZmFsc2UsIFtdXSxcclxuICAgICAgdXNlU291V2hvQWRyOiBbZmFsc2UsIFtdXSxcclxuICAgICAgdXNlQ3VzU3RvY2tDb2RlOiBbZmFsc2UsIFtdXSxcclxuICAgICAgdXNlQmFyY29kZTogW2ZhbHNlLCBbXV0sXHJcbiAgICAgIGl0ZW1UcmVlT3B0aW9uOiBbaXRlbVRyZWVPcHRpb24gPz8gbnVsbCwgW11dLFxyXG4gICAgICBvcmRlclJlZmVyZW5jZUZpZWxkOiBbMCwgW11dLFxyXG4gICAgICBpc1Nob3dCYXRjaE5TZXJpYWw6IFtmYWxzZSwgW11dLFxyXG4gICAgICBpc1BhcnRuZXJDYXRhbG9nRGVzYzogW2ZhbHNlLCBbXV0sXHJcbiAgICAgIGlzUGFydG5lckNhdGFsb2dOdW06IFtmYWxzZSwgW11dLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBoaWRlRm9ybSgpIHtcclxuICAgIHRoaXMuaXNNb2RhbE9wZW4gPSBmYWxzZTtcclxuICAgIHRoaXMuZm9ybS5yZXNldCgpO1xyXG4gIH1cclxuXHJcbiAgc2hvd0Zvcm0oKSB7XHJcbiAgICB0aGlzLmJ1aWxkRm9ybSgpO1xyXG4gICAgdGhpcy5pc01vZGFsT3BlbiA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBzdWJtaXRGb3JtKCkge1xyXG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgcmVxdWVzdCA9IHRoaXMuc2VsZWN0ZWRcclxuICAgICAgPyB0aGlzLnNlcnZpY2UudXBkYXRlKHRoaXMuc2VsZWN0ZWQuaWQsIHtcclxuICAgICAgICAgIC4uLnRoaXMuZm9ybS52YWx1ZSxcclxuICAgICAgICAgIGNvbmN1cnJlbmN5U3RhbXA6IHRoaXMuc2VsZWN0ZWQuY29uY3VycmVuY3lTdGFtcCxcclxuICAgICAgICB9KVxyXG4gICAgICA6IHRoaXMuc2VydmljZS5jcmVhdGUodGhpcy5mb3JtLnZhbHVlKTtcclxuXHJcbiAgICB0aGlzLmlzTW9kYWxCdXN5ID0gdHJ1ZTtcclxuXHJcbiAgICByZXF1ZXN0XHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmlzTW9kYWxCdXN5ID0gZmFsc2UpKSxcclxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5oaWRlRm9ybSgpKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5saXN0LmdldCk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGUoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5zaG93Rm9ybSgpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlKHJlY29yZDogUGFyYW1zZURpc3BhdGNoRHRvKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkID0gcmVjb3JkO1xyXG4gICAgdGhpcy5zaG93Rm9ybSgpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlKHJlY29yZDogUGFyYW1zZURpc3BhdGNoRHRvKSB7XHJcbiAgICB0aGlzLmNvbmZpcm1hdGlvblxyXG4gICAgICAud2FybignZURvbnVzdW06OkRlbGV0ZUNvbmZpcm1hdGlvbk1lc3NhZ2UnLCAnZURvbnVzdW06OkFyZVlvdVN1cmUnLCB7XHJcbiAgICAgICAgbWVzc2FnZUxvY2FsaXphdGlvblBhcmFtczogW10sXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGZpbHRlcihzdGF0dXMgPT4gc3RhdHVzID09PSBDb25maXJtYXRpb24uU3RhdHVzLmNvbmZpcm0pLFxyXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnNlcnZpY2UuZGVsZXRlKHJlY29yZC5pZCkpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSh0aGlzLmxpc3QuZ2V0KTtcclxuICB9XHJcblxyXG4gIGV4cG9ydFRvRXhjZWwoKSB7XHJcbiAgICB0aGlzLmlzRXhwb3J0VG9FeGNlbEJ1c3kgPSB0cnVlO1xyXG4gICAgdGhpcy5zZXJ2aWNlXHJcbiAgICAgIC5nZXREb3dubG9hZFRva2VuKClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgc3dpdGNoTWFwKCh7IHRva2VuIH0pID0+XHJcbiAgICAgICAgICB0aGlzLnNlcnZpY2UuZ2V0TGlzdEFzRXhjZWxGaWxlKHsgZG93bmxvYWRUb2tlbjogdG9rZW4sIGZpbHRlclRleHQ6IHRoaXMubGlzdC5maWx0ZXIgfSlcclxuICAgICAgICApLFxyXG4gICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmlzRXhwb3J0VG9FeGNlbEJ1c3kgPSBmYWxzZSkpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgIGRvd25sb2FkQmxvYihyZXN1bHQsICdQYXJhbXNlRGlzcGF0Y2gueGxzeCcpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGFicC1wYWdlIFt0aXRsZV09XCInZURvbnVzdW06OlBhcmFtc2VEaXNwYXRjaGVzJyB8IGFicExvY2FsaXphdGlvblwiPlxyXG4gIDxhYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lciBjbGFzcz1cImNvbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInRleHQtbGctZW5kIHB0LTJcIj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSBteC0yXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNFeHBvcnRUb0V4Y2VsQnVzeVwiXHJcbiAgICAgICAgKGNsaWNrKT1cImV4cG9ydFRvRXhjZWwoKVwiXHJcbiAgICAgID5cclxuICAgICAgICB7eyAnZURvbnVzdW06OkV4cG9ydFRvRXhjZWwnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgICphYnBQZXJtaXNzaW9uPVwiJ2VEb251c3VtLlBhcmFtc2VEaXNwYXRjaGVzLkNyZWF0ZSdcIlxyXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgKGNsaWNrKT1cImNyZWF0ZSgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcGx1cyBtZS0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgIHt7ICdlRG9udXN1bTo6TmV3UGFyYW1zZURpc3BhdGNoJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvYWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXI+XHJcblxyXG4gIDxhYnAtYWR2YW5jZWQtZW50aXR5LWZpbHRlcnMgbG9jYWxpemF0aW9uU291cmNlTmFtZT1cImVEb251c3VtXCIgW2xpc3RdPVwibGlzdFwiPlxyXG4gICAgPGFicC1hZHZhbmNlZC1lbnRpdHktZmlsdGVycy1mb3JtPlxyXG4gICAgICA8Zm9ybSAjZmlsdGVyRm9ybSAoa2V5dXAuZW50ZXIpPVwibGlzdC5nZXQoKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibWluRGVmYXVsdFNjZW5hcmlvXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1pbkRlZmF1bHRTY2VuYXJpbycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwibWluRGVmYXVsdFNjZW5hcmlvXCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmRlZmF1bHRTY2VuYXJpb01pblwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhEZWZhdWx0U2NlbmFyaW9cIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TWF4RGVmYXVsdFNjZW5hcmlvJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJtYXhEZWZhdWx0U2NlbmFyaW9cIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuZGVmYXVsdFNjZW5hcmlvTWF4XCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibWluRGVmYXVsdERpc1R5cGVcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TWluRGVmYXVsdERpc1R5cGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cIm1pbkRlZmF1bHREaXNUeXBlXCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmRlZmF1bHREaXNUeXBlTWluXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1heERlZmF1bHREaXNUeXBlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1heERlZmF1bHREaXNUeXBlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJtYXhEZWZhdWx0RGlzVHlwZVwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5kZWZhdWx0RGlzVHlwZU1heFwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImRlZmF1bHREaXNTZXJpYWxGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6RGVmYXVsdERpc1NlcmlhbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwiZGVmYXVsdERpc1NlcmlhbEZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuZGVmYXVsdERpc1NlcmlhbFwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInVzZURlZlNjZW5hcmlvRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlVzZURlZlNjZW5hcmlvJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJ1c2VEZWZTY2VuYXJpb1wiXHJcbiAgICAgICAgICAgICAgICBpZD1cInVzZURlZlNjZW5hcmlvRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1zZWxlY3QgZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy51c2VEZWZTY2VuYXJpb1wiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJsaXN0LmdldCgpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIlwiPjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJ0cnVlXCI+e3sgJ0FicFVpOjpZZXMnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cImZhbHNlXCI+e3sgJ0FicFVpOjpObycgfCBhYnBMb2NhbGl6YXRpb24gfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwidXNlRGVmRGlzVHlwZUZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpVc2VEZWZEaXNUeXBlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJ1c2VEZWZEaXNUeXBlXCJcclxuICAgICAgICAgICAgICAgIGlkPVwidXNlRGVmRGlzVHlwZUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMudXNlRGVmRGlzVHlwZVwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJsaXN0LmdldCgpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIlwiPjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJ0cnVlXCI+e3sgJ0FicFVpOjpZZXMnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cImZhbHNlXCI+e3sgJ0FicFVpOjpObycgfCBhYnBMb2NhbGl6YXRpb24gfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibm9QcmljZUZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpOb1ByaWNlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJub1ByaWNlXCJcclxuICAgICAgICAgICAgICAgIGlkPVwibm9QcmljZUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMubm9QcmljZVwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJsaXN0LmdldCgpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIlwiPjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJ0cnVlXCI+e3sgJ0FicFVpOjpZZXMnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cImZhbHNlXCI+e3sgJ0FicFVpOjpObycgfCBhYnBMb2NhbGl6YXRpb24gfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibWluSW52ZW50b3J5VHJBZGRyZXNzXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1pbkludmVudG9yeVRyQWRkcmVzcycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwibWluSW52ZW50b3J5VHJBZGRyZXNzXCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmludmVudG9yeVRyQWRkcmVzc01pblwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhJbnZlbnRvcnlUckFkZHJlc3NcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TWF4SW52ZW50b3J5VHJBZGRyZXNzJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJtYXhJbnZlbnRvcnlUckFkZHJlc3NcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuaW52ZW50b3J5VHJBZGRyZXNzTWF4XCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwicmVjZWl2ZXJDaGFubmVsRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlJlY2VpdmVyQ2hhbm5lbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICBuYW1lPVwicmVjZWl2ZXJDaGFubmVsXCJcclxuICAgICAgICAgICAgICAgIGlkPVwicmVjZWl2ZXJDaGFubmVsRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1zZWxlY3QgZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5yZWNlaXZlckNoYW5uZWxcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwibGlzdC5nZXQoKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJcIj48L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwidHJ1ZVwiPnt7ICdBYnBVaTo6WWVzJyB8IGFicExvY2FsaXphdGlvbiB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJmYWxzZVwiPnt7ICdBYnBVaTo6Tm8nIHwgYWJwTG9jYWxpemF0aW9uIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm5vUmVtYWluT3JkZXJGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6Tm9SZW1haW5PcmRlcicgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICBuYW1lPVwibm9SZW1haW5PcmRlclwiXHJcbiAgICAgICAgICAgICAgICBpZD1cIm5vUmVtYWluT3JkZXJGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXNlbGVjdCBmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLm5vUmVtYWluT3JkZXJcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwibGlzdC5nZXQoKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJcIj48L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwidHJ1ZVwiPnt7ICdBYnBVaTo6WWVzJyB8IGFicExvY2FsaXphdGlvbiB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJmYWxzZVwiPnt7ICdBYnBVaTo6Tm8nIHwgYWJwTG9jYWxpemF0aW9uIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInVzZVNvdVdob0FkckZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpVc2VTb3VXaG9BZHInIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgbmFtZT1cInVzZVNvdVdob0FkclwiXHJcbiAgICAgICAgICAgICAgICBpZD1cInVzZVNvdVdob0FkckZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMudXNlU291V2hvQWRyXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImxpc3QuZ2V0KClcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwiXCI+PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cInRydWVcIj57eyAnQWJwVWk6OlllcycgfCBhYnBMb2NhbGl6YXRpb24gfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwiZmFsc2VcIj57eyAnQWJwVWk6Ok5vJyB8IGFicExvY2FsaXphdGlvbiB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJ1c2VDdXNTdG9ja0NvZGVGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6VXNlQ3VzU3RvY2tDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJ1c2VDdXNTdG9ja0NvZGVcIlxyXG4gICAgICAgICAgICAgICAgaWQ9XCJ1c2VDdXNTdG9ja0NvZGVGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXNlbGVjdCBmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnVzZUN1c1N0b2NrQ29kZVwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJsaXN0LmdldCgpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIlwiPjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJ0cnVlXCI+e3sgJ0FicFVpOjpZZXMnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cImZhbHNlXCI+e3sgJ0FicFVpOjpObycgfCBhYnBMb2NhbGl6YXRpb24gfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwidXNlQmFyY29kZUZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpVc2VCYXJjb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJ1c2VCYXJjb2RlXCJcclxuICAgICAgICAgICAgICAgIGlkPVwidXNlQmFyY29kZUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMudXNlQmFyY29kZVwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJsaXN0LmdldCgpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIlwiPjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJ0cnVlXCI+e3sgJ0FicFVpOjpZZXMnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cImZhbHNlXCI+e3sgJ0FicFVpOjpObycgfCBhYnBMb2NhbGl6YXRpb24gfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibWluSXRlbVRyZWVPcHRpb25cIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TWluSXRlbVRyZWVPcHRpb24nIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cIm1pbkl0ZW1UcmVlT3B0aW9uXCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLml0ZW1UcmVlT3B0aW9uTWluXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1heEl0ZW1UcmVlT3B0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1heEl0ZW1UcmVlT3B0aW9uJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJtYXhJdGVtVHJlZU9wdGlvblwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5pdGVtVHJlZU9wdGlvbk1heFwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1pbk9yZGVyUmVmZXJlbmNlRmllbGRcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TWluT3JkZXJSZWZlcmVuY2VGaWVsZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwibWluT3JkZXJSZWZlcmVuY2VGaWVsZFwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5vcmRlclJlZmVyZW5jZUZpZWxkTWluXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1heE9yZGVyUmVmZXJlbmNlRmllbGRcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TWF4T3JkZXJSZWZlcmVuY2VGaWVsZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwibWF4T3JkZXJSZWZlcmVuY2VGaWVsZFwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5vcmRlclJlZmVyZW5jZUZpZWxkTWF4XCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaXNTaG93QmF0Y2hOU2VyaWFsRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OklzU2hvd0JhdGNoTlNlcmlhbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICBuYW1lPVwiaXNTaG93QmF0Y2hOU2VyaWFsXCJcclxuICAgICAgICAgICAgICAgIGlkPVwiaXNTaG93QmF0Y2hOU2VyaWFsRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1zZWxlY3QgZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5pc1Nob3dCYXRjaE5TZXJpYWxcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwibGlzdC5nZXQoKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJcIj48L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwidHJ1ZVwiPnt7ICdBYnBVaTo6WWVzJyB8IGFicExvY2FsaXphdGlvbiB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJmYWxzZVwiPnt7ICdBYnBVaTo6Tm8nIHwgYWJwTG9jYWxpemF0aW9uIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImlzUGFydG5lckNhdGFsb2dEZXNjRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OklzUGFydG5lckNhdGFsb2dEZXNjJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJpc1BhcnRuZXJDYXRhbG9nRGVzY1wiXHJcbiAgICAgICAgICAgICAgICBpZD1cImlzUGFydG5lckNhdGFsb2dEZXNjRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1zZWxlY3QgZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5pc1BhcnRuZXJDYXRhbG9nRGVzY1wiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJsaXN0LmdldCgpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIlwiPjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJ0cnVlXCI+e3sgJ0FicFVpOjpZZXMnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cImZhbHNlXCI+e3sgJ0FicFVpOjpObycgfCBhYnBMb2NhbGl6YXRpb24gfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaXNQYXJ0bmVyQ2F0YWxvZ051bUZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpJc1BhcnRuZXJDYXRhbG9nTnVtJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJpc1BhcnRuZXJDYXRhbG9nTnVtXCJcclxuICAgICAgICAgICAgICAgIGlkPVwiaXNQYXJ0bmVyQ2F0YWxvZ051bUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuaXNQYXJ0bmVyQ2F0YWxvZ051bVwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJsaXN0LmdldCgpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIlwiPjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJ0cnVlXCI+e3sgJ0FicFVpOjpZZXMnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cImZhbHNlXCI+e3sgJ0FicFVpOjpObycgfCBhYnBMb2NhbGl6YXRpb24gfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvIGFsaWduLXNlbGYtZW5kIG1iLTNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBjb2wtc20tYXV0byBkLWdyaWRcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnlcIiAoY2xpY2spPVwiY2xlYXJGaWx0ZXJzKClcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb24gfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgY29sLXNtLWF1dG8gZC1ncmlkXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJsaXN0LmdldCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ICdBYnBVaTo6UmVmcmVzaCcgfCBhYnBMb2NhbGl6YXRpb24gfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9mb3JtPlxyXG4gICAgPC9hYnAtYWR2YW5jZWQtZW50aXR5LWZpbHRlcnMtZm9ybT5cclxuICA8L2FicC1hZHZhbmNlZC1lbnRpdHktZmlsdGVycz5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgPG5neC1kYXRhdGFibGUgW3Jvd3NdPVwiZGF0YS5pdGVtc1wiIFtjb3VudF09XCJkYXRhLnRvdGFsQ291bnRcIiBbbGlzdF09XCJsaXN0XCIgZGVmYXVsdD5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIFtuYW1lXT1cIidBYnBVaTo6QWN0aW9ucycgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgW21heFdpZHRoXT1cIjE1MFwiXHJcbiAgICAgICAgICBbd2lkdGhdPVwiMTUwXCJcclxuICAgICAgICAgIFtzb3J0YWJsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtaT1cInJvd0luZGV4XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duIGNvbnRhaW5lcj1cImJvZHlcIiBjbGFzcz1cImQtaW5saW5lLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIGRyb3Bkb3duLXRvZ2dsZVwiXHJcbiAgICAgICAgICAgICAgICBkYXRhLXRvZ2dsZT1cImRyb3Bkb3duXCJcclxuICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duVG9nZ2xlXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jb2cgbWUtMVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIHt7ICdBYnBVaTo6QWN0aW9ucycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnU+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duSXRlbVxyXG4gICAgICAgICAgICAgICAgICAqYWJwUGVybWlzc2lvbj1cIidlRG9udXN1bS5QYXJhbXNlRGlzcGF0Y2hlcy5FZGl0J1wiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ1cGRhdGUocm93KVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHt7ICdBYnBVaTo6RWRpdCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgbmdiRHJvcGRvd25JdGVtXHJcbiAgICAgICAgICAgICAgICAgICphYnBQZXJtaXNzaW9uPVwiJ2VEb251c3VtLlBhcmFtc2VEaXNwYXRjaGVzLkRlbGV0ZSdcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlKHJvdylcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7eyAnQWJwVWk6OkRlbGV0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpEZWZhdWx0U2NlbmFyaW8nIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJkZWZhdWx0U2NlbmFyaW9cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cuZGVmYXVsdFNjZW5hcmlvIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6RGVmYXVsdERpc1R5cGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJkZWZhdWx0RGlzVHlwZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5kZWZhdWx0RGlzVHlwZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OkRlZmF1bHREaXNTZXJpYWwnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJkZWZhdWx0RGlzU2VyaWFsXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LmRlZmF1bHREaXNTZXJpYWwgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpVc2VEZWZTY2VuYXJpbycgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cInVzZURlZlNjZW5hcmlvXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInJvdy51c2VEZWZTY2VuYXJpb1wiIFtuZ0lmVGhlbl09XCJ5ZXNcIiBbbmdJZkVsc2VdPVwibm9cIj48L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN5ZXM+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3VjY2Vzc1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW3RpdGxlXT1cIidBYnBVaTo6WWVzJyB8IGFicExvY2FsaXphdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZWNrXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNubz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFt0aXRsZV09XCInQWJwVWk6Ok5vJyB8IGFicExvY2FsaXphdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OlVzZURlZkRpc1R5cGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJ1c2VEZWZEaXNUeXBlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInJvdy51c2VEZWZEaXNUeXBlXCIgW25nSWZUaGVuXT1cInllc1wiIFtuZ0lmRWxzZV09XCJub1wiPjwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3llcz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdWNjZXNzXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbdGl0bGVdPVwiJ0FicFVpOjpZZXMnIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hlY2tcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW3RpdGxlXT1cIidBYnBVaTo6Tm8nIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBuYW1lPVwie3sgJ2VEb251c3VtOjpOb1ByaWNlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiIHByb3A9XCJub1ByaWNlXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInJvdy5ub1ByaWNlXCIgW25nSWZUaGVuXT1cInllc1wiIFtuZ0lmRWxzZV09XCJub1wiPjwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3llcz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdWNjZXNzXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbdGl0bGVdPVwiJ0FicFVpOjpZZXMnIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hlY2tcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW3RpdGxlXT1cIidBYnBVaTo6Tm8nIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6SW52ZW50b3J5VHJBZGRyZXNzJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwiaW52ZW50b3J5VHJBZGRyZXNzXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LmludmVudG9yeVRyQWRkcmVzcyB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OlJlY2VpdmVyQ2hhbm5lbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cInJlY2VpdmVyQ2hhbm5lbFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICAgIFtuZ0lmXT1cInJvdy5yZWNlaXZlckNoYW5uZWxcIlxyXG4gICAgICAgICAgICAgIFtuZ0lmVGhlbl09XCJ5ZXNcIlxyXG4gICAgICAgICAgICAgIFtuZ0lmRWxzZV09XCJub1wiXHJcbiAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN5ZXM+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3VjY2Vzc1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW3RpdGxlXT1cIidBYnBVaTo6WWVzJyB8IGFicExvY2FsaXphdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZWNrXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNubz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFt0aXRsZV09XCInQWJwVWk6Ok5vJyB8IGFicExvY2FsaXphdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06Ok5vUmVtYWluT3JkZXInIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJub1JlbWFpbk9yZGVyXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInJvdy5ub1JlbWFpbk9yZGVyXCIgW25nSWZUaGVuXT1cInllc1wiIFtuZ0lmRWxzZV09XCJub1wiPjwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3llcz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdWNjZXNzXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbdGl0bGVdPVwiJ0FicFVpOjpZZXMnIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hlY2tcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW3RpdGxlXT1cIidBYnBVaTo6Tm8nIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6VXNlU291V2hvQWRyJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwidXNlU291V2hvQWRyXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInJvdy51c2VTb3VXaG9BZHJcIiBbbmdJZlRoZW5dPVwieWVzXCIgW25nSWZFbHNlXT1cIm5vXCI+PC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjeWVzPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN1Y2Nlc3NcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFt0aXRsZV09XCInQWJwVWk6OlllcycgfCBhYnBMb2NhbGl6YXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jaGVja1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm8+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbdGl0bGVdPVwiJ0FicFVpOjpObycgfCBhYnBMb2NhbGl6YXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpVc2VDdXNTdG9ja0NvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJ1c2VDdXNTdG9ja0NvZGVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICAgICBbbmdJZl09XCJyb3cudXNlQ3VzU3RvY2tDb2RlXCJcclxuICAgICAgICAgICAgICBbbmdJZlRoZW5dPVwieWVzXCJcclxuICAgICAgICAgICAgICBbbmdJZkVsc2VdPVwibm9cIlxyXG4gICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjeWVzPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN1Y2Nlc3NcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFt0aXRsZV09XCInQWJwVWk6OlllcycgfCBhYnBMb2NhbGl6YXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jaGVja1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm8+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbdGl0bGVdPVwiJ0FicFVpOjpObycgfCBhYnBMb2NhbGl6YXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpVc2VCYXJjb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwidXNlQmFyY29kZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJyb3cudXNlQmFyY29kZVwiIFtuZ0lmVGhlbl09XCJ5ZXNcIiBbbmdJZkVsc2VdPVwibm9cIj48L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN5ZXM+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3VjY2Vzc1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW3RpdGxlXT1cIidBYnBVaTo6WWVzJyB8IGFicExvY2FsaXphdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZWNrXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNubz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFt0aXRsZV09XCInQWJwVWk6Ok5vJyB8IGFicExvY2FsaXphdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06Okl0ZW1UcmVlT3B0aW9uJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwiaXRlbVRyZWVPcHRpb25cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cuaXRlbVRyZWVPcHRpb24gfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpPcmRlclJlZmVyZW5jZUZpZWxkJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwib3JkZXJSZWZlcmVuY2VGaWVsZFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5vcmRlclJlZmVyZW5jZUZpZWxkIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6SXNTaG93QmF0Y2hOU2VyaWFsJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwiaXNTaG93QmF0Y2hOU2VyaWFsXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAgICAgW25nSWZdPVwicm93LmlzU2hvd0JhdGNoTlNlcmlhbFwiXHJcbiAgICAgICAgICAgICAgW25nSWZUaGVuXT1cInllc1wiXHJcbiAgICAgICAgICAgICAgW25nSWZFbHNlXT1cIm5vXCJcclxuICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3llcz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdWNjZXNzXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbdGl0bGVdPVwiJ0FicFVpOjpZZXMnIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hlY2tcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW3RpdGxlXT1cIidBYnBVaTo6Tm8nIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6SXNQYXJ0bmVyQ2F0YWxvZ0Rlc2MnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJpc1BhcnRuZXJDYXRhbG9nRGVzY1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICAgIFtuZ0lmXT1cInJvdy5pc1BhcnRuZXJDYXRhbG9nRGVzY1wiXHJcbiAgICAgICAgICAgICAgW25nSWZUaGVuXT1cInllc1wiXHJcbiAgICAgICAgICAgICAgW25nSWZFbHNlXT1cIm5vXCJcclxuICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3llcz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdWNjZXNzXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbdGl0bGVdPVwiJ0FicFVpOjpZZXMnIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hlY2tcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW3RpdGxlXT1cIidBYnBVaTo6Tm8nIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6SXNQYXJ0bmVyQ2F0YWxvZ051bScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cImlzUGFydG5lckNhdGFsb2dOdW1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICAgICBbbmdJZl09XCJyb3cuaXNQYXJ0bmVyQ2F0YWxvZ051bVwiXHJcbiAgICAgICAgICAgICAgW25nSWZUaGVuXT1cInllc1wiXHJcbiAgICAgICAgICAgICAgW25nSWZFbHNlXT1cIm5vXCJcclxuICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3llcz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdWNjZXNzXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbdGl0bGVdPVwiJ0FicFVpOjpZZXMnIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hlY2tcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW3RpdGxlXT1cIidBYnBVaTo6Tm8nIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcbiAgICAgIDwvbmd4LWRhdGF0YWJsZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2FicC1wYWdlPlxyXG5cclxuPGFicC1tb2RhbCBbYnVzeV09XCJpc01vZGFsQnVzeVwiIFsodmlzaWJsZSldPVwiaXNNb2RhbE9wZW5cIj5cclxuICA8bmctdGVtcGxhdGUgI2FicEhlYWRlcj5cclxuICAgIDxoMz5cclxuICAgICAge3sgKHNlbGVjdGVkID8gJ0FicFVpOjpFZGl0JyA6ICdlRG9udXN1bTo6TmV3UGFyYW1zZURpc3BhdGNoJykgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvaDM+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNhYnBCb2R5PlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgaWQ9XCJwYXJhbXNlLWRpc3BhdGNoXCIgKG5nU3VibWl0KT1cInN1Ym1pdEZvcm0oKVwiIHZhbGlkYXRlT25TdWJtaXQ+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIGZhZGUtaW4tdG9wXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwYXJhbXNlLWRpc3BhdGNoLWRlZmF1bHQtc2NlbmFyaW9cIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpEZWZhdWx0U2NlbmFyaW8nIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgaWQ9XCJwYXJhbXNlLWRpc3BhdGNoLWRlZmF1bHQtc2NlbmFyaW9cIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZWZhdWx0U2NlbmFyaW9cIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIGF1dG9mb2N1c1xyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInBhcmFtc2UtZGlzcGF0Y2gtZGVmYXVsdC1kaXMtdHlwZVwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OkRlZmF1bHREaXNUeXBlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgIGlkPVwicGFyYW1zZS1kaXNwYXRjaC1kZWZhdWx0LWRpcy10eXBlXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGVmYXVsdERpc1R5cGVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwicGFyYW1zZS1kaXNwYXRjaC1kZWZhdWx0LWRpcy1zZXJpYWxcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpEZWZhdWx0RGlzU2VyaWFsJyB8IGFicExvY2FsaXphdGlvbiB9fSAqXHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBpZD1cInBhcmFtc2UtZGlzcGF0Y2gtZGVmYXVsdC1kaXMtc2VyaWFsXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGVmYXVsdERpc1NlcmlhbFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgbWF4bGVuZ3RoPVwiOFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIG1iLTNcIj5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICBpZD1cInBhcmFtc2UtZGlzcGF0Y2gtdXNlLWRlZi1zY2VuYXJpb1wiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInVzZURlZlNjZW5hcmlvXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCJcclxuICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgPGxhYmVsIGZvcj1cInBhcmFtc2UtZGlzcGF0Y2gtdXNlLWRlZi1zY2VuYXJpb1wiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OlVzZURlZlNjZW5hcmlvJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBtYi0zXCI+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgaWQ9XCJwYXJhbXNlLWRpc3BhdGNoLXVzZS1kZWYtZGlzLXR5cGVcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ1c2VEZWZEaXNUeXBlXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCJcclxuICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgPGxhYmVsIGZvcj1cInBhcmFtc2UtZGlzcGF0Y2gtdXNlLWRlZi1kaXMtdHlwZVwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OlVzZURlZkRpc1R5cGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIG1iLTNcIj5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICBpZD1cInBhcmFtc2UtZGlzcGF0Y2gtbm8tcHJpY2VcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJub1ByaWNlXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCJcclxuICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgPGxhYmVsIGZvcj1cInBhcmFtc2UtZGlzcGF0Y2gtbm8tcHJpY2VcIiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpOb1ByaWNlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInBhcmFtc2UtZGlzcGF0Y2gtaW52ZW50b3J5LXRyLWFkZHJlc3NcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpJbnZlbnRvcnlUckFkZHJlc3MnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgaWQ9XCJwYXJhbXNlLWRpc3BhdGNoLWludmVudG9yeS10ci1hZGRyZXNzXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaW52ZW50b3J5VHJBZGRyZXNzXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBtYi0zXCI+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgaWQ9XCJwYXJhbXNlLWRpc3BhdGNoLXJlY2VpdmVyLWNoYW5uZWxcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZWNlaXZlckNoYW5uZWxcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxyXG4gICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwicGFyYW1zZS1kaXNwYXRjaC1yZWNlaXZlci1jaGFubmVsXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UmVjZWl2ZXJDaGFubmVsJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBtYi0zXCI+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgaWQ9XCJwYXJhbXNlLWRpc3BhdGNoLW5vLXJlbWFpbi1vcmRlclwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5vUmVtYWluT3JkZXJcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxyXG4gICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwicGFyYW1zZS1kaXNwYXRjaC1uby1yZW1haW4tb3JkZXJcIiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpOb1JlbWFpbk9yZGVyJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBtYi0zXCI+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgaWQ9XCJwYXJhbXNlLWRpc3BhdGNoLXVzZS1zb3Utd2hvLWFkclwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInVzZVNvdVdob0FkclwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJwYXJhbXNlLWRpc3BhdGNoLXVzZS1zb3Utd2hvLWFkclwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OlVzZVNvdVdob0FkcicgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgbWItM1wiPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgIGlkPVwicGFyYW1zZS1kaXNwYXRjaC11c2UtY3VzLXN0b2NrLWNvZGVcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ1c2VDdXNTdG9ja0NvZGVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxyXG4gICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwicGFyYW1zZS1kaXNwYXRjaC11c2UtY3VzLXN0b2NrLWNvZGVcIiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpVc2VDdXNTdG9ja0NvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIG1iLTNcIj5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICBpZD1cInBhcmFtc2UtZGlzcGF0Y2gtdXNlLWJhcmNvZGVcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ1c2VCYXJjb2RlXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCJcclxuICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgPGxhYmVsIGZvcj1cInBhcmFtc2UtZGlzcGF0Y2gtdXNlLWJhcmNvZGVcIiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpVc2VCYXJjb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInBhcmFtc2UtZGlzcGF0Y2gtaXRlbS10cmVlLW9wdGlvblwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06Okl0ZW1UcmVlT3B0aW9uJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgIGlkPVwicGFyYW1zZS1kaXNwYXRjaC1pdGVtLXRyZWUtb3B0aW9uXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaXRlbVRyZWVPcHRpb25cIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwicGFyYW1zZS1kaXNwYXRjaC1vcmRlci1yZWZlcmVuY2UtZmllbGRcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpPcmRlclJlZmVyZW5jZUZpZWxkJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgIGlkPVwicGFyYW1zZS1kaXNwYXRjaC1vcmRlci1yZWZlcmVuY2UtZmllbGRcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJvcmRlclJlZmVyZW5jZUZpZWxkXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBtYi0zXCI+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgaWQ9XCJwYXJhbXNlLWRpc3BhdGNoLWlzLXNob3ctYmF0Y2gtbnNlcmlhbFwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImlzU2hvd0JhdGNoTlNlcmlhbFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJwYXJhbXNlLWRpc3BhdGNoLWlzLXNob3ctYmF0Y2gtbnNlcmlhbFwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OklzU2hvd0JhdGNoTlNlcmlhbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgbWItM1wiPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgIGlkPVwicGFyYW1zZS1kaXNwYXRjaC1pcy1wYXJ0bmVyLWNhdGFsb2ctZGVzY1wiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImlzUGFydG5lckNhdGFsb2dEZXNjXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCJcclxuICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgPGxhYmVsIGZvcj1cInBhcmFtc2UtZGlzcGF0Y2gtaXMtcGFydG5lci1jYXRhbG9nLWRlc2NcIiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpJc1BhcnRuZXJDYXRhbG9nRGVzYycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgbWItM1wiPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgIGlkPVwicGFyYW1zZS1kaXNwYXRjaC1pcy1wYXJ0bmVyLWNhdGFsb2ctbnVtXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaXNQYXJ0bmVyQ2F0YWxvZ051bVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJwYXJhbXNlLWRpc3BhdGNoLWlzLXBhcnRuZXItY2F0YWxvZy1udW1cIiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpJc1BhcnRuZXJDYXRhbG9nTnVtJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNhYnBGb290ZXI+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgYWJwQ2xvc2U+XHJcbiAgICAgIHt7ICdBYnBVaTo6Q2FuY2VsJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPGFicC1idXR0b24gaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIiBidXR0b25UeXBlPVwic3VibWl0XCIgZm9ybU5hbWU9XCJwYXJhbXNlLWRpc3BhdGNoXCI+XHJcbiAgICAgIHt7ICdBYnBVaTo6U2F2ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvYWJwLWJ1dHRvbj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2FicC1tb2RhbD5cclxuIl19
|