@colijnit/transaction 255.1.74 → 255.1.75

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.
@@ -15,12 +15,7 @@ import { FunctionKind } from "@colijnit/transactionapi/build/enum/function-kind.
15
15
  import { TransactionConnectorService } from "../../../../service/transaction-connector.service";
16
16
  import { PlanTimes } from "@colijnit/transactionapi/build/model/plan-times.bo";
17
17
  import { InternalDefault } from "@colijnit/mainapi/build/enum/internal-default.enum";
18
- import { NumberUtils } from "@colijnit/ioneconnector/build/utils/number-utils";
19
18
  import { BusinessObjectFactory } from "@colijnit/ioneconnector/build/service/business-object-factory";
20
- import { TransactionLineType } from "@colijnit/transactionapi/build/enum/transaction-line-type.enum";
21
- import { PlanningRequestOrderLine } from "@colijnit/transactionapi/build/model/planning-request-order-line.bo";
22
- import { PlanningSendOrders } from "@colijnit/transactionapi/build/model/planning-send-orders.bo";
23
- import { PlanningRequestOrder } from "@colijnit/transactionapi/build/model/planning-request-order.bo";
24
19
  import { DoDeliveryPlanningRequestInputParams } from "@colijnit/transactionapi/build/model/do-delivery-planning-request-input-params.bo";
25
20
  import { TrueFalseDbType } from "@colijnit/mainapi/build/enum/true-false-db-type.enum";
