@colijnit/transaction 12.1.90 → 12.1.92
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/bundles/colijnit-transaction.umd.js +3339 -3109
- package/bundles/colijnit-transaction.umd.js.map +1 -1
- package/colijnit-transaction.d.ts +382 -381
- package/colijnit-transaction.metadata.json +1 -1
- package/esm2015/colijnit-transaction.js +383 -382
- package/esm2015/lib/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +2 -1
- package/esm2015/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +32 -19
- package/esm2015/lib/component/confirmation-dialog/confirmation-dialog.component.js +10 -4
- package/esm2015/lib/component/confirmation-dialog/confirmation-dialog.module.js +4 -3
- package/esm2015/lib/component/core/base/components/transaction-header-block/transaction-header-block.component.js +1 -2
- package/esm2015/lib/component/core/base/dialog-base.component.js +2 -2
- package/esm2015/lib/component/core/base/transaction-input-field-base.component.js +5 -3
- package/esm2015/lib/component/core/directive/overlay-parent.directive.js +1 -1
- package/esm2015/lib/component/delivery-type-tile/delivery-type-tile.component.js +2 -2
- package/esm2015/lib/component/delivery-type-tile/delivery-type-tile.module.js +4 -2
- package/esm2015/lib/component/deposit-payment/deposit-payment.component.js +18 -20
- package/esm2015/lib/component/dialog/catalog/dialog-catalog/dialog-catalog.component.js +2 -2
- package/esm2015/lib/component/payment/payment.component.js +5 -7
- package/esm2015/lib/component/relation/relation-address/relation-address.component.js +2 -2
- package/esm2015/lib/component/relation/relation-addresses/relation-addresses.component.js +26 -7
- package/esm2015/lib/component/relation/relation-base.component.js +3 -1
- package/esm2015/lib/component/relation/relation-contact-details/relation-contact-details.component.js +5 -2
- package/esm2015/lib/component/shared/transaction-article-text/transaction-article-text.component.js +2 -2
- package/esm2015/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.component.js +2 -2
- package/esm2015/lib/component/transaction-card/transaction-card-header/transaction-card-header.component.js +2 -2
- package/esm2015/lib/component/transaction-create-date-label/transaction-create-date-label.component.js +2 -2
- package/esm2015/lib/component/transaction-grid/transaction-lines-grid/transaction-lines-grid.component.js +5 -5
- package/esm2015/lib/component/transaction-header/transaction-header-order/transaction-header-order.component.js +2 -2
- package/esm2015/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.js +11 -8
- package/esm2015/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.module.js +4 -2
- package/esm2015/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.component.js +19 -32
- package/esm2015/lib/component/transaction-header-fields/transaction-header-delivery-method.component.js +6 -3
- package/esm2015/lib/component/transaction-header-fields/transaction-header-delivery-options/transaction-header-delivery-options.component.js +2 -1
- package/esm2015/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.component.js +6 -2
- package/esm2015/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.module.js +4 -2
- package/esm2015/lib/component/transaction-line/transaction-purchase-line/transaction-purchase-line.component.js +4 -4
- package/esm2015/lib/component/transaction-line/transaction-purchase-order-line/transaction-purchase-order-line.component.js +1 -2
- package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-date.component.js +3 -2
- package/esm2015/lib/component/transaction-line-fields/transaction-line-description.component.js +2 -1
- package/esm2015/lib/component/transaction-line-fields/transaction-line-supplier-button.component.js +14 -1
- package/esm2015/lib/component/transaction-line-image-and-description/transaction-line-image-and-description.component.js +3 -2
- package/esm2015/lib/component/transaction-line-side-panel/transaction-line-side-panel.module.js +4 -2
- package/esm2015/lib/component/transaction-line-side-panel-article-details/transaction-line-side-panel-article-details.component.js +319 -0
- package/esm2015/lib/component/transaction-line-side-panel-article-details/transaction-line-side-panel-article-details.module.js +26 -0
- package/esm2015/lib/component/transaction-search/service/transaction-search.service.js +4 -4
- package/esm2015/lib/component/transaction-tags/transaction-tags.component.js +1 -1
- package/esm2015/lib/component/transaction-tile/transaction-tile.component.js +3 -3
- package/esm2015/lib/component/transaction-totals/transaction-totals.component.js +5 -1
- package/esm2015/lib/enum/icon.enum.js +2 -1
- package/esm2015/lib/interface/dialog-response.interface.js +1 -1
- package/esm2015/lib/model/alternate-supplier.viewmodel.js +3 -0
- package/esm2015/lib/model/icon-svg.js +2 -1
- package/esm2015/lib/res/dictionary/dictionaries.js +3 -3
- package/esm2015/lib/service/dialog.service.js +5 -6
- package/esm2015/lib/service/dynamic-component.service.js +3 -3
- package/esm2015/lib/service/payment.service.js +4 -3
- package/esm2015/lib/service/pending-reason.service.js +13 -447
- package/esm2015/lib/service/relation-connector.service.js +32 -1
- package/esm2015/lib/service/relation.service.js +7 -1
- package/esm2015/lib/service/transaction-base.service.js +474 -0
- package/esm2015/lib/service/transaction-connector-adapter.service.js +4 -21
- package/esm2015/lib/service/transaction-connector.service.js +3 -8
- package/esm2015/lib/service/transaction-mapping.service.js +2 -2
- package/esm2015/lib/service/transaction.service.js +72 -93
- package/esm2015/public_api.js +3 -1
- package/fesm2015/colijnit-transaction.js +1479 -1039
- package/fesm2015/colijnit-transaction.js.map +1 -1
- package/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.d.ts +4 -3
- package/lib/component/confirmation-dialog/confirmation-dialog.component.d.ts +2 -0
- package/lib/component/core/base/components/transaction-header-block/style/_material-definition.scss +2 -1
- package/lib/component/core/base/components/transaction-header-block/style/_theme.scss +3 -0
- package/lib/component/core/base/dialog-base.component.d.ts +1 -1
- package/lib/component/core/base/transaction-input-field-base.component.d.ts +1 -0
- package/lib/component/deposit-payment/deposit-payment.component.d.ts +2 -2
- package/lib/component/deposit-payment/style/_layout.scss +14 -4
- package/lib/component/deposit-payment/style/_material-definition.scss +2 -1
- package/lib/component/dialog/transaction-header/dialog-transaction-header-discount/style/_material-definition.scss +1 -1
- package/lib/component/dialog/transaction-line/dialog-transaction-line-discount/style/_material-definition.scss +1 -1
- package/lib/component/payment/payment.component.d.ts +0 -1
- package/lib/component/quick-send-button/style/_material-definition.scss +1 -1
- package/lib/component/relation/relation-addresses/relation-addresses.component.d.ts +4 -3
- package/lib/component/relation/relation-base.component.d.ts +2 -0
- package/lib/component/relation/relation-contact-details/relation-contact-details.component.d.ts +2 -0
- package/lib/component/toast/style/_material-definition.scss +1 -1
- package/lib/component/transaction-button-bar/style/_material-definition.scss +1 -1
- package/lib/component/transaction-header/transaction-header-delivery/style/_material-definition.scss +2 -2
- package/lib/component/transaction-header/transaction-header-order/style/_layout.scss +1 -0
- package/lib/component/transaction-header/transaction-header-order/style/_material-definition.scss +1 -1
- package/lib/component/transaction-header/transaction-header-payment/style/_layout.scss +0 -3
- package/lib/component/transaction-header/transaction-header-payment/style/_material-definition.scss +1 -1
- package/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.d.ts +6 -1
- package/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.component.d.ts +0 -2
- package/lib/component/transaction-line/transaction-base-line/style/_layout.scss +5 -0
- package/lib/component/transaction-line/transaction-base-line/style/_material-definition.scss +1 -0
- package/lib/component/transaction-line/transaction-line/style/_layout.scss +1 -1
- package/lib/component/transaction-line/transaction-overview-line/style/_layout.scss +10 -0
- package/lib/component/transaction-line-action-buttons/style/_material-definition.scss +1 -1
- package/lib/component/transaction-line-fields/transaction-line-supplier-button.component.d.ts +1 -0
- package/lib/component/transaction-line-side-panel/style/_layout.scss +1 -1
- package/lib/component/transaction-line-side-panel/style/material.scss +1 -0
- package/lib/component/transaction-line-side-panel-article-details/style/_layout.scss +161 -0
- package/lib/component/transaction-line-side-panel-article-details/style/_material-definition.scss +0 -0
- package/lib/component/transaction-line-side-panel-article-details/style/_theme.scss +6 -0
- package/lib/component/transaction-line-side-panel-article-details/style/material.scss +4 -0
- package/lib/component/transaction-line-side-panel-article-details/transaction-line-side-panel-article-details.component.d.ts +36 -0
- package/lib/component/transaction-line-side-panel-article-details/transaction-line-side-panel-article-details.module.d.ts +2 -0
- package/lib/component/transaction-quick-access/transaction-quick-access-goods-allocation/style/_layout.scss +1 -1
- package/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/style/_layout.scss +1 -1
- package/lib/component/transaction-quick-access/transaction-quick-access-received-goods/style/_layout.scss +1 -1
- package/lib/component/transaction-search/transaction-search-tile/transaction-search-tile/style/_material-definition.scss +1 -1
- package/lib/enum/icon.enum.d.ts +1 -0
- package/lib/interface/dialog-response.interface.d.ts +1 -0
- package/lib/model/alternate-supplier.viewmodel.d.ts +5 -0
- package/lib/res/dictionary/dictionaries.d.ts +7 -0
- package/lib/service/dialog.service.d.ts +1 -1
- package/lib/service/pending-reason.service.d.ts +3 -92
- package/lib/service/relation-connector.service.d.ts +3 -0
- package/lib/service/relation.service.d.ts +3 -0
- package/lib/service/transaction-base.service.d.ts +97 -0
- package/lib/service/transaction-connector-adapter.service.d.ts +2 -4
- package/lib/service/transaction-connector.service.d.ts +2 -4
- package/lib/service/transaction.service.d.ts +7 -8
- package/lib/style/_variables.scss +8 -3
- package/package.json +3 -3
- package/public_api.d.ts +2 -0
|
@@ -9,6 +9,7 @@ import { ErrorService } from "./error.service";
|
|
|
9
9
|
import { RelationListObject } from "@colijnit/relationapi/build/model/relation-list-object.bo";
|
|
10
10
|
import { BranchLov } from "@colijnit/relationapi/build/model/branch-lov.bo";
|
|
11
11
|
import { TransactionEventService } from "./transaction-event.service";
|
|
12
|
+
import { Address } from "@colijnit/relationapi/build/model/address.bo";
|
|
12
13
|
import * as i0 from "@angular/core";
|
|
13
14
|
import * as i1 from "./options.service";
|
|
14
15
|
import * as i2 from "./error.service";
|
|
@@ -144,6 +145,36 @@ export class RelationConnectorService {
|
|
|
144
145
|
}));
|
|
145
146
|
});
|
|
146
147
|
}
|
|
148
|
+
insertAddress(address) {
|
|
149
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
150
|
+
return new Promise((resolve, reject) => {
|
|
151
|
+
return this.connector.insertAddress(address).then((result) => {
|
|
152
|
+
if (result.validationResult && result.validationResult.success) {
|
|
153
|
+
resolve(this._boFactory.makeWithRawBackendData(Address, result.resultObject));
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
this._handleExceptionFromResponse(result);
|
|
157
|
+
reject(null);
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
updateAddress(address) {
|
|
164
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
165
|
+
return new Promise((resolve, reject) => {
|
|
166
|
+
return this.connector.updateAddress(address).then((result) => {
|
|
167
|
+
if (result.validationResult && result.validationResult.success) {
|
|
168
|
+
resolve(this._boFactory.makeWithRawBackendData(Address, result.resultObject));
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
this._handleExceptionFromResponse(result);
|
|
172
|
+
reject(null);
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
}
|
|
147
178
|
insertCustomer(relation) {
|
|
148
179
|
return __awaiter(this, void 0, void 0, function* () {
|
|
149
180
|
return new Promise((resolve, reject) => {
|
|
@@ -219,4 +250,4 @@ RelationConnectorService.ctorParameters = () => [
|
|
|
219
250
|
{ type: ErrorService },
|
|
220
251
|
{ type: TransactionEventService }
|
|
221
252
|
];
|
|
222
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb24tY29ubmVjdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL3NlcnZpY2UvcmVsYXRpb24tY29ubmVjdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQ3BHLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUM3RixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUM3RixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFHN0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDN0YsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBRTFFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDOzs7OztBQUtwRSxNQUFNLE9BQU8sd0JBQXdCO0lBS25DLFlBQ1UsZUFBK0IsRUFDL0IsYUFBMkIsRUFDM0Isd0JBQWlEO1FBRmpELG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMvQixrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMzQiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQXlCO1FBTG5ELGVBQVUsR0FBMEIsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1FBT3RFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFvQixFQUFFLEVBQUU7WUFDckYsSUFB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QUMsQ0FBQyxDQUFDO3FCQUMxRjt5QkFBTTt3QkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQzFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDZDtnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRU8sNEJBQTRCLENBQUMsTUFBK0I7UUFDbEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqRCxDQUFDOzs7O1lBMUxGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBZk8sY0FBYztZQUtkLFlBQVk7WUFNWix1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7T3B0aW9uc1NlcnZpY2V9IGZyb20gXCIuL29wdGlvbnMuc2VydmljZVwiO1xyXG5pbXBvcnQge0J1c2luZXNzT2JqZWN0RmFjdG9yeX0gZnJvbSBcIkBjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL2ZhY3RvcnkvYnVzaW5lc3Mtb2JqZWN0LWZhY3RvcnlcIjtcclxuaW1wb3J0IHtSZWxhdGlvbkFwaX0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaVwiO1xyXG5pbXBvcnQge0N1c3RvbWVyRnVsbE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9jdXN0b21lci1mdWxsLW9iamVjdC5ib1wiO1xyXG5pbXBvcnQge1N1cHBsaWVyRnVsbE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9zdXBwbGllci1mdWxsLW9iamVjdC5ib1wiO1xyXG5pbXBvcnQge0Vycm9yU2VydmljZX0gZnJvbSBcIi4vZXJyb3Iuc2VydmljZVwiO1xyXG5pbXBvcnQge0RhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhfSBmcm9tIFwiQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvbW9kZWwvZGF0YS1zZXJ2aWNlLXJlc3BvbnNlLWRhdGFcIjtcclxuaW1wb3J0IHtSZWxhdGlvblJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tcmVxdWVzdFwiO1xyXG5pbXBvcnQge1JlbGF0aW9uTGlzdE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1saXN0LW9iamVjdC5ib1wiO1xyXG5pbXBvcnQge0JyYW5jaExvdn0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9icmFuY2gtbG92LmJvXCI7XHJcbmltcG9ydCB7VmFsaWRhdGlvblJlc3VsdH0gZnJvbSBcIkBjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL3ZhbGlkYXRpb24tcmVzdWx0XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gXCIuL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2VcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVsYXRpb25Db25uZWN0b3JTZXJ2aWNlIHtcclxuICBwdWJsaWMgY29ubmVjdG9yOiBSZWxhdGlvbkFwaTtcclxuXHJcbiAgcHJpdmF0ZSBfYm9GYWN0b3J5OiBCdXNpbmVzc09iamVjdEZhY3RvcnkgPSBuZXcgQnVzaW5lc3NPYmplY3RGYWN0b3J5KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZXJyb3JTZXJ2aWNlOiBFcnJvclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmNvbm5lY3Rpb25Jbml0aWFsaXplZC5zdWJzY3JpYmUoKGluaXRpYWxpemVkOiBib29sZWFuKSA9PiB7XHJcbiAgICAgIGlmIChpbml0aWFsaXplZCkge1xyXG4gICAgICAgIHRoaXMuY29ubmVjdCgpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNvbm5lY3QoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmNvbm5lY3RvciA9IG5ldyBSZWxhdGlvbkFwaSh0aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRDdXN0b21lckZ1bGxPYmplY3QocmVsYXRpb25ObzogbnVtYmVyKTogUHJvbWlzZTxDdXN0b21lckZ1bGxPYmplY3Q+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXRDdXN0b21lckZ1bGxPYmplY3QocmVsYXRpb25Obyk7XHJcbiAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoQ3VzdG9tZXJGdWxsT2JqZWN0LCByZXN1bHQucmVzdWx0T2JqZWN0KSBhcyB1bmtub3duIGFzIEN1c3RvbWVyRnVsbE9iamVjdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRTdXBwbGllckZ1bGxPYmplY3QocmVsYXRpb25ObzogbnVtYmVyKTogUHJvbWlzZTxTdXBwbGllckZ1bGxPYmplY3Q+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXRTdXBwbGllckZ1bGxPYmplY3QocmVsYXRpb25Obyk7XHJcbiAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoU3VwcGxpZXJGdWxsT2JqZWN0LCByZXN1bHQucmVzdWx0T2JqZWN0KSBhcyB1bmtub3duIGFzIFN1cHBsaWVyRnVsbE9iamVjdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRSZWxhdGlvbkxpc3RPYmplY3RzKHJlbGF0aW9uUmVxdWVzdDogUmVsYXRpb25SZXF1ZXN0KTogUHJvbWlzZTxSZWxhdGlvbkxpc3RPYmplY3RbXT4ge1xyXG4gICAgY29uc3QgcmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldFJlbGF0aW9uTGlzdE9iamVjdHMocmVsYXRpb25SZXF1ZXN0KTtcclxuICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShSZWxhdGlvbkxpc3RPYmplY3QsIHJlc3VsdC5yZXN1bHRPYmplY3RzKSBhcyB1bmtub3duIGFzIFJlbGF0aW9uTGlzdE9iamVjdFtdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRSZWxhdGlvbk51bWJlcihyZWxhdGlvbklkOiBudW1iZXIpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgY29uc3QgcmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldFJlbGF0aW9uTnVtYmVyKHJlbGF0aW9uSWQpO1xyXG4gICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIHJlc3VsdC5yZXN1bHRPYmplY3Q7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0QnJhbmNoZXMoYnJhbmNoTnI/OiBzdHJpbmcpOiBQcm9taXNlPEJyYW5jaExvdltdPiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0QnJhbmNoZXMoYnJhbmNoTnIpO1xyXG4gICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KEJyYW5jaExvdiwgcmVzdWx0LnJlc3VsdE9iamVjdHMpIGFzIHVua25vd24gYXMgQnJhbmNoTG92W107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNvbW1pdCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5jb21taXQoKTtcclxuICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvY2tDdXN0b21lckZ1bGxPYmplY3QocmVsYXRpb25OcjogbnVtYmVyKTogUHJvbWlzZTxWYWxpZGF0aW9uUmVzdWx0PiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5sb2NrQ3VzdG9tZXJCeUlkKHJlbGF0aW9uTnIpLnRoZW4oYXN5bmMgKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICByZXNvbHZlKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0KTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2NrU3VwcGxpZXJGdWxsT2JqZWN0KHJlbGF0aW9uTnI6IG51bWJlcik6IFByb21pc2U8VmFsaWRhdGlvblJlc3VsdD4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IubG9ja1N1cHBsaWVyQnlJZChyZWxhdGlvbk5yKS50aGVuKGFzeW5jIChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgcmVzb2x2ZShyZXN1bHQudmFsaWRhdGlvblJlc3VsdCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9ja0VtcGxveWVlRnVsbE9iamVjdChyZWxhdGlvbk5yOiBudW1iZXIpOiBQcm9taXNlPFZhbGlkYXRpb25SZXN1bHQ+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmxvY2tFbXBsb3llZUJ5SWQocmVsYXRpb25OcikudGhlbihhc3luYyAocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIHJlc29sdmUocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvY2tCcmFuY2hGdWxsT2JqZWN0KHJlbGF0aW9uTnI6IG51bWJlcik6IFByb21pc2U8VmFsaWRhdGlvblJlc3VsdD4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IubG9ja0JyYW5jaEJ5SWQocmVsYXRpb25OcikudGhlbihhc3luYyAocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIHJlc29sdmUocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvY2tDb21wYW55RnVsbE9iamVjdChyZWxhdGlvbk5yOiBudW1iZXIpOiBQcm9taXNlPFZhbGlkYXRpb25SZXN1bHQ+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmxvY2tDb21wYW55QnlJZChyZWxhdGlvbk5yKS50aGVuKGFzeW5jIChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgcmVzb2x2ZShyZXN1bHQudmFsaWRhdGlvblJlc3VsdCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9ja0NvbnRhY3RQZXJzb24ocmVsYXRpb25OcjogbnVtYmVyKTogUHJvbWlzZTxWYWxpZGF0aW9uUmVzdWx0PiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5sb2NrQ29udGFjdFBlcnNvbkJ5SWQocmVsYXRpb25OcikudGhlbihhc3luYyAocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIHJlc29sdmUocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGluc2VydEN1c3RvbWVyKHJlbGF0aW9uOiBDdXN0b21lckZ1bGxPYmplY3QpOiBQcm9taXNlPEN1c3RvbWVyRnVsbE9iamVjdD4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuaW5zZXJ0Q3VzdG9tZXIocmVsYXRpb24pLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShDdXN0b21lckZ1bGxPYmplY3QsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgICAgICByZWplY3QobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHVwZGF0ZUN1c3RvbWVyKHJlbGF0aW9uOiBDdXN0b21lckZ1bGxPYmplY3QpOiBQcm9taXNlPEN1c3RvbWVyRnVsbE9iamVjdD4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IudXBkYXRlQ3VzdG9tZXIocmVsYXRpb24pLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShDdXN0b21lckZ1bGxPYmplY3QsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgICAgICByZWplY3QobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGluc2VydFN1cHBsaWVyKHJlbGF0aW9uOiBTdXBwbGllckZ1bGxPYmplY3QpOiBQcm9taXNlPFN1cHBsaWVyRnVsbE9iamVjdD4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuaW5zZXJ0U3VwcGxpZXIocmVsYXRpb24pLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShTdXBwbGllckZ1bGxPYmplY3QsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgICAgICByZWplY3QobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHVwZGF0ZVN1cHBsaWVyKHJlbGF0aW9uOiBTdXBwbGllckZ1bGxPYmplY3QpOiBQcm9taXNlPFN1cHBsaWVyRnVsbE9iamVjdD4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IudXBkYXRlU3VwcGxpZXIocmVsYXRpb24pLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShTdXBwbGllckZ1bGxPYmplY3QsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgICAgICByZWplY3QobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Vycm9yU2VydmljZS5zaG93VmFsaWRhdGlvbkVycm9yKHJlc3VsdCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
253
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb24tY29ubmVjdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL3NlcnZpY2UvcmVsYXRpb24tY29ubmVjdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQ3BHLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUM3RixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUM3RixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFHN0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDN0YsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBRTFFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7QUFLckUsTUFBTSxPQUFPLHdCQUF3QjtJQUtuQyxZQUNVLGVBQStCLEVBQy9CLGFBQTJCLEVBQzNCLHdCQUFpRDtRQUZqRCxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0Isa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDM0IsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUF5QjtRQUxuRCxlQUFVLEdBQTBCLElBQUkscUJBQXFCLEVBQUUsQ0FBQztRQU90RSxJQUFJLENBQUMsd0JBQXdCLENBQUMscUJBQXFCLENB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LE9BQU8sRUFBRTt3QkFDOUQsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7cUJBQzFGO3lCQUFNO3dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDMUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUNkO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFTyw0QkFBNEIsQ0FBQyxNQUErQjtRQUNsRSxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pELENBQUM7Ozs7WUFwTkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFoQk8sY0FBYztZQUtkLFlBQVk7WUFNWix1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7T3B0aW9uc1NlcnZpY2V9IGZyb20gXCIuL29wdGlvbnMuc2VydmljZVwiO1xyXG5pbXBvcnQge0J1c2luZXNzT2JqZWN0RmFjdG9yeX0gZnJvbSBcIkBjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL2ZhY3RvcnkvYnVzaW5lc3Mtb2JqZWN0LWZhY3RvcnlcIjtcclxuaW1wb3J0IHtSZWxhdGlvbkFwaX0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaVwiO1xyXG5pbXBvcnQge0N1c3RvbWVyRnVsbE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9jdXN0b21lci1mdWxsLW9iamVjdC5ib1wiO1xyXG5pbXBvcnQge1N1cHBsaWVyRnVsbE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9zdXBwbGllci1mdWxsLW9iamVjdC5ib1wiO1xyXG5pbXBvcnQge0Vycm9yU2VydmljZX0gZnJvbSBcIi4vZXJyb3Iuc2VydmljZVwiO1xyXG5pbXBvcnQge0RhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhfSBmcm9tIFwiQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvbW9kZWwvZGF0YS1zZXJ2aWNlLXJlc3BvbnNlLWRhdGFcIjtcclxuaW1wb3J0IHtSZWxhdGlvblJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tcmVxdWVzdFwiO1xyXG5pbXBvcnQge1JlbGF0aW9uTGlzdE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1saXN0LW9iamVjdC5ib1wiO1xyXG5pbXBvcnQge0JyYW5jaExvdn0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9icmFuY2gtbG92LmJvXCI7XHJcbmltcG9ydCB7VmFsaWRhdGlvblJlc3VsdH0gZnJvbSBcIkBjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL3ZhbGlkYXRpb24tcmVzdWx0XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gXCIuL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtBZGRyZXNzfSBmcm9tIFwiQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL2FkZHJlc3MuYm9cIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVsYXRpb25Db25uZWN0b3JTZXJ2aWNlIHtcclxuICBwdWJsaWMgY29ubmVjdG9yOiBSZWxhdGlvbkFwaTtcclxuXHJcbiAgcHJpdmF0ZSBfYm9GYWN0b3J5OiBCdXNpbmVzc09iamVjdEZhY3RvcnkgPSBuZXcgQnVzaW5lc3NPYmplY3RGYWN0b3J5KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZXJyb3JTZXJ2aWNlOiBFcnJvclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmNvbm5lY3Rpb25Jbml0aWFsaXplZC5zdWJzY3JpYmUoKGluaXRpYWxpemVkOiBib29sZWFuKSA9PiB7XHJcbiAgICAgIGlmIChpbml0aWFsaXplZCkge1xyXG4gICAgICAgIHRoaXMuY29ubmVjdCgpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNvbm5lY3QoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmNvbm5lY3RvciA9IG5ldyBSZWxhdGlvbkFwaSh0aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRDdXN0b21lckZ1bGxPYmplY3QocmVsYXRpb25ObzogbnVtYmVyKTogUHJvbWlzZTxDdXN0b21lckZ1bGxPYmplY3Q+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXRDdXN0b21lckZ1bGxPYmplY3QocmVsYXRpb25Obyk7XHJcbiAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoQ3VzdG9tZXJGdWxsT2JqZWN0LCByZXN1bHQucmVzdWx0T2JqZWN0KSBhcyB1bmtub3duIGFzIEN1c3RvbWVyRnVsbE9iamVjdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRTdXBwbGllckZ1bGxPYmplY3QocmVsYXRpb25ObzogbnVtYmVyKTogUHJvbWlzZTxTdXBwbGllckZ1bGxPYmplY3Q+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXRTdXBwbGllckZ1bGxPYmplY3QocmVsYXRpb25Obyk7XHJcbiAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoU3VwcGxpZXJGdWxsT2JqZWN0LCByZXN1bHQucmVzdWx0T2JqZWN0KSBhcyB1bmtub3duIGFzIFN1cHBsaWVyRnVsbE9iamVjdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRSZWxhdGlvbkxpc3RPYmplY3RzKHJlbGF0aW9uUmVxdWVzdDogUmVsYXRpb25SZXF1ZXN0KTogUHJvbWlzZTxSZWxhdGlvbkxpc3RPYmplY3RbXT4ge1xyXG4gICAgY29uc3QgcmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldFJlbGF0aW9uTGlzdE9iamVjdHMocmVsYXRpb25SZXF1ZXN0KTtcclxuICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShSZWxhdGlvbkxpc3RPYmplY3QsIHJlc3VsdC5yZXN1bHRPYmplY3RzKSBhcyB1bmtub3duIGFzIFJlbGF0aW9uTGlzdE9iamVjdFtdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRSZWxhdGlvbk51bWJlcihyZWxhdGlvbklkOiBudW1iZXIpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgY29uc3QgcmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldFJlbGF0aW9uTnVtYmVyKHJlbGF0aW9uSWQpO1xyXG4gICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIHJlc3VsdC5yZXN1bHRPYmplY3Q7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0QnJhbmNoZXMoYnJhbmNoTnI/OiBzdHJpbmcpOiBQcm9taXNlPEJyYW5jaExvdltdPiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0QnJhbmNoZXMoYnJhbmNoTnIpO1xyXG4gICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KEJyYW5jaExvdiwgcmVzdWx0LnJlc3VsdE9iamVjdHMpIGFzIHVua25vd24gYXMgQnJhbmNoTG92W107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNvbW1pdCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5jb21taXQoKTtcclxuICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvY2tDdXN0b21lckZ1bGxPYmplY3QocmVsYXRpb25OcjogbnVtYmVyKTogUHJvbWlzZTxWYWxpZGF0aW9uUmVzdWx0PiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5sb2NrQ3VzdG9tZXJCeUlkKHJlbGF0aW9uTnIpLnRoZW4oYXN5bmMgKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICByZXNvbHZlKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0KTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2NrU3VwcGxpZXJGdWxsT2JqZWN0KHJlbGF0aW9uTnI6IG51bWJlcik6IFByb21pc2U8VmFsaWRhdGlvblJlc3VsdD4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IubG9ja1N1cHBsaWVyQnlJZChyZWxhdGlvbk5yKS50aGVuKGFzeW5jIChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgcmVzb2x2ZShyZXN1bHQudmFsaWRhdGlvblJlc3VsdCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9ja0VtcGxveWVlRnVsbE9iamVjdChyZWxhdGlvbk5yOiBudW1iZXIpOiBQcm9taXNlPFZhbGlkYXRpb25SZXN1bHQ+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmxvY2tFbXBsb3llZUJ5SWQocmVsYXRpb25OcikudGhlbihhc3luYyAocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIHJlc29sdmUocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvY2tCcmFuY2hGdWxsT2JqZWN0KHJlbGF0aW9uTnI6IG51bWJlcik6IFByb21pc2U8VmFsaWRhdGlvblJlc3VsdD4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IubG9ja0JyYW5jaEJ5SWQocmVsYXRpb25OcikudGhlbihhc3luYyAocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIHJlc29sdmUocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvY2tDb21wYW55RnVsbE9iamVjdChyZWxhdGlvbk5yOiBudW1iZXIpOiBQcm9taXNlPFZhbGlkYXRpb25SZXN1bHQ+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmxvY2tDb21wYW55QnlJZChyZWxhdGlvbk5yKS50aGVuKGFzeW5jIChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgcmVzb2x2ZShyZXN1bHQudmFsaWRhdGlvblJlc3VsdCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9ja0NvbnRhY3RQZXJzb24ocmVsYXRpb25OcjogbnVtYmVyKTogUHJvbWlzZTxWYWxpZGF0aW9uUmVzdWx0PiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5sb2NrQ29udGFjdFBlcnNvbkJ5SWQocmVsYXRpb25OcikudGhlbihhc3luYyAocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIHJlc29sdmUocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGluc2VydEFkZHJlc3MoYWRkcmVzczogQWRkcmVzcyk6IFByb21pc2U8QWRkcmVzcz4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuaW5zZXJ0QWRkcmVzcyhhZGRyZXNzKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoQWRkcmVzcywgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgICAgIHJlamVjdChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgdXBkYXRlQWRkcmVzcyhhZGRyZXNzOiBBZGRyZXNzKTogUHJvbWlzZTxBZGRyZXNzPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci51cGRhdGVBZGRyZXNzKGFkZHJlc3MpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShBZGRyZXNzLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICAgICAgcmVqZWN0KG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBpbnNlcnRDdXN0b21lcihyZWxhdGlvbjogQ3VzdG9tZXJGdWxsT2JqZWN0KTogUHJvbWlzZTxDdXN0b21lckZ1bGxPYmplY3Q+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmluc2VydEN1c3RvbWVyKHJlbGF0aW9uKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoQ3VzdG9tZXJGdWxsT2JqZWN0LCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICAgICAgcmVqZWN0KG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVDdXN0b21lcihyZWxhdGlvbjogQ3VzdG9tZXJGdWxsT2JqZWN0KTogUHJvbWlzZTxDdXN0b21lckZ1bGxPYmplY3Q+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLnVwZGF0ZUN1c3RvbWVyKHJlbGF0aW9uKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoQ3VzdG9tZXJGdWxsT2JqZWN0LCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICAgICAgcmVqZWN0KG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBpbnNlcnRTdXBwbGllcihyZWxhdGlvbjogU3VwcGxpZXJGdWxsT2JqZWN0KTogUHJvbWlzZTxTdXBwbGllckZ1bGxPYmplY3Q+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmluc2VydFN1cHBsaWVyKHJlbGF0aW9uKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoU3VwcGxpZXJGdWxsT2JqZWN0LCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICAgICAgcmVqZWN0KG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVTdXBwbGllcihyZWxhdGlvbjogU3VwcGxpZXJGdWxsT2JqZWN0KTogUHJvbWlzZTxTdXBwbGllckZ1bGxPYmplY3Q+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLnVwZGF0ZVN1cHBsaWVyKHJlbGF0aW9uKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoU3VwcGxpZXJGdWxsT2JqZWN0LCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICAgICAgcmVqZWN0KG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKTogdm9pZCB7XHJcbiAgICB0aGlzLl9lcnJvclNlcnZpY2Uuc2hvd1ZhbGlkYXRpb25FcnJvcihyZXN1bHQpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -52,6 +52,12 @@ export class RelationService {
|
|
|
52
52
|
return this._adapterService.getSupplierFullObject(relationNo);
|
|
53
53
|
}).getValue();
|
|
54
54
|
}
|
|
55
|
+
insertAddress(address) {
|
|
56
|
+
return this._adapterService.insertAddress(address);
|
|
57
|
+
}
|
|
58
|
+
updateAddress(address) {
|
|
59
|
+
return this._adapterService.updateAddress(address);
|
|
60
|
+
}
|
|
55
61
|
insertCustomer(relation) {
|
|
56
62
|
return this._adapterService.insertCustomer(relation);
|
|
57
63
|
}
|
|
@@ -155,4 +161,4 @@ RelationService.ctorParameters = () => [
|
|
|
155
161
|
{ type: SelectSingleCacheService },
|
|
156
162
|
{ type: SelectMultipleParameterizedCacheService }
|
|
157
163
|
];
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvc2VydmljZS9yZWxhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUNoRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx1REFBdUQsQ0FBQztBQUN2RixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUc3RixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0saURBQWlELENBQUM7QUFDMUUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDN0YsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDdEYsT0FBTyxFQUFDLHVDQUF1QyxFQUFDLE1BQU0sOERBQThELENBQUM7QUFDckgsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLCtDQUErQyxDQUFDOzs7Ozs7QUFZdkUsTUFBTSxPQUFPLGVBQWU7SUF5QjFCLFlBQ1UsZUFBeUMsRUFDekMsMkJBQXVELEVBQ3ZELHlCQUFtRCxFQUNuRCx3Q0FBaUY7UUFIakYsb0JBQWUsR0FBZixlQUFlLENBQTBCO1FBQ3pDLGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBNEI7UUFDdkQsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEwQjtRQUNuRCw2Q0FBd0MsR0FBeEMsd0NBQXdDLENBQXlDO1FBNUIxRSxpQkFBWSxHQUFvQyxJQUFJLEdBQUcsQ0FBNkI7WUFDbkcs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LE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDdkIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQUVNLE1BQU07UUFDWCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVPLHVCQUF1QixDQUFDLFVBQWtCO1FBQ2hELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRU8sdUJBQXVCLENBQUMsVUFBa0I7UUFDaEQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxVQUFrQjtRQUNoRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVPLHFCQUFxQixDQUFDLFVBQWtCO1FBQzlDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsVUFBa0I7UUFDL0MsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxVQUFrQjtRQUMzQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUQsQ0FBQzs7OztZQWpKRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQXJCTyx3QkFBd0I7WUFEeEIsMEJBQTBCO1lBUzFCLHdCQUF3QjtZQUN4Qix1Q0FBdUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7U2VsZWN0TXVsdGlwbGVDYWNoZVNlcnZpY2V9IGZyb20gXCIuLi9jYWNoZS9zZXJ2aWNlL3NlbGVjdC1tdWx0aXBsZS1jYWNoZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7UmVsYXRpb25Db25uZWN0b3JTZXJ2aWNlfSBmcm9tIFwiLi9yZWxhdGlvbi1jb25uZWN0b3Iuc2VydmljZVwiO1xyXG5pbXBvcnQge1JlbGF0aW9uS2luZH0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL2VudW0vcmVsYXRpb24ta2luZC5lbnVtXCI7XHJcbmltcG9ydCB7VmFsaWRhdGlvblJlc3VsdH0gZnJvbSBcIkBjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL3ZhbGlkYXRpb24tcmVzdWx0XCI7XHJcbmltcG9ydCB7Q3VzdG9tZXJGdWxsT2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL2N1c3RvbWVyLWZ1bGwtb2JqZWN0LmJvXCI7XHJcbmltcG9ydCB7UmVsYXRpb25SZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtSZWxhdGlvbkxpc3RPYmplY3R9IGZyb20gXCJAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tbGlzdC1vYmplY3QuYm9cIjtcclxuaW1wb3J0IHtCcmFuY2hMb3Z9IGZyb20gXCJAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvYnJhbmNoLWxvdi5ib1wiO1xyXG5pbXBvcnQge1N1cHBsaWVyRnVsbE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9zdXBwbGllci1mdWxsLW9iamVjdC5ib1wiO1xyXG5pbXBvcnQge1NlbGVjdFNpbmdsZUNhY2hlU2VydmljZX0gZnJvbSBcIi4uL2NhY2hlL3NlcnZpY2Uvc2VsZWN0LXNpbmdsZS1jYWNoZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7U2VsZWN0TXVsdGlwbGVQYXJhbWV0ZXJpemVkQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiLi4vY2FjaGUvc2VydmljZS9zZWxlY3QtbXVsdGlwbGUtcGFyYW1ldGVyaXplZC1jYWNoZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7UmVsYXRpb259IGZyb20gXCJAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24uYm9cIjtcclxuaW1wb3J0IHtSZWxhdGlvbkFueVR5cGV9IGZyb20gXCJAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tYW55LXR5cGVcIjtcclxuXHJcbnR5cGUgTG9ja0ZuSGVhZGVyID0gKHJlbGF0aW9uTnI6IG51bWJlcikgPT4gUHJvbWlzZTxWYWxpZGF0aW9uUmVzdWx0PjtcclxudHlwZSBHZXRSZWxhdGlvbkZuSGVhZGVyID0gKHJlbGF0aW9uTnI6IG51bWJlcikgPT4gUHJvbWlzZTxSZWxhdGlvbkFueVR5cGU+O1xyXG50eXBlIEluc2VydFJlbGF0aW9uRm4gPSAocmVsYXRpb246IFJlbGF0aW9uQW55VHlwZSkgPT4gUHJvbWlzZTxSZWxhdGlvbkFueVR5cGU+O1xyXG50eXBlIFVwZGF0ZVJlbGF0aW9uRm4gPSAocmVsYXRpb246IFJlbGF0aW9uQW55VHlwZSkgPT4gUHJvbWlzZTxSZWxhdGlvbkFueVR5cGU+O1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVsYXRpb25TZXJ2aWNlIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9sb2NrTWV0aG9kczogTWFwPFJlbGF0aW9uS2luZCwgTG9ja0ZuSGVhZGVyPiA9IG5ldyBNYXA8UmVsYXRpb25LaW5kLCBMb2NrRm5IZWFkZXI+KFtcclxuICAgIFtSZWxhdGlvbktpbmQuQ3VzdG9tZXIsIChyZWxhdGlvbk5yOiBudW1iZXIpID0+IHRoaXMuX2xvY2tDdXN0b21lckZ1bGxPYmplY3QocmVsYXRpb25OcildLFxyXG4gICAgW1JlbGF0aW9uS2luZC5TdXBwbGllciwgKHJlbGF0aW9uTnI6IG51bWJlcikgPT4gdGhpcy5fbG9ja1N1cHBsaWVyRnVsbE9iamVjdChyZWxhdGlvbk5yKV0sXHJcbiAgICBbUmVsYXRpb25LaW5kLlBlcnNvbm5lbCwgKHJlbGF0aW9uTnI6IG51bWJlcikgPT4gdGhpcy5fbG9ja0VtcGxveWVlRnVsbE9iamVjdChyZWxhdGlvbk5yKV0sXHJcbiAgICBbUmVsYXRpb25LaW5kLkJyYW5jaCwgKHJlbGF0aW9uTnI6IG51bWJlcikgPT4gdGhpcy5fbG9ja0JyYW5jaEZ1bGxPYmplY3QocmVsYXRpb25OcildLFxyXG4gICAgW1JlbGF0aW9uS2luZC5Db21wYW55LCAocmVsYXRpb25OcjogbnVtYmVyKSA9PiB0aGlzLl9sb2NrQ29tcGFueUZ1bGxPYmplY3QocmVsYXRpb25OcildLFxyXG4gICAgW1JlbGF0aW9uS2luZC5Db250YWN0UGVyc29uLCAocmVsYXRpb25OcjogbnVtYmVyKSA9PiB0aGlzLl9sb2NrQ29udGFjdFBlcnNvbihyZWxhdGlvbk5yKV0sXHJcbiAgXSk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2dldE1ldGhvZHM6IE1hcDxSZWxhdGlvbktpbmQsIEdldFJlbGF0aW9uRm5IZWFkZXI+ID0gbmV3IE1hcDxSZWxhdGlvbktpbmQsIEdldFJlbGF0aW9uRm5IZWFkZXI+KFtcclxuICAgIFtSZWxhdGlvbktpbmQuQ3VzdG9tZXIsIChyZWxhdGlvbk5yOiBudW1iZXIpID0+IHRoaXMuZ2V0Q3VzdG9tZXJGdWxsT2JqZWN0KHJlbGF0aW9uTnIpXSxcclxuICAgIFtSZWxhdGlvbktpbmQuU3VwcGxpZXIsIChyZWxhdGlvbk5yOiBudW1iZXIpID0+IHRoaXMuZ2V0U3VwcGxpZXJGdWxsT2JqZWN0KHJlbGF0aW9uTnIpXVxyXG4gIF0pO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF91cGRhdGVNZXRob2RzOiBNYXA8UmVsYXRpb25LaW5kLCBVcGRhdGVSZWxhdGlvbkZuPiA9IG5ldyBNYXA8UmVsYXRpb25LaW5kLCBVcGRhdGVSZWxhdGlvbkZuPihbXHJcbiAgICBbUmVsYXRpb25LaW5kLkN1c3RvbWVyLCAocmVsYXRpb246IEN1c3RvbWVyRnVsbE9iamVjdCkgPT4gdGhpcy51cGRhdGVDdXN0b21lcihyZWxhdGlvbildLFxyXG4gICAgW1JlbGF0aW9uS2luZC5TdXBwbGllciwgKHJlbGF0aW9uOiBTdXBwbGllckZ1bGxPYmplY3QpID0+IHRoaXMudXBkYXRlU3VwcGxpZXIocmVsYXRpb24pXVxyXG4gIF0pO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF9pbnNlcnRNZXRob2RzOiBNYXA8UmVsYXRpb25LaW5kLCBJbnNlcnRSZWxhdGlvbkZuPiA9IG5ldyBNYXA8UmVsYXRpb25LaW5kLCBJbnNlcnRSZWxhdGlvbkZuPihbXHJcbiAgICBbUmVsYXRpb25LaW5kLkN1c3RvbWVyLCAocmVsYXRpb246IEN1c3RvbWVyRnVsbE9iamVjdCkgPT4gdGhpcy5pbnNlcnRDdXN0b21lcihyZWxhdGlvbildLFxyXG4gICAgW1JlbGF0aW9uS2luZC5TdXBwbGllciwgKHJlbGF0aW9uOiBTdXBwbGllckZ1bGxPYmplY3QpID0+IHRoaXMuaW5zZXJ0U3VwcGxpZXIocmVsYXRpb24pXVxyXG4gIF0pXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfYWRhcHRlclNlcnZpY2U6IFJlbGF0aW9uQ29ubmVjdG9yU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NlbGVjdE11bHRpcGxlQ2FjaGVTZXJ2aWNlOiBTZWxlY3RNdWx0aXBsZUNhY2hlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NlbGVjdFNpbmdsZUNhY2hlU2VydmljZTogU2VsZWN0U2luZ2xlQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2VsZWN0TXVsdGlwbGVQYXJhbWV0ZXJpemVkQ2FjaGVTZXJ2aWNlOiBTZWxlY3RNdWx0aXBsZVBhcmFtZXRlcml6ZWRDYWNoZVNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIHB1YmxpYyBnZXRDdXN0b21lckZ1bGxPYmplY3QocmVsYXRpb25ObzogbnVtYmVyKTogUHJvbWlzZTxDdXN0b21lckZ1bGxPYmplY3Q+IHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3RTaW5nbGVDYWNoZVNlcnZpY2UucmVxdWVzdENhY2hlPEN1c3RvbWVyRnVsbE9iamVjdD4oQ3VzdG9tZXJGdWxsT2JqZWN0LCByZWxhdGlvbk5vLCAoKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9hZGFwdGVyU2VydmljZS5nZXRDdXN0b21lckZ1bGxPYmplY3QocmVsYXRpb25ObylcclxuICAgIH0pLmdldFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U3VwcGxpZXJGdWxsT2JqZWN0KHJlbGF0aW9uTm86IG51bWJlcik6IFByb21pc2U8U3VwcGxpZXJGdWxsT2JqZWN0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0U2luZ2xlQ2FjaGVTZXJ2aWNlLnJlcXVlc3RDYWNoZTxTdXBwbGllckZ1bGxPYmplY3Q+KFN1cHBsaWVyRnVsbE9iamVjdCwgcmVsYXRpb25ObywgKCkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UuZ2V0U3VwcGxpZXJGdWxsT2JqZWN0KHJlbGF0aW9uTm8pXHJcbiAgICB9KS5nZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGluc2VydEN1c3RvbWVyKHJlbGF0aW9uOiBDdXN0b21lckZ1bGxPYmplY3QpOiBQcm9taXNlPEN1c3RvbWVyRnVsbE9iamVjdD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmluc2VydEN1c3RvbWVyKHJlbGF0aW9uKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVDdXN0b21lcihyZWxhdGlvbjogQ3VzdG9tZXJGdWxsT2JqZWN0KTogUHJvbWlzZTxDdXN0b21lckZ1bGxPYmplY3Q+IHtcclxuICAgIHJldHVybiB0aGlzLl9hZGFwdGVyU2VydmljZS51cGRhdGVDdXN0b21lcihyZWxhdGlvbik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaW5zZXJ0U3VwcGxpZXIocmVsYXRpb246IFN1cHBsaWVyRnVsbE9iamVjdCk6IFByb21pc2U8U3VwcGxpZXJGdWxsT2JqZWN0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UuaW5zZXJ0U3VwcGxpZXIocmVsYXRpb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHVwZGF0ZVN1cHBsaWVyKHJlbGF0aW9uOiBTdXBwbGllckZ1bGxPYmplY3QpOiBQcm9taXNlPFN1cHBsaWVyRnVsbE9iamVjdD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLnVwZGF0ZVN1cHBsaWVyKHJlbGF0aW9uKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRSZWxhdGlvbkxpc3RPYmplY3RzKHJlbGF0aW9uUmVxdWVzdDogUmVsYXRpb25SZXF1ZXN0KTogUHJvbWlzZTxSZWxhdGlvbkxpc3RPYmplY3RbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmdldFJlbGF0aW9uTGlzdE9iamVjdHMocmVsYXRpb25SZXF1ZXN0KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRSZWxhdGlvbk51bWJlcihyZWxhdGlvbklkOiBudW1iZXIpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmdldFJlbGF0aW9uTnVtYmVyKHJlbGF0aW9uSWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEJyYW5jaGVzKGJyYW5jaE5yPzogc3RyaW5nKTogUHJvbWlzZTxCcmFuY2hMb3ZbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdE11bHRpcGxlUGFyYW1ldGVyaXplZENhY2hlU2VydmljZS5yZXF1ZXN0Q2FjaGU8QnJhbmNoTG92PihCcmFuY2hMb3YsIChicmFuY2hOcj86IHN0cmluZykgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UuZ2V0QnJhbmNoZXMoYnJhbmNoTnIpXHJcbiAgICB9KS5nZXRWYWx1ZShicmFuY2hOcik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaW5zZXJ0UmVsYXRpb24ocmVsYXRpb25LaW5kOiBSZWxhdGlvbktpbmQsIHJlbGF0aW9uOiBSZWxhdGlvbik6IFByb21pc2U8UmVsYXRpb24+IHtcclxuICAgIGNvbnN0IGluc2VydE1ldGhvZDogSW5zZXJ0UmVsYXRpb25GbiA9IHRoaXMuX2luc2VydE1ldGhvZHMuZ2V0KHJlbGF0aW9uS2luZCk7XHJcbiAgICBpZiAoaW5zZXJ0TWV0aG9kKSB7XHJcbiAgICAgIHJldHVybiBpbnNlcnRNZXRob2QuY2FsbCh0aGlzLCByZWxhdGlvbik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCByZXN1bHQ6IFJlbGF0aW9uID0gbmV3IFJlbGF0aW9uKCk7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVzdWx0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVSZWxhdGlvbihyZWxhdGlvbktpbmQ6IFJlbGF0aW9uS2luZCwgcmVsYXRpb246IFJlbGF0aW9uKTogUHJvbWlzZTxSZWxhdGlvbj4ge1xyXG4gICAgY29uc3QgdXBkYXRlTWV0aG9kOiBVcGRhdGVSZWxhdGlvbkZuID0gdGhpcy5fdXBkYXRlTWV0aG9kcy5nZXQocmVsYXRpb25LaW5kKTtcclxuICAgIGlmICh1cGRhdGVNZXRob2QpIHtcclxuICAgICAgcmV0dXJuIHVwZGF0ZU1ldGhvZC5jYWxsKHRoaXMsIHJlbGF0aW9uKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdDogUmVsYXRpb24gPSBuZXcgUmVsYXRpb24oKTtcclxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXN1bHQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvY2tSZWxhdGlvbihyZWxhdGlvbktpbmQ6IFJlbGF0aW9uS2luZCwgcmVsYXRpb25OcjogbnVtYmVyKTogUHJvbWlzZTxWYWxpZGF0aW9uUmVzdWx0PiB7XHJcbiAgICBjb25zdCBsb2NrTWV0aG9kOiBMb2NrRm5IZWFkZXIgPSB0aGlzLl9sb2NrTWV0aG9kcy5nZXQocmVsYXRpb25LaW5kKTtcclxuICAgIGlmIChsb2NrTWV0aG9kKSB7XHJcbiAgICAgIHJldHVybiBsb2NrTWV0aG9kLmNhbGwodGhpcywgcmVsYXRpb25Ocik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCByZXN1bHQ6IFZhbGlkYXRpb25SZXN1bHQgPSBuZXcgVmFsaWRhdGlvblJlc3VsdCgpO1xyXG4gICAgICByZXN1bHQuc3VjY2VzcyA9IGZhbHNlO1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3VsdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UmVsYXRpb24ocmVsYXRpb25LaW5kOiBSZWxhdGlvbktpbmQsIHJlbGF0aW9uTnI6IG51bWJlcik6IFByb21pc2U8UmVsYXRpb25BbnlUeXBlPiB7XHJcbiAgICBjb25zdCBnZXRNZXRob2Q6IEdldFJlbGF0aW9uRm5IZWFkZXIgPSB0aGlzLl9nZXRNZXRob2RzLmdldChyZWxhdGlvbktpbmQpO1xyXG4gICAgaWYgKGdldE1ldGhvZCkge1xyXG4gICAgICByZXR1cm4gZ2V0TWV0aG9kLmNhbGwodGhpcywgcmVsYXRpb25Ocik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCByZXN1bHQ6IFZhbGlkYXRpb25SZXN1bHQgPSBuZXcgVmFsaWRhdGlvblJlc3VsdCgpO1xyXG4gICAgICByZXN1bHQuc3VjY2VzcyA9IGZhbHNlO1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbW1pdCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLl9hZGFwdGVyU2VydmljZS5jb21taXQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xvY2tDdXN0b21lckZ1bGxPYmplY3QocmVsYXRpb25OcjogbnVtYmVyKTogUHJvbWlzZTxWYWxpZGF0aW9uUmVzdWx0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UubG9ja0N1c3RvbWVyRnVsbE9iamVjdChyZWxhdGlvbk5yKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xvY2tTdXBwbGllckZ1bGxPYmplY3QocmVsYXRpb25OcjogbnVtYmVyKTogUHJvbWlzZTxWYWxpZGF0aW9uUmVzdWx0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UubG9ja1N1cHBsaWVyRnVsbE9iamVjdChyZWxhdGlvbk5yKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xvY2tFbXBsb3llZUZ1bGxPYmplY3QocmVsYXRpb25OcjogbnVtYmVyKTogUHJvbWlzZTxWYWxpZGF0aW9uUmVzdWx0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UubG9ja0VtcGxveWVlRnVsbE9iamVjdChyZWxhdGlvbk5yKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xvY2tCcmFuY2hGdWxsT2JqZWN0KHJlbGF0aW9uTnI6IG51bWJlcik6IFByb21pc2U8VmFsaWRhdGlvblJlc3VsdD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmxvY2tCcmFuY2hGdWxsT2JqZWN0KHJlbGF0aW9uTnIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbG9ja0NvbXBhbnlGdWxsT2JqZWN0KHJlbGF0aW9uTnI6IG51bWJlcik6IFByb21pc2U8VmFsaWRhdGlvblJlc3VsdD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmxvY2tDb21wYW55RnVsbE9iamVjdChyZWxhdGlvbk5yKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xvY2tDb250YWN0UGVyc29uKHJlbGF0aW9uTnI6IG51bWJlcik6IFByb21pc2U8VmFsaWRhdGlvblJlc3VsdD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmxvY2tDb250YWN0UGVyc29uKHJlbGF0aW9uTnIpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvc2VydmljZS9yZWxhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUNoRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx1REFBdUQsQ0FBQztBQUN2RixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUc3RixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0saURBQWlELENBQUM7QUFDMUUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDN0YsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDdEYsT0FBTyxFQUFDLHVDQUF1QyxFQUFDLE1BQU0sOERBQThELENBQUM7QUFDckgsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLCtDQUErQyxDQUFDOzs7Ozs7QUFhdkUsTUFBTSxPQUFPLGVBQWU7SUF5QjFCLFlBQ1UsZUFBeUMsRUFDekMsMkJBQXVELEVBQ3ZELHlCQUFtRCxFQUNuRCx3Q0FBaUY7UUFIakYsb0JBQWUsR0FBZixlQUFlLENBQTBCO1FBQ3pDLGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBNEI7UUFDdkQsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEwQjtRQUNuRCw2Q0FBd0MsR0FBeEMsd0NBQXdDLENBQXlDO1FBNUIxRSxpQkFBWSxHQUFvQyxJQUFJLEdBQUcsQ0FBNkI7WUFDbkcs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VixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBdEJPLHdCQUF3QjtZQUR4QiwwQkFBMEI7WUFTMUIsd0JBQXdCO1lBQ3hCLHVDQUF1QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtTZWxlY3RNdWx0aXBsZUNhY2hlU2VydmljZX0gZnJvbSBcIi4uL2NhY2hlL3NlcnZpY2Uvc2VsZWN0LW11bHRpcGxlLWNhY2hlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtSZWxhdGlvbkNvbm5lY3RvclNlcnZpY2V9IGZyb20gXCIuL3JlbGF0aW9uLWNvbm5lY3Rvci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7UmVsYXRpb25LaW5kfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvZW51bS9yZWxhdGlvbi1raW5kLmVudW1cIjtcclxuaW1wb3J0IHtWYWxpZGF0aW9uUmVzdWx0fSBmcm9tIFwiQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvbW9kZWwvdmFsaWRhdGlvbi1yZXN1bHRcIjtcclxuaW1wb3J0IHtDdXN0b21lckZ1bGxPYmplY3R9IGZyb20gXCJAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvY3VzdG9tZXItZnVsbC1vYmplY3QuYm9cIjtcclxuaW1wb3J0IHtSZWxhdGlvblJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tcmVxdWVzdFwiO1xyXG5pbXBvcnQge1JlbGF0aW9uTGlzdE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1saXN0LW9iamVjdC5ib1wiO1xyXG5pbXBvcnQge0JyYW5jaExvdn0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9icmFuY2gtbG92LmJvXCI7XHJcbmltcG9ydCB7U3VwcGxpZXJGdWxsT2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL3N1cHBsaWVyLWZ1bGwtb2JqZWN0LmJvXCI7XHJcbmltcG9ydCB7U2VsZWN0U2luZ2xlQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiLi4vY2FjaGUvc2VydmljZS9zZWxlY3Qtc2luZ2xlLWNhY2hlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTZWxlY3RNdWx0aXBsZVBhcmFtZXRlcml6ZWRDYWNoZVNlcnZpY2V9IGZyb20gXCIuLi9jYWNoZS9zZXJ2aWNlL3NlbGVjdC1tdWx0aXBsZS1wYXJhbWV0ZXJpemVkLWNhY2hlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtSZWxhdGlvbn0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi5ib1wiO1xyXG5pbXBvcnQge1JlbGF0aW9uQW55VHlwZX0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1hbnktdHlwZVwiO1xyXG5pbXBvcnQge0FkZHJlc3N9IGZyb20gXCJAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvYWRkcmVzcy5ib1wiO1xyXG5cclxudHlwZSBMb2NrRm5IZWFkZXIgPSAocmVsYXRpb25OcjogbnVtYmVyKSA9PiBQcm9taXNlPFZhbGlkYXRpb25SZXN1bHQ+O1xyXG50eXBlIEdldFJlbGF0aW9uRm5IZWFkZXIgPSAocmVsYXRpb25OcjogbnVtYmVyKSA9PiBQcm9taXNlPFJlbGF0aW9uQW55VHlwZT47XHJcbnR5cGUgSW5zZXJ0UmVsYXRpb25GbiA9IChyZWxhdGlvbjogUmVsYXRpb25BbnlUeXBlKSA9PiBQcm9taXNlPFJlbGF0aW9uQW55VHlwZT47XHJcbnR5cGUgVXBkYXRlUmVsYXRpb25GbiA9IChyZWxhdGlvbjogUmVsYXRpb25BbnlUeXBlKSA9PiBQcm9taXNlPFJlbGF0aW9uQW55VHlwZT47XHJcblxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IFwicm9vdFwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWxhdGlvblNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvY2tNZXRob2RzOiBNYXA8UmVsYXRpb25LaW5kLCBMb2NrRm5IZWFkZXI+ID0gbmV3IE1hcDxSZWxhdGlvbktpbmQsIExvY2tGbkhlYWRlcj4oW1xyXG4gICAgW1JlbGF0aW9uS2luZC5DdXN0b21lciwgKHJlbGF0aW9uTnI6IG51bWJlcikgPT4gdGhpcy5fbG9ja0N1c3RvbWVyRnVsbE9iamVjdChyZWxhdGlvbk5yKV0sXHJcbiAgICBbUmVsYXRpb25LaW5kLlN1cHBsaWVyLCAocmVsYXRpb25OcjogbnVtYmVyKSA9PiB0aGlzLl9sb2NrU3VwcGxpZXJGdWxsT2JqZWN0KHJlbGF0aW9uTnIpXSxcclxuICAgIFtSZWxhdGlvbktpbmQuUGVyc29ubmVsLCAocmVsYXRpb25OcjogbnVtYmVyKSA9PiB0aGlzLl9sb2NrRW1wbG95ZWVGdWxsT2JqZWN0KHJlbGF0aW9uTnIpXSxcclxuICAgIFtSZWxhdGlvbktpbmQuQnJhbmNoLCAocmVsYXRpb25OcjogbnVtYmVyKSA9PiB0aGlzLl9sb2NrQnJhbmNoRnVsbE9iamVjdChyZWxhdGlvbk5yKV0sXHJcbiAgICBbUmVsYXRpb25LaW5kLkNvbXBhbnksIChyZWxhdGlvbk5yOiBudW1iZXIpID0+IHRoaXMuX2xvY2tDb21wYW55RnVsbE9iamVjdChyZWxhdGlvbk5yKV0sXHJcbiAgICBbUmVsYXRpb25LaW5kLkNvbnRhY3RQZXJzb24sIChyZWxhdGlvbk5yOiBudW1iZXIpID0+IHRoaXMuX2xvY2tDb250YWN0UGVyc29uKHJlbGF0aW9uTnIpXSxcclxuICBdKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZ2V0TWV0aG9kczogTWFwPFJlbGF0aW9uS2luZCwgR2V0UmVsYXRpb25GbkhlYWRlcj4gPSBuZXcgTWFwPFJlbGF0aW9uS2luZCwgR2V0UmVsYXRpb25GbkhlYWRlcj4oW1xyXG4gICAgW1JlbGF0aW9uS2luZC5DdXN0b21lciwgKHJlbGF0aW9uTnI6IG51bWJlcikgPT4gdGhpcy5nZXRDdXN0b21lckZ1bGxPYmplY3QocmVsYXRpb25OcildLFxyXG4gICAgW1JlbGF0aW9uS2luZC5TdXBwbGllciwgKHJlbGF0aW9uTnI6IG51bWJlcikgPT4gdGhpcy5nZXRTdXBwbGllckZ1bGxPYmplY3QocmVsYXRpb25OcildXHJcbiAgXSk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3VwZGF0ZU1ldGhvZHM6IE1hcDxSZWxhdGlvbktpbmQsIFVwZGF0ZVJlbGF0aW9uRm4+ID0gbmV3IE1hcDxSZWxhdGlvbktpbmQsIFVwZGF0ZVJlbGF0aW9uRm4+KFtcclxuICAgIFtSZWxhdGlvbktpbmQuQ3VzdG9tZXIsIChyZWxhdGlvbjogQ3VzdG9tZXJGdWxsT2JqZWN0KSA9PiB0aGlzLnVwZGF0ZUN1c3RvbWVyKHJlbGF0aW9uKV0sXHJcbiAgICBbUmVsYXRpb25LaW5kLlN1cHBsaWVyLCAocmVsYXRpb246IFN1cHBsaWVyRnVsbE9iamVjdCkgPT4gdGhpcy51cGRhdGVTdXBwbGllcihyZWxhdGlvbildXHJcbiAgXSk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2luc2VydE1ldGhvZHM6IE1hcDxSZWxhdGlvbktpbmQsIEluc2VydFJlbGF0aW9uRm4+ID0gbmV3IE1hcDxSZWxhdGlvbktpbmQsIEluc2VydFJlbGF0aW9uRm4+KFtcclxuICAgIFtSZWxhdGlvbktpbmQuQ3VzdG9tZXIsIChyZWxhdGlvbjogQ3VzdG9tZXJGdWxsT2JqZWN0KSA9PiB0aGlzLmluc2VydEN1c3RvbWVyKHJlbGF0aW9uKV0sXHJcbiAgICBbUmVsYXRpb25LaW5kLlN1cHBsaWVyLCAocmVsYXRpb246IFN1cHBsaWVyRnVsbE9iamVjdCkgPT4gdGhpcy5pbnNlcnRTdXBwbGllcihyZWxhdGlvbildXHJcbiAgXSlcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9hZGFwdGVyU2VydmljZTogUmVsYXRpb25Db25uZWN0b3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2VsZWN0TXVsdGlwbGVDYWNoZVNlcnZpY2U6IFNlbGVjdE11bHRpcGxlQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2VsZWN0U2luZ2xlQ2FjaGVTZXJ2aWNlOiBTZWxlY3RTaW5nbGVDYWNoZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZWxlY3RNdWx0aXBsZVBhcmFtZXRlcml6ZWRDYWNoZVNlcnZpY2U6IFNlbGVjdE11bHRpcGxlUGFyYW1ldGVyaXplZENhY2hlU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgcHVibGljIGdldEN1c3RvbWVyRnVsbE9iamVjdChyZWxhdGlvbk5vOiBudW1iZXIpOiBQcm9taXNlPEN1c3RvbWVyRnVsbE9iamVjdD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdFNpbmdsZUNhY2hlU2VydmljZS5yZXF1ZXN0Q2FjaGU8Q3VzdG9tZXJGdWxsT2JqZWN0PihDdXN0b21lckZ1bGxPYmplY3QsIHJlbGF0aW9uTm8sICgpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmdldEN1c3RvbWVyRnVsbE9iamVjdChyZWxhdGlvbk5vKVxyXG4gICAgfSkuZ2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTdXBwbGllckZ1bGxPYmplY3QocmVsYXRpb25ObzogbnVtYmVyKTogUHJvbWlzZTxTdXBwbGllckZ1bGxPYmplY3Q+IHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3RTaW5nbGVDYWNoZVNlcnZpY2UucmVxdWVzdENhY2hlPFN1cHBsaWVyRnVsbE9iamVjdD4oU3VwcGxpZXJGdWxsT2JqZWN0LCByZWxhdGlvbk5vLCAoKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9hZGFwdGVyU2VydmljZS5nZXRTdXBwbGllckZ1bGxPYmplY3QocmVsYXRpb25ObylcclxuICAgIH0pLmdldFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaW5zZXJ0QWRkcmVzcyhhZGRyZXNzOiBBZGRyZXNzKTogUHJvbWlzZTxBZGRyZXNzPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UuaW5zZXJ0QWRkcmVzcyhhZGRyZXNzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVBZGRyZXNzKGFkZHJlc3M6IEFkZHJlc3MpOiBQcm9taXNlPEFkZHJlc3M+IHtcclxuICAgIHJldHVybiB0aGlzLl9hZGFwdGVyU2VydmljZS51cGRhdGVBZGRyZXNzKGFkZHJlc3MpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGluc2VydEN1c3RvbWVyKHJlbGF0aW9uOiBDdXN0b21lckZ1bGxPYmplY3QpOiBQcm9taXNlPEN1c3RvbWVyRnVsbE9iamVjdD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmluc2VydEN1c3RvbWVyKHJlbGF0aW9uKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVDdXN0b21lcihyZWxhdGlvbjogQ3VzdG9tZXJGdWxsT2JqZWN0KTogUHJvbWlzZTxDdXN0b21lckZ1bGxPYmplY3Q+IHtcclxuICAgIHJldHVybiB0aGlzLl9hZGFwdGVyU2VydmljZS51cGRhdGVDdXN0b21lcihyZWxhdGlvbik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaW5zZXJ0U3VwcGxpZXIocmVsYXRpb246IFN1cHBsaWVyRnVsbE9iamVjdCk6IFByb21pc2U8U3VwcGxpZXJGdWxsT2JqZWN0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UuaW5zZXJ0U3VwcGxpZXIocmVsYXRpb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHVwZGF0ZVN1cHBsaWVyKHJlbGF0aW9uOiBTdXBwbGllckZ1bGxPYmplY3QpOiBQcm9taXNlPFN1cHBsaWVyRnVsbE9iamVjdD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLnVwZGF0ZVN1cHBsaWVyKHJlbGF0aW9uKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRSZWxhdGlvbkxpc3RPYmplY3RzKHJlbGF0aW9uUmVxdWVzdDogUmVsYXRpb25SZXF1ZXN0KTogUHJvbWlzZTxSZWxhdGlvbkxpc3RPYmplY3RbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmdldFJlbGF0aW9uTGlzdE9iamVjdHMocmVsYXRpb25SZXF1ZXN0KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRSZWxhdGlvbk51bWJlcihyZWxhdGlvbklkOiBudW1iZXIpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmdldFJlbGF0aW9uTnVtYmVyKHJlbGF0aW9uSWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEJyYW5jaGVzKGJyYW5jaE5yPzogc3RyaW5nKTogUHJvbWlzZTxCcmFuY2hMb3ZbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdE11bHRpcGxlUGFyYW1ldGVyaXplZENhY2hlU2VydmljZS5yZXF1ZXN0Q2FjaGU8QnJhbmNoTG92PihCcmFuY2hMb3YsIChicmFuY2hOcj86IHN0cmluZykgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UuZ2V0QnJhbmNoZXMoYnJhbmNoTnIpXHJcbiAgICB9KS5nZXRWYWx1ZShicmFuY2hOcik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaW5zZXJ0UmVsYXRpb24ocmVsYXRpb25LaW5kOiBSZWxhdGlvbktpbmQsIHJlbGF0aW9uOiBSZWxhdGlvbik6IFByb21pc2U8UmVsYXRpb24+IHtcclxuICAgIGNvbnN0IGluc2VydE1ldGhvZDogSW5zZXJ0UmVsYXRpb25GbiA9IHRoaXMuX2luc2VydE1ldGhvZHMuZ2V0KHJlbGF0aW9uS2luZCk7XHJcbiAgICBpZiAoaW5zZXJ0TWV0aG9kKSB7XHJcbiAgICAgIHJldHVybiBpbnNlcnRNZXRob2QuY2FsbCh0aGlzLCByZWxhdGlvbik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCByZXN1bHQ6IFJlbGF0aW9uID0gbmV3IFJlbGF0aW9uKCk7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVzdWx0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVSZWxhdGlvbihyZWxhdGlvbktpbmQ6IFJlbGF0aW9uS2luZCwgcmVsYXRpb246IFJlbGF0aW9uKTogUHJvbWlzZTxSZWxhdGlvbj4ge1xyXG4gICAgY29uc3QgdXBkYXRlTWV0aG9kOiBVcGRhdGVSZWxhdGlvbkZuID0gdGhpcy5fdXBkYXRlTWV0aG9kcy5nZXQocmVsYXRpb25LaW5kKTtcclxuICAgIGlmICh1cGRhdGVNZXRob2QpIHtcclxuICAgICAgcmV0dXJuIHVwZGF0ZU1ldGhvZC5jYWxsKHRoaXMsIHJlbGF0aW9uKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdDogUmVsYXRpb24gPSBuZXcgUmVsYXRpb24oKTtcclxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXN1bHQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvY2tSZWxhdGlvbihyZWxhdGlvbktpbmQ6IFJlbGF0aW9uS2luZCwgcmVsYXRpb25OcjogbnVtYmVyKTogUHJvbWlzZTxWYWxpZGF0aW9uUmVzdWx0PiB7XHJcbiAgICBjb25zdCBsb2NrTWV0aG9kOiBMb2NrRm5IZWFkZXIgPSB0aGlzLl9sb2NrTWV0aG9kcy5nZXQocmVsYXRpb25LaW5kKTtcclxuICAgIGlmIChsb2NrTWV0aG9kKSB7XHJcbiAgICAgIHJldHVybiBsb2NrTWV0aG9kLmNhbGwodGhpcywgcmVsYXRpb25Ocik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCByZXN1bHQ6IFZhbGlkYXRpb25SZXN1bHQgPSBuZXcgVmFsaWRhdGlvblJlc3VsdCgpO1xyXG4gICAgICByZXN1bHQuc3VjY2VzcyA9IGZhbHNlO1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3VsdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UmVsYXRpb24ocmVsYXRpb25LaW5kOiBSZWxhdGlvbktpbmQsIHJlbGF0aW9uTnI6IG51bWJlcik6IFByb21pc2U8UmVsYXRpb25BbnlUeXBlPiB7XHJcbiAgICBjb25zdCBnZXRNZXRob2Q6IEdldFJlbGF0aW9uRm5IZWFkZXIgPSB0aGlzLl9nZXRNZXRob2RzLmdldChyZWxhdGlvbktpbmQpO1xyXG4gICAgaWYgKGdldE1ldGhvZCkge1xyXG4gICAgICByZXR1cm4gZ2V0TWV0aG9kLmNhbGwodGhpcywgcmVsYXRpb25Ocik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCByZXN1bHQ6IFZhbGlkYXRpb25SZXN1bHQgPSBuZXcgVmFsaWRhdGlvblJlc3VsdCgpO1xyXG4gICAgICByZXN1bHQuc3VjY2VzcyA9IGZhbHNlO1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbW1pdCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLl9hZGFwdGVyU2VydmljZS5jb21taXQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xvY2tDdXN0b21lckZ1bGxPYmplY3QocmVsYXRpb25OcjogbnVtYmVyKTogUHJvbWlzZTxWYWxpZGF0aW9uUmVzdWx0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UubG9ja0N1c3RvbWVyRnVsbE9iamVjdChyZWxhdGlvbk5yKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xvY2tTdXBwbGllckZ1bGxPYmplY3QocmVsYXRpb25OcjogbnVtYmVyKTogUHJvbWlzZTxWYWxpZGF0aW9uUmVzdWx0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UubG9ja1N1cHBsaWVyRnVsbE9iamVjdChyZWxhdGlvbk5yKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xvY2tFbXBsb3llZUZ1bGxPYmplY3QocmVsYXRpb25OcjogbnVtYmVyKTogUHJvbWlzZTxWYWxpZGF0aW9uUmVzdWx0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UubG9ja0VtcGxveWVlRnVsbE9iamVjdChyZWxhdGlvbk5yKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xvY2tCcmFuY2hGdWxsT2JqZWN0KHJlbGF0aW9uTnI6IG51bWJlcik6IFByb21pc2U8VmFsaWRhdGlvblJlc3VsdD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmxvY2tCcmFuY2hGdWxsT2JqZWN0KHJlbGF0aW9uTnIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbG9ja0NvbXBhbnlGdWxsT2JqZWN0KHJlbGF0aW9uTnI6IG51bWJlcik6IFByb21pc2U8VmFsaWRhdGlvblJlc3VsdD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmxvY2tDb21wYW55RnVsbE9iamVjdChyZWxhdGlvbk5yKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xvY2tDb250YWN0UGVyc29uKHJlbGF0aW9uTnI6IG51bWJlcik6IFByb21pc2U8VmFsaWRhdGlvblJlc3VsdD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmxvY2tDb250YWN0UGVyc29uKHJlbGF0aW9uTnIpO1xyXG4gIH1cclxufVxyXG4iXX0=
|