@colijnit/transaction 258.1.37 → 258.1.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/colijnit-transaction.umd.js +4 -4
- package/bundles/colijnit-transaction.umd.js.map +1 -1
- package/colijnit-transaction.metadata.json +1 -1
- package/esm2015/lib/component/transaction-header/transaction-header-popup/transaction-header-popup-payment.component.js +3 -3
- package/esm2015/lib/transaction-version.js +3 -3
- package/fesm2015/colijnit-transaction.js +4 -4
- package/fesm2015/colijnit-transaction.js.map +1 -1
- package/package.json +1 -1
|
@@ -117,7 +117,7 @@ export class TransactionHeaderPopupPaymentComponent extends TransactionHeaderPop
|
|
|
117
117
|
return this.transactionLines.some(line => line.directSell && line.dropShipment);
|
|
118
118
|
}
|
|
119
119
|
showInvoiceSelection() {
|
|
120
|
-
return this.orderPaymentAnalysis.filter(payment => payment.transactionKind === this.transKind.SalesInvoice && payment.outstandingAmount
|
|
120
|
+
return this.orderPaymentAnalysis.filter(payment => payment.transactionKind === this.transKind.SalesInvoice && payment.outstandingAmount !== 0).length > 1;
|
|
121
121
|
}
|
|
122
122
|
handleSelectInvoiceLines(paymentInfo) {
|
|
123
123
|
this.orderPaymentAnalysis.forEach(invoice => invoice.isSelected = false);
|
|
@@ -343,7 +343,7 @@ TransactionHeaderPopupPaymentComponent.decorators = [
|
|
|
343
343
|
<tr *ngFor="let paymentInfo of orderPaymentAnalysis">
|
|
344
344
|
<td class="left" *ngIf="showInvoiceSelection()">
|
|
345
345
|
<co-input-radio-button
|
|
346
|
-
*ngIf="paymentInfo.transactionKind === transKind.SalesInvoice && paymentInfo.outstandingAmount
|
|
346
|
+
*ngIf="paymentInfo.transactionKind === transKind.SalesInvoice && paymentInfo.outstandingAmount !== 0"
|
|
347
347
|
class="default-width"
|
|
348
348
|
[(model)]="paymentInfo.isSelected"
|
|
349
349
|
(modelChange)="handleSelectInvoiceLines(paymentInfo)">
|
|
@@ -450,4 +450,4 @@ TransactionHeaderPopupPaymentComponent.ctorParameters = () => [
|
|
|
450
450
|
TransactionHeaderPopupPaymentComponent.propDecorators = {
|
|
451
451
|
showClass: [{ type: HostBinding, args: ['class.co-transaction-header-popup-payment',] }]
|
|
452
452
|
};
|
|
453
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXBheW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24taGVhZGVyL3RyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC90cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtcGF5bWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFxQixpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUMsbUNBQW1DLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUc5RixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUNoSCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUNyRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUMxRyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDL0UsT0FBTyxFQUFD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WUFVakIsd0JBQXdCO1lBQ3hCLGlCQUFpQjtZQUNqQiwwQkFBMEI7WUFDMUIsa0NBQWtDOzs7d0JBOFB2QyxXQUFXLFNBQUMsMkNBQTJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgT25EZXN0cm95LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkhlYWRlclBvcHVwQmFzZUNvbXBvbmVudH0gZnJvbSAnLi90cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRGVwb3NpdFBheW1lbnRJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tZGVwb3NpdC1wYXltZW50LWluZm8uYm8nO1xyXG5pbXBvcnQge1BheW1lbnRBbmFseXNpc30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BheW1lbnQtYW5hbHlzaXMuYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWltYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7Rm9ybU1hc3RlclNlcnZpY2V9IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTInO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uUmVsYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXJlbGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uUGF5bWVudENvbm5lY3RvclNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tcGF5bWVudC1jb25uZWN0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7SW50ZXJuYWxQYXJhbX0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS9pbnRlcm5hbC1wYXJhbS5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkhlYWRlclNlcnZpY2V9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS9zZXJ2aWNlL3RyYW5zYWN0aW9uLWhlYWRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge09iamVjdENvbmZpZ3VyYXRpb259IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL29iamVjdC1jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHtDb0N1cnJlbmN5UGlwZX0gZnJvbSAnLi4vLi4vLi4vcGlwZS9jby1jdXJyZW5jeS5waXBlJztcclxuaW1wb3J0IHtPcmRlclBheW1lbnRBbmFseXNpc30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL29yZGVyLXBheW1lbnQtYW5hbHlzaXMuYm8nO1xyXG5pbXBvcnQge09yZGVyUGF5bWVudEFuYWx5c2lzRmlsdGVyfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvb3JkZXItcGF5bWVudC1hbmFseXNpcy1maWx0ZXIuYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uUmVnaXN0ZXJlZFBheW1lbnRJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tcmVnaXN0ZXJlZC1wYXltZW50LWluZm8uYm8nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50Q2F0ZWdvcnkge1xyXG4gIGluZGV4OiBudW1iZXI7XHJcbiAgdGl0bGU6IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjby10cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtcGF5bWVudCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1jYXRlZ29yeS13cmFwcGVyIGNvLXNtYWxsLXNjcm9sbGJhclwiPlxyXG4gICAgICAgICAgPGNvLWZvcm0+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1zZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1zZWN0aW9uLWxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dQYXlEb3duTGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCInVE9fUEFZX0RPV04nIHwgbG9jYWxpemVcIj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXR3by1jb2x1bW4tZ3JpZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1kZXBvc2l0LXBlcmNlbnRhZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuRGVwb3NpdFBlcmNlbnRhZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9ja0FuZFNhdmVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZXBvc2l0VXBkYXRlZCk9XCJzaG93T3V0c3RhbmRpbmdBbW91bnRzKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvY28tdHJhbnNhY3Rpb24taGVhZGVyLWRlcG9zaXQtcGVyY2VudGFnZT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1oZWFkZXItZGVwb3NpdC1hbW91bnQgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXRvdGFscy1wcmljZSBwcmljZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkRlcG9zaXRBbW91bnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9ja0FuZFNhdmVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChidXNpbmVzc1J1bGVBcHBsaWVkKT1cInNob3dCdXNpbmVzc1J1bGVJbmZvID0gJGV2ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1kZXBvc2l0LWFtb3VudD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXRocmVlLWNvbHVtbi1ncmlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLXVzZS1kZXBvc2l0LXJ1bGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25LaW5kICE9PSB0cmFuc0tpbmQuUHVyY2hhc2VPcmRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLlVzZURlcG9zaXRSdWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvY2tBbmRTYXZlXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWhlYWRlci11c2UtZGVwb3NpdC1ydWxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1hdXRvLXJlY2FsY3VsYXRlLWRlcG9zaXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25LaW5kICE9PSB0cmFuc0tpbmQuUHVyY2hhc2VPcmRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkF1dG9SZWNhbGN1bGF0ZURlcG9zaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9ja0FuZFNhdmVdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvY28tdHJhbnNhY3Rpb24taGVhZGVyLWF1dG8tcmVjYWxjdWxhdGUtZGVwb3NpdD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1oZWFkZXItZGl2aWRlLWV2ZW5seVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbktpbmQgIT09IHRyYW5zS2luZC5QdXJjaGFzZU9yZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuRGl2aWRlRXZlbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvY2tBbmRTYXZlXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1kaXZpZGUtZXZlbmx5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1idXNpbmVzcy1ydWxlLWFwcGxpZWRcIiAqbmdJZj1cInNob3dCdXNpbmVzc1J1bGVJbmZvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWljb24gW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5DaXJjbGVFeGNsYW1hdGlvblJlZ3VsYXIpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCInREVQT1NJVF9CVVNJTkVTU19SVUxFX0FQUExJRUQnIHwgbG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXR3by1jb2x1bW4tZ3JpZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1hbW91bnQtdG8tc2V0dGxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkFtb3VudFRvU2V0dGxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvY2tBbmRTYXZlXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1hbW91bnQtdG8tc2V0dGxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1hbHJlYWR5LXBhaWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuVG90YWxQYWlkRG93blwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1RPVEFMX1BBSURfRE9XTicgfCBsb2NhbGl6ZVwiIFtmb3JjZVJlYWRvbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cInBhaWREb3duXCIgW2Zvcm1hdFBpcGVdPVwiY3VycmVuY3lQaXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5TZXR0bGVkU29GYXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTRVRUTEVEX1NPX0ZBUicgfCBsb2NhbGl6ZVwiIFtmb3JjZVJlYWRvbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cInNldHRsZWRcIiBbZm9ybWF0UGlwZV09XCJjdXJyZW5jeVBpcGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXR3by1jb2x1bW4tZ3JpZFwiICpuZ0lmPVwic2hvd0Nhc2hPbkRlbGl2ZXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FzaC1vbi1kZWxpdmVyeS1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidDQVNIX09OX0RFTElWRVJZJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JjZVJlYWRvbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwiY2FzaE9uRGVsaXZlcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1hdFBpcGVdPVwiY3VycmVuY3lQaXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2F2ZS1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc0RpcmVjdFNlbGxFbmFibGVkKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5UcnVja01vdmluZ1JlZ3VsYXIpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjYXNoT25EZWxpdmVyeU1vZGFsVmlzaWJsZSA9IHRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtdHdvLWNvbHVtbi1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5QYXltZW50QnRuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JlZW5Db25maWdOYXRpdmVFbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1wYXltZW50LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbktpbmQgIT09IHRyYW5zS2luZC5QdXJjaGFzZU9yZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIignREVMSVZFUllfVE9UQUwnIHwgbG9jYWxpemUpIHwgYXBwZW5kOicgLyAnIHwgYXBwZW5kOignVE9fU0VUVExFJyB8IGxvY2FsaXplOmZhbHNlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsb2NrQW5kU2F2ZV09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9jby10cmFuc2FjdGlvbi1oZWFkZXItcGF5bWVudC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicGF5bWVudEFuYWx5c2lzXCIgY2xhc3M9XCJ0cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtc2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXNlY3Rpb24tbGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ1RPX0lOVk9JQ0UnIHwgbG9jYWxpemVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0aWxsLXRvcC1wYXktc3RhdHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYXltZW50LWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgW3RleHRDb250ZW50XT1cIidUT19CRV9JTlZPSUNFRCcgfCBsb2NhbGl6ZVwiPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFtb3VudFwiPnt7IHBheW1lbnRBbmFseXNpcz8udG90YWxUb0ludm9pY2UgfCBjb0N1cnJlbmN5OnRydWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBheW1lbnQtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbdGV4dENvbnRlbnRdPVwiJ0FMUkVBRFlfSU5WT0lDRUQnIHwgbG9jYWxpemVcIj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbW91bnRcIj57eyBwYXltZW50QW5hbHlzaXM/LnRvdGFsRGVwb3NpdEludm9pY2UgfCBjb0N1cnJlbmN5OnRydWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBheW1lbnQtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbdGV4dENvbnRlbnRdPVwiJ1NUSUxMX1RPX1BBWScgfCBsb2NhbGl6ZVwiPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFtb3VudFwiIFtjbGFzcy5vdXRzdGFuZGluZ109XCJwYXltZW50QW5hbHlzaXM/LnRvdGFsVG9QYXkgPiAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgcGF5bWVudEFuYWx5c2lzPy50b3RhbFRvUGF5IHwgY29DdXJyZW5jeTp0cnVlIH19PC9zdHJvbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvcmRlclBheW1lbnRBbmFseXNpcy5sZW5ndGggPiAwXCIgY2xhc3M9XCJwYXltZW50LWluZm9ybWF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxjby1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNhdmUtYnV0dG9uIHBheW1lbnQtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dQYXltZW50QnV0dG9uKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ3JlZGl0Q2FyZFJlZ3VsYXIpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblBheW1lbnQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2NvLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYXltZW50LWNhdGVnb3JpZXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwYXltZW50LWNhdGVnb3J5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImFjdGl2ZUNhdGVnb3J5LmluZGV4ID09PSBjYXRlZ29yeS5pbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBwYXltZW50Q2F0ZWdvcmllc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVDYXRlZ29yeUNsaWNrKGNhdGVnb3J5KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiIFt0ZXh0Q29udGVudF09XCJjYXRlZ29yeS50aXRsZSB8IGxvY2FsaXplXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8dGFibGUgKm5nSWY9XCJhY3RpdmVDYXRlZ29yeS5pbmRleCA9PT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImxlZnRcIiAqbmdJZj1cInNob3dJbnZvaWNlU2VsZWN0aW9uKClcIiBbdGV4dENvbnRlbnRdPVwiJ1BBWScgfCBsb2NhbGl6ZVwiPjwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibGVmdFwiIFt0ZXh0Q29udGVudF09XCInREVTQ1JJUFRJT04nIHwgbG9jYWxpemVcIj48L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBbdGV4dENvbnRlbnRdPVwiJ0FNT1VOVDInIHwgbG9jYWxpemVcIj48L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBbdGV4dENvbnRlbnRdPVwiJ1BBSUQnIHwgbG9jYWxpemVcIj48L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBbdGV4dENvbnRlbnRdPVwiJ1NFVFRMRUQnIHwgbG9jYWxpemVcIj48L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBbdGV4dENvbnRlbnRdPVwiJ09VVFNUQU5ESU5HJyB8IGxvY2FsaXplXCI+PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBwYXltZW50SW5mbyBvZiBvcmRlclBheW1lbnRBbmFseXNpc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImxlZnRcIiAqbmdJZj1cInNob3dJbnZvaWNlU2VsZWN0aW9uKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LXJhZGlvLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicGF5bWVudEluZm8udHJhbnNhY3Rpb25LaW5kID09PSB0cmFuc0tpbmQuU2FsZXNJbnZvaWNlICYmIHBheW1lbnRJbmZvLm91dHN0YW5kaW5nQW1vdW50ID4gMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkZWZhdWx0LXdpZHRoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJwYXltZW50SW5mby5pc1NlbGVjdGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlU2VsZWN0SW52b2ljZUxpbmVzKHBheW1lbnRJbmZvKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NvLWlucHV0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInBheW1lbnRJbmZvLnRyYW5zYWN0aW9uS2luZCA9PT0gdHJhbnNLaW5kLlNhbGVzT3JkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCInREVQT1NJVCcgfCBsb2NhbGl6ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicGF5bWVudEluZm8udHJhbnNhY3Rpb25LaW5kID09PSB0cmFuc0tpbmQuU2FsZXNJbnZvaWNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cIidJTlZPSUNFJyB8IGxvY2FsaXplXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiB7eyBwYXltZW50SW5mby50cmFuc2FjdGlvbk51bWJlciB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ge3sgcGF5bWVudEluZm8udHJhbnNhY3Rpb25EYXRlIHwgZGF0ZTonZGQtTU0teXl5eScgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48c3Ryb25nPnt7IHBheW1lbnRJbmZvLmludm9pY2VBbW91bnQgfCBjb0N1cnJlbmN5OnRydWUgfX08L3N0cm9uZz48L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBbY2xhc3MucGFpZF09XCJwYXltZW50SW5mby5wYWlkQW1vdW50ID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IHBheW1lbnRJbmZvLnBhaWRBbW91bnQgfCBjb0N1cnJlbmN5OnRydWUgfX08L3N0cm9uZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyBwYXltZW50SW5mby5zZXR0bGVkQW1vdW50IHwgY29DdXJyZW5jeTp0cnVlIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgW2NsYXNzLm91dHN0YW5kaW5nXT1cInBheW1lbnRJbmZvLm91dHN0YW5kaW5nQW1vdW50ID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IHBheW1lbnRJbmZvLm91dHN0YW5kaW5nQW1vdW50IHwgY29DdXJyZW5jeTp0cnVlIH19PC9zdHJvbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgICAgICAgICA8L3RhYmxlPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImFjdGl2ZUNhdGVnb3J5LmluZGV4ID09PSAxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInJlZ2lzdGVyZWRQYXltZW50SW5mbyAmJiByZWdpc3RlcmVkUGF5bWVudEluZm8ucGF5bWVudHMubGVuZ3RoID09PSAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRDb250ZW50XT1cIidOT1RfRk9VTkQnIHwgbG9jYWxpemVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgKm5nSWY9XCJyZWdpc3RlcmVkUGF5bWVudEluZm8gJiYgcmVnaXN0ZXJlZFBheW1lbnRJbmZvLnBheW1lbnRzLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJsZWZ0XCIgW3RleHRDb250ZW50XT1cIidERVNDUklQVElPTicgfCBsb2NhbGl6ZVwiPjwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBbdGV4dENvbnRlbnRdPVwiJ0FNT1VOVDInIHwgbG9jYWxpemVcIj48L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggW3RleHRDb250ZW50XT1cIidEQVRFJyB8IGxvY2FsaXplXCI+PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgcGF5bWVudEluZm8gb2YgcmVnaXN0ZXJlZFBheW1lbnRJbmZvLnBheW1lbnRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImxlZnRcIj57eyBwYXltZW50SW5mby5yZWZlcmVuY2UgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz57eyBwYXltZW50SW5mby5hbW91bnQgfCBjb0N1cnJlbmN5OnRydWUgfX08L3N0cm9uZz48L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgcGF5bWVudEluZm8ucGF5bWVudERhdGVUaW1lIHwgZGF0ZTonZGQtTU0teXl5eScgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9jby1mb3JtPlxyXG5cclxuICAgICAgICAgIDxjby1jYXNoLW9uLWRlbGl2ZXJ5LW1vZGFsXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY2FzaE9uRGVsaXZlcnlNb2RhbFZpc2libGVcIlxyXG4gICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvVXVpZF09XCJ0cmFuc2FjdGlvbkluZm8udXVpZFwiXHJcbiAgICAgICAgICAgICAgICAgIChjYXNoQW1vdW50KT1cImdldENhc2hBbW91bnQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgIChzaG93Q2FzaE9uRGVsaXZlcnlNb2RhbCk9XCJzaG93Q2FzaE9uRGVsaXZlcnlNb2RhbCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8L2NvLWNhc2gtb24tZGVsaXZlcnktbW9kYWw+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGNvLWRpYWxvZ1xyXG4gICAgICAgICAgICAgIGNsYXNzPVwicGF5bWVudC1kaWFsb2dcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwic2hvd1BheW1lbnREaWFsb2dcIlxyXG4gICAgICAgICAgICAgIFttb2RhbF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbaGVhZGVyVGVtcGxhdGVdPVwiaGVhZGVyVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgIChjbG9zZUNsaWNrKT1cImhhbmRsZUNsb3NlRGlhbG9nKClcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyVGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWRpYWxvZy13cmFwcGVyLXBvcHVwLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxjby1pY29uIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ3JlZGl0Q2FyZFJlZ3VsYXJDaGVjaylcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1kaWFsb2ctaGVhZGVyLXRpdGxlXCIgW3RleHRDb250ZW50XT1cIidQQVlNRU5UX01FVEhPRCcgfCBsb2NhbGl6ZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDxjby1wYXltZW50XHJcbiAgICAgICAgICAgICAgICAgIFt0cmFuc0lkXT1cInRyYW5zYWN0aW9uSWRUb1BheVwiXHJcbiAgICAgICAgICAgICAgICAgIFticmFuY2hdPVwidHJhbnNhY3Rpb25JbmZvLmJyYW5jaD8ucmVsYXRpb25OclwiXHJcbiAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvblV1aWRdPVwidHJhbnNhY3Rpb25JbmZvLnV1aWRcIlxyXG4gICAgICAgICAgICAgICAgICBbYW1vdW50XT1cImNob3NlbkFtb3VudFRvUGF5XCJcclxuICAgICAgICAgICAgICAgICAgW3JlbWFpbmluZ1BheW1lbnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtjdXJyZW5jeUlkXT1cInRyYW5zYWN0aW9uSW5mby5jdXJyZW5jeUlkXCJcclxuICAgICAgICAgICAgICAgICAgW2RvTm90RmV0Y2hBbW91bnRUb1BheUZvclJlbWFpbmluZ109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgW3Nob3dQYXltZW50RGF0ZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICA8L2NvLXBheW1lbnQ+XHJcbiAgICAgIDwvY28tZGlhbG9nPlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25IZWFkZXJQb3B1cFBheW1lbnRDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvbkhlYWRlclBvcHVwQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLXRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1wYXltZW50JylcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY3VycmVuY3lQaXBlOiB0eXBlb2YgQ29DdXJyZW5jeVBpcGUgPSBDb0N1cnJlbmN5UGlwZTtcclxuICBwdWJsaWMgcGFpZERvd246IG51bWJlciA9IDA7XHJcbiAgcHVibGljIHNldHRsZWQ6IG51bWJlciA9IDA7XHJcbiAgcHVibGljIGNhc2hPbkRlbGl2ZXJ5OiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBzaG93QnVzaW5lc3NSdWxlSW5mbzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93UGF5RG93bkxhYmVsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGNhc2hPbkRlbGl2ZXJ5TW9kYWxWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dDYXNoT25EZWxpdmVyeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93UGF5bWVudERpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8vIHB1YmxpYyBvdXRzdGFuZGluZ0N1c3RvbWVyQW1vdW50OiBPdXRzdGFuZGluZ0Ftb3VudEN1c3RvbWVyW10gPSBbXTtcclxuICBwdWJsaWMgb3JkZXJQYXltZW50QW5hbHlzaXM6IE9yZGVyUGF5bWVudEFuYWx5c2lzW10gPSBbXTtcclxuICBwdWJsaWMgcGF5bWVudEFuYWx5c2lzOiBQYXltZW50QW5hbHlzaXM7XHJcbiAgcHVibGljIHBheW1lbnRDYXRlZ29yaWVzOiBQYXltZW50Q2F0ZWdvcnlbXSA9IFtcclxuICAgIHtpbmRleDogMCwgdGl0bGU6ICdQQVlNRU5UX0FOQUxZU0lTJ30sXHJcbiAgICB7aW5kZXg6IDEsIHRpdGxlOiAnUEFZTUVOVFNfTUFERSd9XHJcbiAgXTtcclxuICBwdWJsaWMgYWN0aXZlQ2F0ZWdvcnk6IFBheW1lbnRDYXRlZ29yeSA9IHRoaXMucGF5bWVudENhdGVnb3JpZXNbMF07XHJcbiAgcHVibGljIGNob3NlbkFtb3VudFRvUGF5OiBudW1iZXI7XHJcbiAgcHVibGljIHRyYW5zYWN0aW9uSWRUb1BheTogbnVtYmVyO1xyXG4gIHB1YmxpYyByZWdpc3RlcmVkUGF5bWVudEluZm86IFRyYW5zYWN0aW9uUmVnaXN0ZXJlZFBheW1lbnRJbmZvO1xyXG5cclxuICBwcml2YXRlIF9wYXltZW50U3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25IZWFkZXJTZXJ2aWNlOiBUcmFuc2FjdGlvbkhlYWRlclNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25FdmVudFNlcnZpY2U6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLFxyXG4gICAgcHVibGljIHNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGltYWdlU2VydmljZTogVHJhbnNhY3Rpb25JbWFnZVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJvdGVjdGVkIGRpYWxvZ1NlcnZpY2U6IFRyYW5zYWN0aW9uRGlhbG9nU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBmb3JtTWFzdGVyU2VydmljZTogRm9ybU1hc3RlclNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgcmVsYXRpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblJlbGF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3BheW1lbnRDb25uZWN0b3JTZXJ2aWNlOiBUcmFuc2FjdGlvblBheW1lbnRDb25uZWN0b3JTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcih0cmFuc2FjdGlvbkhlYWRlclNlcnZpY2UsIHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLCBzZXJ2aWNlLCBpY29uQ2FjaGVTZXJ2aWNlLCB0cmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBkaWN0aW9uYXJ5U2VydmljZSwgaW1hZ2VTZXJ2aWNlLCBjaGFuZ2VEZXRlY3RvciwgZGlhbG9nU2VydmljZSwgZm9ybU1hc3RlclNlcnZpY2UsIHJlbGF0aW9uU2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGF3YWl0IHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLl9wYXltZW50U3Vicy5wdXNoKFxyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLnRyYW5zYWN0aW9uUGF5bWVudERvbmUuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLl9nZXREZXBvc2l0SW5mbygpO1xyXG4gICAgICAgIHRoaXMuX2dldE91dHN0YW5kaW5nQW1vdW50cygpO1xyXG4gICAgICAgIHRoaXMuaGFuZGxlQ2xvc2VEaWFsb2coKTtcclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMuc2NyZWVuQ29uZmlnU2VydmljZS5jb25maWdTZXQuc3Vic2NyaWJlKChjb25maWdPYmplY3RzOiBPYmplY3RDb25maWd1cmF0aW9uW10pID0+IHRoaXMuX2dldE9iamVjdENvbmZpZ3VyYXRpb24oY29uZmlnT2JqZWN0cykpXHJcbiAgICApO1xyXG4gICAgdGhpcy5zaG93Q2FzaE9uRGVsaXZlcnkgPSBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRJbnRlcm5hbFBhcmFtZXRlcihJbnRlcm5hbFBhcmFtLlNlbGxEaXJlY3RseUZyb21TdXBwbCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uRGVzdHJveSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuX3BheW1lbnRTdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgYXdhaXQgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVDYXRlZ29yeUNsaWNrKGNhdDogUGF5bWVudENhdGVnb3J5KTogdm9pZCB7XHJcbiAgICB0aGlzLmFjdGl2ZUNhdGVnb3J5ID0gY2F0O1xyXG5cclxuICAgIGlmICh0aGlzLmFjdGl2ZUNhdGVnb3J5LmluZGV4ID09PSAxKSB7XHJcbiAgICAgIHRoaXMuX2dldFJlZ2lzdGVyZWRQYXltZW50SW5mbygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHNob3dPdXRzdGFuZGluZ0Ftb3VudHMoKSB7XHJcbiAgICBhd2FpdCB0aGlzLnNlcnZpY2Uuc2F2ZVRyYW5zYWN0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd0Nhc2hPbkRlbGl2ZXJ5TW9kYWwodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuY2FzaE9uRGVsaXZlcnlNb2RhbFZpc2libGUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRDYXNoQW1vdW50KHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuY2FzaE9uRGVsaXZlcnkgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93UGF5bWVudEJ1dHRvbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm9yZGVyUGF5bWVudEFuYWx5c2lzLnNvbWUodCA9PiB0Lm91dHN0YW5kaW5nQW1vdW50ICE9PSAwKSAmJiB0aGlzLmNob3NlbkFtb3VudFRvUGF5ICE9PSAwO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIG9wZW5QYXltZW50KGV2ZW50OiBNb3VzZUV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uSWRUb1BheSA9IHRoaXMudHJhbnNhY3Rpb25JZFRvUGF5ID8/IHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkO1xyXG4gICAgaWYgKHRoaXMub3JkZXJQYXltZW50QW5hbHlzaXMuZmlsdGVyKHBheW1lbnQgPT4gcGF5bWVudC50cmFuc2FjdGlvbktpbmQgPT09IHRoaXMudHJhbnNLaW5kLlNhbGVzSW52b2ljZSAmJiBwYXltZW50Lm91dHN0YW5kaW5nQW1vdW50ID4gMCkubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIGNvbnN0IGxhc3RUcmFuc2FjdGlvbiA9IHRoaXMub3JkZXJQYXltZW50QW5hbHlzaXMuZmlsdGVyKHBheW1lbnQgPT4gcGF5bWVudC50cmFuc2FjdGlvbktpbmQgPT09IHRoaXMudHJhbnNLaW5kLlNhbGVzSW52b2ljZSAmJiBwYXltZW50Lm91dHN0YW5kaW5nQW1vdW50ID4gMClbMF07XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25JZFRvUGF5ID0gbGFzdFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSWQ7XHJcbiAgICB9XHJcbiAgICBpZiAoYXdhaXQgdGhpcy5sb2NrVHJhbnNhY3Rpb24oKSkge1xyXG4gICAgICB0aGlzLnNob3dQYXltZW50RGlhbG9nID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVDbG9zZURpYWxvZygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd1BheW1lbnREaWFsb2cgPSBmYWxzZTtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnJvbGxiYWNrKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNEaXJlY3RTZWxsRW5hYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uTGluZXMuc29tZShsaW5lID0+IGxpbmUuZGlyZWN0U2VsbCAmJiBsaW5lLmRyb3BTaGlwbWVudCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd0ludm9pY2VTZWxlY3Rpb24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5vcmRlclBheW1lbnRBbmFseXNpcy5maWx0ZXIocGF5bWVudCA9PiBwYXltZW50LnRyYW5zYWN0aW9uS2luZCA9PT0gdGhpcy50cmFuc0tpbmQuU2FsZXNJbnZvaWNlICYmIHBheW1lbnQub3V0c3RhbmRpbmdBbW91bnQgPiAwKS5sZW5ndGggPiAxO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNlbGVjdEludm9pY2VMaW5lcyhwYXltZW50SW5mbzogT3JkZXJQYXltZW50QW5hbHlzaXMpOiB2b2lkIHtcclxuICAgIHRoaXMub3JkZXJQYXltZW50QW5hbHlzaXMuZm9yRWFjaChpbnZvaWNlID0+IChpbnZvaWNlIGFzIGFueSkuaXNTZWxlY3RlZCA9IGZhbHNlKTtcclxuICAgIChwYXltZW50SW5mbyBhcyBhbnkpLmlzU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5jaG9zZW5BbW91bnRUb1BheSA9IHBheW1lbnRJbmZvLm91dHN0YW5kaW5nQW1vdW50O1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbklkVG9QYXkgPSBwYXltZW50SW5mby50cmFuc2FjdGlvbklkO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHRyYW5zYWN0aW9uU2V0KCkge1xyXG4gICAgc3VwZXIudHJhbnNhY3Rpb25TZXQoKTtcclxuICAgIHRoaXMuX2dldERlcG9zaXRJbmZvKCk7XHJcbiAgICB0aGlzLl9nZXRPdXRzdGFuZGluZ0Ftb3VudHMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldERlcG9zaXRJbmZvKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcGF5bWVudENvbm5lY3RvclNlcnZpY2UuZ2V0RGVwb3NpdFBheW1lbnRJbmZvKHRoaXMudHJhbnNhY3Rpb25JbmZvLnV1aWQpLnRoZW4oKGluZm86IFRyYW5zYWN0aW9uRGVwb3NpdFBheW1lbnRJbmZvKSA9PiB7XHJcbiAgICAgIGlmIChpbmZvKSB7XHJcbiAgICAgICAgdGhpcy5wYWlkRG93biA9IGluZm8uZGVwb3NpdFBheW1lbnRBbW91bnRUb3RhbDtcclxuICAgICAgICB0aGlzLnNldHRsZWQgPSBpbmZvLmRlcG9zaXRBbW91bnRTZXR0bGVkO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX2dldE91dHN0YW5kaW5nQW1vdW50cygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIC8vIGtlZXBpbmcgdGhpcyBmb3Igbm93LCBjb3VsZCBiZSB0aGF0IHdlIG5lZWQgdG8gdXNlIHRoaXMgY2FsbCBhZnRlciBhbGxcclxuICAgIC8vIGNvbnN0IG91dHN0YW5kaW5nQW1vdW50c1JlcXVlc3Q6IE91dHN0YW5kaW5nQW1vdW50RmlsdGVyQ3VzdG9tZXIgPSBuZXcgT3V0c3RhbmRpbmdBbW91bnRGaWx0ZXJDdXN0b21lcigpO1xyXG4gICAgLy8gb3V0c3RhbmRpbmdBbW91bnRzUmVxdWVzdC50cmFuc2FjdGlvbklkID0gdGhpcy50cmFuc2FjdGlvbkluZm8uaWQ7XHJcbiAgICAvLyB0aGlzLl9wYXltZW50Q29ubmVjdG9yU2VydmljZS5nZXRPdXRzdGFuZGluZ0N1c3RvbWVyQW1vdW50cyhvdXRzdGFuZGluZ0Ftb3VudHNSZXF1ZXN0KS50aGVuKChyZXNwb25zZTogT3V0c3RhbmRpbmdBbW91bnRDdXN0b21lcltdKSA9PiB7XHJcbiAgICAvLyAgIHRoaXMub3V0c3RhbmRpbmdDdXN0b21lckFtb3VudCA9IHJlc3BvbnNlO1xyXG4gICAgLy8gfSk7XHJcblxyXG4gICAgY29uc3QgcGF5bWVudEFuYWx5c2lzUmVxdWVzdDogT3JkZXJQYXltZW50QW5hbHlzaXNGaWx0ZXIgPSBuZXcgT3JkZXJQYXltZW50QW5hbHlzaXNGaWx0ZXIoKTtcclxuICAgIHBheW1lbnRBbmFseXNpc1JlcXVlc3QudHJhbnNhY3Rpb25JZCA9IHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkO1xyXG4gICAgYXdhaXQgdGhpcy5fcGF5bWVudENvbm5lY3RvclNlcnZpY2UuZ2V0U2FsZXNPcmRlclBheW1lbnRBbmFseXNpcyhwYXltZW50QW5hbHlzaXNSZXF1ZXN0KS50aGVuKChyZXNwb25zZTogT3JkZXJQYXltZW50QW5hbHlzaXNbXSkgPT4ge1xyXG4gICAgICB0aGlzLm9yZGVyUGF5bWVudEFuYWx5c2lzID0gcmVzcG9uc2U7XHJcbiAgICAgIHRoaXMub3JkZXJQYXltZW50QW5hbHlzaXMgPSB0aGlzLm9yZGVyUGF5bWVudEFuYWx5c2lzLm1hcCh0cmFuc2FjdGlvbiA9PiAoe1xyXG4gICAgICAgIC4uLnRyYW5zYWN0aW9uLFxyXG4gICAgICAgIGlzU2VsZWN0ZWQ6IGZhbHNlXHJcbiAgICAgIH0pKSBhcyB1bmtub3duIGFzIE9yZGVyUGF5bWVudEFuYWx5c2lzW107XHJcbiAgICB9KTtcclxuXHJcbiAgICBhd2FpdCB0aGlzLl9wYXltZW50Q29ubmVjdG9yU2VydmljZS5nZXRQYXltZW50QW5hbHlzaXModGhpcy50cmFuc2FjdGlvbkluZm8udXVpZCkudGhlbigocmVzcG9uc2U6IFBheW1lbnRBbmFseXNpcykgPT4ge1xyXG4gICAgICB0aGlzLnBheW1lbnRBbmFseXNpcyA9IHJlc3BvbnNlO1xyXG4gICAgICB0aGlzLmNob3NlbkFtb3VudFRvUGF5ID0gdGhpcy5wYXltZW50QW5hbHlzaXMudG90YWxUb1BheTtcclxuICAgICAgdGhpcy5fdXBkYXRlQ2hvc2VuQW1vdW50VG9QYXkoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfZ2V0UmVnaXN0ZXJlZFBheW1lbnRJbmZvKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgcGF5bWVudEluZm86IFRyYW5zYWN0aW9uUmVnaXN0ZXJlZFBheW1lbnRJbmZvID0gYXdhaXQgdGhpcy5fcGF5bWVudENvbm5lY3RvclNlcnZpY2UuZ2V0UmVnaXN0ZXJlZFBheW1lbnRJbmZvKHRoaXMudHJhbnNhY3Rpb25JbmZvLnV1aWQpO1xyXG4gICAgaWYgKHBheW1lbnRJbmZvKSB7XHJcbiAgICAgIHRoaXMucmVnaXN0ZXJlZFBheW1lbnRJbmZvID0gcGF5bWVudEluZm87XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRPYmplY3RDb25maWd1cmF0aW9uKGNvbmZpZ09iamVjdHM6IE9iamVjdENvbmZpZ3VyYXRpb25bXSk6IHZvaWQge1xyXG4gICAgaWYgKGNvbmZpZ09iamVjdHMgJiYgY29uZmlnT2JqZWN0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuc2hvd1BheURvd25MYWJlbCA9IHRoaXMuc2NyZWVuQ29uZmlnU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuRGVwb3NpdFBlcmNlbnRhZ2UpLmltbWVkaWF0ZWx5VmlzaWJsZSgpIHx8XHJcbiAgICAgICAgdGhpcy5zY3JlZW5Db25maWdTZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5EZXBvc2l0QW1vdW50KS5pbW1lZGlhdGVseVZpc2libGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZUNob3NlbkFtb3VudFRvUGF5KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMub3JkZXJQYXltZW50QW5hbHlzaXMuc29tZSh0ID0+IHQub3V0c3RhbmRpbmdBbW91bnQgPiAwKSAmJlxyXG4gICAgICB0aGlzLm9yZGVyUGF5bWVudEFuYWx5c2lzLmZpbHRlcihwYXltZW50ID0+IHBheW1lbnQudHJhbnNhY3Rpb25LaW5kID09PSB0aGlzLnRyYW5zS2luZC5TYWxlc0ludm9pY2UpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLmNob3NlbkFtb3VudFRvUGF5ID0gdGhpcy5wYXltZW50QW5hbHlzaXMudG90YWxEZXBvc2l0O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIERlcG9zaXQgb25seVxyXG4gICAgaWYgKHRoaXMub3JkZXJQYXltZW50QW5hbHlzaXMuZmlsdGVyKHBheW1lbnQgPT4gcGF5bWVudC50cmFuc2FjdGlvbktpbmQgPT09IHRoaXMudHJhbnNLaW5kLlNhbGVzT3JkZXIgJiZcclxuICAgICAgcGF5bWVudC5vdXRzdGFuZGluZ0Ftb3VudCA+IDApLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICB0aGlzLmNob3NlbkFtb3VudFRvUGF5ID0gdGhpcy5vcmRlclBheW1lbnRBbmFseXNpc1swXS5vdXRzdGFuZGluZ0Ftb3VudDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5vcmRlclBheW1lbnRBbmFseXNpcy5maWx0ZXIocGF5bWVudCA9PiAocGF5bWVudC50cmFuc2FjdGlvbktpbmQgPT09IHRoaXMudHJhbnNLaW5kLlNhbGVzSW52b2ljZSkgJiZcclxuICAgICAgKHBheW1lbnQub3V0c3RhbmRpbmdBbW91bnQgPiAwKSkubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIGNvbnN0IHJlbWFpbmluZ0ludm9pY2UgPSB0aGlzLm9yZGVyUGF5bWVudEFuYWx5c2lzLmZpbHRlcihwYXltZW50ID0+IChwYXltZW50LnRyYW5zYWN0aW9uS2luZCA9PT0gdGhpcy50cmFuc0tpbmQuU2FsZXNJbnZvaWNlKSAmJiAocGF5bWVudC5vdXRzdGFuZGluZ0Ftb3VudCA+IDApKVswXTtcclxuICAgICAgdGhpcy5jaG9zZW5BbW91bnRUb1BheSA9IHJlbWFpbmluZ0ludm9pY2Uub3V0c3RhbmRpbmdBbW91bnQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMub3JkZXJQYXltZW50QW5hbHlzaXMuZmlsdGVyKHBheW1lbnQgPT4gKHBheW1lbnQudHJhbnNhY3Rpb25LaW5kID09PSB0aGlzLnRyYW5zS2luZC5TYWxlc0ludm9pY2UpICYmIChwYXltZW50Lm91dHN0YW5kaW5nQW1vdW50ID4gMCkpLmxlbmd0aCA+IDEpIHtcclxuICAgICAgdGhpcy5jaG9zZW5BbW91bnRUb1BheSA9IDA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
453
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXBheW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24taGVhZGVyL3RyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC90cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtcGF5bWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFxQixpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUMsbUNBQW1DLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUc5RixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUNoSCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUNyRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUMxRyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDL0UsT0FBTyxFQUFD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WUFVakIsd0JBQXdCO1lBQ3hCLGlCQUFpQjtZQUNqQiwwQkFBMEI7WUFDMUIsa0NBQWtDOzs7d0JBOFB2QyxXQUFXLFNBQUMsMkNBQTJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgT25EZXN0cm95LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkhlYWRlclBvcHVwQmFzZUNvbXBvbmVudH0gZnJvbSAnLi90cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRGVwb3NpdFBheW1lbnRJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tZGVwb3NpdC1wYXltZW50LWluZm8uYm8nO1xyXG5pbXBvcnQge1BheW1lbnRBbmFseXNpc30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BheW1lbnQtYW5hbHlzaXMuYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWltYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7Rm9ybU1hc3RlclNlcnZpY2V9IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTInO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uUmVsYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXJlbGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uUGF5bWVudENvbm5lY3RvclNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tcGF5bWVudC1jb25uZWN0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7SW50ZXJuYWxQYXJhbX0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS9pbnRlcm5hbC1wYXJhbS5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkhlYWRlclNlcnZpY2V9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS9zZXJ2aWNlL3RyYW5zYWN0aW9uLWhlYWRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge09iamVjdENvbmZpZ3VyYXRpb259IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL29iamVjdC1jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHtDb0N1cnJlbmN5UGlwZX0gZnJvbSAnLi4vLi4vLi4vcGlwZS9jby1jdXJyZW5jeS5waXBlJztcclxuaW1wb3J0IHtPcmRlclBheW1lbnRBbmFseXNpc30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL29yZGVyLXBheW1lbnQtYW5hbHlzaXMuYm8nO1xyXG5pbXBvcnQge09yZGVyUGF5bWVudEFuYWx5c2lzRmlsdGVyfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvb3JkZXItcGF5bWVudC1hbmFseXNpcy1maWx0ZXIuYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uUmVnaXN0ZXJlZFBheW1lbnRJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tcmVnaXN0ZXJlZC1wYXltZW50LWluZm8uYm8nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50Q2F0ZWdvcnkge1xyXG4gIGluZGV4OiBudW1iZXI7XHJcbiAgdGl0bGU6IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjby10cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtcGF5bWVudCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1jYXRlZ29yeS13cmFwcGVyIGNvLXNtYWxsLXNjcm9sbGJhclwiPlxyXG4gICAgICAgICAgPGNvLWZvcm0+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1zZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1zZWN0aW9uLWxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dQYXlEb3duTGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCInVE9fUEFZX0RPV04nIHwgbG9jYWxpemVcIj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXR3by1jb2x1bW4tZ3JpZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1kZXBvc2l0LXBlcmNlbnRhZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuRGVwb3NpdFBlcmNlbnRhZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9ja0FuZFNhdmVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZXBvc2l0VXBkYXRlZCk9XCJzaG93T3V0c3RhbmRpbmdBbW91bnRzKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvY28tdHJhbnNhY3Rpb24taGVhZGVyLWRlcG9zaXQtcGVyY2VudGFnZT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1oZWFkZXItZGVwb3NpdC1hbW91bnQgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXRvdGFscy1wcmljZSBwcmljZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkRlcG9zaXRBbW91bnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9ja0FuZFNhdmVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChidXNpbmVzc1J1bGVBcHBsaWVkKT1cInNob3dCdXNpbmVzc1J1bGVJbmZvID0gJGV2ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1kZXBvc2l0LWFtb3VudD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXRocmVlLWNvbHVtbi1ncmlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLXVzZS1kZXBvc2l0LXJ1bGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25LaW5kICE9PSB0cmFuc0tpbmQuUHVyY2hhc2VPcmRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLlVzZURlcG9zaXRSdWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvY2tBbmRTYXZlXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWhlYWRlci11c2UtZGVwb3NpdC1ydWxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1hdXRvLXJlY2FsY3VsYXRlLWRlcG9zaXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25LaW5kICE9PSB0cmFuc0tpbmQuUHVyY2hhc2VPcmRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkF1dG9SZWNhbGN1bGF0ZURlcG9zaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9ja0FuZFNhdmVdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvY28tdHJhbnNhY3Rpb24taGVhZGVyLWF1dG8tcmVjYWxjdWxhdGUtZGVwb3NpdD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1oZWFkZXItZGl2aWRlLWV2ZW5seVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbktpbmQgIT09IHRyYW5zS2luZC5QdXJjaGFzZU9yZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuRGl2aWRlRXZlbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvY2tBbmRTYXZlXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1kaXZpZGUtZXZlbmx5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1idXNpbmVzcy1ydWxlLWFwcGxpZWRcIiAqbmdJZj1cInNob3dCdXNpbmVzc1J1bGVJbmZvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWljb24gW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5DaXJjbGVFeGNsYW1hdGlvblJlZ3VsYXIpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCInREVQT1NJVF9CVVNJTkVTU19SVUxFX0FQUExJRUQnIHwgbG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXR3by1jb2x1bW4tZ3JpZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1hbW91bnQtdG8tc2V0dGxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkFtb3VudFRvU2V0dGxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvY2tBbmRTYXZlXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1hbW91bnQtdG8tc2V0dGxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1hbHJlYWR5LXBhaWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuVG90YWxQYWlkRG93blwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1RPVEFMX1BBSURfRE9XTicgfCBsb2NhbGl6ZVwiIFtmb3JjZVJlYWRvbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cInBhaWREb3duXCIgW2Zvcm1hdFBpcGVdPVwiY3VycmVuY3lQaXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5TZXR0bGVkU29GYXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTRVRUTEVEX1NPX0ZBUicgfCBsb2NhbGl6ZVwiIFtmb3JjZVJlYWRvbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cInNldHRsZWRcIiBbZm9ybWF0UGlwZV09XCJjdXJyZW5jeVBpcGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXR3by1jb2x1bW4tZ3JpZFwiICpuZ0lmPVwic2hvd0Nhc2hPbkRlbGl2ZXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FzaC1vbi1kZWxpdmVyeS1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidDQVNIX09OX0RFTElWRVJZJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JjZVJlYWRvbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwiY2FzaE9uRGVsaXZlcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1hdFBpcGVdPVwiY3VycmVuY3lQaXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2F2ZS1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc0RpcmVjdFNlbGxFbmFibGVkKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5UcnVja01vdmluZ1JlZ3VsYXIpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjYXNoT25EZWxpdmVyeU1vZGFsVmlzaWJsZSA9IHRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtdHdvLWNvbHVtbi1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5QYXltZW50QnRuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JlZW5Db25maWdOYXRpdmVFbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1wYXltZW50LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbktpbmQgIT09IHRyYW5zS2luZC5QdXJjaGFzZU9yZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIignREVMSVZFUllfVE9UQUwnIHwgbG9jYWxpemUpIHwgYXBwZW5kOicgLyAnIHwgYXBwZW5kOignVE9fU0VUVExFJyB8IGxvY2FsaXplOmZhbHNlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsb2NrQW5kU2F2ZV09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9jby10cmFuc2FjdGlvbi1oZWFkZXItcGF5bWVudC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicGF5bWVudEFuYWx5c2lzXCIgY2xhc3M9XCJ0cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtc2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXNlY3Rpb24tbGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ1RPX0lOVk9JQ0UnIHwgbG9jYWxpemVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0aWxsLXRvcC1wYXktc3RhdHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYXltZW50LWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgW3RleHRDb250ZW50XT1cIidUT19CRV9JTlZPSUNFRCcgfCBsb2NhbGl6ZVwiPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFtb3VudFwiPnt7IHBheW1lbnRBbmFseXNpcz8udG90YWxUb0ludm9pY2UgfCBjb0N1cnJlbmN5OnRydWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBheW1lbnQtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbdGV4dENvbnRlbnRdPVwiJ0FMUkVBRFlfSU5WT0lDRUQnIHwgbG9jYWxpemVcIj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbW91bnRcIj57eyBwYXltZW50QW5hbHlzaXM/LnRvdGFsRGVwb3NpdEludm9pY2UgfCBjb0N1cnJlbmN5OnRydWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBheW1lbnQtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbdGV4dENvbnRlbnRdPVwiJ1NUSUxMX1RPX1BBWScgfCBsb2NhbGl6ZVwiPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFtb3VudFwiIFtjbGFzcy5vdXRzdGFuZGluZ109XCJwYXltZW50QW5hbHlzaXM/LnRvdGFsVG9QYXkgPiAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgcGF5bWVudEFuYWx5c2lzPy50b3RhbFRvUGF5IHwgY29DdXJyZW5jeTp0cnVlIH19PC9zdHJvbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvcmRlclBheW1lbnRBbmFseXNpcy5sZW5ndGggPiAwXCIgY2xhc3M9XCJwYXltZW50LWluZm9ybWF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxjby1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNhdmUtYnV0dG9uIHBheW1lbnQtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dQYXltZW50QnV0dG9uKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ3JlZGl0Q2FyZFJlZ3VsYXIpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblBheW1lbnQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2NvLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYXltZW50LWNhdGVnb3JpZXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwYXltZW50LWNhdGVnb3J5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImFjdGl2ZUNhdGVnb3J5LmluZGV4ID09PSBjYXRlZ29yeS5pbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBwYXltZW50Q2F0ZWdvcmllc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVDYXRlZ29yeUNsaWNrKGNhdGVnb3J5KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiIFt0ZXh0Q29udGVudF09XCJjYXRlZ29yeS50aXRsZSB8IGxvY2FsaXplXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8dGFibGUgKm5nSWY9XCJhY3RpdmVDYXRlZ29yeS5pbmRleCA9PT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImxlZnRcIiAqbmdJZj1cInNob3dJbnZvaWNlU2VsZWN0aW9uKClcIiBbdGV4dENvbnRlbnRdPVwiJ1BBWScgfCBsb2NhbGl6ZVwiPjwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibGVmdFwiIFt0ZXh0Q29udGVudF09XCInREVTQ1JJUFRJT04nIHwgbG9jYWxpemVcIj48L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBbdGV4dENvbnRlbnRdPVwiJ0FNT1VOVDInIHwgbG9jYWxpemVcIj48L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBbdGV4dENvbnRlbnRdPVwiJ1BBSUQnIHwgbG9jYWxpemVcIj48L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBbdGV4dENvbnRlbnRdPVwiJ1NFVFRMRUQnIHwgbG9jYWxpemVcIj48L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBbdGV4dENvbnRlbnRdPVwiJ09VVFNUQU5ESU5HJyB8IGxvY2FsaXplXCI+PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBwYXltZW50SW5mbyBvZiBvcmRlclBheW1lbnRBbmFseXNpc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImxlZnRcIiAqbmdJZj1cInNob3dJbnZvaWNlU2VsZWN0aW9uKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LXJhZGlvLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicGF5bWVudEluZm8udHJhbnNhY3Rpb25LaW5kID09PSB0cmFuc0tpbmQuU2FsZXNJbnZvaWNlICYmIHBheW1lbnRJbmZvLm91dHN0YW5kaW5nQW1vdW50ICE9PSAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRlZmF1bHQtd2lkdGhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cInBheW1lbnRJbmZvLmlzU2VsZWN0ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJoYW5kbGVTZWxlY3RJbnZvaWNlTGluZXMocGF5bWVudEluZm8pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY28taW5wdXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicGF5bWVudEluZm8udHJhbnNhY3Rpb25LaW5kID09PSB0cmFuc0tpbmQuU2FsZXNPcmRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRDb250ZW50XT1cIidERVBPU0lUJyB8IGxvY2FsaXplXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJwYXltZW50SW5mby50cmFuc2FjdGlvbktpbmQgPT09IHRyYW5zS2luZC5TYWxlc0ludm9pY2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiJ0lOVk9JQ0UnIHwgbG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7IHBheW1lbnRJbmZvLnRyYW5zYWN0aW9uTnVtYmVyIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiB7eyBwYXltZW50SW5mby50cmFuc2FjdGlvbkRhdGUgfCBkYXRlOidkZC1NTS15eXl5JyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxzdHJvbmc+e3sgcGF5bWVudEluZm8uaW52b2ljZUFtb3VudCB8IGNvQ3VycmVuY3k6dHJ1ZSB9fTwvc3Ryb25nPjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIFtjbGFzcy5wYWlkXT1cInBheW1lbnRJbmZvLnBhaWRBbW91bnQgPiAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgcGF5bWVudEluZm8ucGFpZEFtb3VudCB8IGNvQ3VycmVuY3k6dHJ1ZSB9fTwvc3Ryb25nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IHBheW1lbnRJbmZvLnNldHRsZWRBbW91bnQgfCBjb0N1cnJlbmN5OnRydWUgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBbY2xhc3Mub3V0c3RhbmRpbmddPVwicGF5bWVudEluZm8ub3V0c3RhbmRpbmdBbW91bnQgPiAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgcGF5bWVudEluZm8ub3V0c3RhbmRpbmdBbW91bnQgfCBjb0N1cnJlbmN5OnRydWUgfX08L3N0cm9uZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYWN0aXZlQ2F0ZWdvcnkuaW5kZXggPT09IDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicmVnaXN0ZXJlZFBheW1lbnRJbmZvICYmIHJlZ2lzdGVyZWRQYXltZW50SW5mby5wYXltZW50cy5sZW5ndGggPT09IDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwiJ05PVF9GT1VORCcgfCBsb2NhbGl6ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSAqbmdJZj1cInJlZ2lzdGVyZWRQYXltZW50SW5mbyAmJiByZWdpc3RlcmVkUGF5bWVudEluZm8ucGF5bWVudHMubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImxlZnRcIiBbdGV4dENvbnRlbnRdPVwiJ0RFU0NSSVBUSU9OJyB8IGxvY2FsaXplXCI+PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIFt0ZXh0Q29udGVudF09XCInQU1PVU5UMicgfCBsb2NhbGl6ZVwiPjwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBbdGV4dENvbnRlbnRdPVwiJ0RBVEUnIHwgbG9jYWxpemVcIj48L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBwYXltZW50SW5mbyBvZiByZWdpc3RlcmVkUGF5bWVudEluZm8ucGF5bWVudHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibGVmdFwiPnt7IHBheW1lbnRJbmZvLnJlZmVyZW5jZSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48c3Ryb25nPnt7IHBheW1lbnRJbmZvLmFtb3VudCB8IGNvQ3VycmVuY3k6dHJ1ZSB9fTwvc3Ryb25nPjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyBwYXltZW50SW5mby5wYXltZW50RGF0ZVRpbWUgfCBkYXRlOidkZC1NTS15eXl5JyB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2NvLWZvcm0+XHJcblxyXG4gICAgICAgICAgPGNvLWNhc2gtb24tZGVsaXZlcnktbW9kYWxcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjYXNoT25EZWxpdmVyeU1vZGFsVmlzaWJsZVwiXHJcbiAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9VdWlkXT1cInRyYW5zYWN0aW9uSW5mby51dWlkXCJcclxuICAgICAgICAgICAgICAgICAgKGNhc2hBbW91bnQpPVwiZ2V0Q2FzaEFtb3VudCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgKHNob3dDYXNoT25EZWxpdmVyeU1vZGFsKT1cInNob3dDYXNoT25EZWxpdmVyeU1vZGFsKCRldmVudClcIj5cclxuICAgICAgICAgIDwvY28tY2FzaC1vbi1kZWxpdmVyeS1tb2RhbD5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8Y28tZGlhbG9nXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJwYXltZW50LWRpYWxvZ1wiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJzaG93UGF5bWVudERpYWxvZ1wiXHJcbiAgICAgICAgICAgICAgW21vZGFsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtoZWFkZXJUZW1wbGF0ZV09XCJoZWFkZXJUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgKGNsb3NlQ2xpY2spPVwiaGFuZGxlQ2xvc2VEaWFsb2coKVwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNoZWFkZXJUZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZGlhbG9nLXdyYXBwZXItcG9wdXAtdGl0bGVcIj5cclxuICAgICAgICAgICAgICAgICAgPGNvLWljb24gW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5DcmVkaXRDYXJkUmVndWxhckNoZWNrKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWRpYWxvZy1oZWFkZXItdGl0bGVcIiBbdGV4dENvbnRlbnRdPVwiJ1BBWU1FTlRfTUVUSE9EJyB8IGxvY2FsaXplXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPGNvLXBheW1lbnRcclxuICAgICAgICAgICAgICAgICAgW3RyYW5zSWRdPVwidHJhbnNhY3Rpb25JZFRvUGF5XCJcclxuICAgICAgICAgICAgICAgICAgW2JyYW5jaF09XCJ0cmFuc2FjdGlvbkluZm8uYnJhbmNoPy5yZWxhdGlvbk5yXCJcclxuICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uVXVpZF09XCJ0cmFuc2FjdGlvbkluZm8udXVpZFwiXHJcbiAgICAgICAgICAgICAgICAgIFthbW91bnRdPVwiY2hvc2VuQW1vdW50VG9QYXlcIlxyXG4gICAgICAgICAgICAgICAgICBbcmVtYWluaW5nUGF5bWVudF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgW2N1cnJlbmN5SWRdPVwidHJhbnNhY3Rpb25JbmZvLmN1cnJlbmN5SWRcIlxyXG4gICAgICAgICAgICAgICAgICBbZG9Ob3RGZXRjaEFtb3VudFRvUGF5Rm9yUmVtYWluaW5nXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICBbc2hvd1BheW1lbnREYXRlXT1cInRydWVcIj5cclxuICAgICAgICAgIDwvY28tcGF5bWVudD5cclxuICAgICAgPC9jby1kaWFsb2c+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkhlYWRlclBvcHVwUGF5bWVudENvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uSGVhZGVyUG9wdXBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28tdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXBheW1lbnQnKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjdXJyZW5jeVBpcGU6IHR5cGVvZiBDb0N1cnJlbmN5UGlwZSA9IENvQ3VycmVuY3lQaXBlO1xyXG4gIHB1YmxpYyBwYWlkRG93bjogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgc2V0dGxlZDogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgY2FzaE9uRGVsaXZlcnk6IG51bWJlciA9IDA7XHJcbiAgcHVibGljIHNob3dCdXNpbmVzc1J1bGVJbmZvOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dQYXlEb3duTGFiZWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgY2FzaE9uRGVsaXZlcnlNb2RhbFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0Nhc2hPbkRlbGl2ZXJ5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dQYXltZW50RGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLy8gcHVibGljIG91dHN0YW5kaW5nQ3VzdG9tZXJBbW91bnQ6IE91dHN0YW5kaW5nQW1vdW50Q3VzdG9tZXJbXSA9IFtdO1xyXG4gIHB1YmxpYyBvcmRlclBheW1lbnRBbmFseXNpczogT3JkZXJQYXltZW50QW5hbHlzaXNbXSA9IFtdO1xyXG4gIHB1YmxpYyBwYXltZW50QW5hbHlzaXM6IFBheW1lbnRBbmFseXNpcztcclxuICBwdWJsaWMgcGF5bWVudENhdGVnb3JpZXM6IFBheW1lbnRDYXRlZ29yeVtdID0gW1xyXG4gICAge2luZGV4OiAwLCB0aXRsZTogJ1BBWU1FTlRfQU5BTFlTSVMnfSxcclxuICAgIHtpbmRleDogMSwgdGl0bGU6ICdQQVlNRU5UU19NQURFJ31cclxuICBdO1xyXG4gIHB1YmxpYyBhY3RpdmVDYXRlZ29yeTogUGF5bWVudENhdGVnb3J5ID0gdGhpcy5wYXltZW50Q2F0ZWdvcmllc1swXTtcclxuICBwdWJsaWMgY2hvc2VuQW1vdW50VG9QYXk6IG51bWJlcjtcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25JZFRvUGF5OiBudW1iZXI7XHJcbiAgcHVibGljIHJlZ2lzdGVyZWRQYXltZW50SW5mbzogVHJhbnNhY3Rpb25SZWdpc3RlcmVkUGF5bWVudEluZm87XHJcblxyXG4gIHByaXZhdGUgX3BheW1lbnRTdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkhlYWRlclNlcnZpY2U6IFRyYW5zYWN0aW9uSGVhZGVyU2VydmljZSxcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgc2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBkaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgaW1hZ2VTZXJ2aWNlOiBUcmFuc2FjdGlvbkltYWdlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcm90ZWN0ZWQgZGlhbG9nU2VydmljZTogVHJhbnNhY3Rpb25EaWFsb2dTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGZvcm1NYXN0ZXJTZXJ2aWNlOiBGb3JtTWFzdGVyU2VydmljZSxcclxuICAgIHByb3RlY3RlZCByZWxhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uUmVsYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcGF5bWVudENvbm5lY3RvclNlcnZpY2U6IFRyYW5zYWN0aW9uUGF5bWVudENvbm5lY3RvclNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKHRyYW5zYWN0aW9uSGVhZGVyU2VydmljZSwgdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsIHNlcnZpY2UsIGljb25DYWNoZVNlcnZpY2UsIHRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsIGRpY3Rpb25hcnlTZXJ2aWNlLCBpbWFnZVNlcnZpY2UsIGNoYW5nZURldGVjdG9yLCBkaWFsb2dTZXJ2aWNlLCBmb3JtTWFzdGVyU2VydmljZSwgcmVsYXRpb25TZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgYXdhaXQgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIHRoaXMuX3BheW1lbnRTdWJzLnB1c2goXHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2UudHJhbnNhY3Rpb25QYXltZW50RG9uZS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX2dldERlcG9zaXRJbmZvKCk7XHJcbiAgICAgICAgdGhpcy5fZ2V0T3V0c3RhbmRpbmdBbW91bnRzKCk7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVDbG9zZURpYWxvZygpO1xyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy5zY3JlZW5Db25maWdTZXJ2aWNlLmNvbmZpZ1NldC5zdWJzY3JpYmUoKGNvbmZpZ09iamVjdHM6IE9iamVjdENvbmZpZ3VyYXRpb25bXSkgPT4gdGhpcy5fZ2V0T2JqZWN0Q29uZmlndXJhdGlvbihjb25maWdPYmplY3RzKSlcclxuICAgICk7XHJcbiAgICB0aGlzLnNob3dDYXNoT25EZWxpdmVyeSA9IGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldEludGVybmFsUGFyYW1ldGVyKEludGVybmFsUGFyYW0uU2VsbERpcmVjdGx5RnJvbVN1cHBsKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25EZXN0cm95KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5fcGF5bWVudFN1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgICBhd2FpdCBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNhdGVnb3J5Q2xpY2soY2F0OiBQYXltZW50Q2F0ZWdvcnkpOiB2b2lkIHtcclxuICAgIHRoaXMuYWN0aXZlQ2F0ZWdvcnkgPSBjYXQ7XHJcblxyXG4gICAgaWYgKHRoaXMuYWN0aXZlQ2F0ZWdvcnkuaW5kZXggPT09IDEpIHtcclxuICAgICAgdGhpcy5fZ2V0UmVnaXN0ZXJlZFBheW1lbnRJbmZvKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc2hvd091dHN0YW5kaW5nQW1vdW50cygpIHtcclxuICAgIGF3YWl0IHRoaXMuc2VydmljZS5zYXZlVHJhbnNhY3Rpb24oKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93Q2FzaE9uRGVsaXZlcnlNb2RhbCh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5jYXNoT25EZWxpdmVyeU1vZGFsVmlzaWJsZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldENhc2hBbW91bnQodmFsdWU6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5jYXNoT25EZWxpdmVyeSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dQYXltZW50QnV0dG9uKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMub3JkZXJQYXltZW50QW5hbHlzaXMuc29tZSh0ID0+IHQub3V0c3RhbmRpbmdBbW91bnQgIT09IDApICYmIHRoaXMuY2hvc2VuQW1vdW50VG9QYXkgIT09IDA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgb3BlblBheW1lbnQoZXZlbnQ6IE1vdXNlRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25JZFRvUGF5ID0gdGhpcy50cmFuc2FjdGlvbklkVG9QYXkgPz8gdGhpcy50cmFuc2FjdGlvbkluZm8uaWQ7XHJcbiAgICBpZiAodGhpcy5vcmRlclBheW1lbnRBbmFseXNpcy5maWx0ZXIocGF5bWVudCA9PiBwYXltZW50LnRyYW5zYWN0aW9uS2luZCA9PT0gdGhpcy50cmFuc0tpbmQuU2FsZXNJbnZvaWNlICYmIHBheW1lbnQub3V0c3RhbmRpbmdBbW91bnQgPiAwKS5sZW5ndGggPT09IDEpIHtcclxuICAgICAgY29uc3QgbGFzdFRyYW5zYWN0aW9uID0gdGhpcy5vcmRlclBheW1lbnRBbmFseXNpcy5maWx0ZXIocGF5bWVudCA9PiBwYXltZW50LnRyYW5zYWN0aW9uS2luZCA9PT0gdGhpcy50cmFuc0tpbmQuU2FsZXNJbnZvaWNlICYmIHBheW1lbnQub3V0c3RhbmRpbmdBbW91bnQgPiAwKVswXTtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbklkVG9QYXkgPSBsYXN0VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JZDtcclxuICAgIH1cclxuICAgIGlmIChhd2FpdCB0aGlzLmxvY2tUcmFuc2FjdGlvbigpKSB7XHJcbiAgICAgIHRoaXMuc2hvd1BheW1lbnREaWFsb2cgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNsb3NlRGlhbG9nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93UGF5bWVudERpYWxvZyA9IGZhbHNlO1xyXG4gICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2Uucm9sbGJhY2soKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc0RpcmVjdFNlbGxFbmFibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb25MaW5lcy5zb21lKGxpbmUgPT4gbGluZS5kaXJlY3RTZWxsICYmIGxpbmUuZHJvcFNoaXBtZW50KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93SW52b2ljZVNlbGVjdGlvbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm9yZGVyUGF5bWVudEFuYWx5c2lzLmZpbHRlcihwYXltZW50ID0+IHBheW1lbnQudHJhbnNhY3Rpb25LaW5kID09PSB0aGlzLnRyYW5zS2luZC5TYWxlc0ludm9pY2UgJiYgcGF5bWVudC5vdXRzdGFuZGluZ0Ftb3VudCAhPT0gMCkubGVuZ3RoID4gMTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTZWxlY3RJbnZvaWNlTGluZXMocGF5bWVudEluZm86IE9yZGVyUGF5bWVudEFuYWx5c2lzKTogdm9pZCB7XHJcbiAgICB0aGlzLm9yZGVyUGF5bWVudEFuYWx5c2lzLmZvckVhY2goaW52b2ljZSA9PiAoaW52b2ljZSBhcyBhbnkpLmlzU2VsZWN0ZWQgPSBmYWxzZSk7XHJcbiAgICAocGF5bWVudEluZm8gYXMgYW55KS5pc1NlbGVjdGVkID0gdHJ1ZTtcclxuICAgIHRoaXMuY2hvc2VuQW1vdW50VG9QYXkgPSBwYXltZW50SW5mby5vdXRzdGFuZGluZ0Ftb3VudDtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25JZFRvUGF5ID0gcGF5bWVudEluZm8udHJhbnNhY3Rpb25JZDtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB0cmFuc2FjdGlvblNldCgpIHtcclxuICAgIHN1cGVyLnRyYW5zYWN0aW9uU2V0KCk7XHJcbiAgICB0aGlzLl9nZXREZXBvc2l0SW5mbygpO1xyXG4gICAgdGhpcy5fZ2V0T3V0c3RhbmRpbmdBbW91bnRzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXREZXBvc2l0SW5mbygpOiB2b2lkIHtcclxuICAgIHRoaXMuX3BheW1lbnRDb25uZWN0b3JTZXJ2aWNlLmdldERlcG9zaXRQYXltZW50SW5mbyh0aGlzLnRyYW5zYWN0aW9uSW5mby51dWlkKS50aGVuKChpbmZvOiBUcmFuc2FjdGlvbkRlcG9zaXRQYXltZW50SW5mbykgPT4ge1xyXG4gICAgICBpZiAoaW5mbykge1xyXG4gICAgICAgIHRoaXMucGFpZERvd24gPSBpbmZvLmRlcG9zaXRQYXltZW50QW1vdW50VG90YWw7XHJcbiAgICAgICAgdGhpcy5zZXR0bGVkID0gaW5mby5kZXBvc2l0QW1vdW50U2V0dGxlZDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9nZXRPdXRzdGFuZGluZ0Ftb3VudHMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAvLyBrZWVwaW5nIHRoaXMgZm9yIG5vdywgY291bGQgYmUgdGhhdCB3ZSBuZWVkIHRvIHVzZSB0aGlzIGNhbGwgYWZ0ZXIgYWxsXHJcbiAgICAvLyBjb25zdCBvdXRzdGFuZGluZ0Ftb3VudHNSZXF1ZXN0OiBPdXRzdGFuZGluZ0Ftb3VudEZpbHRlckN1c3RvbWVyID0gbmV3IE91dHN0YW5kaW5nQW1vdW50RmlsdGVyQ3VzdG9tZXIoKTtcclxuICAgIC8vIG91dHN0YW5kaW5nQW1vdW50c1JlcXVlc3QudHJhbnNhY3Rpb25JZCA9IHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkO1xyXG4gICAgLy8gdGhpcy5fcGF5bWVudENvbm5lY3RvclNlcnZpY2UuZ2V0T3V0c3RhbmRpbmdDdXN0b21lckFtb3VudHMob3V0c3RhbmRpbmdBbW91bnRzUmVxdWVzdCkudGhlbigocmVzcG9uc2U6IE91dHN0YW5kaW5nQW1vdW50Q3VzdG9tZXJbXSkgPT4ge1xyXG4gICAgLy8gICB0aGlzLm91dHN0YW5kaW5nQ3VzdG9tZXJBbW91bnQgPSByZXNwb25zZTtcclxuICAgIC8vIH0pO1xyXG5cclxuICAgIGNvbnN0IHBheW1lbnRBbmFseXNpc1JlcXVlc3Q6IE9yZGVyUGF5bWVudEFuYWx5c2lzRmlsdGVyID0gbmV3IE9yZGVyUGF5bWVudEFuYWx5c2lzRmlsdGVyKCk7XHJcbiAgICBwYXltZW50QW5hbHlzaXNSZXF1ZXN0LnRyYW5zYWN0aW9uSWQgPSB0aGlzLnRyYW5zYWN0aW9uSW5mby5pZDtcclxuICAgIGF3YWl0IHRoaXMuX3BheW1lbnRDb25uZWN0b3JTZXJ2aWNlLmdldFNhbGVzT3JkZXJQYXltZW50QW5hbHlzaXMocGF5bWVudEFuYWx5c2lzUmVxdWVzdCkudGhlbigocmVzcG9uc2U6IE9yZGVyUGF5bWVudEFuYWx5c2lzW10pID0+IHtcclxuICAgICAgdGhpcy5vcmRlclBheW1lbnRBbmFseXNpcyA9IHJlc3BvbnNlO1xyXG4gICAgICB0aGlzLm9yZGVyUGF5bWVudEFuYWx5c2lzID0gdGhpcy5vcmRlclBheW1lbnRBbmFseXNpcy5tYXAodHJhbnNhY3Rpb24gPT4gKHtcclxuICAgICAgICAuLi50cmFuc2FjdGlvbixcclxuICAgICAgICBpc1NlbGVjdGVkOiBmYWxzZVxyXG4gICAgICB9KSkgYXMgdW5rbm93biBhcyBPcmRlclBheW1lbnRBbmFseXNpc1tdO1xyXG4gICAgfSk7XHJcblxyXG4gICAgYXdhaXQgdGhpcy5fcGF5bWVudENvbm5lY3RvclNlcnZpY2UuZ2V0UGF5bWVudEFuYWx5c2lzKHRoaXMudHJhbnNhY3Rpb25JbmZvLnV1aWQpLnRoZW4oKHJlc3BvbnNlOiBQYXltZW50QW5hbHlzaXMpID0+IHtcclxuICAgICAgdGhpcy5wYXltZW50QW5hbHlzaXMgPSByZXNwb25zZTtcclxuICAgICAgdGhpcy5jaG9zZW5BbW91bnRUb1BheSA9IHRoaXMucGF5bWVudEFuYWx5c2lzLnRvdGFsVG9QYXk7XHJcbiAgICAgIHRoaXMuX3VwZGF0ZUNob3NlbkFtb3VudFRvUGF5KCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX2dldFJlZ2lzdGVyZWRQYXltZW50SW5mbygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHBheW1lbnRJbmZvOiBUcmFuc2FjdGlvblJlZ2lzdGVyZWRQYXltZW50SW5mbyA9IGF3YWl0IHRoaXMuX3BheW1lbnRDb25uZWN0b3JTZXJ2aWNlLmdldFJlZ2lzdGVyZWRQYXltZW50SW5mbyh0aGlzLnRyYW5zYWN0aW9uSW5mby51dWlkKTtcclxuICAgIGlmIChwYXltZW50SW5mbykge1xyXG4gICAgICB0aGlzLnJlZ2lzdGVyZWRQYXltZW50SW5mbyA9IHBheW1lbnRJbmZvO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZ2V0T2JqZWN0Q29uZmlndXJhdGlvbihjb25maWdPYmplY3RzOiBPYmplY3RDb25maWd1cmF0aW9uW10pOiB2b2lkIHtcclxuICAgIGlmIChjb25maWdPYmplY3RzICYmIGNvbmZpZ09iamVjdHMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnNob3dQYXlEb3duTGFiZWwgPSB0aGlzLnNjcmVlbkNvbmZpZ1NlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLkRlcG9zaXRQZXJjZW50YWdlKS5pbW1lZGlhdGVseVZpc2libGUoKSB8fFxyXG4gICAgICAgIHRoaXMuc2NyZWVuQ29uZmlnU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuRGVwb3NpdEFtb3VudCkuaW1tZWRpYXRlbHlWaXNpYmxlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91cGRhdGVDaG9zZW5BbW91bnRUb1BheSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm9yZGVyUGF5bWVudEFuYWx5c2lzLnNvbWUodCA9PiB0Lm91dHN0YW5kaW5nQW1vdW50ID4gMCkgJiZcclxuICAgICAgdGhpcy5vcmRlclBheW1lbnRBbmFseXNpcy5maWx0ZXIocGF5bWVudCA9PiBwYXltZW50LnRyYW5zYWN0aW9uS2luZCA9PT0gdGhpcy50cmFuc0tpbmQuU2FsZXNJbnZvaWNlKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5jaG9zZW5BbW91bnRUb1BheSA9IHRoaXMucGF5bWVudEFuYWx5c2lzLnRvdGFsRGVwb3NpdDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBEZXBvc2l0IG9ubHlcclxuICAgIGlmICh0aGlzLm9yZGVyUGF5bWVudEFuYWx5c2lzLmZpbHRlcihwYXltZW50ID0+IHBheW1lbnQudHJhbnNhY3Rpb25LaW5kID09PSB0aGlzLnRyYW5zS2luZC5TYWxlc09yZGVyICYmXHJcbiAgICAgIHBheW1lbnQub3V0c3RhbmRpbmdBbW91bnQgPiAwKS5sZW5ndGggPT09IDEpIHtcclxuICAgICAgdGhpcy5jaG9zZW5BbW91bnRUb1BheSA9IHRoaXMub3JkZXJQYXltZW50QW5hbHlzaXNbMF0ub3V0c3RhbmRpbmdBbW91bnQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMub3JkZXJQYXltZW50QW5hbHlzaXMuZmlsdGVyKHBheW1lbnQgPT4gKHBheW1lbnQudHJhbnNhY3Rpb25LaW5kID09PSB0aGlzLnRyYW5zS2luZC5TYWxlc0ludm9pY2UpICYmXHJcbiAgICAgIChwYXltZW50Lm91dHN0YW5kaW5nQW1vdW50ID4gMCkpLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICBjb25zdCByZW1haW5pbmdJbnZvaWNlID0gdGhpcy5vcmRlclBheW1lbnRBbmFseXNpcy5maWx0ZXIocGF5bWVudCA9PiAocGF5bWVudC50cmFuc2FjdGlvbktpbmQgPT09IHRoaXMudHJhbnNLaW5kLlNhbGVzSW52b2ljZSkgJiYgKHBheW1lbnQub3V0c3RhbmRpbmdBbW91bnQgPiAwKSlbMF07XHJcbiAgICAgIHRoaXMuY2hvc2VuQW1vdW50VG9QYXkgPSByZW1haW5pbmdJbnZvaWNlLm91dHN0YW5kaW5nQW1vdW50O1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm9yZGVyUGF5bWVudEFuYWx5c2lzLmZpbHRlcihwYXltZW50ID0+IChwYXltZW50LnRyYW5zYWN0aW9uS2luZCA9PT0gdGhpcy50cmFuc0tpbmQuU2FsZXNJbnZvaWNlKSAmJiAocGF5bWVudC5vdXRzdGFuZGluZ0Ftb3VudCA+IDApKS5sZW5ndGggPiAxKSB7XHJcbiAgICAgIHRoaXMuY2hvc2VuQW1vdW50VG9QYXkgPSAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -3,8 +3,8 @@ export class Version {
|
|
|
3
3
|
constructor() {
|
|
4
4
|
this.name = "@colijnit/transaction";
|
|
5
5
|
this.description = "Colijn IT transaction package";
|
|
6
|
-
this.symVer = "258.1.
|
|
7
|
-
this.publishDate = "23
|
|
6
|
+
this.symVer = "258.1.38";
|
|
7
|
+
this.publishDate = "23/06/2025, 17:12:08";
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tdmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvdHJhbnNhY3Rpb24tdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsTUFBTSxPQUFPLE9BQU87SUFBcEI7UUFDUyxTQUFJLEdBQUcsdUJBQXVCLENBQUM7UUFDL0IsZ0JBQVcsR0FBRywrQkFBK0IsQ0FBQztRQUM5QyxXQUFNLEdBQUcsVUFBVSxDQUFDO1FBQ3BCLGdCQUFXLEdBQUcsc0JBQXNCLENBQUM7SUFDOUMsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdGhpcyBmaWxlIGlzIGR5bmFtaWNhbGx5IGNyZWF0ZWQsIGRvIG5vdCBjaGFuZ2UgdGhpc1xuZXhwb3J0IGNsYXNzIFZlcnNpb24ge1xuICBwdWJsaWMgbmFtZSA9IFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uXCI7XG4gIHB1YmxpYyBkZXNjcmlwdGlvbiA9IFwiQ29saWpuIElUIHRyYW5zYWN0aW9uIHBhY2thZ2VcIjtcbiAgcHVibGljIHN5bVZlciA9IFwiMjU4LjEuMzhcIjtcbiAgcHVibGljIHB1Ymxpc2hEYXRlID0gXCIyMy8wNi8yMDI1LCAxNzoxMjowOFwiO1xufSJdfQ==
|
|
@@ -294,8 +294,8 @@ class Version {
|
|
|
294
294
|
constructor() {
|
|
295
295
|
this.name = "@colijnit/transaction";
|
|
296
296
|
this.description = "Colijn IT transaction package";
|
|
297
|
-
this.symVer = "258.1.
|
|
298
|
-
this.publishDate = "23
|
|
297
|
+
this.symVer = "258.1.38";
|
|
298
|
+
this.publishDate = "23/06/2025, 17:12:08";
|
|
299
299
|
}
|
|
300
300
|
}
|
|
301
301
|
|
|
@@ -53001,7 +53001,7 @@ class TransactionHeaderPopupPaymentComponent extends TransactionHeaderPopupBaseC
|
|
|
53001
53001
|
return this.transactionLines.some(line => line.directSell && line.dropShipment);
|
|
53002
53002
|
}
|
|
53003
53003
|
showInvoiceSelection() {
|
|
53004
|
-
return this.orderPaymentAnalysis.filter(payment => payment.transactionKind === this.transKind.SalesInvoice && payment.outstandingAmount
|
|
53004
|
+
return this.orderPaymentAnalysis.filter(payment => payment.transactionKind === this.transKind.SalesInvoice && payment.outstandingAmount !== 0).length > 1;
|
|
53005
53005
|
}
|
|
53006
53006
|
handleSelectInvoiceLines(paymentInfo) {
|
|
53007
53007
|
this.orderPaymentAnalysis.forEach(invoice => invoice.isSelected = false);
|
|
@@ -53227,7 +53227,7 @@ TransactionHeaderPopupPaymentComponent.decorators = [
|
|
|
53227
53227
|
<tr *ngFor="let paymentInfo of orderPaymentAnalysis">
|
|
53228
53228
|
<td class="left" *ngIf="showInvoiceSelection()">
|
|
53229
53229
|
<co-input-radio-button
|
|
53230
|
-
*ngIf="paymentInfo.transactionKind === transKind.SalesInvoice && paymentInfo.outstandingAmount
|
|
53230
|
+
*ngIf="paymentInfo.transactionKind === transKind.SalesInvoice && paymentInfo.outstandingAmount !== 0"
|
|
53231
53231
|
class="default-width"
|
|
53232
53232
|
[(model)]="paymentInfo.isSelected"
|
|
53233
53233
|
(modelChange)="handleSelectInvoiceLines(paymentInfo)">
|