@colijnit/transaction 12.1.0 → 12.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/component/core/base/transaction-base.component.d.ts +10 -0
- package/app/component/{shopping-cart → core}/characteristic-answer/characteristic-answer.component.d.ts +0 -0
- package/app/component/core/warehouse/warehouse.component.d.ts +35 -0
- package/app/component/service-order/ione-service-order.component.d.ts +3 -3
- package/app/component/service-order/service-order.component.d.ts +9 -4
- package/app/component/service-order/transaction-manager/transaction-manager.component.d.ts +63 -0
- package/app/component/service-order/transaction-order-totals/transaction-order-totals.component.d.ts +2 -3
- package/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.d.ts +1 -1
- package/app/service/dictionary.service.d.ts +1 -0
- package/app/service/transaction.service.d.ts +14 -8
- package/bundles/colijnit-transaction.umd.js +915 -162
- package/bundles/colijnit-transaction.umd.js.map +1 -1
- package/colijnit-transaction.d.ts +20 -18
- package/colijnit-transaction.metadata.json +1 -1
- package/esm2015/app/component/checkout/checkout-overview/checkout-overview.component.js +2 -2
- package/esm2015/app/component/checkout/ione-checkout.module.js +3 -3
- package/esm2015/app/component/core/base/transaction-base.component.js +35 -10
- package/esm2015/app/component/core/characteristic-answer/characteristic-answer.component.js +100 -0
- package/esm2015/app/component/core/warehouse/warehouse.component.js +134 -0
- package/esm2015/app/component/service-order/ione-service-order-module.js +10 -5
- package/esm2015/app/component/service-order/ione-service-order.component.js +12 -14
- package/esm2015/app/component/service-order/service-order.component.js +35 -7
- package/esm2015/app/component/service-order/summary/transaction-delivery-summary.component.js +5 -5
- package/esm2015/app/component/service-order/summary/transaction-order-summary.component.js +3 -3
- package/esm2015/app/component/service-order/summary/transaction-payment-info.component.js +3 -3
- package/esm2015/app/component/service-order/summary/transaction-service-summary.component.js +3 -3
- package/esm2015/app/component/service-order/transaction-article-text/transaction-article-text.component.js +16 -5
- package/esm2015/app/component/service-order/transaction-manager/transaction-manager.component.js +305 -0
- package/esm2015/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.js +1 -1
- package/esm2015/app/component/service-order/transaction-order-lines/transaction-order-lines.component.js +1 -1
- package/esm2015/app/component/service-order/transaction-order-totals/transaction-order-totals.component.js +9 -10
- package/esm2015/app/component/shopping-cart/ione-shopping-cart.module.js +3 -5
- package/esm2015/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.js +1 -1
- package/esm2015/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.js +1 -1
- package/esm2015/app/service/dictionary.service.js +20 -9
- package/esm2015/app/service/ione-connector-adapter.service.js +10 -5
- package/esm2015/app/service/transaction.service.js +72 -23
- package/esm2015/assets/dictionary/text.properties.js +5 -1
- package/esm2015/colijnit-transaction.js +21 -19
- package/fesm2015/colijnit-transaction.js +647 -97
- package/fesm2015/colijnit-transaction.js.map +1 -1
- package/package.json +2 -2
- package/esm2015/app/component/shopping-cart/characteristic-answer/characteristic-answer.component.js +0 -99
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { Component, Input } from "@angular/core";
|
|
2
2
|
import { TransactionService } from "../../../service/transaction.service";
|
|
3
3
|
import { TransactionBaseComponent } from "../../core/base/transaction-base.component";
|
|
4
|
+
// import {
|
|
5
|
+
// ToolbarService,
|
|
6
|
+
// LinkService,
|
|
7
|
+
// ImageService,
|
|
8
|
+
// HtmlEditorService,
|
|
9
|
+
// RichTextEditor
|
|
10
|
+
// } from '@syncfusion/ej2-angular-richtexteditor';
|
|
4
11
|
export class TransactionArticleTextComponent extends TransactionBaseComponent {
|
|
5
12
|
constructor(service) {
|
|
6
13
|
super(service);
|
|
@@ -66,10 +73,12 @@ TransactionArticleTextComponent.decorators = [
|
|
|
66
73
|
<ng-container content>
|
|
67
74
|
<div class="tags-join-content" fxLayout fxLayoutGap="10px">
|
|
68
75
|
<div class="column-separator">
|
|
69
|
-
|
|
70
|
-
<!--
|
|
71
|
-
<!--
|
|
72
|
-
<!--
|
|
76
|
+
<co-input-text placeholder="Titel"></co-input-text>
|
|
77
|
+
<!-- <ejs-richtexteditor-->
|
|
78
|
+
<!-- #rte-->
|
|
79
|
+
<!-- id="Rte"-->
|
|
80
|
+
<!-- >-->
|
|
81
|
+
<!-- </ejs-richtexteditor>-->
|
|
73
82
|
</div>
|
|
74
83
|
<div style="margin-left:5px;">
|
|
75
84
|
<div style="margin-top:16px;">
|
|
@@ -78,6 +87,7 @@ TransactionArticleTextComponent.decorators = [
|
|
|
78
87
|
[fields]="fields"
|
|
79
88
|
placeholder="Standaardteksten"
|
|
80
89
|
></ejs-dropdownlist>
|
|
90
|
+
|
|
81
91
|
</div>
|
|
82
92
|
<div style="margin-top:20px;">
|
|
83
93
|
<co-input-checkbox
|
|
@@ -105,6 +115,7 @@ TransactionArticleTextComponent.decorators = [
|
|
|
105
115
|
<co-button label="OK" (click)="onOkClick()"></co-button>
|
|
106
116
|
<co-button label="CANCEL" (click)="hide()"></co-button>
|
|
107
117
|
<co-button label="OVERVIEW" (click)="onOverview()"></co-button>
|
|
118
|
+
<!-- <co-button label="TEST" (click)="onTest()"></co-button>-->
|
|
108
119
|
</div>
|
|
109
120
|
</ng-container>
|
|
110
121
|
</co-dialog>
|
|
@@ -180,4 +191,4 @@ TransactionArticleTextComponent.ctorParameters = () => [
|
|
|
180
191
|
TransactionArticleTextComponent.propDecorators = {
|
|
181
192
|
subHeader: [{ type: Input }]
|
|
182
193
|
};
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50L3NlcnZpY2Utb3JkZXIvdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0L3RyYW5zYWN0aW9uLWFydGljbGUtdGV4dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQStCLE1BQU0sZUFBZSxDQUFDO0FBSTdFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBUXhFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBd0hwRixNQUFNLE9BQU8sK0JBQWdDLFNBQVEsd0JBQXdCO0lBNEIzRSxZQUNTLE9BQTJCO1FBRWxDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUZSLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBekI3QixZQUFPLEdBQVksS0FBSyxDQUFDO1FBRXpCLHdCQUFtQixHQUFZLEtBQUssQ0FBQztRQUNyQyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFFakMsZUFBVSxHQUFhO1lBQzVCLEVBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUM7WUFDakMsRUFBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBQztZQUNqQyxFQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFDO1lBQ2pDLEVBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUM7WUFDakMsRUFBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBQztTQUNsQyxDQUFDO1FBRUssaUJBQVksR0FBYTtZQUM5QixFQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFDO1lBQ2pELEVBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUM7WUFDakQsRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBQztZQUNqRCxFQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFDO1lBQ2pELEVBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUM7U0FDbEQsQ0FBQztRQUVLLFdBQU0sR0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO0lBTXRELENBQUM7SUFFTSxTQUFTO1FBQ2QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1osSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTSxJQUFJO1FBQ1QseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUMvQixDQUFDO0lBRU0saUJBQWlCO1FBQ3RCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxFQUFrQjtRQUN6QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRU0sbUJBQW1CO1FBQ3hCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFTSx3QkFBd0I7UUFDN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQzs7O1lBN0xGLFNBQVMsU0FBQztnQkFDVCw4REFBOEQ7Z0JBQzlELFFBQVEsRUFBRSwwQkFBMEI7Z0JBQ3BDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0E4R1A7O2FBSUo7OztZQS9ITyxrQkFBa0I7Ozt3QkFpSXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7YW5pbWF0ZSwgQW5pbWF0aW9uVHJpZ2dlck1ldGFkYXRhLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXJ9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XHJcbmltcG9ydCB7U2Nyb2xsfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7QnVzaW5lc3NPYmplY3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvYnVzaW5lc3Mtb2JqZWN0XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby1yZXNwb25zZS5ib1wiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1pbmZvLmJvXCI7XHJcbmltcG9ydCB7Q29udGVudFZpZXdNb2RlfSBmcm9tIFwiLi4vLi4vLi4vZW51bS9jb250ZW50LXZpZXctbW9kZS5lbnVtXCI7XHJcbmltcG9ydCB7Q29yZUNvbXBvbmVudHNJY29uLCBJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5pbXBvcnQge0NvbnRleHRNZW51SXRlbU1vZGVsfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItZ3JpZHNcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkJhc2VDb21wb25lbnR9IGZyb20gXCIuLi8uLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tYmFzZS5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6IFwidHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0XCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8Y28tZGlhbG9nIFt2aXNpYmxlXT1cInZpc2libGVcIiAoY2xvc2UpPVwib25Qb3B1cENsb3NlKClcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgaGVhZGVyPnt7IHN1YkhlYWRlciB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBjb250ZW50PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhZ3Mtam9pbi1jb250ZW50XCIgZnhMYXlvdXQgZnhMYXlvdXRHYXA9XCIxMHB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbi1zZXBhcmF0b3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcGxhY2Vob2xkZXI9XCJUaXRlbFwiPjwvY28taW5wdXQtdGV4dD5cclxuPCEtLXRyYW5zYWN0aW9udHJhbnNhY3Rpb24tLT5cclxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJBcnRpa2VsdGVrc3RcIi0tPlxyXG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28tdGV4dC1lZGl0b3I+LS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIm1hcmdpbi1sZWZ0OjVweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6MTZweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlanMtZHJvcGRvd25saXN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhU291cmNlXT1cImNvbGxlY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmllbGRzXT1cImZpZWxkc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU3RhbmRhYXJkdGVrc3RlblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9lanMtZHJvcGRvd25saXN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6MjBweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC1jaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIkFydGlrZWxnZWJvbmRlbiB0ZWtzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJhcnRpY2xlQm91bmRUZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6MjBweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5CZXN0ZW1kIHZvb3IgZG9jdW1lbnRlbjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZWpzLWNoaXBsaXN0IGlkPVwiY2hpcC1kZWZhdWx0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGUtY2hpcHM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlLWNoaXAgdGV4dD1cIkFwcGxlXCIgY3NzQ2xhc3M9XCJlLXByaW1hcnlcIj48L2UtY2hpcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGUtY2hpcCB0ZXh0PVwiTWljcm9zb2Z0XCIgY3NzQ2xhc3M9XCJlLWluZm9cIj48L2UtY2hpcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGUtY2hpcCB0ZXh0PVwiR29vZ2xlXCIgY3NzQ2xhc3M9XCJlLXN1Y2Nlc3NcIj48L2UtY2hpcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGUtY2hpcCB0ZXh0PVwiVGVzbGFcIiBjc3NDbGFzcz1cImUtd2FybmluZ1wiPjwvZS1jaGlwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZS1jaGlwIHRleHQ9XCJJbnRlbFwiIGNzc0NsYXNzPVwiZS1kYW5nZXJcIj48L2UtY2hpcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2UtY2hpcHM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Vqcy1jaGlwbGlzdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGZvb3Rlcj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXJcIiBmeExheW91dCBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIGZ4TGF5b3V0R2FwPVwiMTBweFwiIHN0eWxlPVwibWFyZ2luLXRvcDozMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjby1idXR0b24gbGFiZWw9XCJPS1wiIChjbGljayk9XCJvbk9rQ2xpY2soKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjby1idXR0b24gbGFiZWw9XCJDQU5DRUxcIiAoY2xpY2spPVwiaGlkZSgpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBsYWJlbD1cIk9WRVJWSUVXXCIgKGNsaWNrKT1cIm9uT3ZlcnZpZXcoKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9jby1kaWFsb2c+XHJcblxyXG4gICAgICAgIDxjby1kaWFsb2cgW3Zpc2libGVdPVwib3ZlcnZpZXdTZWxlY3RlZFwiIChjbG9zZSk9XCJoaWRlT3ZlcnZpZXcoKVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBoZWFkZXI+QXJ0aWtlbGdlYm9uZGVuIHRla3N0ZW4ge3sgc3ViSGVhZGVyIH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyIGNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFncy1qb2luLWNvbnRlbnRcIiBmeExheW91dCBmeExheW91dEdhcD1cIjEwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uLXNlcGFyYXRvclwiIHN0eWxlPVwid2lkdGg6NzUlXCI+XHJcbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICA8Z3JpZCBbZGF0YV09XCJhcnRpY2xlVGV4dHNcIiBkZXRhaWxMaW5rIChkZXRhaWxMaW5rQ2xpY2spPVwib25EZXRhaWxMaW5rQ2xpY2soJGV2ZW50KVwiPi0tPlxyXG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxncmlkLWNvbHVtbiBrZXk9XCJ0aXRsZVwiIGhlYWRlcj1cIlRJVExFXCIgd2lkdGg9XCIxMDBweDtcIj48L2dyaWQtY29sdW1uPi0tPlxyXG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxncmlkLWNvbHVtbiBrZXk9XCJkZXNjcmlwdGlvblwiIGhlYWRlcj1cIkRFU0NSSVBUSU9OXCIgd2lkdGg9XCIyMDBweFwiPjwvZ3JpZC1jb2x1bW4+LS0+XHJcbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICA8L2dyaWQ+LS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIm1hcmdpbi1sZWZ0OjVweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6MjBweDtcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtY2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJBcnRpa2VsZ2Vib25kZW4gdGVrc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiYXJ0aWNsZUJvdW5kVGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOjIwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+QmVzdGVtZCB2b29yIGRvY3VtZW50ZW48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVqcy1jaGlwbGlzdCBpZD1cImNoaXAtZGVmYXVsdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlLWNoaXBzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZS1jaGlwIHRleHQ9XCJBcHBsZVwiIGNzc0NsYXNzPVwiZS1wcmltYXJ5XCI+PC9lLWNoaXA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlLWNoaXAgdGV4dD1cIk1pY3Jvc29mdFwiIGNzc0NsYXNzPVwiZS1pbmZvXCI+PC9lLWNoaXA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlLWNoaXAgdGV4dD1cIkdvb2dsZVwiIGNzc0NsYXNzPVwiZS1zdWNjZXNzXCI+PC9lLWNoaXA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlLWNoaXAgdGV4dD1cIlRlc2xhXCIgY3NzQ2xhc3M9XCJlLXdhcm5pbmdcIj48L2UtY2hpcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGUtY2hpcCB0ZXh0PVwiSW50ZWxcIiBjc3NDbGFzcz1cImUtZGFuZ2VyXCI+PC9lLWNoaXA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lLWNoaXBzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lanMtY2hpcGxpc3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgZm9vdGVyPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3RlclwiIGZ4TGF5b3V0IGZ4UG9zaXRpb249XCJyb3dcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIGZ4TGF5b3V0R2FwPVwiMTBweFwiIHN0eWxlPVwibWFyZ2luLXRvcDozMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjby1idXR0b24gbGFiZWw9XCJPS1wiIChjbGljayk9XCJvbk9rT3ZlcnZpZXdDbGljaygpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBsYWJlbD1cIkNBTkNFTFwiIChjbGljayk9XCJoaWRlT3ZlcnZpZXcoKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2NvLWRpYWxvZz5cclxuXHJcbiAgICAgICAgPGNvLWRpYWxvZyBbdmlzaWJsZV09XCJlZGl0QXJ0aWtlbFRleHRcIiAgKGNsb3NlKT1cImhpZGVFZGl0QXJ0aWtlbFRleHQoKVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBoZWFkZXI+e3sgc3ViSGVhZGVyIH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyIGNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFncy1qb2luLWNvbnRlbnRcIiBmeExheW91dCBmeExheW91dEdhcD1cIjEwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uLXNlcGFyYXRvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBwbGFjZWhvbGRlcj1cIlRpdGVsXCI+PC9jby1pbnB1dC10ZXh0PlxyXG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRleHQtZWRpdG9yLS0+XHJcbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiQXJ0aWtlbHRla3N0XCItLT5cclxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLXRleHQtZWRpdG9yPi0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgZm9vdGVyPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXJcIiBmeExheW91dCBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIGZ4TGF5b3V0R2FwPVwiMTBweFwiIHN0eWxlPVwibWFyZ2luLXRvcDozMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICA8Y28tYnV0dG9uIGxhYmVsPVwiT0tcIiAoY2xpY2spPVwib25Pa0VkaXRBcnRpa2VsVGV4dENsaWNrKClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBsYWJlbD1cIkNBTkNFTFwiIChjbGljayk9XCJoaWRlRWRpdEFydGlrZWxUZXh0KClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvY28tZGlhbG9nPlxyXG4gICAgYCxcclxuICBzdHlsZVVybHM6IFtcclxuICAgIFwiLi90cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQuY29tcG9uZW50LnNjc3NcIlxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQXJ0aWNsZVRleHRDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvbkJhc2VDb21wb25lbnR7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc3ViSGVhZGVyOiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyB2aXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBmbG9hdEJ1dHRvblNlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIG92ZXJ2aWV3U2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgZWRpdEFydGlrZWxUZXh0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBjb2xsZWN0aW9uOiBPYmplY3RbXSA9IFtcclxuICAgIHtpZDogMSwgbmFtZTogXCJTdGFuZGFhcmR0ZWtzdCAxXCJ9LFxyXG4gICAge2lkOiAyLCBuYW1lOiBcIlN0YW5kYWFyZHRla3N0IDFcIn0sXHJcbiAgICB7aWQ6IDMsIG5hbWU6IFwiU3RhbmRhYXJkdGVrc3QgMVwifSxcclxuICAgIHtpZDogNCwgbmFtZTogXCJTdGFuZGFhcmR0ZWtzdCAxXCJ9LFxyXG4gICAge2lkOiA1LCBuYW1lOiBcIlN0YW5kYWFyZHRla3N0IDFcIn1cclxuICBdO1xyXG5cclxuICBwdWJsaWMgYXJ0aWNsZVRleHRzOiBPYmplY3RbXSA9IFtcclxuICAgIHt0aXRsZTogXCJ0aXRsZSAxXCIsIGRlc2NyaXB0aW9uOiBcIk9tc2NocmlqdmluZyAxXCJ9LFxyXG4gICAge3RpdGxlOiBcInRpdGxlIDJcIiwgZGVzY3JpcHRpb246IFwiT21zY2hyaWp2aW5nIDJcIn0sXHJcbiAgICB7dGl0bGU6IFwidGl0bGUgM1wiLCBkZXNjcmlwdGlvbjogXCJPbXNjaHJpanZpbmcgM1wifSxcclxuICAgIHt0aXRsZTogXCJ0aXRsZSA0XCIsIGRlc2NyaXB0aW9uOiBcIk9tc2NocmlqdmluZyA0XCJ9LFxyXG4gICAge3RpdGxlOiBcInRpdGxlIDVcIiwgZGVzY3JpcHRpb246IFwiT21zY2hyaWp2aW5nIDVcIn0sXHJcbiAgXTtcclxuXHJcbiAgcHVibGljIGZpZWxkczogT2JqZWN0ID0geyB0ZXh0OiBcIm5hbWVcIiwgdmFsdWU6IFwiaWRcIiB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgICBzdXBlcihzZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk9rQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmhpZGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblBvcHVwQ2xvc2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmhpZGUoKTtcclxuICAgIHRoaXMuaGlkZU92ZXJ2aWV3KCk7XHJcbiAgICB0aGlzLmhpZGVFZGl0QXJ0aWtlbFRleHQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoaWRlKCk6IHZvaWQge1xyXG4gICAgLy8gVE9ETzogdGhyb3cgaGlkZSBldmVudFxyXG4gICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25PdmVydmlldygpOiB2b2lkIHtcclxuICAgIHRoaXMub3ZlcnZpZXdTZWxlY3RlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25Pa092ZXJ2aWV3Q2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmhpZGVPdmVydmlldygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhpZGVPdmVydmlldygpOiB2b2lkIHtcclxuICAgIHRoaXMub3ZlcnZpZXdTZWxlY3RlZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uRGV0YWlsTGlua0NsaWNrKGJvOiBCdXNpbmVzc09iamVjdCk6IHZvaWQge1xyXG4gICAgdGhpcy5lZGl0QXJ0aWtlbFRleHQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhpZGVFZGl0QXJ0aWtlbFRleHQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVkaXRBcnRpa2VsVGV4dCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uT2tFZGl0QXJ0aWtlbFRleHRDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuZWRpdEFydGlrZWxUZXh0ID0gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
194
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50L3NlcnZpY2Utb3JkZXIvdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0L3RyYW5zYWN0aW9uLWFydGljbGUtdGV4dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQStCLE1BQU0sZUFBZSxDQUFDO0FBRTdFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLFdBQVc7QUFDWCxvQkFBb0I7QUFDcEIsaUJBQWlCO0FBQ2pCLGtCQUFrQjtBQUNsQix1QkFBdUI7QUFDdkIsbUJBQW1CO0FBQ25CLG1EQUFtRDtBQTZIbkQsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLHdCQUF3QjtJQStCM0UsWUFDUyxPQUEyQjtRQUVsQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFGUixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQXpCN0IsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUV6Qix3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFDckMscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBQ2xDLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBRWpDLGVBQVUsR0FBYTtZQUM1QixFQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFDO1lBQ2pDLEVBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUM7WUFDakMsRUFBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBQztZQUNqQyxFQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFDO1lBQ2pDLEVBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUM7U0FDbEMsQ0FBQztRQUVLLGlCQUFZLEdBQWE7WUFDOUIsRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBQztZQUNqRCxFQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFDO1lBQ2pELEVBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUM7WUFDakQsRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBQztZQUNqRCxFQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFDO1NBQ2xELENBQUM7UUFFSyxXQUFNLEdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztJQU10RCxDQUFDO0lBRU0sU0FBUztRQUNkLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFTSxZQUFZO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0sSUFBSTtRQUNULHlCQUF5QjtRQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVNLGlCQUFpQjtRQUN0QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRU0saUJBQWlCLENBQUMsRUFBa0I7UUFDekMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVNLG1CQUFtQjtRQUN4QixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRU0sd0JBQXdCO1FBQzdCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7OztZQXJNRixTQUFTLFNBQUM7Z0JBQ1QsOERBQThEO2dCQUM5RCxRQUFRLEVBQUUsMEJBQTBCO2dCQUNwQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQWtIUDs7YUFLSjs7O1lBcElPLGtCQUFrQjs7O3dCQXlJdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtCdXNpbmVzc09iamVjdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9idXNpbmVzcy1vYmplY3RcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkJhc2VDb21wb25lbnR9IGZyb20gXCIuLi8uLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tYmFzZS5jb21wb25lbnRcIjtcclxuLy8gaW1wb3J0IHtcclxuLy8gICBUb29sYmFyU2VydmljZSxcclxuLy8gICBMaW5rU2VydmljZSxcclxuLy8gICBJbWFnZVNlcnZpY2UsXHJcbi8vICAgSHRtbEVkaXRvclNlcnZpY2UsXHJcbi8vICAgUmljaFRleHRFZGl0b3JcclxuLy8gfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1yaWNodGV4dGVkaXRvcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiBcInRyYW5zYWN0aW9uLWFydGljbGUtdGV4dFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPGNvLWRpYWxvZyBbdmlzaWJsZV09XCJ2aXNpYmxlXCIgKGNsb3NlKT1cIm9uUG9wdXBDbG9zZSgpXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyIGhlYWRlcj57eyBzdWJIZWFkZXIgfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgY29udGVudD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWdzLWpvaW4tY29udGVudFwiIGZ4TGF5b3V0IGZ4TGF5b3V0R2FwPVwiMTBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4tc2VwYXJhdG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBwbGFjZWhvbGRlcj1cIlRpdGVsXCI+PC9jby1pbnB1dC10ZXh0PlxyXG48IS0tICAgICAgICAgICAgICAgICAgICAgIDxlanMtcmljaHRleHRlZGl0b3ItLT5cclxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICNydGUtLT5cclxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiUnRlXCItLT5cclxuPCEtLSAgICAgICAgICAgICAgICAgICAgICA+LS0+XHJcbjwhLS0gICAgICAgICAgICAgICAgICAgICAgPC9lanMtcmljaHRleHRlZGl0b3I+LS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIm1hcmdpbi1sZWZ0OjVweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6MTZweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlanMtZHJvcGRvd25saXN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhU291cmNlXT1cImNvbGxlY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmllbGRzXT1cImZpZWxkc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU3RhbmRhYXJkdGVrc3RlblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9lanMtZHJvcGRvd25saXN0PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOjIwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtY2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJBcnRpa2VsZ2Vib25kZW4gdGVrc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiYXJ0aWNsZUJvdW5kVGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jby1pbnB1dC1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOjIwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+QmVzdGVtZCB2b29yIGRvY3VtZW50ZW48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVqcy1jaGlwbGlzdCBpZD1cImNoaXAtZGVmYXVsdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlLWNoaXBzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZS1jaGlwIHRleHQ9XCJBcHBsZVwiIGNzc0NsYXNzPVwiZS1wcmltYXJ5XCI+PC9lLWNoaXA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlLWNoaXAgdGV4dD1cIk1pY3Jvc29mdFwiIGNzc0NsYXNzPVwiZS1pbmZvXCI+PC9lLWNoaXA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlLWNoaXAgdGV4dD1cIkdvb2dsZVwiIGNzc0NsYXNzPVwiZS1zdWNjZXNzXCI+PC9lLWNoaXA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlLWNoaXAgdGV4dD1cIlRlc2xhXCIgY3NzQ2xhc3M9XCJlLXdhcm5pbmdcIj48L2UtY2hpcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGUtY2hpcCB0ZXh0PVwiSW50ZWxcIiBjc3NDbGFzcz1cImUtZGFuZ2VyXCI+PC9lLWNoaXA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lLWNoaXBzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lanMtY2hpcGxpc3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBmb290ZXI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCIgZnhMYXlvdXQgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiBmeExheW91dEdhcD1cIjEwcHhcIiBzdHlsZT1cIm1hcmdpbi10b3A6MzBweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Y28tYnV0dG9uIGxhYmVsPVwiT0tcIiAoY2xpY2spPVwib25Pa0NsaWNrKClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8Y28tYnV0dG9uIGxhYmVsPVwiQ0FOQ0VMXCIgKGNsaWNrKT1cImhpZGUoKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjby1idXR0b24gbGFiZWw9XCJPVkVSVklFV1wiIChjbGljayk9XCJvbk92ZXJ2aWV3KClcIj48L2NvLWJ1dHRvbj5cclxuPCEtLSAgICAgICAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBsYWJlbD1cIlRFU1RcIiAoY2xpY2spPVwib25UZXN0KClcIj48L2NvLWJ1dHRvbj4tLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvY28tZGlhbG9nPlxyXG5cclxuICAgICAgICA8Y28tZGlhbG9nIFt2aXNpYmxlXT1cIm92ZXJ2aWV3U2VsZWN0ZWRcIiAoY2xvc2UpPVwiaGlkZU92ZXJ2aWV3KClcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgaGVhZGVyPkFydGlrZWxnZWJvbmRlbiB0ZWtzdGVuIHt7IHN1YkhlYWRlciB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBjb250ZW50PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhZ3Mtam9pbi1jb250ZW50XCIgZnhMYXlvdXQgZnhMYXlvdXRHYXA9XCIxMHB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbi1zZXBhcmF0b3JcIiBzdHlsZT1cIndpZHRoOjc1JVwiPlxyXG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgPGdyaWQgW2RhdGFdPVwiYXJ0aWNsZVRleHRzXCIgZGV0YWlsTGluayAoZGV0YWlsTGlua0NsaWNrKT1cIm9uRGV0YWlsTGlua0NsaWNrKCRldmVudClcIj4tLT5cclxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Z3JpZC1jb2x1bW4ga2V5PVwidGl0bGVcIiBoZWFkZXI9XCJUSVRMRVwiIHdpZHRoPVwiMTAwcHg7XCI+PC9ncmlkLWNvbHVtbj4tLT5cclxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Z3JpZC1jb2x1bW4ga2V5PVwiZGVzY3JpcHRpb25cIiBoZWFkZXI9XCJERVNDUklQVElPTlwiIHdpZHRoPVwiMjAwcHhcIj48L2dyaWQtY29sdW1uPi0tPlxyXG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgPC9ncmlkPi0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tbGVmdDo1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOjIwcHg7XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiQXJ0aWtlbGdlYm9uZGVuIHRla3N0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImFydGljbGVCb3VuZFRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28taW5wdXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwibWFyZ2luLXRvcDoyMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkJlc3RlbWQgdm9vciBkb2N1bWVudGVuPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlanMtY2hpcGxpc3QgaWQ9XCJjaGlwLWRlZmF1bHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZS1jaGlwcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGUtY2hpcCB0ZXh0PVwiQXBwbGVcIiBjc3NDbGFzcz1cImUtcHJpbWFyeVwiPjwvZS1jaGlwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZS1jaGlwIHRleHQ9XCJNaWNyb3NvZnRcIiBjc3NDbGFzcz1cImUtaW5mb1wiPjwvZS1jaGlwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZS1jaGlwIHRleHQ9XCJHb29nbGVcIiBjc3NDbGFzcz1cImUtc3VjY2Vzc1wiPjwvZS1jaGlwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZS1jaGlwIHRleHQ9XCJUZXNsYVwiIGNzc0NsYXNzPVwiZS13YXJuaW5nXCI+PC9lLWNoaXA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlLWNoaXAgdGV4dD1cIkludGVsXCIgY3NzQ2xhc3M9XCJlLWRhbmdlclwiPjwvZS1jaGlwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZS1jaGlwcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZWpzLWNoaXBsaXN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyIGZvb3Rlcj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXJcIiBmeExheW91dCBmeFBvc2l0aW9uPVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiBmeExheW91dEdhcD1cIjEwcHhcIiBzdHlsZT1cIm1hcmdpbi10b3A6MzBweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Y28tYnV0dG9uIGxhYmVsPVwiT0tcIiAoY2xpY2spPVwib25Pa092ZXJ2aWV3Q2xpY2soKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjby1idXR0b24gbGFiZWw9XCJDQU5DRUxcIiAoY2xpY2spPVwiaGlkZU92ZXJ2aWV3KClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9jby1kaWFsb2c+XHJcblxyXG4gICAgICAgIDxjby1kaWFsb2cgW3Zpc2libGVdPVwiZWRpdEFydGlrZWxUZXh0XCIgIChjbG9zZSk9XCJoaWRlRWRpdEFydGlrZWxUZXh0KClcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgaGVhZGVyPnt7IHN1YkhlYWRlciB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBjb250ZW50PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhZ3Mtam9pbi1jb250ZW50XCIgZnhMYXlvdXQgZnhMYXlvdXRHYXA9XCIxMHB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbi1zZXBhcmF0b3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcGxhY2Vob2xkZXI9XCJUaXRlbFwiPjwvY28taW5wdXQtdGV4dD5cclxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgIDxjby10ZXh0LWVkaXRvci0tPlxyXG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIkFydGlrZWx0ZWtzdFwiLS0+XHJcbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICA+PC9jby10ZXh0LWVkaXRvcj4tLT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyIGZvb3Rlcj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCIgZnhMYXlvdXQgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiBmeExheW91dEdhcD1cIjEwcHhcIiBzdHlsZT1cIm1hcmdpbi10b3A6MzBweDtcIj5cclxuICAgICAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBsYWJlbD1cIk9LXCIgKGNsaWNrKT1cIm9uT2tFZGl0QXJ0aWtlbFRleHRDbGljaygpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxjby1idXR0b24gbGFiZWw9XCJDQU5DRUxcIiAoY2xpY2spPVwiaGlkZUVkaXRBcnRpa2VsVGV4dCgpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2NvLWRpYWxvZz5cclxuICAgIGAsXHJcbiAgc3R5bGVVcmxzOiBbXHJcbiAgICBcIi4vdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0LmNvbXBvbmVudC5zY3NzXCJcclxuICBdLFxyXG4vLyAgcHJvdmlkZXJzOiBbVG9vbGJhclNlcnZpY2UsIExpbmtTZXJ2aWNlLCBJbWFnZVNlcnZpY2UsIEh0bWxFZGl0b3JTZXJ2aWNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQXJ0aWNsZVRleHRDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvbkJhc2VDb21wb25lbnR7XHJcbiAgLy8gQFZpZXdDaGlsZCAoXCJydGVcIilcclxuICAvLyBwdWJsaWMgZWRpdG9yOiBSaWNoVGV4dEVkaXRvcjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc3ViSGVhZGVyOiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyB2aXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBmbG9hdEJ1dHRvblNlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIG92ZXJ2aWV3U2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgZWRpdEFydGlrZWxUZXh0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBjb2xsZWN0aW9uOiBPYmplY3RbXSA9IFtcclxuICAgIHtpZDogMSwgbmFtZTogXCJTdGFuZGFhcmR0ZWtzdCAxXCJ9LFxyXG4gICAge2lkOiAyLCBuYW1lOiBcIlN0YW5kYWFyZHRla3N0IDFcIn0sXHJcbiAgICB7aWQ6IDMsIG5hbWU6IFwiU3RhbmRhYXJkdGVrc3QgMVwifSxcclxuICAgIHtpZDogNCwgbmFtZTogXCJTdGFuZGFhcmR0ZWtzdCAxXCJ9LFxyXG4gICAge2lkOiA1LCBuYW1lOiBcIlN0YW5kYWFyZHRla3N0IDFcIn1cclxuICBdO1xyXG5cclxuICBwdWJsaWMgYXJ0aWNsZVRleHRzOiBPYmplY3RbXSA9IFtcclxuICAgIHt0aXRsZTogXCJ0aXRsZSAxXCIsIGRlc2NyaXB0aW9uOiBcIk9tc2NocmlqdmluZyAxXCJ9LFxyXG4gICAge3RpdGxlOiBcInRpdGxlIDJcIiwgZGVzY3JpcHRpb246IFwiT21zY2hyaWp2aW5nIDJcIn0sXHJcbiAgICB7dGl0bGU6IFwidGl0bGUgM1wiLCBkZXNjcmlwdGlvbjogXCJPbXNjaHJpanZpbmcgM1wifSxcclxuICAgIHt0aXRsZTogXCJ0aXRsZSA0XCIsIGRlc2NyaXB0aW9uOiBcIk9tc2NocmlqdmluZyA0XCJ9LFxyXG4gICAge3RpdGxlOiBcInRpdGxlIDVcIiwgZGVzY3JpcHRpb246IFwiT21zY2hyaWp2aW5nIDVcIn0sXHJcbiAgXTtcclxuXHJcbiAgcHVibGljIGZpZWxkczogT2JqZWN0ID0geyB0ZXh0OiBcIm5hbWVcIiwgdmFsdWU6IFwiaWRcIiB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgICBzdXBlcihzZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk9rQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmhpZGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblBvcHVwQ2xvc2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmhpZGUoKTtcclxuICAgIHRoaXMuaGlkZU92ZXJ2aWV3KCk7XHJcbiAgICB0aGlzLmhpZGVFZGl0QXJ0aWtlbFRleHQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoaWRlKCk6IHZvaWQge1xyXG4gICAgLy8gVE9ETzogdGhyb3cgaGlkZSBldmVudFxyXG4gICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25PdmVydmlldygpOiB2b2lkIHtcclxuICAgIHRoaXMub3ZlcnZpZXdTZWxlY3RlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25Pa092ZXJ2aWV3Q2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmhpZGVPdmVydmlldygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhpZGVPdmVydmlldygpOiB2b2lkIHtcclxuICAgIHRoaXMub3ZlcnZpZXdTZWxlY3RlZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uRGV0YWlsTGlua0NsaWNrKGJvOiBCdXNpbmVzc09iamVjdCk6IHZvaWQge1xyXG4gICAgdGhpcy5lZGl0QXJ0aWtlbFRleHQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhpZGVFZGl0QXJ0aWtlbFRleHQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVkaXRBcnRpa2VsVGV4dCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uT2tFZGl0QXJ0aWtlbFRleHRDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuZWRpdEFydGlrZWxUZXh0ID0gZmFsc2U7XHJcbiAgfVxyXG4gIC8vXHJcbiAgLy8gcHVibGljIG9uVGVzdCgpOiB2b2lkIHtcclxuICAvLyAgIGxldCBydGVWYWx1ZTogc3RyaW5nID0gdGhpcy5lZGl0b3IudmFsdWU7XHJcbiAgLy8gICBjb25zb2xlLmxvZyhydGVWYWx1ZSk7XHJcbiAgLy8gfVxyXG59XHJcbiJdfQ==
|
package/esm2015/app/component/service-order/transaction-manager/transaction-manager.component.js
ADDED
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { Component, EventEmitter, Output, ViewChild } from "@angular/core";
|
|
3
|
+
import { TransactionService } from "../../../service/transaction.service";
|
|
4
|
+
import { NumberUtils } from "@colijnit/transactionapi/build/utils/number-utils";
|
|
5
|
+
import { TransactionEventService } from "../../../service/transaction-event.service";
|
|
6
|
+
import { ResolvePendingLineReasonRequest } from "@colijnit/transactionapi/build/model/resolve-pending-reason-request.bo";
|
|
7
|
+
import { TransactionLineType } from "@colijnit/transactionapi/build/enum/transaction-line-type.enum";
|
|
8
|
+
import { PendingReasonType } from "@colijnit/transactionapi/build/enum/pending-reason-type.enum";
|
|
9
|
+
import { DictionaryService } from "../../../service/dictionary.service";
|
|
10
|
+
import { PositionGridRow } from "../../../../enum/position-grid-row.enum";
|
|
11
|
+
import { TransactionBaseComponent } from "../../core/base/transaction-base.component";
|
|
12
|
+
import { PromptService } from "@colijnit/corecomponents_v12";
|
|
13
|
+
export class TransactionManagerComponent extends TransactionBaseComponent {
|
|
14
|
+
constructor(service, transactionEvents, promptService, _dictionaryService) {
|
|
15
|
+
super(service);
|
|
16
|
+
this.service = service;
|
|
17
|
+
this.transactionEvents = transactionEvents;
|
|
18
|
+
this.promptService = promptService;
|
|
19
|
+
this._dictionaryService = _dictionaryService;
|
|
20
|
+
this.linesChanged = new EventEmitter();
|
|
21
|
+
this.articleAdded = new EventEmitter();
|
|
22
|
+
this.columns = [];
|
|
23
|
+
this._inOutCollection = [];
|
|
24
|
+
this._showCharacteristic = false;
|
|
25
|
+
this._subs = [];
|
|
26
|
+
this._subs.push(this.service.transactionLoaded.subscribe((transactionInfoResponse) => {
|
|
27
|
+
if (transactionInfoResponse.isSuccess) {
|
|
28
|
+
this.transaction = transactionInfoResponse;
|
|
29
|
+
}
|
|
30
|
+
}));
|
|
31
|
+
}
|
|
32
|
+
get amountOfLines() {
|
|
33
|
+
return NumberUtils.NrOrDefault(this.service.articleAmount, 0);
|
|
34
|
+
}
|
|
35
|
+
get showCharacteristicDialog() {
|
|
36
|
+
return this._showCharacteristic;
|
|
37
|
+
}
|
|
38
|
+
set showCharacteristicDialog(value) {
|
|
39
|
+
this._showCharacteristic = value;
|
|
40
|
+
}
|
|
41
|
+
ngOnDestroy() {
|
|
42
|
+
this._subs.forEach(sub => sub.unsubscribe());
|
|
43
|
+
}
|
|
44
|
+
addArticleLine(transactionUuid, sku, amount, lineNr, beforeOrAfter) {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
const goodId = yield this.service.getGoodIdFromArticleNr(sku);
|
|
47
|
+
if (goodId) {
|
|
48
|
+
yield this._loadArticle(goodId);
|
|
49
|
+
yield this._handleAddArticleLineAt(amount, lineNr, beforeOrAfter);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
this.promptService.showError(this._dictionaryService.get("ARTICLE_UNKNOWN"));
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
changeLineSequence(fromIndex, toIndex) {
|
|
57
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
+
let fromLine = this._getTransactionLineInfoByIndex(fromIndex);
|
|
59
|
+
let toLine = this._getTransactionLineInfoByIndex(toIndex);
|
|
60
|
+
let aboveLineNr;
|
|
61
|
+
let belowLineNr;
|
|
62
|
+
if (fromIndex > toIndex) {
|
|
63
|
+
aboveLineNr = toLine.lineNr;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
belowLineNr = toLine.lineNr;
|
|
67
|
+
}
|
|
68
|
+
yield this.service.changeLineSequence(fromLine.uuid, aboveLineNr, belowLineNr, false)
|
|
69
|
+
.then((value) => {
|
|
70
|
+
this.handleLineOperationStatus(value);
|
|
71
|
+
}, (error) => this.promptService.showError(error));
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
showStockManager(line) {
|
|
75
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
76
|
+
this.warehouse.selectedWarehouseNr = line.warehouseNumber;
|
|
77
|
+
this.warehouse.amount = line.amount;
|
|
78
|
+
this.warehouse.commissionCode = line.commissionCode;
|
|
79
|
+
this.warehouse.message = this.currentOperationStatus.pendingReason;
|
|
80
|
+
this.warehouse.show(line.articleNumber);
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
warehouseOkClick() {
|
|
84
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
85
|
+
if (this.warehouse.commissionCode !== undefined) {
|
|
86
|
+
this.currentReason.commissionCode = this.warehouse.commissionCode;
|
|
87
|
+
}
|
|
88
|
+
if (this.warehouse.amount !== undefined) {
|
|
89
|
+
this.currentReason.quantity = this.warehouse.amount;
|
|
90
|
+
}
|
|
91
|
+
if (this.warehouse.selectedWarehouseNr !== undefined) {
|
|
92
|
+
this.currentReason.warehouseNr = this.warehouse.selectedWarehouseNr;
|
|
93
|
+
}
|
|
94
|
+
if (this.currentReason) {
|
|
95
|
+
yield this.service.resolvePendingLineReason(this.currentReason, false)
|
|
96
|
+
.then((value) => {
|
|
97
|
+
this.handleLineOperationStatus(value);
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
warehouseCancelClick() {
|
|
103
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
104
|
+
if (this.currentReason) {
|
|
105
|
+
yield this._cancelArticle(this.currentReason.lineUuid);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
handleCharacteristicAnswerOkClick(answer) {
|
|
110
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
111
|
+
this.currentReason = new ResolvePendingLineReasonRequest(this.currentOperationStatus.uuid, this.currentOperationStatus.pendingReason, this.currentOperationStatus.pendingReasonType);
|
|
112
|
+
this.currentReason.textualUserInput = answer;
|
|
113
|
+
yield this.service.resolvePendingLineReason(this.currentReason, false)
|
|
114
|
+
.then((value) => {
|
|
115
|
+
this.handleLineOperationStatus(value);
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
_handleAddArticle(amount = 1) {
|
|
120
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
121
|
+
yield this.service.addTransactionLine(TransactionLineType.ArticleLine, this.newArticleNr, amount, this.newArticle.standardWareHouse, this.newArticle.commissionCode, false, 0, 0, false)
|
|
122
|
+
.then((value) => {
|
|
123
|
+
this.handleLineOperationStatus(value);
|
|
124
|
+
}, (error) => this.promptService.showError(error));
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
_handleAddArticleLineAt(amount, lineNr, beforeOrAfter) {
|
|
128
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
129
|
+
yield this.service.addArticleToTransaction(this.transactionInfo.uuid, this.newArticleNr, amount, this.newArticle.standardWareHouse, this.newArticle.commissionCode, false, beforeOrAfter === PositionGridRow.Before ? lineNr : undefined, beforeOrAfter === PositionGridRow.After ? lineNr : undefined)
|
|
130
|
+
.then((value) => {
|
|
131
|
+
this.lineOperationStatuses = value.lineOperationStatuses;
|
|
132
|
+
this.handleLineOperationStatus(value);
|
|
133
|
+
}, (error) => this.promptService.showError(error));
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
_getWareHouseNoFromArticle() {
|
|
137
|
+
if (this.newArticle !== undefined && this.newArticle.stockLocations !== undefined && this.newArticle.stockLocations.length) {
|
|
138
|
+
return this.newArticle.stockLocations[0].warehouseNr;
|
|
139
|
+
}
|
|
140
|
+
return 0;
|
|
141
|
+
}
|
|
142
|
+
isLineOperationStatus(lineOperationStatuses) {
|
|
143
|
+
this.currentOperationStatus = this.service.pendingLineOperationStatus(lineOperationStatuses);
|
|
144
|
+
if (this.currentOperationStatus !== undefined) {
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
return false;
|
|
148
|
+
}
|
|
149
|
+
_confirmAction() {
|
|
150
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
151
|
+
this.currentReason = new ResolvePendingLineReasonRequest(this.currentOperationStatus.uuid, this.currentOperationStatus.pendingReason, this.currentOperationStatus.pendingReasonType);
|
|
152
|
+
const pendingReasonText = yield this._getPendingReasonText(this.currentOperationStatus.pendingReason);
|
|
153
|
+
this.currentReason.confirmation = yield this.promptService.showYesNo(pendingReasonText, " ");
|
|
154
|
+
yield this.service.resolvePendingLineReason(this.currentReason, false)
|
|
155
|
+
.then((value) => {
|
|
156
|
+
this.handleLineOperationStatus(value);
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
_showInformation() {
|
|
161
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
162
|
+
this.currentReason = new ResolvePendingLineReasonRequest(this.currentOperationStatus.uuid, this.currentOperationStatus.pendingReason, this.currentOperationStatus.pendingReasonType);
|
|
163
|
+
const pendingReasonText = yield this._getPendingReasonText(this.currentOperationStatus.pendingReason);
|
|
164
|
+
yield this.promptService.showOkModal(pendingReasonText, " ");
|
|
165
|
+
yield this.service.resolvePendingLineReason(this.currentReason, false)
|
|
166
|
+
.then((value) => {
|
|
167
|
+
this.handleLineOperationStatus(value);
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
_getPendingReasonText(pendingReason) {
|
|
172
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
173
|
+
if (pendingReason === "ARTICLE_IS_DISCONTINUED_DO_YOU_WANT_TO_CONTINUE_PLEASE_CONFIRM") {
|
|
174
|
+
return this._dictionaryService.get("ARTICLE_IN_OUT_COLLECTION").replace("|~", yield this.getInOutCollectionOfArticle());
|
|
175
|
+
}
|
|
176
|
+
return this._dictionaryService.get(pendingReason);
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
getInOutCollectionOfArticle() {
|
|
180
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
181
|
+
if (!this._inOutCollection.length) {
|
|
182
|
+
this._inOutCollection = yield this.service.getInOutCollection("NL");
|
|
183
|
+
}
|
|
184
|
+
const domainValue = this._inOutCollection.find(element => element.code === this.newArticle.inOutCollection);
|
|
185
|
+
if (domainValue) {
|
|
186
|
+
return domainValue.description;
|
|
187
|
+
}
|
|
188
|
+
return "";
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
handleLineOperationStatus(lineOperationResponse) {
|
|
192
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
193
|
+
if (this.isLineOperationStatus(lineOperationResponse.lineOperationStatuses)) {
|
|
194
|
+
this.transaction = lineOperationResponse;
|
|
195
|
+
this.articleAdded.emit(this.transaction);
|
|
196
|
+
yield this._handlePendingLine(this.currentOperationStatus.uuid).then();
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
yield this._saveTransaction();
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
_handlePendingLine(lineUuid) {
|
|
204
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
205
|
+
this.currentReason = new ResolvePendingLineReasonRequest(this.currentOperationStatus.uuid, this.currentOperationStatus.pendingReason, this.currentOperationStatus.pendingReasonType);
|
|
206
|
+
this.currentPendingLine = this.transactionLines.find(l => l.uuid === lineUuid);
|
|
207
|
+
switch (this.currentOperationStatus.pendingReasonType) {
|
|
208
|
+
case PendingReasonType.ABORTED:
|
|
209
|
+
case PendingReasonType.CANCELLED:
|
|
210
|
+
yield this._cancelArticle(this.currentPendingLine.uuid);
|
|
211
|
+
break;
|
|
212
|
+
case PendingReasonType.CONFIRMATION_NEEDED:
|
|
213
|
+
yield this._confirmAction();
|
|
214
|
+
break;
|
|
215
|
+
case PendingReasonType.INVALID_LOGISTICS:
|
|
216
|
+
yield this.showStockManager(this.currentPendingLine);
|
|
217
|
+
break;
|
|
218
|
+
case PendingReasonType.NON_CRITICAL_DISCONTINUATION:
|
|
219
|
+
yield this._showInformation();
|
|
220
|
+
break;
|
|
221
|
+
case PendingReasonType.CHARACTERISTICS_ANSWER_NEEDED:
|
|
222
|
+
this.CharacteristicsAnswerNeeded();
|
|
223
|
+
break;
|
|
224
|
+
case PendingReasonType.NONE:
|
|
225
|
+
default:
|
|
226
|
+
this.currentReason = undefined;
|
|
227
|
+
this.currentPendingLine = undefined;
|
|
228
|
+
break;
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
_saveTransaction() {
|
|
233
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
234
|
+
if (this.transactionInfo) {
|
|
235
|
+
const success = yield this.service.saveTransactionByUuid(this.transactionInfo.uuid);
|
|
236
|
+
if (!success) {
|
|
237
|
+
this.promptService.showError("Transaction could not be saved!");
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
_loadArticle(goodId) {
|
|
243
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
244
|
+
this.newArticle = yield this.service.getArticleFullObject(goodId);
|
|
245
|
+
this.newArticleNr = this.newArticle.articleNr;
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
addEmailAddressToTransaction(emailAddress) {
|
|
249
|
+
this.service.emailAddress = emailAddress;
|
|
250
|
+
}
|
|
251
|
+
CharacteristicsAnswerNeeded() {
|
|
252
|
+
this.characteristicAnswer.question = this.currentOperationStatus.characteristic.question;
|
|
253
|
+
this.characteristicAnswer.title = this.newArticle.description;
|
|
254
|
+
this.characteristicAnswer.value = this.currentOperationStatus.characteristic.value;
|
|
255
|
+
this.characteristicAnswer.characteristics = this.currentOperationStatus.characteristic.transactionLineCharacteristicChoices;
|
|
256
|
+
setTimeout(() => {
|
|
257
|
+
this.characteristicAnswer.open();
|
|
258
|
+
// eslint-disable-next-line no-magic-numbers
|
|
259
|
+
}, 1000);
|
|
260
|
+
}
|
|
261
|
+
_getTransactionLineInfoByIndex(index) {
|
|
262
|
+
if (index >= 0 && index < this.transactionLines.length) {
|
|
263
|
+
return this.service.currentLines[index];
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
_cancelArticle(uuid) {
|
|
267
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
268
|
+
yield this.service.cancelAddTransactionLine(uuid, false)
|
|
269
|
+
.then((response) => {
|
|
270
|
+
this.transaction = response;
|
|
271
|
+
this.articleAdded.emit(response);
|
|
272
|
+
});
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
TransactionManagerComponent.decorators = [
|
|
277
|
+
{ type: Component, args: [{
|
|
278
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
279
|
+
selector: "transaction-manager",
|
|
280
|
+
template: `
|
|
281
|
+
<warehouse #warehouse
|
|
282
|
+
(okClick)="warehouseOkClick()"
|
|
283
|
+
(cancelClick)="warehouseCancelClick()"
|
|
284
|
+
></warehouse>
|
|
285
|
+
<characteristic-answer
|
|
286
|
+
#characteristicAnswer
|
|
287
|
+
(okClick)="handleCharacteristicAnswerOkClick($event)"
|
|
288
|
+
></characteristic-answer>
|
|
289
|
+
`,
|
|
290
|
+
styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.flex-center,.warehouse-line-container{display:flex}.flex-center,.warehouse-line-container{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}::ng-deep #warehouseDialog ::ng-deep .form-content .message-field,.commission-fields{margin-left:11px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}::ng-deep #warehouseDialog{align-items:center;max-height:100%}::ng-deep #warehouseDialog ::ng-deep co-form{height:100%;width:500px}::ng-deep #warehouseDialog ::ng-deep .form-content{height:calc(100% - 80px);width:100%}::ng-deep #warehouseDialog ::ng-deep .form-content .message-field{height:20px;word-wrap:break-word;white-space:normal}co-button:not(:last-child){margin-right:10px}.commission-fields{justify-content:space-between;margin:10px 0}.warehouse-description-item{width:15rem}.warehouse-nr-item{width:5rem}co-input-number-picker co-button{max-width:20px}\n"]
|
|
291
|
+
},] }
|
|
292
|
+
];
|
|
293
|
+
TransactionManagerComponent.ctorParameters = () => [
|
|
294
|
+
{ type: TransactionService },
|
|
295
|
+
{ type: TransactionEventService },
|
|
296
|
+
{ type: PromptService },
|
|
297
|
+
{ type: DictionaryService }
|
|
298
|
+
];
|
|
299
|
+
TransactionManagerComponent.propDecorators = {
|
|
300
|
+
warehouse: [{ type: ViewChild, args: ["warehouse",] }],
|
|
301
|
+
characteristicAnswer: [{ type: ViewChild, args: ["characteristicAnswer",] }],
|
|
302
|
+
linesChanged: [{ type: Output }],
|
|
303
|
+
articleAdded: [{ type: Output }]
|
|
304
|
+
};
|
|
305
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbWFuYWdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudC9zZXJ2aWNlLW9yZGVyL3RyYW5zYWN0aW9uLW1hbmFnZXIvdHJhbnNhY3Rpb24tbWFuYWdlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFhLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBRTlFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBRW5GLE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLHdFQUF3RSxDQUFDO0FBQ3ZILE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBR25HLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBRS9GLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBRXRFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUV4RSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUdwRixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFpQjNELE1BQU0sT0FBTywyQkFBNEIsU0FBUSx3QkFBd0I7SUF3Q3ZFLFlBQ1MsT0FBMkIsRUFDM0IsaUJBQTBDLEVBQzFDLGFBQTRCLEVBQzVCLGtCQUFxQztRQUU1QyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFMUixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMzQixzQkFBaUIsR0FBakIsaUJBQWlC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QUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqQyxDQUFDLENBQ0YsQ0FBQztRQUNOLENBQUM7S0FBQTs7O1lBaFVGLFNBQVMsU0FBQztnQkFDVCw4REFBOEQ7Z0JBQzlELFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLFFBQVEsRUFBRTs7Ozs7Ozs7O0dBU1Q7O2FBRUY7OztZQWxDTyxrQkFBa0I7WUFHbEIsdUJBQXVCO1lBZXZCLGFBQWE7WUFQYixpQkFBaUI7Ozt3QkF5QnRCLFNBQVMsU0FBQyxXQUFXO21DQUdyQixTQUFTLFNBQUMsc0JBQXNCOzJCQUdoQyxNQUFNOzJCQUdOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7TnVtYmVyVXRpbHN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvdXRpbHMvbnVtYmVyLXV0aWxzXCI7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2VcIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm9cIjtcbmltcG9ydCB7UmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9yZXNvbHZlLXBlbmRpbmctcmVhc29uLXJlcXVlc3QuYm9cIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lVHlwZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3RyYW5zYWN0aW9uLWxpbmUtdHlwZS5lbnVtXCI7XG5pbXBvcnQge0NvRG9tYWluVmFsdWV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY28tZG9tYWluLXZhbHVlLmJvXCI7XG5pbXBvcnQge0xpbmVPcGVyYXRpb25TdGF0dXN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbGluZS1vcGVyYXRpb24tc3RhdHVzLmJvXCI7XG5pbXBvcnQge1BlbmRpbmdSZWFzb25UeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vcGVuZGluZy1yZWFzb24tdHlwZS5lbnVtXCI7XG5pbXBvcnQge0FydGljbGVGdWxsT2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZnVsbC1vYmplY3RcIjtcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZVwiO1xuaW1wb3J0IHtMaW5lT3BlcmF0aW9uUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbGluZS1vcGVyYXRpb24tcmVzcG9uc2UuYm9cIjtcbmltcG9ydCB7UG9zaXRpb25HcmlkUm93fSBmcm9tIFwiLi4vLi4vLi4vLi4vZW51bS9wb3NpdGlvbi1ncmlkLXJvdy5lbnVtXCI7XG5pbXBvcnQge0NoYXJhY3RlcmlzdGljQW5zd2VyQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vY29yZS9jaGFyYWN0ZXJpc3RpYy1hbnN3ZXIvY2hhcmFjdGVyaXN0aWMtYW5zd2VyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkJhc2VDb21wb25lbnR9IGZyb20gXCIuLi8uLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tYmFzZS5jb21wb25lbnRcIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby1yZXNwb25zZS5ib1wiO1xuaW1wb3J0IHtXYXJlaG91c2VDb21wb25lbnR9IGZyb20gXCIuLi8uLi9jb3JlL3dhcmVob3VzZS93YXJlaG91c2UuY29tcG9uZW50XCI7XG5pbXBvcnQge1Byb21wdFNlcnZpY2V9IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyXCI7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogXCJ0cmFuc2FjdGlvbi1tYW5hZ2VyXCIsXG4gIHRlbXBsYXRlOiBgXG4gICAgPHdhcmVob3VzZSAjd2FyZWhvdXNlXG4gICAgICAgIChva0NsaWNrKT1cIndhcmVob3VzZU9rQ2xpY2soKVwiXG4gICAgICAgIChjYW5jZWxDbGljayk9XCJ3YXJlaG91c2VDYW5jZWxDbGljaygpXCJcbiAgICA+PC93YXJlaG91c2U+XG4gICAgPGNoYXJhY3RlcmlzdGljLWFuc3dlclxuICAgICAgI2NoYXJhY3RlcmlzdGljQW5zd2VyXG4gICAgICAob2tDbGljayk9XCJoYW5kbGVDaGFyYWN0ZXJpc3RpY0Fuc3dlck9rQ2xpY2soJGV2ZW50KVwiXG4gICAgPjwvY2hhcmFjdGVyaXN0aWMtYW5zd2VyPlxuICBgLFxuICBzdHlsZVVybHM6IFtcIi4vdHJhbnNhY3Rpb24tbWFuYWdlci5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbk1hbmFnZXJDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvbkJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKFwid2FyZWhvdXNlXCIpXG4gIHB1YmxpYyB3YXJlaG91c2U6IFdhcmVob3VzZUNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKFwiY2hhcmFjdGVyaXN0aWNBbnN3ZXJcIilcbiAgcHVibGljIGNoYXJhY3RlcmlzdGljQW5zd2VyOiBDaGFyYWN0ZXJpc3RpY0Fuc3dlckNvbXBvbmVudDtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGxpbmVzQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgYXJ0aWNsZUFkZGVkOiBFdmVudEVtaXR0ZXI8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+ID0gbmV3IEV2ZW50RW1pdHRlcjxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4oKTtcblxuICBwdWJsaWMgZ2V0IGFtb3VudE9mTGluZXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTnVtYmVyVXRpbHMuTnJPckRlZmF1bHQodGhpcy5zZXJ2aWNlLmFydGljbGVBbW91bnQsIDApO1xuICB9XG5cbiAgcHVibGljIGdldCBzaG93Q2hhcmFjdGVyaXN0aWNEaWFsb2coKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dDaGFyYWN0ZXJpc3RpYztcbiAgfVxuXG4gIHB1YmxpYyBzZXQgc2hvd0NoYXJhY3RlcmlzdGljRGlhbG9nKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd0NoYXJhY3RlcmlzdGljID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgbmV3QXJ0aWNsZU5yOiBzdHJpbmc7XG4gIHB1YmxpYyBuZXdBcnRpY2xlOiBBcnRpY2xlRnVsbE9iamVjdDtcbiAgcHVibGljIHNlbGVjdGVkV2FyZWhvdXNlTnI6IG51bWJlcjtcbiAgcHVibGljIGFtb3VudDogbnVtYmVyO1xuXG4gIHB1YmxpYyBjb2x1bW5zOiBhbnlbXSA9IFtdO1xuXG4gIHB1YmxpYyBjdXJyZW50UGVuZGluZ0xpbmU6IFRyYW5zYWN0aW9uTGluZUluZm87XG4gIHB1YmxpYyBjdXJyZW50UmVhc29uOiBSZXNvbHZlUGVuZGluZ0xpbmVSZWFzb25SZXF1ZXN0O1xuXG4gIHByaXZhdGUgY3VycmVudE9wZXJhdGlvblN0YXR1czogTGluZU9wZXJhdGlvblN0YXR1cztcbiAgcHJpdmF0ZSBfaW5PdXRDb2xsZWN0aW9uOiBDb0RvbWFpblZhbHVlW10gPSBbXTtcbiAgcHJpdmF0ZSBfc2hvd0NoYXJhY3RlcmlzdGljOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25FdmVudHM6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLFxuICAgIHB1YmxpYyBwcm9tcHRTZXJ2aWNlOiBQcm9tcHRTZXJ2aWNlLFxuICAgIHB1YmxpYyBfZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxuICApIHtcbiAgICBzdXBlcihzZXJ2aWNlKTtcblxuICAgIHRoaXMuX3N1YnMucHVzaChcbiAgICAgIHRoaXMuc2VydmljZS50cmFuc2FjdGlvbkxvYWRlZC5zdWJzY3JpYmUoKHRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAodHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UuaXNTdWNjZXNzKSB7XG4gICAgICAgICAgdGhpcy50cmFuc2FjdGlvbiA9IHRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFkZEFydGljbGVMaW5lKHRyYW5zYWN0aW9uVXVpZDogc3RyaW5nLCBza3U6IHN0cmluZywgYW1vdW50OiBudW1iZXIsIGxpbmVOcjogbnVtYmVyLCBiZWZvcmVPckFmdGVyOiBQb3NpdGlvbkdyaWRSb3cpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBnb29kSWQ6IG51bWJlciA9IGF3YWl0IHRoaXMuc2VydmljZS5nZXRHb29kSWRGcm9tQXJ0aWNsZU5yKHNrdSk7XG4gICAgaWYgKGdvb2RJZCkge1xuICAgICAgYXdhaXQgdGhpcy5fbG9hZEFydGljbGUoZ29vZElkKTtcbiAgICAgIGF3YWl0IHRoaXMuX2hhbmRsZUFkZEFydGljbGVMaW5lQXQoYW1vdW50LCBsaW5lTnIsIGJlZm9yZU9yQWZ0ZXIpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMucHJvbXB0U2VydmljZS5zaG93RXJyb3IodGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiQVJUSUNMRV9VTktOT1dOXCIpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2hhbmdlTGluZVNlcXVlbmNlKGZyb21JbmRleDogbnVtYmVyLCB0b0luZGV4OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBsZXQgZnJvbUxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8gPSB0aGlzLl9nZXRUcmFuc2FjdGlvbkxpbmVJbmZvQnlJbmRleChmcm9tSW5kZXgpXG4gICAgbGV0IHRvTGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyA9IHRoaXMuX2dldFRyYW5zYWN0aW9uTGluZUluZm9CeUluZGV4KHRvSW5kZXgpO1xuICAgIGxldCBhYm92ZUxpbmVOcjogbnVtYmVyO1xuICAgIGxldCBiZWxvd0xpbmVOcjogbnVtYmVyO1xuXG4gICAgaWYgKGZyb21JbmRleCA+IHRvSW5kZXgpIHtcbiAgICAgIGFib3ZlTGluZU5yID0gdG9MaW5lLmxpbmVOcjtcbiAgICB9IGVsc2Uge1xuICAgICAgYmVsb3dMaW5lTnIgPSB0b0xpbmUubGluZU5yO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuc2VydmljZS5jaGFuZ2VMaW5lU2VxdWVuY2UoZnJvbUxpbmUudXVpZCwgYWJvdmVMaW5lTnIsIGJlbG93TGluZU5yLCBmYWxzZSlcbiAgICAgIC50aGVuKCh2YWx1ZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzKHZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yKSA9PiB0aGlzLnByb21wdFNlcnZpY2Uuc2hvd0Vycm9yKGVycm9yKSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2hvd1N0b2NrTWFuYWdlcihsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy53YXJlaG91c2Uuc2VsZWN0ZWRXYXJlaG91c2VOciA9IGxpbmUud2FyZWhvdXNlTnVtYmVyO1xuICAgIHRoaXMud2FyZWhvdXNlLmFtb3VudCA9IGxpbmUuYW1vdW50O1xuICAgIHRoaXMud2FyZWhvdXNlLmNvbW1pc3Npb25Db2RlID0gbGluZS5jb21taXNzaW9uQ29kZTtcbiAgICB0aGlzLndhcmVob3VzZS5tZXNzYWdlID0gdGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb247XG4gICAgdGhpcy53YXJlaG91c2Uuc2hvdyhsaW5lLmFydGljbGVOdW1iZXIpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHdhcmVob3VzZU9rQ2xpY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMud2FyZWhvdXNlLmNvbW1pc3Npb25Db2RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY3VycmVudFJlYXNvbi5jb21taXNzaW9uQ29kZSA9IHRoaXMud2FyZWhvdXNlLmNvbW1pc3Npb25Db2RlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLndhcmVob3VzZS5hbW91bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jdXJyZW50UmVhc29uLnF1YW50aXR5ID0gdGhpcy53YXJlaG91c2UuYW1vdW50O1xuICAgIH1cblxuICAgIGlmICh0aGlzLndhcmVob3VzZS5zZWxlY3RlZFdhcmVob3VzZU5yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY3VycmVudFJlYXNvbi53YXJlaG91c2VOciA9IHRoaXMud2FyZWhvdXNlLnNlbGVjdGVkV2FyZWhvdXNlTnI7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY3VycmVudFJlYXNvbikge1xuICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnJlc29sdmVQZW5kaW5nTGluZVJlYXNvbih0aGlzLmN1cnJlbnRSZWFzb24sIGZhbHNlKVxuICAgICAgICAudGhlbigodmFsdWU6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlTGluZU9wZXJhdGlvblN0YXR1cyh2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB3YXJlaG91c2VDYW5jZWxDbGljaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5jdXJyZW50UmVhc29uKSB7XG4gICAgICBhd2FpdCB0aGlzLl9jYW5jZWxBcnRpY2xlKHRoaXMuY3VycmVudFJlYXNvbi5saW5lVXVpZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGhhbmRsZUNoYXJhY3RlcmlzdGljQW5zd2VyT2tDbGljayhhbnN3ZXI6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuY3VycmVudFJlYXNvbiA9IG5ldyBSZXNvbHZlUGVuZGluZ0xpbmVSZWFzb25SZXF1ZXN0KHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy51dWlkLCB0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbiwgdGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb25UeXBlKTtcbiAgICB0aGlzLmN1cnJlbnRSZWFzb24udGV4dHVhbFVzZXJJbnB1dCA9IGFuc3dlcjtcbiAgICBhd2FpdCB0aGlzLnNlcnZpY2UucmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHRoaXMuY3VycmVudFJlYXNvbiwgZmFsc2UpXG4gICAgICAudGhlbigodmFsdWU6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUxpbmVPcGVyYXRpb25TdGF0dXModmFsdWUpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9oYW5kbGVBZGRBcnRpY2xlKGFtb3VudDogbnVtYmVyID0gMSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuc2VydmljZS5hZGRUcmFuc2FjdGlvbkxpbmUoVHJhbnNhY3Rpb25MaW5lVHlwZS5BcnRpY2xlTGluZSxcbiAgICAgIHRoaXMubmV3QXJ0aWNsZU5yLFxuICAgICAgYW1vdW50LFxuICAgICAgdGhpcy5uZXdBcnRpY2xlLnN0YW5kYXJkV2FyZUhvdXNlLFxuICAgICAgdGhpcy5uZXdBcnRpY2xlLmNvbW1pc3Npb25Db2RlLFxuICAgICAgZmFsc2UsXG4gICAgICAwLFxuICAgICAgMCxcbiAgICAgIGZhbHNlKVxuICAgICAgLnRoZW4oKHZhbHVlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcbiAgICAgICAgdGhpcy5oYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzKHZhbHVlKTtcbiAgICAgIH0sXG4gICAgICAoZXJyb3IpID0+IHRoaXMucHJvbXB0U2VydmljZS5zaG93RXJyb3IoZXJyb3IpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2hhbmRsZUFkZEFydGljbGVMaW5lQXQoYW1vdW50OiBudW1iZXIsIGxpbmVOcjogbnVtYmVyLCBiZWZvcmVPckFmdGVyOiBQb3NpdGlvbkdyaWRSb3cpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnNlcnZpY2UuYWRkQXJ0aWNsZVRvVHJhbnNhY3Rpb24odGhpcy50cmFuc2FjdGlvbkluZm8udXVpZCxcbiAgICAgIHRoaXMubmV3QXJ0aWNsZU5yLFxuICAgICAgYW1vdW50LFxuICAgICAgdGhpcy5uZXdBcnRpY2xlLnN0YW5kYXJkV2FyZUhvdXNlLFxuICAgICAgdGhpcy5uZXdBcnRpY2xlLmNvbW1pc3Npb25Db2RlLFxuICAgICAgZmFsc2UsXG4gICAgICBiZWZvcmVPckFmdGVyID09PSBQb3NpdGlvbkdyaWRSb3cuQmVmb3JlID8gbGluZU5yIDogdW5kZWZpbmVkLFxuICAgICAgYmVmb3JlT3JBZnRlciA9PT0gUG9zaXRpb25HcmlkUm93LkFmdGVyID8gbGluZU5yIDogdW5kZWZpbmVkKVxuICAgICAgLnRoZW4oKHZhbHVlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLmxpbmVPcGVyYXRpb25TdGF0dXNlcyA9IHZhbHVlLmxpbmVPcGVyYXRpb25TdGF0dXNlcztcbiAgICAgICAgICB0aGlzLmhhbmRsZUxpbmVPcGVyYXRpb25TdGF0dXModmFsdWUpO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyb3IpID0+IHRoaXMucHJvbXB0U2VydmljZS5zaG93RXJyb3IoZXJyb3IpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFdhcmVIb3VzZU5vRnJvbUFydGljbGUoKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5uZXdBcnRpY2xlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5uZXdBcnRpY2xlLnN0b2NrTG9jYXRpb25zICE9PSB1bmRlZmluZWQgJiYgdGhpcy5uZXdBcnRpY2xlLnN0b2NrTG9jYXRpb25zLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRoaXMubmV3QXJ0aWNsZS5zdG9ja0xvY2F0aW9uc1swXS53YXJlaG91c2VOcjtcbiAgICB9XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBwdWJsaWMgaXNMaW5lT3BlcmF0aW9uU3RhdHVzKGxpbmVPcGVyYXRpb25TdGF0dXNlczogTGluZU9wZXJhdGlvblN0YXR1c1tdKTogYm9vbGVhbiB7XG4gICAgdGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzID0gdGhpcy5zZXJ2aWNlLnBlbmRpbmdMaW5lT3BlcmF0aW9uU3RhdHVzKGxpbmVPcGVyYXRpb25TdGF0dXNlcyk7XG4gICAgaWYgKHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfY29uZmlybUFjdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmN1cnJlbnRSZWFzb24gPSBuZXcgUmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uUmVxdWVzdCh0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMudXVpZCwgdGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb24sIHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uVHlwZSk7XG4gICAgY29uc3QgcGVuZGluZ1JlYXNvblRleHQ6IHN0cmluZyA9IGF3YWl0IHRoaXMuX2dldFBlbmRpbmdSZWFzb25UZXh0KHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uKTtcbiAgICB0aGlzLmN1cnJlbnRSZWFzb24uY29uZmlybWF0aW9uICA9IGF3YWl0IHRoaXMucHJvbXB0U2VydmljZS5zaG93WWVzTm8ocGVuZGluZ1JlYXNvblRleHQsIFwiIFwiKTtcbiAgICBhd2FpdCB0aGlzLnNlcnZpY2UucmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHRoaXMuY3VycmVudFJlYXNvbiwgZmFsc2UpXG4gICAgICAudGhlbigodmFsdWU6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUxpbmVPcGVyYXRpb25TdGF0dXModmFsdWUpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9zaG93SW5mb3JtYXRpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jdXJyZW50UmVhc29uID0gbmV3IFJlc29sdmVQZW5kaW5nTGluZVJlYXNvblJlcXVlc3QodGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnV1aWQsIHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uLCB0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvblR5cGUpO1xuICAgIGNvbnN0IHBlbmRpbmdSZWFzb25UZXh0OiBzdHJpbmcgPSBhd2FpdCB0aGlzLl9nZXRQZW5kaW5nUmVhc29uVGV4dCh0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbik7XG4gICAgYXdhaXQgdGhpcy5wcm9tcHRTZXJ2aWNlLnNob3dPa01vZGFsKHBlbmRpbmdSZWFzb25UZXh0LCBcIiBcIik7XG4gICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnJlc29sdmVQZW5kaW5nTGluZVJlYXNvbih0aGlzLmN1cnJlbnRSZWFzb24sIGZhbHNlKVxuICAgICAgLnRoZW4oKHZhbHVlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcbiAgICAgICAgdGhpcy5oYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzKHZhbHVlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfZ2V0UGVuZGluZ1JlYXNvblRleHQocGVuZGluZ1JlYXNvbjogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBpZiAocGVuZGluZ1JlYXNvbiA9PT0gXCJBUlRJQ0xFX0lTX0RJU0NPTlRJTlVFRF9ET19ZT1VfV0FOVF9UT19DT05USU5VRV9QTEVBU0VfQ09ORklSTVwiKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiQVJUSUNMRV9JTl9PVVRfQ09MTEVDVElPTlwiKS5yZXBsYWNlKFwifH5cIiwgYXdhaXQgdGhpcy5nZXRJbk91dENvbGxlY3Rpb25PZkFydGljbGUoKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQocGVuZGluZ1JlYXNvbik7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldEluT3V0Q29sbGVjdGlvbk9mQXJ0aWNsZSgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICghdGhpcy5faW5PdXRDb2xsZWN0aW9uLmxlbmd0aCkge1xuICAgICAgdGhpcy5faW5PdXRDb2xsZWN0aW9uID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmdldEluT3V0Q29sbGVjdGlvbihcIk5MXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGRvbWFpblZhbHVlOiBDb0RvbWFpblZhbHVlID0gdGhpcy5faW5PdXRDb2xsZWN0aW9uLmZpbmQoZWxlbWVudCA9PiBlbGVtZW50LmNvZGUgPT09IHRoaXMubmV3QXJ0aWNsZS5pbk91dENvbGxlY3Rpb24pO1xuICAgIGlmIChkb21haW5WYWx1ZSkge1xuICAgICAgcmV0dXJuIGRvbWFpblZhbHVlLmRlc2NyaXB0aW9uO1xuICAgIH1cbiAgICByZXR1cm4gXCJcIjtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzKGxpbmVPcGVyYXRpb25SZXNwb25zZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuaXNMaW5lT3BlcmF0aW9uU3RhdHVzKGxpbmVPcGVyYXRpb25SZXNwb25zZS5saW5lT3BlcmF0aW9uU3RhdHVzZXMpKSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uID0gbGluZU9wZXJhdGlvblJlc3BvbnNlO1xuICAgICAgdGhpcy5hcnRpY2xlQWRkZWQuZW1pdCh0aGlzLnRyYW5zYWN0aW9uKTtcbiAgICAgIGF3YWl0IHRoaXMuX2hhbmRsZVBlbmRpbmdMaW5lKHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy51dWlkKS50aGVuKCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgYXdhaXQgdGhpcy5fc2F2ZVRyYW5zYWN0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSAgYXN5bmMgX2hhbmRsZVBlbmRpbmdMaW5lKGxpbmVVdWlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmN1cnJlbnRSZWFzb24gPSBuZXcgUmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uUmVxdWVzdCh0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMudXVpZCwgdGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb24sIHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uVHlwZSk7XG4gICAgdGhpcy5jdXJyZW50UGVuZGluZ0xpbmUgPSB0aGlzLnRyYW5zYWN0aW9uTGluZXMuZmluZChsID0+IGwudXVpZCA9PT0gbGluZVV1aWQpO1xuXG4gICAgc3dpdGNoICh0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvblR5cGUpIHtcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQUJPUlRFRDpcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQ0FOQ0VMTEVEOlxuICAgICAgICBhd2FpdCB0aGlzLl9jYW5jZWxBcnRpY2xlKHRoaXMuY3VycmVudFBlbmRpbmdMaW5lLnV1aWQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQ09ORklSTUFUSU9OX05FRURFRDpcbiAgICAgICAgYXdhaXQgdGhpcy5fY29uZmlybUFjdGlvbigpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuSU5WQUxJRF9MT0dJU1RJQ1M6XG4gICAgICAgIGF3YWl0IHRoaXMuc2hvd1N0b2NrTWFuYWdlcih0aGlzLmN1cnJlbnRQZW5kaW5nTGluZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5OT05fQ1JJVElDQUxfRElTQ09OVElOVUFUSU9OOlxuICAgICAgICBhd2FpdCB0aGlzLl9zaG93SW5mb3JtYXRpb24oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLkNIQVJBQ1RFUklTVElDU19BTlNXRVJfTkVFREVEOlxuICAgICAgICB0aGlzLkNoYXJhY3RlcmlzdGljc0Fuc3dlck5lZWRlZCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuTk9ORTpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuY3VycmVudFJlYXNvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5jdXJyZW50UGVuZGluZ0xpbmUgPSB1bmRlZmluZWQ7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3NhdmVUcmFuc2FjdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbkluZm8pIHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBhd2FpdCB0aGlzLnNlcnZpY2Uuc2F2ZVRyYW5zYWN0aW9uQnlVdWlkKHRoaXMudHJhbnNhY3Rpb25JbmZvLnV1aWQpO1xuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIHRoaXMucHJvbXB0U2VydmljZS5zaG93RXJyb3IoXCJUcmFuc2FjdGlvbiBjb3VsZCBub3QgYmUgc2F2ZWQhXCIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2xvYWRBcnRpY2xlKGdvb2RJZDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5uZXdBcnRpY2xlID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmdldEFydGljbGVGdWxsT2JqZWN0KGdvb2RJZCk7XG4gICAgdGhpcy5uZXdBcnRpY2xlTnIgPSB0aGlzLm5ld0FydGljbGUuYXJ0aWNsZU5yO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRFbWFpbEFkZHJlc3NUb1RyYW5zYWN0aW9uKGVtYWlsQWRkcmVzczogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZXJ2aWNlLmVtYWlsQWRkcmVzcyA9IGVtYWlsQWRkcmVzcztcbiAgfVxuXG4gIHByaXZhdGUgQ2hhcmFjdGVyaXN0aWNzQW5zd2VyTmVlZGVkKCk6IHZvaWQge1xuICAgIHRoaXMuY2hhcmFjdGVyaXN0aWNBbnN3ZXIucXVlc3Rpb24gPSB0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMuY2hhcmFjdGVyaXN0aWMucXVlc3Rpb247XG4gICAgdGhpcy5jaGFyYWN0ZXJpc3RpY0Fuc3dlci50aXRsZSA9IHRoaXMubmV3QXJ0aWNsZS5kZXNjcmlwdGlvbjtcbiAgICB0aGlzLmNoYXJhY3RlcmlzdGljQW5zd2VyLnZhbHVlID0gdGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLmNoYXJhY3RlcmlzdGljLnZhbHVlO1xuICAgIHRoaXMuY2hhcmFjdGVyaXN0aWNBbnN3ZXIuY2hhcmFjdGVyaXN0aWNzID0gdGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLmNoYXJhY3RlcmlzdGljLnRyYW5zYWN0aW9uTGluZUNoYXJhY3RlcmlzdGljQ2hvaWNlcztcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jaGFyYWN0ZXJpc3RpY0Fuc3dlci5vcGVuKCk7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbWFnaWMtbnVtYmVyc1xuICAgIH0sIDEwMDApO1xuXG4gIH1cblxuICBwcml2YXRlIF9nZXRUcmFuc2FjdGlvbkxpbmVJbmZvQnlJbmRleChpbmRleDogbnVtYmVyKTogVHJhbnNhY3Rpb25MaW5lSW5mbyB7XG4gICAgaWYgKGluZGV4ID49IDAgJiYgaW5kZXggPCB0aGlzLnRyYW5zYWN0aW9uTGluZXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmN1cnJlbnRMaW5lc1tpbmRleF1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9jYW5jZWxBcnRpY2xlKHV1aWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuc2VydmljZS5jYW5jZWxBZGRUcmFuc2FjdGlvbkxpbmUodXVpZCwgZmFsc2UpXG4gICAgICAudGhlbigocmVzcG9uc2U6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb24gPSByZXNwb25zZTtcbiAgICAgICAgdGhpcy5hcnRpY2xlQWRkZWQuZW1pdChyZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -63,7 +63,7 @@ TransactionOrderLineViewComponent.decorators = [
|
|
|
63
63
|
</div>
|
|
64
64
|
</div>
|
|
65
65
|
`,
|
|
66
|
-
styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.transaction-order-line-r .transaction-order-line-description .cart-line-description-artnr{font-size:10px}.flex-center{display:flex}.flex-center{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount,.transaction-order-line-r .transaction-order-line-image,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-stock,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{margin-top:20px}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount,.transaction-order-line-r .transaction-order-line-image,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-stock,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{margin-bottom:20px}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{margin-left:20px}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount{margin-right:20px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host{display:block;padding:20px}:host ::ng-deep collapseable{width:100%!important}.horizontal{display:flex;flex-direction:row}.service-request-button-wrapper{display:flex;justify-content:center;margin-top:20px}.transaction-order-line-r{display:flex;justify-content:stretch;flex-direction:row}@media (max-width: 800px){.transaction-order-line-r{flex-direction:column}}.transaction-order-line-r .transaction-order-line-image{display:flex;flex:1 0 auto!important;flex-direction:column;align-items:center;justify-content:center;padding-right:10px}.transaction-order-line-r .transaction-order-line-image image-display{width:6em;height:6em}.transaction-order-line-r .transaction-order-line-image ::ng-deep no-image-display{display:none}.transaction-order-line-r .transaction-order-line-description{display:flex;flex-direction:column;width:auto;max-width:355px;margin-left:10px}.transaction-order-line-r .transaction-order-line-description .cart-line-description-main{font-weight:bold}.transaction-order-line-r .transaction-order-line-right{justify-content:flex-end;align-items:center}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-stock{width:10em}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount{width:
|
|
66
|
+
styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.transaction-order-line-r .transaction-order-line-description .cart-line-description-artnr{font-size:10px}.flex-center{display:flex}.flex-center{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount,.transaction-order-line-r .transaction-order-line-image,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-stock,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{margin-top:20px}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount,.transaction-order-line-r .transaction-order-line-image,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-stock,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{margin-bottom:20px}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{margin-left:20px}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount{margin-right:20px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host{display:block;padding:20px}:host ::ng-deep collapseable{width:100%!important}.horizontal{display:flex;flex-direction:row}.service-request-button-wrapper{display:flex;justify-content:center;margin-top:20px}.transaction-order-line-r{display:flex;justify-content:stretch;flex-direction:row}@media (max-width: 800px){.transaction-order-line-r{flex-direction:column}}.transaction-order-line-r .transaction-order-line-image{display:flex;flex:1 0 auto!important;flex-direction:column;align-items:center;justify-content:center;padding-right:10px}.transaction-order-line-r .transaction-order-line-image image-display{width:6em;height:6em}.transaction-order-line-r .transaction-order-line-image ::ng-deep no-image-display{display:none}.transaction-order-line-r .transaction-order-line-description{display:flex;flex-direction:column;width:auto;max-width:355px;margin-left:10px}.transaction-order-line-r .transaction-order-line-description .cart-line-description-main{font-weight:bold}.transaction-order-line-r .transaction-order-line-right{justify-content:flex-end;align-items:center}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-stock{width:10em}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount{width:15em}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{display:flex;justify-content:flex-end;min-width:100px;font-weight:bold}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals span{text-align:right}\n"]
|
|
67
67
|
},] }
|
|
68
68
|
];
|
|
69
69
|
TransactionOrderLineViewComponent.ctorParameters = () => [
|
|
@@ -56,7 +56,7 @@ TransactionOrderLinesComponent.decorators = [
|
|
|
56
56
|
(rowsSelected)="onRowClick($event)"
|
|
57
57
|
></co-grid>
|
|
58
58
|
`,
|
|
59
|
-
styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.transaction-order-line-r .transaction-order-line-description .cart-line-description-artnr{font-size:10px}.flex-center{display:flex}.flex-center{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount,.transaction-order-line-r .transaction-order-line-image,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-stock,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{margin-top:20px}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount,.transaction-order-line-r .transaction-order-line-image,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-stock,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{margin-bottom:20px}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{margin-left:20px}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount{margin-right:20px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host{display:block;padding:20px}:host ::ng-deep collapseable{width:100%!important}.service-request-button-wrapper{display:flex;justify-content:center;margin-top:20px}.transaction-order-line-r{display:flex;justify-content:stretch;flex-direction:row}@media (max-width: 800px){.transaction-order-line-r{flex-direction:column}}.transaction-order-line-r .transaction-order-line-image{display:flex;flex:1 0 auto!important;flex-direction:column;align-items:center;justify-content:center;padding-right:10px}.transaction-order-line-r .transaction-order-line-image image-display{width:6em;height:6em}.transaction-order-line-r .transaction-order-line-image ::ng-deep no-image-display{display:none}.transaction-order-line-r .transaction-order-line-description{display:flex;flex-direction:column;width:auto;max-width:355px;margin-left:10px}.transaction-order-line-r .transaction-order-line-description .cart-line-description-main{font-weight:bold}.transaction-order-line-r .transaction-order-line-right{justify-content:flex-end;align-items:center}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-stock{width:10em}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount{width:
|
|
59
|
+
styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.transaction-order-line-r .transaction-order-line-description .cart-line-description-artnr{font-size:10px}.flex-center{display:flex}.flex-center{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount,.transaction-order-line-r .transaction-order-line-image,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-stock,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{margin-top:20px}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount,.transaction-order-line-r .transaction-order-line-image,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-stock,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{margin-bottom:20px}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{margin-left:20px}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount{margin-right:20px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host{display:block;padding:20px}:host ::ng-deep collapseable{width:100%!important}.service-request-button-wrapper{display:flex;justify-content:center;margin-top:20px}.transaction-order-line-r{display:flex;justify-content:stretch;flex-direction:row}@media (max-width: 800px){.transaction-order-line-r{flex-direction:column}}.transaction-order-line-r .transaction-order-line-image{display:flex;flex:1 0 auto!important;flex-direction:column;align-items:center;justify-content:center;padding-right:10px}.transaction-order-line-r .transaction-order-line-image image-display{width:6em;height:6em}.transaction-order-line-r .transaction-order-line-image ::ng-deep no-image-display{display:none}.transaction-order-line-r .transaction-order-line-description{display:flex;flex-direction:column;width:auto;max-width:355px;margin-left:10px}.transaction-order-line-r .transaction-order-line-description .cart-line-description-main{font-weight:bold}.transaction-order-line-r .transaction-order-line-right{justify-content:flex-end;align-items:center}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-stock{width:10em}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount{width:15em}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{display:flex;justify-content:flex-end;min-width:100px;font-weight:bold}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals span{text-align:right}\n"]
|
|
60
60
|
},] }
|
|
61
61
|
];
|
|
62
62
|
TransactionOrderLinesComponent.ctorParameters = () => [
|
|
@@ -1,27 +1,29 @@
|
|
|
1
|
-
import { Component
|
|
1
|
+
import { Component } from "@angular/core";
|
|
2
2
|
import { TransactionService } from "../../../service/transaction.service";
|
|
3
|
-
|
|
3
|
+
import { TransactionBaseComponent } from "../../core/base/transaction-base.component";
|
|
4
|
+
export class TransactionOrderTotalsComponent extends TransactionBaseComponent {
|
|
4
5
|
constructor(service) {
|
|
6
|
+
super(service);
|
|
5
7
|
this.service = service;
|
|
6
|
-
//super(service);
|
|
7
8
|
}
|
|
8
9
|
}
|
|
9
10
|
TransactionOrderTotalsComponent.decorators = [
|
|
10
11
|
{ type: Component, args: [{
|
|
12
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
11
13
|
selector: "transaction-order-totals",
|
|
12
14
|
template: `
|
|
13
15
|
<div class="totals-wrapper">
|
|
14
16
|
<div class="totals-item">
|
|
15
17
|
<div class="totals-item-description" [textContent]="'SUBTOTAL' | localize"></div>
|
|
16
|
-
<div class="totals-item-value" [textContent]="transactionTotal
|
|
18
|
+
<div class="totals-item-value" [textContent]="transactionTotal?.grossAmount | coCurrency | coCurrency"></div>
|
|
17
19
|
</div>
|
|
18
20
|
<div class="totals-item">
|
|
19
21
|
<div class="totals-item-description" [textContent]="'VAT_AMOUNT' | localize"></div>
|
|
20
|
-
<div class="totals-item-value" [textContent]="transactionTotal
|
|
22
|
+
<div class="totals-item-value" [textContent]="transactionTotal?.surchargeAmount | coCurrency"></div>
|
|
21
23
|
</div>
|
|
22
24
|
<div class="totals-item total">
|
|
23
25
|
<div class="totals-item-description" [textContent]="'TRANSACTION_SUM_I' | localize"></div>
|
|
24
|
-
<div class="totals-item-value" [textContent]="transactionTotal
|
|
26
|
+
<div class="totals-item-value" [textContent]="transactionTotal?.netAmount | coCurrency"></div>
|
|
25
27
|
</div>
|
|
26
28
|
</div>
|
|
27
29
|
`,
|
|
@@ -31,7 +33,4 @@ TransactionOrderTotalsComponent.decorators = [
|
|
|
31
33
|
TransactionOrderTotalsComponent.ctorParameters = () => [
|
|
32
34
|
{ type: TransactionService }
|
|
33
35
|
];
|
|
34
|
-
|
|
35
|
-
transactionTotal: [{ type: Input }]
|
|
36
|
-
};
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tb3JkZXItdG90YWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50L3NlcnZpY2Utb3JkZXIvdHJhbnNhY3Rpb24tb3JkZXItdG90YWxzL3RyYW5zYWN0aW9uLW9yZGVyLXRvdGFscy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUEwQnhFLE1BQU0sT0FBTywrQkFBK0IsQ0FBQyxvQ0FBb0M7SUFLN0UsWUFDdUIsT0FBMkI7UUFBM0IsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFFOUMsaUJBQWlCO0lBQ3JCLENBQUM7OztZQS9CSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7S0FlVDs7YUFJSjs7O1lBekJPLGtCQUFrQjs7OytCQTRCckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblRvdGFsfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLXRvdGFsLmJvXCI7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJ0cmFuc2FjdGlvbi1vcmRlci10b3RhbHNcIixcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRvdGFscy13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b3RhbHMtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvdGFscy1pdGVtLWRlc2NyaXB0aW9uXCIgW3RleHRDb250ZW50XT1cIidTVUJUT1RBTCcgfCBsb2NhbGl6ZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvdGFscy1pdGVtLXZhbHVlXCIgW3RleHRDb250ZW50XT1cInRyYW5zYWN0aW9uVG90YWwuZ3Jvc3NBbW91bnQgfCBjb0N1cnJlbmN5IHwgY29DdXJyZW5jeVwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvdGFscy1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG90YWxzLWl0ZW0tZGVzY3JpcHRpb25cIiBbdGV4dENvbnRlbnRdPVwiJ1ZBVF9BTU9VTlQnIHwgbG9jYWxpemVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b3RhbHMtaXRlbS12YWx1ZVwiIFt0ZXh0Q29udGVudF09XCJ0cmFuc2FjdGlvblRvdGFsLnN1cmNoYXJnZUFtb3VudCB8IGNvQ3VycmVuY3lcIj48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b3RhbHMtaXRlbSB0b3RhbFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvdGFscy1pdGVtLWRlc2NyaXB0aW9uXCIgW3RleHRDb250ZW50XT1cIidUUkFOU0FDVElPTl9TVU1fSScgfCBsb2NhbGl6ZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvdGFscy1pdGVtLXZhbHVlXCIgW3RleHRDb250ZW50XT1cInRyYW5zYWN0aW9uVG90YWwubmV0QW1vdW50IHwgY29DdXJyZW5jeVwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIGAsXHJcbiAgICBzdHlsZVVybHM6IFtcclxuICAgICAgICBcIi4vdHJhbnNhY3Rpb24tb3JkZXItdG90YWxzLmNvbXBvbmVudC5zY3NzXCJcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uT3JkZXJUb3RhbHNDb21wb25lbnQgLypleHRlbmRzIFRyYW5zYWN0aW9uQmFzZUNvbXBvbmVudCovIHtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uVG90YWw6IFRyYW5zYWN0aW9uVG90YWw7XHJcblxyXG4gICAgY29uc3RydWN0b3IgKFxyXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIC8vc3VwZXIoc2VydmljZSk7XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tb3JkZXItdG90YWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50L3NlcnZpY2Utb3JkZXIvdHJhbnNhY3Rpb24tb3JkZXItdG90YWxzL3RyYW5zYWN0aW9uLW9yZGVyLXRvdGFscy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUV4RSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQTBCcEYsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLHdCQUF3QjtJQUV6RSxZQUN1QixPQUEyQjtRQUU5QyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFGSSxZQUFPLEdBQVAsT0FBTyxDQUFvQjtJQUdsRCxDQUFDOzs7WUE3QkosU0FBUyxTQUFDO2dCQUNULDhEQUE4RDtnQkFDNUQsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7S0FlVDs7YUFJSjs7O1lBM0JPLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblRvdGFsfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLXRvdGFsLmJvXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vY29yZS9iYXNlL3RyYW5zYWN0aW9uLWJhc2UuY29tcG9uZW50XCI7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcclxuICAgIHNlbGVjdG9yOiBcInRyYW5zYWN0aW9uLW9yZGVyLXRvdGFsc1wiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwidG90YWxzLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvdGFscy1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG90YWxzLWl0ZW0tZGVzY3JpcHRpb25cIiBbdGV4dENvbnRlbnRdPVwiJ1NVQlRPVEFMJyB8IGxvY2FsaXplXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG90YWxzLWl0ZW0tdmFsdWVcIiBbdGV4dENvbnRlbnRdPVwidHJhbnNhY3Rpb25Ub3RhbD8uZ3Jvc3NBbW91bnQgfCBjb0N1cnJlbmN5IHwgY29DdXJyZW5jeVwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvdGFscy1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG90YWxzLWl0ZW0tZGVzY3JpcHRpb25cIiBbdGV4dENvbnRlbnRdPVwiJ1ZBVF9BTU9VTlQnIHwgbG9jYWxpemVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b3RhbHMtaXRlbS12YWx1ZVwiIFt0ZXh0Q29udGVudF09XCJ0cmFuc2FjdGlvblRvdGFsPy5zdXJjaGFyZ2VBbW91bnQgfCBjb0N1cnJlbmN5XCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG90YWxzLWl0ZW0gdG90YWxcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b3RhbHMtaXRlbS1kZXNjcmlwdGlvblwiIFt0ZXh0Q29udGVudF09XCInVFJBTlNBQ1RJT05fU1VNX0knIHwgbG9jYWxpemVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b3RhbHMtaXRlbS12YWx1ZVwiIFt0ZXh0Q29udGVudF09XCJ0cmFuc2FjdGlvblRvdGFsPy5uZXRBbW91bnQgfCBjb0N1cnJlbmN5XCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgYCxcclxuICAgIHN0eWxlVXJsczogW1xyXG4gICAgICAgIFwiLi90cmFuc2FjdGlvbi1vcmRlci10b3RhbHMuY29tcG9uZW50LnNjc3NcIlxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25PcmRlclRvdGFsc0NvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uQmFzZUNvbXBvbmVudCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IgKFxyXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKHNlcnZpY2UpO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
|