26
21
  export class DialogTransactionPlanningRequest extends DialogTransactionBaseComponent {
@@ -125,37 +120,7 @@ export class DialogTransactionPlanningRequest extends DialogTransactionBaseCompo
125
120
  this.selectableDayParts.length = 0;
126
121
  if (this.transaction && this.transaction.transactionInfo.transactionKind === TransactionKind.SalesOrder) {
127
122
  const eventsPerDay = [];
128
- let planTimes;
129
- // isRouteOptimizationConfigured was in the JS source and I copied it, It might need work.
130
- if (this.isRouteOptimizationConfigured) {
131
- const inputs = new PlanningSendOrders();
132
- inputs.requestDate = this._addDays(this.selectedDate, NumberUtils.NrOrDefault(parseInt(this.daysUntilFirstPlanDate, 10), 0));
133
- const requestOrder = new PlanningRequestOrder();
134
- requestOrder.transId = this.transaction.transactionInfo.id;
135
- for (const line of this.transaction.transactionLines) {
136
- if (line.lineType === TransactionLineType.ArticleLine) {
137
- const requestLine = new PlanningRequestOrderLine();
138
- requestLine.goodId = line.goodId;
139
- requestLine.minutes = line.assemblyTime;
140
- requestLine.lineNr = line.lineNr;
141
- requestLine.originalLineNr = line.lineNr;
142
- requestLine.articleNr = line.articleNumber;
143
- requestLine.amountToPlan = line.amount;
144
- requestOrder.lines.push(requestLine);
145
- }
146
- }
147
- inputs.orders.push(requestOrder);
148
- planTimes = yield this.transactionConnectorService.checkAvailability(inputs);
149
- }
150
- else {
151
- const inputParams = new ResourcePlanningInputParams();
152
- inputParams.transId = this.transaction.transactionInfo.id;
153
- inputParams.resourceKind = ResourceKind.Transport;
154
- inputParams.functionKind = FunctionKind.Rayon;
155
- inputParams.startDate = this.startDate;
156
- inputParams.stopDate = this.endDate;
157
- planTimes = yield this.transactionConnectorService.resourcePlanning(inputParams);
158
- }
123
+ let planTimes = yield this.transactionService.getTransactionPlanPeriods(this.transaction.transactionInfo.id);
159
124
  if (planTimes && planTimes.length > 0) {
160
125
  const len = planTimes.length;
161
126
  let firstDayFound = false;
@@ -298,4 +263,4 @@ DialogTransactionPlanningRequest.propDecorators = {
298
263
  closeClick: [{ type: Output }],
299
264
  showClass: [{ type: HostBinding, args: ["class.co-dialog-transaction-planning-request",] }]
300
265
  };
301
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXRyYW5zYWN0aW9uLXBsYW5uaW5nLXJlcXVlc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvZGlhbG9nL3RyYW5zYWN0aW9uLWhlYWRlci9kaWFsb2ctdHJhbnNhY3Rpb24tcGxhbm5pbmctcmVxdWVzdC9kaWFsb2ctdHJhbnNhY3Rpb24tcGxhbm5pbmctcmVxdWVzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLFNBQVMsRUFFVCxNQUFNLEVBQ04saUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQ3BHLE9BQU8sRUFBQyxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDeEYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDdEYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDM0UsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUFDLHFDQUFxQyxFQUFDLE1BQU0sOERBQThELENBQUM7QUFDbkgsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDekUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDdEYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQzFGLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHdFQUF3RSxDQUFDO0FBQ25ILE9BQU8sRUFBQyxZ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QUFJLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNyRCxhQUFhLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNwRCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBRU8sVUFBVSxDQUFDLElBQVU7UUFDM0IsT0FBTyxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxTQUFTLENBQUM7SUFDN0MsQ0FBQztJQUVPLFFBQVEsQ0FBQyxJQUFVLEVBQUUsSUFBWTtRQUN2QyxNQUFNLE1BQU0sR0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN4QyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzs7WUE1UUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx3Q0FBd0M7Z0JBQ2xELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O3lDQXdCSSxNQUFNLFNBQUMsU0FBUztZQTFFYiwyQkFBMkI7WUFWM0IsdUJBQXVCO1lBQ3ZCLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIscUNBQXFDO1lBQ3JDLGlCQUFpQjtZQUNqQix1QkFBdUI7WUFqQjdCLGlCQUFpQjs7O3lCQTJFaEIsTUFBTTt3QkFHTixXQUFXLFNBQUMsOENBQThDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEluamVjdCxcclxuICBMT0NBTEVfSUQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7RGlhbG9nVHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vLi4vY29yZS9iYXNlL2RpYWxvZy10cmFuc2FjdGlvbi1iYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0FnZW5kYUV2ZW50LCBBZ2VuZGFFdmVudFBlckRheSwgQ2FsZW5kYXJWaWV3fSBmcm9tIFwiQGNvbGlqbml0L3NoYXJlZGNvbXBvbmVudHNcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkV2ZW50U2VydmljZX0gZnJvbSBcIi4uLy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZVwiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNjcmVlbi1jb25maWd1cmF0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSBcIi4uLy4uLy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbWFnZVNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWltYWdlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbktpbmR9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW1cIjtcclxuaW1wb3J0IHtSZXNvdXJjZVBsYW5uaW5nSW5wdXRQYXJhbXN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVzb3VyY2UtcGxhbm5pbmctaW5wdXQtcGFyYW1zLmJvXCI7XHJcbmltcG9ydCB7UmVzb3VyY2VLaW5kfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vcmVzb3VyY2Uta2luZC5lbnVtXCI7XHJcbmltcG9ydCB7RnVuY3Rpb25LaW5kfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vZnVuY3Rpb24ta2luZC5lbnVtXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1jb25uZWN0b3Iuc2VydmljZVwiO1xyXG5pbXBvcnQge1BsYW5UaW1lc30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFuLXRpbWVzLmJvXCI7XHJcbmltcG9ydCB7SW50ZXJuYWxEZWZhdWx0fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS9pbnRlcm5hbC1kZWZhdWx0LmVudW1cIjtcclxuaW1wb3J0IHtOdW1iZXJVdGlsc30gZnJvbSBcIkBjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3V0aWxzL251bWJlci11dGlsc1wiO1xyXG5pbXBvcnQge0J1c2luZXNzT2JqZWN0RmFjdG9yeX0gZnJvbSBcIkBjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3NlcnZpY2UvYnVzaW5lc3Mtb2JqZWN0LWZhY3RvcnlcIjtcclxuaW1wb3J0IHtQbGFuRGF5cGFydH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFuLWRheXBhcnQuYm9cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVUeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24tbGluZS10eXBlLmVudW1cIjtcclxuaW1wb3J0IHtQbGFubmluZ1JlcXVlc3RPcmRlckxpbmV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbm5pbmctcmVxdWVzdC1vcmRlci1saW5lLmJvXCI7XHJcbmltcG9ydCB7UGxhbm5pbmdTZW5kT3JkZXJzfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW5uaW5nLXNlbmQtb3JkZXJzLmJvXCI7XHJcbmltcG9ydCB7UGxhbm5pbmdSZXF1ZXN0T3JkZXJ9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbm5pbmctcmVxdWVzdC1vcmRlci5ib1wiO1xyXG5pbXBvcnQge1xyXG4gIERvRGVsaXZlcnlQbGFubmluZ1JlcXVlc3RJbnB1dFBhcmFtc1xyXG59IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZG8tZGVsaXZlcnktcGxhbm5pbmctcmVxdWVzdC1pbnB1dC1wYXJhbXMuYm9cIjtcclxuaW1wb3J0IHtUcnVlRmFsc2VEYlR5cGV9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL3RydWUtZmFsc2UtZGItdHlwZS5lbnVtXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby1kaWFsb2ctdHJhbnNhY3Rpb24tcGxhbm5pbmctcmVxdWVzdFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8Y28tZGlhbG9nIFtoZWFkZXJUZW1wbGF0ZV09XCJkaWFsb2dIZWFkZXJcIiBbZm9vdGVyVGVtcGxhdGVdPVwiZm9vdGVyVGVtcGxhdGVcIiBbc2hvd0Nsb3NlSWNvbl09XCJ1c2VNb2RlbFwiXHJcbiAgICAgICAgICAgICAgIChjbG9zZUNsaWNrKT1cImNsb3NlRGlhbG9nKCRldmVudClcIj5cclxuICAgICAgPGRpdiAqbmdJZj1cImxvYWRlZFwiPlxyXG4gICAgICAgIDxjby1wcmVmZXJyZWQtcGxhbm5pbmdcclxuICAgICAgICAgIFtzZWxlY3RlZERhdGVdPVwic2VsZWN0ZWREYXRlXCJcclxuICAgICAgICAgIFtldmVudHNQZXJEYXldPVwic2VsZWN0YWJsZURheVBhcnRzXCJcclxuICAgICAgICAgIFtidXR0b25MYWJlbF09XCInUFJFRkVSUkVEX0RFTElWRVJZX0RBVEVfQ09ORklSTScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICBbbG9hZE1vcmVCdXR0b25UZXh0XT1cIidQUkVGRVJSRURfREVMSVZFUllfREFURV9MT0FEX01PUkUnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgW2Rpc2NsYWltZXJIZWFkZXJdPVwiJ1BSRUZFUlJFRF9ERUxJVkVSWV9EQVRFX0RJU0NMQUlNRVJfSEVBREVSJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgIFtoZWFkZXJEZXNjcmlwdGlvbl09XCInUFJFRkVSUkVEX0RFTElWRVJZX0RBVEVfREVTQ1JJUFRJT04nIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgW2Rpc2NsYWltZXJEZXNjcmlwdGlvbl09XCInUFJFRkVSUkVEX0RFTElWRVJZX0RBVEVfRElTQ0xBSU1FUl9ERVNDUklQVElPTicgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwiaGFuZGxlQ29uZmlybUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgKHNlbGVjdGVkKT1cInNldFNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L2NvLXByZWZlcnJlZC1wbGFubmluZz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjZGlhbG9nSGVhZGVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjby1kaWFsb2ctaGVhZGVyLXRpdGxlXCIgW3RleHRDb250ZW50XT1cIidQUkVGRVJSRURfREVMSVZFUllfREFURV9IRUFERVInIHwgbG9jYWxpemVcIj48L2Rpdj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPG5nLXRlbXBsYXRlICNmb290ZXJUZW1wbGF0ZT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZGlhbG9nLWZvb3Rlci1idXR0b24td3JhcHBlclwiICpuZ0lmPVwiIXVzZU1vZGVsXCI+XHJcbiAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwic2F2ZS1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkNoZWNrRHVvdG9uZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlT2tDbGljaygpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5Dcm9zc3NraW5ueSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VEaWFsb2coJGV2ZW50KVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9jby1kaWFsb2c+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dUcmFuc2FjdGlvblBsYW5uaW5nUmVxdWVzdCBleHRlbmRzIERpYWxvZ1RyYW5zYWN0aW9uQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBjbG9zZUNsaWNrOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLWRpYWxvZy10cmFuc2FjdGlvbi1wbGFubmluZy1yZXF1ZXN0XCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyB2aWV3OiBDYWxlbmRhclZpZXcgPSBDYWxlbmRhclZpZXcuV2Vla1NlbGVjdFZpZXc7XHJcbiAgcHVibGljIHNlbGVjdGVkRXZlbnQ6IEFnZW5kYUV2ZW50UGVyRGF5O1xyXG4gIHB1YmxpYyBzZWxlY3RhYmxlRGF5UGFydHM6IEFnZW5kYUV2ZW50UGVyRGF5W10gPSBbXTtcclxuICBwdWJsaWMgc2VsZWN0ZWREYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcclxuICBwdWJsaWMgc3RhcnREYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcclxuICBwdWJsaWMgZW5kRGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgcHVibGljIGRheXNVbnRpbEZpcnN0UGxhbkRhdGU6IHN0cmluZztcclxuICBwdWJsaWMgaXNSb3V0ZU9wdGltaXphdGlvbkNvbmZpZ3VyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgZmlyc3REZWxpdmVyeURhdGU6IERhdGU7XHJcbiAgcHJpdmF0ZSBfYm9GYWN0b3J5OiBCdXNpbmVzc09iamVjdEZhY3RvcnkgPSBuZXcgQnVzaW5lc3NPYmplY3RGYWN0b3J5KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChMT0NBTEVfSUQpIHByaXZhdGUgX2xvY2FsZTogc3RyaW5nLFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZTogVHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlLFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGRpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgIHByb3RlY3RlZCBpbWFnZVNlcnZpY2U6IFRyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICApIHtcclxuICAgIHN1cGVyKHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLCBpY29uQ2FjaGVTZXJ2aWNlLCB0cmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBpbWFnZVNlcnZpY2UsIGRpY3Rpb25hcnlTZXJ2aWNlLCBzZXJ2aWNlLCBjaGFuZ2VEZXRlY3Rvcik7XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuZGF5c1VudGlsRmlyc3RQbGFuRGF0ZSA9IGF3YWl0IHRoaXMudHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlLmdldEludGVybmFsRGVmYXVsdFZhbHVlKEludGVybmFsRGVmYXVsdC5EYXlzVW50aWxGaXJzdFBsYW5EYXRlKTtcclxuICAgIGF3YWl0IHRoaXMuX2dldEFsbEF2YWlsYWJsZVBsYW5EYXRlcygpO1xyXG4gICAgdGhpcy5fZ2V0U2VsZWN0YWJsZURheVBhcnRzKCkudGhlbihyZXN1bHQgPT4ge1xyXG4gICAgICB0aGlzLnNlbGVjdGFibGVEYXlQYXJ0cyA9IHJlc3VsdDtcclxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIHRoaXMubG9hZGVkID0gdHJ1ZTtcclxuICAgIH0pXHJcbiAgICBhd2FpdCB0aGlzLmxvY2tUcmFuc2FjdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFNlbGVjdGVkKHNlbGVjdGVkOiBBZ2VuZGFFdmVudFBlckRheSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEV2ZW50ID0gc2VsZWN0ZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY2xvc2VEaWFsb2coZXZlbnQ6IE1vdXNlRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGF3YWl0IHRoaXMucm9sbGJhY2soKTtcclxuICAgIHRoaXMuY2xvc2VDbGljay5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQ29uZmlybUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZEV2ZW50KSB7XHJcbiAgICAgIC8vIHNhdmVcclxuICAgICAgY29uc3QgcGxhblJlcXVlc3Q6IERvRGVsaXZlcnlQbGFubmluZ1JlcXVlc3RJbnB1dFBhcmFtcyA9IG5ldyBEb0RlbGl2ZXJ5UGxhbm5pbmdSZXF1ZXN0SW5wdXRQYXJhbXMoKTtcclxuICAgICAgcGxhblJlcXVlc3QudHJhbnNJZCA9IHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmlkO1xyXG4gICAgICBwbGFuUmVxdWVzdC5wbGFuRGF0ZSA9IHRoaXMuc2VsZWN0ZWRFdmVudC5kYXRlO1xyXG4gICAgICBwbGFuUmVxdWVzdC5wbGFuRGF5UGFydE5vID0gdGhpcy5zZWxlY3RlZEV2ZW50LmV2ZW50c1swXS5kYXlQYXJ0Tm87XHJcbiAgICAgIHBsYW5SZXF1ZXN0LmRvQ29tbWl0ID0gVHJ1ZUZhbHNlRGJUeXBlLlRydWU7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlLmRvRGVsaXZlcnlQbGFubmluZ1JlcXVlc3QocGxhblJlcXVlc3QpLnRoZW4ocmVzdWx0ID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8ucHJlZmVycmVkRGVsaXZlcnlEYXRlID0gdGhpcy5zZWxlY3RlZEV2ZW50LmRhdGU7XHJcbiAgICAgICAgICB0aGlzLmNsb3NlQ2xpY2suZW1pdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9nZXRBbGxBdmFpbGFibGVQbGFuRGF0ZXMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgZmlyc3REZWxpdmVyeURhdGU6IERhdGU7XHJcbiAgICBjb25zdCB2a3BGcm9tTGV2RGF0ZTogYW55ID0gYXdhaXQgdGhpcy50cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UuZ2V0SW50ZXJuYWxEZWZhdWx0VmFsdWUoSW50ZXJuYWxEZWZhdWx0LlByZWZQbGFubmluZ0Zyb21EZWxpdmVyeURhdGUpO1xyXG4gICAgLy8gVE9ETyB0aGlzIHNob3VsZCBiZSBib29sZWFucyByaWdodD9cclxuICAgIGlmICh2a3BGcm9tTGV2RGF0ZS5sb3dlckNhc2UgPT09ICduJykge1xyXG4gICAgICBmaXJzdERlbGl2ZXJ5RGF0ZSA9IG5ldyBEYXRlKHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmRlbGl2ZXJ5RGF0ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBkZWxEYXRlOiBEYXRlID0gbmV3IERhdGUoYXdhaXQgdGhpcy50cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UuZ2V0RGVsaXZlcnlEYXRlT3JkZXIodGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaWQpKTtcclxuICAgICAgaWYgKHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnByZWZlcnJlZERlbGl2ZXJ5RGF0ZSAmJiB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5wcmVmZXJyZWREZWxpdmVyeURhdGUyID09PSBcIj5cIlxyXG4gICAgICAgICYmIGRlbERhdGUuZ2V0VGltZSgpIDw9IHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnByZWZlcnJlZERlbGl2ZXJ5RGF0ZS5nZXRUaW1lKCkpIHtcclxuICAgICAgICBmaXJzdERlbGl2ZXJ5RGF0ZSA9IHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnByZWZlcnJlZERlbGl2ZXJ5RGF0ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmaXJzdERlbGl2ZXJ5RGF0ZSA9IGRlbERhdGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mbyAmJiB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbktpbmQgPT09IFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyKSB7XHJcbiAgICAgIGNvbnN0IGlucHV0UGFyYW1zOiBSZXNvdXJjZVBsYW5uaW5nSW5wdXRQYXJhbXMgPSBuZXcgUmVzb3VyY2VQbGFubmluZ0lucHV0UGFyYW1zKCk7XHJcbiAgICAgIGlucHV0UGFyYW1zLnRyYW5zSWQgPSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZDtcclxuICAgICAgaW5wdXRQYXJhbXMucmVzb3VyY2VLaW5kID0gUmVzb3VyY2VLaW5kLlRyYW5zcG9ydDtcclxuICAgICAgaW5wdXRQYXJhbXMuZnVuY3Rpb25LaW5kID0gRnVuY3Rpb25LaW5kLlJheW9uO1xyXG4gICAgICBpbnB1dFBhcmFtcy5zdGFydERhdGUgPSBmaXJzdERlbGl2ZXJ5RGF0ZTtcclxuICAgICAgaW5wdXRQYXJhbXMuc3RvcERhdGUgPSBudWxsO1xyXG4gICAgICBjb25zdCBwbGFuVGltZXM6IFBsYW5UaW1lc1tdID0gYXdhaXQgdGhpcy50cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UucmVzb3VyY2VQbGFubmluZyhpbnB1dFBhcmFtcyk7XHJcbiAgICAgIGlmIChwbGFuVGltZXMgJiYgcGxhblRpbWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBjb25zdCBmaXJzdFBsYW5EYXRlOiBhbnkgPSB0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShQbGFuVGltZXMsIHBsYW5UaW1lc1swXSk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBuZXcgRGF0ZShmaXJzdFBsYW5EYXRlLnBsYW5EYXRlKTtcclxuICAgICAgICB0aGlzLmZpcnN0RGVsaXZlcnlEYXRlID0gdGhpcy5zZWxlY3RlZERhdGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX2dldFNlbGVjdGFibGVEYXlQYXJ0cygpOiBQcm9taXNlPEFnZW5kYUV2ZW50UGVyRGF5W10+IHtcclxuICAgIHRoaXMuX2FwcGx5U2VsZWN0ZWREYXRlKHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuICAgIHRoaXMuc2VsZWN0YWJsZURheVBhcnRzLmxlbmd0aCA9IDA7XHJcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbiAmJiB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbktpbmQgPT09IFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyKSB7XHJcbiAgICAgIGNvbnN0IGV2ZW50c1BlckRheTogQWdlbmRhRXZlbnRQZXJEYXlbXSA9IFtdO1xyXG4gICAgICBsZXQgcGxhblRpbWVzOiBQbGFuVGltZXNbXTtcclxuICAgICAgLy8gaXNSb3V0ZU9wdGltaXphdGlvbkNvbmZpZ3VyZWQgd2FzIGluIHRoZSBKUyBzb3VyY2UgYW5kIEkgY29waWVkIGl0LCBJdCBtaWdodCBuZWVkIHdvcmsuXHJcbiAgICAgIGlmICh0aGlzLmlzUm91dGVPcHRpbWl6YXRpb25Db25maWd1cmVkKSB7XHJcbiAgICAgICAgY29uc3QgaW5wdXRzOiBQbGFubmluZ1NlbmRPcmRlcnMgPSBuZXcgUGxhbm5pbmdTZW5kT3JkZXJzKCk7XHJcbiAgICAgICAgaW5wdXRzLnJlcXVlc3REYXRlID0gdGhpcy5fYWRkRGF5cyh0aGlzLnNlbGVjdGVkRGF0ZSwgTnVtYmVyVXRpbHMuTnJPckRlZmF1bHQocGFyc2VJbnQodGhpcy5kYXlzVW50aWxGaXJzdFBsYW5EYXRlLCAxMCksIDApKTtcclxuICAgICAgICBjb25zdCByZXF1ZXN0T3JkZXI6IFBsYW5uaW5nUmVxdWVzdE9yZGVyID0gbmV3IFBsYW5uaW5nUmVxdWVzdE9yZGVyKCk7XHJcbiAgICAgICAgcmVxdWVzdE9yZGVyLnRyYW5zSWQgPSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZDtcclxuICAgICAgICBmb3IgKGNvbnN0IGxpbmUgb2YgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzKSB7XHJcbiAgICAgICAgICBpZiAobGluZS5saW5lVHlwZSA9PT0gVHJhbnNhY3Rpb25MaW5lVHlwZS5BcnRpY2xlTGluZSkge1xyXG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0TGluZTogUGxhbm5pbmdSZXF1ZXN0T3JkZXJMaW5lID0gbmV3IFBsYW5uaW5nUmVxdWVzdE9yZGVyTGluZSgpO1xyXG4gICAgICAgICAgICByZXF1ZXN0TGluZS5nb29kSWQgPSBsaW5lLmdvb2RJZDtcclxuICAgICAgICAgICAgcmVxdWVzdExpbmUubWludXRlcyA9IGxpbmUuYXNzZW1ibHlUaW1lO1xyXG4gICAgICAgICAgICByZXF1ZXN0TGluZS5saW5lTnIgPSBsaW5lLmxpbmVOcjtcclxuICAgICAgICAgICAgcmVxdWVzdExpbmUub3JpZ2luYWxMaW5lTnIgPSBsaW5lLmxpbmVOcjtcclxuICAgICAgICAgICAgcmVxdWVzdExpbmUuYXJ0aWNsZU5yID0gbGluZS5hcnRpY2xlTnVtYmVyO1xyXG4gICAgICAgICAgICByZXF1ZXN0TGluZS5hbW91bnRUb1BsYW4gPSBsaW5lLmFtb3VudDtcclxuICAgICAgICAgICAgcmVxdWVzdE9yZGVyLmxpbmVzLnB1c2gocmVxdWVzdExpbmUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpbnB1dHMub3JkZXJzLnB1c2gocmVxdWVzdE9yZGVyKTtcclxuICAgICAgICBwbGFuVGltZXMgPSBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZS5jaGVja0F2YWlsYWJpbGl0eShpbnB1dHMpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGlucHV0UGFyYW1zOiBSZXNvdXJjZVBsYW5uaW5nSW5wdXRQYXJhbXMgPSBuZXcgUmVzb3VyY2VQbGFubmluZ0lucHV0UGFyYW1zKCk7XHJcbiAgICAgICAgaW5wdXRQYXJhbXMudHJhbnNJZCA9IHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmlkO1xyXG4gICAgICAgIGlucHV0UGFyYW1zLnJlc291cmNlS2luZCA9IFJlc291cmNlS2luZC5UcmFuc3BvcnQ7XHJcbiAgICAgICAgaW5wdXRQYXJhbXMuZnVuY3Rpb25LaW5kID0gRnVuY3Rpb25LaW5kLlJheW9uO1xyXG4gICAgICAgIGlucHV0UGFyYW1zLnN0YXJ0RGF0ZSA9IHRoaXMuc3RhcnREYXRlO1xyXG4gICAgICAgIGlucHV0UGFyYW1zLnN0b3BEYXRlID0gdGhpcy5lbmREYXRlO1xyXG4gICAgICAgIHBsYW5UaW1lcyA9IGF3YWl0IHRoaXMudHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlLnJlc291cmNlUGxhbm5pbmcoaW5wdXRQYXJhbXMpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChwbGFuVGltZXMgJiYgcGxhblRpbWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBjb25zdCBsZW46IG51bWJlciA9IHBsYW5UaW1lcy5sZW5ndGg7XHJcbiAgICAgICAgbGV0IGZpcnN0RGF5Rm91bmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICAgIGNvbnN0IHBsYW5UaW1lOiBhbnkgPSB0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShQbGFuVGltZXMsIHBsYW5UaW1lc1tpXSk7XHJcbiAgICAgICAgICBldmVudHNQZXJEYXkucHVzaCh0aGlzLl9jcmVhdGVBZ2VuZGFFdmVudFBlckRheUZyb21QbGFuVGltZXMocGxhblRpbWUpKTtcclxuICAgICAgICAgIGlmICghZmlyc3REYXlGb3VuZCAmJiBwbGFuVGltZS5kYXlQYXJ0cyAmJiBwbGFuVGltZS5kYXlQYXJ0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gcGxhblRpbWUucGxhbkRhdGU7XHJcbiAgICAgICAgICAgIGZpcnN0RGF5Rm91bmQgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0YWJsZURheVBhcnRzID0gZXZlbnRzUGVyRGF5O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9hcHBseVNlbGVjdGVkRGF0ZShkYXRlOiBEYXRlLCBpbml0aWFsOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcclxuICAgIGlmIChkYXRlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdXNlSW5pdGlhbDogYm9vbGVhbiA9IGluaXRpYWwgfHwgKHRoaXMuZmlyc3REZWxpdmVyeURhdGUgJiYgdGhpcy5maXJzdERlbGl2ZXJ5RGF0ZS5nZXRUaW1lKCkgPiB0aGlzLnNlbGVjdGVkRGF0ZS5nZXRUaW1lKCkpO1xyXG4gICAgdGhpcy5zdGFydERhdGUgPSB1c2VJbml0aWFsID8gdGhpcy5maXJzdERlbGl2ZXJ5RGF0ZSA6IHRoaXMuX2dldEZpcnN0RGF5T2ZXZWVrKHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuICAgIHRoaXMuZW5kRGF0ZSA9IHRoaXMuX2dldExhc3REYXlPZldlZWsodGhpcy5zZWxlY3RlZERhdGUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlQWdlbmRhRXZlbnRQZXJEYXlGcm9tUGxhblRpbWVzKHBsYW5UaW1lczogUGxhblRpbWVzKTogQWdlbmRhRXZlbnRQZXJEYXkge1xyXG4gICAgY29uc3QgYWdlbmRhRXZlbnQ6IEFnZW5kYUV2ZW50UGVyRGF5ID0gbmV3IEFnZW5kYUV2ZW50UGVyRGF5KCk7XHJcbiAgICBhZ2VuZGFFdmVudC5kYXRlID0gbmV3IERhdGUocGxhblRpbWVzLnBsYW5EYXRlKTtcclxuICAgIGNvbnN0IGV2ZW50czogQWdlbmRhRXZlbnRbXSA9IFtdO1xyXG4gICAgYWdlbmRhRXZlbnQuZXZlbnRzID0gZXZlbnRzO1xyXG4gICAgY29uc3QgbGVuOiBudW1iZXIgPSBwbGFuVGltZXMuZGF5UGFydHMubGVuZ3RoO1xyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGRheVBhcnQ6IFBsYW5EYXlwYXJ0ID0gcGxhblRpbWVzLmRheVBhcnRzW2ldO1xyXG4gICAgICBpZiAoZGF5UGFydC5hdmFpbGFibGUpIHtcclxuICAgICAgICBldmVudHMucHVzaCh0aGlzLl9jcmVhdGVBZ2VuZGFFdmVudEZyb21EYXlQYXJ0KGRheVBhcnQsIGFnZW5kYUV2ZW50LmRhdGUpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFnZW5kYUV2ZW50O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlQWdlbmRhRXZlbnRGcm9tRGF5UGFydChkYXlQYXJ0OiBQbGFuRGF5cGFydCwgZGF0ZTogRGF0ZSk6IEFnZW5kYUV2ZW50IHtcclxuICAgIGNvbnN0IGV2ZW50OiBBZ2VuZGFFdmVudCA9IG5ldyBBZ2VuZGFFdmVudCgpO1xyXG4gICAgZXZlbnQuaWQgPSBkYXlQYXJ0LmRheVBhcnRJZDtcclxuICAgIGV2ZW50LmRheVBhcnRObyA9IGRheVBhcnQuZGF5UGFydE5vO1xyXG4gICAgZXZlbnQuY2hlY2tlZCA9IGRheVBhcnQuYWN0aXZlO1xyXG4gICAgZXZlbnQuc2hvd0NoZWNrYm94ID0gdHJ1ZTtcclxuICAgIGV2ZW50LmRhdGUgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIGNvbnN0IGZyb206IERhdGUgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIGZyb20uc2V0SG91cnMoZGF5UGFydC50aW1lSG91clN0YXJ0KTtcclxuICAgIGV2ZW50LmZyb20gPSBmcm9tO1xyXG4gICAgY29uc3QgdG86IERhdGUgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIHRvLnNldEhvdXJzKGRheVBhcnQudGltZUhvdXJTdG9wKTtcclxuICAgIGV2ZW50LnRvID0gdG87XHJcbiAgICBldmVudC5mcm9tU3RyaW5nID0gZXZlbnQuZnJvbS50b0xvY2FsZVRpbWVTdHJpbmcodGhpcy5fbG9jYWxlLCB7aG91cjogXCIyLWRpZ2l0XCIsIG1pbnV0ZTogXCIyLWRpZ2l0XCJ9KTtcclxuICAgIGV2ZW50LnRvU3RyaW5nID0gZXZlbnQudG8udG9Mb2NhbGVUaW1lU3RyaW5nKHRoaXMuX2xvY2FsZSwge2hvdXI6IFwiMi1kaWdpdFwiLCBtaW51dGU6IFwiMi1kaWdpdFwifSk7XHJcbiAgICBldmVudC5mcm9tVG9SZXByZXNlbnRhdGlvbiA9IGV2ZW50LmZyb21TdHJpbmcgKyBcIiAtIFwiICsgZXZlbnQudG9TdHJpbmc7XHJcbiAgICBldmVudC50aW1lV2luZG93ID0gZGF5UGFydC5vbmxpbmVQbGFubmluZztcclxuICAgIGV2ZW50LmRlc2NyaXB0aW9uID0gZGF5UGFydC5kYXlQYXJ0RGVzY3JpcHRpb247XHJcbiAgICByZXR1cm4gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRGaXJzdERheU9mV2VlayhkYXRlOiBEYXRlKTogRGF0ZSB7XHJcbiAgICBpZiAoIXRoaXMuX3ZhbGlkRGF0ZShkYXRlKSkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGxldCBmaXJzdERheTogRGF0ZTtcclxuICAgIGNvbnN0IGRheU9mV2VlazogbnVtYmVyID0gZGF0ZS5nZXREYXkoKSB8fCA3O1xyXG4gICAgaWYgKGRheU9mV2VlayA9PT0gMSkge1xyXG4gICAgICBmaXJzdERheSA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZmlyc3REYXkgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgICAgZmlyc3REYXkuc2V0SG91cnMoLTI0ICogKGRheU9mV2VlayAtIDEpKTtcclxuICAgIH1cclxuICAgIHJldHVybiBmaXJzdERheTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldExhc3REYXlPZldlZWsoZGF0ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgY29uc3QgZmlyc3REYXlPZldlZWs6IERhdGUgPSB0aGlzLl9nZXRGaXJzdERheU9mV2VlayhkYXRlKTtcclxuICAgIGNvbnN0IGxhc3REYXlPZldlZWs6IERhdGUgPSBuZXcgRGF0ZShmaXJzdERheU9mV2Vlayk7XHJcbiAgICBsYXN0RGF5T2ZXZWVrLnNldERhdGUoZmlyc3REYXlPZldlZWsuZ2V0RGF0ZSgpICsgNik7XHJcbiAgICByZXR1cm4gbGFzdERheU9mV2VlaztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3ZhbGlkRGF0ZShkYXRlOiBEYXRlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gZGF0ZSAhPT0gbnVsbCAmJiBkYXRlICE9PSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9hZGREYXlzKGRhdGU6IERhdGUsIGRheXM6IG51bWJlcik6IERhdGUge1xyXG4gICAgY29uc3QgcmVzdWx0OiBEYXRlID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICByZXN1bHQuc2V0RGF0ZShyZXN1bHQuZ2V0RGF0ZSgpICsgZGF5cyk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxufVxyXG4iXX0=
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXRyYW5zYWN0aW9uLXBsYW5uaW5nLXJlcXVlc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvZGlhbG9nL3RyYW5zYWN0aW9uLWhlYWRlci9kaWFsb2ctdHJhbnNhY3Rpb24tcGxhbm5pbmctcmVxdWVzdC9kaWFsb2ctdHJhbnNhY3Rpb24tcGxhbm5pbmctcmVxdWVzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLFNBQVMsRUFFVCxNQUFNLEVBQ04saUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQ3BHLE9BQU8sRUFBQyxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDeEYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDdEYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDM0UsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUFDLHFDQUFxQyxFQUFDLE1BQU0sOERBQThELENBQUM7QUFDbkgsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDekUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDdEYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQzFGLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHdFQUF3RSxDQUFDO0FBQ25ILE9BQU8sRUFBQyxZ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QyxpQkFBaUI7WUFDakIsdUJBQXVCO1lBakI3QixpQkFBaUI7Ozt5QkEyRWhCLE1BQU07d0JBR04sV0FBVyxTQUFDLDhDQUE4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0QmluZGluZyxcclxuICBJbmplY3QsXHJcbiAgTE9DQUxFX0lELFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0RpYWxvZ1RyYW5zYWN0aW9uQmFzZUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvYmFzZS9kaWFsb2ctdHJhbnNhY3Rpb24tYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtBZ2VuZGFFdmVudCwgQWdlbmRhRXZlbnRQZXJEYXksIENhbGVuZGFyVmlld30gZnJvbSBcIkBjb2xpam5pdC9zaGFyZWRjb21wb25lbnRzXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1pbWFnZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtXCI7XHJcbmltcG9ydCB7UmVzb3VyY2VQbGFubmluZ0lucHV0UGFyYW1zfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3Jlc291cmNlLXBsYW5uaW5nLWlucHV0LXBhcmFtcy5ib1wiO1xyXG5pbXBvcnQge1Jlc291cmNlS2luZH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3Jlc291cmNlLWtpbmQuZW51bVwiO1xyXG5pbXBvcnQge0Z1bmN0aW9uS2luZH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL2Z1bmN0aW9uLWtpbmQuZW51bVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tY29ubmVjdG9yLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtQbGFuVGltZXN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbi10aW1lcy5ib1wiO1xyXG5pbXBvcnQge0ludGVybmFsRGVmYXVsdH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vaW50ZXJuYWwtZGVmYXVsdC5lbnVtXCI7XHJcbmltcG9ydCB7TnVtYmVyVXRpbHN9IGZyb20gXCJAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC91dGlscy9udW1iZXItdXRpbHNcIjtcclxuaW1wb3J0IHtCdXNpbmVzc09iamVjdEZhY3Rvcnl9IGZyb20gXCJAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9zZXJ2aWNlL2J1c2luZXNzLW9iamVjdC1mYWN0b3J5XCI7XHJcbmltcG9ydCB7UGxhbkRheXBhcnR9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbi1kYXlwYXJ0LmJvXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lVHlwZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3RyYW5zYWN0aW9uLWxpbmUtdHlwZS5lbnVtXCI7XHJcbmltcG9ydCB7UGxhbm5pbmdSZXF1ZXN0T3JkZXJMaW5lfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW5uaW5nLXJlcXVlc3Qtb3JkZXItbGluZS5ib1wiO1xyXG5pbXBvcnQge1BsYW5uaW5nU2VuZE9yZGVyc30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFubmluZy1zZW5kLW9yZGVycy5ib1wiO1xyXG5pbXBvcnQge1BsYW5uaW5nUmVxdWVzdE9yZGVyfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW5uaW5nLXJlcXVlc3Qtb3JkZXIuYm9cIjtcclxuaW1wb3J0IHtcclxuICBEb0RlbGl2ZXJ5UGxhbm5pbmdSZXF1ZXN0SW5wdXRQYXJhbXNcclxufSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2RvLWRlbGl2ZXJ5LXBsYW5uaW5nLXJlcXVlc3QtaW5wdXQtcGFyYW1zLmJvXCI7XHJcbmltcG9ydCB7VHJ1ZUZhbHNlRGJUeXBlfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS90cnVlLWZhbHNlLWRiLXR5cGUuZW51bVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tZGlhbG9nLXRyYW5zYWN0aW9uLXBsYW5uaW5nLXJlcXVlc3RcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGNvLWRpYWxvZyBbaGVhZGVyVGVtcGxhdGVdPVwiZGlhbG9nSGVhZGVyXCIgW2Zvb3RlclRlbXBsYXRlXT1cImZvb3RlclRlbXBsYXRlXCIgW3Nob3dDbG9zZUljb25dPVwidXNlTW9kZWxcIlxyXG4gICAgICAgICAgICAgICAoY2xvc2VDbGljayk9XCJjbG9zZURpYWxvZygkZXZlbnQpXCI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJsb2FkZWRcIj5cclxuICAgICAgICA8Y28tcHJlZmVycmVkLXBsYW5uaW5nXHJcbiAgICAgICAgICBbc2VsZWN0ZWREYXRlXT1cInNlbGVjdGVkRGF0ZVwiXHJcbiAgICAgICAgICBbZXZlbnRzUGVyRGF5XT1cInNlbGVjdGFibGVEYXlQYXJ0c1wiXHJcbiAgICAgICAgICBbYnV0dG9uTGFiZWxdPVwiJ1BSRUZFUlJFRF9ERUxJVkVSWV9EQVRFX0NPTkZJUk0nIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgW2xvYWRNb3JlQnV0dG9uVGV4dF09XCInUFJFRkVSUkVEX0RFTElWRVJZX0RBVEVfTE9BRF9NT1JFJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgIFtkaXNjbGFpbWVySGVhZGVyXT1cIidQUkVGRVJSRURfREVMSVZFUllfREFURV9ESVNDTEFJTUVSX0hFQURFUicgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICBbaGVhZGVyRGVzY3JpcHRpb25dPVwiJ1BSRUZFUlJFRF9ERUxJVkVSWV9EQVRFX0RFU0NSSVBUSU9OJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgIFtkaXNjbGFpbWVyRGVzY3JpcHRpb25dPVwiJ1BSRUZFUlJFRF9ERUxJVkVSWV9EQVRFX0RJU0NMQUlNRVJfREVTQ1JJUFRJT04nIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cImhhbmRsZUNvbmZpcm1DbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgIChzZWxlY3RlZCk9XCJzZXRTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9jby1wcmVmZXJyZWQtcGxhbm5pbmc+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2RpYWxvZ0hlYWRlcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZGlhbG9nLWhlYWRlci10aXRsZVwiIFt0ZXh0Q29udGVudF09XCInUFJFRkVSUkVEX0RFTElWRVJZX0RBVEVfSEVBREVSJyB8IGxvY2FsaXplXCI+PC9kaXY+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGU+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvLWRpYWxvZy1mb290ZXItYnV0dG9uLXdyYXBwZXJcIiAqbmdJZj1cIiF1c2VNb2RlbFwiPlxyXG4gICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cInNhdmUtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5DaGVja0R1b3RvbmUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZU9rQ2xpY2soKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cImNsb3NlLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ3Jvc3Nza2lubnkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlRGlhbG9nKCRldmVudClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvY28tZGlhbG9nPlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlhbG9nVHJhbnNhY3Rpb25QbGFubmluZ1JlcXVlc3QgZXh0ZW5kcyBEaWFsb2dUcmFuc2FjdGlvbkJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgY2xvc2VDbGljazogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby1kaWFsb2ctdHJhbnNhY3Rpb24tcGxhbm5pbmctcmVxdWVzdFwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgdmlldzogQ2FsZW5kYXJWaWV3ID0gQ2FsZW5kYXJWaWV3LldlZWtTZWxlY3RWaWV3O1xyXG4gIHB1YmxpYyBzZWxlY3RlZEV2ZW50OiBBZ2VuZGFFdmVudFBlckRheTtcclxuICBwdWJsaWMgc2VsZWN0YWJsZURheVBhcnRzOiBBZ2VuZGFFdmVudFBlckRheVtdID0gW107XHJcbiAgcHVibGljIHNlbGVjdGVkRGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgcHVibGljIHN0YXJ0RGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgcHVibGljIGVuZERhdGU6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIHB1YmxpYyBkYXlzVW50aWxGaXJzdFBsYW5EYXRlOiBzdHJpbmc7XHJcbiAgcHVibGljIGlzUm91dGVPcHRpbWl6YXRpb25Db25maWd1cmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGZpcnN0RGVsaXZlcnlEYXRlOiBEYXRlO1xyXG4gIHByaXZhdGUgX2JvRmFjdG9yeTogQnVzaW5lc3NPYmplY3RGYWN0b3J5ID0gbmV3IEJ1c2luZXNzT2JqZWN0RmFjdG9yeSgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIF9sb2NhbGU6IHN0cmluZyxcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2U6IFRyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZSxcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgc2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBkaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgaW1hZ2VTZXJ2aWNlOiBUcmFuc2FjdGlvbkltYWdlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgKSB7XHJcbiAgICBzdXBlcih0cmFuc2FjdGlvbkV2ZW50U2VydmljZSwgaWNvbkNhY2hlU2VydmljZSwgdHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZSwgaW1hZ2VTZXJ2aWNlLCBkaWN0aW9uYXJ5U2VydmljZSwgc2VydmljZSwgY2hhbmdlRGV0ZWN0b3IpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmRheXNVbnRpbEZpcnN0UGxhbkRhdGUgPSBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZS5nZXRJbnRlcm5hbERlZmF1bHRWYWx1ZShJbnRlcm5hbERlZmF1bHQuRGF5c1VudGlsRmlyc3RQbGFuRGF0ZSk7XHJcbiAgICBhd2FpdCB0aGlzLl9nZXRBbGxBdmFpbGFibGVQbGFuRGF0ZXMoKTtcclxuICAgIHRoaXMuX2dldFNlbGVjdGFibGVEYXlQYXJ0cygpLnRoZW4ocmVzdWx0ID0+IHtcclxuICAgICAgdGhpcy5zZWxlY3RhYmxlRGF5UGFydHMgPSByZXN1bHQ7XHJcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB0aGlzLmxvYWRlZCA9IHRydWU7XHJcbiAgICB9KVxyXG4gICAgYXdhaXQgdGhpcy5sb2NrVHJhbnNhY3Rpb24oKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRTZWxlY3RlZChzZWxlY3RlZDogQWdlbmRhRXZlbnRQZXJEYXkpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRFdmVudCA9IHNlbGVjdGVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNsb3NlRGlhbG9nKGV2ZW50OiBNb3VzZUV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBhd2FpdCB0aGlzLnJvbGxiYWNrKCk7XHJcbiAgICB0aGlzLmNsb3NlQ2xpY2suZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNvbmZpcm1DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRFdmVudCkge1xyXG4gICAgICAvLyBzYXZlXHJcbiAgICAgIGNvbnN0IHBsYW5SZXF1ZXN0OiBEb0RlbGl2ZXJ5UGxhbm5pbmdSZXF1ZXN0SW5wdXRQYXJhbXMgPSBuZXcgRG9EZWxpdmVyeVBsYW5uaW5nUmVxdWVzdElucHV0UGFyYW1zKCk7XHJcbiAgICAgIHBsYW5SZXF1ZXN0LnRyYW5zSWQgPSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZDtcclxuICAgICAgcGxhblJlcXVlc3QucGxhbkRhdGUgPSB0aGlzLnNlbGVjdGVkRXZlbnQuZGF0ZTtcclxuICAgICAgcGxhblJlcXVlc3QucGxhbkRheVBhcnRObyA9IHRoaXMuc2VsZWN0ZWRFdmVudC5ldmVudHNbMF0uZGF5UGFydE5vO1xyXG4gICAgICBwbGFuUmVxdWVzdC5kb0NvbW1pdCA9IFRydWVGYWxzZURiVHlwZS5UcnVlO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZS5kb0RlbGl2ZXJ5UGxhbm5pbmdSZXF1ZXN0KHBsYW5SZXF1ZXN0KS50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnByZWZlcnJlZERlbGl2ZXJ5RGF0ZSA9IHRoaXMuc2VsZWN0ZWRFdmVudC5kYXRlO1xyXG4gICAgICAgICAgdGhpcy5jbG9zZUNsaWNrLmVtaXQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfZ2V0QWxsQXZhaWxhYmxlUGxhbkRhdGVzKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgbGV0IGZpcnN0RGVsaXZlcnlEYXRlOiBEYXRlO1xyXG4gICAgY29uc3QgdmtwRnJvbUxldkRhdGU6IGFueSA9IGF3YWl0IHRoaXMudHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlLmdldEludGVybmFsRGVmYXVsdFZhbHVlKEludGVybmFsRGVmYXVsdC5QcmVmUGxhbm5pbmdGcm9tRGVsaXZlcnlEYXRlKTtcclxuICAgIC8vIFRPRE8gdGhpcyBzaG91bGQgYmUgYm9vbGVhbnMgcmlnaHQ/XHJcbiAgICBpZiAodmtwRnJvbUxldkRhdGUubG93ZXJDYXNlID09PSAnbicpIHtcclxuICAgICAgZmlyc3REZWxpdmVyeURhdGUgPSBuZXcgRGF0ZSh0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5kZWxpdmVyeURhdGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgZGVsRGF0ZTogRGF0ZSA9IG5ldyBEYXRlKGF3YWl0IHRoaXMudHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlLmdldERlbGl2ZXJ5RGF0ZU9yZGVyKHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmlkKSk7XHJcbiAgICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5wcmVmZXJyZWREZWxpdmVyeURhdGUgJiYgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8ucHJlZmVycmVkRGVsaXZlcnlEYXRlMiA9PT0gXCI+XCJcclxuICAgICAgICAmJiBkZWxEYXRlLmdldFRpbWUoKSA8PSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5wcmVmZXJyZWREZWxpdmVyeURhdGUuZ2V0VGltZSgpKSB7XHJcbiAgICAgICAgZmlyc3REZWxpdmVyeURhdGUgPSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5wcmVmZXJyZWREZWxpdmVyeURhdGU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZmlyc3REZWxpdmVyeURhdGUgPSBkZWxEYXRlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8gJiYgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25LaW5kID09PSBUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlcikge1xyXG4gICAgICBjb25zdCBpbnB1dFBhcmFtczogUmVzb3VyY2VQbGFubmluZ0lucHV0UGFyYW1zID0gbmV3IFJlc291cmNlUGxhbm5pbmdJbnB1dFBhcmFtcygpO1xyXG4gICAgICBpbnB1dFBhcmFtcy50cmFuc0lkID0gdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaWQ7XHJcbiAgICAgIGlucHV0UGFyYW1zLnJlc291cmNlS2luZCA9IFJlc291cmNlS2luZC5UcmFuc3BvcnQ7XHJcbiAgICAgIGlucHV0UGFyYW1zLmZ1bmN0aW9uS2luZCA9IEZ1bmN0aW9uS2luZC5SYXlvbjtcclxuICAgICAgaW5wdXRQYXJhbXMuc3RhcnREYXRlID0gZmlyc3REZWxpdmVyeURhdGU7XHJcbiAgICAgIGlucHV0UGFyYW1zLnN0b3BEYXRlID0gbnVsbDtcclxuICAgICAgY29uc3QgcGxhblRpbWVzOiBQbGFuVGltZXNbXSA9IGF3YWl0IHRoaXMudHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlLnJlc291cmNlUGxhbm5pbmcoaW5wdXRQYXJhbXMpO1xyXG4gICAgICBpZiAocGxhblRpbWVzICYmIHBsYW5UaW1lcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgY29uc3QgZmlyc3RQbGFuRGF0ZTogYW55ID0gdGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoUGxhblRpbWVzLCBwbGFuVGltZXNbMF0pO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbmV3IERhdGUoZmlyc3RQbGFuRGF0ZS5wbGFuRGF0ZSk7XHJcbiAgICAgICAgdGhpcy5maXJzdERlbGl2ZXJ5RGF0ZSA9IHRoaXMuc2VsZWN0ZWREYXRlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9nZXRTZWxlY3RhYmxlRGF5UGFydHMoKTogUHJvbWlzZTxBZ2VuZGFFdmVudFBlckRheVtdPiB7XHJcbiAgICB0aGlzLl9hcHBseVNlbGVjdGVkRGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcbiAgICB0aGlzLnNlbGVjdGFibGVEYXlQYXJ0cy5sZW5ndGggPSAwO1xyXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24gJiYgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25LaW5kID09PSBUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlcikge1xyXG4gICAgICBjb25zdCBldmVudHNQZXJEYXk6IEFnZW5kYUV2ZW50UGVyRGF5W10gPSBbXTtcclxuICAgICAgbGV0IHBsYW5UaW1lczogUGxhblRpbWVzW10gPSBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRUcmFuc2FjdGlvblBsYW5QZXJpb2RzKHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmlkKTtcclxuXHJcbiAgICAgIGlmIChwbGFuVGltZXMgJiYgcGxhblRpbWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBjb25zdCBsZW46IG51bWJlciA9IHBsYW5UaW1lcy5sZW5ndGg7XHJcbiAgICAgICAgbGV0IGZpcnN0RGF5Rm91bmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICAgIGNvbnN0IHBsYW5UaW1lOiBhbnkgPSB0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShQbGFuVGltZXMsIHBsYW5UaW1lc1tpXSk7XHJcbiAgICAgICAgICBldmVudHNQZXJEYXkucHVzaCh0aGlzLl9jcmVhdGVBZ2VuZGFFdmVudFBlckRheUZyb21QbGFuVGltZXMocGxhblRpbWUpKTtcclxuICAgICAgICAgIGlmICghZmlyc3REYXlGb3VuZCAmJiBwbGFuVGltZS5kYXlQYXJ0cyAmJiBwbGFuVGltZS5kYXlQYXJ0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gcGxhblRpbWUucGxhbkRhdGU7XHJcbiAgICAgICAgICAgIGZpcnN0RGF5Rm91bmQgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RhYmxlRGF5UGFydHMgPSBldmVudHNQZXJEYXk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2FwcGx5U2VsZWN0ZWREYXRlKGRhdGU6IERhdGUsIGluaXRpYWw6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgaWYgKGRhdGUpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCB1c2VJbml0aWFsOiBib29sZWFuID0gaW5pdGlhbCB8fCAodGhpcy5maXJzdERlbGl2ZXJ5RGF0ZSAmJiB0aGlzLmZpcnN0RGVsaXZlcnlEYXRlLmdldFRpbWUoKSA+IHRoaXMuc2VsZWN0ZWREYXRlLmdldFRpbWUoKSk7XHJcbiAgICB0aGlzLnN0YXJ0RGF0ZSA9IHVzZUluaXRpYWwgPyB0aGlzLmZpcnN0RGVsaXZlcnlEYXRlIDogdGhpcy5fZ2V0Rmlyc3REYXlPZldlZWsodGhpcy5zZWxlY3RlZERhdGUpO1xyXG4gICAgdGhpcy5lbmREYXRlID0gdGhpcy5fZ2V0TGFzdERheU9mV2Vlayh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVBZ2VuZGFFdmVudFBlckRheUZyb21QbGFuVGltZXMocGxhblRpbWVzOiBQbGFuVGltZXMpOiBBZ2VuZGFFdmVudFBlckRheSB7XHJcbiAgICBjb25zdCBhZ2VuZGFFdmVudDogQWdlbmRhRXZlbnRQZXJEYXkgPSBuZXcgQWdlbmRhRXZlbnRQZXJEYXkoKTtcclxuICAgIGFnZW5kYUV2ZW50LmRhdGUgPSBuZXcgRGF0ZShwbGFuVGltZXMucGxhbkRhdGUpO1xyXG4gICAgY29uc3QgZXZlbnRzOiBBZ2VuZGFFdmVudFtdID0gW107XHJcbiAgICBhZ2VuZGFFdmVudC5ldmVudHMgPSBldmVudHM7XHJcbiAgICBjb25zdCBsZW46IG51bWJlciA9IHBsYW5UaW1lcy5kYXlQYXJ0cy5sZW5ndGg7XHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgY29uc3QgZGF5UGFydDogUGxhbkRheXBhcnQgPSBwbGFuVGltZXMuZGF5UGFydHNbaV07XHJcbiAgICAgIGlmIChkYXlQYXJ0LmF2YWlsYWJsZSkge1xyXG4gICAgICAgIGV2ZW50cy5wdXNoKHRoaXMuX2NyZWF0ZUFnZW5kYUV2ZW50RnJvbURheVBhcnQoZGF5UGFydCwgYWdlbmRhRXZlbnQuZGF0ZSkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYWdlbmRhRXZlbnQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVBZ2VuZGFFdmVudEZyb21EYXlQYXJ0KGRheVBhcnQ6IFBsYW5EYXlwYXJ0LCBkYXRlOiBEYXRlKTogQWdlbmRhRXZlbnQge1xyXG4gICAgY29uc3QgZXZlbnQ6IEFnZW5kYUV2ZW50ID0gbmV3IEFnZW5kYUV2ZW50KCk7XHJcbiAgICBldmVudC5pZCA9IGRheVBhcnQuZGF5UGFydElkO1xyXG4gICAgZXZlbnQuZGF5UGFydE5vID0gZGF5UGFydC5kYXlQYXJ0Tm87XHJcbiAgICBldmVudC5jaGVja2VkID0gZGF5UGFydC5hY3RpdmU7XHJcbiAgICBldmVudC5zaG93Q2hlY2tib3ggPSB0cnVlO1xyXG4gICAgZXZlbnQuZGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgY29uc3QgZnJvbTogRGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgZnJvbS5zZXRIb3VycyhkYXlQYXJ0LnRpbWVIb3VyU3RhcnQpO1xyXG4gICAgZXZlbnQuZnJvbSA9IGZyb207XHJcbiAgICBjb25zdCB0bzogRGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgdG8uc2V0SG91cnMoZGF5UGFydC50aW1lSG91clN0b3ApO1xyXG4gICAgZXZlbnQudG8gPSB0bztcclxuICAgIGV2ZW50LmZyb21TdHJpbmcgPSBldmVudC5mcm9tLnRvTG9jYWxlVGltZVN0cmluZyh0aGlzLl9sb2NhbGUsIHtob3VyOiBcIjItZGlnaXRcIiwgbWludXRlOiBcIjItZGlnaXRcIn0pO1xyXG4gICAgZXZlbnQudG9TdHJpbmcgPSBldmVudC50by50b0xvY2FsZVRpbWVTdHJpbmcodGhpcy5fbG9jYWxlLCB7aG91cjogXCIyLWRpZ2l0XCIsIG1pbnV0ZTogXCIyLWRpZ2l0XCJ9KTtcclxuICAgIGV2ZW50LmZyb21Ub1JlcHJlc2VudGF0aW9uID0gZXZlbnQuZnJvbVN0cmluZyArIFwiIC0gXCIgKyBldmVudC50b1N0cmluZztcclxuICAgIGV2ZW50LnRpbWVXaW5kb3cgPSBkYXlQYXJ0Lm9ubGluZVBsYW5uaW5nO1xyXG4gICAgZXZlbnQuZGVzY3JpcHRpb24gPSBkYXlQYXJ0LmRheVBhcnREZXNjcmlwdGlvbjtcclxuICAgIHJldHVybiBldmVudDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldEZpcnN0RGF5T2ZXZWVrKGRhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgIGlmICghdGhpcy5fdmFsaWREYXRlKGRhdGUpKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgbGV0IGZpcnN0RGF5OiBEYXRlO1xyXG4gICAgY29uc3QgZGF5T2ZXZWVrOiBudW1iZXIgPSBkYXRlLmdldERheSgpIHx8IDc7XHJcbiAgICBpZiAoZGF5T2ZXZWVrID09PSAxKSB7XHJcbiAgICAgIGZpcnN0RGF5ID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBmaXJzdERheSA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgICBmaXJzdERheS5zZXRIb3VycygtMjQgKiAoZGF5T2ZXZWVrIC0gMSkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpcnN0RGF5O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZ2V0TGFzdERheU9mV2VlayhkYXRlOiBEYXRlKTogRGF0ZSB7XHJcbiAgICBjb25zdCBmaXJzdERheU9mV2VlazogRGF0ZSA9IHRoaXMuX2dldEZpcnN0RGF5T2ZXZWVrKGRhdGUpO1xyXG4gICAgY29uc3QgbGFzdERheU9mV2VlazogRGF0ZSA9IG5ldyBEYXRlKGZpcnN0RGF5T2ZXZWVrKTtcclxuICAgIGxhc3REYXlPZldlZWsuc2V0RGF0ZShmaXJzdERheU9mV2Vlay5nZXREYXRlKCkgKyA2KTtcclxuICAgIHJldHVybiBsYXN0RGF5T2ZXZWVrO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdmFsaWREYXRlKGRhdGU6IERhdGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBkYXRlICE9PSBudWxsICYmIGRhdGUgIT09IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2FkZERheXMoZGF0ZTogRGF0ZSwgZGF5czogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGUgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIHJlc3VsdC5zZXREYXRlKHJlc3VsdC5nZXREYXRlKCkgKyBkYXlzKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -32,6 +32,18 @@ export class TransactionHeaderDeliveryComponent extends TransactionBaseComponent
32
32
  return true;
33
33
  }
34
34
  ngOnInit() {
35
+ const _super = Object.create(null, {
36
+ ngOnInit: { get: () => super.ngOnInit }
37
+ });
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ _super.ngOnInit.call(this);
40
+ });
41
+ }
42
+ transactionSet() {
43
+ super.transactionSet();
44
+ this.checkPreferredPlanning();
45
+ }
46
+ checkPreferredPlanning() {
35
47
  return __awaiter(this, void 0, void 0, function* () {
36
48
  if (this.transaction && this.transaction.transactionInfo.id) {
37
49
  this.showPreferredPlanning = yield this.transactionConnectorService.getPAStatusFromTransaction(this.transaction.transactionInfo.id);
@@ -168,4 +180,4 @@ TransactionHeaderDeliveryComponent.ctorParameters = () => [
168
180
  TransactionHeaderDeliveryComponent.propDecorators = {
169
181
  showClass: [{ type: HostBinding, args: ["class.co-transaction-header-delivery",] }]
170
182
  };
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24taGVhZGVyLWRlbGl2ZXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLWhlYWRlci90cmFuc2FjdGlvbi1oZWFkZXItZGVsaXZlcnkvdHJhbnNhY3Rpb24taGVhZGVyLWRlbGl2ZXJ5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFHWCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdDLE9BQU8sRUFBQyw4Q0FBOEMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzVGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUMvRSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUMzRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUNoSCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQXFGbkYsTUFBTSxPQUFPLGtDQUFtQyxTQUFRLHdCQUF3QjtJQWE5RSxZQUNTLDJCQUF3RCxFQUN4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QUM7Z0JBQ0YsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQTFGTywyQkFBMkI7WUFDM0IsdUJBQXVCO1lBQ3ZCLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIscUNBQXFDO1lBQ3JDLGlCQUFpQjtZQUNqQix1QkFBdUI7WUFsQjdCLGlCQUFpQjs7O3dCQTBHaEIsV0FBVyxTQUFDLHNDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5qZWN0LFxyXG4gIExPQ0FMRV9JRCwgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50fSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge0ljb259IGZyb20gJy4uLy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuaW1wb3J0IHtTQ1JFRU5fQ09ORklHX0FEQVBURVJfQ09NUE9ORU5UX0lOVEVSRkFDRV9OQU1FfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcclxuaW1wb3J0IHtJbnRlcm5hbFBhcmFtfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS9pbnRlcm5hbC1wYXJhbS5lbnVtXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1jb25uZWN0b3Iuc2VydmljZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1ldmVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZVwiO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkltYWdlU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24taW1hZ2Uuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tdHJhbnNhY3Rpb24taGVhZGVyLWRlbGl2ZXJ5XCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxjby10cmFuc2FjdGlvbi1oZWFkZXItYmxvY2tcclxuICAgICAgW2ZpcnN0QmxvY2tUZW1wbGF0ZV09XCJmaXJzdEJsb2NrXCJcclxuICAgICAgW3NlY29uZEJsb2NrVGVtcGxhdGVdPVwic2Vjb25kQmxvY2tcIlxyXG4gICAgICBbdGhpcmRCbG9ja1RlbXBsYXRlXT1cInRoaXJkQmxvY2tcIlxyXG4gICAgICBbaGlkZGVuQmxvY2tUZW1wbGF0ZV09XCJoaWRkZW5CbG9ja1wiXHJcbiAgICAgIChoZWFkZXJDbGljayk9XCJzaG93RGlhbG9nID0gdHJ1ZVwiXHJcbiAgICA+XHJcbiAgICA8L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1ibG9jaz5cclxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyQmxvY2s+XHJcblxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSAjZmlyc3RCbG9jaz5cclxuICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWhlYWRlci1ibG9jay1yb3dcIiA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBsYW5uaW5nLXJlcXVlc3QtYnV0dG9uLXdyYXBwZXJcIiAqbmdJZj1cInNob3dQcmVmZXJyZWRQbGFubmluZ1wiXHJcbiAgICAgICAgICAgICAoY2xpY2spPVwiY2hlY2tDYW5QbGFuRGVsaXZlcnkoKVwiXHJcbiAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5IZWFkZXJEZWxpdmVyeVByZWZlcmVkSGVhZGVyXCJcclxuICAgICAgICAgICAgIHNjcmVlbkNvbmZpZ05hdGl2ZUVsZW1lbnQ+XHJcbiAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cInBsYW5uaW5nLXJlcXVlc3QtYnV0dG9uXCIgW2NsYXNzLmNvLXRyYW5zYWN0aW9uLWNoZWNrXT1cInRyYW5zYWN0aW9uSW5mby5kZWxpdmVyeURhdGVEZWZpbml0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ2FsZW5kYXJEYXlSZWd1bGFyKVwiPjwvY28taWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWRlbGl2ZXJ5ZGF0ZS13cmFwcGVyXCIgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuSGVhZGVyRGVsaXZlcnlEYXRlSGVhZGVyXCJcclxuICAgICAgICAgICAgIHNjcmVlbkNvbmZpZ05hdGl2ZUVsZW1lbnQ+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWRlbGl2ZXJ5LWRlbGl2ZXJ5ZGF0ZS1sYWJlbCBjby10cmFuc2FjdGlvbi1sYWJlbFwiXHJcbiAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCInREVMSVZFUllfREFURScgfCBsb2NhbGl6ZVwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1kZWxpdmVyeS1kZWxpdmVyeWRhdGUtY29udGVudFwiIFtjbGFzcy5jbG9zZWRdPVwidHJhbnNhY3Rpb25JbmZvLmRlbGl2ZXJ5RGF0ZURlZmluaXRpdmVcIj5cclxuICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1kZWxpdmVyeS1kYXRlIGNsYXNzPVwiaGVhZGVyLWRlbGl2ZXJ5LWRlbGl2ZXJ5ZGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5IZWFkZXJEZWxpdmVyeURhdGVIZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RlZmF1bHRFZGl0TW9kZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93TGFiZWxdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1oZWFkZXItZGVsaXZlcnktZGF0ZT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgI3NlY29uZEJsb2NrPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWRlbGl2ZXJkYXRlLWRlZmluaXRpdmUtd3JhcHBlclwiXHJcbiAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuSGVhZGVyRGVsaXZlcnlEZWZpbml0aXZlSGVhZGVyXCIgc2NyZWVuQ29uZmlnTmF0aXZlRWxlbWVudD5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLWRlbGl2ZXJ5ZGF0ZS1kZWZpbml0aXZlLWJ1dHRvblxyXG4gICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuSGVhZGVyRGVsaXZlcnlEZWZpbml0aXZlSGVhZGVyXCJcclxuICAgICAgICAgIFtjbGFzcy5jbG9zZWRdPVwidHJhbnNhY3Rpb25JbmZvLmRlbGl2ZXJ5RGF0ZURlZmluaXRpdmVcIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIj5cclxuICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1kZWxpdmVyeWRhdGUtZGVmaW5pdGl2ZS1idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSAjdGhpcmRCbG9jaz5cclxuXHJcbiAgICAgIDxjby10cmFuc2FjdGlvbi1oZWFkZXItZGVsaXZlcnktbWV0aG9kLWJ1dHRvbiBjbGFzcz1cImhlYWRlci1kZWxpdmVyeS1tZXRob2RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuSGVhZGVyRGVsaXZlcnlNZXRob2RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICA+PC9jby10cmFuc2FjdGlvbi1oZWFkZXItZGVsaXZlcnktbWV0aG9kLWJ1dHRvbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgI2hpZGRlbkJsb2NrPlxyXG4gICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLXBhcnRpYWwtZGVsaXZlcnkgY2xhc3M9XCJ0cmFuc2FjdGlvbi1oZWFkZXItcGFydGlhbC1kZWxpdmVyeSBjby10cmFuc2FjdGlvbi1sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5IZWFkZXJEZWxpdmVyeVBhcnRpYWxIZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIj48L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1wYXJ0aWFsLWRlbGl2ZXJ5PlxyXG4gICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLXByZWZlcnJlZC1kZWxpdmVyeS1kYXRlIGNsYXNzPVwiaGVhZGVyLWRlbGl2ZXJ5LWRlbGl2ZXJ5ZGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0RWRpdE1vZGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93TGFiZWxdPVwiZmFsc2VcIlxyXG4gICAgICA+PC9jby10cmFuc2FjdGlvbi1oZWFkZXItcHJlZmVycmVkLWRlbGl2ZXJ5LWRhdGU+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cCAqbmdJZj1cInNob3dEaWFsb2dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWN0aXZlQ2F0ZWdvcnlEZXNjcmlwdGlvbl09XCInREVMSVZFUllfSU5GT1JNQVRJT04nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlbGF0aW9uXT1cInJlbGF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uXT1cInRyYW5zYWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb3NlQ2xpY2spPVwic2hvd0RpYWxvZyA9IGZhbHNlXCI+PC9jby10cmFuc2FjdGlvbi1oZWFkZXItcG9wdXA+XHJcblxyXG4gICAgPGNvLWRpYWxvZy10cmFuc2FjdGlvbi1wbGFubmluZy1yZXF1ZXN0XHJcbiAgICAgICpuZ0lmPVwic2hvd1BsYW5uaW5nRGlhbG9nXCJcclxuICAgICAgW3RyYW5zYWN0aW9uXT1cInRyYW5zYWN0aW9uXCJcclxuICAgICAgKGNsb3NlQ2xpY2spPVwic2hvd1BsYW5uaW5nRGlhbG9nID0gZmFsc2VcIj5cclxuICAgIDwvY28tZGlhbG9nLXRyYW5zYWN0aW9uLXBsYW5uaW5nLXJlcXVlc3Q+XHJcbiAgYCxcclxuICBwcm92aWRlcnM6IFt7XHJcbiAgICBwcm92aWRlOiBTQ1JFRU5fQ09ORklHX0FEQVBURVJfQ09NUE9ORU5UX0lOVEVSRkFDRV9OQU1FLFxyXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHJhbnNhY3Rpb25IZWFkZXJEZWxpdmVyeUNvbXBvbmVudClcclxuICB9XSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkhlYWRlckRlbGl2ZXJ5Q29tcG9uZW50IGV4dGVuZHMgVHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10cmFuc2FjdGlvbi1oZWFkZXItZGVsaXZlcnlcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd0RpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93UGxhbm5pbmdEaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgY2FuUGxhbkRlbGl2ZXJ5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dQcmVmZXJyZWRQbGFubmluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2U6IFRyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZSxcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgc2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBkaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgaW1hZ2VTZXJ2aWNlOiBUcmFuc2FjdGlvbkltYWdlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgKSB7XHJcbiAgICBzdXBlcih0cmFuc2FjdGlvbkV2ZW50U2VydmljZSwgaWNvbkNhY2hlU2VydmljZSwgdHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZSwgaW1hZ2VTZXJ2aWNlLCBkaWN0aW9uYXJ5U2VydmljZSwgc2VydmljZSwgY2hhbmdlRGV0ZWN0b3IpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbiAmJiB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZCkge1xyXG4gICAgICB0aGlzLnNob3dQcmVmZXJyZWRQbGFubmluZyA9IGF3YWl0IHRoaXMudHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlLmdldFBBU3RhdHVzRnJvbVRyYW5zYWN0aW9uKHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmlkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGVja0NhblBsYW5EZWxpdmVyeSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uICYmIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmlkKSB7XHJcbiAgICAgIC8qKlxyXG4gICAgICAgKlxyXG4gICAgICAgKiBXZSBvbmx5IGNhbiB1c2UgJ3Zvb3JrZXVyc3BsYW5uaW5nJyB3aGVuXHJcbiAgICAgICAqXHJcbiAgICAgICAqIFRoZSBvcmRlciBoYXMgYSBQQSBzdGF0dXNcclxuICAgICAgICogZGVsaXZlcnlEYXRlRGVmaW5pdGl2ZSBjYW4gbm90IGJlIHRydWVcclxuICAgICAgICogdHJhbnNhY3Rpb25EZWZpbml0aXZlIG5lZWQgdGUgYmUgdHJ1ZSBvciBQbGFuTm90RmluYWwgaXMgSlxyXG4gICAgICAgKlxyXG4gICAgICAgKiAqL1xyXG4gICAgICAvLyBjaGVjayBQQSBzdGF0dXNcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UuZ2V0UEFTdGF0dXNGcm9tVHJhbnNhY3Rpb24odGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaWQpLnRoZW4ocGFTdGF0dXMgPT4ge1xyXG4gICAgICAgIGlmIChwYVN0YXR1cyAmJiB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5kZWxpdmVyeURhdGVEZWZpbml0aXZlICE9PSB0cnVlKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25EZWZpbml0aXZlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FuUGxhbkRlbGl2ZXJ5ID0gdHJ1ZVxyXG4gICAgICAgICAgICB0aGlzLnNob3dQbGFubmluZ0RpYWxvZyA9IHRydWU7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRJbnRlcm5hbFBhcmFtZXRlcihJbnRlcm5hbFBhcmFtLlBsYW5Ob3RGaW5hbCkudGhlbihyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgdGhpcy5jYW5QbGFuRGVsaXZlcnkgPSByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93UGxhbm5pbmdEaWFsb2cgPSByZXN1bHQ7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmNhblBsYW5EZWxpdmVyeSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24taGVhZGVyLWRlbGl2ZXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLWhlYWRlci90cmFuc2FjdGlvbi1oZWFkZXItZGVsaXZlcnkvdHJhbnNhY3Rpb24taGVhZGVyLWRlbGl2ZXJ5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFHWCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdDLE9BQU8sRUFBQyw4Q0FBOEMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzVGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUMvRSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUMzRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUNoSCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQXNGbkYsTUFBTSxPQUFPLGtDQUFtQyxTQUFRLHdCQUF3QjtJQWE5RSxZQUNTLDJCQUF3RCxFQUN4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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEVUO2dCQUNELFNBQVMsRUFBRSxDQUFDO3dCQUNWLE9BQU8sRUFBRSw4Q0FBOEM7d0JBQ3ZELFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0NBQWtDLENBQUM7cUJBQ2xFLENBQUM7Z0JBQ0YsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQTNGTywyQkFBMkI7WUFDM0IsdUJBQXVCO1lBQ3ZCLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIscUNBQXFDO1lBQ3JDLGlCQUFpQjtZQUNqQix1QkFBdUI7WUFsQjdCLGlCQUFpQjs7O3dCQTJHaEIsV0FBVyxTQUFDLHNDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5qZWN0LFxyXG4gIExPQ0FMRV9JRCwgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50fSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge0ljb259IGZyb20gJy4uLy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuaW1wb3J0IHtTQ1JFRU5fQ09ORklHX0FEQVBURVJfQ09NUE9ORU5UX0lOVEVSRkFDRV9OQU1FfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcclxuaW1wb3J0IHtJbnRlcm5hbFBhcmFtfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS9pbnRlcm5hbC1wYXJhbS5lbnVtXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1jb25uZWN0b3Iuc2VydmljZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1ldmVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZVwiO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkltYWdlU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24taW1hZ2Uuc2VydmljZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWluZm8tcmVzcG9uc2UuYm9cIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLXRyYW5zYWN0aW9uLWhlYWRlci1kZWxpdmVyeVwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLWJsb2NrXHJcbiAgICAgIFtmaXJzdEJsb2NrVGVtcGxhdGVdPVwiZmlyc3RCbG9ja1wiXHJcbiAgICAgIFtzZWNvbmRCbG9ja1RlbXBsYXRlXT1cInNlY29uZEJsb2NrXCJcclxuICAgICAgW3RoaXJkQmxvY2tUZW1wbGF0ZV09XCJ0aGlyZEJsb2NrXCJcclxuICAgICAgW2hpZGRlbkJsb2NrVGVtcGxhdGVdPVwiaGlkZGVuQmxvY2tcIlxyXG4gICAgICAoaGVhZGVyQ2xpY2spPVwic2hvd0RpYWxvZyA9IHRydWVcIlxyXG4gICAgPlxyXG4gICAgPC9jby10cmFuc2FjdGlvbi1oZWFkZXItYmxvY2s+XHJcbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlckJsb2NrPlxyXG5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgI2ZpcnN0QmxvY2s+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1oZWFkZXItYmxvY2stcm93XCIgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwbGFubmluZy1yZXF1ZXN0LWJ1dHRvbi13cmFwcGVyXCIgKm5nSWY9XCJzaG93UHJlZmVycmVkUGxhbm5pbmdcIlxyXG4gICAgICAgICAgICAgKGNsaWNrKT1cImNoZWNrQ2FuUGxhbkRlbGl2ZXJ5KClcIlxyXG4gICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuSGVhZGVyRGVsaXZlcnlQcmVmZXJlZEhlYWRlclwiXHJcbiAgICAgICAgICAgICBzY3JlZW5Db25maWdOYXRpdmVFbGVtZW50PlxyXG4gICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJwbGFubmluZy1yZXF1ZXN0LWJ1dHRvblwiIFtjbGFzcy5jby10cmFuc2FjdGlvbi1jaGVja109XCJ0cmFuc2FjdGlvbkluZm8uZGVsaXZlcnlEYXRlRGVmaW5pdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkNhbGVuZGFyRGF5UmVndWxhcilcIj48L2NvLWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1kZWxpdmVyeWRhdGUtd3JhcHBlclwiIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkhlYWRlckRlbGl2ZXJ5RGF0ZUhlYWRlclwiXHJcbiAgICAgICAgICAgICBzY3JlZW5Db25maWdOYXRpdmVFbGVtZW50PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1kZWxpdmVyeS1kZWxpdmVyeWRhdGUtbGFiZWwgY28tdHJhbnNhY3Rpb24tbGFiZWxcIlxyXG4gICAgICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwiJ0RFTElWRVJZX0RBVEUnIHwgbG9jYWxpemVcIj48L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItZGVsaXZlcnktZGVsaXZlcnlkYXRlLWNvbnRlbnRcIiBbY2xhc3MuY2xvc2VkXT1cInRyYW5zYWN0aW9uSW5mby5kZWxpdmVyeURhdGVEZWZpbml0aXZlXCI+XHJcbiAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1oZWFkZXItZGVsaXZlcnktZGF0ZSBjbGFzcz1cImhlYWRlci1kZWxpdmVyeS1kZWxpdmVyeWRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuSGVhZGVyRGVsaXZlcnlEYXRlSGVhZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb25JbmZvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0RWRpdE1vZGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0xhYmVsXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24taGVhZGVyLWRlbGl2ZXJ5LWRhdGU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICNzZWNvbmRCbG9jaz5cclxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1kZWxpdmVyZGF0ZS1kZWZpbml0aXZlLXdyYXBwZXJcIlxyXG4gICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkhlYWRlckRlbGl2ZXJ5RGVmaW5pdGl2ZUhlYWRlclwiIHNjcmVlbkNvbmZpZ05hdGl2ZUVsZW1lbnQ+XHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1kZWxpdmVyeWRhdGUtZGVmaW5pdGl2ZS1idXR0b25cclxuICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkhlYWRlckRlbGl2ZXJ5RGVmaW5pdGl2ZUhlYWRlclwiXHJcbiAgICAgICAgICBbY2xhc3MuY2xvc2VkXT1cInRyYW5zYWN0aW9uSW5mby5kZWxpdmVyeURhdGVEZWZpbml0aXZlXCJcclxuICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb25JbmZvXCI+XHJcbiAgICAgICAgPC9jby10cmFuc2FjdGlvbi1oZWFkZXItZGVsaXZlcnlkYXRlLWRlZmluaXRpdmUtYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgI3RoaXJkQmxvY2s+XHJcblxyXG4gICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLWRlbGl2ZXJ5LW1ldGhvZC1idXR0b24gY2xhc3M9XCJoZWFkZXItZGVsaXZlcnktbWV0aG9kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkhlYWRlckRlbGl2ZXJ5TWV0aG9kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb25JbmZvXCJcclxuICAgICAgPjwvY28tdHJhbnNhY3Rpb24taGVhZGVyLWRlbGl2ZXJ5LW1ldGhvZC1idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICNoaWRkZW5CbG9jaz5cclxuICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1wYXJ0aWFsLWRlbGl2ZXJ5IGNsYXNzPVwidHJhbnNhY3Rpb24taGVhZGVyLXBhcnRpYWwtZGVsaXZlcnkgY28tdHJhbnNhY3Rpb24tbGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuSGVhZGVyRGVsaXZlcnlQYXJ0aWFsSGVhZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb25JbmZvXCI+PC9jby10cmFuc2FjdGlvbi1oZWFkZXItcGFydGlhbC1kZWxpdmVyeT5cclxuICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1wcmVmZXJyZWQtZGVsaXZlcnktZGF0ZSBjbGFzcz1cImhlYWRlci1kZWxpdmVyeS1kZWxpdmVyeWRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb25JbmZvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVmYXVsdEVkaXRNb2RlXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0xhYmVsXT1cImZhbHNlXCJcclxuICAgICAgPjwvY28tdHJhbnNhY3Rpb24taGVhZGVyLXByZWZlcnJlZC1kZWxpdmVyeS1kYXRlPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxjby10cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAgKm5nSWY9XCJzaG93RGlhbG9nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FjdGl2ZUNhdGVnb3J5RGVzY3JpcHRpb25dPVwiJ0RFTElWRVJZX0lORk9STUFUSU9OJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWxhdGlvbl09XCJyZWxhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbG9zZUNsaWNrKT1cInNob3dEaWFsb2cgPSBmYWxzZVwiPjwvY28tdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwPlxyXG5cclxuICAgIDxjby1kaWFsb2ctdHJhbnNhY3Rpb24tcGxhbm5pbmctcmVxdWVzdFxyXG4gICAgICAqbmdJZj1cInNob3dQbGFubmluZ0RpYWxvZ1wiXHJcbiAgICAgIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvblwiXHJcbiAgICAgIChjbG9zZUNsaWNrKT1cInNob3dQbGFubmluZ0RpYWxvZyA9IGZhbHNlXCI+XHJcbiAgICA8L2NvLWRpYWxvZy10cmFuc2FjdGlvbi1wbGFubmluZy1yZXF1ZXN0PlxyXG4gIGAsXHJcbiAgcHJvdmlkZXJzOiBbe1xyXG4gICAgcHJvdmlkZTogU0NSRUVOX0NPTkZJR19BREFQVEVSX0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRSxcclxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRyYW5zYWN0aW9uSGVhZGVyRGVsaXZlcnlDb21wb25lbnQpXHJcbiAgfV0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25IZWFkZXJEZWxpdmVyeUNvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tdHJhbnNhY3Rpb24taGVhZGVyLWRlbGl2ZXJ5XCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dEaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd1BsYW5uaW5nRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGNhblBsYW5EZWxpdmVyeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93UHJlZmVycmVkUGxhbm5pbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlOiBUcmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25FdmVudFNlcnZpY2U6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLFxyXG4gICAgcHVibGljIHNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGltYWdlU2VydmljZTogVHJhbnNhY3Rpb25JbWFnZVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICkge1xyXG4gICAgc3VwZXIodHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsIGljb25DYWNoZVNlcnZpY2UsIHRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsIGltYWdlU2VydmljZSwgZGljdGlvbmFyeVNlcnZpY2UsIHNlcnZpY2UsIGNoYW5nZURldGVjdG9yKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvblNldCgpIHtcclxuICAgc3VwZXIudHJhbnNhY3Rpb25TZXQoKTtcclxuICAgdGhpcy5jaGVja1ByZWZlcnJlZFBsYW5uaW5nKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY2hlY2tQcmVmZXJyZWRQbGFubmluZygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uICYmIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmlkKSB7XHJcbiAgICAgIHRoaXMuc2hvd1ByZWZlcnJlZFBsYW5uaW5nID0gYXdhaXQgdGhpcy50cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UuZ2V0UEFTdGF0dXNGcm9tVHJhbnNhY3Rpb24odGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoZWNrQ2FuUGxhbkRlbGl2ZXJ5KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24gJiYgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaWQpIHtcclxuICAgICAgLyoqXHJcbiAgICAgICAqXHJcbiAgICAgICAqIFdlIG9ubHkgY2FuIHVzZSAndm9vcmtldXJzcGxhbm5pbmcnIHdoZW5cclxuICAgICAgICpcclxuICAgICAgICogVGhlIG9yZGVyIGhhcyBhIFBBIHN0YXR1c1xyXG4gICAgICAgKiBkZWxpdmVyeURhdGVEZWZpbml0aXZlIGNhbiBub3QgYmUgdHJ1ZVxyXG4gICAgICAgKiB0cmFuc2FjdGlvbkRlZmluaXRpdmUgbmVlZCB0ZSBiZSB0cnVlIG9yIFBsYW5Ob3RGaW5hbCBpcyBKXHJcbiAgICAgICAqXHJcbiAgICAgICAqICovXHJcbiAgICAgIC8vIGNoZWNrIFBBIHN0YXR1c1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZS5nZXRQQVN0YXR1c0Zyb21UcmFuc2FjdGlvbih0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZCkudGhlbihwYVN0YXR1cyA9PiB7XHJcbiAgICAgICAgaWYgKHBhU3RhdHVzICYmIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmRlbGl2ZXJ5RGF0ZURlZmluaXRpdmUgIT09IHRydWUpIHtcclxuICAgICAgICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbkRlZmluaXRpdmUpIHtcclxuICAgICAgICAgICAgdGhpcy5jYW5QbGFuRGVsaXZlcnkgPSB0cnVlXHJcbiAgICAgICAgICAgIHRoaXMuc2hvd1BsYW5uaW5nRGlhbG9nID0gdHJ1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldEludGVybmFsUGFyYW1ldGVyKEludGVybmFsUGFyYW0uUGxhbk5vdEZpbmFsKS50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgICB0aGlzLmNhblBsYW5EZWxpdmVyeSA9IHJlc3VsdDtcclxuICAgICAgICAgICAgICB0aGlzLnNob3dQbGFubmluZ0RpYWxvZyA9IHJlc3VsdDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY2FuUGxhbkRlbGl2ZXJ5ID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -14,6 +14,7 @@ import { ReportingDocumentEmailSignDocBaseRequest } from '@colijnit/mainapi/buil
14
14
  import { ReportingDocumentPrintSignDocBaseRequest } from '@colijnit/mainapi/build/model/reporting-document-print-sign-doc-base-request';
15
15
  import { CoDocument } from '@colijnit/mainapi/build/model/co-document';
16
16
  import { SendMethodType } from "@colijnit/mainapi/build/enum/send-method-type.enum";
17
+ import { TransactionLineType } from "@colijnit/transactionapi/build/enum/transaction-line-type.enum";
17
18
  export class TransactionQuickAccessOrderDeliveryComponent extends TransactionQuickAccessSendMethodBaseComponent {
18
19
  constructor() {
19
20
  super(...arguments);
@@ -116,7 +117,7 @@ export class TransactionQuickAccessOrderDeliveryComponent extends TransactionQui
116
117
  }
117
118
  _prepareRequest(request) {
118
119
  let selectedLines = this.transactionLines.filter((line) => {
119
- return !this.transactionInfo.allowPartialDelivery ? true : line.selected && line.articleLineStatus.quantityToDeliver > 0;
120
+ return (line.lineType !== TransactionLineType.TextLine && (!this.transactionInfo.allowPartialDelivery ? true : line.selected && line.articleLineStatus.quantityToDeliver > 0));
120
121
  });
121
122
  if (this.deliveryCostLines) {
122
123
  const deliveryCostLines = this.deliveryCostLines.filter((line) => {
@@ -217,4 +218,4 @@ TransactionQuickAccessOrderDeliveryComponent.propDecorators = {
217
218
  sendDocumentsComponent: [{ type: ViewChild, args: [TransactionSendDocumentsComponent,] }],
218
219
  showClass: [{ type: HostBinding, args: ["class.co-transaction-quick-access-order-delivery",] }]
219
220
  };
220
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW9yZGVyLWRlbGl2ZXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy90cmFuc2FjdGlvbi1xdWljay1hY2Nlc3Mtb3JkZXItZGVsaXZlcnkvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW9yZGVyLWRlbGl2ZXJ5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsV0FBVyxFQUFxQixTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFDLDZDQUE2QyxFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFHckgsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sa0VBQWtFLENBQUM7QUFDMUcsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sa0VBQWtFLENBQUM7QUFDMUcsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFFdEcsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sNEVBQTRFLENBQUM7QUFDM0gsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0sdUVBQXVFLENBQUM7QUFDeEgsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sbUVBQW1FLENBQUM7QUFDbEgsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sMkVBQTJFLENBQUM7QUFDM0gsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sMkVBQTJFLENBQUM7QUFDM0gsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0seUVBQXlFLENBQUM7QUFDdkgsT0FBTyxFQUFDLHdDQUF3QyxFQUFDLE1BQU0sOEVBQThFLENBQUM7QUFDdEksT0FBTyxFQUFDLHdDQUF3QyxF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QStCLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7WUE3TkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw0Q0FBNEM7Z0JBQ3RELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkNUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7cUNBR0UsU0FBUyxTQUFDLGlDQUFpQzt3QkFHM0MsV0FBVyxTQUFDLGtEQUFrRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uUXVpY2tBY2Nlc3NTZW5kTWV0aG9kQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLXNlbmQtbWV0aG9kLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHtSZXBvcnRMYXlvdXRTZWxlY3Rpb25QcmludH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0LWxheW91dC1zZWxlY3Rpb24tcHJpbnQuYm8nO1xyXG5pbXBvcnQge1JlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnQtbGF5b3V0LXNlbGVjdGlvbi1lbWFpbC5ibyc7XHJcbmltcG9ydCB7RW1haWxEZWxpdmVyeU5vdGVSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZW1haWwtZGVsaXZlcnktbm90ZS1yZXF1ZXN0JztcclxuaW1wb3J0IHtQcmludERlbGl2ZXJ5Tm90ZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wcmludC1kZWxpdmVyeS1ub3RlLXJlcXVlc3QnO1xyXG5pbXBvcnQge1BkZkRlbGl2ZXJ5Tm90ZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wZGYtZGVsaXZlcnktbm90ZS1yZXF1ZXN0JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1pbmZvLmJvJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVSZXBvcnRpbmdSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1yZXBvcnRpbmctcmVxdWVzdC5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZW5kRG9jdW1lbnRzQ29tcG9uZW50fSBmcm9tICcuLi8uLi90cmFuc2FjdGlvbi1zZW5kLWRvY3VtZW50cy90cmFuc2FjdGlvbi1zZW5kLWRvY3VtZW50cy5jb21wb25lbnQnO1xyXG5pbXBvcnQge1JlcG9ydGluZ0RvY3VtZW50UGRmQmFzZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydGluZy1kb2N1bWVudC1wZGYtYmFzZS1yZXF1ZXN0JztcclxuaW1wb3J0IHtFbWFpbEhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2VtYWlsLWhpc3RvcmljLWRlbGl2ZXJ5LW5vdGUtcmVxdWVzdCc7XHJcbmltcG9ydCB7UHJpbnRIaXN0b3JpY0RlbGl2ZXJ5Tm90ZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wcmludC1oaXN0b3JpYy1kZWxpdmVyeS1ub3RlLXJlcXVlc3QnO1xyXG5pbXBvcnQge1BkZkhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BkZi1oaXN0b3JpYy1kZWxpdmVyeS1ub3RlLXJlcXVlc3QnO1xyXG5pbXBvcnQge1JlcG9ydGluZ0RvY3VtZW50RW1haWxTaWduRG9jQmFzZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydGluZy1kb2N1bWVudC1lbWFpbC1zaWduLWRvYy1iYXNlLXJlcXVlc3QnO1xyXG5pbXBvcnQge1JlcG9ydGluZ0RvY3VtZW50UHJpbnRTaWduRG9jQmFzZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydGluZy1kb2N1bWVudC1wcmludC1zaWduLWRvYy1iYXNlLXJlcXVlc3QnO1xyXG5pbXBvcnQge0NvRG9jdW1lbnR9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2NvLWRvY3VtZW50JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkRlbGl2ZXJ5Q29zdExpbmVJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tZGVsaXZlcnktY29zdC1saW5lLWluZm8uYm8nO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7U2VuZE1ldGhvZFR5cGV9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL3NlbmQtbWV0aG9kLXR5cGUuZW51bVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW9yZGVyLWRlbGl2ZXJ5XCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJxdWljay1hY2Nlc3MtY29udGVudC13cmFwcGVyXCIgKm5nSWY9XCJ0cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25EZWZpbml0aXZlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QtYWxsLXdyYXBwZXJcIiBbY2xhc3MuaGlkZGVuXT1cIiFoYXNMaW5lc1RvRGVsaXZlciB8fCAhdHJhbnNhY3Rpb25JbmZvLmFsbG93UGFydGlhbERlbGl2ZXJ5XCI+XHJcbiAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94XHJcbiAgICAgICAgICBbKG1vZGVsKV09XCJhbGxTZWxlY3RlZFwiXHJcbiAgICAgICAgICBbbGFiZWxdPVwiJ1NFTEVDVF9BTExfTElORVMnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImhhbmRsZVNlbGVjdEFsbExpbmVzKCRldmVudClcIlxyXG4gICAgICAgID48L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGNvLXF1aWNrLXNlbmQtYnV0dG9uICpuZ0lmPVwiY2FuRGVsaXZlciB8fCBoaXN0b3JpY0RvY3VtZW50cygpXCJcclxuICAgICAgICBbZGVmYXVsdE1ldGhvZEljb25dPVwiZGVmYXVsdFNlbmRNZXRob2RJY29uXCJcclxuICAgICAgICBbc2hvd0xvYWRlcl09XCJzaG93TG9hZGVyXCJcclxuICAgICAgICAoc2VuZEljb25DbGlja2VkKT1cImhhbmRsZVNlbmREb2N1bWVudChkZWZhdWx0U2VuZE1ldGhvZClcIlxyXG4gICAgICAgIChvcGVuU2VuZE1ldGhvZERpYWxvZyk9XCJzaG93U2VuZE1ldGhvZERpYWxvZyA9IHRydWVcIlxyXG4gICAgICA+PC9jby1xdWljay1zZW5kLWJ1dHRvbj5cclxuICAgICAgPGNvLXRyYW5zYWN0aW9uLXNlbmQtZG9jdW1lbnRzXHJcbiAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgIFtoaXN0b3JpY1JlcG9ydHNdPVwiaGlzdG9yaWNSZXBvcnRzXCJcclxuICAgICAgICBbdHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnldPVwidHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuU2FsZXNPcmRlckRlbGl2ZXJ5Tm90ZVwiXHJcbiAgICAgID48L2NvLXRyYW5zYWN0aW9uLXNlbmQtZG9jdW1lbnRzPlxyXG4gICAgICA8Y28tdW5kby1kZWxpdmVyeVxyXG4gICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb25JbmZvXCJcclxuICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgIFt0cmFuc2FjdGlvblR5cGVDYXRlZ29yeV09XCJ0cmFuc2FjdGlvblR5cGVDYXRlZ29yeS5TYWxlc09yZGVyRGVsaXZlcnlOb3RlXCJcclxuICAgICAgPjwvY28tdW5kby1kZWxpdmVyeT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGNvLXNlbmQtbWV0aG9kLWRpYWxvZyAqbmdJZj1cInNob3dTZW5kTWV0aG9kRGlhbG9nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hlYWRlclRpdGxlXT1cIidWZXJ6ZW5kbWV0aG9kZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJpbnRlckxpc3RdPVwicHJpbnRlckxpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVmYXVsdFNlbmRNZXRob2RdPVwiZGVmYXVsdFNlbmRNZXRob2RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbdmlzaWJsZU1ldGhvZHNdPVwiW3NlbmRNZXRob2RUeXBlLlByaW50LCBzZW5kTWV0aG9kVHlwZS5FbWFpbCwgc2VuZE1ldGhvZFR5cGUuUGRmXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbWFpbEFkZHJlc3Nlc109XCJlbWFpbEFkZHJlc3Nlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbWFpbExheW91dHNdPVwiZW1haWxMYXlvdXRzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ByaW50TGF5b3V0c109XCJwcmludExheW91dHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNEb2NTaWduRW5hYmxlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhyZXBvcnRpbmdEb2N1bWVudEVtYWlsUmVxdWVzdCldPVwicmVwb3J0RG9jdW1lbnRFbWFpbFJlcXVlc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbKHJlcG9ydGluZ0RvY3VtZW50UHJpbnRSZXF1ZXN0KV09XCJyZXBvcnREb2N1bWVudFByaW50UmVxdWVzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFsocmVwb3J0aW5nRG9jdW1lbnRQZGZSZXF1ZXN0KV09XCJyZXBvcnREb2N1bWVudFBkZlJlcXVlc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xvc2VDbGljayk9XCJzaG93U2VuZE1ldGhvZERpYWxvZyA9IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9rQ2xpY2spPVwiaGFuZGxlU2VuZE1ldGhvZE9rQ2xpY2soJGV2ZW50KVwiXHJcbiAgICA+PC9jby1zZW5kLW1ldGhvZC1kaWFsb2c+XHJcbiAgICA8Y28tZGlnaXRhbC1zaWduYXR1cmVcclxuICAgICAgW2RvY3VtZW50SWRdPVwic2lnbmF0dXJlRG9jdW1lbnRJZFwiXHJcbiAgICAgIChkb2N1bWVudFN0b3JlZCk9XCJjb21taXRBbmRSZWZyZXNoVHJhbnNhY3Rpb24oKVwiXHJcbiAgICA+PC9jby1kaWdpdGFsLXNpZ25hdHVyZT5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uUXVpY2tBY2Nlc3NPcmRlckRlbGl2ZXJ5Q29tcG9uZW50IGV4dGVuZHMgVHJhbnNhY3Rpb25RdWlja0FjY2Vzc1NlbmRNZXRob2RCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBAVmlld0NoaWxkKFRyYW5zYWN0aW9uU2VuZERvY3VtZW50c0NvbXBvbmVudClcclxuICBwdWJsaWMgc2VuZERvY3VtZW50c0NvbXBvbmVudDogVHJhbnNhY3Rpb25TZW5kRG9jdW1lbnRzQ29tcG9uZW50O1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10cmFuc2FjdGlvbi1xdWljay1hY2Nlc3Mtb3JkZXItZGVsaXZlcnlcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVwb3J0RG9jdW1lbnRFbWFpbFJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50RW1haWxTaWduRG9jQmFzZVJlcXVlc3QgPSBuZXcgUmVwb3J0aW5nRG9jdW1lbnRFbWFpbFNpZ25Eb2NCYXNlUmVxdWVzdCgpO1xyXG4gIHB1YmxpYyByZXBvcnREb2N1bWVudFByaW50UmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRQcmludFNpZ25Eb2NCYXNlUmVxdWVzdCA9IG5ldyBSZXBvcnRpbmdEb2N1bWVudFByaW50U2lnbkRvY0Jhc2VSZXF1ZXN0KCk7XHJcbiAgcHVibGljIHJlcG9ydERvY3VtZW50UGRmUmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdCA9IG5ldyBSZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0KCk7XHJcblxyXG4gIHB1YmxpYyBhbGxvd0RlbGl2ZXJ5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGNhbkRlbGl2ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgYWxsU2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5hbGxMaW5lc1NlbGVjdGVkRm9yRGVsaXZlcnkuc3Vic2NyaWJlKGFzeW5jICgpID0+IHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnVwZGF0ZVF1YW50aXR5U2VsZWN0ZWRGb3JBbGxMaW5lcyhcclxuICAgICAgICAgICAgdGhpcy50cmFuc2FjdGlvbiwgdGhpcy5hbGxTZWxlY3RlZCB8fCAhdGhpcy50cmFuc2FjdGlvbkluZm8uYWxsb3dQYXJ0aWFsRGVsaXZlcnkpO1xyXG4gICAgICAgIH0pXHJcbiAgICApXHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuYWxsb3dEZWxpdmVyeSA9IHRoaXMudHJhbnNhY3Rpb25JbmZvLmFsbG93UGFydGlhbERlbGl2ZXJ5O1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl9zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTZWxlY3RBbGxMaW5lcyh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5zZWxlY3RBbGxTYWxlc09yZGVyTGluZXNGb3JEZWxpdmVyeS5uZXh0KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXREZWZhdWx0RW1haWxBZGRyZXNzTGlzdCgpOiBQcm9taXNlPHN0cmluZ1tdPiB7XHJcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKTsgLy8gTm90IHlldCBwcm92aWRlZCBieSBtaWRkbGUgdGllclxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldERlZmF1bHRTZW5kTWV0aG9kKCk6IFByb21pc2U8bnVtYmVyPiB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0RGVsaXZlcnlOb3RlRGVmYXVsdFNlbmRNZXRob2QodGhpcy50cmFuc2FjdGlvbkluZm8ucmVsYXRpb24ucmVsYXRpb25JZCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZ2V0RW1haWxMYXlvdXRzKCk6IFByb21pc2U8UmVwb3J0TGF5b3V0U2VsZWN0aW9uRW1haWxbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldERlbGl2ZXJ5Tm90ZUVtYWlsTGF5b3V0cyh0aGlzLnRyYW5zYWN0aW9uSW5mby51dWlkKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRQcmludExheW91dHMoKTogUHJvbWlzZTxSZXBvcnRMYXlvdXRTZWxlY3Rpb25QcmludFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0RGVsaXZlcnlOb3RlUHJpbnRMYXlvdXRzKHRoaXMudHJhbnNhY3Rpb25JbmZvLnV1aWQpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHBkZkRvY3VtZW50KHJlcG9ydGluZ0RvY3VtZW50UGRmQmFzZVJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50UGRmQmFzZVJlcXVlc3QpIHtcclxuICAgIGlmICh0aGlzLnNlbmREb2N1bWVudHNDb21wb25lbnQuc2VsZWN0ZWQpIHtcclxuICAgICAgY29uc3QgcGRmSGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0OiBQZGZIaXN0b3JpY0RlbGl2ZXJ5Tm90ZVJlcXVlc3QgPVxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24obmV3IFBkZkhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdCgpLCByZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0KTtcclxuICAgICAgdGhpcy5fcHJlcGFyZUhpc3RvcmljUmVxdWVzdChwZGZIaXN0b3JpY0RlbGl2ZXJ5Tm90ZVJlcXVlc3QpO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5wZGZIaXN0b3JpY0RlbGl2ZXJ5Tm90ZShwZGZIaXN0b3JpY0RlbGl2ZXJ5Tm90ZVJlcXVlc3QpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2hUcmFuc2FjdGlvbnMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBwZGZEZWxpdmVyeU5vdGVSZXF1ZXN0OiBQZGZEZWxpdmVyeU5vdGVSZXF1ZXN0ID1cclxuICAgICAgICBPYmplY3QuYXNzaWduKG5ldyBQZGZEZWxpdmVyeU5vdGVSZXF1ZXN0KCksIHJlcG9ydGluZ0RvY3VtZW50UGRmQmFzZVJlcXVlc3QpO1xyXG4gICAgICB0aGlzLl9wcmVwYXJlUmVxdWVzdChwZGZEZWxpdmVyeU5vdGVSZXF1ZXN0KTtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UucGRmRGVsaXZlcnlOb3RlKHBkZkRlbGl2ZXJ5Tm90ZVJlcXVlc3QpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2hUcmFuc2FjdGlvbnMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgcHJpbnREb2N1bWVudChyZXBvcnRpbmdEb2N1bWVudFByaW50QmFzZVJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50UHJpbnRTaWduRG9jQmFzZVJlcXVlc3QpIHtcclxuICAgIGlmICh0aGlzLnNlbmREb2N1bWVudHNDb21wb25lbnQuc2VsZWN0ZWQpIHtcclxuICAgICAgY29uc3QgcHJpbnRIaXN0b3JpY0RlbGl2ZXJ5Tm90ZVJlcXVlc3Q6IFByaW50SGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0ID1cclxuICAgICAgICBPYmplY3QuYXNzaWduKG5ldyBQcmludEhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdCgpLCByZXBvcnRpbmdEb2N1bWVudFByaW50QmFzZVJlcXVlc3QpO1xyXG4gICAgICB0aGlzLl9wcmVwYXJlSGlzdG9yaWNSZXF1ZXN0KHByaW50SGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0KTtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UucHJpbnRIaXN0b3JpY0RlbGl2ZXJ5Tm90ZShwcmludEhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFRyYW5zYWN0aW9ucygpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHByaW50RGVsaXZlcnlOb3RlUmVxdWVzdDogUHJpbnREZWxpdmVyeU5vdGVSZXF1ZXN0ID1cclxuICAgICAgICBPYmplY3QuYXNzaWduKG5ldyBQcmludERlbGl2ZXJ5Tm90ZVJlcXVlc3QoKSwgcmVwb3J0aW5nRG9jdW1lbnRQcmludEJhc2VSZXF1ZXN0KTtcclxuICAgICAgdGhpcy5fcHJlcGFyZVJlcXVlc3QocHJpbnREZWxpdmVyeU5vdGVSZXF1ZXN0KTtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UucHJpbnREZWxpdmVyeU5vdGUocHJpbnREZWxpdmVyeU5vdGVSZXF1ZXN0KS50aGVuKChyZXN1bHQ6IENvRG9jdW1lbnQgfCBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIENvRG9jdW1lbnQpIHtcclxuICAgICAgICAgIHRoaXMuc2lnbmF0dXJlRG9jdW1lbnRJZCA9IHJlc3VsdC5kb2N1bWVudElkO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoVHJhbnNhY3Rpb25zKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGVtYWlsRG9jdW1lbnQocmVwb3J0aW5nRG9jdW1lbnRFbWFpbEJhc2VSZXF1ZXN0OiBSZXBvcnRpbmdEb2N1bWVudEVtYWlsU2lnbkRvY0Jhc2VSZXF1ZXN0KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZW5kRG9jdW1lbnRzQ29tcG9uZW50LnNlbGVjdGVkKSB7XHJcbiAgICAgIGNvbnN0IGVtYWlsSGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0OiBFbWFpbEhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdCA9XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbihuZXcgRW1haWxIaXN0b3JpY0RlbGl2ZXJ5Tm90ZVJlcXVlc3QoKSwgcmVwb3J0aW5nRG9jdW1lbnRFbWFpbEJhc2VSZXF1ZXN0KTtcclxuICAgICAgdGhpcy5fcHJlcGFyZUhpc3RvcmljUmVxdWVzdChlbWFpbEhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdCk7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmVtYWlsSGlzdG9yaWNEZWxpdmVyeU5vdGUoZW1haWxIaXN0b3JpY0RlbGl2ZXJ5Tm90ZVJlcXVlc3QpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2hUcmFuc2FjdGlvbnMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBlbWFpbERlbGl2ZXJ5Tm90ZVJlcXVlc3Q6IEVtYWlsRGVsaXZlcnlOb3RlUmVxdWVzdCA9XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbihuZXcgRW1haWxEZWxpdmVyeU5vdGVSZXF1ZXN0KCksIHJlcG9ydGluZ0RvY3VtZW50RW1haWxCYXNlUmVxdWVzdCk7XHJcbiAgICAgIHRoaXMuX3ByZXBhcmVSZXF1ZXN0KGVtYWlsRGVsaXZlcnlOb3RlUmVxdWVzdCk7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmVtYWlsRGVsaXZlcnlOb3RlKGVtYWlsRGVsaXZlcnlOb3RlUmVxdWVzdCkudGhlbigocmVzdWx0OiBDb0RvY3VtZW50IHwgYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBDb0RvY3VtZW50KSB7XHJcbiAgICAgICAgICB0aGlzLnNpZ25hdHVyZURvY3VtZW50SWQgPSByZXN1bHQuZG9jdW1lbnRJZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFRyYW5zYWN0aW9ucygpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvblNldCgpIHtcclxuICAgIHN1cGVyLnRyYW5zYWN0aW9uU2V0KCk7XHJcbiAgICB0aGlzLmNhbkRlbGl2ZXIgPSAhdGhpcy50cmFuc2FjdGlvbkluZm8uaGVhZGVySW5mb1N0YXR1cy5pc0Z1bGx5RGVsaXZlcmVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIF9wcmVwYXJlUmVxdWVzdChyZXF1ZXN0OiBFbWFpbERlbGl2ZXJ5Tm90ZVJlcXVlc3QgfCBQcmludERlbGl2ZXJ5Tm90ZVJlcXVlc3QgfCBQZGZEZWxpdmVyeU5vdGVSZXF1ZXN0KTogdm9pZCB7XHJcbiAgICBsZXQgc2VsZWN0ZWRMaW5lczogVHJhbnNhY3Rpb25MaW5lSW5mb1tdID0gdGhpcy50cmFuc2FjdGlvbkxpbmVzLmZpbHRlcigobGluZSkgPT4ge1xyXG4gICAgICByZXR1cm4gIXRoaXMudHJhbnNhY3Rpb25JbmZvLmFsbG93UGFydGlhbERlbGl2ZXJ5ID8gdHJ1ZSA6IGxpbmUuc2VsZWN0ZWQgJiYgbGluZS5hcnRpY2xlTGluZVN0YXR1cy5xdWFudGl0eVRvRGVsaXZlciA+IDBcclxuICAgIH0pO1xyXG5cclxuICAgIGlmICh0aGlzLmRlbGl2ZXJ5Q29zdExpbmVzKSB7XHJcbiAgICAgIGNvbnN0IGRlbGl2ZXJ5Q29zdExpbmVzOiBUcmFuc2FjdGlvbkRlbGl2ZXJ5Q29zdExpbmVJbmZvW10gPSB0aGlzLmRlbGl2ZXJ5Q29zdExpbmVzLmZpbHRlcigobGluZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiAhdGhpcy50cmFuc2FjdGlvbkluZm8uYWxsb3dQYXJ0aWFsRGVsaXZlcnkgPyB0cnVlIDogbGluZS5zZWxlY3RlZCAmJiBsaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5VG9EZWxpdmVyID4gMFxyXG4gICAgICB9KTtcclxuICAgICAgc2VsZWN0ZWRMaW5lcy5wdXNoKC4uLmRlbGl2ZXJ5Q29zdExpbmVzKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc2VsZWN0ZWRMaW5lcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJlcXVlc3QudHJhbnNhY3Rpb25MaW5lcyA9IHRoaXMuX2NyZWF0ZVJlcXVlc3RMaW5lcyhzZWxlY3RlZExpbmVzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBfcHJlcGFyZUhpc3RvcmljUmVxdWVzdChyZXF1ZXN0OiBFbWFpbEhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdCB8IFByaW50SGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0IHwgUGRmSGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0KTogdm9pZCB7XHJcbiAgICByZXF1ZXN0LnJlcG9ydERhdGFJZCA9IHRoaXMuc2VuZERvY3VtZW50c0NvbXBvbmVudC5hY3RpdmVSZXBvcnQucmVwb3J0SWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGlzdG9yaWNEb2N1bWVudHMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZW5kRG9jdW1lbnRzQ29tcG9uZW50ICYmIHRoaXMuc2VuZERvY3VtZW50c0NvbXBvbmVudC5oaXN0b3JpY1JlcG9ydHMubGVuZ3RoID4gMCAmJiAhIXRoaXMuc2VuZERvY3VtZW50c0NvbXBvbmVudC5hY3RpdmVSZXBvcnQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2VuZERvY3VtZW50KGRlZmF1bHRTZW5kTWV0aG9kOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuaGFuZGxlU2VuZChkZWZhdWx0U2VuZE1ldGhvZCkudGhlbigoKSA9PiB0aGlzLnNlbmREb2N1bWVudHNDb21wb25lbnQuZ2V0SGlzdG9yaWNEb2N1bWVudHMoKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlU2VuZE1ldGhvZE9rQ2xpY2sobWV0aG9kOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuc2hvd1NlbmRNZXRob2REaWFsb2cgPSBmYWxzZTtcclxuICAgIGlmIChtZXRob2QgPT09IFNlbmRNZXRob2RUeXBlLlByaW50KSB7XHJcbiAgICAgIHRoaXMucHJpbnREb2N1bWVudCh0aGlzLnJlcG9ydERvY3VtZW50UHJpbnRSZXF1ZXN0KTtcclxuICAgIH0gZWxzZSBpZiAobWV0aG9kID09PSBTZW5kTWV0aG9kVHlwZS5FbWFpbCkge1xyXG4gICAgICB0aGlzLmVtYWlsRG9jdW1lbnQodGhpcy5yZXBvcnREb2N1bWVudEVtYWlsUmVxdWVzdCk7XHJcbiAgICB9IGVsc2UgaWYgKG1ldGhvZCA9PT0gU2VuZE1ldGhvZFR5cGUuUGRmKSB7XHJcbiAgICAgIHRoaXMucGRmRG9jdW1lbnQodGhpcy5yZXBvcnREb2N1bWVudFBkZlJlcXVlc3QpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fc2V0RGVmYXVsdE1ldGhvZChtZXRob2QpO1xyXG4gIH1cclxuICBwcml2YXRlIF9jcmVhdGVSZXF1ZXN0TGluZXMoc2VsZWN0ZWRMaW5lczogVHJhbnNhY3Rpb25MaW5lSW5mb1tdKTogVHJhbnNhY3Rpb25MaW5lUmVwb3J0aW5nUmVxdWVzdFtdIHtcclxuICAgIHJldHVybiBzZWxlY3RlZExpbmVzLm1hcCgobGluZSkgPT4ge1xyXG4gICAgICBjb25zdCB0cmFuc2FjdGlvbkxpbmVSZXBvcnRpbmdSZXF1ZXN0OiBUcmFuc2FjdGlvbkxpbmVSZXBvcnRpbmdSZXF1ZXN0ID0gbmV3IFRyYW5zYWN0aW9uTGluZVJlcG9ydGluZ1JlcXVlc3QoKTtcclxuICAgICAgdHJhbnNhY3Rpb25MaW5lUmVwb3J0aW5nUmVxdWVzdC5saW5lTnIgPSBsaW5lLmxpbmVOcjtcclxuICAgICAgdHJhbnNhY3Rpb25MaW5lUmVwb3J0aW5nUmVxdWVzdC5hbW91bnQgPSBsaW5lLmFtb3VudFNlbGVjdGVkO1xyXG4gICAgICByZXR1cm4gdHJhbnNhY3Rpb25MaW5lUmVwb3J0aW5nUmVxdWVzdDtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW9yZGVyLWRlbGl2ZXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy90cmFuc2FjdGlvbi1xdWljay1hY2Nlc3Mtb3JkZXItZGVsaXZlcnkvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW9yZGVyLWRlbGl2ZXJ5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsV0FBVyxFQUFxQixTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFDLDZDQUE2QyxFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFHckgsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sa0VBQWtFLENBQUM7QUFDMUcsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sa0VBQWtFLENBQUM7QUFDMUcsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFFdEcsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sNEVBQTRFLENBQUM7QUFDM0gsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0sdUVBQXVFLENBQUM7QUFDeEgsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sbUVBQW1FLENBQUM7QUFDbEgsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sMkVBQTJFLENBQUM7QUFDM0gsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sMkVBQTJFLENBQUM7QUFDM0gsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0seUVBQXlFLENBQUM7QUFDdkgsT0FBTyxFQUFDLHdDQUF3QyxFQUFDLE1BQU0sOEVBQThFLENBQUM7QUFDdEksT0FBTyxFQUFDLHdDQUF3QyxF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L0csK0JBQStCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDckQsK0JBQStCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDN0QsT0FBTywrQkFBK0IsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OztZQTdORixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDRDQUE0QztnQkFDdEQsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Q1Q7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztxQ0FHRSxTQUFTLFNBQUMsaUNBQWlDO3dCQUczQyxXQUFXLFNBQUMsa0RBQWtEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25RdWlja0FjY2Vzc1NlbmRNZXRob2RCYXNlQ29tcG9uZW50fSBmcm9tICcuLi90cmFuc2FjdGlvbi1xdWljay1hY2Nlc3Mtc2VuZC1tZXRob2QtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1JlcG9ydExheW91dFNlbGVjdGlvblByaW50fSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnQtbGF5b3V0LXNlbGVjdGlvbi1wcmludC5ibyc7XHJcbmltcG9ydCB7UmVwb3J0TGF5b3V0U2VsZWN0aW9uRW1haWx9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydC1sYXlvdXQtc2VsZWN0aW9uLWVtYWlsLmJvJztcclxuaW1wb3J0IHtFbWFpbERlbGl2ZXJ5Tm90ZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9lbWFpbC1kZWxpdmVyeS1ub3RlLXJlcXVlc3QnO1xyXG5pbXBvcnQge1ByaW50RGVsaXZlcnlOb3RlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3ByaW50LWRlbGl2ZXJ5LW5vdGUtcmVxdWVzdCc7XHJcbmltcG9ydCB7UGRmRGVsaXZlcnlOb3RlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BkZi1kZWxpdmVyeS1ub3RlLXJlcXVlc3QnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZVJlcG9ydGluZ1JlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLXJlcG9ydGluZy1yZXF1ZXN0LmJvJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlbmREb2N1bWVudHNDb21wb25lbnR9IGZyb20gJy4uLy4uL3RyYW5zYWN0aW9uLXNlbmQtZG9jdW1lbnRzL3RyYW5zYWN0aW9uLXNlbmQtZG9jdW1lbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7UmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0aW5nLWRvY3VtZW50LXBkZi1iYXNlLXJlcXVlc3QnO1xyXG5pbXBvcnQge0VtYWlsSGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZW1haWwtaGlzdG9yaWMtZGVsaXZlcnktbm90ZS1yZXF1ZXN0JztcclxuaW1wb3J0IHtQcmludEhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3ByaW50LWhpc3RvcmljLWRlbGl2ZXJ5LW5vdGUtcmVxdWVzdCc7XHJcbmltcG9ydCB7UGRmSGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGRmLWhpc3RvcmljLWRlbGl2ZXJ5LW5vdGUtcmVxdWVzdCc7XHJcbmltcG9ydCB7UmVwb3J0aW5nRG9jdW1lbnRFbWFpbFNpZ25Eb2NCYXNlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0aW5nLWRvY3VtZW50LWVtYWlsLXNpZ24tZG9jLWJhc2UtcmVxdWVzdCc7XHJcbmltcG9ydCB7UmVwb3J0aW5nRG9jdW1lbnRQcmludFNpZ25Eb2NCYXNlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0aW5nLWRvY3VtZW50LXByaW50LXNpZ24tZG9jLWJhc2UtcmVxdWVzdCc7XHJcbmltcG9ydCB7Q29Eb2N1bWVudH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvY28tZG9jdW1lbnQnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRGVsaXZlcnlDb3N0TGluZUluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1kZWxpdmVyeS1jb3N0LWxpbmUtaW5mby5ibyc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtTZW5kTWV0aG9kVHlwZX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vc2VuZC1tZXRob2QtdHlwZS5lbnVtXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lVHlwZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3RyYW5zYWN0aW9uLWxpbmUtdHlwZS5lbnVtXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby10cmFuc2FjdGlvbi1xdWljay1hY2Nlc3Mtb3JkZXItZGVsaXZlcnlcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cInF1aWNrLWFjY2Vzcy1jb250ZW50LXdyYXBwZXJcIiAqbmdJZj1cInRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbkRlZmluaXRpdmVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdC1hbGwtd3JhcHBlclwiIFtjbGFzcy5oaWRkZW5dPVwiIWhhc0xpbmVzVG9EZWxpdmVyIHx8ICF0cmFuc2FjdGlvbkluZm8uYWxsb3dQYXJ0aWFsRGVsaXZlcnlcIj5cclxuICAgICAgICA8Y28taW5wdXQtY2hlY2tib3hcclxuICAgICAgICAgIFsobW9kZWwpXT1cImFsbFNlbGVjdGVkXCJcclxuICAgICAgICAgIFtsYWJlbF09XCInU0VMRUNUX0FMTF9MSU5FUycgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlU2VsZWN0QWxsTGluZXMoJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvY28taW5wdXQtY2hlY2tib3g+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8Y28tcXVpY2stc2VuZC1idXR0b24gKm5nSWY9XCJjYW5EZWxpdmVyIHx8IGhpc3RvcmljRG9jdW1lbnRzKClcIlxyXG4gICAgICAgIFtkZWZhdWx0TWV0aG9kSWNvbl09XCJkZWZhdWx0U2VuZE1ldGhvZEljb25cIlxyXG4gICAgICAgIFtzaG93TG9hZGVyXT1cInNob3dMb2FkZXJcIlxyXG4gICAgICAgIChzZW5kSWNvbkNsaWNrZWQpPVwiaGFuZGxlU2VuZERvY3VtZW50KGRlZmF1bHRTZW5kTWV0aG9kKVwiXHJcbiAgICAgICAgKG9wZW5TZW5kTWV0aG9kRGlhbG9nKT1cInNob3dTZW5kTWV0aG9kRGlhbG9nID0gdHJ1ZVwiXHJcbiAgICAgID48L2NvLXF1aWNrLXNlbmQtYnV0dG9uPlxyXG4gICAgICA8Y28tdHJhbnNhY3Rpb24tc2VuZC1kb2N1bWVudHNcclxuICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgW2hpc3RvcmljUmVwb3J0c109XCJoaXN0b3JpY1JlcG9ydHNcIlxyXG4gICAgICAgIFt0cmFuc2FjdGlvblR5cGVDYXRlZ29yeV09XCJ0cmFuc2FjdGlvblR5cGVDYXRlZ29yeS5TYWxlc09yZGVyRGVsaXZlcnlOb3RlXCJcclxuICAgICAgPjwvY28tdHJhbnNhY3Rpb24tc2VuZC1kb2N1bWVudHM+XHJcbiAgICAgIDxjby11bmRvLWRlbGl2ZXJ5XHJcbiAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvblwiXHJcbiAgICAgICAgW3RyYW5zYWN0aW9uVHlwZUNhdGVnb3J5XT1cInRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlNhbGVzT3JkZXJEZWxpdmVyeU5vdGVcIlxyXG4gICAgICA+PC9jby11bmRvLWRlbGl2ZXJ5PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8Y28tc2VuZC1tZXRob2QtZGlhbG9nICpuZ0lmPVwic2hvd1NlbmRNZXRob2REaWFsb2dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbaGVhZGVyVGl0bGVdPVwiJ1ZlcnplbmRtZXRob2RlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcmludGVyTGlzdF09XCJwcmludGVyTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0U2VuZE1ldGhvZF09XCJkZWZhdWx0U2VuZE1ldGhvZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2aXNpYmxlTWV0aG9kc109XCJbc2VuZE1ldGhvZFR5cGUuUHJpbnQsIHNlbmRNZXRob2RUeXBlLkVtYWlsLCBzZW5kTWV0aG9kVHlwZS5QZGZdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VtYWlsQWRkcmVzc2VzXT1cImVtYWlsQWRkcmVzc2VzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VtYWlsTGF5b3V0c109XCJlbWFpbExheW91dHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJpbnRMYXlvdXRzXT1cInByaW50TGF5b3V0c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpc0RvY1NpZ25FbmFibGVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbKHJlcG9ydGluZ0RvY3VtZW50RW1haWxSZXF1ZXN0KV09XCJyZXBvcnREb2N1bWVudEVtYWlsUmVxdWVzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFsocmVwb3J0aW5nRG9jdW1lbnRQcmludFJlcXVlc3QpXT1cInJlcG9ydERvY3VtZW50UHJpbnRSZXF1ZXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhyZXBvcnRpbmdEb2N1bWVudFBkZlJlcXVlc3QpXT1cInJlcG9ydERvY3VtZW50UGRmUmVxdWVzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbG9zZUNsaWNrKT1cInNob3dTZW5kTWV0aG9kRGlhbG9nID0gZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob2tDbGljayk9XCJoYW5kbGVTZW5kTWV0aG9kT2tDbGljaygkZXZlbnQpXCJcclxuICAgID48L2NvLXNlbmQtbWV0aG9kLWRpYWxvZz5cclxuICAgIDxjby1kaWdpdGFsLXNpZ25hdHVyZVxyXG4gICAgICBbZG9jdW1lbnRJZF09XCJzaWduYXR1cmVEb2N1bWVudElkXCJcclxuICAgICAgKGRvY3VtZW50U3RvcmVkKT1cImNvbW1pdEFuZFJlZnJlc2hUcmFuc2FjdGlvbigpXCJcclxuICAgID48L2NvLWRpZ2l0YWwtc2lnbmF0dXJlPlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25RdWlja0FjY2Vzc09yZGVyRGVsaXZlcnlDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvblF1aWNrQWNjZXNzU2VuZE1ldGhvZEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoVHJhbnNhY3Rpb25TZW5kRG9jdW1lbnRzQ29tcG9uZW50KVxyXG4gIHB1YmxpYyBzZW5kRG9jdW1lbnRzQ29tcG9uZW50OiBUcmFuc2FjdGlvblNlbmREb2N1bWVudHNDb21wb25lbnQ7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXRyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy1vcmRlci1kZWxpdmVyeVwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZXBvcnREb2N1bWVudEVtYWlsUmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRFbWFpbFNpZ25Eb2NCYXNlUmVxdWVzdCA9IG5ldyBSZXBvcnRpbmdEb2N1bWVudEVtYWlsU2lnbkRvY0Jhc2VSZXF1ZXN0KCk7XHJcbiAgcHVibGljIHJlcG9ydERvY3VtZW50UHJpbnRSZXF1ZXN0OiBSZXBvcnRpbmdEb2N1bWVudFByaW50U2lnbkRvY0Jhc2VSZXF1ZXN0ID0gbmV3IFJlcG9ydGluZ0RvY3VtZW50UHJpbnRTaWduRG9jQmFzZVJlcXVlc3QoKTtcclxuICBwdWJsaWMgcmVwb3J0RG9jdW1lbnRQZGZSZXF1ZXN0OiBSZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0ID0gbmV3IFJlcG9ydGluZ0RvY3VtZW50UGRmQmFzZVJlcXVlc3QoKTtcclxuXHJcbiAgcHVibGljIGFsbG93RGVsaXZlcnk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgY2FuRGVsaXZlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBhbGxTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmFsbExpbmVzU2VsZWN0ZWRGb3JEZWxpdmVyeS5zdWJzY3JpYmUoYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UudXBkYXRlUXVhbnRpdHlTZWxlY3RlZEZvckFsbExpbmVzKFxyXG4gICAgICAgICAgICB0aGlzLnRyYW5zYWN0aW9uLCB0aGlzLmFsbFNlbGVjdGVkIHx8ICF0aGlzLnRyYW5zYWN0aW9uSW5mby5hbGxvd1BhcnRpYWxEZWxpdmVyeSk7XHJcbiAgICAgICAgfSlcclxuICAgIClcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5hbGxvd0RlbGl2ZXJ5ID0gdGhpcy50cmFuc2FjdGlvbkluZm8uYWxsb3dQYXJ0aWFsRGVsaXZlcnk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNlbGVjdEFsbExpbmVzKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLnNlbGVjdEFsbFNhbGVzT3JkZXJMaW5lc0ZvckRlbGl2ZXJ5Lm5leHQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldERlZmF1bHRFbWFpbEFkZHJlc3NMaXN0KCk6IFByb21pc2U8c3RyaW5nW10+IHtcclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoW10pOyAvLyBOb3QgeWV0IHByb3ZpZGVkIGJ5IG1pZGRsZSB0aWVyXHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdFNlbmRNZXRob2QoKTogUHJvbWlzZTxudW1iZXI+IHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXREZWxpdmVyeU5vdGVEZWZhdWx0U2VuZE1ldGhvZCh0aGlzLnRyYW5zYWN0aW9uSW5mby5yZWxhdGlvbi5yZWxhdGlvbklkKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRFbWFpbExheW91dHMoKTogUHJvbWlzZTxSZXBvcnRMYXlvdXRTZWxlY3Rpb25FbWFpbFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0RGVsaXZlcnlOb3RlRW1haWxMYXlvdXRzKHRoaXMudHJhbnNhY3Rpb25JbmZvLnV1aWQpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldFByaW50TGF5b3V0cygpOiBQcm9taXNlPFJlcG9ydExheW91dFNlbGVjdGlvblByaW50W10+IHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXREZWxpdmVyeU5vdGVQcmludExheW91dHModGhpcy50cmFuc2FjdGlvbkluZm8udXVpZCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgcGRmRG9jdW1lbnQocmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdCkge1xyXG4gICAgaWYgKHRoaXMuc2VuZERvY3VtZW50c0NvbXBvbmVudC5zZWxlY3RlZCkge1xyXG4gICAgICBjb25zdCBwZGZIaXN0b3JpY0RlbGl2ZXJ5Tm90ZVJlcXVlc3Q6IFBkZkhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdCA9XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbihuZXcgUGRmSGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0KCksIHJlcG9ydGluZ0RvY3VtZW50UGRmQmFzZVJlcXVlc3QpO1xyXG4gICAgICB0aGlzLl9wcmVwYXJlSGlzdG9yaWNSZXF1ZXN0KHBkZkhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdCk7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnBkZkhpc3RvcmljRGVsaXZlcnlOb3RlKHBkZkhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFRyYW5zYWN0aW9ucygpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHBkZkRlbGl2ZXJ5Tm90ZVJlcXVlc3Q6IFBkZkRlbGl2ZXJ5Tm90ZVJlcXVlc3QgPVxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24obmV3IFBkZkRlbGl2ZXJ5Tm90ZVJlcXVlc3QoKSwgcmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdCk7XHJcbiAgICAgIHRoaXMuX3ByZXBhcmVSZXF1ZXN0KHBkZkRlbGl2ZXJ5Tm90ZVJlcXVlc3QpO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5wZGZEZWxpdmVyeU5vdGUocGRmRGVsaXZlcnlOb3RlUmVxdWVzdCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFRyYW5zYWN0aW9ucygpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBwcmludERvY3VtZW50KHJlcG9ydGluZ0RvY3VtZW50UHJpbnRCYXNlUmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRQcmludFNpZ25Eb2NCYXNlUmVxdWVzdCkge1xyXG4gICAgaWYgKHRoaXMuc2VuZERvY3VtZW50c0NvbXBvbmVudC5zZWxlY3RlZCkge1xyXG4gICAgICBjb25zdCBwcmludEhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdDogUHJpbnRIaXN0b3JpY0RlbGl2ZXJ5Tm90ZVJlcXVlc3QgPVxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24obmV3IFByaW50SGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0KCksIHJlcG9ydGluZ0RvY3VtZW50UHJpbnRCYXNlUmVxdWVzdCk7XHJcbiAgICAgIHRoaXMuX3ByZXBhcmVIaXN0b3JpY1JlcXVlc3QocHJpbnRIaXN0b3JpY0RlbGl2ZXJ5Tm90ZVJlcXVlc3QpO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5wcmludEhpc3RvcmljRGVsaXZlcnlOb3RlKHByaW50SGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0KS50aGVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoVHJhbnNhY3Rpb25zKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgcHJpbnREZWxpdmVyeU5vdGVSZXF1ZXN0OiBQcmludERlbGl2ZXJ5Tm90ZVJlcXVlc3QgPVxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24obmV3IFByaW50RGVsaXZlcnlOb3RlUmVxdWVzdCgpLCByZXBvcnRpbmdEb2N1bWVudFByaW50QmFzZVJlcXVlc3QpO1xyXG4gICAgICB0aGlzLl9wcmVwYXJlUmVxdWVzdChwcmludERlbGl2ZXJ5Tm90ZVJlcXVlc3QpO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5wcmludERlbGl2ZXJ5Tm90ZShwcmludERlbGl2ZXJ5Tm90ZVJlcXVlc3QpLnRoZW4oKHJlc3VsdDogQ29Eb2N1bWVudCB8IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgQ29Eb2N1bWVudCkge1xyXG4gICAgICAgICAgdGhpcy5zaWduYXR1cmVEb2N1bWVudElkID0gcmVzdWx0LmRvY3VtZW50SWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2hUcmFuc2FjdGlvbnMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZW1haWxEb2N1bWVudChyZXBvcnRpbmdEb2N1bWVudEVtYWlsQmFzZVJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50RW1haWxTaWduRG9jQmFzZVJlcXVlc3QpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNlbmREb2N1bWVudHNDb21wb25lbnQuc2VsZWN0ZWQpIHtcclxuICAgICAgY29uc3QgZW1haWxIaXN0b3JpY0RlbGl2ZXJ5Tm90ZVJlcXVlc3Q6IEVtYWlsSGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0ID1cclxuICAgICAgICBPYmplY3QuYXNzaWduKG5ldyBFbWFpbEhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdCgpLCByZXBvcnRpbmdEb2N1bWVudEVtYWlsQmFzZVJlcXVlc3QpO1xyXG4gICAgICB0aGlzLl9wcmVwYXJlSGlzdG9yaWNSZXF1ZXN0KGVtYWlsSGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0KTtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZW1haWxIaXN0b3JpY0RlbGl2ZXJ5Tm90ZShlbWFpbEhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFRyYW5zYWN0aW9ucygpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGVtYWlsRGVsaXZlcnlOb3RlUmVxdWVzdDogRW1haWxEZWxpdmVyeU5vdGVSZXF1ZXN0ID1cclxuICAgICAgICBPYmplY3QuYXNzaWduKG5ldyBFbWFpbERlbGl2ZXJ5Tm90ZVJlcXVlc3QoKSwgcmVwb3J0aW5nRG9jdW1lbnRFbWFpbEJhc2VSZXF1ZXN0KTtcclxuICAgICAgdGhpcy5fcHJlcGFyZVJlcXVlc3QoZW1haWxEZWxpdmVyeU5vdGVSZXF1ZXN0KTtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZW1haWxEZWxpdmVyeU5vdGUoZW1haWxEZWxpdmVyeU5vdGVSZXF1ZXN0KS50aGVuKChyZXN1bHQ6IENvRG9jdW1lbnQgfCBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIENvRG9jdW1lbnQpIHtcclxuICAgICAgICAgIHRoaXMuc2lnbmF0dXJlRG9jdW1lbnRJZCA9IHJlc3VsdC5kb2N1bWVudElkO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoVHJhbnNhY3Rpb25zKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uU2V0KCkge1xyXG4gICAgc3VwZXIudHJhbnNhY3Rpb25TZXQoKTtcclxuICAgIHRoaXMuY2FuRGVsaXZlciA9ICF0aGlzLnRyYW5zYWN0aW9uSW5mby5oZWFkZXJJbmZvU3RhdHVzLmlzRnVsbHlEZWxpdmVyZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgX3ByZXBhcmVSZXF1ZXN0KHJlcXVlc3Q6IEVtYWlsRGVsaXZlcnlOb3RlUmVxdWVzdCB8IFByaW50RGVsaXZlcnlOb3RlUmVxdWVzdCB8IFBkZkRlbGl2ZXJ5Tm90ZVJlcXVlc3QpOiB2b2lkIHtcclxuICAgIGxldCBzZWxlY3RlZExpbmVzOiBUcmFuc2FjdGlvbkxpbmVJbmZvW10gPSB0aGlzLnRyYW5zYWN0aW9uTGluZXMuZmlsdGVyKChsaW5lKSA9PiB7XHJcbiAgICAgIHJldHVybiAobGluZS5saW5lVHlwZSAhPT0gVHJhbnNhY3Rpb25MaW5lVHlwZS5UZXh0TGluZSAmJiAoIXRoaXMudHJhbnNhY3Rpb25JbmZvLmFsbG93UGFydGlhbERlbGl2ZXJ5ID8gdHJ1ZSA6IGxpbmUuc2VsZWN0ZWQgJiYgbGluZS5hcnRpY2xlTGluZVN0YXR1cy5xdWFudGl0eVRvRGVsaXZlciA+IDApKVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHRoaXMuZGVsaXZlcnlDb3N0TGluZXMpIHtcclxuICAgICAgY29uc3QgZGVsaXZlcnlDb3N0TGluZXM6IFRyYW5zYWN0aW9uRGVsaXZlcnlDb3N0TGluZUluZm9bXSA9IHRoaXMuZGVsaXZlcnlDb3N0TGluZXMuZmlsdGVyKChsaW5lKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuICF0aGlzLnRyYW5zYWN0aW9uSW5mby5hbGxvd1BhcnRpYWxEZWxpdmVyeSA/IHRydWUgOiBsaW5lLnNlbGVjdGVkICYmIGxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlUb0RlbGl2ZXIgPiAwXHJcbiAgICAgIH0pO1xyXG4gICAgICBzZWxlY3RlZExpbmVzLnB1c2goLi4uZGVsaXZlcnlDb3N0TGluZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzZWxlY3RlZExpbmVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmVxdWVzdC50cmFuc2FjdGlvbkxpbmVzID0gdGhpcy5fY3JlYXRlUmVxdWVzdExpbmVzKHNlbGVjdGVkTGluZXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIF9wcmVwYXJlSGlzdG9yaWNSZXF1ZXN0KHJlcXVlc3Q6IEVtYWlsSGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0IHwgUHJpbnRIaXN0b3JpY0RlbGl2ZXJ5Tm90ZVJlcXVlc3QgfCBQZGZIaXN0b3JpY0RlbGl2ZXJ5Tm90ZVJlcXVlc3QpOiB2b2lkIHtcclxuICAgIHJlcXVlc3QucmVwb3J0RGF0YUlkID0gdGhpcy5zZW5kRG9jdW1lbnRzQ29tcG9uZW50LmFjdGl2ZVJlcG9ydC5yZXBvcnRJZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoaXN0b3JpY0RvY3VtZW50cygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlbmREb2N1bWVudHNDb21wb25lbnQgJiYgdGhpcy5zZW5kRG9jdW1lbnRzQ29tcG9uZW50Lmhpc3RvcmljUmVwb3J0cy5sZW5ndGggPiAwICYmICEhdGhpcy5zZW5kRG9jdW1lbnRzQ29tcG9uZW50LmFjdGl2ZVJlcG9ydDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTZW5kRG9jdW1lbnQoZGVmYXVsdFNlbmRNZXRob2Q6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5oYW5kbGVTZW5kKGRlZmF1bHRTZW5kTWV0aG9kKS50aGVuKCgpID0+IHRoaXMuc2VuZERvY3VtZW50c0NvbXBvbmVudC5nZXRIaXN0b3JpY0RvY3VtZW50cygpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVTZW5kTWV0aG9kT2tDbGljayhtZXRob2Q6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5zaG93U2VuZE1ldGhvZERpYWxvZyA9IGZhbHNlO1xyXG4gICAgaWYgKG1ldGhvZCA9PT0gU2VuZE1ldGhvZFR5cGUuUHJpbnQpIHtcclxuICAgICAgdGhpcy5wcmludERvY3VtZW50KHRoaXMucmVwb3J0RG9jdW1lbnRQcmludFJlcXVlc3QpO1xyXG4gICAgfSBlbHNlIGlmIChtZXRob2QgPT09IFNlbmRNZXRob2RUeXBlLkVtYWlsKSB7XHJcbiAgICAgIHRoaXMuZW1haWxEb2N1bWVudCh0aGlzLnJlcG9ydERvY3VtZW50RW1haWxSZXF1ZXN0KTtcclxuICAgIH0gZWxzZSBpZiAobWV0aG9kID09PSBTZW5kTWV0aG9kVHlwZS5QZGYpIHtcclxuICAgICAgdGhpcy5wZGZEb2N1bWVudCh0aGlzLnJlcG9ydERvY3VtZW50UGRmUmVxdWVzdCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9zZXREZWZhdWx0TWV0aG9kKG1ldGhvZCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2NyZWF0ZVJlcXVlc3RMaW5lcyhzZWxlY3RlZExpbmVzOiBUcmFuc2FjdGlvbkxpbmVJbmZvW10pOiBUcmFuc2FjdGlvbkxpbmVSZXBvcnRpbmdSZXF1ZXN0W10ge1xyXG4gICAgcmV0dXJuIHNlbGVjdGVkTGluZXMubWFwKChsaW5lKSA9PiB7XHJcbiAgICAgIGNvbnN0IHRyYW5zYWN0aW9uTGluZVJlcG9ydGluZ1JlcXVlc3Q6IFRyYW5zYWN0aW9uTGluZVJlcG9ydGluZ1JlcXVlc3QgPSBuZXcgVHJhbnNhY3Rpb25MaW5lUmVwb3J0aW5nUmVxdWVzdCgpO1xyXG4gICAgICB0cmFuc2FjdGlvbkxpbmVSZXBvcnRpbmdSZXF1ZXN0LmxpbmVOciA9IGxpbmUubGluZU5yO1xyXG4gICAgICB0cmFuc2FjdGlvbkxpbmVSZXBvcnRpbmdSZXF1ZXN0LmFtb3VudCA9IGxpbmUuYW1vdW50U2VsZWN0ZWQ7XHJcbiAgICAgIHJldHVybiB0cmFuc2FjdGlvbkxpbmVSZXBvcnRpbmdSZXF1ZXN0O1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -93,20 +93,25 @@ export class TransactionQuickAccessSendMethodBaseComponent extends TransactionBa
93
93
  }
94
94
  handleSend(method) {
95
95
  return __awaiter(this, void 0, void 0, function* () {
96
- this.showLoader = true;
97
- switch (method) {
98
- case SendMethodType.Print:
99
- yield this.printDocument(this.reportDocumentPrintRequest);
100
- this.showLoader = false;
101
- break;
102
- case SendMethodType.Email:
103
- yield this.emailDocument(this.reportDocumentEmailRequest);
104
- this.showLoader = false;
105
- break;
106
- case SendMethodType.Pdf:
107
- yield this.pdfDocument(this.reportDocumentPdfRequest);
108
- this.showLoader = false;
109
- break;
96
+ if (!method) {
97
+ this.showSendMethodDialog = true;
98
+ }
99
+ else {
100
+ this.showLoader = true;
101
+ switch (method) {
102
+ case SendMethodType.Print:
103
+ yield this.printDocument(this.reportDocumentPrintRequest);
104
+ this.showLoader = false;
105
+ break;
106
+ case SendMethodType.Email:
107
+ yield this.emailDocument(this.reportDocumentEmailRequest);
108
+ this.showLoader = false;
109
+ break;
110
+ case SendMethodType.Pdf:
111
+ yield this.pdfDocument(this.reportDocumentPdfRequest);
112
+ this.showLoader = false;
113
+ break;
114
+ }
110
115
  }
111
116
  this.getHistoricDocuments();
112
117
  });
@@ -171,4 +176,4 @@ TransactionQuickAccessSendMethodBaseComponent.ctorParameters = () => [
171
176
  { type: ChangeDetectorRef },
172
177
  { type: DialogService }
173
178
  ];
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLXNlbmQtbWV0aG9kLWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzL3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy1zZW5kLW1ldGhvZC1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUduRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUUzRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFFbEYsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDakYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBUWxGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUdoRixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLHFDQUFxQyxFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDN0csT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFHcEcsTUFBTSxPQUFnQiw2Q0FBOEMsU0FBUSx3QkFBd0I7SUFxQmxHLFlBQ1MsdUJBQWdELEVBQ2hELGdCQUFrQyxFQUNsQyxtQkFBMEQsRUFDMUQsYUFBdUMsRUFDcEMsWUFBcUMsRUFDckMsaUJBQW9DLEVBQ3BDLGtCQUFzQyxFQUN0QyxjQUFpQyxFQUNqQyxhQUE0QjtRQUV0QyxLQUFLLENBQUMsdUJBQXVCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBVnBJLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXVDO1FBQzFELGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQUNwQyxpQkFBWSxHQUFaLFlBQVksQ0FBeUI7UUFDckMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQTdCeEIsVUFBSyxHQUFnQixJQUFJLENBQUM7UUFDMUIsbUJBQWMsR0FBMEIsY0FBYyxDQUFDO1FBQ3ZELDRCQUF1QixHQUFtQyx1QkFBdUIsQ0FBQztRQUUzRixnQkFBVyxHQUFjLEVBQUUsQ0FBQztRQUM1QixpQkFBWSxHQUFpQyxFQUFFLENBQUM7UUFDaEQsaUJBQVksR0FBaUMsRUFBRSxDQUFDO1FBR2hELG1CQUFjLEdBQWEsRUFBRSxDQUFDO1FBQzlCLHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQUN0QyxnQkFBVyxHQUFHLG1CQUFtQixDQUFDO1FBQ2xDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFFNUIsb0JBQWUsR0FBcUIsRUFBRSxDQUFDO0lBa0I5QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU0sY0FBYztRQUNuQixJQUFJLENBQUMsMEJBQTBCLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQ2xFLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDbEUsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztJQUNsRSxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDL0IsTUFBTSxtQkFBbUIsR0FBb0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1SCxNQUFNLHlCQUF5QixHQUFrQixtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbkcsSUFBSSxDQUFDLGNBQWMsR0FBRyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBbUIsRUFBRSxFQUFFO1lBQzdELElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNyQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDbkU7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFdBQVcsR0FBRyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDaEg7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxvQkFBb0I7UUFDekIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQzthQUNoRyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNmLElBQUksTUFBTSxFQUFFO2dCQUNWLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDO2FBQy9CO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRVksdUJBQXVCLENBQUMsTUFBYzs7WUFDakQsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssY0FBYyxDQUFDLEtBQUssSUFBSSxNQUFNLEtBQUssY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN6RyxNQUFNLFFBQVEsR0FBNEIsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsbUNBQW1DLENBQUMsQ0FBQztnQkFDOUgsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLGtCQUFrQixDQUFDLEdBQUcsRUFBRTtvQkFDOUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztvQkFDbEMsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUM5QixJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQ2hDO2FBQ0Y7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztnQkFDbEMsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM5QixJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDaEM7UUFDSCxDQUFDO0tBQUE7SUFFWSxVQUFVLENBQUMsTUFBYzs7WUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDdkIsUUFBUSxNQUFNLEVBQUU7Z0JBQ2QsS0FBSyxjQUFjLENBQUMsS0FBSztvQkFDdkIsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO29CQUMxRCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztvQkFDeEIsTUFBTTtnQkFDUixLQUFLLGNBQWMsQ0FBQyxLQUFLO29CQUN2QixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUM7b0JBQzFELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO29CQUN4QixNQUFNO2dCQUNSLEtBQUssY0FBYyxDQUFDLEdBQUc7b0JBQ3JCLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztvQkFDdEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7b0JBQ3hCLE1BQU07YUFDVDtZQUNELElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzlCLENBQUM7S0FBQTtJQUVNLDJCQUEyQjtRQUNoQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBZ0JPLFlBQVk7UUFDbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQXNCLEVBQUUsRUFBRTtZQUNwRSxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBYyxFQUFFLEVBQUU7WUFDbEQsSUFBSSxNQUFNLEtBQUssSUFBSSxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQzthQUMzQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVTLGlCQUFpQixDQUFDLE1BQWM7UUFDeEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDO1FBQ25FLElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDekMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7U0FDOUM7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFxQyxFQUFFLEVBQUU7WUFDcEUsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUM7WUFDNUIsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDckQsTUFBTSxhQUFhLEdBQStCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUMzRixJQUFJLGFBQWEsRUFBRTtvQkFDakIsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDO2lCQUNuRTthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFxQyxFQUFFLEVBQUU7WUFDcEUsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUM7WUFDNUIsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDckQsTUFBTSxhQUFhLEdBQStCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUMzRixJQUFJLGFBQWEsRUFBRTtvQkFDakIsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDO29CQUNsRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUM7aUJBQ2pFO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OztZQTFLRixTQUFTOzs7WUFURix1QkFBdUI7WUFDdkIsZ0JBQWdCO1lBQ2hCLHFDQUFxQztZQUtwQyx3QkFBd0I7WUFKekIsdUJBQXVCO1lBQ3ZCLGlCQUFpQjtZQUNqQixrQkFBa0I7WUEzQmxCLGlCQUFpQjtZQXFCakIsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtSZXBvcnRMYXlvdXRTZWxlY3Rpb25FbWFpbH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0LWxheW91dC1zZWxlY3Rpb24tZW1haWwuYm8nO1xyXG5pbXBvcnQge1JlcG9ydExheW91dFNlbGVjdGlvblByaW50fSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnQtbGF5b3V0LXNlbGVjdGlvbi1wcmludC5ibyc7XHJcbmltcG9ydCB7Q29tbXVuaWNhdGlvblR5cGV9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9lbnVtL2NvbW11bmljYXRpb24tdHlwZS5lbnVtJztcclxuaW1wb3J0IHtDb250YWN0T3B0aW9ufSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvY29udGFjdC1vcHRpb24uYm8nO1xyXG5pbXBvcnQge3NlbmRNZXRob2RzV2l0aEljb259IGZyb20gJ0Bjb2xpam5pdC9zaGFyZWRjb21wb25lbnRzJztcclxuaW1wb3J0IHtTZW5kTWV0aG9kVHlwZX0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS9zZW5kLW1ldGhvZC10eXBlLmVudW0nO1xyXG5pbXBvcnQge1JlcG9ydGluZ0RvY3VtZW50UGRmQmFzZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydGluZy1kb2N1bWVudC1wZGYtYmFzZS1yZXF1ZXN0JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkJhc2VDb21wb25lbnR9IGZyb20gJy4uL2NvcmUvYmFzZS90cmFuc2FjdGlvbi1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSAnLi4vLi4vZW51bS9pY29uLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uVHlwZUNhdGVnb3J5fSBmcm9tICcuLi8uLi9lbnVtL3RyYW5zYWN0aW9uLXR5cGUtY2F0ZWdvcnkuZW51bSc7XHJcbmltcG9ydCB7UHJpbnRlcn0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcHJpbnRlci5ibyc7XHJcbmltcG9ydCB7XHJcbiAgUmVwb3J0aW5nRG9jdW1lbnRFbWFpbFNpZ25Eb2NCYXNlUmVxdWVzdFxyXG59IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydGluZy1kb2N1bWVudC1lbWFpbC1zaWduLWRvYy1iYXNlLXJlcXVlc3QnO1xyXG5pbXBvcnQge1xyXG4gIFJlcG9ydGluZ0RvY3VtZW50UHJpbnRTaWduRG9jQmFzZVJlcXVlc3RcclxufSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnRpbmctZG9jdW1lbnQtcHJpbnQtc2lnbi1kb2MtYmFzZS1yZXF1ZXN0JztcclxuaW1wb3J0IHtMYXlvdXRDb2RlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vbGF5b3V0LWNvZGUuZW51bVwiO1xyXG5pbXBvcnQge0hpc3RvcmljUmVwb3J0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2hpc3RvcmljLXJlcG9ydC5ib1wiO1xyXG5pbXBvcnQge0RpYWxvZ1Jlc3BvbnNlSW50ZXJmYWNlfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlL2RpYWxvZy1yZXNwb25zZS5pbnRlcmZhY2VcIjtcclxuaW1wb3J0IHtEaWFsb2dTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kaWFsb2cuc2VydmljZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1ldmVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1pbWFnZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZVwiO1xyXG5pbXBvcnQge0FwcFBvcHVwQnV0dG9uVHlwZX0gZnJvbSBcIi4uL2NvcmUvZW51bS9hcHAtcG9wdXAtYnV0dG9uLXR5cGUuZW51bVwiO1xyXG5pbXBvcnQgeyBUcmFuc2FjdGlvblNlYXJjaFNlcnZpY2UgfSBmcm9tICcuLi90cmFuc2FjdGlvbi1zZWFyY2gvc2VydmljZS90cmFuc2FjdGlvbi1zZWFyY2guc2VydmljZSc7XHJcblxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRyYW5zYWN0aW9uUXVpY2tBY2Nlc3NTZW5kTWV0aG9kQmFzZUNvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcbiAgcHVibGljIHJlYWRvbmx5IHNlbmRNZXRob2RUeXBlOiB0eXBlb2YgU2VuZE1ldGhvZFR5cGUgPSBTZW5kTWV0aG9kVHlwZTtcclxuICBwdWJsaWMgcmVhZG9ubHkgdHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnk6IHR5cGVvZiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeSA9IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5O1xyXG5cclxuICBwdWJsaWMgcHJpbnRlckxpc3Q6IFByaW50ZXJbXSA9IFtdO1xyXG4gIHB1YmxpYyBlbWFpbExheW91dHM6IFJlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsW10gPSBbXTtcclxuICBwdWJsaWMgcHJpbnRMYXlvdXRzOiBSZXBvcnRMYXlvdXRTZWxlY3Rpb25QcmludFtdID0gW107XHJcbiAgcHVibGljIGRlZmF1bHRTZW5kTWV0aG9kOiBzdHJpbmc7XHJcbiAgcHVibGljIGRlZmF1bHRTZW5kTWV0aG9kSWNvbjogc3RyaW5nO1xyXG4gIHB1YmxpYyBlbWFpbEFkZHJlc3Nlczogc3RyaW5nW10gPSBbXTtcclxuICBwdWJsaWMgc2hvd1NlbmRNZXRob2REaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2VuZE1ldGhvZHMgPSBzZW5kTWV0aG9kc1dpdGhJY29uO1xyXG4gIHB1YmxpYyBzaG93TG9hZGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNpZ25hdHVyZURvY3VtZW50SWQ6IG51bWJlcjtcclxuICBwdWJsaWMgaGlzdG9yaWNSZXBvcnRzOiBIaXN0b3JpY1JlcG9ydFtdID0gW107XHJcblxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZXBvcnREb2N1bWVudEVtYWlsUmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRFbWFpbFNpZ25Eb2NCYXNlUmVxdWVzdDtcclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVwb3J0RG9jdW1lbnRQcmludFJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50UHJpbnRTaWduRG9jQmFzZVJlcXVlc3Q7XHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHJlcG9ydERvY3VtZW50UGRmUmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25FdmVudFNlcnZpY2U6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgc2NyZWVuQ29uZmlnU2VydmljZTogVHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZSxcclxuICAgIHB1YmxpYyBzZWFyY2hTZXJ2aWNlOiBUcmFuc2FjdGlvblNlYXJjaFNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgaW1hZ2VTZXJ2aWNlOiBUcmFuc2FjdGlvbkltYWdlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBkaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJvdGVjdGVkIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgKSB7XHJcbiAgICBzdXBlcih0cmFuc2FjdGlvbkV2ZW50U2VydmljZSwgaWNvbkNhY2hlU2VydmljZSwgc2NyZWVuQ29uZmlnU2VydmljZSwgaW1hZ2VTZXJ2aWNlLCBkaWN0aW9uYXJ5U2VydmljZSwgdHJhbnNhY3Rpb25TZXJ2aWNlLCBjaGFuZ2VEZXRlY3Rvcik7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2dldFByaW50ZXJzKCk7XHJcbiAgICB0aGlzLl9nZXREZWZhdWx0U2VuZE1ldGhvZCgpO1xyXG4gICAgdGhpcy5fZ2V0RW1haWxMYXlvdXRzKCk7XHJcbiAgICB0aGlzLl9nZXRQcmludExheW91dHMoKTtcclxuICAgIHRoaXMuZ2V0SGlzdG9yaWNEb2N1bWVudHMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvblNldCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVwb3J0RG9jdW1lbnRFbWFpbFJlcXVlc3QudHJhbnNJZCA9IHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkO1xyXG4gICAgdGhpcy5yZXBvcnREb2N1bWVudFByaW50UmVxdWVzdC50cmFuc0lkID0gdGhpcy50cmFuc2FjdGlvbkluZm8uaWQ7XHJcbiAgICB0aGlzLnJlcG9ydERvY3VtZW50UGRmUmVxdWVzdC50cmFuc0lkID0gdGhpcy50cmFuc2FjdGlvbkluZm8uaWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVsYXRpb25TZXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVtYWlsQWRkcmVzc2VzLmxlbmd0aCA9IDA7XHJcbiAgICBjb25zdCBlbWFpbENvbnRhY3RPcHRpb25zOiBDb250YWN0T3B0aW9uW10gPSB0aGlzLnJlbGF0aW9uLmNvbnRhY3RPcHRpb25zLmZpbHRlcihjbyA9PiBjby50eXBlID09PSBDb21tdW5pY2F0aW9uVHlwZS5FbWFpbCk7XHJcbiAgICBjb25zdCBkZWZhdWx0RW1haWxDb250YWN0T3B0aW9uOiBDb250YWN0T3B0aW9uID0gZW1haWxDb250YWN0T3B0aW9ucy5maW5kKGNvID0+IGNvLmxvd2VzdFNlcXVlbmNlKTtcclxuICAgIHRoaXMuZW1haWxBZGRyZXNzZXMgPSBlbWFpbENvbnRhY3RPcHRpb25zLm1hcChlID0+IGUudmFsdWUpO1xyXG4gICAgdGhpcy5nZXREZWZhdWx0RW1haWxBZGRyZXNzTGlzdCgpLnRoZW4oKGFkZHJlc3Nlczogc3RyaW5nW10pID0+IHtcclxuICAgICAgaWYgKGFkZHJlc3NlcyAmJiBhZGRyZXNzZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMucmVwb3J0RG9jdW1lbnRFbWFpbFJlcXVlc3QudG9BZGRyZXNzZXMgPSBhZGRyZXNzZXMuam9pbignOycpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucmVwb3J0RG9jdW1lbnRFbWFpbFJlcXVlc3QudG9BZGRyZXNzZXMgPSBkZWZhdWx0RW1haWxDb250YWN0T3B0aW9uID8gZGVmYXVsdEVtYWlsQ29udGFjdE9wdGlvbi52YWx1ZSA6ICcnO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRIaXN0b3JpY0RvY3VtZW50cygpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldEhpc3RvcmljRG9jdW1lbnRzKHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkLCBMYXlvdXRDb2RlLk9yZGVyQ29uZmlybWF0aW9uKVxyXG4gICAgICAudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgdGhpcy5oaXN0b3JpY1JlcG9ydHMgPSByZXN1bHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVTZW5kTWV0aG9kT2tDbGljayhtZXRob2Q6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMuaGlzdG9yaWNSZXBvcnRzLmxlbmd0aCA+IDAgJiYgKG1ldGhvZCA9PT0gU2VuZE1ldGhvZFR5cGUuRW1haWwgfHwgbWV0aG9kID09PSBTZW5kTWV0aG9kVHlwZS5QZGYpKSB7XHJcbiAgICAgIGNvbnN0IHJlc3BvbnNlOiBEaWFsb2dSZXNwb25zZUludGVyZmFjZSA9IGF3YWl0IHRoaXMuZGlhbG9nU2VydmljZS5zaG93WWVzTm8oJ1FVRVNUSU9OJywgJ1FVRVNUSU9OX0RPQ1VNRU5UX0FMUkVBRFlfUFJJTlRFRCcpO1xyXG4gICAgICBpZiAocmVzcG9uc2UuYnV0dG9uID09PSBBcHBQb3B1cEJ1dHRvblR5cGUuWWVzKSB7XHJcbiAgICAgICAgdGhpcy5zaG93U2VuZE1ldGhvZERpYWxvZyA9IGZhbHNlO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuaGFuZGxlU2VuZChtZXRob2QpO1xyXG4gICAgICAgIHRoaXMuX3NldERlZmF1bHRNZXRob2QobWV0aG9kKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zaG93U2VuZE1ldGhvZERpYWxvZyA9IGZhbHNlO1xyXG4gICAgICBhd2FpdCB0aGlzLmhhbmRsZVNlbmQobWV0aG9kKTtcclxuICAgICAgdGhpcy5fc2V0RGVmYXVsdE1ldGhvZChtZXRob2QpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZVNlbmQobWV0aG9kOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuc2hvd0xvYWRlciA9IHRydWU7XHJcbiAgICBzd2l0Y2ggKG1ldGhvZCkge1xyXG4gICAgICBjYXNlIFNlbmRNZXRob2RUeXBlLlByaW50OlxyXG4gICAgICAgIGF3YWl0IHRoaXMucHJpbnREb2N1bWVudCh0aGlzLnJlcG9ydERvY3VtZW50UHJpbnRSZXF1ZXN0KTtcclxuICAgICAgICB0aGlzLnNob3dMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBTZW5kTWV0aG9kVHlwZS5FbWFpbDpcclxuICAgICAgICBhd2FpdCB0aGlzLmVtYWlsRG9jdW1lbnQodGhpcy5yZXBvcnREb2N1bWVudEVtYWlsUmVxdWVzdCk7XHJcbiAgICAgICAgdGhpcy5zaG93TG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgU2VuZE1ldGhvZFR5cGUuUGRmOlxyXG4gICAgICAgIGF3YWl0IHRoaXMucGRmRG9jdW1lbnQodGhpcy5yZXBvcnREb2N1bWVudFBkZlJlcXVlc3QpO1xyXG4gICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRIaXN0b3JpY0RvY3VtZW50cygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbW1pdEFuZFJlZnJlc2hUcmFuc2FjdGlvbigpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmNvbW1pdEFuZFJlZnJlc2hUcmFuc2FjdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHByaW50RG9jdW1lbnQocmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRQcmludFNpZ25Eb2NCYXNlUmVxdWVzdCk7XHJcblxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBlbWFpbERvY3VtZW50KHJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50RW1haWxTaWduRG9jQmFzZVJlcXVlc3QpO1xyXG5cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcGRmRG9jdW1lbnQocmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdCk7XHJcblxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRFbWFpbExheW91dHMoKTogUHJvbWlzZTxSZXBvcnRMYXlvdXRTZWxlY3Rpb25FbWFpbFtdPjtcclxuXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldFByaW50TGF5b3V0cygpOiBQcm9taXNlPFJlcG9ydExheW91dFNlbGVjdGlvblByaW50W10+O1xyXG5cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0RGVmYXVsdEVtYWlsQWRkcmVzc0xpc3QoKTogUHJvbWlzZTxzdHJpbmdbXT47XHJcblxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXREZWZhdWx0U2VuZE1ldGhvZCgpOiBQcm9taXNlPG51bWJlcj47XHJcblxyXG4gIHByaXZhdGUgX2dldFByaW50ZXJzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0UHJpbnRlcnMoKS50aGVuKChwcmludGVyTGlzdDogUHJpbnRlcltdKSA9PiB7XHJcbiAgICAgIHRoaXMucHJpbnRlckxpc3QgPSBwcmludGVyTGlzdDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZ2V0RGVmYXVsdFNlbmRNZXRob2QoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldERlZmF1bHRTZW5kTWV0aG9kKCkudGhlbigobWV0aG9kOiBudW1iZXIpID0+IHtcclxuICAgICAgaWYgKG1ldGhvZCAhPT0gbnVsbCAmJiBtZXRob2QgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuX3NldERlZmF1bHRNZXRob2QobWV0aG9kLnRvU3RyaW5nKCkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfc2V0RGVmYXVsdE1ldGhvZChtZXRob2Q6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3Qgc2VuZE1ldGhvZCA9IHRoaXMuc2VuZE1ldGhvZHMuZmluZChzbSA9PiBzbS5jb2RlID09PSBtZXRob2QpO1xyXG4gICAgaWYgKHNlbmRNZXRob2QpIHtcclxuICAgICAgdGhpcy5kZWZhdWx0U2VuZE1ldGhvZCA9IHNlbmRNZXRob2QuY29kZTtcclxuICAgICAgdGhpcy5kZWZhdWx0U2VuZE1ldGhvZEljb24gPSBzZW5kTWV0aG9kLmljb247XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRFbWFpbExheW91dHMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldEVtYWlsTGF5b3V0cygpLnRoZW4oKGxheW91dHM6IFJlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsW10pID0+IHtcclxuICAgICAgdGhpcy5lbWFpbExheW91dHMgPSBsYXlvdXRzO1xyXG4gICAgICBpZiAodGhpcy5lbWFpbExheW91dHMgJiYgdGhpcy5lbWFpbExheW91dHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRMYXlvdXQ6IFJlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsID0gdGhpcy5lbWFpbExheW91dHMuZmluZChlID0+IGUuaXNEZWZhdWx0KTtcclxuICAgICAgICBpZiAoZGVmYXVsdExheW91dCkge1xyXG4gICAgICAgICAgdGhpcy5yZXBvcnREb2N1bWVudEVtYWlsUmVxdWVzdC5yZXBvcnRJZCA9IGRlZmF1bHRMYXlvdXQucmVwb3J0SWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldFByaW50TGF5b3V0cygpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0UHJpbnRMYXlvdXRzKCkudGhlbigobGF5b3V0czogUmVwb3J0TGF5b3V0U2VsZWN0aW9uUHJpbnRbXSkgPT4ge1xyXG4gICAgICB0aGlzLnByaW50TGF5b3V0cyA9IGxheW91dHM7XHJcbiAgICAgIGlmICh0aGlzLnByaW50TGF5b3V0cyAmJiB0aGlzLnByaW50TGF5b3V0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgY29uc3QgZGVmYXVsdExheW91dDogUmVwb3J0TGF5b3V0U2VsZWN0aW9uUHJpbnQgPSB0aGlzLnByaW50TGF5b3V0cy5maW5kKHAgPT4gcC5pc0RlZmF1bHQpO1xyXG4gICAgICAgIGlmIChkZWZhdWx0TGF5b3V0KSB7XHJcbiAgICAgICAgICB0aGlzLnJlcG9ydERvY3VtZW50UHJpbnRSZXF1ZXN0LnJlcG9ydElkID0gZGVmYXVsdExheW91dC5yZXBvcnRJZDtcclxuICAgICAgICAgIHRoaXMucmVwb3J0RG9jdW1lbnRQZGZSZXF1ZXN0LnJlcG9ydElkID0gZGVmYXVsdExheW91dC5yZXBvcnRJZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLXNlbmQtbWV0aG9kLWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzL3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy1zZW5kLW1ldGhvZC1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUduRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUUzRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFFbEYsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDakYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBUWxGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUdoRixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLHFDQUFxQyxFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDN0csT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFD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LENBQUM7Z0JBQzNGLElBQUksYUFBYSxFQUFFO29CQUNqQixJQUFJLENBQUMsMEJBQTBCLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUM7aUJBQ25FO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQXFDLEVBQUUsRUFBRTtZQUNwRSxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztZQUM1QixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNyRCxNQUFNLGFBQWEsR0FBK0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzNGLElBQUksYUFBYSxFQUFFO29CQUNqQixJQUFJLENBQUMsMEJBQTBCLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUM7b0JBQ2xFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQztpQkFDakU7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBOUtGLFNBQVM7OztZQVRGLHVCQUF1QjtZQUN2QixnQkFBZ0I7WUFDaEIscUNBQXFDO1lBS3BDLHdCQUF3QjtZQUp6Qix1QkFBdUI7WUFDdkIsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQTNCbEIsaUJBQWlCO1lBcUJqQixhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1JlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnQtbGF5b3V0LXNlbGVjdGlvbi1lbWFpbC5ibyc7XHJcbmltcG9ydCB7UmVwb3J0TGF5b3V0U2VsZWN0aW9uUHJpbnR9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydC1sYXlvdXQtc2VsZWN0aW9uLXByaW50LmJvJztcclxuaW1wb3J0IHtDb21tdW5pY2F0aW9uVHlwZX0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL2VudW0vY29tbXVuaWNhdGlvbi10eXBlLmVudW0nO1xyXG5pbXBvcnQge0NvbnRhY3RPcHRpb259IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9jb250YWN0LW9wdGlvbi5ibyc7XHJcbmltcG9ydCB7c2VuZE1ldGhvZHNXaXRoSWNvbn0gZnJvbSAnQGNvbGlqbml0L3NoYXJlZGNvbXBvbmVudHMnO1xyXG5pbXBvcnQge1NlbmRNZXRob2RUeXBlfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL3NlbmQtbWV0aG9kLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7UmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0aW5nLWRvY3VtZW50LXBkZi1iYXNlLXJlcXVlc3QnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vY29yZS9iYXNlL3RyYW5zYWN0aW9uLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHtJY29ufSBmcm9tICcuLi8uLi9lbnVtL2ljb24uZW51bSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9IGZyb20gJy4uLy4uL2VudW0vdHJhbnNhY3Rpb24tdHlwZS1jYXRlZ29yeS5lbnVtJztcclxuaW1wb3J0IHtQcmludGVyfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9wcmludGVyLmJvJztcclxuaW1wb3J0IHtcclxuICBSZXBvcnRpbmdEb2N1bWVudEVtYWlsU2lnbkRvY0Jhc2VSZXF1ZXN0XHJcbn0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0aW5nLWRvY3VtZW50LWVtYWlsLXNpZ24tZG9jLWJhc2UtcmVxdWVzdCc7XHJcbmltcG9ydCB7XHJcbiAgUmVwb3J0aW5nRG9jdW1lbnRQcmludFNpZ25Eb2NCYXNlUmVxdWVzdFxyXG59IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydGluZy1kb2N1bWVudC1wcmludC1zaWduLWRvYy1iYXNlLXJlcXVlc3QnO1xyXG5pbXBvcnQge0xheW91dENvZGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9sYXlvdXQtY29kZS5lbnVtXCI7XHJcbmltcG9ydCB7SGlzdG9yaWNSZXBvcnR9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvaGlzdG9yaWMtcmVwb3J0LmJvXCI7XHJcbmltcG9ydCB7RGlhbG9nUmVzcG9uc2VJbnRlcmZhY2V9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2UvZGlhbG9nLXJlc3BvbnNlLmludGVyZmFjZVwiO1xyXG5pbXBvcnQge0RpYWxvZ1NlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2RpYWxvZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbWFnZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWltYWdlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7QXBwUG9wdXBCdXR0b25UeXBlfSBmcm9tIFwiLi4vY29yZS9lbnVtL2FwcC1wb3B1cC1idXR0b24tdHlwZS5lbnVtXCI7XHJcbmltcG9ydCB7IFRyYW5zYWN0aW9uU2VhcmNoU2VydmljZSB9IGZyb20gJy4uL3RyYW5zYWN0aW9uLXNlYXJjaC9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNlYXJjaC5zZXJ2aWNlJztcclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVHJhbnNhY3Rpb25RdWlja0FjY2Vzc1NlbmRNZXRob2RCYXNlQ29tcG9uZW50IGV4dGVuZHMgVHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuICBwdWJsaWMgcmVhZG9ubHkgc2VuZE1ldGhvZFR5cGU6IHR5cGVvZiBTZW5kTWV0aG9kVHlwZSA9IFNlbmRNZXRob2RUeXBlO1xyXG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2FjdGlvblR5cGVDYXRlZ29yeTogdHlwZW9mIFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5ID0gVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnk7XHJcblxyXG4gIHB1YmxpYyBwcmludGVyTGlzdDogUHJpbnRlcltdID0gW107XHJcbiAgcHVibGljIGVtYWlsTGF5b3V0czogUmVwb3J0TGF5b3V0U2VsZWN0aW9uRW1haWxbXSA9IFtdO1xyXG4gIHB1YmxpYyBwcmludExheW91dHM6IFJlcG9ydExheW91dFNlbGVjdGlvblByaW50W10gPSBbXTtcclxuICBwdWJsaWMgZGVmYXVsdFNlbmRNZXRob2Q6IHN0cmluZztcclxuICBwdWJsaWMgZGVmYXVsdFNlbmRNZXRob2RJY29uOiBzdHJpbmc7XHJcbiAgcHVibGljIGVtYWlsQWRkcmVzc2VzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHB1YmxpYyBzaG93U2VuZE1ldGhvZERpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzZW5kTWV0aG9kcyA9IHNlbmRNZXRob2RzV2l0aEljb247XHJcbiAgcHVibGljIHNob3dMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2lnbmF0dXJlRG9jdW1lbnRJZDogbnVtYmVyO1xyXG4gIHB1YmxpYyBoaXN0b3JpY1JlcG9ydHM6IEhpc3RvcmljUmVwb3J0W10gPSBbXTtcclxuXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHJlcG9ydERvY3VtZW50RW1haWxSZXF1ZXN0OiBSZXBvcnRpbmdEb2N1bWVudEVtYWlsU2lnbkRvY0Jhc2VSZXF1ZXN0O1xyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZXBvcnREb2N1bWVudFByaW50UmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRQcmludFNpZ25Eb2NCYXNlUmVxdWVzdDtcclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVwb3J0RG9jdW1lbnRQZGZSZXF1ZXN0OiBSZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHB1YmxpYyBzY3JlZW5Db25maWdTZXJ2aWNlOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIHNlYXJjaFNlcnZpY2U6IFRyYW5zYWN0aW9uU2VhcmNoU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBpbWFnZVNlcnZpY2U6IFRyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGRpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgIHByb3RlY3RlZCB0cmFuc2FjdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcm90ZWN0ZWQgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICApIHtcclxuICAgIHN1cGVyKHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLCBpY29uQ2FjaGVTZXJ2aWNlLCBzY3JlZW5Db25maWdTZXJ2aWNlLCBpbWFnZVNlcnZpY2UsIGRpY3Rpb25hcnlTZXJ2aWNlLCB0cmFuc2FjdGlvblNlcnZpY2UsIGNoYW5nZURldGVjdG9yKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZ2V0UHJpbnRlcnMoKTtcclxuICAgIHRoaXMuX2dldERlZmF1bHRTZW5kTWV0aG9kKCk7XHJcbiAgICB0aGlzLl9nZXRFbWFpbExheW91dHMoKTtcclxuICAgIHRoaXMuX2dldFByaW50TGF5b3V0cygpO1xyXG4gICAgdGhpcy5nZXRIaXN0b3JpY0RvY3VtZW50cygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uU2V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXBvcnREb2N1bWVudEVtYWlsUmVxdWVzdC50cmFuc0lkID0gdGhpcy50cmFuc2FjdGlvbkluZm8uaWQ7XHJcbiAgICB0aGlzLnJlcG9ydERvY3VtZW50UHJpbnRSZXF1ZXN0LnRyYW5zSWQgPSB0aGlzLnRyYW5zYWN0aW9uSW5mby5pZDtcclxuICAgIHRoaXMucmVwb3J0RG9jdW1lbnRQZGZSZXF1ZXN0LnRyYW5zSWQgPSB0aGlzLnRyYW5zYWN0aW9uSW5mby5pZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWxhdGlvblNldCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZW1haWxBZGRyZXNzZXMubGVuZ3RoID0gMDtcclxuICAgIGNvbnN0IGVtYWlsQ29udGFjdE9wdGlvbnM6IENvbnRhY3RPcHRpb25bXSA9IHRoaXMucmVsYXRpb24uY29udGFjdE9wdGlvbnMuZmlsdGVyKGNvID0+IGNvLnR5cGUgPT09IENvbW11bmljYXRpb25UeXBlLkVtYWlsKTtcclxuICAgIGNvbnN0IGRlZmF1bHRFbWFpbENvbnRhY3RPcHRpb246IENvbnRhY3RPcHRpb24gPSBlbWFpbENvbnRhY3RPcHRpb25zLmZpbmQoY28gPT4gY28ubG93ZXN0U2VxdWVuY2UpO1xyXG4gICAgdGhpcy5lbWFpbEFkZHJlc3NlcyA9IGVtYWlsQ29udGFjdE9wdGlvbnMubWFwKGUgPT4gZS52YWx1ZSk7XHJcbiAgICB0aGlzLmdldERlZmF1bHRFbWFpbEFkZHJlc3NMaXN0KCkudGhlbigoYWRkcmVzc2VzOiBzdHJpbmdbXSkgPT4ge1xyXG4gICAgICBpZiAoYWRkcmVzc2VzICYmIGFkZHJlc3Nlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5yZXBvcnREb2N1bWVudEVtYWlsUmVxdWVzdC50b0FkZHJlc3NlcyA9IGFkZHJlc3Nlcy5qb2luKCc7Jyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5yZXBvcnREb2N1bWVudEVtYWlsUmVxdWVzdC50b0FkZHJlc3NlcyA9IGRlZmF1bHRFbWFpbENvbnRhY3RPcHRpb24gPyBkZWZhdWx0RW1haWxDb250YWN0T3B0aW9uLnZhbHVlIDogJyc7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEhpc3RvcmljRG9jdW1lbnRzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0SGlzdG9yaWNEb2N1bWVudHModGhpcy50cmFuc2FjdGlvbkluZm8uaWQsIExheW91dENvZGUuT3JkZXJDb25maXJtYXRpb24pXHJcbiAgICAgIC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICB0aGlzLmhpc3RvcmljUmVwb3J0cyA9IHJlc3VsdDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZVNlbmRNZXRob2RPa0NsaWNrKG1ldGhvZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5oaXN0b3JpY1JlcG9ydHMubGVuZ3RoID4gMCAmJiAobWV0aG9kID09PSBTZW5kTWV0aG9kVHlwZS5FbWFpbCB8fCBtZXRob2QgPT09IFNlbmRNZXRob2RUeXBlLlBkZikpIHtcclxuICAgICAgY29uc3QgcmVzcG9uc2U6IERpYWxvZ1Jlc3BvbnNlSW50ZXJmYWNlID0gYXdhaXQgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dZZXNObygnUVVFU1RJT04nLCAnUVVFU1RJT05fRE9DVU1FTlRfQUxSRUFEWV9QUklOVEVEJyk7XHJcbiAgICAgIGlmIChyZXNwb25zZS5idXR0b24gPT09IEFwcFBvcHVwQnV0dG9uVHlwZS5ZZXMpIHtcclxuICAgICAgICB0aGlzLnNob3dTZW5kTWV0aG9kRGlhbG9nID0gZmFsc2U7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVTZW5kKG1ldGhvZCk7XHJcbiAgICAgICAgdGhpcy5fc2V0RGVmYXVsdE1ldGhvZChtZXRob2QpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNob3dTZW5kTWV0aG9kRGlhbG9nID0gZmFsc2U7XHJcbiAgICAgIGF3YWl0IHRoaXMuaGFuZGxlU2VuZChtZXRob2QpO1xyXG4gICAgICB0aGlzLl9zZXREZWZhdWx0TWV0aG9kKG1ldGhvZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlU2VuZChtZXRob2Q6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYoIW1ldGhvZCkge1xyXG4gICAgICB0aGlzLnNob3dTZW5kTWV0aG9kRGlhbG9nID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd0xvYWRlciA9IHRydWU7XHJcbiAgICAgIHN3aXRjaCAobWV0aG9kKSB7XHJcbiAgICAgICAgY2FzZSBTZW5kTWV0aG9kVHlwZS5QcmludDpcclxuICAgICAgICAgIGF3YWl0IHRoaXMucHJpbnREb2N1bWVudCh0aGlzLnJlcG9ydERvY3VtZW50UHJpbnRSZXF1ZXN0KTtcclxuICAgICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBTZW5kTWV0aG9kVHlwZS5FbWFpbDpcclxuICAgICAgICAgIGF3YWl0IHRoaXMuZW1haWxEb2N1bWVudCh0aGlzLnJlcG9ydERvY3VtZW50RW1haWxSZXF1ZXN0KTtcclxuICAgICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBTZW5kTWV0aG9kVHlwZS5QZGY6XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLnBkZkRvY3VtZW50KHRoaXMucmVwb3J0RG9jdW1lbnRQZGZSZXF1ZXN0KTtcclxuICAgICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuZ2V0SGlzdG9yaWNEb2N1bWVudHMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb21taXRBbmRSZWZyZXNoVHJhbnNhY3Rpb24oKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5jb21taXRBbmRSZWZyZXNoVHJhbnNhY3Rpb24oKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBwcmludERvY3VtZW50KHJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50UHJpbnRTaWduRG9jQmFzZVJlcXVlc3QpO1xyXG5cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZW1haWxEb2N1bWVudChyZXF1ZXN0OiBSZXBvcnRpbmdEb2N1bWVudEVtYWlsU2lnbkRvY0Jhc2VSZXF1ZXN0KTtcclxuXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHBkZkRvY3VtZW50KHJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50UGRmQmFzZVJlcXVlc3QpO1xyXG5cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0RW1haWxMYXlvdXRzKCk6IFByb21pc2U8UmVwb3J0TGF5b3V0U2VsZWN0aW9uRW1haWxbXT47XHJcblxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRQcmludExheW91dHMoKTogUHJvbWlzZTxSZXBvcnRMYXlvdXRTZWxlY3Rpb25QcmludFtdPjtcclxuXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldERlZmF1bHRFbWFpbEFkZHJlc3NMaXN0KCk6IFByb21pc2U8c3RyaW5nW10+O1xyXG5cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0RGVmYXVsdFNlbmRNZXRob2QoKTogUHJvbWlzZTxudW1iZXI+O1xyXG5cclxuICBwcml2YXRlIF9nZXRQcmludGVycygpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldFByaW50ZXJzKCkudGhlbigocHJpbnRlckxpc3Q6IFByaW50ZXJbXSkgPT4ge1xyXG4gICAgICB0aGlzLnByaW50ZXJMaXN0ID0gcHJpbnRlckxpc3Q7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldERlZmF1bHRTZW5kTWV0aG9kKCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXREZWZhdWx0U2VuZE1ldGhvZCgpLnRoZW4oKG1ldGhvZDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIGlmIChtZXRob2QgIT09IG51bGwgJiYgbWV0aG9kICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLl9zZXREZWZhdWx0TWV0aG9kKG1ldGhvZC50b1N0cmluZygpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX3NldERlZmF1bHRNZXRob2QobWV0aG9kOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IHNlbmRNZXRob2QgPSB0aGlzLnNlbmRNZXRob2RzLmZpbmQoc20gPT4gc20uY29kZSA9PT0gbWV0aG9kKTtcclxuICAgIGlmIChzZW5kTWV0aG9kKSB7XHJcbiAgICAgIHRoaXMuZGVmYXVsdFNlbmRNZXRob2QgPSBzZW5kTWV0aG9kLmNvZGU7XHJcbiAgICAgIHRoaXMuZGVmYXVsdFNlbmRNZXRob2RJY29uID0gc2VuZE1ldGhvZC5pY29uO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZ2V0RW1haWxMYXlvdXRzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXRFbWFpbExheW91dHMoKS50aGVuKChsYXlvdXRzOiBSZXBvcnRMYXlvdXRTZWxlY3Rpb25FbWFpbFtdKSA9PiB7XHJcbiAgICAgIHRoaXMuZW1haWxMYXlvdXRzID0gbGF5b3V0cztcclxuICAgICAgaWYgKHRoaXMuZW1haWxMYXlvdXRzICYmIHRoaXMuZW1haWxMYXlvdXRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBjb25zdCBkZWZhdWx0TGF5b3V0OiBSZXBvcnRMYXlvdXRTZWxlY3Rpb25FbWFpbCA9IHRoaXMuZW1haWxMYXlvdXRzLmZpbmQoZSA9PiBlLmlzRGVmYXVsdCk7XHJcbiAgICAgICAgaWYgKGRlZmF1bHRMYXlvdXQpIHtcclxuICAgICAgICAgIHRoaXMucmVwb3J0RG9jdW1lbnRFbWFpbFJlcXVlc3QucmVwb3J0SWQgPSBkZWZhdWx0TGF5b3V0LnJlcG9ydElkO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRQcmludExheW91dHMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldFByaW50TGF5b3V0cygpLnRoZW4oKGxheW91dHM6IFJlcG9ydExheW91dFNlbGVjdGlvblByaW50W10pID0+IHtcclxuICAgICAgdGhpcy5wcmludExheW91dHMgPSBsYXlvdXRzO1xyXG4gICAgICBpZiAodGhpcy5wcmludExheW91dHMgJiYgdGhpcy5wcmludExheW91dHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRMYXlvdXQ6IFJlcG9ydExheW91dFNlbGVjdGlvblByaW50ID0gdGhpcy5wcmludExheW91dHMuZmluZChwID0+IHAuaXNEZWZhdWx0KTtcclxuICAgICAgICBpZiAoZGVmYXVsdExheW91dCkge1xyXG4gICAgICAgICAgdGhpcy5yZXBvcnREb2N1bWVudFByaW50UmVxdWVzdC5yZXBvcnRJZCA9IGRlZmF1bHRMYXlvdXQucmVwb3J0SWQ7XHJcbiAgICAgICAgICB0aGlzLnJlcG9ydERvY3VtZW50UGRmUmVxdWVzdC5yZXBvcnRJZCA9IGRlZmF1bHRMYXlvdXQucmVwb3J0SWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==